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