home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol043 / abstract.043 < prev    next >
Text File  |  1984-04-29  |  7KB  |  178 lines

  1. READ THIS FIRST - BEFORE USE.
  2. CALL TINCMP AS FOLLOWS:
  3.     TINCMP MACROFILE,OUTPUTFILE,INPUTFILE
  4. MACROFILE: THE MACROS TO BE USED AS TEMPLATES AND INSTRUCTIONS
  5. OUTPUTFILE: THE OUTPUT OF TINCMP
  6. INPUTFILE: THE INPUT TO BE EXPANDED BY TINCMP
  7.  
  8. REFERENCE FOR THIS STUFF:
  9.     PIDGIN - A SYSTEMS PROGRAMMING LANGUAGE
  10.     BY WM. A. GALE
  11.     DOCTOR DOBBS JOURNAL #57 JULY 1981
  12.  
  13.     STAGE2
  14.     8080 IMPLEMENTATION (SUPERB!)
  15.     DICK CURTISS
  16.     CP/MUG VOLUME 51
  17.  
  18.     IMPLEMENTING SOFTWARE FOR NON-NUMERIC APPLICATIONS
  19.     WM. M. WAITE
  20.     PRENTICE-HALL, INC.
  21.     ENGLEWOOD CLIFFS, NJ 1973
  22.     ISBN 0-13-451898-5 (ABOUT $25)
  23.  
  24.     AN 8080 IMPLEMENTATION OF PIDGIN
  25.     TO BE PUBLISHED IN DR DOBBS
  26.     SUBMITTED NOVEMBER 1981
  27.     A. L. BENDER, M.D.
  28.  
  29.  
  30. CONTENTS OF TINCMP DISK:
  31. FILE    CONTENTS
  32. --------------------------------------------------------------
  33. MACROS.PGN    THE MACRO FILE USED TO TRANSLATE PIDGIN TO
  34.         8080 ASSEMBLER CODE
  35.  
  36. PIDGIN.S2M    THE MACRO FILE USED TO TRANSLATE PIDGIN TO
  37.         8080 ASSEMBLER CODE WHEN BOOTSTRAPPING FROM
  38.         STAGE2 (THESE ARE STAGE2 MACROS)
  39.  
  40. TINCMP.PGN    THE TINCMP COMPILER SOURCE CODE IN PIDGIN.
  41.  
  42. TINCMP.MAC    THE OUTPUT OF TINCMP WHEN TRANSLATING TINCMP
  43.         WRITTEN IN PIDGIN USING TINCMP.
  44.  
  45. TINCMP.REL    THE REL FILE FROM ASSEMBLING ABOVE FILE.
  46.  
  47. TINCMP.COM    TINCMP COMMAND FILE.
  48.  
  49. STAGE2.COM    STAGE2 MACRO PROCESSOR WRITTEN IN FLUB
  50.         BY DICK CURTISS AND DISTRIBUTED HERE WITH
  51.         HIS PERMISSION.
  52.  
  53. IOCMPLX.ASM    THE I/O SUBROUTINES FOR PIDGIN INCLUDING
  54.         THE CP/M FILE CONTROL I/O INTERFACE ROUTINE
  55.  
  56. WRNXT.ASM    CONSOLE READ/WRITE ROUTINES FOR PIDGIN UNDER
  57.         CP/M.
  58.  
  59. SYSTEM.ASM    THE CP/M DEFINITIONS FOR PIDGIN.  ALSO CONTAINS
  60.         THE UNIVERSAL LOAD DE FROM M (LDEM) ROUTINE
  61.  
  62. PIDMATH.ASM    16 BIT INTEGER ARITHMETIC ROUTINES WRITTEN
  63.         BY DICK CURTISS. SLIGHTLY MODIFIED TO BE USED
  64.         WITH PIDGIN.
  65.  
  66. PIDGINLB.REL    RELOCATABLE LIBRARY OF WRNXT,SYSTEM AND PIDMATH.
  67.  
  68. TINTEST THRU
  69.     TINTEST6 TEST ROUTINES FOR TINCMP.  USE IF YOU DESIGN YOUR
  70.         OWN MACROS.
  71.  
  72. WC.PGN        WORD COUNTER.  USED AS A TEST PROGRAM TO CHECK THE
  73.         TINCMP COMPILER.
  74.  
  75. SUMMARY FOR STAGE2:
  76.  
  77.     STAGE2 IS DOCUMENTED IN CPM/UG LIBRARY VOLUME 51.  PLEASE
  78. READ THAT DOCUMENTATION IF YOU NEED DETAILED INSTRUCTIONS.  YOU
  79. SHOULD ALSO BUY WAITE'S BOOK.  THIS IS A WELL WRITTEN, BUT COMPLEX
  80. SUBJECT AND IS NOT CASUAL BED-TIME READING.  YOU WILL NEED TO READ AND
  81. PROBABLY RE-READ EACH TOPIC SEVERAL TIMES TO MAKE SENSE OUT OF THINGS.
  82.  
  83. STAGE2 PRODUCES AN OUTPUT FILE FROM ONE OR MORE INPUT FILES.  IF
  84. YOU WANT TO REGENERATE TINCMP.MAC FROM TINCMP.PGN YOU WILL NEED TO
  85. DO SEVERAL THINGS.  ONE IS TO INSERT A SPACE IN FRONT OF EACH
  86. TINCMP.PGN LINE WHICH STARTS WITH A NON-SPACE OR TAB.  INSERT
  87. A SPACE BETWEEN BEGINMAIN AND ( IN THE SOURCE OR FIX THE S2M MACRO
  88.  
  89. NEXT, INSERT SPACES BEWEEN PACK AND ( AND UNPACK AND ( OR FIX THE
  90. MACRO.  INSERT A FINIS STATEMENT AT THE END OF TINCMP.PGN.
  91.  
  92.     IF YOU CAN AVOID IT, DON'T GO BACK TO STAGE2.  JUST FIX THE
  93. TINCMP MACRO FILE MACROS.PGN.  STARTING OVER WITH STAGE2 CAN GET
  94. THE RESULTING COMPILER MESSED UP AND INTRODUCE ERRORS WHICH ARE
  95. QUITE DIFFICULT TO FIND.  TO ASSEMBLE A NEW TINCMP WITH STAGE2:
  96.     A>STAGE2  TINCMP.MAC,CON=PIDGIN.S2M,TINCMP.PGN
  97. THIS PUTS THE BAD STATEMENTS OUT ON THE CONSOLE.  I REALLY CAN'T
  98. SEE WHAT THIS WILL BUY YOU BUT YOU CAN USE IT IF YOU  WANT.
  99.  
  100.     WORKING WITH TINCMP CAN GET TO BE A DRAG SO IF YOU MAKE A SUBMIT
  101. FILE THINGS WILL BE EASIER:
  102.     1. COMPILATION AND ASSEMBLY TAKE ABOUT 5-7 MINUTES.
  103.     2. TYPE-IN OF COMMANDS IS ERROR-PRONE BECAUSE OF THE NUMBER
  104.         OF FILES USED.
  105.     3. THERE ARE FEWER ERRORS WHEN FILES ARE SUBMITTED.
  106.  
  107. SUGGESTED SUBMIT FILE:
  108. A>SUBMIT TINSUB
  109.     TINCMP MACROS.PGN,$1.ASM,$1.PGN
  110.     M80 ,=$1.ASM
  111.     L80 $1,IOCMPLX,PIDGINLB/S,$1/N,/E
  112.  
  113. STAGE2 HAS MANY OTHER USES.  CONSULTING DICK CURTISS' FILES WILL
  114. GIVE YOU SOME IDEA OF HOW POWERFUL STAGE2 IS.  UNLIKE TINCMP IT
  115. HAS BRANCH AND TEST INSTRUCTIONS.  WAITE'S BOOK IS A GOOD EXAMPLE
  116. OF HOW PRAGMATIC AND THEORETICAL MATERIAL CAN BE PRESENTED.
  117.  
  118. TO PUT TOGETHER A TINCMP COMPILER FOR SPECIAL PURPOSES:
  119.     1. IF YOU DON'T HAVE M-80 OR RMAC:
  120.     YOU NEED TO MERGE THE FOLLOWING:
  121.         TINCMP.MAC
  122.         IOCMPLX.ASM
  123.         PIDMATH.ASM
  124.         WRNXT.ASM
  125.         SYSTEM.ASM
  126.     REMOVE ALL EXTRN AND ENTRY STATEMENTS AS WELL AS DSEG, CSEG
  127.     AND COMMON STATEMENTS.  REMOVE THE EXTERNAL PROCEDURE, LOCAL
  128.     VARIABLE, ENDLOCAL STATEMENTS FROM MACROS.PGN
  129.     REASSEMBLE - GOOD LUCK! YOU WILL NEED TO CHANGE ALL OF THE
  130.     MACROS TOO.  YOU WILL REALLY NEED THE GOOD LUCK FOR THIS.
  131.     2. IF YOU HAVE RMAC YOU NEED TO CHANGE THE ENTRY STATEMENTS
  132.     TO PUBLIC IN ALL LIBRARY MODULES (IOCMPLX,WRNXT,PIDMATH,SYSTEM)
  133.     3. IF YOU ARE NOT DARING AND HAVE AN ORG 100H SYSTEM YOU CAN
  134.     JUST LOAD THE COM FILE TINCMP AND USE IT.
  135.     4. IF YOU HAVE M-80:
  136.     USE L80 TO LINK PIDGINLB INTO IOCMPLX AND TINCMP.  PIDGINLB
  137.     IS A LIBRARY OF WRNXT,SYSTEM AND PIDMATH
  138.     5. IF RUNNING MP/M SYSTEM DEFINES ?BOOT,?BDOS,?TBUF FOR CP/M
  139.     AND YOU WILL NEED TO CHANGE THIS.
  140.     6. IF RUNNING CP/M 2.2 EVERYTHING IS COOL.  I DIDN'T TEST THIS
  141.     WITH CP/M 1.4 BUT I DIDN'T USE ANY WIERD CALLS SO IT SHOULD
  142.     WORK OK.  THE FCB'S ARE ALL 36 BYTES LONG.
  143.     7. IN THIS VERSION ALL FILES MUST BE DECLARED IN THE CONTROL
  144.     STATEMENT AND ONLY THE ASSOCIATE FCB N WITH I$$ WORKS.
  145.     8. ?ENDING WASN'T TESTED THROUGHLY.
  146.     9. IOCMPLX IS REALLY WRITTEN FOR A Z-80 AND IF YOU HAVE ONE
  147.     IT SHOULD BE RECODED.
  148.     10: AS SUPPLIED, THE TINCMP COMPILER IS THE ACTUAL OUTPUT OF
  149.     THE PIDGIN VERSION OF TINCMP AS SUPPLIED ON FILE TINCMP.PGN
  150.     11: IF YOU WANT TO RESTART THE PROCESS LOTS OF LUCK YOU CAN
  151.     GET A COPY OF TINCMP'S MOTHER STAGE2 IN CP/MUG VOL 51.
  152.     12: IF YOU HAVE A Z-80 OR THE CDL ASSEMBLER YOU CAN CHANGE
  153.     THE MACROS IN MACROS.PGN TO USE THEM.
  154.     13: NOTE! NONE OF THE CODE IS OPTIMIZED.  YOU CAN SAVE ABOUT
  155.     20-40% SPACE IN THE CSEG SEGMENTS BY HAND OPTIMIZING THE
  156.     ASSEMBLY LANGUAGE IN TINCMP.MAC
  157.     14: IF YOU HAVE PROBLEMS YOU CAN WRITE TO ME:
  158.         A. L. BENDER, M. D.
  159.         C/O NEUROLOGICAL SERVICES INC.
  160.         336 CENTER AVE
  161.         WESTWOOD NJ 07675
  162.         201-664-4882
  163.     15: THE MATERIAL HEREIN IS COPYRIGHTED (C) 1981.  MATERIAL
  164.     IS PRESENTED FOR YOUR PRIVATE, NON-COMMERCIAL USE.  SOME
  165.     OF THIS MATERIAL IS COPYRIGHT BY DICK CURTISS AND IS 
  166.     REPRODUCED HERE BY HIS WRITTEN PERMISSION (PIDMATH) AND
  167.     TINCMP IS COPYRIGHT BY WM GALE.  THE REPRODUCTION OF THIS
  168.     MATERIAL IN THIS LOCATION DOES NOT IMPLY ANY RIGHTS TO
  169.     FURTHER PUBLISH, DISTRIBUTE, USE OR SELL ANY MATERIAL
  170.     HEREIN PRESENTED.  BOTH WM GALE AND DICK CURTISS RETAIN ALL
  171.     COPYRIGHT TO THEIR MATERIAL.  I RETAIN THE COPYRIGHT TO ALL
  172.     MODIFICATIONS TO TINCMP AND TO THE CP/M VERSION OF TINCMP.
  173.     ALTERING THE PROGRAMS BY HAND-OPTIMIZATION DOES NOT ALTER
  174.     COPYRIGHT PROTECTION NOR DOES EXTENSION VOID THE RIGHTS OF
  175.     PREVIOUS COPYRIGHT HOLDERS.
  176.     PERMISSION FOR COMMERCIAL USE MUST BE OBTAINED FROM THE
  177.     COPYRIGHT OWNERS INDIVIDUALLY.
  178.