File PASCAL.L

Directory of image this file is from
This file as a plain text file


                                          PAL8-V12A 31-JAN-83 PAGE 1


             /   ############         #########         #########
             /   ############         #########         #########
             /   ###         ###   ###         ###   ###         ###
             /   ###         ###   ###         ###   ###         ###
             /   ###         ###   ###         ###   ###
             /   ###         ###   ###         ###   ###
             /   ############      ###############      #########
             /   ############      ###############      #########
             /   ###               ###         ###               ###
             /   ###               ###         ###               ###
             /   ###               ###         ###   ###         ###
             /   ###               ###         ###   ###         ###
             /   ###               ###         ###      #########
             /   ###               ###         ###      #########
             /
             /
             /      #########         #########      ###
             /      #########         #########      ###
             /   ###         ###   ###         ###   ###
             /   ###         ###   ###         ###   ###
             /   ###               ###         ###   ###
             /   ###               ###         ###   ###
             /   ###               ###############   ###
             /   ###               ###############   ###
             /   ###               ###         ###   ###
             /   ###               ###         ###   ###
             /   ###         ###   ###         ###   ###
             /   ###         ###   ###         ###   ###
             /      #########      ###         ###   ###############
             /      #########      ###         ###   ###############
             /
             /
             /                        #########
             /                        #########
             /                     ###         ###
             /                     ###         ###
             /                     ###
             /                     ###
             /      #########         #########         FROM  N.WIRTH
             /      #########         #########         ETH - ZUERICH
             /                                 ###
             /                                 ###
             /                     ###         ###
             /                     ###         ###
             /                        #########
             /                        #########
             /
             /
             /IMPLEMENTED ON A PDP-8/E COMPUTER WITH 28K-WORDS OF MEMORY
             /BY
             /PROF. HEINZ STEGBAUER
             /HTL-MOEDLING, IN 1979

