home *** CD-ROM | disk | FTP | other *** search
- READ THIS FIRST - BEFORE USE.
- CALL TINCMP AS FOLLOWS:
- TINCMP MACROFILE,OUTPUTFILE,INPUTFILE
- MACROFILE: THE MACROS TO BE USED AS TEMPLATES AND INSTRUCTIONS
- OUTPUTFILE: THE OUTPUT OF TINCMP
- INPUTFILE: THE INPUT TO BE EXPANDED BY TINCMP
-
- REFERENCE FOR THIS STUFF:
- PIDGIN - A SYSTEMS PROGRAMMING LANGUAGE
- BY WM. A. GALE
- DOCTOR DOBBS JOURNAL #57 JULY 1981
-
- STAGE2
- 8080 IMPLEMENTATION (SUPERB!)
- DICK CURTISS
- CP/MUG VOLUME 51
-
- IMPLEMENTING SOFTWARE FOR NON-NUMERIC APPLICATIONS
- WM. M. WAITE
- PRENTICE-HALL, INC.
- ENGLEWOOD CLIFFS, NJ 1973
- ISBN 0-13-451898-5 (ABOUT $25)
-
- AN 8080 IMPLEMENTATION OF PIDGIN
- TO BE PUBLISHED IN DR DOBBS
- SUBMITTED NOVEMBER 1981
- A. L. BENDER, M.D.
-
-
- CONTENTS OF TINCMP DISK:
- FILE CONTENTS
- --------------------------------------------------------------
- MACROS.PGN THE MACRO FILE USED TO TRANSLATE PIDGIN TO
- 8080 ASSEMBLER CODE
-
- PIDGIN.S2M THE MACRO FILE USED TO TRANSLATE PIDGIN TO
- 8080 ASSEMBLER CODE WHEN BOOTSTRAPPING FROM
- STAGE2 (THESE ARE STAGE2 MACROS)
-
- TINCMP.PGN THE TINCMP COMPILER SOURCE CODE IN PIDGIN.
-
- TINCMP.MAC THE OUTPUT OF TINCMP WHEN TRANSLATING TINCMP
- WRITTEN IN PIDGIN USING TINCMP.
-
- TINCMP.REL THE REL FILE FROM ASSEMBLING ABOVE FILE.
-
- TINCMP.COM TINCMP COMMAND FILE.
-
- STAGE2.COM STAGE2 MACRO PROCESSOR WRITTEN IN FLUB
- BY DICK CURTISS AND DISTRIBUTED HERE WITH
- HIS PERMISSION.
-
- IOCMPLX.ASM THE I/O SUBROUTINES FOR PIDGIN INCLUDING
- THE CP/M FILE CONTROL I/O INTERFACE ROUTINE
-
- WRNXT.ASM CONSOLE READ/WRITE ROUTINES FOR PIDGIN UNDER
- CP/M.
-
- SYSTEM.ASM THE CP/M DEFINITIONS FOR PIDGIN. ALSO CONTAINS
- THE UNIVERSAL LOAD DE FROM M (LDEM) ROUTINE
-
- PIDMATH.ASM 16 BIT INTEGER ARITHMETIC ROUTINES WRITTEN
- BY DICK CURTISS. SLIGHTLY MODIFIED TO BE USED
- WITH PIDGIN.
-
- PIDGINLB.REL RELOCATABLE LIBRARY OF WRNXT,SYSTEM AND PIDMATH.
-
- TINTEST THRU
- TINTEST6 TEST ROUTINES FOR TINCMP. USE IF YOU DESIGN YOUR
- OWN MACROS.
-
- WC.PGN WORD COUNTER. USED AS A TEST PROGRAM TO CHECK THE
- TINCMP COMPILER.
-
- SUMMARY FOR STAGE2:
-
- STAGE2 IS DOCUMENTED IN CPM/UG LIBRARY VOLUME 51. PLEASE
- READ THAT DOCUMENTATION IF YOU NEED DETAILED INSTRUCTIONS. YOU
- SHOULD ALSO BUY WAITE'S BOOK. THIS IS A WELL WRITTEN, BUT COMPLEX
- SUBJECT AND IS NOT CASUAL BED-TIME READING. YOU WILL NEED TO READ AND
- PROBABLY RE-READ EACH TOPIC SEVERAL TIMES TO MAKE SENSE OUT OF THINGS.
-
- STAGE2 PRODUCES AN OUTPUT FILE FROM ONE OR MORE INPUT FILES. IF
- YOU WANT TO REGENERATE TINCMP.MAC FROM TINCMP.PGN YOU WILL NEED TO
- DO SEVERAL THINGS. ONE IS TO INSERT A SPACE IN FRONT OF EACH
- TINCMP.PGN LINE WHICH STARTS WITH A NON-SPACE OR TAB. INSERT
- A SPACE BETWEEN BEGINMAIN AND ( IN THE SOURCE OR FIX THE S2M MACRO
-
- NEXT, INSERT SPACES BEWEEN PACK AND ( AND UNPACK AND ( OR FIX THE
- MACRO. INSERT A FINIS STATEMENT AT THE END OF TINCMP.PGN.
-
- IF YOU CAN AVOID IT, DON'T GO BACK TO STAGE2. JUST FIX THE
- TINCMP MACRO FILE MACROS.PGN. STARTING OVER WITH STAGE2 CAN GET
- THE RESULTING COMPILER MESSED UP AND INTRODUCE ERRORS WHICH ARE
- QUITE DIFFICULT TO FIND. TO ASSEMBLE A NEW TINCMP WITH STAGE2:
- A>STAGE2 TINCMP.MAC,CON=PIDGIN.S2M,TINCMP.PGN
- THIS PUTS THE BAD STATEMENTS OUT ON THE CONSOLE. I REALLY CAN'T
- SEE WHAT THIS WILL BUY YOU BUT YOU CAN USE IT IF YOU WANT.
-
- WORKING WITH TINCMP CAN GET TO BE A DRAG SO IF YOU MAKE A SUBMIT
- FILE THINGS WILL BE EASIER:
- 1. COMPILATION AND ASSEMBLY TAKE ABOUT 5-7 MINUTES.
- 2. TYPE-IN OF COMMANDS IS ERROR-PRONE BECAUSE OF THE NUMBER
- OF FILES USED.
- 3. THERE ARE FEWER ERRORS WHEN FILES ARE SUBMITTED.
-
- SUGGESTED SUBMIT FILE:
- A>SUBMIT TINSUB
- TINCMP MACROS.PGN,$1.ASM,$1.PGN
- M80 ,=$1.ASM
- L80 $1,IOCMPLX,PIDGINLB/S,$1/N,/E
-
- STAGE2 HAS MANY OTHER USES. CONSULTING DICK CURTISS' FILES WILL
- GIVE YOU SOME IDEA OF HOW POWERFUL STAGE2 IS. UNLIKE TINCMP IT
- HAS BRANCH AND TEST INSTRUCTIONS. WAITE'S BOOK IS A GOOD EXAMPLE
- OF HOW PRAGMATIC AND THEORETICAL MATERIAL CAN BE PRESENTED.
-
- TO PUT TOGETHER A TINCMP COMPILER FOR SPECIAL PURPOSES:
- 1. IF YOU DON'T HAVE M-80 OR RMAC:
- YOU NEED TO MERGE THE FOLLOWING:
- TINCMP.MAC
- IOCMPLX.ASM
- PIDMATH.ASM
- WRNXT.ASM
- SYSTEM.ASM
- REMOVE ALL EXTRN AND ENTRY STATEMENTS AS WELL AS DSEG, CSEG
- AND COMMON STATEMENTS. REMOVE THE EXTERNAL PROCEDURE, LOCAL
- VARIABLE, ENDLOCAL STATEMENTS FROM MACROS.PGN
- REASSEMBLE - GOOD LUCK! YOU WILL NEED TO CHANGE ALL OF THE
- MACROS TOO. YOU WILL REALLY NEED THE GOOD LUCK FOR THIS.
- 2. IF YOU HAVE RMAC YOU NEED TO CHANGE THE ENTRY STATEMENTS
- TO PUBLIC IN ALL LIBRARY MODULES (IOCMPLX,WRNXT,PIDMATH,SYSTEM)
- 3. IF YOU ARE NOT DARING AND HAVE AN ORG 100H SYSTEM YOU CAN
- JUST LOAD THE COM FILE TINCMP AND USE IT.
- 4. IF YOU HAVE M-80:
- USE L80 TO LINK PIDGINLB INTO IOCMPLX AND TINCMP. PIDGINLB
- IS A LIBRARY OF WRNXT,SYSTEM AND PIDMATH
- 5. IF RUNNING MP/M SYSTEM DEFINES ?BOOT,?BDOS,?TBUF FOR CP/M
- AND YOU WILL NEED TO CHANGE THIS.
- 6. IF RUNNING CP/M 2.2 EVERYTHING IS COOL. I DIDN'T TEST THIS
- WITH CP/M 1.4 BUT I DIDN'T USE ANY WIERD CALLS SO IT SHOULD
- WORK OK. THE FCB'S ARE ALL 36 BYTES LONG.
- 7. IN THIS VERSION ALL FILES MUST BE DECLARED IN THE CONTROL
- STATEMENT AND ONLY THE ASSOCIATE FCB N WITH I$$ WORKS.
- 8. ?ENDING WASN'T TESTED THROUGHLY.
- 9. IOCMPLX IS REALLY WRITTEN FOR A Z-80 AND IF YOU HAVE ONE
- IT SHOULD BE RECODED.
- 10: AS SUPPLIED, THE TINCMP COMPILER IS THE ACTUAL OUTPUT OF
- THE PIDGIN VERSION OF TINCMP AS SUPPLIED ON FILE TINCMP.PGN
- 11: IF YOU WANT TO RESTART THE PROCESS LOTS OF LUCK YOU CAN
- GET A COPY OF TINCMP'S MOTHER STAGE2 IN CP/MUG VOL 51.
- 12: IF YOU HAVE A Z-80 OR THE CDL ASSEMBLER YOU CAN CHANGE
- THE MACROS IN MACROS.PGN TO USE THEM.
- 13: NOTE! NONE OF THE CODE IS OPTIMIZED. YOU CAN SAVE ABOUT
- 20-40% SPACE IN THE CSEG SEGMENTS BY HAND OPTIMIZING THE
- ASSEMBLY LANGUAGE IN TINCMP.MAC
- 14: IF YOU HAVE PROBLEMS YOU CAN WRITE TO ME:
- A. L. BENDER, M. D.
- C/O NEUROLOGICAL SERVICES INC.
- 336 CENTER AVE
- WESTWOOD NJ 07675
- 201-664-4882
- 15: THE MATERIAL HEREIN IS COPYRIGHTED (C) 1981. MATERIAL
- IS PRESENTED FOR YOUR PRIVATE, NON-COMMERCIAL USE. SOME
- OF THIS MATERIAL IS COPYRIGHT BY DICK CURTISS AND IS
- REPRODUCED HERE BY HIS WRITTEN PERMISSION (PIDMATH) AND
- TINCMP IS COPYRIGHT BY WM GALE. THE REPRODUCTION OF THIS
- MATERIAL IN THIS LOCATION DOES NOT IMPLY ANY RIGHTS TO
- FURTHER PUBLISH, DISTRIBUTE, USE OR SELL ANY MATERIAL
- HEREIN PRESENTED. BOTH WM GALE AND DICK CURTISS RETAIN ALL
- COPYRIGHT TO THEIR MATERIAL. I RETAIN THE COPYRIGHT TO ALL
- MODIFICATIONS TO TINCMP AND TO THE CP/M VERSION OF TINCMP.
- ALTERING THE PROGRAMS BY HAND-OPTIMIZATION DOES NOT ALTER
- COPYRIGHT PROTECTION NOR DOES EXTENSION VOID THE RIGHTS OF
- PREVIOUS COPYRIGHT HOLDERS.
- PERMISSION FOR COMMERCIAL USE MUST BE OBTAINED FROM THE
- COPYRIGHT OWNERS INDIVIDUALLY.
-