P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 2 0002 VERSION=2 /C O R E L A Y O U T : /FIELD 0 0000 - 5777 INTERPRETER / 6000 - 6777 FILE- AND DEVICE BUFFERS / 7000 - 7577 COMPILER (INSYMBOL, NEXTCH) / 7600 - 7777 OS/8 - RESIDENT PART /FIELD 1 0000 - 7577 INTERMEDIATE CODE / 7600 - 7777 OS/8 - RESIDENT PART /FIELD 2 0000 - 3777 SYMBOL-TABLE / 4000 - XXXX STRING-TABLE / XXXX - 6377 CONSTANT-TABLE / 6400 - 7377 ARRAY-TABLE / 7400 - 7777 BLOCK-TABLE /AT COMPILETIME: /FIELD 3 0000 - 3777 NAMES OF SYMBOL-TABLE / 4000 - 7177 FSYS, SET-CONSTANTS, LISTS AND / TABLES, ERROR ROUTINES /FIELD 4 0000 - 6377 COMPILER / 6400 - 7777 AUXILIARY ROUTINES /FIELD 5 0000 - 7777 STACK FOR COMPILER OPERATION /FIELD 6 0000 - 7777 LONG ERROR MESSAGES /AT RUNTIME: /FIELD 3 0000 - 7777 /S T A C K (4K WORDS OF 48 BITS) /FIELD 4 0000 - 7777 /FIELD 5 0000 - 7777 /FIELD 6 0000 - 7777 0010 CODEFIELD=10 0020 TABLEFIELD=20 0030 NAMEFIELD=30 0030 SETFIELD=30 0040 COMPFIELD=40 0050 PUSHFIELD=50 0060 ERRFIELD=60 0030 STACKFIELD=30
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 3 /S T R U C T U R E O F T A B L E S : /SYMBOL-TABLE (4 WORDS PER ENTRY, MAX. 512 ENTRIES) /------------ 0000 TAB=0000 0000 LINK=TAB /WORD 0, BITS 0-11 0001 OBJ=TAB+1 /WORD 1, BITS 0-5 0001 TYP=TAB+1 /WORD 1, BITS 6-11 0002 REF=TAB+2 /WORD 2, BITS 0-5 0002 NORMAL=TAB+2 /WORD 2, BIT 6 0002 LEV=TAB+2 /WORD 2, BITS 7-11 0003 ADR=TAB+3 /WORD 3, BITS 0-11 /STRING-TABLE (ARRAY[0:N] OF CHAR, 6 BITS/CHAR,FROM 4000 UPWARDS) /------------ /CONSTANT-TABLE (4 WORDS PER ENTRY, FROM 6400 DOWNWARDS) /-------------- /ARRAY-TABLE (8 WORDS PER ENTRY, MAX. 64 ENTRIES) /----------- 6400 ATAB=6400 / /WORD 0 UNUSED! 6401 INXTYP=ATAB+1 /WORD 1 6402 ELTYP=ATAB+2 /WORD 2 6403 ELREF=ATAB+3 /WORD 3 6404 LOW=ATAB+4 /WORD 4 6405 HIGH=ATAB+5 /WORD 5 6406 ELSIZE=ATAB+6 /WORD 6 6407 SIZE=ATAB+7 /WORD 7 /BLOCK-TABLE (4 WORDS PER ENTRY, MAX. 64 ENTRIES) /----------- 7400 BTAB=7400 7400 LAST=BTAB /WORD 0 7401 LASTPAR=BTAB+1 /WORD 1 7402 PSIZE=BTAB+2 /WORD 2 7403 VSIZE=BTAB+3 /WORD 3
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 4 /A S S E M B L E R D E F I N I T I O N S: 7301 L0001=CLA CLL IAC 7326 L0002=CLA STL RTL 7325 L0003=CLA STL IAC RAL 7307 L0004=CLA CLL IAC RTL 7327 L0006=CLA STL IAC RTL 7303 L0100=CLA CLL IAC BSW 7332 L2000=CLA STL RTR 7330 L4000=CLA STL RAR 7340 L7777=CLA CLL CMA 7344 L7776=CLA CLL CMA RAL 7346 L7775=CLA CLL CMA RTL 7350 L3777=CLA CLL CMA RAR 7352 L5777=CLA CLL CMA RTR
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 5 /A R I T H M E T I C D E F I N I T I O N S: /MEMORY REFERENCED INSTRUCTIONS: 0000 FIXMRI GET=0000 1000 FIXMRI ADD=1000 2000 FIXMRI SUB=2000 3000 FIXMRI MUL=3000 4000 FIXMRI DIV=4000 5000 FIXMRI MOD=5000 /ALSO: JMP=5000 6000 FIXMRI PUT=6000 /OPERATE CLASS INSTRUCTIONS: 7200 NORM=7200 /REAL 7201 READREAL=7201 7202 WRITEREAL=7202 7203 TRUNC=7203 7206 ROUND=7206 7205 RSQUARE=7205 7204 ZERO=7204 /BOTH TYPES 7000 ABSVAL=7000 7004 NEGATE=7004 7006 WRITELINE=7006 7001 READINTEGER=7001 /INTEGER 7002 WRITEINTEGER=7002 7003 FLOAT=7003 7005 ISQUARE=7005 /SKIP - INSTRUCTIONS: 7410 SKIP=SKP 7440 SKEQ=SZA 7450 SKNE=SNA 7500 SKLT=SMA 7540 SKLE=SMA SZA 7550 SKGT=SPA SNA 7510 SKGE=SPA 4444 AAAAAA=JMS I 44 /ENTER MACRO MODE 0000 EEEEEE=0000 /RETURN TO PDP8 MODE 0177 INT=0177 7777 REAL=7777
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 6 /C O M P I L E R D E F I N I T I O N S: DECIMAL /S Y M B O L S: 0000 INTCON=0 0001 REALCON=1 0002 CHARCON=2 0003 STRING=3 0004 NOTSY=4 0005 PLUS=5 0006 MINUS=6 0007 TIMES=7 0010 IDIVSY=8 0011 RDIVSY=9 0012 IMODSY=10 0013 ANDSY=11 0014 ORSY=12 0015 EQL=13 0016 NEQ=14 0017 GTR=15 0020 GEQ=16 0021 LSS=17 0022 LEQ=18 0023 LPARENT=19 0024 RPARENT=20 0025 LBRACK=21 0026 RBRACK=22 0027 COMMA=23 0030 SEMICOLON=24 0031 PERIOD=25 0032 COLON=26 0033 BECOMES=27 0034 CONSTSY=28 0035 TYPESY=29 0036 VARSY=30 0037 FUNCTIONSY=31 0040 PROCEDURESY=32 0041 ARRAYSY=33 0042 RECRDSY=34 0043 PROGRAMSY=35 0044 IDENT=36 0045 BEGINSY=37 0046 IFSYM=38 0047 CASESY=39 0050 REPTSY=40 0051 WHILSY=41 0052 FORSY=42 0053 ENDSY=43 0054 ELSESY=44 0055 UNTILSY=45 0056 OFSY=46 0057 DOSY=47 0060 TOSY=48 0061 DOWNTOSY=49 0062 THENSY=50
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 6-1 /O B J E C T S: 0000 KONSTANT=0 0001 VARIABLE=1 0002 TYPE1=2 0003 PROZEDURE=3 0004 FUNKTION=4 /T Y P E S: 0000 NOTYP=0 0001 INTS=1 0002 REALS=2 0003 BOOLS=3 0004 CHARS=4 0005 ARRAY=5 0006 RECORD=6 /P R O C E D U R E S: 0000 BLOCK=0 0001 STATEMENT=1 0002 ASSIGNMENT=2 0003 COMPOUNDSTATEMENT=3 0004 IFSTATEMENT=4 0005 CASESTATEMENT=5 0006 REPEATSTATEMENT=6 0007 WHILESTATEMENT=7 0010 FORSTATEMENT=8 0011 STANDPROC=9 0012 SELECTOR=10 0013 CALL=11 0014 STANDFCT=12 0015 FACTOR=13 0016 TERM=14 0017 SIMPLEEXPRESSION=15 0020 EXPRESSION=16 0021 CONDECLARE=17 0022 TYPDECLARE=18 0023 VARDECLARE=19 0024 PRODECLARE=20 0025 CONSTANT=21 0026 ARRAYTYP=22 0027 TYPE=23 0030 PARAMETERLIST=24 0031 ONECASE=25
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 6-2 /P R O G R A M P A R A M E T E R S: 1000 TMAX=512 /MAX. NUMBER OF IDENTIFIERS 0100 AMAX=64 /MAX. NUMBER OF ARRAYS 0100 BMAX=64 /MAX. NUMBER OF BLOCKS (PROCEDURES+RECORDS) 3674 CMAX=1980 /MAX. SIZE OF INTERMEDIATE CODE 0036 CSMAX=30 /MAX. NUMBER OF CASES 0020 LMAX=16 /MAX. NUMBER OF LEVELS 0120 LLNG=80 /MAX. LENGTH OF INPUT LINE 0010 ALNG=8 /NO. OF SIGNIFICANT CHAR'S IN IDENTIFIERS OCTAL / F U N C T I O N S: 00447 3514 STDFUNCT,XABS /0 00450 3514 XABS /1 00451 4343 XISQU /2 00452 4347 XRSQU /3 00453 2115 XODD /4 00454 0567 XCHR /5 00455 0444 STFJMS /6 00456 0561 XSUCC /7 00457 0564 XPRED /8 00460 2545 XROUND /9 00461 2523 RTRUNC /10 00462 5234 XSIN /11 00463 5141 XCOS /12 00464 5000 XEXP /13 00465 4600 XLOG /14 00466 4400 XSQRT /15 00467 5400 XATN /16 00470 0551 XEOF /17 00471 0554 XEOLN /18 00472 2066 XRAND /19
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 39 /THE ORGANIZATION OF THE FOLLOWING PAGES OF FIELD 0 /DEMANDS SOME EXPLANATION: / AT COMPILE TIME / AT RUNTIME / / / / /06000--------------------------/-------------------------------/ / STARTUP CODE, THEN / / / / I N P U T / /06200- I N P U T (SOURCE) -----/----- -----/ / F I L E B U F F E R / F I L E B U F F E R / / / / /06400--------------------------/-------------------------------/ / / ** INPUT / / I N P U T (SOURCE) / DEVICE HANDLER / /06600- -----/-------------------------------/ / D E V I C E / OUTPUT / / H A N D L E R / DEVICE HANDLER / /07000--------------------------/-------------------------------/ / / / / COMPILER PROCEDURES: / O U T P U T / /07200----- -----/----- -----/ / I N S Y M B O L / F I L E B U F F E R / / / / /07400----- AND -----/-------------------------------/ / / RUNTIME ERRORS / / N E X T C H / / /-------------------------------/-------------------------------/ /AT COMPILATION TIME FOUR PAGES OF FIELD 6 ARE USED AS FOLLOWS: /66400--- TEMPORARY STORAGE OF INPUT DEVICE HANDLER / /66600--- TEMPORARY STORAGE OF OUTPUT DEVICE HANDLER / /67400--- RUNTIME ERRORS / /67600--- INITIALIZATION OF RUNTIME SYSTEM /DURING INITIALIZATION OF THE RUNTIME SYSTEM /THE FIRST THREE PAGES ARE SWAPPED INTO THEIR PLACE IN FIELD 0! ** THE INPUT HANDLER MAY OCCUPY 2 CORE PAGES IF THERE IS NO RUNTIME OUTPUT HANDLER. THE OUTPUT HANDLER MAY NEVER BE A 2-PAGER. RUNTIME INPUT & OUTPUT DEFAULT TO INTERNAL TTY: HANDLERS.
P A S C A L - S PAL8-V12A 31-JAN-83 PAGE 40 /#############################################################/ /#############################################################/ /##### #####/ /##### S T A R T #####/ /##### #####/ /#############################################################/ /#############################################################/ /IMPORTANT POINTS OF PROGRAM FLOW: /S T A R T (06000) /STARTING ADDRESS OF ENTIRE SYSTEM, /PROCESS I/O-SPECIFICATIONS /M A I N (40200) /START OF COMPILER PROGRAM /E X P L A I N (60200) /COMPILATION REPORT /I N I T (67600) /INITIALIZATION OF RUNTIME SYSTEM /I S T A R T (00200) /START OF INTERPRETER /ONCE ONLY CODE!!! 0200 USR=200 6000 *IBUFFER 06000 7300 START, CLA CLL /S T A R T I N G A D D R E S S 06001 6212 CIF 10 06002 4575 JMS I [7700 /LOCK USR IN MEMORY 06003 0010 10 06004 1377 TAD (1000 /RESET JOB STATUS WORD 06005 3776 DCA I (7746 06006 6212 CD, CIF 10 06007 4775 JMS I (USR /CALL THE COMMAND DECODER 06010 0005 5 06011 2023 2023 /ASSUMED INPUT EXTENSION: .PS 06012 4774' JMS HEADER 06013 6211 CDF 10 06014 1773 TAD I (7600 06015 7450 SNA /OUTPUT FILE SPECIFIED? 06016 5263 JMP NOOUT 06017 3133 DCA DEVNO /YES, SAVE DEVICE NUMBER 06020 1373 TAD (7600 06021 3010 DCA XR10 06022 1410 TAD I XR10 /TRANSFER THE FILENAME 06023 3127 DCA NAME / 6136 -- 6157 are currently free on this page, for once-only use.



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search