diff --git a/software/BALGOL/BALGOL-Main.card b/software/BALGOL/BALGOL-Main.card new file mode 100644 index 0000000..59624e0 --- /dev/null +++ b/software/BALGOL/BALGOL-Main.card @@ -0,0 +1,4665 @@ +1 ASMBL 1 +1 REORD 1.00 +1 +1 THE BURROUGHS ALGEBRAIC COMPILER +1 ERDWINN, MERNER, CROWDER, SPERONI, KNUTH +1 DAHM, OLIPHINT, LOGEMANN, SCHUMAN +1 FEBRUARY 1,1962 +1 OT DEFN 1 OUTPUT TAPE UNIT 15 0 +1 T DEFN 2 PROGRAM TAPE UNIT 16 0 +1 PNTR DEFN 2 PRINTER UNIT 17 0 +1 LODOX DEFN 74 18 0 +1 LODOV DEFN 76 19 0 +1 MSIZE DEFN 4999 SIZE OF MEMORY 20 0 +1 LOCN 0 21 0 +1 BUF DEFN 0002 22 0 +1 BUN LOD 23 0 +1 BUN STORE 24 0 +1 +1 LOD MRW 4 T TAPE LOADING ROUTINE 26 0 +1 CLB FOR FIRST PHASE 27 0 +1 *A MNC 5 0,T,10 28 0 +1 LDB *+1 29 0 +1 CLA 999 30 0 +1 *B ADD - 0 31 0 +1 DBB B-,1 32 0 +1 BZA C+ 33 0 +1 SPO E+,4 SUM CHECK NONZERO 34 0 +1 MPB 4 T,10 CAUSES TYPEOUT AND HALT 35 0 +1 F424 9669,0,9669 36 0 +1 LDB B- PRESS START TO TRY AGAIN 37 0 +1 BUN A- 38 0 +1 *C DFL *+1,11,1 FIVE TIMES 39 0 +1 *G F424 4000,42,B- TEN BLOCKS 40 0 +1 IBB *+1,999 999 LOCATIONS PER BLOCK 41 0 +1 STB B-,04 42 0 +1 BRP A- 43 0 +1 BUN 46 44 0 +1 *E CNST $$CHECK SUM ERROR$$ 45 0 +1 LOCN 46 46 0 +1 *D LDB Z+ READ LAST BLOCK INTO THE 47 0 +1 MNC 5 0,T,2 END OF MEMORY 48 0 +1 LDB *+1 (THIS HOLDS PATCHES AND 49 0 +1 CLA 199 50 0 +1 *Z ADD - MSIZE-199 51 0 +1 DBB *-1,1 SUM CHECK IT, TOO 52 0 +1 BZA D+ 53 0 +1 SPO E-,4 54 0 +1 MPB 4 T,2 55 0 +1 F424 9669,00,9669 56 0 +1 BUN D- 57 0 +1 *D DFL G-,11,5 58 0 +1 STA B-,04 59 0 +1 BOF STACK 60 0 +1 +1 TAPE STORING ROUTINE. +1 STORE MRW 4 T 63 0 +1 *B LDB *+1 REWRITES COMPILER FROM CORE 64 0 +1 CLA 998 IN THE FORM REQUIRED BY LOADING ROUTINE. 000 65 0 +1 *A ADD - 0 66 0 +1 DBB *-1,1 67 0 +1 LDB A- 68 0 +1 LDR - 999 69 0 +1 STA - 999 70 0 +1 CSU - 999 COMPUTE CHECK SUM 71 0 +1 STA - 999 72 0 +1 MOW 5 0,T,10 73 0 +1 STR - 999 74 0 +1 IBB *+1,999 75 0 +1 STB A-,04 76 0 +1 DFL G-,11,1 77 0 +1 BRP B- 78 0 +1 DFL G-,11,5 79 0 +1 *C CLA 199 80 0 +1 STA A-,04 81 0 +1 LDB Z- 82 0 +1 CLL - 0 83 0 +1 STB *+2,04 84 0 +1 LDB C- 85 0 +1 *D ADD - 0 86 0 +1 DBB *-1,1 87 0 +1 LDB D- 88 0 +1 STA - 0 89 0 +1 CSU - 0 90 0 +1 STA - 0 91 0 +1 MOW 5 0,T,2 92 0 +1 MRW 4 T 93 0 +1 CLT 94 0 +1 STA D-,04 95 0 +1 BOF *+1 96 0 +1 HLT 2222 STOP WHEN JOB IS COMPLETED 97 0 +1 BUN LOD 98 0 +1 +1 SECTION A. BIG TABLES. +1 +1 LOCN 102 DICTIONARY OF ALL WORDS USED IN ERROR MESSAGES 001 02 0 +1 DICT CNST 34954575956 01 IMPROPER 01 03 0 +1 CNST $PER$ 01 04 0 +1 CNST 34348415941 03 CHARACTER 01 05 0 +1 CNST $CTER$ 01 06 0 +1 CNST $PAIR$ 05 PAIR 01 07 0 +1 CNST 34464575349 06 DUPLICATE 01 08 0 +1 CNST $CATE$ 01 09 0 +1 CNST 35759564345 08 PROCEDURE 01 10 0 +1 CNST $DURE$ 01 11 0 +1 CNST $NAME$ 10 NAME 01 12 0 +1 CNST 34664554363 11 FUNCTION 01 13 0 +1 CNST $ION$ 01 14 0 +1 CNST 34159476454 13 ARGUMENT 01 15 0 +1 CNST $ENT$ 01 16 0 +1 CNST 35449625753 15 MISPLACED 01 17 0 +1 CNST $ACED$ 01 18 0 +1 CNST $LABEL$ 17 LABEL 01 19 0 +1 CNST 34159496348 18 ARITHMETIC 01 20 0 +1 CNST $METIC$ 01 21 0 +1 CNST 35657455941 20 OPERATION 01 22 0 +1 CNST $TION$ 01 23 0 +1 CNST 36541594941 22 VARIABLE 01 24 0 +1 CNST $BLE$ 01 25 0 +1 CNST 36268544256 24 SYMBOL 01 26 0 +1 CNST $L$ 01 27 0 +1 CNST 34445434954 26 DECIMAL 01 28 0 +1 CNST $AL$ 01 29 0 +1 CNST $POINT$ 28 POINT 01 30 0 +1 CNST $SCALE$ 29 SCALE 01 31 0 +1 CNST 34641436356 30 FACTOR 01 32 0 +1 CNST $R$ 01 33 0 +1 CNST 36263416345 32 STATEMENT 01 34 0 +1 CNST $MENT$ 01 35 0 +1 CNST 34356556263 34 CONSTANT 01 36 0 +1 CNST $ANT$ 01 37 0 +1 CNST $OUT$ 36 OUT 01 38 0 +1 CNST $OF$ 37 OF 01 39 0 +1 CNST $RANGE$ 38 RANGE 01 40 0 +1 CNST 34356545749 39 COMPILER 01 41 0 +1 CNST $LER$ 01 42 0 +1 CNST 34341574143 41 CAPACITY 01 43 0 +1 CNST $ITY$ 01 44 0 +1 CNST 34567434545 43 EXCEEDED 01 45 0 +1 CNST $DED$ 01 46 0 +1 CNST $COMMA$ 45 COMMA 01 47 0 +1 CNST $EXTRA$ 46 EXTRA 01 48 0 +1 CNST 36264426243 47 SUBSCRIPT 01 49 0 +1 CNST $RIPT$ 01 50 0 +1 CNST $EMPTY$ 49 EMPTY 01 51 0 +1 CNST 35756624963 50 POSITION 01 52 0 +1 CNST $ION$ 01 53 0 +1 CNST $RIGHT$ 52 RIGHT 01 54 0 +1 TEMP CNST $LEFT$ NOT USED 01 55 0 +1 CNST 35741594555 54 PARENTHESIS 01 56 0 +1 CNST 36348456249 01 57 0 +1 EX0 CNST 26200007777 01 58 0 +1 CNST 35945534163 57 RELATION 01 59 0 +1 CNST $ION$ 01 60 0 +1 CNST 34256565345 59 BOOLEAN 01 61 0 +1 CNST $AN$ 01 62 0 +1 CNST 35657455941 61 OPERAND 01 63 0 +1 CNST $ND$ 01 64 0 +1 CNST $ARRAY$ 63 ARRAY 01 65 0 +1 CNST 34445435341 64 DECLARATION 01 66 0 +1 CNST 35941634956 01 67 0 +1 CNST $N$ 01 68 0 +1 CNST 34162624947 67 ASSIGNMENT 01 69 0 +1 CNST $NMENT$ 01 70 0 +1 CNST $MOD$ 69 MOD 01 71 0 +1 CNST $INPUT$ 70 INPUT 01 72 0 +1 CNST 35449626249 71 MISSING 01 73 0 +1 CNST $NG$ 01 74 0 +1 +1 TEMPORARY STORAGE AND COUNTERS +1 +1 ABASE CNST 100000 BEGINNING LOCATION OF LAST ARRAY DECLARED 01 78 0 +1 ACCUM HLT 0 RESULT OF ARITHMETIC OPERATION 01 79 0 +1 ARRI HLT 0 PRODUCT OF ARRAY DIMENSIONS 01 80 0 +1 ARRL HLT 0 BASE DECREMENT IN ARRAY DECLARATION 01 81 0 +1 ARTHM HLT 0 IJ-PAIRS FOR ARITHMETIC GENERATOR 01 82 0 +1 CHAR HLT 0 LAST CHARACTER READ FROM CARD 01 83 0 +1 CNTRI HLT 0 COUNTER FOR INSTRUCTIONS IN TARGET BUFFER 01 84 0 +1 CNTRF HLT 96 COUNTER FOR FIX-UPS IN BUFFER 01 85 0 +1 D HLT 0 EXPONENT OF NUMBER 01 86 0 +1 WRTF RTF 4 *,0 RECORD TRANSFER CONSTANT FOR WRITE SUBROUTINE 01 87 0 +1 DESCR HLT 0 OUTPUT INSTRUCTION 01 88 0 +1 EXPLN HLT 0 SYMBOL ADDRESSES OF INSTRUCTION 01 89 0 +1 DEX HLT 0 CURRENT CONTENTS OF B REGISTER 01 90 0 +1 FP HLT 0 FRACTIONAL PART OF CONSTANT 01 91 0 +1 FRSTP HLT 0 1ST PARAMETER TO PROCEDURE DECLARATION 01 92 0 +1 G HLT 0 SIGN OF INSTRUCTION FOR ASSEMBLER 01 93 0 +1 GP HLT 0 TEMP STORAGE OF G 01 94 0 +1 I HLT 0 LEFTHAND DIGIT OF IJ-PAIR 01 95 0 +1 INSTP HLT 0 TEMP STORAGE OF INSTR 01 96 0 +1 INSTR HLT 0 INSTRUCTION BEING ASSEMBLED 01 97 0 +1 IOPUS HLT 0 I-O DECLARATION COMMUNICATION LINE 01 98 0 +1 IRSTP HLT 0 FRSTP IN 64-FIELD 01 99 0 +1 J HLT 0 RIGHTHAND DIGIT OF IJ-PAIR 02 00 0 +1 K HLT 0 TWICE NUMBER OF CHARACTERS IN IDENTIFIER 02 01 0 +1 K1 HLT 3 LEFT CHARACTER TYPE -- INITIALLY LEFT PAREN 02 02 0 +1 K2 HLT 3 RIGHT CHARACTER TYPE 02 03 0 +1 KC HLT 0 NUMBER OF PROCEDURE AND FUNCTION DECLARATIONS 02 04 0 +1 L HLT 0 CODE WORD FOR PRESENT IDENTIFIER 02 05 0 +1 LCMAX HLT 0 HIGHEST LOCATION USED IN SEGMENTS 02 06 0 +1 LEVEL HLT 0 KC LEVEL OF CURRENT PROCEDURE DECLARATION 02 07 0 +1 LL0 HLT 0 SCRAMBLED STARTING VALUE FOR ALPHA LOOKUP 02 08 0 +1 LOCNP HLT 0 TEMP STORAGE OF LOCN 02 09 0 +1 LP HLT 0 TEMP STORAGE OF L 02 10 0 +1 LRTF HLT 0 LOCATION OF LAST RTF IN OUTPUT BUFFER 02 11 0 +1 MSG HLT 8 STORAGE FOR ERROR MESSAGES 02 12 0 +1 LOCN *+6 02 13 0 +1 HALT1 DEFN MSG 02 14 0 +1 OPRTM HLT 0 RELATIONAL OPERATION 02 15 0 +1 OPRTN HLT 0 CURRENT OPERATION SENT TO GENERATORS 02 16 0 +1 PAR HLT 0 CURRENT DIMENSION OF ARRAY 02 17 0 +1 PLOC HLT 0 BEGINNING OF PROCEDURE DECLARATION CODE 02 18 0 +1 RR1 HLT 0 OTHERWISE TYPE OF MAIN PROGRAM 02 19 0 +1 RR2 HLT 0 TYPE OF CURRENT DECLARATION 02 20 0 +1 RR3 HLT 0 OTHERWISE TYPE OF CURRENT PROGRAM 02 21 0 +1 S1 HLT 24 LEFT CHARACTER (CARDATRON CODE) INITIALLY ( 02 22 0 +1 S2 HLT 24 RIGHT CHARACTER (CARDATRON CODE) 02 23 0 +1 SAVOP HLT 0 TEMP STORAGE FOR OPERATOR 02 24 0 +1 SCNCT HLT 2 CURRENT PLACE IN CARD IMAGE 02 25 0 +1 SER HLT 0 LOCATION OF A-REGISTER CONTENTS IN STACK 02 26 0 +1 SMBL HLT 0 TEMP STORAGE FOR SCANNED SYMBOL 02 27 0 +1 STSV HLT 0 CIRCLE J(INPUT) OR CIRCLE K(OUTPUT) 02 28 0 +1 RR0 HLT 0 CONTROL CODE FOR SYMBL 02 29 0 +1 SYMBL HLT 0 02 30 0 +1 HLT 0 STORAGE FOR 50-CHARACTER IDENTIFIER 02 31 0 +1 HLT 0 02 32 0 +1 HLT 0 02 33 0 +1 HLT 0 02 34 0 +1 HLT 0 02 35 0 +1 HLT 0 02 36 0 +1 HLT 0 02 37 0 +1 HLT 0 02 38 0 +1 HLT 0 02 39 0 +1 V1 HLT 0 V-OPERANDS ARE SET UP BY GENERATOR 02 40 0 +1 V2 HLT 0 AND USED BY ASSEMBLER 02 41 0 +1 V3 HLT 0 02 42 0 +1 V4 F244 21,XONE,0 CONSTANT 1 02 43 0 +1 V5 F244 20,FONE,0 CONSTANT 1.0 02 44 0 +1 V6 F244 21,XZERO,0 CONSTANT 0 02 45 0 +1 V7 F244 20,FZERO,0 CONSTANT 0.0 02 46 0 +1 V8 F244 40,LALE,0 02 47 0 +1 V9 HLT 02 48 0 +1 V10 F244 21,XTWO,0 CONSTANT 2 02 49 0 +1 V11 F244 20,FTWO,0 CONSTANT 2.0 02 50 0 +1 VARB HLT MSIZE LAST LOCATION USED FOR TARGET VARIABLES,ETC. 02 51 0 +1 VIMAG HLT 0 CURRENT V-OPERAND 02 52 0 +1 V DEFN V1-1 02 53 0 +1 +1 SWITCHES SET BY TRANSLATOR +1 SW2 HLT 0 PROCESSING SCALE FACTOR 02 56 0 +1 SW3 HLT 0 DECIMAL POINT SENSED IN CONSTANT 02 57 0 +1 SW6 HLT 0 WE MIGHT WANT IMPLIED MULTIPLICATION 02 58 0 +1 ALPHA HLT 1 CONTROL OF ITERATION LIST 02 59 0 +1 DELTA HLT 0 CONTROLS WHAT TO DO AT NEXT SEMICOLON 02 60 0 +1 EPSLN HLT 0 NUMBER OF EXTERNAL THINGS 02 61 0 +1 KAPPA HLT 0 EMPTY SUBSCRIPTS HAVE APPEARED 02 62 0 +1 PHI HLT 0 IGNORE NEXT LEFT PARENTHESIS 02 63 0 +1 PSI HLT 0 NEXT FORWARD REFERENCE IS INCREMENTED 02 64 0 +1 CHI HLT 0 MONITOR LABELS IN CURRENT PROGRAM 02 65 0 +1 CHI3 HLT 0 MONITOR LABELS OUTSIDE OF PROCEDURES 02 66 0 +1 OMEGA HLT 0 FOR MODE IN ASSIGNMENT GENERATOR 02 67 0 +1 FNSW HLT 0 PROCESSING FUNCTION DECLARATION 02 68 0 +1 PARSW HLT 0 PROCESSING PROCEDURE OR FUNCTION PARAMETERS 02 69 0 +1 TAG HLT 0 IDENTIFIER IS A LABEL 02 70 0 +1 XI HLT 0 LAST INSTRUCTION ASSEMBLED WAS SLT10 02 71 0 +1 LAMDA HLT 0 OTHERWISE HAS APPEARED IN EITHER IF CASE 02 72 0 +1 PI HLT 0 PUT FORWARD REFERENCE OPERATORS ON EXEC STACK 002 73 0 +1 IOTA HLT 0 ARRAY NOT YET DECLARED 02 74 0 +1 OMCRN HLT 0 IGNORE NEXT SEMICOLON 02 75 0 +1 +1 STACKS IN ASSOCIATIVE MEMORY +1 AVAIL F424 0000,0,0 FREED-UP LOCATIONS 02 78 0 +1 FUNS F424 FUNS,0,0 CONTROL OF PROCEDURE,FUNCTION CALLS 02 79 0 +1 OP F424 OP,0,0 OPERATORS WAITING TO BE USED 02 80 0 +1 ARAS F424 ARAS,0,0 INCREMENT WORDS FOR ARRAY 02 81 0 +1 DIMS F424 DIMS,0,0 ARRAY DIMENSIONS 02 82 0 +1 EXEC F424 EXEC,0,0 FORWARD REFERENCES TO FOR LOOP 02 83 0 +1 FV F424 FV,0,0 FOR VARIABLE 02 84 0 +1 MULS F424 MULS,0,0 DIMENSIONS 02 85 0 +1 MODE F424 MODE,0,NRMMD MODE TRANSLATOR IS IN (INITIALLY NORMAL) 002 86 0 +1 MULT F424 MULT,0,0 MULS STACK BACKWARDS 02 87 0 +1 OPRND F424 OPRND,0,0 OPERANDS WAITING TO BE USED 02 88 0 +1 PAREF F424 PAREF,0,0 REFERENCE TO PROCEDURE PARAMETERS 02 89 0 +1 PR1 F424 PR3,0,0 PREFIXES OUTSIDE OF PROCEDURES 02 90 0 +1 PR3 F424 PR3,0,0 CURRENT PREFIXES 02 91 0 +1 RV F424 RV,0,0 FOR VARIABLE (BACKWARDS) 02 92 0 +1 SAVET F424 SAVET,0,0 TEMP STORAGE CELLS SAVED 02 93 0 +1 SETUP F424 SETUP,0,0 REFERENCE TO A PROCEDURE PARAMETER 02 94 0 +1 TEMPS F424 TEMPS,0,0 TEMP STORAGE CELLS AVAILABLE 02 95 0 +1 XVP F424 XVP,0,0 ARRAYS IN MULTIPLE INDEXING 02 96 0 +1 DUMBS F424 DUMBS,0,0 LEVELS WHERE DUMP CARD APPEARS 02 97 0 +1 +1 +1 OPTAB DEFN * TABLE OF OPERATION SYMBOLS 03 00 0 +1 CRA F2443 0,GCRA,1 00 INPUT OR OUTPUT 03 01 0 +1 CRB F2441 01,GCRB,1 01 EQUAL 03 02 0 +1 CRC F2442 00,GCRC,1 02 FUNCTION CALL COMMA 03 03 0 +1 DOT F2440 12,0048,1 03 . MULTIPLICATION 03 04 0 +1 RPAR F2440 00,0000,3 04 ) RIGHT PARENTHESIS 03 05 0 +1 CRD F2441 41,GCRD,1 05 MOD COMMA 03 06 0 +1 CRE F2443 00,GCRE,1 06 EITHER 03 07 0 +1 CRF F2441 00,GCRF,1 07 ARRAY DECLARATION 03 08 0 +1 CRG F2442 00,GCRG,1 08 ARRAY DECLARATION 03 09 0 +1 CRH F2442 00,GCRH,1 09 SWITCH 03 10 0 +1 PLUS F2440 10,0000,1 10 + ADDITION 03 11 0 +1 CRI F2443 00,GCRI,1 11 INPUT OR OUTPUT 03 12 0 +1 CRJ F2442 00,GCRJ,1 12 INPUT LABEL COMMA 03 13 0 +1 SMCLN F2446 00,SEMI,5 13 $ SEMICOLON 03 14 0 +1 EXPN F2441 14,GEXPN,1 14 * EXPONENTIATION 03 15 0 +1 CRK F2443 00,GCRK,1 15 OUTPUT LABEL COMMA 03 16 0 +1 TEMP1 CNST 0 NOT USED 03 17 0 +1 CRM F2443 00,GCRM,1 17 MONITOR 03 18 0 +1 CRN F2441 00,GCRN,1 18 PARAMETRIC ARRAY 03 19 0 +1 CRO F2441 41,GCRO,1 19 FUNCTION CALL 03 20 0 +1 HYPH F2443 14,GHYPH,1 20 - NEGATION 03 21 0 +1 SOLD F2440 11,0024,1 21 / DIVISION 03 22 0 +1 CRP F2443 00,GCRP,1 22 PROCEDURE 03 23 0 +1 KOMA F2446 00,COMMA,5 23 , COMMA 03 24 0 +1 LPAR F2440 00,0000,2 24 ( LEFT PARENTHESIS 03 25 0 +1 CRQ F2443 00,GCRQ,1 25 PROCEDURE 03 26 0 +1 CRR F2441 40,GCRR,1 26 ARRAY 03 27 0 +1 CRS F2443 00,GCRS,1 27 SUBROUTINE 03 28 0 +1 CRT F2442 00,GCRT,1 28 GO TO 03 29 0 +1 CRU F2442 00,GCRU,1 29 UNTIL 03 30 0 +1 CRV F2443 00,GCRV,1 30 SEGMENT 03 31 0 +1 CRW F2443 00,GCRW,1 31 OTHERWISE 03 32 0 +1 CRX F2443 00,GCRX,1 32 FOR 03 33 0 +1 SBST F2446 00,EQUL,5 33 = ASSIGNMENT 03 34 0 +1 CRY F2442 00,GCRY,1 34 FIX 03 35 0 +1 CRZ F2442 00,GCRZ,1 35 STOP 03 36 0 +1 TEMP3 CNST 0 NOT USED 03 37 0 +1 BREF F2445 00,0000,1 37 BACKWARD REFERENCE 03 38 0 +1 TOP CNST 0 NOT USED 03 39 0 +1 CWEND F2446 00,END,1 39 END 03 40 0 +1 CWNDX F2446 00,NDXMD,4 40 ARRAY CALL 03 41 0 +1 CWARD F2446 00,ARDEC,1 41 ARRAY DECLARATION 03 42 0 +1 CWEMP F2446 00,EMPTY,5 42 EMPTY SUBSCRIPT 03 43 0 +1 CWLAB F2446 00,LABMD,4 43 LABEL IN DECLARATION 03 44 0 +1 CWAPM F2446 00,ARAPM,1 44 ARRAY PARAMETER 03 45 0 +1 CWCLN F2446 00,FUNMD,4 45 FUNCTION,PROCEDURE CALL 03 46 0 +1 BOR F2440 22,0203,1 46 BOOLEAN OR 03 47 0 +1 OPIF F2442 00,GIF,1 47 IF 03 48 0 +1 RGEQ F2448 01,0024,1 48 GEQ 03 49 0 +1 RLEQ F2448 01,0012,1 49 LEQ 03 50 0 +1 OPMAX F2440 00,0100,1 50 MAX 03 51 0 +1 OPMIN F2440 00,0112,1 51 MIN 03 52 0 +1 CROY F2443 22,GCROY,1 52 TRACE 03 53 0 +1 +1 VARIOUS MODES +1 ARAMD F244 0,ARACM,ARRAY ARRAY DECLARATION MODE 03 56 0 +1 ARFMD F244 0,ARFCM,ARFCM ARRAY-FILL MODE 03 57 0 +1 DCLMD DEFN * TYPE DECLARATION MODES 03 58 0 +1 INTMD F244 0,DCLCM,INTG INTEGER DECLARATION MODE 03 59 0 +1 FLTMD F244 0,DCLCM,FLTG FLOATING DECLARATION MODE 03 60 0 +1 FORMD F244 1,FORCM,FOR FOR MODE (PROCESSING ITERATION LIST) 003 61 0 +1 FRMMD F2449 0,FRMCM,FRMT FORMAT DECLARATION MODE 03 62 0 +1 FUNMD F244 0,FUNCM,COLON FUNCTION MODE (SETTING UP PARAMETERS) 003 63 0 +1 INNMD F2449 1,PUTCM,INPUT INPUT DECLARATION MODE 03 64 0 +1 MAXMD F244 0,MAXCM,NORM MAX MODE 03 65 0 +1 MINMD F244 0,MINCM,NORM MIN MODE 03 66 0 +1 MODMD F244 0,MODCM,NORM MOD MODE 03 67 0 +1 NDXMD F244 0,NDXCM,INDEX INDEX MODE (PROCESSING SUBSCRIPTS) 003 68 0 +1 NRMMD F2441 10,0,0 NORMAL MODE 03 69 0 +1 OUTMD F2449 1,PUTCM,OUTPT OUTPUT DECLARATION MODE 03 70 0 +1 PRCMD F244 0,PRCCM,PROCD PROCEDURE DECLARATION MODE 03 71 0 +1 SWMD F244 0,SWCM,SWTCH SWITCH MODE 03 72 0 +1 FNCMD F244 0,PRCCM,FUNC FUNCTION DECLARATION MODE 03 73 0 +1 LABMD F2442 0,LABCM,LABEL LABEL MODE (OUTSIDE OF I-O,FORMAT MODES) 003 74 0 +1 EXTMD F2448 1,FRMCM,EXTRN EXTERNAL MODE 03 75 0 +1 MEMMD F2447 1,ARACM,MEMST TRACE MODE 03 76 0 +1 +1 RESERVED WORDS +1 SUBGN F4246 7001,0,SUBR 03 79 0 +1 CNST $SUBROUTINE$ 03 80 0 +1 UNTGN F4246 7001,0,UNTIL (DO A SLA 4 ON THESE CODES) 03 81 0 +1 CNST $UNTIL$ TO GET THEIR TRUE SIGNIFICANCE) 003 82 0 +1 INPGN F4246 7004,0,INNMD 03 83 0 +1 CNST $INPUT$ 03 84 0 +1 RETGN F4246 7001,0,RETN 03 85 0 +1 CNST $RETURN$ 03 86 0 +1 IFGN F4246 7691,0,IF 03 87 0 +1 CNST $IF$ 03 88 0 +1 IMPGN F4240 7001,20,1209 03 89 0 +1 CNST $IMPL$ 03 90 0 +1 ORGN F4246 7001,0,OR 03 91 0 +1 CNST $OR$ 03 92 0 +1 GOGN F4246 7001,0,GO 03 93 0 +1 CNST $GO$ 03 94 0 +1 OUTGN F4246 7004,0,OUTMD 03 95 0 +1 CNST $OUTPUT$ 03 96 0 +1 EITGN F4246 7001,0,ETHR 03 97 0 +1 CNST $EITHER$ 03 98 0 +1 BOOGN F4246 7004,0,INTMD 03 99 0 +1 CNST $BOOLEAN$ 04 00 0 +1 COMGN F4246 7001,0,COMNT 04 01 0 +1 CNST $COMMENT$ 04 02 0 +1 LEQGN F4248 7001,01,12 04 03 0 +1 CNST $LEQ$ 04 04 0 +1 FORMG F4246 7004,0,FRMMD 04 05 0 +1 CNST $FORMAT$ 04 06 0 +1 MINGN F4246 7404,0,MINMD 04 07 0 +1 CNST $MIN$ 04 08 0 +1 NEQGN F4248 7001,01,6 04 09 0 +1 CNST $NEQ$ 04 10 0 +1 FLOGN F4246 7004,0,FLTMD 04 11 0 +1 CNST $FLOATING$ 04 12 0 +1 INTGN F4246 7004,0,INTMD 04 13 0 +1 CNST $INTEGER$ 04 14 0 +1 FORGN F4246 7004,0,FORMD 04 15 0 +1 CNST $FOR$ 04 16 0 +1 PROGN F4246 7004,0,PRCMD 04 17 0 +1 CNST $PROCEDURE$ 04 18 0 +1 MAXGN F4246 7404,0,MAXMD 04 19 0 +1 CNST $MAX$ 04 20 0 +1 FINGN F4246 7001,0,FINSH 04 21 0 +1 CNST $FINISH$ 04 22 0 +1 PCSGN F4242 7401,41,GPCS 04 23 0 +1 CNST $PCS$ 04 24 0 +1 SEGGN F4246 7001,0,SGMT 04 25 0 +1 CNST $SEGMENT$ 04 26 0 +1 OVEGN F4246 7001,0,OVRLY 04 27 0 +1 CNST $OVERLAY$ 04 28 0 +1 ENTGN F4246 7001,0,ENTER 04 29 0 +1 CNST $ENTER$ 04 30 0 +1 GTRGN F4248 7001,01,18 04 31 0 +1 CNST $GTR$ 04 32 0 +1 ARRGN F4246 7004,0,ARAMD 04 33 0 +1 CNST $ARRAY$ 04 34 0 +1 OTHGN F4246 7005,0,WISE 04 35 0 +1 CNST $OTHERWISE$ 04 36 0 +1 FUNGN F4246 7004,0,FNCMD 04 37 0 +1 CNST $FUNCTION$ 04 38 0 +1 NOTGN F4242 7001,24,GBNOT 04 39 0 +1 CNST $NOT$ 04 40 0 +1 LSSGN F4248 7001,01,30 04 41 0 +1 CNST $LSS$ 04 42 0 +1 MONGN F4246 7001,0,MONT 04 43 0 +1 CNST $MONITOR$ 04 44 0 +1 SWIGN F4246 7004,0,SWMD 04 45 0 +1 CNST $SWITCH$ 04 46 0 +1 STOGN F4246 7001,0,STOP 04 47 0 +1 CNST $STOP$ 04 48 0 +1 FIXGN F244 06,FIX,0 04 49 0 +1 GSEG F244 14,SEGGN,0 04 50 0 +1 GNARR F244 10,ARRGN,0 04 51 0 +1 ANDGN F4240 7001,23,0200 04 52 0 +1 CNST $AND$ 04 53 0 +1 EXTGN F4246 7004,0,EXTMD 04 54 0 +1 CNST $EXTERNAL$ 04 55 0 +1 REAL F4246 7004,00,FLTMD 04 56 0 +1 CNST $REAL $ 04 57 0 +1 DUMPE F4246 7001,0,DUMP 04 58 0 +1 CNST $DUMP$ 04 59 0 +1 MEMRY F4246 7004,0,MEMMD 04 60 0 +1 CNST $TRACE$ 04 61 0 +1 STAX F2446 73,0199,0 THERE ARE MORE RESERVED WORD CODES 04 62 0 +1 CNST $STATEMENT$ SCATTERED THROUGH TABSC 04 63 0 +1 +1 +1 TABSC F4248 8888,30,R1 AA 04 66 0 +1 F4248 8888,30,R1 AN TABLE OF ADMISSIBLE 04 67 0 +1 F4248 8888,30,R3 A) CHARACTER PAIRS AND 004 68 0 +1 F4248 8888,30,R2 A( CORRESPONDING R-ROUTINES 004 69 0 +1 F4248 8888,30,R17 A, IN SCANNER 04 70 0 +1 F4248 8888,30,R3 A$ 04 71 0 +1 F4248 8888,30,R3 A, 04 72 0 +1 F4248 8888,30,R3 A* 04 73 0 +1 F4248 8888,30,R11 A- 04 74 0 +1 F4248 8888,30,R3K AP A=ALPHA 04 75 0 +1 F4248 8888,30,R4 NA N=NUMBER 04 76 0 +1 F4248 8888,30,R5 NN P=PLUS,DIVIDE,OR EQUALS 004 77 0 +1 F4248 8888,30,R6 N) 04 78 0 +1 F4248 8888,30,R19 N( 04 79 0 +1 F4248 8888,30,R20 N. 04 80 0 +1 F4248 8888,30,R6 N$ 04 81 0 +1 F4248 8888,30,R6 N, 04 82 0 +1 F4248 8888,30,R22 N* 04 83 0 +1 F4248 8888,30,R18 N- 04 84 0 +1 F4248 8888,30,R6 NP 04 85 0 +1 F4248 8888,30,R7P )A 04 86 0 +1 F4248 8888,30,R21 )N 04 87 0 +1 F4248 8888,30,R8 )) 04 88 0 +1 F4248 8888,30,R10 )( 04 89 0 +1 F4248 8888,30,R8 ). 04 90 0 +1 F4248 8888,30,R8 )$ 04 91 0 +1 F4248 8888,30,R8 ), 04 92 0 +1 F4248 8888,30,R8 )* 04 93 0 +1 F4248 8888,30,R12 )- 04 94 0 +1 F4248 8888,30,R8 )P 04 95 0 +1 F4248 8888,30,R7 (A 04 96 0 +1 F4248 8888,30,R23 (N 04 97 0 +1 F4248 8888,30,R25 () 04 98 0 +1 F4248 8888,30,R8 (( 04 99 0 +1 F244 14,COMGN,0 (. ILLEGAL 05 00 0 +1 F4248 8888,30,R26 ($ 05 01 0 +1 F4248 8888,30,R25 (, 05 02 0 +1 F244 06,LEQGN,0 (* ILLEGAL 05 03 0 +1 F4248 8888,30,R8 (- 05 04 0 +1 F4248 8888,30,R9 (P 05 05 0 +1 F4248 8888,30,R7 .A 05 06 0 +1 F4248 8888,30,R23 .N 05 07 0 +1 F244 06,NEQGN,0 .) ILLEGAL 05 08 0 +1 F4248 8888,30,R8 .( 05 09 0 +1 F244 14,INTGN,TABSC+72 .. ILLEGAL 05 10 0 +1 F244 18,PROGN,0 .$ ILLEGAL 05 11 0 +1 F244 12,FINGN,*+1 ., ILLEGAL 05 12 0 +1 F244 06,PCSGN,FIXGN .* ILLEGAL 05 13 0 +1 F4248 8888,30,R8 .- 05 14 0 +1 F4248 8888,30,R9 .P 05 15 0 +1 F4248 8888,30,R7 $A 05 16 0 +1 F4248 8888,30,R23 $N 05 17 0 +1 F4248 8888,30,R27 $) 05 18 0 +1 F4248 8888,30,R8 $( 05 19 0 +1 F244 20,SUBGN,0 $. ILLEGAL 05 20 0 +1 F4248 8888,30,R26 $$ 05 21 0 +1 SIGGN F4242 7401,41,GSIGN $, ILLEGAL 05 22 0 +1 CNST $SIGN$ $* ILLEGAL 05 23 0 +1 F4248 8888,30,R8 $- 05 24 0 +1 F4248 8888,30,R9 $P 05 25 0 +1 F4248 8888,30,R7 ,A 05 26 0 +1 F4248 8888,30,R23 ,N 05 27 0 +1 F4248 8888,30,R25 ,) 05 28 0 +1 F4248 8888,30,R8 ,( 05 29 0 +1 EQIGN F4240 7001,21,0206 ,. ILLEGAL 05 30 0 +1 CNST $EQUIV$ ,$ ILLEGAL 05 31 0 +1 F4248 8888,30,R25 ,, 05 32 0 +1 F244 08,SIGGN,0 ,* ILLEGAL 05 33 0 +1 F4248 8888,30,R8 ,- 05 34 0 +1 F4248 8888,30,R9 ,P 05 35 0 +1 F4248 8888,30,R7 *A 05 36 0 +1 F4248 8888,30,R23 *N 05 37 0 +1 F2441 10,FONE,TABSC+82 *) ILLEGAL 05 38 0 +1 F4248 8888,30,R8 *( 05 39 0 +1 TOGN F4246 7001,0,TO *. ILLEGAL 05 40 0 +1 CNST $TO$ *$ ILLEGAL 05 41 0 +1 BEGGN F4240 7002,0,0 *, ILLEGAL 05 42 0 +1 CNST $BEGIN$ ** ILLEGAL 05 43 0 +1 F4248 8888,30,R8 *- 05 44 0 +1 F4248 8888,30,R9 *P 05 45 0 +1 F4248 8888,30,R7 -A 05 46 0 +1 F4248 8888,30,R23 -N 05 47 0 +1 F244 10,FLOAT,0 -) ILLEGAL 05 48 0 +1 F4248 8888,30,R8 -( 05 49 0 +1 ENDGN F4246 7001,0,END -. ILLEGAL 05 50 0 +1 CNST $END$ -$ ILLEGAL 05 51 0 +1 ABSGN F4242 7401,41,GABSF -, ILLEGAL 05 52 0 +1 CNST $ABS$ -* ILLEGAL 05 53 0 +1 GEQGN F4248 7001,01,0024 -- ILLEGAL 05 54 0 +1 CNST $GEQ$ -P ILLEGAL 05 55 0 +1 F4248 8888,30,R7 PA 05 56 0 +1 F4248 8888,30,R23 PN 05 57 0 +1 F2440 08,STOGN,0 P) ILLEGAL 05 58 0 +1 F4248 8888,30,R8 P( 05 59 0 +1 MODGN F4246 7404,0,MODMD P. ILLEGAL 05 60 0 +1 CNST $MOD$ P$ ILLEGAL 05 61 0 +1 EQLGN F4248 7001,01,0 P, ILLEGAL 05 62 0 +1 CNST $EQL$ P* ILLEGAL 05 63 0 +1 F4248 8888,30,R8 P- 05 64 0 +1 F4248 8888,30,R9 PP 05 65 0 +1 +1 +1 VOCAB DEFN * TABLE OF 220 OPERATIONS WE CAN DO 05 68 0 +1 CADV1 CNST 00000100001 01 05 69 0 +1 CADV2 CNST 00000100002 02 05 70 0 +1 CADX1 CNST 00000100004 03 05 71 0 +1 CADF1 CNST 00000100005 04 5 72 0 +1 CADL1 CNST 60000100001 05 05 73 0 +1 CSUV1 CNST 00000110001 06 SIGN OF -,1, OR 3.. 05 74 0 +1 CSUV2 CNST 00000110002 07 ADDRESS I IS TO BE REPLACED BY 05 75 0 +1 ADDV1 CNST 00000120001 08 V(I) AND IF V(I) IS AN 05 76 0 +1 ADDV2 CNST 00000120002 09 ARRAY WE MUST ALSO COMPUTE 05 77 0 +1 ADDL1 CNST 60000120001 10 ITS SUBSCRIPT AND LOAD B 05 78 0 +1 FADV1 CNST 00000220001 11 5 79 0 +1 FADV2 CNST 00000220002 12 05 80 0 +1 SUBV1 CNST 00000130001 13 SIGN OF 1.. DONT RELEASE 05 81 0 +1 SUBV2 CNST 00000130002 14 TEMPORARY STORAGE CELL. 05 82 0 +1 SUBX1 CNST 00000130004 15 IF V(I) IS AN ARRAY DONT RELEASE 05 83 0 +1 FSUV1 CNST 00000230001 16 THE INCREMENT WORD 05 84 0 +1 FSUV2 CNST 00000230002 17 05 85 0 +1 MULV1 CNST 00000140001 18 05 86 0 +1 MULV2 CNST 00000140002 19 SIGN OF 3.. THIS IS A PSEUDO-OP. 05 87 0 +1 FMUV1 CNST 00000240001 20 WE GET READY TO CALCULATE V(I) 05 88 0 +1 FMUV2 CNST 00000240002 21 BUT DONT ACTUALLY FINISH 05 89 0 +1 DIVV1 CNST 00000150001 22 05 90 0 +1 DIVV2 CNST 00000150002 23 05 91 0 +1 FDVV1 CNST 00000250001 24 SIGN OF 4.. ADDRESS IS ABSOLUTE 05 92 0 +1 SHIFT CNST 40000000000 25 SIGN OF 5.. SAME, B-MODIFIED 05 93 0 +1 CFAV1 CNST 10000180001 26 05 94 0 +1 CFAV2 CNST 10000180002 27 05 95 0 +1 EXTV1 CNST 00000170001 28 SIGN OF 6.. ADDRESS IS RELATIVE 05 96 0 +1 EXTV2 CNST 00000170002 29 TO LOCATION 05 97 0 +1 STAV1 CNST 00000400001 30 05 98 0 +1 STAV2 CNST 00000400002 31 5 99 0 +1 STAT1 CNST 10000400001 32 SIGN OF 7,8, OR 9.. 06 00 0 +1 STAT2 CNST 10000400002 33 ADDRESS IS BLANKED OUT 06 01 0 +1 STAL2 CNST 61110400002 34 06 02 0 +1 STAI CNST 40410400000 35 6 03 0 +1 STAAB CNST 50000400000 36 SIGN OF 8.. FORWARD REFERENCE 06 04 0 +1 BUNV1 CNST 00000300001 37 IS PUT ON STACK 06 05 0 +1 BUNV2 CNST 00000300002 38 SIGN OF 9.. SAME, INCREMENTED 06 06 0 +1 BUNV3 CNST 00000300003 39 06 07 0 +1 BUNZ CNST 70000300400 40 6 08 0 +1 BUNBZ CNST 50000300000 41 6 09 0 +1 BUNI CNST 40000300000 42 6 10 0 +1 BUN3V CNST 00000300003 43 6 11 0 +1 BUNL2 CNST 60000300002 44 6 12 0 +1 BSALN CNST 60001330003 45 06 13 0 +1 BSALT CNST 60000330003 46 06 14 0 +1 BZAL2 CNST 60000360002 47 06 15 0 +1 BZAL3 CNST 60000360003 48 06 16 0 +1 BZAL4 CNST 60000360004 49 06 17 0 +1 BNZAF CNST 80101369999 50 06 18 0 +1 NOPZ CNST 70000010000 51 6 19 0 +1 NOPV1 CNST 00000100001 52 6 20 0 +1 NOPV2 CNST 00000010002 53 6 21 0 +1 NOPAV F424 0,01,TOP-V 54 06 22 0 +1 SLT10 CNST 40001490010 55 6 23 0 +1 SLTZ CNST 40001490000 56 06 24 0 +1 SLT30 CNST 40001490030 57 06 25 0 +1 SRT10 CNST 40001480010 58 06 26 0 +1 SRTZ CNST 40001480000 59 6 27 0 +1 SLA9 CNST 40000490009 60 06 28 0 +1 LDBI CNST 40000420000 61 6 29 0 +1 LDBL0 CNST 60000420000 62 06 30 0 +1 LBCV1 CNST 00001420001 63 06 31 0 +1 DLBV2 CNST 04400280002 64 06 32 0 +1 LSA0 CNST 40000430000 65 06 33 0 +1 LSA1 CNST 40001430000 66 06 34 0 +1 LSA9 CNST 40009430000 67 06 35 0 +1 STPZ CNST 70000440000 68 6 36 0 +1 STPV2 CNST 00000440002 69 6 37 0 +1 STPV3 CNST 00000440003 70 6 38 0 +1 BCSL2 CNST 60000380002 71 6 39 0 +1 CLA CNST 40001450002 72 6 40 0 +1 IBBI CNST 40002200000 73 6 41 0 +1 LDRV1 CNST 00000410001 74 6 42 0 +1 HLTZ CNST 40137007310 75 06 43 0 +1 CAAV1 CNST 00001100001 76 06 44 0 +1 CSAV1 CNST 00001110001 77 06 45 0 +1 NDXV1 CNST 30000000001 78 06 46 0 +1 NDXV2 CNST 30000000002 79 06 47 0 +1 BCHL2 CNST 60000340002 80 06 48 0 +1 BCLL2 CNST 60001340002 81 06 49 0 +1 BCUL2 CNST 60011350002 82 06 50 0 +1 ADDX1 CNST 00000120004 83 06 51 0 +1 CLLV2 CNST 00000460002 84 6 52 0 +1 BZAFR CNST 80000369999 85 06 53 0 +1 BSAFN CNST 80001339999 86 6 54 0 +1 BSAFP CNST 80000339999 87 06 55 0 +1 BUNFR CNST 80000309999 88 06 56 0 +1 STPA F4244 0,44,LODOX 89 06 57 0 +1 BUNA F4244 0,30,LODOV 90 06 58 0 +1 BFILR CNST 60101360002 91 06 59 0 +1 BUNFB CNST 90000309999 92 06 60 0 +1 STPFR CNST 80000449999 93 06 61 0 +1 STAT3 CNST 10000400003 94 06 62 0 +1 LDBV9 CNST 00000420009 95 6 63 0 +1 CSUV4 CNST 00000110004 96 6 64 0 +1 CLR0 CNST 40002450000 97 06 65 0 +1 BOF2 CNST 61111310002 98 06 66 0 +1 +1 MACRO-OPERATION TABLES +1 LOCN * OP V1 V2 RESULT 06 69 0 +1 GTAB0 CNST 10900000000 + A V X ADDV2 X=FIXED 06 70 0 +1 CNST 11400000000 + A V- X SUBV2 F=FLOATING 06 71 0 +1 CNST 31400000000 + A- V X- SUBV2 A=IN ACCUMULATOR 06 72 0 +1 CNST 30900000000 + A- V- X- ADDV2 V=NOT IN ACCUMULATOR 006 73 0 +1 CNST 10800000000 + V A X ADDV1 -=NEGATED 06 74 0 +1 CNST 31300000000 + V A- X- SUBV1 06 75 0 +1 CNST 11300000000 + V- A X SUBV1 06 76 0 +1 CNST 30800000000 + V- A- X- ADDV1 06 77 0 +1 CNST 10109000000 + V V X CADV1 ADDV2 06 78 0 +1 CNST 10708000000 + V V- X CSUV2 ADDV1 06 79 0 +1 CNST 10213000000 + V- V X CADV2 SUBV1 06 80 0 +1 CNST 10713000000 + V- V- X CSUV2 SUBV1 06 81 0 +1 CNST 21200000000 + A V F FADV2 06 82 0 +1 CNST 21700000000 + A V- F FSUV2 06 83 0 +1 CNST 41700000000 + A- V F- FSUV2 06 84 0 +1 CNST 41200000000 + A- V- F- FADV2 06 85 0 +1 CNST 21100000000 + V A F FADV2 06 86 0 +1 CNST 41600000000 + V A- F- FSUB1 06 87 0 +1 CNST 21600000000 + V- A F FSUV1 06 88 0 +1 CNST 41100000000 + V- A- F- FADV1 06 89 0 +1 CNST 20112000000 + V V F CADV1 FADV2 06 90 0 +1 CNST 20711000000 + V V- F CSUV2 FADV1 06 91 0 +1 CNST 20216000000 + V- V F CADV2 VSUV1 06 92 0 +1 CNST 20176000000 + V- V- F CSUV2 FSUV1 06 93 0 +1 CNST 13202582200 / A V X STAT1 CADV2 SRT10 DIVV1 06 94 0 +1 CNST 13207582200 / A V- X STAT1 CSUV2 SRT10 DIVV1 06 95 0 +1 CNST 13207582200 / A- V X STAT1 CSUV2 SRT10 DIVV1 06 96 0 +1 CNST 13202582200 / A- V- X STAT1 CADV2 SRT10 DIVV1 06 97 0 +1 CNST 15822000000 / V A X SRT10 DIVV1 06 98 0 +1 CNST 35822000000 / V A- X- SRT10 DIVV1 06 99 0 +1 CNST 35822000000 / V- A X- SRT10 DIVV1 07 00 0 +1 CNST 15822000000 / V- A- X SRT10 DIVV1 07 01 0 +1 CNST 10258220000 / V V X CADV2 SRT10 DIVV1 07 02 0 +1 CNST 10758220000 / V V- X CSUV2 SRT10 DIVV1 07 03 0 +1 CNST 10758220000 / V- V X CSUV2 SRT10 DIVV1 07 04 0 +1 CNST 10258220000 / V- V- X CADV2 SRT10 DIVV1 07 05 0 +1 CNST 23202972400 / A V F STAT1 CADV2 CLR FDVV1 07 06 0 +1 CNST 23207972400 / A V- F STAT1 CSUV2 CLR FDVV1 07 07 0 +1 CNST 23207972400 / A- V F STAT1 CSUV2 CLR FDVV1 07 08 0 +1 CNST 23202972400 / A- V- F STAT1 CADV2 CLR FDVV1 07 09 0 +1 CNST 29724000000 / V A F CLR FDVV1 07 10 0 +1 CNST 49724000000 / V A- F- CLR FDVV1 07 11 0 +1 CNST 4972400000 / V- A F- CLR FDVV1 07 12 0 +1 CNST 29724000000 / V- A- F CLR FDVV1 07 13 0 +1 CNST 20297240000 / V V F CADV2 CLR FDVV1 07 14 0 +1 CNST 20797240000 / V V- F CSUV2 CLR FDVV1 07 15 0 +1 CNST 20797240000 / V- V F CSUV2 CLR FDVV1 07 16 0 +1 CNST 20297240000 / V- V- F CADV2 CLR FDVV1 07 17 0 +1 CNST 11955000000 . A V X MULV2 SLT10 07 18 0 +1 CNST 31955000000 . A V- X- MULV2 SLT10 07 19 0 +1 CNST 31955000000 . A- V X- MULV2 SLT10 07 20 0 +1 CNST 11955000000 . A- V- X MULV2 SLT10 07 21 0 +1 CNST 11855000000 . V A X MULV1 SLT10 07 22 0 +1 CNST 31855000000 . V A- X- MULV1 SLT10 07 23 0 +1 CNST 31855000000 . V- A X- MULV1 SLT10 07 24 0 +1 CNST 11855000000 . V- A- X MULV1 SLT10 07 25 0 +1 CNST 10218550000 . V V X CADV2 MULV1 SLT10 07 26 0 +1 CNST 10718550000 . V V- X CSUV2 MULV1 SLT10 07 27 0 +1 CNST 10718550000 . V- V X CSUV2 MULV1 SLT10 07 28 0 +1 CNST 10218550000 . V- V- X CADV2 MULV1 SLT10 07 29 0 +1 CNST 22100000000 . A V F FMUV2 07 30 0 +1 CNST 42100000000 . A V- F- FMUV2 07 31 0 +1 CNST 42100000000 . A- V F- FMUV2 07 32 0 +1 CNST 22100000000 . A- V- F FMUV2 07 33 0 +1 CNST 22000000000 . V A F FMUV1 07 34 0 +1 CNST 42000000000 . V A- F- FMUV1 07 35 0 +1 CNST 42000000000 . V- A F- FMUV1 07 36 0 +1 CNST 22000000000 . V- A- F FMUV1 07 37 0 +1 CNST 20220000000 . V V F CADV2 FMUV1 07 38 0 +1 CNST 20720000000 . V F- F CSUV2 FMUV1 07 39 0 +1 CNST 20720000000 . V- V F CUSV2 FMUV1 07 40 0 +1 CNST 20220000000 . V- V- F CADV2 FMUV1 07 41 0 +1 +1 GTAB1 CNST 52780020000 MAX A V CFAV2 BCHL2 CADV2 07 43 0 +1 CNST 53207268001 MAX A V- STAT1 CSUV2 CFAV1 BCHL2 CADV1 007 44 0 +1 CNST 53206278002 MAX A- V STAT1 CSUV1 CFAV2 BCHL2 CADV2 07 45 0 +1 CNST 62781020000 MAX A- V- - CFAV2 BCLL2 CADV2 07 46 0 +1 CNST 52680010000 MAX V A CFAV1 BCHL2 CADV1 07 47 0 +1 CNST 53307268001 MAX V A- STAT2 CSUV2 CFAV1 BCHL2 CADV1 07 48 0 +1 CNST 53306278002 MAX V- A STAT2 CSUV1 CFAV2 BCHL2 CADV2 07 49 0 +1 CNST 62681010000 MAX V- A- - CFAV1 BCLL2 CADV1 07 50 0 +1 CNST 50127800200 MAX V V CADV1 CFAV2 BCHL2 CADV2 07 51 0 +1 CNST 50726800100 MAX V V- CSUV2 CFAV1 BCHL2 CADV1 07 52 0 +1 CNST 50627800200 MAX V- V CSUV1 CFAV2 BCHL2 CADV2 07 53 0 +1 CNST 60127810200 MAX V- V- - CADV2 CFAV2 BCHL2 CADV2 07 54 0 +1 CNST 52781020000 MIN A V CFAV2 BCLL2 CADV2 07 55 0 +1 CNST 53207268101 MIN A V- STAT1 CSUV2 CFAV1 BCLL2 CADV1 007 56 0 +1 CNST 53206278102 MIN A- V STAT1 CSUV1 CFAV2 BCLL2 CADV2 007 57 0 +1 CNST 62780020000 MIN A- V- - CFAV2 BCHL2 CADV2 07 58 0 +1 CNST 52681010000 MIN V A CFAV1 BCLL2 CADV1 07 59 0 +1 CNST 53307268101 MIN V A- STAT2 CSUV2 CFAV1 BCLL2 CADV1 007 60 0 +1 CNST 53306278102 MIN V- A STAT2 CSUV1 CFAV2 BCLL2 CADV2 007 61 0 +1 CNST 62680010000 MIN V- A- - CFAV1 BCHL2 CADV1 07 62 0 +1 CNST 50127810200 MIN V V CADV1 CFAV2 BCLL2 CADV2 07 63 0 +1 CNST 50726810100 MIN V V- CSUV2 CFAV1 BCLL2 CADV1 07 64 0 +1 CNST 50627810200 MIN V- V CSUV1 CFAV2 BCLL2 CADV2 07 65 0 +1 CNST 60127800200 MIN V- V- - CADV1 CFAV2 BCLL2 CADV2 07 66 0 +1 +1 +1 GTAB2 CNST 12900000000 AND A B X EXTV2 07 69 0 +1 CNST 12800000000 AND V A X EXTV1 07 70 0 +1 CNST 10129000000 AND V V X CADV1 EXTV2 07 71 0 +1 CNST 17991020000 OR A V X NDXV2 B1AL2 CADV2 07 72 0 +1 CNST 17891010000 OR V A X NDXV1 B1AL2 CADV1 07 73 0 +1 CNST 10278910100 OR V V X NDXV1 B1AL2 CADV1 07 74 0 +1 CNST 10915650000 EQV A V X ADDV2 SUBX1 LSA0 07 75 0 +1 CNST 10815650000 EQV V A X ADDV1 SUBX1 LSA0 07 76 0 +1 CNST 10109156500 EQV V V X CADV1 ADDV2 SUBX1 LSA0 07 77 0 +1 CNST 12782030000 IMP A V X CFAV2 BCUL2 CADX1 07 78 0 +1 CNST 17883910100 IMP V A X NDXV1 ADDX1 B1AL2 CADV1 07 79 0 +1 CNST 10127820300 IMP V V X CADV1 CFAV2 BCUL2 CADX1 07 80 0 +1 +1 +1 GTAB3 CNST 14872440300 EQL () BZAL3 CLA BUNL2 CADX1 07 83 0 +1 CNST 14872440300 EQL - () BZAL3 CLA BUNL2 CADX1 07 84 0 +1 CNST 14788000000 EQL IF BZAL2 BUNFR 07 85 0 +1 CNST 14788000000 EQL - IF BZAL2 BUNFR 07 86 0 +1 CNST 18500000000 EQL UN BZAFR 07 87 0 +1 CNST 18500000000 EQL - UN BZAFR 07 88 0 +1 CNST 14703000000 NEQ () BZAL2 CADX1 07 89 0 +1 CNST 14703000000 NEQ - () BZAL2 CADX1 07 90 0 +1 CNST 18500000000 NEQ IF BZAFR 07 91 0 +1 CNST 18500000000 NEQ - IF BZAFR 07 92 0 +1 CNST 14788000000 NEQ UN BZAL2 BUNFR 07 93 0 +1 CNST 14788000000 NEQ - UN BZAL2 BUNFR 07 94 0 +1 CNST 14945724403 LEQ () BZAL4 BMAL3 CLA BUNL2 CADX1 007 95 0 +1 CNST 14946724403 LEQ - () BZAL4 BPAL3 CLA BUNL2 CADX1 007 96 0 +1 CNST 14787000000 LEQ IF BZAL2 BPAFR 07 97 0 +1 CNST 14786000000 LEQ - IF BZAL2 BMAFR 07 98 0 +1 CNST 18586000000 LEQ UN BZAFR BMAFR 07 99 0 +1 CNST 18587000000 LEQ - UN BZAFR BPAFR 08 00 0 +1 CNST 14945034472 GTR () BZAL4 BMAL3 CADX1 BUNL2 CLA 008 01 0 +1 CNST 14946034472 GTR - () BZAL4 BPAL3 CADX1 BUNL2 CLA 008 02 0 +1 CNST 18586000000 GTR IF BZAFR BMAFR 08 03 0 +1 CNST 18587000000 GTR - IF BZAFR BPAFR 08 04 0 +1 CNST 14787000000 GTR UN BZAL2 BPAFR 08 05 0 +1 CNST 14786000000 GTR - UN BZAL2 BMAFR 08 06 0 +1 CNST 14946724403 GEQ () BZAL4 BPAL3 CLA BUNL2 CADX1 008 07 0 +1 CNST 14945724403 GEQ - () BZAL4 BMAL3 CLA BUNL2 CADX1 008 08 0 +1 CNST 14786000000 GEQ IF BZAL2 BMAFR 08 09 0 +1 CNST 14787000000 GEQ - IF BZAL2 BPAFR 08 10 0 +1 CNST 18587000000 GEQ UN BZAFR BPAFR 08 11 0 +1 CNST 18586000000 GEQ - UN BZAFR BMAFR 08 12 0 +1 CNST 14946034472 LSS () BZAL4 BPAL3 CADX1 BUNL2 CLA 008 13 0 +1 CNST 14945034472 LSS - () BZAL4 BMAL3 CADX1 BUNL2 CLA 008 14 0 +1 CNST 18587000000 LSS IF BZAFR BPAFR 08 15 0 +1 CNST 18586000000 LSS - IF BZAFR BMAFR 08 16 0 +1 CNST 14786000000 LSS UN BZAL2 BMAFR 08 17 0 +1 CNST 14787000000 LSS - UN BZAL2 BPAFR 08 18 0 +1 +1 COMP DEFN *-2 IJ-PAIRS FOR ARITH GENERATOR 08 20 0 +1 LOCN * V1 V2 X=FIX F=FLT A=ACC V=OPRND C=CONST 008 21 0 +1 CNST 3000000000 XA XV 08 22 0 +1 CNST 1133000000 XA FV 08 23 0 +1 CNST 2630000000 XA XC 08 24 0 +1 CNST 1126330000 XA FC 08 25 0 +1 TEMP2 CNST 0000000000 (IMPOSSIBLE CASE) 08 26 0 +1 CNST 7284007200 (IMPOSSIBLE CASE) 08 27 0 +1 CNST 1224213400 FA XV 08 28 0 +1 CNST 3300000000 FA FV I=1 OR I=2.. 08 29 0 +1 CNST 2623330000 FA XC J=1 FLAOT V(I) 08 30 0 +1 CNST 2633000000 FA FC J=2 STORE V(I) IN TEMP 08 31 0 +1 CNST 3100000000 XV XA J=3 FLOAT CONSTANT V(I) 08 32 0 +1 CNST 2214113300 XV FA J=4 BRING V(I) INTO A REGISTER 008 33 0 +1 CNST 3200000000 XV XV J=5 CALC CONST OP CONST$ I=TYPE 008 34 0 +1 CNST 1411330000 XV FV J=6 CHECK IF V(I)=SPACIAL CONST 008 35 0 +1 CNST 2632000000 XV XC 08 36 0 +1 CNST 1411263300 XV FC 08 37 0 +1 CNST 2134000000 FV XA I=3.. 08 38 0 +1 CNST 3400000000 FV FA J=0 V1 IS IN A, FIXED 08 39 0 +1 CNST 2421340000 FV XV J=1 V2 IS IN A, FIXED 08 40 0 +1 CNST 3500000000 FV FV J=2 NEITHER IN A, FIXED 08 41 0 +1 CNST 2623350000 FV XC J=3 V1 IS IN A,FLOATING 08 42 0 +1 CNST 2635000000 FV FC J=4 V2 IS IN A,FLOATING 08 43 0 +1 CNST 1631000000 XC XA J=5 NEITHER IS IN A, FLOATING 008 44 0 +1 CNST 1613340000 XC FA 08 45 0 +1 CNST 1632000000 XC XV 08 46 0 +1 CNST 1613350000 XC FV 08 47 0 +1 CNST 1532000000 XC XC 08 48 0 +1 CNST 1325350000 XC FC 08 49 0 +1 CNST 2116340000 FC XA 08 50 0 +1 CNST 1634000000 FC FA 08 51 0 +1 CNST 2421163400 FC XV 08 52 0 +1 CNST 1635000000 FC FV 08 53 0 +1 CNST 2325350000 FC XC 08 54 0 +1 CNST 2535000000 FC FC 08 55 0 +1 +1 +1 SECTION B. THE SCANNER CO-ROUTINE. +1 +1 SCAN BUN SCN1 EXIT-ENTRANCE LINE 08 60 0 +1 SCN10 CAD CWEMP 08 61 0 +1 SCN5 STP SCAN 08 62 0 +1 BUN EXCTR GO TO EXECUTOR CO-ROUTINE. 08 63 0 +1 SCN1 LDR S2 08 64 0 +1 STR S1 MOVE SCANNING WINDOWS TO RIGHT 08 65 0 +1 LDR K2 ACROSS SOURCE STRING 08 66 0 +1 STR K1 08 67 0 +1 SCN2 STP INPTX 08 68 0 +1 BUN INPT GET NEXT CHARACTER FROM CARD 08 69 0 +1 SCN3 DEFN * 08 70 0 +1 STFOL CLB 08 71 0 +1 CAD CHAR SET K2 TO THE CODE FOR THIS CHARACTER 08 72 0 +1 DBB 0,999 08 73 0 +1 BFA C+,91,8 NUMBER 1 08 74 0 +1 CFA FORTY,02 ALPHA 0 08 75 0 +1 BCH D+ ) 2 08 76 0 +1 DBB 0,9999 ( 3 08 77 0 +1 BFA C+,02,04 . 4 08 78 0 +1 DBB 0,9999 $ 5 08 79 0 +1 BFA C+,02,24 , 6 08 80 0 +1 DBB 0,9999 * 7 08 81 0 +1 BFA C+,02,03 - 8 08 82 0 +1 DBB 0,9999 BLANK 10 08 83 0 +1 BFA C+,02,13 OTHER 9 08 84 0 +1 DBB 0,9999 08 85 0 +1 BFA C+,02,23 08 86 0 +1 DBB 0,9999 08 87 0 +1 BFA C+,02,14 08 88 0 +1 DBB 0,9999 08 89 0 +1 BFA C+,02,20 08 90 0 +1 BFA B+,02,34 08 91 0 +1 DBB 0,9998 08 92 0 +1 BFA C+,02,00 08 93 0 +1 *D DBB C+,1 08 94 0 +1 *B DFL CHAR,02,14 CHANGE CRAZY MINUS SIGN TO REGULAR ONE 008 95 0 +1 *C STB K2 08 96 0 +1 +1 SCN4 LDR CHAR 08 98 0 +1 STR S2 08 99 0 +1 CAD K1 09 00 0 +1 BFA A+,02,10 BRANCH IF EITHER 09 01 0 +1 CAD K2 SCANNED CHARACTER IS BLANK 09 02 0 +1 BFA B+,02,10 09 03 0 +1 CAD K1 OTHERWISE INDEX INTO TABLE AND 09 04 0 +1 SLA 1 BRANCH TO PROPER R-ROUTINE 09 05 0 +1 ADD K2 09 06 0 +1 STA TEMP 09 07 0 +1 LDB TEMP 09 08 0 +1 CAD - TABSC 09 09 0 +1 BFA - TABSC,45,88 09 10 0 +1 CLL K2 09 11 0 +1 IFL K2,00,10 IF THE PAIR IS ILLEGAL, 09 12 0 +1 STP WEMX WRITE ERROR MESSAGE 09 13 0 +1 BUN WEM,SCN4 IMPROPER CHARACTER PAIR 09 14 0 +1 CNST 30103050000 09 15 0 +1 *A CAD K2 09 16 0 +1 BZA R13 BLANK ALPHA ... TO R13 09 17 0 +1 BFA R24,02,01 BLANK NUMBER ... TO R24 09 18 0 +1 BUN SCN1 BLANK OTHER ... TO SCN1 AGAIN 09 19 0 +1 *B CAD K1 09 20 0 +1 BZA C+ IF RIGHT CHARACTER IS BLANK, 09 21 0 +1 BUN R15 GET THE NEXT NONBLANK CHARACTER 09 22 0 +1 SCN11 DEFN * 09 23 0 +1 *C STP PASSX 09 24 0 +1 BUN PASS THEN COMPLETE THE PROCESSING OF THE 09 25 0 +1 CFA FORTY,02 LEFTHAND SYMBOL IN THE CASES OF 09 26 0 +1 BCL SCN3 ALPHA-ALPHA, ALPHA-NUMBER 09 27 0 +1 SCN8 STP CLASX 09 28 0 +1 BUN CLASS 09 29 0 +1 SCN6 CLL K1 09 30 0 +1 IFL K1,00,10 BLANK OUT LEFTHAND SYMBOL AND RECYCLE 09 31 0 +1 BUN SCN3 09 32 0 +1 SCN7 CLL K2 09 33 0 +1 IFL K2,00,10 BLANK OUT BOTH SYMBOLS AND RECYCLE 09 34 0 +1 BUN SCN1 09 35 0 +1 +1 +1 *B IFL SW1,62,29 09 38 0 +1 R1 CLL K2 AA AN 09 39 0 +1 SW1 HLT SCN1 09 40 0 +1 LBC K THIS CHARACTER IS PART OF 09 41 0 +1 CAD S2 AN IDENTIFIER 09 42 0 +1 SLA - 8 STORE IT IN SYMBL AREA 09 43 0 +1 DLB K,94,0 09 44 0 +1 ADL - SYMBL 09 45 0 +1 IFL K,02,2 09 46 0 +1 BOF B- IF IDENTIFIER IS MORE THAN 50 CHARACTERS 009 47 0 +1 *A BUN SCN1 IN LENGTH, TRUNCATE IT TO 50 09 48 0 +1 +1 +1 R2 STP ALPLX A( 09 51 0 +1 BUN ALPLU WE HAVE MANY CASES TO EXAMINE. 09 52 0 +1 CFR PRCMD,64 LOOKUP IDENTIFIER FIRST 09 53 0 +1 LDB FUNS 09 54 0 +1 CAD - 0 09 55 0 +1 BCU D+ 09 56 0 +1 BSA A+,0 IF IN PROCEDURE MODE, CHECK 09 57 0 +1 DLB L,64,00 SEMICOLON COUNT 09 58 0 +1 BSA C+,3 09 59 0 +1 IFL - 0,11,5 THE PRESENT SYMBOL IS A PARAMETRIC ARRAY 009 60 0 +1 STP FRMEX SEND ITS NAME AND AN ARRAY-PARAMETER 009 61 0 +1 BUN FRME OPERATOR TO THE EXECUTOR 09 62 0 +1 CAD CWAPM 09 63 0 +1 BUN SCN5 09 64 0 +1 *A IFL - 0,12,10 09 65 0 +1 DLB L,64,0 THE PRESENT SYMBOL IS THE NAME OF THE 09 66 0 +1 LDR - 0 PROCEDURE BEING DECLARED 09 67 0 +1 BFR B+,11,0 09 68 0 +1 STB - 0,11 09 69 0 +1 STP WEMX 09 70 0 +1 BUN WEM,A-+1 IF IT OCCURRED BEFORE, 09 71 0 +1 CNST 30608100000 DUPLICATE PROCEDURE NAME 09 72 0 +1 *B IFL - 0,11,8 09 73 0 +1 CAD LOCN SET SEMICOLON COUNT TO 1 09 74 0 +1 STA - 0,64 09 75 0 +1 R2P STP FRMEX SEND NAME TO EXECUTOR 09 76 0 +1 BUN FRME 09 77 0 +1 BUN SCN1 09 78 0 +1 *C DFL - 0,11,1 THE PRESENT SYMBOL IS THE NAME OF 09 79 0 +1 STP FRMEX A PARAMETRIC FUNCTION OR PROCEDURE 009 80 0 +1 BUN FRME 09 81 0 +1 *E LDR SC7 PASS CHARACTERS UNTIL MATCHING RIGHT 09 82 0 +1 BUN PRCNT PARENTHESIS IS FOUND AND GO TO SCN7 09 83 0 +1 *D CFR FUNMD,64 09 84 0 +1 BCU F+ 09 85 0 +1 BSA F+,1 IF CALLING A FUNCTION,CHECK $ COUNT 009 86 0 +1 STP FRMEX IF THIS COUNT IS 1,WE DONT KNOW YET 09 87 0 +1 BUN FRME WHETHER OR NOT THE PRESENT SYMBOL IS 09 88 0 +1 LDB FUNS A PARAMETRIC ARRAY, BUT IF THE COUNT 09 89 0 +1 CAD - 0 IS 2 OR 3 WE KNOW IT IS A 09 90 0 +1 DLB L,64,00 PARAMETRIC ARRAY OR PROCEDURE 09 91 0 +1 LDR - 0 09 92 0 +1 BSA G+,2 09 93 0 +1 BFR E-,11,6 09 94 0 +1 BFR E-,11,4 09 95 0 +1 BFR E-,11,8 IF IT ISNT, 09 96 0 +1 *T STP WEMX 09 97 0 +1 BUN WEM,E- 09 98 0 +1 CNST 30111130000 IMPROPER FUNCTION ARGUMENT 09 99 0 +1 *G BFR H+,11,5 010 00 0 +1 BUN T- 010 01 0 +1 *F DLB L,64,00 010 02 0 +1 CAD - 0 010 03 0 +1 CFR DCLMD,64 IF IN TYPE DECLARATION, 010 04 0 +1 BCE E- SKIP TO NEXT MATCHING RIGHT PARENTHESIS 010 05 0 +1 BFA J+,11,0 010 06 0 +1 BFA K+,11,9 010 07 0 +1 *I STP FRMEX IF SYMBOL WAS CLASSIFIED BEFORE AND 010 08 0 +1 BUN FRME IS NOT A LABEL, SEND IT TO THE EXECUTOR. 010 09 0 +1 DLB L,64,00 010 10 0 +1 LDR - 0 THEN LOOK SEE WHAT KIND IT IS 010 11 0 +1 BFR R19P,11,1 IF VARIABLE INSERT DOT 010 12 0 +1 BFR M+,11,4 IF LIBRARY ROUTINE, INSERT FUNC CALL OP 010 13 0 +1 BFR H+,11,5 IF ARRAY, SEE BELOW 010 14 0 +1 BFR SCN1,11,9 IF LABEL, EXIT 010 15 0 +1 BFR SCN1,11,7 IF RESERVED WORD, EXIT 010 16 0 +1 BFR M+,12,88 IF EXT PROCEDURE,INSERT FUNC CALL OP 010 17 0 +1 *P CFR LEVEL,02 IS IT THE NAME OF THE PRESENT 010 18 0 +1 BCE E- PROCEDURE BEING DECLARED 010 19 0 +1 *M CAD CWCLN 010 20 0 +1 BUN SCN5 010 21 0 +1 *H LDB - 0 IF AN ARRAY, MOVE THE MULTIPLIERS TO 010 22 0 +1 SLT 0 THE DIMENSION STACK 010 23 0 +1 ADD XZERO+1 010 24 0 +1 BSA *+2,1 010 25 0 +1 LDB - 0 (IF NOT PARAMETRIC,SKIP OVER THE 010 26 0 +1 IBB Q+,9999 TOTAL-LENGTH ENTRY) 010 27 0 +1 *R CAD - 1 (IF ITS ONLY 1-DIMENSIONAL, WE 010 28 0 +1 STA TEMP LEAVE THE DIMENSION STACK ALONE) 010 29 0 +1 STP INSX,DIMS 010 30 0 +1 BUN INS 010 31 0 +1 LDB TEMP 010 32 0 +1 DBB R-,1 010 33 0 +1 *Q CAD CWNDX SEND INDEX OP TO EXECUTOR 010 34 0 +1 BUN SCN5 010 35 0 +1 *J CFR ARAMD,64 IF WE HAVE A NEW SYMBOL, AND WE ARENT 010 36 0 +1 DLB L,64,00 PROCESSING AN ARRAY DECLARATION, 010 37 0 +1 BCE S+ ITS A VARIABLE 010 38 0 +1 IFL - 011,1 010 39 0 +1 BUN I- 010 40 0 +1 *S IFL - 0,11,5 IN ARRAY DECLARATION, MARK THE PRESENT 010 41 0 +1 STP FRMEX SYMBOL AS AN ARRAY AND SEND IT AND AN 010 42 0 +1 BUN FRME ARRAY-DECLARATION OPERATOR TOEXECUTOR 010 43 0 +1 CAD CWARD 010 44 0 +1 BUN SCN5 010 45 0 +1 *K SLT 0 IF IT IS A LABEL, THE MODE MUST 010 46 0 +1 BSA N+,9 BE A DECLARATION OF SOME KIND 010 47 0 +1 BSA N+,8 010 48 0 +1 STP WEMX 010 49 0 +1 BUN WEM,I- ELSE, MISPLACED LABEL 010 50 0 +1 CNST 31517000000 010 51 0 +1 *N STA - 0 010 52 0 +1 CFR FRMMD,64 010 53 0 +1 BCU *+2 010 54 0 +1 DFL M+,62,29 I-O DECLARATION 010 55 0 +1 DLB LOCN,64,00 010 56 0 +1 STB IOPUS,04 STORE 1ST LOCATION IN IOPUS 010 57 0 +1 STP TRTGX 010 58 0 +1 BUN TRTG2 SEND A LABEL OPERATOR TO THE EXECUTOR 010 59 0 +1 IFL ALEPH,62,6 010 60 0 +1 CAD CWLAB 010 61 0 +1 *M BUN SCN5 IN FORMAT DECLARATION SEND THE 010 62 0 +1 IFL M-,62,29 LABEL ITSELF TO EXECUTOR INSTEAD 010 63 0 +1 STP FRMEX 010 64 0 +1 BUN FRME 010 65 0 +1 SC7 BUN SC7 010 66 0 +1 +1 +1 R3K LDR SYMBL AP 010 69 0 +1 CFR STOGN+1,00 IN THE STATEMENT STOP +E, + IS REDUNDANT 010 70 0 +1 BCE SCN11 010 71 0 +1 R3 BUN A+ A) A$ A, A* 010 72 0 +1 IFL *-1,62,29 010 73 0 +1 CAD RR2 IF WE ARE WORKING ON A PREFIX, 010 74 0 +1 SLS 2 010 75 0 +1 STA TEMP3,12 CALCULATE SL-FIELD FOR COMPARISON 010 76 0 +1 CAD K 010 77 0 +1 SLA 8 010 78 0 +1 STA TEMP3,21 010 79 0 +1 SLA 1 010 80 0 +1 STA TEMP3,11 010 81 0 +1 DFL TEMP3,22,22 010 82 0 +1 CAD SSC PUT PREFIX CODE INTO PR3-STACK 010 83 0 +1 SLA 4 010 84 0 +1 STA TEMP3,64 010 85 0 +1 LDB SSC 010 86 0 +1 CAD SYMBL 010 87 0 +1 STA - 0 010 88 0 +1 IFL SSC,00,1 010 89 0 +1 LDR *+1 010 90 0 +1 LDB PR3 010 91 0 +1 *C STR TEMP2 010 92 0 +1 STB TEMP1 010 93 0 +1 IBB B+,9999 010 94 0 +1 LDR - 1 010 95 0 +1 STR TEMP 010 96 0 +1 DLB TEMP,64,0 010 97 0 +1 CFA - 0 010 98 0 +1 BCH D+ 010 99 0 +1 *B LDB TEMP2 011 00 0 +1 CAD TEMP3 011 01 0 +1 STP INSX 011 02 0 +1 BUN INS1 011 03 0 +1 BUN SCN1 011 04 0 +1 *D LDR TEMP1 011 05 0 +1 LDB TEMP 011 06 0 +1 BUN C- 011 07 0 +1 *A STP CLASX FINISH PROCESSING IDENTIFIER OR 011 08 0 +1 BUN CLASS NUMERIC LABEL 011 09 0 +1 BUN SCN1 011 10 0 +1 SW5 DEFN R3 011 11 0 +1 +1 +1 R4 STP WINDX NA 011 14 0 +1 BUN WIND1,SCN8 FINISH UP CONSTANT 011 15 0 +1 IFL SW6,00,1 SET UP IMPLIED MULTIPLICATION 011 16 0 +1 BUN R13 011 17 0 +1 +1 +1 R5 DFL D,22,1 NN 011 20 0 +1 CAD SYMBL 011 21 0 +1 SLS 1 011 22 0 +1 STA SYMBL BUILD CONSTANT 011 23 0 +1 LDR S2 011 24 0 +1 STR SYMBL,01 011 25 0 +1 BUN SCN1 011 26 0 +1 +1 +1 R6 STP WINDX N) N$ N, NP 011 29 0 +1 BUN WIND1,R3 011 30 0 +1 BUN SCN1 FINISH WORKING ON CONSTANT 011 31 0 +1 NTAG CNST 20000000010 011 32 0 +1 +1 +1 R7P IFL SW6,00,1 )A IMPLIED MULTIPLICATION 011 35 0 +1 R7 STP OPRTX,R13 (A .A $A ,A -A *A PA 011 36 0 +1 BUN OPRT SEND OPERATOR TO EXECUTOR,GO TO R13 011 37 0 +1 +1 +1 R8 STP OPRTX,SCN1 MANY E.G. )) (- 011 40 0 +1 BUN OPRT SEND LEFTHAND OP TO EXECUTOR 011 41 0 +1 +1 +1 R9 LDR S2 (P .P $P ,P *P PP 011 44 0 +1 BFR SCN2,02,10 011 45 0 +1 CLL SW2 THE RIGHTHAND SYMBOL MUST BE A 011 46 0 +1 STP WEMX REDUNDANT PLUS SIGN 011 47 0 +1 BUN WEM,SCN7 011 48 0 +1 CNST 31518200000 MISPLACED ARITHMETIC OPERATION 011 49 0 +1 +1 +1 R10 CAD RPAR )( 011 52 0 +1 STP SCAN 011 53 0 +1 BUN EXCTR ) TO EXECUTOR 011 54 0 +1 BUN R19P 011 55 0 +1 +1 +1 R11 STP ALPLX A- 011 58 0 +1 BUN ALPLU LEFTHAND SYMBOL MUST BE A SIMPLE VARIABLE 011 59 0 +1 BFA D+,11,0 011 60 0 +1 BFA C+,11,1 011 61 0 +1 BFA R2P,11,7 011 62 0 +1 CLL TAG 011 63 0 +1 STP WEMX 011 64 0 +1 BUN WEM,C+ 011 65 0 +1 CNST 30122240000 IMPROPER VARIABLE SYMBOL 011 66 0 +1 *D IFL - 0,11,1 011 67 0 +1 *C STP FRMEX 011 68 0 +1 BUN FRME 011 69 0 +1 R11P CAD PLUS INSERT PLUS SIGN SO EXECUTOR 011 70 0 +1 BUN SCN5 ALWAYS THINKS MINUS IS UNARY OPERATOR 011 71 0 +1 +1 +1 +1 R12 STP OPRTX,R11P )- 011 75 0 +1 BUN OPRT ) TO EXECUTOR, INSERT A + SIGN 011 76 0 +1 +1 +1 +1 R13 CLL K BLANK K 011 80 0 +1 STB SW1,62 011 81 0 +1 IFL SW1,61,01 PREPARE TO BUILD AN IDENTIFIER 011 82 0 +1 LDB SBL 011 83 0 +1 CLL SYMBL 011 84 0 +1 RTF SYMBL,9 011 85 0 +1 BUN R1 011 86 0 +1 +1 +1 R15 STP PASSX SKIP OVER BLANKS 011 89 0 +1 BUN PASS 011 90 0 +1 BUN SCN3 011 91 0 +1 +1 +1 R17 STP PASSX A. 011 94 0 +1 BUN PASS GET NEXT NONBLANK CHARACTER 011 95 0 +1 BFA R17Q,02,03 011 96 0 +1 STP CLASX IF NOT A COLON CLASSIFY 011 97 0 +1 BUN CLASS LEFT IDENTIFIER 011 98 0 +1 R17P LDR S2 MOVE WINDOW TO THE RIGHT 011 99 0 +1 STR S1 AND CONTINUE SCANNING 012 00 0 +1 LDR K2 012 01 0 +1 STR K1 012 02 0 +1 BUN SCN3 012 03 0 +1 R17R LDR NTAG 012 04 0 +1 STR K MARK NUMBER AS LABEL 012 05 0 +1 R17Q STP PASSX GET NEXT NONBLANK CHARACTER 012 06 0 +1 BUN PASS 012 07 0 +1 BFA C+,02,03 012 08 0 +1 IFL TAG,00,1 COLON IS DETECTED 012 09 0 +1 STP ALPLX 012 10 0 +1 BUN ALPLU LOOK UP IDENTIFIER 012 11 0 +1 STP TRTGX 012 12 0 +1 BUN TRTG PROCESS LABEL 012 13 0 +1 BUN SCN6 RETURN 012 14 0 +1 *C LDB K 012 15 0 +1 DBB R17Q,12 THREE DOTS DETECTED 012 16 0 +1 CLL S2 TREAT AS COLON IF IDENTIFIER IS 012 17 0 +1 IFL S2,00,90 OVER FIVE CHARACTERS. SET RIGHT 012 18 0 +1 CLL K2 CHARACTER AS SPECIAL CODE 90 FOR PREFIXES 012 19 0 +1 DFL R3,62,29 SET PREFIX SWITCH 012 20 0 +1 BUN R1 PROCESS AS IDENTIFIER 012 21 0 +1 +1 +1 R18 STP WINDX N- 012 24 0 +1 BUN WINDU PROCESS CONSTANT 012 25 0 +1 BUN R11P AND INSERT + SIGN 012 26 0 +1 +1 +1 R19 STP WINDX N( 012 29 0 +1 BUN WIND1,R2 PROCESS CONSTANT 012 30 0 +1 R19P CAD DOT IF NOT A LABEL, INSERT IMPLIED MULT 012 31 0 +1 BUN SCN5 012 32 0 +1 +1 +1 R20 STP PASSX N. 012 35 0 +1 BUN PASS 012 36 0 +1 LDR CHAR IF THE NEXT CHARATER IS A DOT,WE HAVE 012 37 0 +1 BFR R17R,02,03 A STATEMENT LABEL. 012 38 0 +1 BFR C+,91,08 OTHERWISE IF ITS NOT NUMBERIC 012 39 0 +1 *A STP WINDX WE FINISH MAKING UP THE CONSTANT 012 40 0 +1 BUN WINDU AND CONTINUE 012 41 0 +1 BUN R17P 012 42 0 +1 *C CAA SW2 OTHERWISE WE HAVE A FLOATING CONSTANT 012 43 0 +1 ADA SW3 012 44 0 +1 BZA E+ 012 45 0 +1 *D STP WEMX ERROR CONDITIONS ARE N.N.N OR N**N.N 012 46 0 +1 BUN WEM,A- 012 47 0 +1 CNST 31526280000 MISPLACED DECIMAL POINT 012 48 0 +1 *E CLL D 012 49 0 +1 IFL D,22,58 RECORD DECIMAL POINT AND CONTINUE 012 50 0 +1 IFL SW3,00,1 SCANNING AND BUILDING CONSTANT 012 51 0 +1 STR S2 012 52 0 +1 LDR XONE+1 012 53 0 +1 STR K2 012 54 0 +1 BUN R5 012 55 0 +1 +1 +1 R21 CAD RPAR )N 012 58 0 +1 STP SCAN 012 59 0 +1 BUN EXCTR ) TO EXECUTOR 012 60 0 +1 CAD DOT 012 61 0 +1 STP SCAN . TO EXECUTOR 012 62 0 +1 BUN EXCTR 012 63 0 +1 BUN R24 012 64 0 +1 +1 +1 +1 R22 STP PASSX N* 012 68 0 +1 BUN PASS 012 69 0 +1 BFA B+,02,14 CHECK FOR SECOND ASTERISK 012 70 0 +1 BUN A- IF NOT * MEANS EXPONENTIATE 012 71 0 +1 *B LDB SW3 START SCALE FACTOR 012 72 0 +1 DBB G+,1 012 73 0 +1 CLL D IF MANTISSA HAD NO DECIMAL POINT 012 74 0 +1 IFL D,22,58 MANUFACTURE ONE 012 75 0 +1 IFL SW3,00,01 012 76 0 +1 *G STP WNDSX PROCESS MANTISSA 012 77 0 +1 BUN WINDS 012 78 0 +1 *B LDR SYMBL 012 79 0 +1 STR FP 012 80 0 +1 IFL SW2,00,1 012 81 0 +1 STP PASSX 012 82 0 +1 BUN PASS EXAMINE NEXT NONBLANK CHARACTER 012 83 0 +1 BFA D+,02,20 012 84 0 +1 BFA D+,02,34 WE MUST HAVE **N **-N OR **+N 012 85 0 +1 BFA E+,02,10 012 86 0 +1 *C BFA F+,91,08 012 87 0 +1 STP WEMX 012 88 0 +1 BUN WEM,A- 012 89 0 +1 CNST 30129300000 IMPROPER SCALE FACTOR 012 90 0 +1 *D IFL SW4,61,1 RECORD SIGN 012 91 0 +1 *E STP PASSX 012 92 0 +1 BUN PASS 012 93 0 +1 BUN C- 012 94 0 +1 *F STA S2 PREPARE TO PROCESS SCALE FACTOR 012 95 0 +1 DFL K2,02,6 012 96 0 +1 BUN R24P R3 IS LOCATED BY OPRT 012 97 0 +1 +1 +1 R24 CLL SW2 BLANK N 013 00 0 +1 STB SW4,61 013 01 0 +1 CAD S2 013 02 0 +1 R24P CLL SYMBL PREPARE TO BUILD A CONSTANT 013 03 0 +1 CLL D 013 04 0 +1 CLL SW3 013 05 0 +1 STA SYMBL,01 013 06 0 +1 BUN SCN1 013 07 0 +1 013 08 0 +1 +1 R25 STP OPRTX,SCN10 (, ,, ,) () 013 10 0 +1 BUN OPRT INSERT THE EMPTY OPERATOR 013 11 0 +1 +1 +1 R26 STP OPRTX,*+2 ($ $$ 013 14 0 +1 BUN OPRT 013 15 0 +1 LDB FUNS 013 16 0 +1 IFL - 0,12,10 INCREASE THE SEMICOLON COUNT 013 17 0 +1 CAD - 0 013 18 0 +1 IFL OMCRN,00,I 013 19 0 +1 BSA SCN1,2 013 20 0 +1 IFL TAG,00,1 013 21 0 +1 BUN SCN1 013 22 0 +1 +1 +1 R27 DEFN SCN1 $) 013 25 0 +1 +1 +1 TRTG2 DFL ALEPH,62,6 TRTG2 -- SUPPRESS MONITORING 013 28 0 +1 TRTG CLL TAG 013 29 0 +1 DLB L,64,0 DEFINE A LABEL 013 30 0 +1 CAD - 0 013 31 0 +1 BFA D+,64,0 IT HAD BETTER BE UNDEFINED 013 32 0 +1 BFA COMNT,12,67 OR THE WORD COMMENT 013 33 0 +1 STP WEMX 013 34 0 +1 BUN WEM,TRTGX DUPLICATE LABEL 013 35 0 +1 CNST 30617000000 013 36 0 +1 *E BPA T+ 013 37 0 +1 LDR DUMPR PUT OUT CODE FOR DUMP ROUTINE 013 38 0 +1 STR V3 IF THIS LABEL WAS SPECIFIED ON TRACE CARD 013 39 0 +1 LDR MEMRY+1 013 40 0 +1 STR EXPLN 013 41 0 +1 STP CONVX 013 42 0 +1 BUN CONV3 013 43 0 +1 BUN TRTG1 013 44 0 +1 *T DLB L,64,0 013 45 0 +1 LDR - 0 013 46 0 +1 STP FXUPX 013 47 0 +1 BUN FXUP+1 013 48 0 +1 BUN TRTG1 013 49 0 +1 *D CAD LOCN THE NEW DEFINITION IS LOCN 013 50 0 +1 STA - 0,64 013 51 0 +1 NU BUN TRTG1 013 52 0 +1 STP ASMBX IF THIS IS A SUBROUTINE LABEL, 013 53 0 +1 BUN ASMBL,NOPZ INSERT A NOP INSTRUCTION 013 54 0 +1 IFL NU,62,29 013 55 0 +1 TRTG1 DLB L,64,0 FIX ALL FORWARD REFERENCES TO THIS LABEL 013 56 0 +1 STP REMX 013 57 0 +1 BUN REM1,E- 013 58 0 +1 LDR LOCNP IF THIS IS A SEGMENT NUMBER, 013 59 0 +1 ZUTA F424 0001,01,LOCN RESTORE LOCN 013 60 0 +1 *B CAD CHI IF MONITOR STATEMENT HASNT APPEARED,EXIT 013 61 0 +1 ALEPH BZA TRTGX 013 62 0 +1 DLB V8,64,0 013 63 0 +1 STP LIBRX BRING IN THE LABEL PROCESSOR ROUTINE 013 64 0 +1 BUN LIBRF 013 65 0 +1 DLB L,64,0 013 66 0 +1 STB MNTR,04 013 67 0 +1 CAD L IF THIS IS A NUMERIC LABEL 013 68 0 +1 BSA *+2,0 ATTACH A MINUS SIGN TO IT 013 69 0 +1 IFL - 1,12,10 AS A SIGNAL TO THE LABEL PROCESSOR 013 70 0 +1 STP CONVX 013 71 0 +1 BUN CONV 013 72 0 +1 MNTR CAA * IF LABEL IS REQUESTED FOR MONITORING, 013 73 0 +1 MU NOP TRTGX 013 74 0 +1 BSA *+3,2 013 75 0 +1 BSA *+2,6 PREPARE TO MONITOR ALL ASSIGNMENT 013 76 0 +1 TRTGX BUN * STATEMENTS IN ITS SCOPE 013 77 0 +1 STP CMPLX 013 78 0 +1 BUN WMG,CRM COMPILE CIRCL-M (THIS WILL COME UP 013 79 0 +1 IFL MU,62,29 WHEN THE SCOPE OF THELABEL IS ENDED) 013 80 0 +1 BUN TRTGX 013 81 0 +1 +1 +1 PASS STP INPTX GET NEXT NONBLANK CHARACTER FROM CARD 013 84 0 +1 BUN INPT 013 85 0 +1 BZA INPT 013 86 0 +1 PASSX BUN * 013 87 0 +1 +1 +1 WIND1 LDB TAG FINISH PROCESSING CONSTANT. 013 90 0 +1 DBB E+,1 IF TAG IS ON, IT IS A NUMERIC LABEL 013 91 0 +1 WINDU STP WNDSX 013 92 0 +1 BUN WINDS OTHERWISE MAKE A CONSTANT OUT OF IT 013 93 0 +1 STP NMBRX 013 94 0 +1 BUN NMBR 013 95 0 +1 +1 +1 FRME DLB L,64,00 SEND CODED SYMBOL TO EXECUTOR 013 98 0 +1 CAD - 0 013 99 0 +1 BFA A+,11,7 014 00 0 +1 STA L,22 014 01 0 +1 BFA C+,11,6 014 02 0 +1 *D CAD L IF IT ISNT A RESERVED WORD, 014 03 0 +1 EXT BOF2 MARK IT AS AN OPERAND 014 04 0 +1 *B STP SCAN 014 05 0 +1 BUN EXCTR 014 06 0 +1 FRMEX BUN * 014 07 0 +1 *A SLA 4 RESERVED WORD - SLA4 FOR PROPER CODE 014 08 0 +1 BUN B- 014 09 0 +1 *C IFL L,11,2 FUNCTION CODE IS 6 IN SCANNER. 014 10 0 +1 BUN D- 014 11 0 +1 *E LDR NTAG 014 12 0 +1 STR K 014 13 0 +1 LDB WINDX 014 14 0 +1 DLB - 9999,44,0 014 15 0 +1 BUN - 0 014 16 0 +1 +1 +1 WINDS CLL RR0 PUT CONSTANT INTO FINAL FORM 014 19 0 +1 CAD SW3 014 20 0 +1 BZA E+ 014 21 0 +1 CAD SYMBL IF DECIMAL POINT WAS SENSED, 014 22 0 +1 *G BFA F+,23,0 TRUNCATE CONSTANT TO EIGHT SIGNIFICANT 014 23 0 +1 IFL D,22,01 DIGITS 014 24 0 +1 SRS 1 014 25 0 +1 BUN G- 014 26 0 +1 *F SRT 10 014 27 0 +1 CAD D 014 28 0 +1 STR D,08 ATTACH EXPONENT 014 29 0 +1 FAD D 014 30 0 +1 STA SYMBL NORMALIZE 014 31 0 +1 WNDSX BUN * 014 32 0 +1 *E CAD SW2 014 33 0 +1 BZA D+ 014 34 0 +1 SW4 CAA SYMBL IF SCALE FACTOR TO BE ADDED, 014 35 0 +1 BFA B+,88,0 MAKE SURE IT IS IN THE PROPER RANGE 014 36 0 +1 *A STP WEMX 014 37 0 +1 BUN WEM,C+ 014 38 0 +1 CNST 33436373800 CONSTANT OUT OF RANGE 014 39 0 +1 *B SLA 8 014 40 0 +1 ADA FP 014 41 0 +1 BOF A- 014 42 0 +1 BPA WNDSX-1 014 43 0 +1 SVAR DEFN * 014 44 0 +1 *C CLA IF UNDERFLOW OR TOO BIG USE ZERO 014 45 0 +1 BUN WNDSX-1 014 46 0 +1 *D IFL RR0,22,1 SET TYPE OF FIXED POINT CONSTANT 014 47 0 +1 BUN WNDSX 014 48 0 +1 WINDX DEFN FRMEX 014 49 0 +1 +1 +1 INSRT ADD LL0 PUT A NEW SYMBOL INTO MEMORY 014 52 0 +1 EXT NN 014 53 0 +1 ADD SCT 014 54 0 +1 STA L,04 014 55 0 +1 LDR SSC 014 56 0 +1 SLT 4 014 57 0 +1 STR L,64 014 58 0 +1 CAD D2D3 014 59 0 +1 STA L,23 014 60 0 +1 SRA 2 014 61 0 +1 STA B+,43 014 62 0 +1 BFA D+,42,00 014 63 0 +1 *E LDB L IF IT DOESNT FIT INTO THE SCRAMBLE 014 64 0 +1 LDR - 0 TABLE, PUT IT INTO ASSOCIATIVE MEMORY 014 65 0 +1 CAD L 014 66 0 +1 BFR C+,00,0 014 67 0 +1 STP INSX 014 68 0 +1 BUN INS1 014 69 0 +1 *C STA - 0,67 014 70 0 +1 *A LDB SSC 014 71 0 +1 IFL *+1,43,19 014 72 0 +1 *B RTF RR0,0 MOVE NAME INTO SSC AREA 014 73 0 +1 STB SSC 014 74 0 +1 LDR SSC 014 75 0 +1 CFR MAMAX,04 CHECK IF MEMORY EXCEEDED 014 76 0 +1 BCH FULL 014 77 0 +1 DLB L,64,0 014 78 0 +1 CLL - 0 014 79 0 +1 INSRX BUN * 014 80 0 +1 *D IFL B-,21,1 50-CHARACTER IDENTIFIER WORRIES 014 81 0 +1 BUN E- 014 82 0 +1 +1 +1 ALPLU CAD K LOOKUP IDENTIFIER OR NUMERIC LABEL 014 85 0 +1 SLA 8 014 86 0 +1 STA D2D3,23 CONTROL ROUTINE 014 87 0 +1 D2D3 CAA SYMBL 014 88 0 +1 SRT 10 SCRAMBLE FIRST PART OF SYMBOL 014 89 0 +1 DIV NN BY TAKING ITS REMAINDER MOD 99 014 90 0 +1 STR LL0 014 91 0 +1 LDR PARSW 014 92 0 +1 CAD FNSW 014 93 0 +1 BZR E+ 014 94 0 +1 LDR DICT+3 014 95 0 +1 BZA B+ 014 96 0 +1 STP SRCHX COLLECTING FUNCTION PARAMETERS 014 97 0 +1 BUN SRCH1 USE TYPE AS SPECIFIED IN TYPE DECLRATNS 014 98 0 +1 BUN X+ 014 99 0 +1 BFR B+,21,0 015 00 0 +1 BFR B+,21,1 015 01 0 +1 LDR RR3 015 02 0 +1 *B STR RR2,21 COLLECTING PROCEDURE PARAMETERS 015 03 0 +1 CAD KC MARK TYPE AS UNSPECIFIED 015 04 0 +1 STP INSRX 015 05 0 +1 BUN INSRT PUT PARAMETER INTO TABLE AT KC LEVEL 015 06 0 +1 LDR RR2 015 07 0 +1 STR - 0,21 015 08 0 +1 LDR TAG 015 09 0 +1 BZR ALPX1 015 10 0 +1 BUN Y+ 015 11 0 +1 *E BZA D+ PROCESSING A FUNCTION DECLARATION 015 12 0 +1 CAD KC IS THE IDENTIFIER A PARAMETER 015 13 0 +1 STP SRCHX 015 14 0 +1 BUN SRCH 015 15 0 +1 BUN D+ IF NOT TREAT AS NORMAL 015 16 0 +1 *J LDR SW6 015 17 0 +1 BZR ALPX1 015 18 0 +1 LDR L INSERT IMPLIED MULTIPLICATION 015 19 0 +1 STR LP IF REQUIRED 015 20 0 +1 CAD DOT 015 21 0 +1 STP SCAN 015 22 0 +1 BUN EXCTR 015 23 0 +1 LDR LP 015 24 0 +1 STR L 015 25 0 +1 CLL SW6 015 26 0 +1 ALPX1 LDB MODE ON EXIT, PUT MODE IN R REGISTER 015 27 0 +1 LDR - 0 SYMBL CODE IN A REGISTER 015 28 0 +1 DLB L,64,0 015 29 0 +1 BFR W+,12,70 015 30 0 +1 CAD - 0 015 31 0 +1 ALPLX BUN * 015 32 0 +1 *D STP SRCHX NORMAL CASE 015 33 0 +1 BUN SRCH1 SEARCH FOR THIS IDENTIFIER 015 34 0 +1 BUN F+ 015 35 0 +1 THI NOP FRME IF PROCESSING MONITOR LIST,EXIT TO FRME 015 36 0 +1 BFR J-,22,74 IF ITS AN INTRINSIC FUNCTION GO TO J- 015 37 0 +1 BFR ALPX1-1,11,7 IF ANOTHER RESERVED WORD,EXIT 015 38 0 +1 BFR G+,11,9 IS IT A LABEL 015 39 0 +1 *L BFR H+,22,83 IS IT A PROCEDURE NAME 015 40 0 +1 BFR Z+,21,3 IS ITS TYPE UNSPECIFIED 015 41 0 +1 STP LIBRX IF IT IS A NEW LIBRARY PROCEDURE, 015 42 0 +1 BFR LIBRF,11,3 ADD IT TO THE LIBRARY 015 43 0 +1 BUN J- OTHERWISE CHEK IMPLIED MULTIPLICATION 015 44 0 +1 *F CAD LEVEL 015 45 0 +1 PEH BZA M+ SYMBOL NOT FOUND 015 46 0 +1 L9 CLA 9 INSIDE PROCEDURE 015 47 0 +1 STP SRCHX 015 48 0 +1 BUN SRCH 015 49 0 +1 BUN K+ MAYBE ITS A RESERVED WORD 015 50 0 +1 BFR J-,22,74 015 51 0 +1 BFR ALPX1-1,11,7 015 52 0 +1 BFR J-,11,4 OR A PROCEDURE, LIBRARY FUNCTION NAME 015 53 0 +1 BFR L-,11,3 015 54 0 +1 BFR L-,11,8 015 55 0 +1 *K CAD LEVEL IF WE HAVE A BONA FIDE NEW SYMBOL, 015 56 0 +1 *M STP INSRX ADD IT TO THE TABLE 015 57 0 +1 BUN INSRT 015 58 0 +1 *Z LDR TAG 015 59 0 +1 BZR H+ 015 60 0 +1 *Y DFL - 0,11,1 MAKE IT A LABEL, IF IT APPEARS IN 015 61 0 +1 BUN ALPX1-1 THAT CONTEXT 015 62 0 +1 *X CAD KC 015 63 0 +1 BUN M- 015 64 0 +1 *G CLL SW6 015 65 0 +1 *M LDB MODE OTHERWISE IF IN TYPE DECLARATION MODE 015 66 0 +1 LDR - 0 SET ITS TYPE 015 67 0 +1 CFR DCLMD,64 015 68 0 +1 BCU N+ 015 69 0 +1 CAD RR2 015 70 0 +1 DLB L,64,0 015 71 0 +1 STA - 0,21 015 72 0 +1 BUN ALPX1 015 73 0 +1 *N CAD SYMBL GIVEN A NEW SYMBOL, LETS ASSIGN 015 74 0 +1 LDB PR3 A TYPE FOR IT 015 75 0 +1 *A2 IBB F+,9999 LOOK IN PREFIX STACK FOR 015 76 0 +1 LDR - 1 FIRST PREFIX WHICH APPLIES 015 77 0 +1 STR TEMP 015 78 0 +1 DLB TEMP,64,0 015 79 0 +1 STR *+1,22 015 80 0 +1 CFA - 0,22 015 81 0 +1 LDB TEMP 015 82 0 +1 BCU A2- 015 83 0 +1 CAD TEMP 015 84 0 +1 SRS 2 015 85 0 +1 *P DLB L,64,0 015 86 0 +1 STA - 0,21 015 87 0 +1 BUN J- IF NONE FITS, SET OTHERWISE TYPE 015 88 0 +1 *F CAD RR3 015 89 0 +1 BUN P- 015 90 0 +1 *W CAD 8 * 015 91 0 +1 STB JCROY,04 015 92 0 +1 CLL TAG LABEL ON A TRACE CARD SENSED 015 93 0 +1 STP INSX 015 94 0 +1 BUN INS1 PUT CODE REFERENCE ON ITS FIXUP STACK 015 95 0 +1 STP CMPLX 015 96 0 +1 BUN WMG,CROY 015 97 0 +1 IFL CHI,00,1 015 98 0 +1 BUN SCN1 015 99 0 +1 +1 +1 NMBR CAD SYMBL SEE IF CONSTANT HAS APPEARED BEFORE. 016 02 0 +1 LDR RR0 EITHER SEARCH FLOATING POINT ONES 016 03 0 +1 RHO NOP C+ OR INTEGER ONES 016 04 0 +1 DLB V6,64,00 016 05 0 +1 BFR *+2,21,1 016 06 0 +1 DLB V7,64,00 016 07 0 +1 *A CFA - 1 016 08 0 +1 BCE B+ 016 09 0 +1 STB E+,04 016 10 0 +1 LDB - 0 016 11 0 +1 IBB D+,9999 016 12 0 +1 IBB A-,1 016 13 0 +1 *D LDB SSC 016 14 0 +1 *E STB *,04 ENTER NEW CONSTANT IN TABLE 016 15 0 +1 RTF RR0,2 016 16 0 +1 STB SSC 016 17 0 +1 IFL - 9998,11,2 016 18 0 +1 IBB *+1,9998 016 19 0 +1 *B STB L CONSTANT IN TABLE 016 20 0 +1 CAD L 016 21 0 +1 SLA 4 016 22 0 +1 STA L,64 016 23 0 +1 DLB L,64,0 016 24 0 +1 NMBRX BUN * 016 25 0 +1 *C CFR V2,21 IN ARRAY FILL 016 26 0 +1 BCH FLTCM CHANGE TO PROPER TYPE, IF NECESSARY 016 27 0 +1 BCL FIXCM 016 28 0 +1 DFL RHO,62,29 016 29 0 +1 STA V1 016 30 0 +1 STP TSTOX REVERSE ITS SIGN IF NECESSARY 016 31 0 +1 BUN TSTOP 016 32 0 +1 LDR V1 016 33 0 +1 CAD ABASE 016 34 0 +1 IFL ABASE,00,1 016 35 0 +1 STP WRITX COMPILE IT 016 36 0 +1 BUN WRIT3 016 37 0 +1 BUN WINDX 016 38 0 +1 +1 +1 +1 +1 CLASS STP ALPLX PROCESS AND CLASSIFY SYMBOL 016 43 0 +1 BUN ALPLU 016 44 0 +1 BFA FRME,11,7 016 45 0 +1 CFR DCLMD,64 016 46 0 +1 BCE SCN1 EXIT IF IN A TYPE DECLARATION 016 47 0 +1 LDB TAG 016 48 0 +1 BFA B+,11,0 OTHERWISE IT MUST BE A 016 49 0 +1 BFA C+,11,1 LABEL OR SIMPLE VARIABLE 016 50 0 +1 BFA D+,11,9 016 51 0 +1 DBB P+,1 016 52 0 +1 *Q STP WEMX 016 53 0 +1 BUN WEM,FRME 016 54 0 +1 CNST 30122240000 IMPROPER VARIABLE SYMBOL 016 55 0 +1 *C IBB FRME,9999 016 56 0 +1 *P STP WEMX 016 57 0 +1 BUN WEM,A+ 016 58 0 +1 CNST 30117240000 IMPROPER LABEL SYMBOL 016 59 0 +1 *D DBB A+,1 016 60 0 +1 BUN Q- 016 61 0 +1 *B CFR FUNMD,64 MAKE UNASSIGNED SYMBOL 016 62 0 +1 BCU X+ INTO EITHER A SIMPLE VARIABLE 016 63 0 +1 LDB FUNS 016 64 0 +1 CAD - 0 OR, IF IN LABEL PART OF A PROCEDURE 016 65 0 +1 BSA Y+,3 CALL, INTO A LABEL 016 66 0 +1 *X DLB L,64,0 016 67 0 +1 IFL - 0,11,1 016 68 0 +1 *A CLL TAG 016 69 0 +1 BUN FRME EXIT TO FRME ROUTINE IN ANY EVENT 016 70 0 +1 *Y DLB L,64,0 016 71 0 +1 IFL - 0,11,9 016 72 0 +1 BUN FRME 016 73 0 +1 CLASX DEFN FRMEX 016 74 0 +1 +1 +1 THETA DEFN * 016 77 0 +1 INPT NOP INP3 GET NEXT CHARACTER, FROM FV-STACK 016 78 0 +1 INP1 DLB SCNCT,94,00 OR FROM CARD, NORMALLY FROM CARD 016 79 0 +1 CAD - IMAGE BRING IN ALPHA WORD 016 80 0 +1 LDB SCNCT 016 81 0 +1 SLA - 0 ISOLATE NEXT DIGIT PAIR 016 82 0 +1 CCCNT DBB D+,144 CHECK FOR END OF CARD 016 83 0 +1 ZETA BFA E+,00,00 016 84 0 +1 SRA 8 016 85 0 +1 IFL SCNCT,05,02 016 86 0 +1 *F STA CHAR,02 016 87 0 +1 BETA BUN INPTX 016 88 0 +1 SLA 4 IF PROCESSING FOR STATEMENT 016 89 0 +1 STP INSX,RV WE PUT CHARACTERS INTO RV-STACK 016 90 0 +1 BUN INS 016 91 0 +1 BFA *+3,62,33 016 92 0 +1 CAD CHAR 016 93 0 +1 INPTX BUN * 016 94 0 +1 *B CAD FV IF BETA ON AND WE HAVE JUST PUT IN 016 95 0 +1 LDB RV AN EQUAL SIGN, 016 96 0 +1 STB FV,04 RV STACK HAS CHARACTERS IN BACKWARDS$ 016 97 0 +1 LDR - 0 TRANSFER THEM TO FV-STACK IN RIGHT ORDER 016 98 0 +1 STA - 0,04 016 99 0 +1 STR RV,04 UNTIL RV-STACK IS EMPTY 017 00 0 +1 BFR *+2,04,00 017 01 0 +1 BUN B- 017 02 0 +1 *C IFL BETA,62,29 017 03 0 +1 CAD CHAR 017 04 0 +1 BUN INPTX 017 05 0 +1 *D BCS *+3,4 017 06 0 +1 STP 4 9898,1642 017 07 0 +1 BUN 4 9898,IMAGE 017 08 0 +1 STP 4 9999 017 09 0 +1 BUN 4 9999,IMAGE 017 10 0 +1 CLL SCNCT 017 11 0 +1 STB LCCT,62 017 12 0 +1 IFL LCCT,62,1 017 13 0 +1 CCBEG IFL SCNCT,00,02 START IN COLUMN 2 017 14 0 +1 BUN INP1 017 15 0 +1 *E IFL SCNCT,05,10 HIGH SPEED IGNORING OF SUCCESSIVE 017 16 0 +1 STA SCNCT,01 017 17 0 +1 BUN F- BLANK COLUMNS UNLESS ZETA SWITCH IS ON 017 18 0 +1 INP3 LDB STFOL 017 19 0 +1 CAD - 0 PULL CHARACTERS OUT OF FV (FOR-VARIABLE) 017 20 0 +1 SRA 4 STACK 017 21 0 +1 STA CHAR,02 017 22 0 +1 IBB RUNXX,9999 017 23 0 +1 LDR - 1 017 24 0 +1 STR STFOL,04 017 25 0 +1 BUN INPTX 017 26 0 +1 +1 +1 CNST 20002000000 017 29 0 +1 IMAGE HLT 0 017 30 0 +1 CNST 0,0 017 31 0 +1 CNST $BAC-220 STANDARD VERSION$ 017 32 0 +1 CNST $ 2/1/62$ 017 33 0 +1 CNST 0,0,0,0,0 017 34 0 +1 LOCN IMAGE+16 017 35 0 +1 +1 +1 SRCH1 CAD LEVEL 017 38 0 +1 SRCH ADD LL0 017 39 0 +1 EXT NN LOOK FOR SYMBOL IN TABLE 017 40 0 +1 ADD SCT 017 41 0 +1 STA L 017 42 0 +1 *B LDB L 017 43 0 +1 IBB SRCHX,9999 017 44 0 +1 *C CAD - 1 017 45 0 +1 STA L FIRST COMPARE LENGTHS 017 46 0 +1 CFA D2D3,23 (AND WHETHER OR NOT A NUMERIC LABEL) 017 47 0 +1 BCU B- 017 48 0 +1 SRA 4 017 49 0 +1 STA TEMP 017 50 0 +1 IFL TEMP,63,9 017 51 0 +1 STA A+,04 017 52 0 +1 IFL A+,04,1 017 53 0 +1 DLB TEMP,54,1 017 54 0 +1 BRP A+ 017 55 0 +1 LDB L9 017 56 0 +1 *A CAD - * IF LENGTHS AGREE, COMPARE THE REST 017 57 0 +1 CFA - SYMBL,00 017 58 0 +1 BCU B- 017 59 0 +1 DBB A-,1 017 60 0 +1 IFL SRCHX,04,1 EXIT TO ONE BIGGER LOCATION 017 61 0 +1 DLB L,64,0 IF SYMBOL IS FOUND 017 62 0 +1 LDR - 0 017 63 0 +1 SRCHX BUN * 017 64 0 +1 +1 +1 R23 STP OPRTX,R24 (N .N $N ,N *N -N PN 017 67 0 +1 +1 +1 OPRT LDB OPRTX 017 70 0 +1 DLB - 9998,44,0 017 71 0 +1 STB SCAN,04 017 72 0 +1 LDB S1 SEND S1 OPERATOR TO EXECUTOR 017 73 0 +1 CAD - OPTAB 017 74 0 +1 BUN EXCTR 017 75 0 +1 OPRTX DEFN SCAN 017 76 0 +1 +1 +1 +1 +1 +1 +1 WEM CLL MSG WRITE ERROR MESSAGE 017 82 0 +1 LDB C+ 017 83 0 +1 IFL MSG,12,20 017 84 0 +1 RTF MSG,6 017 85 0 +1 CLL TEMP 017 86 0 +1 WEMX CAD * 017 87 0 +1 *E CLR 0000 017 88 0 +1 SRT 8 017 89 0 +1 BFA F+,00,0 017 90 0 +1 STA E-,04 017 91 0 +1 STR TEMP3 017 92 0 +1 *H IFL E-,04,1 017 93 0 +1 LDB E- 017 94 0 +1 LDR - DICT-2 GET DICTIONARY ENTRY 017 95 0 +1 *C CLA MSG+1 017 96 0 +1 LBC TEMP 017 97 0 +1 SLT 2 TRANSFER CHARACTERS 017 98 0 +1 BFA B+,00,00 ONE AT A TIME INTO 017 99 0 +1 SLA - 8 BUFFER AREA 018 00 0 +1 DLB TEMP,94,00 018 01 0 +1 LSA 0 018 02 0 +1 ADD - MSG 018 03 0 +1 STA - MSG,00 018 04 0 +1 IFL TEMP,05,02 018 05 0 +1 BUN C- 018 06 0 +1 *B BSA H-,3 018 07 0 +1 IFL TEMP,05,02 PUT SPACE BETWEEN WORDS 018 08 0 +1 CAD TEMP3 018 09 0 +1 BUN E- 018 10 0 +1 *F BCS *+2,4 018 11 0 +1 BUN *+3 018 12 0 +1 STP 4 9898,1642 018 13 0 +1 BUN 4 9898,IMAGE 018 14 0 +1 STP 4 9898,0706 018 15 0 +1 BUN 4 9898,MSG 018 16 0 +1 LDB WEMX RETURN TO PROGRAM, 018 17 0 +1 DLB - 9999,44,0 ATTEMPT TO CONTINUE ON 018 18 0 +1 CAD V4 PUT V4 (CODE FOR CONSTANT 1) 018 19 0 +1 BUN - 0 IN A REGISTER ON EXIT 018 20 0 +1 +1 +1 +1 NEWT CAD TEMPS RECORD CURRENT SET OF TEMPORARY 018 24 0 +1 SLA 4 STORAGE CELLS IN SAVET STACK 018 25 0 +1 CLL TEMPS AND MARK THE TEMPS STACK EMPTY 018 26 0 +1 BUN INS 018 27 0 +1 +1 +1 INS2 CAD LOCN 018 30 0 +1 INS LDB INSX INSERT RA(67) INTO ASSOCIATIVE MEMORY 018 31 0 +1 DLB - 9998,44,0 LOCATION PRECEDING (RB) 018 32 0 +1 INS1 STB A+,04 018 33 0 +1 LDR AVAIL MORMALLY THIS MEANS ON TOP OF THE 018 34 0 +1 BFR B+,04,00 STACK NAMED BY THE B REGISTER OR 018 35 0 +1 *C LDR - 0 BY THE 44-FIELD OF THE STP 018 36 0 +1 LDB AVAIL 018 37 0 +1 STA - 0,67 018 38 0 +1 CAD - 0 018 39 0 +1 STR - 0,04 018 40 0 +1 *A STB *,04 018 41 0 +1 STA AVAIL,04 018 42 0 +1 INSX BUN * 018 43 0 +1 NEWTX DEFN INSX 018 44 0 +1 *B LDR MAMAX IF AVAIL STACK IS EMPTY, TRY TO 018 45 0 +1 CFR SSC,04 INCREASE THE SIZE OF 018 46 0 +1 STR AVAIL,04 ASSOCIATIVE MEMORY 018 47 0 +1 STR D+,04 018 48 0 +1 DFL MAMAX,00,1 018 49 0 +1 *D CLL * 018 50 0 +1 BCH C- IF NO ROOM IS LEFT, GIVE UP 018 51 0 +1 FULL STP WEMX 018 52 0 +1 BUN WEM,EX0 018 53 0 +1 CNST 33941430000 COMPILER CAPACITY EXCEEDED 018 54 0 +1 +1 +1 REM2 CLL SER 018 57 0 +1 REM LDB REMX REMOVE INFORMATION FROM 018 58 0 +1 DLB - 9998,44,0 ASSOCIATIVE MEMORY LOCATION FOLLOWING 018 59 0 +1 REM1 STB A+,04 (RB) ... NORMALLY THIS MEANS PULL OFF 018 60 0 +1 LDB - 0 TOP OF STACK NAMED BY THE B REGISTER 018 61 0 +1 CAD - 0 OR NAMED IN A 44-FIELD OF STP INSTRUCTION 018 62 0 +1 REMX IBB *,9999 018 63 0 +1 DBB *+1,9999 IF THE STACK IS EMPTY, EXIT 018 64 0 +1 LDR AVAIL OTHERWISE MARK LOCATION AVAILABLE 018 65 0 +1 STB AVAIL,04 FOR FUTURE USE 018 66 0 +1 STR - 0,04 018 67 0 +1 *A STA *,04 EXIT WITH THE REMOVED QUANTITY IN 018 68 0 +1 LDB REMX REGISTER A, TO THE LOCATION SPECIFIED 018 69 0 +1 DLB - 9999,44,0 IN THE 44-FIELD OF THE BUN INSTRUCTION 018 70 0 +1 BUN - 0 018 71 0 +1 +1 ASSN1 CAD VARB ASSIGN A PLACE FOR A VARIABLE, 018 73 0 +1 SLA 4 OR CONSTANT, OR TEMP STORAGE, 018 74 0 +1 STA - 0,64 IF ITS NOT IN MEMORY ALREADY 018 75 0 +1 DFL VARB,04,1 018 76 0 +1 ASSN CAD - 0 018 77 0 +1 BFA ASSN1,64,0 018 78 0 +1 ASSNX BUN * 018 79 0 +1 +1 CONV CAD - 0 PUT OUT MONITOR CODING 018 81 0 +1 LDR DICT+16 018 82 0 +1 STR EXPLN 018 83 0 +1 LDR V8 018 84 0 +1 STB STPV3,44 FOR A LABEL,TO THE LABEL PROCESSOR 018 85 0 +1 BFA F+,11,9 018 86 0 +1 LDR MONGN+1 018 87 0 +1 STR EXPLN 018 88 0 +1 LDR MNTRE OTHERWISE TO THE MONITOR ROUTINE 018 89 0 +1 STA STPV3,22 PUT TYPE IN THE STP INSTRUCTION 018 90 0 +1 BFA F+,11,1 018 91 0 +1 BFA F+,11,8 MONITOR FUNCTION NAMES 018 92 0 +1 LDB VIMAG (ARRAY NAME IS IN VIMAG) 018 93 0 +1 *F STR V3 018 94 0 +1 CAD - 1 018 95 0 +1 STA SYMBL 018 96 0 +1 STB RR0,21 MAKE UP A CONSTANT WITH THE 018 97 0 +1 STP NMBRX LEADING ALPHABETIC CHARACTERS 018 98 0 +1 BUN NMBR (OR NUMERIC LABEL QUANTITY) 018 99 0 +1 STP ASSNX 019 00 0 +1 BUN ASSN 019 01 0 +1 SLA 2 019 02 0 +1 CONV3 STA BUN3V,44 PUT ADDRESS OF THIS CONSTANT 019 03 0 +1 CAD G2 IN BUN INSTRUCTION 019 04 0 +1 BUN INTRP 019 05 0 +1 +1 SECTION C. THE EXEUCTOR CO-ROUTINE +1 +1 MAXCM CAD OPMAX 019 09 0 +1 BUN EXIT 019 10 0 +1 MINCM CAD OPMIN 019 11 0 +1 EXIT STP CMPLX 019 12 0 +1 BUN CMPL 019 13 0 +1 NORM STP EXCTR NORMAL EXIT TO THE 019 14 0 +1 BUN SCAN SCANNER CO-ROUTINE 019 15 0 +1 ANALZ STA TEMP,64 AT THIS POINT WE USUALLY GO TO 019 16 0 +1 DLB TEMP,64,0 CMPL(THE COMPILER) BUT SOME SPECIAL 019 17 0 +1 BFA A+,01,1 CASES OCCUR 019 18 0 +1 BFA B+,01,4 019 19 0 +1 BFA C+,01,5 019 20 0 +1 BUN EXIT 019 21 0 +1 *A BSA - 0,6 SPECIAL CONTROL OPERATOR, BRANCH 019 22 0 +1 BUN EXIT DIRECTLY TO IT 019 23 0 +1 *B CAD - 0 019 24 0 +1 ANALY STA INSX,04 SET UP MODE FIRST, THEN GO DIRECTLY 019 25 0 +1 DLB MODE,44,0 019 26 0 +1 BUN INS1 019 27 0 +1 *C STB D+,04 019 28 0 +1 LDB MODE PICK UP MODE FIRST, THEN GO DIRECTLY 019 29 0 +1 CAD - 0 019 30 0 +1 *D BUN * 019 31 0 +1 EXCTR BUN ANALZ EXIT-ENTRANCE LINE 019 32 0 +1 +1 +1 +1 COMMA BSA A+,1 COMMA FOUND, WE CANT BE IN NORMAL MODE 019 36 0 +1 DLB - 0,64,0 019 37 0 +1 COMMX F4241 6273,30,0 BRANCH TO THE COMMA-GENERATOR 019 38 0 +1 *A STP WEMX SPECIFIED BY THIS MODE. 019 39 0 +1 BUN WEM,NLRB 019 40 0 +1 CNST 31545000000 MISPLACED COMMA 019 41 0 +1 +1 +1 MODCM STP CMPLX MOD COMMA IS THOUGHT OF AS )CRD( 019 44 0 +1 BUN RIGHT 019 45 0 +1 STP CMPLX 019 46 0 +1 BUN WMG,CRD 019 47 0 +1 CAD LPAR 019 48 0 +1 BUN EXIT 019 49 0 +1 +1 +1 OVRLY CAA G12 GENERATE STP,BUN 019 52 0 +1 STP INTRX 019 53 0 +1 BUN INTRP FOLLOWED BY N (THE SEGMENT NUMBER) 019 54 0 +1 +1 +1 GO IFL TAG,00,1 SET UP TO EXPECT A LABEL 019 57 0 +1 CAD CRT AND COMPILE A CIRCLE-T OPERATOR 019 58 0 +1 BUN EXIT 019 59 0 +1 +1 +1 TO DEFN NORM IGNORE THE WORD TO 019 62 0 +1 +1 SWTCH STP CMPLX SET UP TO PROCESS A SWITCH STATEMENT 019 64 0 +1 BUN LEFT SWITCH E,(L,...,L) 019 65 0 +1 IFL DELTA,00,5 019 66 0 +1 DFL SWCM,62,29 019 67 0 +1 CAD CRH 019 68 0 +1 BUN EXIT 019 69 0 +1 +1 SWCM BUN GO IF PROC. THE LABELS, ACT LIKE GO TO 019 71 0 +1 IFL SWCM,62,29 019 72 0 +1 STP NULSX 019 73 0 +1 BUN NULSB OTHERWISE,EVALUATE E, AND LBC E. 019 74 0 +1 STP ASMBX 019 75 0 +1 BUN ASMBL,BUNFB 019 76 0 +1 CLL DEX THEN COMPILE -BUN FORWARD AND 019 77 0 +1 BUN GO ACT LIKE GO TO 019 78 0 +1 +1 +1 UNTIL IFL PSI,00,01 019 81 0 +1 CAD LOCN 019 82 0 +1 STA BREF,64 019 83 0 +1 STP CMPLX PUT OUT A BACKWARD REFERENCE OPERATOR, 019 84 0 +1 BUN WMG,BREF TO THE PRESENT LOCATION 019 85 0 +1 CAD CRU COMPILE A CIRCLE-U OPERATOR 019 86 0 +1 *A IFL DELTA,22,1 019 87 0 +1 BUN EXIT 019 88 0 +1 +1 +1 IF CAD OPIF IF AND UNTIL TURN ON SWITCH 019 91 0 +1 BUN A- WHICH CHANGES = SIGN INTO EQL 019 92 0 +1 +1 +1 ETHR STP CMPLX EITHER IS JUST A CIRCLE E OPERATOR 019 95 0 +1 BUN WMG,CRE AND A LEFT PARENTHESIS 019 96 0 +1 STP CMPLX 019 97 0 +1 BUN LEFT 019 98 0 +1 IFL PSI,00,01 019 99 0 +1 BUN NORM 020 00 0 +1 +1 +1 OR STP EXCTR 020 03 0 +1 BUN SCAN 020 04 0 +1 STA SMBL 020 05 0 +1 BFA A+,92,69 020 06 0 +1 STP CMPLX OR, NOT OR IF. 020 07 0 +1 BUN WMG,BOR COMPILE A BOOLEAN OR 020 08 0 +1 *B CAD SMBL 020 09 0 +1 BUN EXIT 020 10 0 +1 *A STP CMPLX OR IF. 020 11 0 +1 BUN RIGHT THIS ) MATCHES THE EITHER 020 12 0 +1 STP ASMBX 020 13 0 +1 BUN ASMBL,BUNFR PUT OUT A BUN FORWARD 020 14 0 +1 STP CMPLX 020 15 0 +1 BUN LEFT AND ANOTHER EITHER 020 16 0 +1 IFL PSI,00,1 020 17 0 +1 BUN IF AND THEN THE IF 020 18 0 +1 +1 +1 WISE CFA DCLMD,64 OTHERWISE SENSED. 020 21 0 +1 BCE B+ 020 22 0 +1 *A STP CMPLX IF IN EITHER IF CONTEXT, 020 23 0 +1 BUN RIGHT ACT LIKE OR IF 020 24 0 +1 STP ASMBX 020 25 0 +1 BUN ASMBL,BUNFR 020 26 0 +1 IFL DELTA,00,4 020 27 0 +1 CAD CRW 020 28 0 +1 BUN EXIT THEN PUT OUT CIRCLE-W OPERATOR. 020 29 0 +1 *B LDR RR2 020 30 0 +1 STR RR3 IF IN TYPE DECLARATION, SET 020 31 0 +1 LDB LEVEL RR3 TO CURRENT TYPE 020 32 0 +1 DBB NORM,1 AND IF OUTSIDE OF PROCEDURE DECLARATIONS, 020 33 0 +1 STR RR1 PUT IT INTO RR1 ALSO. 020 34 0 +1 BUN NORM 020 35 0 +1 +1 +1 ENTER IFL TAG,00,1 020 38 0 +1 STP EXCTR 020 39 0 +1 BUN SCAN 020 40 0 +1 STP LINKX LINK TO SUBROUTINE 020 41 0 +1 BUN LINK2 020 42 0 +1 BUN NORM 020 43 0 +1 +1 +1 STOP STP CMPLX COMPILE CIRCLE Z 020 46 0 +1 BUN WMG,CRZ 020 47 0 +1 SCT CLA SCRTB AND AN ACCUMULATOR SYMBOL. 020 48 0 +1 BUN EXIT 020 49 0 +1 +1 +1 RETN STP VSUBX RETURN. SEE VSUB. 020 52 0 +1 BUN VSUB 020 53 0 +1 BUN NORM 020 54 0 +1 +1 +1 COMNT CLL TAG COMMENT. 020 57 0 +1 STP INPTX 020 58 0 +1 CAD CHAR BYPASS CHARACTERS 020 59 0 +1 BFA SCN7,02,13 UNTIL WE SEE A SEMICOLON 020 60 0 +1 BUN INPT 020 61 0 +1 +1 +1 FOR STP CMPLX CIRCLE X - WILL GENERATE THE FINAL BUN 020 64 0 +1 BUN WMG,CRX 020 65 0 +1 STP CMPLX 020 66 0 +1 BUN LEFT 020 67 0 +1 DFL BETA,62,29 SET TO STORE NEXT CHARACTERS 020 68 0 +1 CAD CHAR AWAY (UP UNTIL THE = SIGN) 020 69 0 +1 SLA 4 020 70 0 +1 STP INSX,RV 020 71 0 +1 BUN INS 020 72 0 +1 CLL ALPHA 020 73 0 +1 IFL ALPHA,01,1 ALPHA TELLS WHAT KIND OF 020 74 0 +1 BUN C+ ITERATION LIST ELEMENT WE HAVE 020 75 0 +1 +1 +1 FORCM CLL PI COMMA IN ITERATION LIST. 020 78 0 +1 LDR ALPHA 020 79 0 +1 BFR A+,01,1 020 80 0 +1 BFR B+,01,2 020 81 0 +1 DFL ALPHA,01,2 020 82 0 +1 CLL PHI THE V=(E1,E2,E3), CASE. 020 83 0 +1 STP FSUBX ASSEMBLE STP,BUN 020 84 0 +1 BUN FSUB2 RUN BACK THE V= 020 85 0 +1 BUN C+ 020 86 0 +1 *B STP SEMIX THE V=(E1,E2, CASE 020 87 0 +1 BUN SEMIC FINISH INCREMENTATION OF V 020 88 0 +1 STP REMX,EXEC 020 89 0 +1 BUN REM,*+2 020 90 0 +1 G1 F424 6141,0,* 020 91 0 +1 STP FXUPX FIX UP BUN INSTRUCTION 020 92 0 +1 BUN FXUP 020 93 0 +1 STP CMPLX COMPILE AN UNTIL OPERATOR 020 94 0 +1 BUN WMG,CRU 020 95 0 +1 IFL PI,00,1 020 96 0 +1 DFL DELTA,01,2 020 97 0 +1 IFL ALPHA,01,1 020 98 0 +1 CAD TOP AND THE LEQ OR GEQ RELATION 020 99 0 +1 BUN EXIT 021 00 0 +1 *A LDB MODE 021 01 0 +1 LDR - 0 021 02 0 +1 BFR B+,22,2 021 03 0 +1 IFL ALPHA,00,1 THE V=(E1, CASE. 021 04 0 +1 STP CMPLX 021 05 0 +1 BUN RIGHT ASSEMBLE V=E1, STP, BUN 021 06 0 +1 STP QSUBX 021 07 0 +1 BUN QSUB 021 08 0 +1 STP FSUBX RUN BACK V=V 021 09 0 +1 BUN FSUB1 021 10 0 +1 STP RUNX 021 11 0 +1 BUN RUN 021 12 0 +1 STP EXCTR 021 13 0 +1 BUN SCAN 021 14 0 +1 CFA HYPH REMEMBER IF E2 BEGINS WITH 021 15 0 +1 LDR RLEQ THE CHARACTER MINUS 021 16 0 +1 BCU *+2 021 17 0 +1 LDR RGEQ 021 18 0 +1 STR TOP 021 19 0 +1 STA SYMBL COMPILE +, AND THEN CONTINUE SCANNING 021 20 0 +1 STP CMPLX 021 21 0 +1 BUN WMG,PLUS 021 22 0 +1 CAD SMBL 021 23 0 +1 BUN EXIT 021 24 0 +1 *B STP QSUBX THE V=E1, CASE. 021 25 0 +1 BUN QSUB 021 26 0 +1 STP FSUBX ASSEMBLE V=E1, STP, BUN 021 27 0 +1 BUN FSUB1 SCAN V= AGAIN 021 28 0 +1 *C CLL DELTA 021 29 0 +1 IFL DELTA,00,3 021 30 0 +1 BUN NORM 021 31 0 +1 021 32 0 +1 021 33 0 +1 SEMI BSA C+,2 SEMICOLON GENERATOR. 021 34 0 +1 LDB OMCRN CHECKS FIRST FOR LABEL MODE. 021 35 0 +1 CLL OMCRN EXIT IF EXPECTING A SEMICOLON 021 36 0 +1 DBB NORM,1 021 37 0 +1 CFA FUNMD,64 021 38 0 +1 BCE A+ CHECK FOR FUNCTION OR PROCEDURE CALL 021 39 0 +1 CFA PRCMD,64 021 40 0 +1 BCE B+ 021 41 0 +1 LDB DELTA OTHERWISE BRANCH ACCORDING TO THE 021 42 0 +1 BUN - *+1 SETTING OF DELTA 021 43 0 +1 BUN DEL0 DELTA UNSET 021 44 0 +1 BUN DEL1 FOR STATEMENT,AFTER (E1,E2,E3) 021 45 0 +1 BUN DEL2 THIS LOCATION IS WASTED 021 46 0 +1 BUN DEL3 FOR STATEMENT, AFTER E 021 47 0 +1 BUN DEL4 AFTER OTHERWISE,SEGMENT,SUBROUTINE,ETC. 021 48 0 +1 DEL5 STP CMPLX DECLARATION (E.G., INTEGER, FORMAT) 021 49 0 +1 BUN RIGHT 021 50 0 +1 BUN DEL0 021 51 0 +1 *B STP YSUBX PROCESS PARAMETER 021 52 0 +1 BUN YSUB1 021 53 0 +1 *B CAA - 0 INCREASE SEMICOLON COUNT 021 54 0 +1 IFL - 0,12,10 021 55 0 +1 BSA NORM,0 021 56 0 +1 MEMST IFL TAG,00,1 IF IT WAS 2,SET TO EXPECT LABELS. 021 57 0 +1 BUN NORM 021 58 0 +1 *A STP PRSBX,CRC COMPILE A PARAMETER CALL OP 021 59 0 +1 BUN PRSB 021 60 0 +1 LDB FUNS 021 61 0 +1 BUN B- 021 62 0 +1 DEL1 STP CMPLX FINISH FOR LIST 021 63 0 +1 BUN RIGHT 021 64 0 +1 CLL PI 021 65 0 +1 BUN Q+ (SEE Q+ BELOW) 021 66 0 +1 *E BFA DEL4,11,0 021 67 0 +1 STP WEMX 021 68 0 +1 BUN WEM,DEL4 021 69 0 +1 CNST 34661000000 EXTRA OPERAND 021 70 0 +1 *F STP WEMX 021 71 0 +1 BUN WEM,A+ 021 72 0 +1 CNST 30147000000 IMPROPER SUBSCRIPT 021 73 0 +1 DEL0 STP SEMIX SEMICOLON IS )( 021 74 0 +1 BUN SEMIC 021 75 0 +1 DEL4 STP REMX,OPRND ARE THERE ANY OPERANDS ON THE STACK 021 76 0 +1 BUN REM,E- IF SO THEY HAD BETTER BE ACCUM SYMBOLS 021 77 0 +1 *A STP REMX,DIMS ARE THERE ANY DIMENSIONS LEFT 021 78 0 +1 BUN REM,F- WE HOPE NOT 021 79 0 +1 *A CLL SER 021 80 0 +1 CLL DEX IF EVERYTHING IS COPACETIC, 021 81 0 +1 CLL PI CLEAR ALL SWITCHES IN SIGHT, 021 82 0 +1 CLL PSI IN PREPARATION FOR A NEW STATEMENT 021 83 0 +1 CLL DELTA 021 84 0 +1 CLL TAG 021 85 0 +1 BUN NORM 021 86 0 +1 *C STP DECNX 021 87 0 +1 BUN DECN 021 88 0 +1 BUN DEL5 021 89 0 +1 DEL2 DEFN * 021 90 0 +1 DEL3 STP QSUBX ASSEMBLE STP,BUN IN FOR LOOP 021 91 0 +1 BUN QSUB 021 92 0 +1 *Q IFL PSI,00,01 ASSEMBLE BUN AROUND THE LOOP 021 93 0 +1 STP ASMBX 021 94 0 +1 BUN ASMBL,BUNFR 021 95 0 +1 STP CMPLX COMPILE INPUT OR OUTPUT, IF THIS 021 96 0 +1 UPSLN F424 CRA,01,WMG FOR APPEARED THERE. 021 97 0 +1 *E STP REMX,EXEC FIX UP ALL THE BUNS TO THIS FOR LOOP 021 98 0 +1 BUN REM,C+ 021 99 0 +1 *A STP DECNX DROP THE FOR MODE 022 00 0 +1 BUN DECN 022 01 0 +1 CLL PHI 022 02 0 +1 *B STP REMX,FV RELEASE THE SYMBOLS FROM THE 022 03 0 +1 BUN REM,B- FOR-VARIABLE STACK 022 04 0 +1 BUN DEL4 THEN DO LIKE A REGULAR SEMICOLON. 022 05 0 +1 *C STP FXUPX 022 06 0 +1 BUN FXUP 022 07 0 +1 BUN E- 022 08 0 +1 +1 +1 INPUT CAD CRJ 022 11 0 +1 BUN A+ 022 12 0 +1 +1 +1 OUTPT CAD CRK ASSEMBLE BUN FORWARD 022 15 0 +1 *A STA STSV 022 16 0 +1 *B STP ASMBX 022 17 0 +1 BUN ASMBL,BUNFR 022 18 0 +1 IFL TAG,00,01 022 19 0 +1 BUN NLRB 022 20 0 +1 +1 +1 PUTCM STP NULSX COMMA BETWEEN TWO INPUT OR 022 23 0 +1 BUN NULSB OUTPUT DECLARATIONS 022 24 0 +1 BUN B- 022 25 0 +1 +1 +1 LABEL STP ASMBX ASSEMBLE BUN 0000 022 28 0 +1 BUN ASMBL,BUNZ AS THE FIRST INSTRUCTION OF A DECLARATION 022 29 0 +1 IFL UPSLN,62,29 022 30 0 +1 STP CMPLX 022 31 0 +1 BUN WMG,CRI COMPILE CIRCLE I, CIRCLE A 022 32 0 +1 CAD CRA 022 33 0 +1 BUN EXIT 022 34 0 +1 +1 +1 LABCM DEFN * 022 37 0 +1 *A STP PRSBX,CRA COMPILE CIRCLE A 022 38 0 +1 BUN PRSB (INPUT OR OUTPUT) 022 39 0 +1 +1 +1 NLRB CLL DEX 022 42 0 +1 BUN NORM MARK B REGISTER UNKNOWN 022 43 0 +1 +1 +1 FRMT STP ASMBX FORMAT. ASSEMBLE BUN AROUND. 022 46 0 +1 BUN ASMBL,BUNFR 022 47 0 +1 IFL DELTA,00,5 022 48 0 +1 STP CMPLX 022 49 0 +1 BUN LEFT 022 50 0 +1 +1 +1 FRMCM IFL TAG,00,1 PROCESS FORMAT STRING. 022 53 0 +1 STP EXCTR 022 54 0 +1 BUN SCAN 022 55 0 +1 BFA LEFT,02,02 (THIS IS A LITTLE SCANNER) 022 56 0 +1 CLL DESCR 022 57 0 +1 *L STP INSX,DIMS BEGIN NEST 022 58 0 +1 BUN INS2 022 59 0 +1 LDB DIMS 022 60 0 +1 CAD DESCR 022 61 0 +1 SLS 8 022 62 0 +1 STA - 0,23 022 63 0 +1 *A CLL INSTR 022 64 0 +1 *B CLL DESCR 022 65 0 +1 STP PASSX 022 66 0 +1 BUN PASS 022 67 0 +1 BFA L-,02,24 LEFT PARENTHESIS 022 68 0 +1 BFA N+,91,8 NUMERIC 022 69 0 +1 BFA D+,02,03 DOT 022 70 0 +1 BFA C+,02,23 COMMA 022 71 0 +1 BFA S+,02,14 STAR 022 72 0 +1 BFA R+,02,04 RIGHT PARENTHESIS 022 73 0 +1 STR 2 022 74 0 +1 CAD DESCR 022 75 0 +1 SLT 7 022 76 0 +1 STA INSTR,55 INSERT NUMBER(33 FIELD)ALPHA(52FIELD) 022 77 0 +1 BUN B- 022 78 0 +1 *N SRT 1 BUILD NUMBER 022 79 0 +1 CAD DESCR 022 80 0 +1 SLT 1 022 81 0 +1 STA DESCR 022 82 0 +1 BUN PASS 022 83 0 +1 *D CAD DESCR INSERT NUMBER IN 83-FIELD 022 84 0 +1 SLA 2 022 85 0 +1 STA INSTR,83 022 86 0 +1 BUN B- 022 87 0 +1 *R DFL L+,62,29 022 88 0 +1 *C CAD DESCR INSERT NUMBER IN EITHER 02 OR 83 FIELD 022 89 0 +1 LDR INSTR 022 90 0 +1 BZR L+ (OR DO NOTHING - AFTER *) 022 91 0 +1 BFR F+,83,0 022 92 0 +1 STA INSTR,02 022 93 0 +1 *R STP WRITX 022 94 0 +1 BUN WRIT2 022 95 0 +1 LDB DIMS 022 96 0 +1 IBB NORM,9999 022 97 0 +1 *L BUN A- 022 98 0 +1 IFL L-,62,29 RIGHT PARENTHESIS. GET 022 99 0 +1 STP REMX,DIMS LOCATION OF MATCHING LEFT PARENTHESIS 023 00 0 +1 BUN REM,*+2 023 01 0 +1 G2 F424 7043,0,* 023 02 0 +1 SRS 4 023 03 0 +1 LSA 1 023 04 0 +1 STA INSTR 023 05 0 +1 BUN R- 023 06 0 +1 *S DFL ZETA,62,35 ALPHANUMERIC STRINGS. 023 07 0 +1 *S CLL IOPUS 023 08 0 +1 CLL INSTR 023 09 0 +1 *B STP INPTX 023 10 0 +1 BUN INPT TRANSFER FIVE CHARACTERS 023 11 0 +1 DLB IOPUS,04,2 AT A TIME, UP TO AND 023 12 0 +1 SLA - 0 INCLUDING THE NEXT ASTERISK. 023 13 0 +1 ADL INSTR 023 14 0 +1 CAD CHAR 023 15 0 +1 BFA C+,02,14 023 16 0 +1 DBB INPT,9992 023 17 0 +1 IFL INSTR,12,20 023 18 0 +1 STP WRITX 023 19 0 +1 BUN WRIT2 023 20 0 +1 BUN S- 023 21 0 +1 *C IFL INSTR,12,30 023 22 0 +1 IFL ZETA,62,35 023 23 0 +1 BUN R- 023 24 0 +1 *F SLA 2 023 25 0 +1 STA INSTR,83 023 26 0 +1 BUN R- 023 27 0 +1 +1 +1 SGMT CAA PREV SEGMENT BEGINNING. 023 30 0 +1 ADA BUF+98 IF BUFFER NOT EMPTY, DUMP IT 023 31 0 +1 BZA *+3 023 32 0 +1 STP WRITX 023 33 0 +1 BUN WRIT5 023 34 0 +1 IFL BUF,64,1 INCREASE SEGMENT NUMBER 023 35 0 +1 CAD BUF 023 36 0 +1 EXT BCUL2 023 37 0 +1 STA BUF 023 38 0 +1 SLA 4 023 39 0 +1 ADD LOCN 023 40 0 +1 STP INSX,FUNS STORE SEG NO,LOCN IN FUN-STACK 023 41 0 +1 BUN INS 023 42 0 +1 IFL TAG,00,1 023 43 0 +1 IFL DELTA,04,4 023 44 0 +1 CAD LOCN FIX UP FORWARD REFERENCES TO THIS 023 45 0 +1 LDR BUF SEGMENT NUMBER 023 46 0 +1 STR LOCN 023 47 0 +1 STA LOCNP 023 48 0 +1 STP EXCTR 023 49 0 +1 BUN SCAN 023 50 0 +1 IFL ZUTA,62,39 023 51 0 +1 STP TRTGX 023 52 0 +1 BUN TRTG 023 53 0 +1 DFL ZUTA,62,39 023 54 0 +1 CAD CRV COMPILE CIRCLE V,WHICH 023 55 0 +1 BUN EXIT WILL FINISH THE SEGMENT. 023 56 0 +1 +1 +1 END STP CMPLX THE WORD END. 023 59 0 +1 BUN RIGHT 023 60 0 +1 *A IFL TAG,00,1 023 61 0 +1 STP EXCTR SCAN UNTIL WE REACH 023 62 0 +1 BUN SCAN 023 63 0 +1 CFA CWEND,67 END,RIGHT PAREN,SEMICOLON,OR COMMA. 023 64 0 +1 BCE END 023 65 0 +1 CFA RPAR 023 66 0 +1 BCE END 023 67 0 +1 CFA SMCLN 023 68 0 +1 BCE ANALZ 023 69 0 +1 CFA KOMA,67 023 70 0 +1 BCU A- 023 71 0 +1 CLL TAG 023 72 0 +1 BUN ANALZ 023 73 0 +1 +1 +1 FINSH STP CMPLX FINISH. 023 76 0 +1 BUN RIGHT THIS RIGHT PARENTHESIS SHOULD MATCH 023 77 0 +1 MLS 4 T THE LEFT PAREN TO WHICH WE 023 78 0 +1 MNC 4 400,2,5 INITIALIZED THE OPERATOR STACK 023 79 0 +1 BUN 700 023 80 0 +1 +1 +1 EQUL CFA ARAMD,64 023 83 0 +1 BCE B+ 023 84 0 +1 *A CAD CRB = IN STATEMENT. 023 85 0 +1 BUN EXIT REPLACE BY CIRCLE B OP. 023 86 0 +1 *B STP NULSX IF = APPEARS IN ARRAY DECLARATION, 023 87 0 +1 BUN NULSB GO INTO ARRAY-FILL MODE. 023 88 0 +1 CAD ARFMD 023 89 0 +1 BUN ANALY 023 90 0 +1 +1 +1 INDEX STP INSX,AVAIL INDEX OP IS INSERTED BETWEEN A AND ( 023 93 0 +1 BUN INS OF A(I). IT BEGINS PROCESSING SUBSCRIPTS. 023 94 0 +1 STR A+,04 FIRST FIND SOME AVAILABLE LOCATION 023 95 0 +1 STR B+,04 IN ASSOC MEMORY. THIS WILL BE CALLED 023 96 0 +1 SLT 14 THE INCREMENT WORD FOR THIS ARRAY. 023 97 0 +1 STP INSX,ARAS IN ARAS- AND OPERAND-STACKS WE PUT A 023 98 0 +1 BUN INS REFERENCE TOTHIS INCREMENT WORD, WHICH 023 99 0 +1 LDB OPRND IS INITIALIZED TO V 5 R 0000 AAAA 024 00 0 +1 DLB - 0,64,0 V=0 NORMAL V=1 CALL BY NAME V=2 MONITOR 024 01 0 +1 LDR - 0 R-0 FLOATING R=1 FIXED 024 02 0 +1 *A STR *,23 AAAA=LOCATION OF OTHER INFORMATION 024 03 0 +1 *B STB *,08 024 04 0 +1 LDB OPRND 024 05 0 +1 STA - 0,64 024 06 0 +1 STP CMPLX PUT CIRCLE-R OPERATOR ONTO THE STACK, 024 07 0 +1 BUN WMG,CRR ALSO A LEFT PARENTHESIS 024 08 0 +1 STP CMPLX 024 09 0 +1 BUN LEFT 024 10 0 +1 CAD V6 024 11 0 +1 STP CMPLX FURTHERMORE,INSERT THE CHARACTERS 0 + 024 12 0 +1 BUN VRBL INTO THE INPUT STRING 024 13 0 +1 CAD PLUS 024 14 0 +1 IFL PHI,00,1 FINALLY, SET UP TO IGNORE THE LEFT 024 15 0 +1 BUN EXIT 024 16 0 +1 +1 +1 NDXCM STP PRSBX,CRY COMMA IN SUBSCRIPT POSITION. 024 19 0 +1 BUN PRSB FINISH EVALUATING SUBSCRIPT,MAKE SURE 024 20 0 +1 STP SPERX IT IS FIXED POINT. 024 21 0 +1 BUN SPERO MULTIPLY IT BY THE PROPER DIMENSION 024 22 0 +1 STP CMPLX 024 23 0 +1 BUN WMG,PLUS INSERT PLUS OPERATOR 024 24 0 +1 CAD PAR 024 25 0 +1 BFA A+,11,2 024 26 0 +1 BUN B+ 024 27 0 +1 *A DLB PAR,64,0 IF THE DIMENSION WAS A CONSTANT, 024 28 0 +1 LDR - 1 THE INCREMENT WORD CONTAINS SOME INCREMNT 024 29 0 +1 STR TEMP1 WE HAVE SUPPRESSED FROM THE TARGET CODE, 024 30 0 +1 LDB ARAS AND WE MULTIPLY IT BY THE DIMENSION 024 31 0 +1 DLB - 0,64,0 AND REPLACE IT IN THE INCREMENT WORD. 024 32 0 +1 CAD - 0 024 33 0 +1 EXT EX42 024 34 0 +1 MUL TEMP1 024 35 0 +1 STR - 0,64 024 36 0 +1 *B LDB ARAS 024 37 0 +1 LDR - 0 IF AN EMPTY SUBSCRIPT APPEARED, 024 38 0 +1 BFR NORM,22,0 PUT THIS DIMENSION ON MULT STACK 024 39 0 +1 CAD PAR 024 40 0 +1 INSXX STP INSX,MULT 024 41 0 +1 BUN INS 024 42 0 +1 BUN NORM 024 43 0 +1 +1 +1 SPERO STP CMPLX MULTIPLY PREVIOUS RESULT BY 024 46 0 +1 BUN WMG,DOT THE NEXT DIMENSION 024 47 0 +1 IFL CMPLX,04,6 024 48 0 +1 STP REMX,DIMS 024 49 0 +1 BUN REM,VRBL1 IF THERE IS NO NEXT DIMENSION. 024 50 0 +1 STP WEMX 024 51 0 +1 BUN WEM,VRBL1 024 52 0 +1 CNST 30147000000 USE 1,AND SAY IMPROPER SUBSCRIPT 024 53 0 +1 SPERX BUN * 024 54 0 +1 +1 +1 DECN LDB MODE DECREASE PARENTHESIS COUNT ON THIS MODE 024 57 0 ?? COL 1 WAS 0VX XX 0 VVXV +1 DLB - 0,22,1 024 58 0 ?? COL 1 WAS 0VX X( 0 VVXX +1 DECNX DBB *,100 AND IF IT IS NOW ZERO, PULL OFF THE 024 59 0 ?? COL 1 WAS 05X 7( 0 55XX +1 STP REMX,MODE TOP OF THE MODE STACK 024 60 0 +1 BUN REM,*+2 024 61 0 +1 G5 F424 0552,0,* 024 62 0 +1 CFA NDXMD,64 024 63 0 +1 LDB DECNX IF WE FINISHED THE SUBSCRIPTS OF AN ARRAY 024 64 0 +1 BCU - 0 WE GO THROUGH MORE MANIPULATIONS 024 65 0 +1 MLTS LDB ARAS OTHERWISE WE EXIT. 024 66 0 +1 DLB - 0,64,0 NOW WE FINISH PROCESSING ARRAY SBSCRIPTS 024 67 0 +1 STB P+,04 024 68 0 +1 STB Q+,04 024 69 0 +1 LDB - 0 024 70 0 +1 STB R+,04 THE FINAL DIMENSION TO MULTIPLY BY 024 71 0 +1 CLA IS EITHER THE CONSTANT 1 024 72 0 +1 ADD - 0 024 73 0 +1 BSA A+,1 024 74 0 +1 LDR V4 024 75 0 +1 STR PAR 024 76 0 +1 BUN B+ 024 77 0 +1 *A STP CMPLX OR A PARAMETER TO THE PROCEDURE 024 78 0 +1 BUN LEFT 024 79 0 +1 STP SPERX 024 80 0 +1 BUN SPERO MULTIPLY BY IT. 024 81 0 +1 STP CMPLX 024 82 0 +1 BUN RIGHT 024 83 0 +1 *B STP REMX,ARAS PULL OFF TOP OF ARRAY STACK 024 84 0 +1 BUN REM,*+2 024 85 0 +1 G3 F424 6742,0,* 024 86 0 +1 SRT 10 024 87 0 +1 *P CAD * INCR WORD/64 IS CHANGED FROM THE 024 88 0 +1 EXT BCUL2 INCREMENT TO THE BASE ADDRESS PLUS THE 024 89 0 +1 *R ADD * INCREMENT (MOD 10000) 024 90 0 +1 *Q STA *,64 024 91 0 +1 BFR G+,22,0 024 92 0 +1 CAD PAR IF AN EMPTY SUBSCRIPT HAS APPEARED. 024 93 0 +1 STP INSX,MULT 024 94 0 +1 BUN INS PUT LAST DIMENSION ONTO MULT-STACK 024 95 0 +1 STP USUBX,CRN WITH THE OTHERS 024 96 0 +1 BUN USUB PUT OUT THE RECALCULATED BASE ADDRESS 024 97 0 +1 *K STP REMX,MULT AS A PARAMETER 024 98 0 +1 BUN REM,I+ SET MULS TO MULT STACK IN REVERSE ORDER 024 99 0 +1 *C STP REMX,MULS 025 00 0 +1 BUN REM,*+2 FORGET TOP ENTRY OF MULS, IT IS ZERO 025 01 0 +1 G4 F424 6938,0,* 025 02 0 +1 *A IFL KAPPA,00,1 025 03 0 +1 STP PRSBX,CRC STORE THE PARAMETER. 025 04 0 +1 BUN PRSB 025 05 0 +1 *F STP REMX,MULS 025 06 0 +1 BUN REM,J+ 025 07 0 +1 *D IFL KAPPA,00,1 WE ARE FINISHED. PULL SPURIOUS + OPERATOR 025 08 0 +1 STP REMX,OP (WE GET AN EXTRA ONE FOR EACH 025 09 0 +1 BUN REM,NORM EMPTY SUBSCRIPT) 025 10 0 +1 TWL HLT 12 025 11 0 +1 *J BFA E+,66,0 025 12 0 +1 STP CMPLX MULTIPLY TOGETHER ALL DIMENSIONS 025 13 0 +1 BUN VRBL BETWEEN EMPTY SUBSCRIPT POSITIONS 025 14 0 +1 STP CMPLX 025 15 0 +1 BUN WMG,DOT 025 16 0 +1 BUN F- 025 17 0 +1 *I STP INSX,MULS 025 18 0 +1 BUN INS 025 19 0 +1 BUN K- 025 20 0 +1 *E STP REMX,OP REMOVE EXTRA + SIGN AND STORE 025 21 0 +1 BUN REM,A- COMPUTED MULTIPLIER 025 22 0 +1 NN HLT 99 025 23 0 +1 *G LDB MODE 025 24 0 +1 CAD - 0 IF NO EMPTY SUBSCRIPTS OCCURRED 025 25 0 +1 CFA FUNMD,64 BUT IT IS A NAME CALL ANYWAY, 025 26 0 +1 BCU NORM WE PUT IT IN AS A NAME PARAMETER. 025 27 0 +1 LDB FUNS 025 28 0 +1 CAD - 0 025 29 0 +1 STP USUBX,CRN 025 30 0 +1 BSA USUB,2 025 31 0 +1 BUN NORM 025 32 0 +1 +1 +1 EMPTY CFA PRCMD,64 EMPTY SUBSCRIPT POSITION OPERATOR 025 35 0 +1 BCU A+ 025 36 0 +1 LDB SSC IF IT IS SENSED WHILE COLLECTING 025 37 0 +1 CLL - 0 NEW PROCEDURE PARAMETERS, 025 38 0 +1 DFL - 0,12,10 025 39 0 +1 DFL - 0,23,89 CREATE A PSEUDO SIMPLE VARIABLE 025 40 0 +1 CAD SSC FOR THIS SUBSCRIPT MULTIPLIER 025 41 0 +1 SLA 4 025 42 0 +1 ADD - 0 025 43 0 +1 STP INSX,OPRND PUT IT INTO THE OPERAND STACK 025 44 0 +1 BUN INS 025 45 0 +1 ARMS STP INSX,ARMS AND INTO THE LIST OF MULTIPLIERS 025 46 0 +1 BUN INS FOR THIS ARRAY 025 47 0 +1 IFL SSC,00,1 025 48 0 +1 IFL KAPPA,00,1 025 49 0 +1 BUN NORM 025 50 0 +1 *A CFA NDXMD,64 OTHERWISE CHECK THAT THIS EMPTY POSITION 025 51 0 +1 BCU B+ OCCURS IN AN ARRAY PARAMETER 025 52 0 +1 LDB - 0 WHILE CALLING A PROCEDURE 025 53 0 +1 LDR - 0 025 54 0 +1 CFR FUNMD,64 025 55 0 +1 BCU B+ 025 56 0 +1 LDB FUNS 025 57 0 +1 CAD - 0 025 58 0 +1 BSA B+,3 025 59 0 +1 STP REMX,OP 025 60 0 +1 BUN REM,E+ 025 61 0 +1 *B STP WEMX 025 62 0 +1 BUN WEM,NORM 025 63 0 +1 CNST 30149475000 IMPROPER EMPTY SUBSCRIPT POSITION 025 64 0 +1 *E LDB ARAS 025 65 0 +1 IFL - 0,22,1 RECORD IT IN ARAS 025 66 0 +1 SBL CLA SYMBL+1 AND PUT MARKER ON MULT STACK. 025 67 0 +1 BUN INSXX 025 68 0 +1 +1 +1 COLON CLL KAPPA BEGINNING OF FUNCTION CALL 025 71 0 +1 LDB OPRND 025 72 0 +1 DLB - 0,64,0 025 73 0 +1 CAD - 0 PUT NAME OF FUNCTION WERE CALLING 025 74 0 +1 STA A+,64 ONTO FUN-STACK 025 75 0 +1 CAD A+ 025 76 0 +1 STP INSX,FUNS 025 77 0 +1 BUN INS 025 78 0 +1 CAD CRO COMPILE A CIRCLE-O 025 79 0 +1 BUN EXIT 025 80 0 +1 *A F4241 0,0,0 025 81 0 +1 +1 +1 FUNCM STP PRSBX,CRC COMMA IN PROCEDURE,FUNCTION CALL 025 84 0 +1 BUN PRSB 025 85 0 +1 BUN NORM STORE THE PARAMETER 025 86 0 +1 +1 +1 DUMP CAD LEVEL 025 89 0 +1 SLA 4 025 90 0 +1 STP INSX,DUMBS PUT RECORD ON DUMB STACK,FOR OVERLAY 025 91 0 +1 BUN INS 025 92 0 +1 DFL S+,61,4 025 93 0 +1 DLB LOCN,64,0 025 94 0 +1 DBB MONT,400 MAKE SURE LOCN IS AT LEAST 400 025 95 0 +1 STP ASMBX 025 96 0 +1 BUN ASMBL,BUNZ 025 97 0 +1 STB LOCN,64 025 98 0 +1 IFL LOCN,44,4 025 99 0 +1 MONT DFL THI,62,71 MONITOR STATEMENT. 026 00 0 +1 IFL TAG,00,1 026 01 0 +1 IFL CHI,00,1 PREPARE FOR NUMERIC LABELS 026 02 0 +1 STP EXCTR 026 03 0 +1 BUN SCAN GET NEXT ITEM FROM SCANNER. 026 04 0 +1 CFA SMCLN 026 05 0 +1 BCU *+5 IF IT IS A SEMICOLON WE EXIT 026 06 0 +1 DFL THI,62,29 026 07 0 +1 STB S+,61 026 08 0 +1 CLL TAG 026 09 0 +1 BUN ANALZ 026 10 0 +1 BFA *+2,01,0 IF IT IS NOT AN OPERAND WE RECYCLE 026 11 0 +1 BUN MONT+1 026 12 0 +1 DLB L,64,0 026 13 0 +1 LDR - 0 026 14 0 +1 BFR *+2,21,3 026 15 0 +1 DFL - 0,22,87 MARK OPERAND AS MONITORED,UNCLASSIFIED 026 16 0 +1 *S BUN A+,0299 026 17 0 +1 DFL - 0,12,60 OR IF PROCESSING DUMP, 026 18 0 +1 LDB DUMBS AS A VARIABLE TO BE DUMPED 026 19 0 +1 IFL - 0,45,1 026 20 0 +1 BUN MONT+1 026 21 0 +1 *A DFL - 0,12,80 026 22 0 +1 LDB ARTHG 026 23 0 +1 STP LIBRX PUT MONITOR SUBROUTINE INTO PROGRAM 026 24 0 +1 BUN LIBRF 026 25 0 +1 BUN MONT+1 026 26 0 +1 026 27 0 +1 026 28 0 +1 SUBR IFL TAG,00,1 SUBROUTINE 026 29 0 +1 DFL NU,62,29 026 30 0 +1 IFL DELTA,00,4 026 31 0 +1 STP ASMBX 026 32 0 +1 BUN ASMBL,BUNFR COMPILE BUN FORWARD 026 33 0 +1 STP INSX,FUNS PUT LOCN INTO FUNS 026 34 0 +1 BUN INS2 (RETURN WILL LOOK AT THIS) 026 35 0 +1 STP EXCTR 026 36 0 +1 BUN SCAN GET NAME OF SUBROUTINE FROM SCANNER 026 37 0 +1 STP TRTGX 026 38 0 +1 BUN TRTG DEFINE IT 026 39 0 +1 STP NEWTX,SAVET 026 40 0 +1 BUN NEWT SAVE TEMP STORAGES 026 41 0 +1 CAD CRS 026 42 0 +1 BUN EXIT COMPILE CIRCLE S. 026 43 0 +1 +1 +1 EXTRN STP EXCTR EXTERNAL. 026 46 0 +1 BUN SCAN 026 47 0 +1 IFL EPSLN,00,1 026 48 0 +1 STA V2 026 49 0 +1 IFL TAG,00,1 026 50 0 +1 DFL PEH,62,6 DONT LOOK ON LEVEL ZERO WHEN DOING 026 51 0 +1 STP EXCTR A DECLARATION 026 52 0 +1 BUN SCAN GET NAME FROM SCANNER 026 53 0 +1 IFL PEH,62,6 026 54 0 +1 DLB V2,64,0 IS IT AN EXT STATEMENT OR EXT PROCEDURE 026 55 0 +1 DBB A+,PRCMD 026 56 0 +1 STP TRTGX EXTERNAL STATEMENT 026 57 0 +1 BUN TRTG2 DEFINE IT 026 58 0 +1 CAD BUF RECORD ITS SEGMENT NUMBER 026 59 0 +1 DLB L,64,0 (THE OVERLAY WILL FIX UP ANY 026 60 0 +1 DFL - 0,12,20 026 61 0 +1 STP INSX 026 62 0 +1 BUN INS1 026 63 0 +1 IFL ALEPH,62,6 SEGMENT NUMBER) 026 64 0 +1 STP ASMBX 026 65 0 +1 BUN SMBL,BUNZ COMPILE BUN FORWARD 026 66 0 +1 BUN NORM 026 67 0 +1 *A DLB L,64,0 EXTERNAL PROCEDURE 026 68 0 +1 STB - 0,66 MARK AS 83 CODE. 026 69 0 +1 IFL - 0,22,83 026 70 0 +1 LDR NRM SCAN OFF THE PARAMETERS. 026 71 0 +1 +1 +1 PRCNT STR C+,04 (R/04 IS EXIT LINE) 026 74 0 +1 CLL V2 026 75 0 +1 STP INPTX BYPASS PARTS OF CARD 026 76 0 +1 BUN INPT UNTIL WE HAVE AN EXTRA RIGHT PARENTHESIS 026 77 0 +1 BFA B+,02,04 026 78 0 +1 BFA A+,02,24 026 79 0 +1 BUN INPT 026 80 0 +1 *A IFL V2,00,2 026 81 0 +1 *B DFL V2,00,1 026 82 0 +1 BRP INPUT 026 83 0 +1 *C BUN * 026 84 0 +1 +1 +1 PROCD CLL RR3 WORD PROCEDURE SENSED. 026 87 0 +1 LDR VARB 026 88 0 +1 STR FRSTP,04 SET FRSTP TO LOCATION OF 1ST PARAMETER 026 89 0 +1 LDR PR3 026 90 0 +1 STR PR1 SAVE PREFIX LIST 026 91 0 +1 CLL PR3 026 92 0 +1 LDR CHI 026 93 0 +1 CLL CHI SHUT OFF LABEL PROCESSING 026 94 0 +1 STR CHI3 026 95 0 +1 STP XSUBX INITIALIZE THE DECLARATION 026 96 0 +1 BUN XSUB (THIS PART COMMON TO PROC AND FUNCTION) 026 97 0 +1 STA LEVEL SET LEVEL = KC 026 98 0 +1 STB - 0,21 026 99 0 +1 IFL - 0,21,3 MARK TYPE OF THIS PROCEDURE UNSPECIFIED 027 00 0 +1 NRM BUN NORM 027 01 0 +1 +1 +1 FUNC STP XSUBX WORD FUNCTION SENSED. 027 04 0 +1 BUN XSUB DO INITIAL STEPS 027 05 0 +1 DFL - 0,11,2 SET TAU DIGIT = 6 027 06 0 +1 IFL FNSW,00,1 027 07 0 +1 CAD TOP COMPILE NAME OF THIS FUNCTION 027 08 0 +1 BUN EXIT 027 09 0 +1 +1 +1 PRCCM STP YSUBX RECORD PARAMETER 027 12 0 +1 BUN YSUB1 027 13 0 +1 BUN NORM 027 14 0 +1 +1 +1 ARAPM LDB OPRND ARRAY NAME APPEARS AS PARAMETER 027 17 0 +1 CAD - 0 027 18 0 +1 SLT 2 027 19 0 +1 STA ARMS,44 PUT NAME INTO ARMS 027 20 0 +1 STP YSUBX 027 21 0 +1 BUN YSUB2 MARK IT AS PARAMETER 027 22 0 +1 BUN NORM 027 23 0 +1 +1 +1 INTG CLL RR2 INTEGER DECLARATION 027 26 0 +1 IFL RR2,21,1 SET TYPE = FIXED 027 27 0 +1 BUN ARRAY 027 28 0 +1 +1 +1 BOOL DEFN INTG BOOLEAN DECLARATION (SAME) 027 31 0 +1 +1 +1 FLTG CLL RR2 FLOATING,REAL. SET TYPE = FLOATING 027 34 0 +1 ARRAY IFL DELTA,00,5 027 35 0 +1 STP CMPLX ARRAY DECLARATION 027 36 0 +1 BUN LEFT 027 37 0 +1 +1 +1 DCLCM BUN NORM DECLARATIONS ARE HANDLED BY SCANNER 027 40 0 +1 +1 +1 ARDEC IFL IOTA,00,1 START TO DECLARE AN ARRAY, JUST AFTER A( 027 43 0 +1 CAD XONE+1 OF A(I,J,K,L) IS SENSED 027 44 0 +1 STA ARRI INITIALIZE ARRI,ARRL TO 1 027 45 0 +1 STA ARRL 027 46 0 +1 CAD CRF 027 47 0 +1 BUN EXIT 027 48 0 +1 +1 +1 ARACM STP NULSX ARRAY DECLARATION COMMA SENSED 027 51 0 +1 BUN NULSB TREAT AS )( BUT PRESERVE ARRAY MODE 027 52 0 +1 LDB IOTA 027 53 0 +1 IBB NORM,9999 IF THIS IS A COMMA BETWEEN DIMENSINOS, 027 54 0 +1 CAD CRG IT IS A CIRCLE-G OPERATOR 027 55 0 +1 BUN EXIT 027 56 0 +1 +1 +1 ARFCM IFL RHO,62,29 ARRAY FILL IS ALL HANDLED BY SCANNER 027 59 0 +1 BUN NORM (IN USUAL WAY) SEE NUMBER SUBROUTINE 027 60 0 +1 +1 +1 +1 +1 SEMIC STP CMPLX SEMICOLON IS THOUGHT OF A )( 027 65 0 +1 BUN RIGHT 027 66 0 +1 STP CMPLX THIS INNOCENT-LOOKING THING MAY CAUSE 027 67 0 +1 BUN LEFT ALL SORTS OF THINGS TO HAPPEN. 027 68 0 +1 SEMIX BUN * 027 69 0 +1 +1 +1 QSUB STP CMPLX FINISH SETTING V=E 027 72 0 +1 BUN RIGHT 027 73 0 +1 STP ASMBX ASSEMBLE STP FORWARD 027 74 0 +1 BUN ASMBL,STPFR 027 75 0 +1 CLL DEX 027 76 0 +1 IFL PI,00,1 027 77 0 +1 STP ASMBX BUN FORWARD 027 78 0 +1 BUN ASMBL,BUNFR 027 79 0 +1 CLL PI 027 80 0 +1 QSUBX BUN * 027 81 0 +1 +1 +1 RUN LDR K2 INTERRUPT NORMAL SCANNING. 027 84 0 +1 STR K3,04 027 85 0 +1 LDR S2 RUN BACK THE VARIABLE PART 027 86 0 +1 STR S3,04 OF THE FOR STATEMENT AGAIN 027 87 0 +1 LDR SCAN 027 88 0 +1 STR SCNXX,04 027 89 0 +1 LDR FV 027 90 0 +1 STR STFOL,04 027 91 0 +1 IFL THETA,62,29 027 92 0 +1 BUN SCN7 027 93 0 +1 RUNXX DFL THETA,62,29 AFTER THE = SIGN COMES, 027 94 0 +1 LDR K3 RESTORE NORMAL SCANNING PROCEDURE. 027 95 0 +1 STR K2,04 027 96 0 +1 LDR S3 027 97 0 +1 STR S2,04 027 98 0 +1 LDR SCNXX 027 99 0 +1 STR SCAN,04 028 00 0 +1 RUNX BUN * 028 01 0 +1 +1 +1 FSUB1 STP REMX,OPRND 028 04 0 +1 BUN REM2,*+2 PULL LEFT PARENTHESIS 028 05 0 +1 G6 F424 7039,0,* 028 06 0 +1 STP CMPLX 028 07 0 +1 BUN LEFT PUT ANOTHER ONE ON 028 08 0 +1 FSUB2 CLL DEX 028 09 0 +1 STP RUNX RUN BACK V = 028 10 0 +1 BUN RUN 028 11 0 +1 STP CMPLX 028 12 0 +1 BUN WMG,CRB 028 13 0 +1 FSUBX BUN * 028 14 0 +1 +1 THROW AWAY TOP OF STACK,SUBSTITUTE CRN +1 USUB STP REMX,OP 028 17 0 +1 BUN REM,PRSB 028 18 0 +1 G8 F424 1053,0,* 028 19 0 +1 +1 +1 PRSB LDB PRSBX 028 22 0 +1 DLB - 9998,44,0 PRSB SENDS SPECIFIED OPERATOR TO COMPILER 028 23 0 +1 CAD - 0 028 24 0 +1 STP CMPLX AND THEN DOES NULSB 028 25 0 +1 BUN WMG1 028 26 0 +1 NULSB LDB MODE NULSB IS A SEMICOLON WHICH PROTECTS 028 27 0 +1 IFL - 0,22,1 THE MODE STACK 028 28 0 +1 STP SEMIX 028 29 0 +1 BUN SEMIC 028 30 0 +1 LDB MODE 028 31 0 +1 DFL - 0,22,1 028 32 0 +1 PRSBX BUN * 028 33 0 +1 USUBX DEFN PRSBX 028 34 0 +1 NULSX DEFN PRSBX 028 35 0 +1 +1 +1 OLDT STP REMX,TEMPS THROW OUT ALL TEMP STORAGES 028 38 0 +1 BUN REM,OLDT CURRENTLY BEING USED, THEY CANT 028 39 0 +1 *A STP REMX,SAVET BE USED ANY MORE 028 40 0 +1 BUN REM,*+2 028 41 0 +1 G7 F424 1565,0,* REINSTATE OLD SET 028 42 0 +1 SRA 4 028 43 0 +1 STA TEMPS,04 028 44 0 +1 BUN GENRX 028 45 0 +1 +1 +1 GETMP STP REMX,TEMPS SET AN AVAILABLE TEMP STORAGE CELL 028 48 0 +1 BUN REM,GETMX 028 49 0 +1 CAD VARB EITHER FROM TEMPS STACK 028 50 0 +1 SLA 4 OR A NEW ONE,IF THAT STACK HAS BEEN 028 51 0 +1 DFL VARB,04,1 CLEANED OUT. 028 52 0 +1 GETMX BUN GETMX 028 53 0 +1 +1 +1 XSUB STP ASMBX COMMON PART OF BEGINNING OF PROCEDURE 028 56 0 +1 BUN ASMBL,BUNFR AND FUNCTION DECLARATIONS 028 57 0 +1 STP INSX,FUNS FIRST COMPILE FORWARD REFERENCE AROUND 028 58 0 +1 BUN INS2 028 59 0 +1 STP NEWTX,SAVET PUT LOCN ONTO FUN-STACK 028 60 0 +1 BUN NEWT STASH AWAY CURRENT SET OF TEMP STORAGE 028 61 0 +1 STP EXCTR 028 62 0 +1 BUN SCAN GET NAME OF PROCEDURE FROM SCANNER 028 63 0 +1 STA TOP 028 64 0 +1 STP CMPLX COMPILE CIRCLE-P OPERATOR 028 65 0 +1 BUN WMG,CRP 028 66 0 +1 IFL PARSW,00,1 028 67 0 +1 IFL KC,00,1 028 68 0 +1 STP CMPLX AND A LEFT PARENTHESIS 028 69 0 +1 BUN LEFT 028 70 0 +1 STP CMPLX AND A CIRCLE Q 028 71 0 +1 BUN WMG,CRQ 028 72 0 +1 CAD VARB 028 73 0 +1 SRT 4 028 74 0 +1 STR NOPAV,44 ASSEMBLE 028 75 0 +1 STP ASMBX (LOC OF PARAMETER 1) NOP 0000 028 76 0 +1 BUN ASMBL,NOPAV 028 77 0 +1 IFL PHI,00,1 028 78 0 +1 DLB L,64,0 028 79 0 +1 CAD KC RECORD NUMBER OF THIS PROCEDURE 028 80 0 +1 STA - 0,04 028 81 0 +1 DFL - 0,82,1 028 82 0 +1 XSUBX BUN * 028 83 0 +1 +1 +1 YSUB1 LDB KAPPA COLLECTING PARAMETERS 028 86 0 +1 CLL KAPPA 028 87 0 +1 DBB A+,1 HAVE EMPTY SUBSCRIPTS APPEARED 028 88 0 +1 LDB FUNS OR DO WE HAVE A CALL BY VALUE 028 89 0 +1 CAD - 0 028 90 0 +1 BSA A+,1 028 91 0 +1 YSUB2 DLB L,64,00 IF NOT, 028 92 0 +1 IFL - 0,12,10 MARK PARAMETER AS CALL BY NAME 028 93 0 +1 LDB FUNS 028 94 0 +1 CAD - 0 028 95 0 +1 BSA *+2,3 028 96 0 +1 BUN *+2 028 97 0 +1 IFL TAG,00,1 PUT TAG ON AFTER 2ND SEMICOLON 028 98 0 +1 SRA 4 028 99 0 +1 LSA 0 029 00 0 +1 STP INSX,PAREF PUT CALL BY NAME PARAMETERS ONTO 029 01 0 +1 BUN INS PAREF STACK.WE WILL USE THIS 029 02 0 +1 CAD - 0 029 03 0 +1 SLA 4 LATER TO FIX UP REFERENCES TO THEM 029 04 0 +1 STA - 0 SHIFT LINK FIELD AROUND(SHREWD MOVE) 029 05 0 +1 PRFSW F4241 1210,01,1 IN PAREF LINK FIELD IS 64-FIELD 029 06 0 +1 *A STP REMX,OPRND 029 07 0 +1 BUN REM,*+2 029 08 0 +1 FUR HLT 4 029 09 0 +1 SRA 4 ASSIGN PARAMETER LOCATION 029 10 0 +1 STA *+3,04 029 11 0 +1 CAD VARB 029 12 0 +1 SLA 4 029 13 0 +1 STA *,64 029 14 0 +1 DLB TOP,64,0 KEEP COUNT OF NUMBER OF 029 15 0 +1 DFL - 0,82,99 PARAMETERS FOR FUTURE CHECKING 029 16 0 +1 DFL VARB,04,1 029 17 0 +1 LDB FUNS KEEP COUNT OF NUMBER OF 029 18 0 +1 IFL - 0,22,1 PARAMETERS IN FUNS. 029 19 0 +1 YSUBX BUN * 029 20 0 +1 +1 +1 +1 +1 CMPL BFA VRBL,01,0 THIS HERE IS THE COMPILER 029 25 0 +1 BFA WMG1,01,1 029 26 0 +1 BFA LEFT,01,2 CHECK KIND OF QUANTITY.. 029 27 0 +1 RIGHT STP REMX,OP OPERAND,OPERATOR,LEFT PAREN, OR RIGHT PAR 029 28 0 +1 BUN REM,E+ PROCESS RIGHT PARENTHESIS.. 029 29 0 +1 STP WEMX 029 30 0 +1 BUN WEM,LEFT 029 31 0 +1 CNST 34652540000 (EXTRA RIGHT PARENTHESIS) 029 32 0 +1 *E CFA LPAR,67 029 33 0 +1 BCE B+ DO ALL OPERATIONS OUTSTANDING SINCE 029 34 0 +1 STP GENRX LAST LEFT PARENTHESIS 029 35 0 +1 BUN GENR 029 36 0 +1 BUN RIGHT 029 37 0 +1 *B STP DECNX CHANGE PARENTHESIS COUNT 029 38 0 +1 BUN DECN ON THIS MODE 029 39 0 +1 LCCT BUN *+4 029 40 0 +1 LDR LOCN 029 41 0 +1 STR IMAGE-1,64 029 42 0 +1 IFL LCCT,62,29 029 43 0 +1 CMPLX BUN * 029 44 0 +1 VRBL1 STA PAR 029 45 0 +1 VRBL STP INSX,OPRND PROCESS OPERAND.. 029 46 0 +1 BUN INS SIMPLY PUT IT ON OPERAND STACK 029 47 0 +1 BUN CMPLX 029 48 0 +1 LEFT LDB PHI PROCESS LEFT PARENTHESIS.. 029 49 0 +1 CLL PHI 029 50 0 +1 DBB CMPLX,1 EXIT, IF EXPECTING A LEFT PARENTHESIS 029 51 0 +1 LDB MODE 029 52 0 +1 IFL - 0,22,1 INCREASE PARENTHESIS COUNT ON THIS MODE 029 53 0 +1 FORTY CLA 40 029 54 0 +1 BUN A+ AND INSERT LEFT PARENTHESIS IN OP STACK 029 55 0 +1 WMG LDB CMPLX 029 56 0 +1 DLB - 9999,44,0 PROCESS OPERATOR.. 029 57 0 +1 CAD - 0 029 58 0 +1 WMG1 LDB OP 029 59 0 +1 LDR - 0 029 60 0 +1 BFR A+,66,0 IF TOP OF OPERATOR STACK IS A LEFT 029 61 0 +1 STA SAVOP PARENTHESIS, 029 62 0 +1 CFA - 0,22 OR HIERARCHY OF NEW OP IS HIGHER THAN 029 63 0 +1 BCH A+ THAT OF THE TOP OF THE OP STACK, 029 64 0 +1 BCL B+ MERELY PLACE NEW OP ONTO THE STACK. 029 65 0 +1 BSA *+2,0 029 66 0 +1 BUN A+ ON EQUAL HIERRARCHY DO THE SAME 029 67 0 +1 BFA *+2,31,0 EXCEPT ON ORDINARY BINARY OPERATIONS 029 68 0 +1 BUN A+ 029 69 0 +1 LDB OPRND FOR THESE, CHECK IF EITHER THE 029 70 0 +1 LDR - 0 LAST OR THE SECOND-LAST OPERAND IS IN 029 71 0 +1 BFR B+,11,0 THE ACCUMULATOR, AND IF SO 029 72 0 +1 LDB - 0 PERFORM THE OPERATION IMMEDIATELY 029 73 0 +1 LDR - 0 029 74 0 +1 BFR B+,11,0 029 75 0 +1 *A STP INSX,OP 029 76 0 +1 BUN INS 029 77 0 +1 *C BUN CMPLX 029 78 0 +1 *B STP REMX,OP IN THE CASE OF LOWER HIERARCHY, 029 79 0 +1 BUN REM,*+2 EXECUTE THE LAST OPERATOR 029 80 0 +1 NPCN NOP 0 029 81 0 +1 STP GENRX GO TO ITS GENERATOR 029 82 0 +1 BUN GENR 029 83 0 +1 CAD SAVOP 029 84 0 +1 BUN WMG1 AND RECYCLE 029 85 0 +1 +1 +1 ASMBL LDB ASMBX THE ASSEMBLER. 029 88 0 +1 DLB - 9999,44,0 029 89 0 +1 ASMBZ CAD - 0 029 90 0 +1 ASMBY CLL INSTR 029 91 0 +1 CLL INSTP 029 92 0 +1 STA INSTR,00 029 93 0 +1 STA INSTP,00 029 94 0 +1 STA G 029 95 0 +1 LDR XI 029 96 0 +1 BZR A+ 029 97 0 +1 CLL XI OMIT SLT10 INSTRUCTION, IF STA OR SRT10 029 98 0 +1 BFA B+,62,40 FOLLOWS 029 99 0 +1 CFA SRT10,07 030 00 0 +1 BCU A+ 030 01 0 +1 DFL LOCN,64,1 030 02 0 +1 BUN ASMBX 030 03 0 +1 *B DFL LOCN,64,1 030 04 0 +1 IFL INSTR,41,1 (CHANGE STA TO STR) 030 05 0 +1 IFL INSTP,41,1 030 06 0 +1 *A CFA +9999999999 030 07 0 +1 BCH C+ 030 08 0 +1 LDB INSTR ASSEMBLE WITH V(I) IF THE 030 09 0 +1 LDR - V SIGN IS 0,1,2, OR 3 030 10 0 +1 BFR D+,11,5 030 11 0 +1 *E STP LASMX IN ORDINARY CASES, GO TO THE 030 12 0 +1 BUN LASMB LITTLE ASSEMBLER. 030 13 0 +1 BUN ASMBX 030 14 0 +1 *D DLB - V,64,0 WHOOPS, ITS AN ARRAY NAME. 030 15 0 +1 LDR - 0 WE PROBABLY HAVE TO GET ITS INDEX 030 16 0 +1 STA GP IN REGISTER B 030 17 0 +1 BFR F+,11,7 IF THE ARRAY HAS ALREADY BEEN INDEXED, 030 18 0 +1 BFR E-,11,5 SKIP THIS PHASE, IF THE SUBSCRIPT IS 030 19 0 +1 IFL - 0,11,1 CONSTANT,GO TO LITTLE ASSEMBLER 030 20 0 +1 STB TEMP 030 21 0 +1 LDB - 0 GET THE SUBSCRIPT VALUE 030 22 0 +1 CAD - 0 IT CANT BE AN ACCUMULATOR SYMBOL 030 23 0 +1 DLB - 0,64,0 030 24 0 +1 LDR - 0 030 25 0 +1 BFA Q+,11,3 IS IT A TEMP STORAGE 030 26 0 +1 BFR Q+,11,6 IS IT ANOTHER ARRAY 030 27 0 +1 STP ASSNX OTHERWISE PREPARE A PLACE FOR IT IN 030 28 0 +1 BUN ASSN MEMORY 030 29 0 +1 CFA DEX,67 IF IT HASNT YET BEEN ASSIGNED 030 30 0 +1 STA DEX,67 030 31 0 +1 BCU G+ IS THE INDEX IN THE B REGISTER 030 32 0 +1 LDB TEMP 030 33 0 +1 STP REMX IF SO,REMOVE REFERENCE TO IT 030 34 0 +1 BUN REM1,F+ 030 35 0 +1 G99 F424 9629,0,0 030 36 0 +1 *Q CLL DEX SET CONTENTS OF REGISTER B TO UNKNOWN 030 37 0 +1 *G LDB TEMP HERE A TRICKY PART. 030 38 0 +1 STP REMX PUT THE SUBSCRIPT ONTO THE XVP STACK 030 39 0 +1 BUN REM1,*+2 IF IT IS ANOTHER ARRAY WHICH MUST BE 030 40 0 +1 BUN H+ CALLED,KEEP THIS UP UNTIL WE GET 030 41 0 +1 STP INSX,XVP TO A NON-ARRAY. 030 42 0 +1 BUN INS 030 43 0 +1 DLB - 0,64,0 030 44 0 +1 BFA H+,11,3 030 45 0 +1 CAD - 0 030 46 0 +1 BFA REM1,11,6 030 47 0 +1 *H CAD LDBV9 030 48 0 +1 *H STA INSTR COMPILE A SERIES OF LDB S 030 49 0 +1 CLL G UNTIL THE INDEX IS FINALLY IN REGISTER B 030 50 0 +1 STP REMX,XVP 030 51 0 +1 BUN REM,I+ 030 52 0 +1 *F CAD INSTP THE INSTRUCTION IS TO BE B-MODIFIED 030 53 0 +1 LSA 1 030 54 0 +1 STA INSTR 030 55 0 +1 LDR GP 030 56 0 +1 STR G 030 57 0 +1 BUN E- GO TO THE LITTLE ASSEMBLER 030 58 0 +1 *I STA V9 030 59 0 +1 STP LASMX 030 60 0 +1 BUN LASMB 030 61 0 +1 CSU LDBV9 030 62 0 +1 BUN H- 030 63 0 +1 *C BSA G4P,4 ABSOLUTE MACHINE ADDRESS 030 64 0 +1 BSA G6P,6 ADDRESS RELATIVE TO THIS LOCATION 030 65 0 +1 BSA G7P,7 ADDRESS TO BE BLANKED OUT 030 66 0 +1 BSA G8P,8 FORWARD REFERENCE ADDRESS 030 67 0 +1 IFL INSTR,12,10 (B-MODIFICATION ON SIGNS OF 5 OR 9) 030 68 0 +1 BSA G8P,9 B-MODIFIED FORWARD REFERENCE 030 69 0 +1 GEXIT STP WRITX 030 70 0 +1 BUN WRIT2 030 71 0 +1 ASMBX BUN * 030 72 0 +1 G4P LDR INSTR SET FLAG IF THIS IS SLT10 INSTRUCTION 030 73 0 +1 CFR SLT10,07 030 74 0 +1 BCU GEXIT 030 75 0 +1 IFL XI,00,1 030 76 0 +1 BUN GEXIT 030 77 0 +1 G6P CAD LOCN 030 78 0 +1 SRA 4 030 79 0 +1 ADA INSTR 030 80 0 +1 STA INSTR,04 030 81 0 +1 BUN GEXIT 030 82 0 +1 G8P CAD LOCN 030 83 0 +1 LSA 4 030 84 0 +1 LDR PSI 030 85 0 +1 BZR *+2 030 86 0 +1 LSA 7 INCREMENTED FORWARD REFERENCE 030 87 0 +1 DLB OP,44,0 030 88 0 +1 LDR PI PUT FORWARD REFERENCE OPERATOR 030 89 0 +1 BZR *+2 ONTO EITHER OPERATOR STACK, OR 030 90 0 +1 DLB EXEC,44,0 (THE STP,BUN S OF FOR) ONTO EXEC-STACK 030 91 0 +1 STP INSX 030 92 0 +1 BUN INS1 030 93 0 +1 G7P IFL WRTSW,41,4 030 94 0 +1 BUN GEXIT 030 95 0 +1 +1 +1 LASMB LDB INSTR LITTLE ASSEMBLER. 030 98 0 +1 LDR - V 030 99 0 +1 DLB - V,64,0 ASSEMBLE AN OPERAND FOR ME 031 00 0 +1 CAD - 0 031 01 0 +1 STA VIMAG WHAT KIND OF AN OPERAND 031 02 0 +1 BFR T3,11,3 A TEMP STORAGE 031 03 0 +1 BFR T1,11,1 A SIMPLE VARIABLE 031 04 0 +1 BFR T2,11,2 A CONSTANT 031 05 0 +1 BFR T4,11,4 A LIBRARY,EXTERNAL PROCEDURE 031 06 0 +1 BFR T5,11,5 AN ARRAY 031 07 0 +1 BFR T4,11,8 A PROCEDURE OR FUNCTION 031 08 0 +1 T9 LDR - 1 031 09 0 +1 BFR *+2,11,0 031 10 0 +1 STR EXPLN 031 11 0 +1 STP INSX A LABEL 031 12 0 +1 BFA H+,64,0 IF IT HASNT BEEN DEFINED YET, 031 13 0 +1 BUN T4 RECORD PLACE FOR FORWARD REFERENCE 031 14 0 +1 T1 BSA T4+1,8 IS IT A DIMENSION PARAMETER 031 15 0 +1 LDR - 1 031 16 0 +1 BUN *+2 031 17 0 +1 T2 LDR DICT+33 031 18 0 +1 STR EXPLN 031 19 0 +1 STP ASSNX ASSIGN PLACE FOR VARIABLE OR CONSTANT 031 20 0 +1 BFA ASSN1,64,0 IF NOT THERE ALREADY 031 21 0 +1 BUN T4+1 031 22 0 +1 T3 CLL VIMAG 031 23 0 +1 STR VIMAG,00 FREE UP TEMP STORAGE CELL FOR 031 24 0 +1 CAD G FUTURE USE UNLESS G = 1 OR 3 031 25 0 +1 BSA LASMX,3 031 26 0 +1 BSA T4-2,1 031 27 0 +1 SLT 10 031 28 0 +1 STP INSX,TEMPS 031 29 0 +1 BUN INS 031 30 0 +1 CAD TCONS 031 31 0 +1 STA EXPLN 031 32 0 +1 T4 CAD VIMAG INSERT NEW ADDRESS INTO INSTRUCTION 031 33 0 +1 SRA 4 031 34 0 +1 STA INSTR,04 031 35 0 +1 STP INSX 031 36 0 +1 BSA H+,9 031 37 0 +1 BSA *+2,8 031 38 0 +1 BUN *+2 031 39 0 +1 BFA H+,51,8 031 40 0 +1 *F ADD XZERO+1 031 41 0 +1 BSA B+,1 031 42 0 +1 CAD G 031 43 0 +1 BSA LASMX-1,3 G=3 MEANS THIS IS ONLY AN INDEX PSEUDO-OP 031 44 0 +1 *G STP WRITX 031 45 0 +1 BUN WRIT2 031 46 0 +1 CLL EXPLN 031 47 0 +1 LASMX BUN * 031 48 0 +1 *B EXT EX0 CHECK IF THIS ADDRESS IS A 031 49 0 +1 SUB FRSTP NAME PARAMETER WHICH MUST BE FIXED 031 50 0 +1 SLA 8 UP AT RUNNING TIME 031 51 0 +1 LDB PAREF 031 52 0 +1 *E CFA - 0,22 031 53 0 +1 BCE H+ 031 54 0 +1 DLB - 0,64,0 031 55 0 +1 BUN E- 031 56 0 +1 T5 LDR G ARRAY - IF G NEQ 1 OR 3 031 57 0 +1 BFR T4,12,10 RETURN THE INCREMENT WORD TO 031 58 0 +1 BFR T4,12,30 AVAILABLE STORAGE, WE ARE DONE WITH IT 031 59 0 +1 CAD AVAIL 031 60 0 +1 STB AVAIL 031 61 0 +1 STA - 0,04 031 62 0 +1 LDB VIMAG 031 63 0 +1 CAD - 1 031 64 0 +1 BUN T4-1 031 65 0 +1 *H CAA BUF 031 66 0 +1 SLA 4 031 67 0 +1 EXT GTAB0+5 031 68 0 +1 ADD LOCN 031 69 0 +1 BUN INS1 031 70 0 +1 TCONS CNST $TEMP$ 031 71 0 +1 +1 +1 +1 WRIT2 CAD LOCN WRITE SUBROUTINE - PUTS INSTRUCTION 031 75 0 +1 SRA 4 INTO OUTPUT BUFFER. 031 76 0 +1 IFL LOCN,64,1 WRIT2 ENTRY - PUT INSTRUCTION OUT FOR 031 77 0 +1 LDR INSTR LOCATION LOCN AND INCREMENT LOCN 031 78 0 +1 WRIT3 STA WRTF,04 WRIT3 ENTRY - LOCATION IS IN RA(04) 031 79 0 +1 SUB PREV AND INSTRUCTION IS IN REGISTER R 031 80 0 +1 LDB CNTRI 031 81 0 +1 BFA E+,04,0 031 82 0 +1 SUB XONE+1 DOES THIS LOCATION EQUAL THE PREVIOUS ONE 031 83 0 +1 BFA F+,04,0 (IF SO WE WILL ERASE THE PREVIOUS ONE) 031 84 0 +1 STB LRTF,04 OR IS IT ONE HIGHER 031 85 0 +1 CAD WRTF IF NOT,WE WILL PUT OUT A NEW RECORD TRANS 031 86 0 +1 STA - BUF+1 031 87 0 +1 IFL CNTRI,00,1 031 88 0 +1 *F LDB LRTF 031 89 0 +1 IFL - BUF+1,32,1 THE 32-FIELD CONTAINS THE NUMBER OF 031 90 0 +1 WRIT7 IFL CNTRI,00,1 SEQUENTIAL WORDS TO LOAD 031 91 0 +1 LDB CNTRI 031 92 0 +1 *E STR - BUF 031 93 0 +1 STR DESCR 031 94 0 +1 BCS *+2,2 031 95 0 +1 BUN *+3 031 96 0 +1 WRTSW STP 4 9898,0300 031 97 0 +1 BUN 4 9898,WRTF 031 98 0 +1 STB WRTSW,41 031 99 0 +1 LDR WRTF 032 00 0 +1 STR PREV,04 032 01 0 +1 WRIT6 LDR CNTRI IS THE BUFFER FULL NOW 032 02 0 +1 CFR CNTRF 032 03 0 +1 BCL WRITX IF NOT,EXIT 032 04 0 +1 WRIT5 LBC NN IF SO, CALCULATE CHECK SUM 032 05 0 +1 *C CLA BUF+2 032 06 0 +1 SUB - BUF+99 032 07 0 +1 IBB *-1,1 032 08 0 +1 BOF *+1 032 09 0 +1 STA BUF+99 032 10 0 +1 MOW 4 BUF,OT,1 WRITE ONE BLOCK 032 11 0 +1 IFL BUF,00,1 032 12 0 +1 CLL CNTRI 032 13 0 +1 CLL CNTRF INITIALIZE FOR NEXT BLOCK 032 14 0 +1 IFL CNTRF,00,96 032 15 0 +1 WRIT4 CLL BUF+1 032 16 0 +1 LDB C- 032 17 0 +1 RTF BUF+1,98 032 18 0 +1 WRITX BUN * 032 19 0 +1 032200 +1 032210 +1 032220 +1 GENXK STB V1,12 MARK V1 AS IN A-REGISTER 032 23 0 +1 GENXV CAD V1 V1 = RESULT 032 24 0 +1 GENXX STP INSX,OPRND PUT RESULT OF SOME GENERATED QUANTITY 032 25 0 +1 BUN INS IN OPERAND STACK AND RECORD IN 032 26 0 +1 LDB OPRND SER THE POSITION WHERE STORED 032 27 0 +1 LDR - 0 IF IT IS AN ACCUMULATOR SYMBOL. 032 28 0 +1 BFR A+,11,0 032 29 0 +1 BUN GENRX (HINT..SER IS USED TO CONTROL PLACEMENT 032 30 0 +1 *A STB SER INTO TEMP STORAGE) 032 31 0 +1 GENRX BUN * 032 32 0 +1 CAD BUNZ 032 33 0 +1 GENXY STP ASMBX ASSEMBLE FINAL INSTRUCTION AND EXIT. 032 34 0 +1 BUN ASMBY 032 35 0 +1 BUN GENRX 032 36 0 +1 +1 +1 GENR STA OPRTN GENERATORS.BRANCH ACCORDING TO KIND OF OP 032 39 0 +1 BSA GEN2,2 UNARY OP 032 40 0 +1 BSA GEN3,3 NULLARY OP 032 41 0 +1 BSA GFWRF,4 FORWARD REFERENCE 032 42 0 +1 BSA GBWRF,5 BACKWARD REFERENCE 032 43 0 +1 BSA GFWRF,7 INCREMENTED FORWARD REFERENCE 032 44 0 +1 STP OBTNX BINARY OP 032 45 0 +1 BUN OBTN1 GET V1 OPERAND 032 46 0 +1 STP OBTNX 032 47 0 +1 BUN OBTN2 GET V2 OPERAND 032 48 0 +1 CAD OPRTN 032 49 0 +1 BSA GEN3,1 SPECIAL BINARY OP 032 50 0 +1 BSA GRELN,8 RELATIONAL OP 032 51 0 +1 BFA A+,64,0 032 52 0 +1 GENAG STP ARTHX PLUS TIME OR DIVIDE, ETC. 032 53 0 +1 BUN ARTHG 032 54 0 +1 CAD ACCUM 032 55 0 +1 BUN GENXX 032 56 0 +1 *A LDB MODE GIVEN A PLUS OPERATION WHICH TAKES 032 57 0 +1 CAD - 0 PLACE ON PARENTHESIS LEVEL ONE OF AN 032 58 0 +1 CFA TEST,67 ARRAY SUBSCRIPT AND WHERE ONE OF THE 032 59 0 +1 BCU GENAG TWO OPERANDS IS A FIXED POINT CONSTANT 032 60 0 +1 CAD V1 032 61 0 +1 BFA B+,22,21 IF ALL THIS IS TRUE WE DONT COMPILE 032 62 0 +1 LDR V2 EXTRA INSTRUCTIONS, WE ADD IT TO THE 032 63 0 +1 BFR *+2,22,21 BASE ADDRESS OF THE ARRAY. 032 64 0 +1 BUN GENAG 032 65 0 +1 STR V1 032 66 0 +1 STA V2 032 67 0 +1 SLT 10 032 68 0 +1 *B DLB V1,64,0 032 69 0 +1 LDR - 1 UNLESS THE CONSTANT IS BIGGER THAN +1 032 70 0 +1 SRT 0 IN WHICH CASE WE COULD GET INTO TROUBLE 032 71 0 +1 CFR XONE+1 LOADING B WITH A NEGATIVE QUANTITY. 032 72 0 +1 BCH GENAG 032 73 0 +1 LDB ARAS IF THE ARRAY IS A CALL-BY-NAME 032 74 0 +1 DLB - 0,64,0 WITHIN A PROCEDURE WE CANT DO THIS 032 75 0 +1 GENDX SRT 0 INCREMENTATION EITHER 032 76 0 +1 TS001 CLA 032 77 0 +1 ADD - 0 032 78 0 +1 BSA GENAG,1 032 79 0 +1 SLT 10 ADD THIS TO THE INCREMENT WORD (MOD10000) 032 80 0 +1 SLA 4 032 81 0 +1 ADA - 0 032 82 0 +1 STA - 0,64 032 83 0 +1 GENX2 CAD V2 032 84 0 +1 BUN GENXX PUT OPERAND FOR UNARY OP INTO V1 032 85 0 +1 GEN2 STP OBTNX 032 86 0 +1 BUN OBTN1 OPRTN/64 IS THE NAME OF THE GENERATOR 032 87 0 +1 GEN3 DLB OPRTN,64,0 FOR THIS OPERATOR 032 88 0 +1 BUN - 0 032 89 0 +1 TEST F244 1,NDXCM,0 032 90 0 +1 +1 +1 +1 GREL2 STP WEMX 032 94 0 +1 BUN WEM,*+2 032 95 0 +1 CNST 30167200000 IMPROPER ASSIGNMENT OPERATION 032 96 0 +1 CLL OPRTN CHANGE OPERATION TO EQL 032 97 0 +1 GRELN CSU V1 RELATIONS EQL,GTR, ETC. 032 98 0 +1 STA V1 032 99 0 +1 CAD OPRTN 033 00 0 +1 STA OPRTM 033 01 0 +1 DFL YETH,62,10 CHANGE TO FIXED POINT SUBTRACT OPERATION 033 02 0 +1 CLL OPRTN 033 03 0 +1 STB BOF,61 033 04 0 +1 STP ARTHX 033 05 0 +1 BUN ARTHG 033 06 0 +1 IFL YETH,62,10 033 07 0 +1 BSA *+2,0 033 08 0 +1 IFL OPRTM,64,1 033 09 0 +1 BFA D+,11,0 IF RESULT IS NOT IN REGISTER A,GET IT 033 10 0 +1 LSA 0 033 11 0 +1 STA V1 033 12 0 +1 STP CADX 033 13 0 +1 BUN CAD1 ASSEMBLE BOF *+2 IF NECESSARY 033 14 0 +1 *D STP ASMBX 033 15 0 +1 BOF BUN ASMBL,BOF2 033 16 0 +1 *D LDB OP CHECK HOW WE ARE USING THIS RELATION 033 17 0 +1 LDR - 0 033 18 0 +1 BFR A+,67,00 IS IT IN A BOOLEAN EXPRESSION 033 19 0 +1 IFL OPRTM,64,2 033 20 0 +1 CFR OPIF,67 IS IT IN AN IF CLAUSE 033 21 0 +1 BCE C+ 033 22 0 +1 IFL OPRTM,64,2 IS IT IN AN UNTIL CLAUSE 033 23 0 +1 CFR CRU,67 033 24 0 +1 BCE C+ 033 25 0 +1 STP WEMX IF NOT IT IS AN IMPROPER 033 26 0 +1 BUN WEM,CMPLX RELATIONAL OPERATION 033 27 0 +1 CNST 30157200000 033 28 0 +1 *A STP INTRX 033 29 0 +1 BUN B+ 033 30 0 +1 BUN GENXX 033 31 0 +1 *C CAD AVAIL REMOVE IF OR UNTIL FROM OP STACK 033 32 0 +1 STB AVAIL,04 033 33 0 +1 STA - 0 033 34 0 +1 STR OP,04 033 35 0 +1 STP INTRX 033 36 0 +1 BUN B+ 033 37 0 +1 GREL1 CLL PSI IF, UNTIL FINISHED.. MAKE A COMPOUND 033 38 0 +1 IFL PHI,00,01 STATEMENT. 033 39 0 +1 BUN CMPLX 033 40 0 +1 *B DLB OPRTM,64,0 033 41 0 +1 CAD - GTAB3 033 42 0 +1 BUN INTRP 033 43 0 +1 +1 +1 GEXPN CAD V1 POWER GENERATOR. V2*V1 033 46 0 +1 CLL XI 033 47 0 +1 CFA V10,67 IF V1 IS 2 033 48 0 +1 BCE Q+ 033 49 0 +1 LDR V2 OR 2.0 WITH V2 FLOATING, 033 50 0 +1 CFA V11,67 033 51 0 +1 BCU *+2 WE WILL MAKE THIS INTO A MULTIPLY 033 52 0 +1 BFR Q+,21,0 OTHERWISE IF V1 IS NEGATED 033 53 0 +1 BSA A+,0 033 54 0 +1 STP ACCX EMPTY THE A-REGISTER 033 55 0 +1 BUN ACC3 033 56 0 +1 STP CADX AND CAD V1, SRT 10. 033 57 0 +1 BUN CAD1 033 58 0 +1 *B CAD SRT10 033 59 0 +1 BUN C+ ELSE, IF IT IS IN THE A REGISTER, SRT 10. 033 60 0 +1 *A BFA B-,11,0 033 61 0 +1 CAD LDRV1 IN OTHER CASES, LDR V1 033 62 0 +1 *C STP ASMBX 033 63 0 +1 BUN ASMBY THEN CAD V2 033 64 0 +1 STP CADX 033 65 0 +1 BUN CAD2 SEPARATE FOUR CASES 033 66 0 +1 *D CLB FIX TO FIX = 0 033 67 0 +1 CAD V1 FIX TO FLT = 1 033 68 0 +1 BFA *+2,21,1 FLT TO FIX = 2 033 69 0 +1 IBB *+1,1 FLT TO FLT = 3 033 70 0 +1 CAD V2 033 71 0 +1 BFA *+2,21,1 033 72 0 +1 IBB *+1,2 033 73 0 +1 STB D-,04 GENERATE STP BUN TO APPROPRIATE SUBRUTINE 033 74 0 +1 LDR - NUTBL SET UP TO PRINT THE NAME 033 75 0 +1 STP LINKX 033 76 0 +1 IBB LINK-1,EXPF 033 77 0 +1 LDB D- COMPUTE TYPE OF RESULT 033 78 0 +1 CAD - EXPA 033 79 0 +1 EXPA BUN GENXX,0100 033 80 0 +1 *Q CAA V2 033 81 0 +1 STA V2 THE SQUARE CASE 033 82 0 +1 STA V1 033 83 0 +1 BFA T+,11,2 033 84 0 +1 STP ACCX FREE A REGISTER 033 85 0 +1 BUN ACC3 033 86 0 +1 CAD V2 IF V2 WAS IN THE A REGISTER, IT WILL 033 87 0 +1 BFA T+,11,0 HAVE BEEN STORED OUT 033 88 0 +1 CSA CADV1 OTHERWISE WE WANT TO CADV1 AND PREVENT 033 89 0 +1 STP ASMBX DOUBLE-INDEXING IF V1 IS AN ARRAY 033 90 0 +1 BUN ASMBY 033 91 0 +1 STB V1,11 033 92 0 +1 *T CAD DOT MULTIPLY V2.V2 033 93 0 +1 STA OPRTN 033 94 0 +1 BUN GENAG 033 95 0 +1 NUTBL CNST $FX*FX$ 033 96 0 +1 CNST $FX*FL$ 033 97 0 +1 CNST $FL*FX$ 033 98 0 +1 CNST $FL*FL$ 033 99 0 +1 +1 +1 GABSF STP TSTOX ABSOLUTE VALUE. 034 02 0 +1 BUN TSTOP LOOK SEE IF ITS -ABS 034 03 0 +1 LDB *+3 034 04 0 +1 LDR V1 034 05 0 +1 BFR *+2,11,0 V1 IN MEMORY, ABS CAA V1 034 06 0 +1 DBB LSA0,LSA0-CAAV1 V1 IN MEMORY,-ABS CSA V1 034 07 0 +1 BCU *+2 V1 IN ACCUM, ABS LSA 0 034 08 0 +1 DBB 0,9999 V1 IN ACCUM, -ABS LSA 1 034 09 0 +1 STP ASMBX 034 10 0 +1 BUN ASMBZ 034 11 0 +1 BUN GENXK 034 12 0 +1 +1 +1 +1 +1 GHYPH LDB OPRND MINUS OPERATOR 034 17 0 +1 EX42 CNST 10013110000 SIMPLY REVERSE SIGN DIGIT OF 034 18 0 +1 STA - 0 NEXT ITEM IN OPERAND STACK 034 19 0 +1 BUN GENRX 034 20 0 +1 +1 +1 GBNOT LDR V1 BOOLEAN NOT. 034 23 0 +1 CAD G7 034 24 0 +1 BFR GEN4,22,01 034 25 0 +1 STP ACCX IF V1 NOT IN A-REGISTER. 034 26 0 +1 BUN ACC4 STORE A-REGISTER IF NECESSARY 034 27 0 +1 CAD V1 034 28 0 +1 BSA E+,1 CHECK THAT V1 IS BOOLEAN 034 29 0 +1 BFA E+,21,0 034 30 0 +1 *F CAD G11 CAD =1=, SUB V1. 034 31 0 +1 GEN4 STP INTRX 034 32 0 +1 BUN INTRP 034 33 0 +1 BUN GENXK IF V1 IS IN THE ACCUMULATOR, 034 34 0 +1 *E STP WEMX SUB=1=, LSA 0 034 35 0 +1 BUN WEM,F- 034 36 0 +1 CNST 30159610000 IMPROPER BOOLEAN OPERAND 034 37 0 +1 +1 +1 GIF LDR BZAFR IF AND UNTIL 034 40 0 +1 GIF1 STR T+ 034 41 0 +1 CAD V1 034 42 0 +1 BFA E+,21,0 CHECK V1 BOOLEAN 034 43 0 +1 BSA E+,1 034 44 0 +1 *A STP CADX BRING IT INTO A REGISTER 034 45 0 +1 BUN CAD1 034 46 0 +1 STP ASMBX ASSEMBLE BFA FORWARD,01,0 (IF) 034 47 0 +1 BUN ASMBL,T+ OR BFA FORWARD,01,1 (UNTIL) 034 48 0 +1 BUN GREL1 MAKE COMPOUND STATEMENT 034 49 0 +1 *E STP WEMX 034 50 0 +1 BUN WEM,A- 034 51 0 +1 CNST 30159610000 IMPROPER BOOLEAN OPERAND 034 52 0 +1 *T HLT 0 034 53 0 +1 +1 +1 GPCS STP ACCX PCS GENERATOR 034 56 0 +1 BUN ACC4 FREE A REGISTER 034 57 0 +1 STP FIXEX BRING V1 FIXED POINT INTO A 034 58 0 +1 BUN FIXER UNLESS ITS A CONSTANT 034 59 0 +1 BFA A+,11,2 THEN GENERATE SLA 0009 034 60 0 +1 CAD +6034037172 STA *+2,11 034 61 0 +1 BUN GEN4 CAD +1 034 62 0 +1 *A DLB V1,64,00 BCS *+2,0 034 63 0 +1 CAD - 1 CLA 034 64 0 +1 SLA 9 OR IF IT WAS A CONSTANT GENERATE 034 65 0 +1 STA BCSL2,11 MERELY THE LAST THREE OF THESE 034 66 0 +1 CAD +0371720000 034 67 0 +1 *B BUN GEN4 034 68 0 +1 +1 +1 GSIGN STP TSTOX SIGN(V1) 034 71 0 +1 BUN TSTOP 034 72 0 +1 STP CADX BRING V1 INTO A-REGISTER 034 73 0 +1 BUN CAD1 034 74 0 +1 SRT 10 GENERATE BZA *+4 034 75 0 +1 CAD +4959045600 SRT 0 034 76 0 +1 BFR B+,21,0 CAD =1.0= OR =1= 034 77 0 +1 CAD +4959035600 SLT 0 034 78 0 +1 GEN5 DEFN * 034 79 0 +1 *B STP INTRX 034 80 0 +1 BUN INTRP 034 81 0 +1 BUN GENXV 034 82 0 +1 +1 +1 GFWRF STP FXUPX FIX UP FORWARD REFERENCE 034 85 0 +1 BUN FXUP 034 86 0 +1 BUN GENRX 034 87 0 +1 +1 +1 GBWRF DLB OPRTN,64,00 BUN TO BACKWARD REFERENCE 034 90 0 +1 STB BUNI,04 034 91 0 +1 CAD BUNI 034 92 0 +1 BUN GENXY 034 93 0 +1 +1 GCRA STP REMX,OPRND OBTAIN V1. 034 95 0 +1 BUN REM,*+2 034 96 0 +1 BUN GENRX 034 97 0 +1 STA V1 034 98 0 +1 CLL SER BRANCH TO GCRJ(INPUT) OR GCRK(OUTPUT) 034 99 0 +1 DLB STSV,64,0 035 00 0 +1 BUN - 0 035 01 0 +1 +1 GCRB DLB DELTA,22,0 = OPERATOR 035 03 0 +1 DBB GREL2,1 OR DID HE MEAN EQL 035 04 0 +1 DLB V2,64,0 035 05 0 +1 LDR - 0 035 06 0 +1 STR TS001,34 035 07 0 +1 CAD V2 035 08 0 +1 BSA Z+,1 035 09 0 +1 STR V2 035 10 0 +1 STA V2,00 035 11 0 +1 LDB OP 035 12 0 +1 CAD - 0 035 13 0 +1 CFA CRB,64 CHECK FOR MULTIPLE ASSIGNMENT 035 14 0 +1 BCE A+ OR A FOR STATEMENT, WHERE WE 035 15 0 +1 LDB MODE CANT DO STR INSTEAD OF STA 035 16 0 +1 CAD - 0 035 17 0 +1 CFA FORMD,64 035 18 0 +1 BCU *+3 035 19 0 +1 IFL OMEGA,00,1 035 20 0 +1 *A CLL XI 035 21 0 +1 CAD V2 LEFTHAND OPERAND CANNOT BE 035 22 0 +1 BFA Z+,11,9 A LABEL, ACCUMULATOR SYMBOL 035 23 0 +1 BFA *+3,11,1 CONSTANT, TEMP STORAGE 035 24 0 +1 CFA *+1,11 OR A LIBRARY PROCEDURE 035 25 0 +1 F424 5001,34,Z+ 035 26 0 +1 CAD V1 035 27 0 +1 BFA S+,21,3 (CLL IN MULTIPLE ASSIGNMENT) 035 28 0 +1 BFA A+,11,2 IS RHS A CONSTANT. 035 29 0 +1 *V STP CADX IF NOT, GET RHS INTO ACCUMULATOR 035 30 0 +1 BUN CAD1 035 31 0 +1 LDR V2 035 32 0 +1 CFR V1,21 035 33 0 +1 STR V1,21 DO THE TYPES AGREE 035 34 0 +1 BCE C+ IF NOT, LINK EITHER TO 035 35 0 +1 BFR Y+,21,0 FIX OR FLOAT ROUTINE 035 36 0 +1 DLB FIXGN,64,0 035 37 0 +1 BUN X+ 035 38 0 +1 *Y DLB TABSC+82,64,0 035 39 0 +1 *X STP LINKX 035 40 0 +1 BUN LINK1 035 41 0 +1 *C CAA V2 035 42 0 +1 BFA Y+,11,8 035 43 0 +1 CAA G13 035 44 0 +1 *K STP INTRX ASSEMBLE STA V2 UNLESS FUNCTION OR 035 45 0 +1 BUN INTRP OR PROCEDURE NAME 035 46 0 +1 CAA TS001 035 47 0 +1 *Y LDR MU 035 48 0 +1 BFR W+,62,01 IF WE ARE IN SCOPE OF A LABEL REQUESTED 035 49 0 +1 *M DLB V2,64,0 FOR MONITORING, OR THE VARIABLE 035 50 0 +1 STP CONVX ASSIGNED IS SO REQUESTED, 035 51 0 +1 BUN CONV+1 ASSEMBLE LINK TO MONITOR SUBROUTINE 035 52 0 +1 BUN E+ 035 53 0 +1 *W BSA M-,2 035 54 0 +1 BSA M-,6 035 55 0 +1 *E CLL OMEGA 035 56 0 +1 BUN GENXV 035 57 0 +1 *A CFA V7,64 IF WE ARE SETTING SOMETHING TO A 035 58 0 +1 BCE S+ NONZERO CONSTANT, 035 59 0 +1 CFA V6,64 035 60 0 +1 BCE S+ 035 61 0 +1 *D CFA V2,21 MATCH THE TYPES 035 62 0 +1 BCE V- 035 63 0 +1 BFA U+,21,0 035 64 0 +1 STP FLTCX 035 65 0 +1 BUN FLTCN 035 66 0 +1 BUN T+ 035 67 0 +1 *U STP FIXCX 035 68 0 +1 BUN FIXCN 035 69 0 +1 *T STA V1,00 035 70 0 +1 BUN A- 035 71 0 +1 *S CAD COMP+7 SOMETHING = 0 035 72 0 +1 LDB OMEGA 035 73 0 +1 LDR V2 SEVERAL CASES TO CONSIDER 035 74 0 +1 STB V1,23 035 75 0 +1 IFL V1,21,3 035 76 0 +1 DBB K-,1 CLA,CLL V2 IN FOR STATEMENT 035 77 0 +1 SLA 6 035 78 0 +1 BFR K-,11,8 CLA IN PROCEDURE OR FUNCTION CASE 035 79 0 +1 SLA 6 035 80 0 +1 BUN K- CLL V2 OTHERWISE 035 81 0 +1 *Z STB V1,21 035 82 0 +1 STP WEMX 035 83 0 +1 BUN WEM,E- 035 84 0 +1 CNST 30167320000 IMPROPER ASSIGNMENT STATEMENT 035 85 0 +1 +1 +1 +1 +1 GCRC STP PMTRX 035 90 0 +1 BUN PMTR ASSEMBLE THE PARAMETER-OBTAINING INSTRUC- 035 91 0 +1 LDB OPRND TION 035 92 0 +1 CAD - 0 035 93 0 +1 CFA DEX,67 DOES REGISTER B CONTAIN THE FIRST 035 94 0 +1 BCE A+ PARAMETER LOCATION 035 95 0 +1 STA DEX 035 96 0 +1 STA V2 IF NOT, ASSEMBLE A DLB V2,44,0 035 97 0 +1 STP ASMBX 035 98 0 +1 BUN ASMBL,DLBV2 035 99 0 +1 *A LDB FUNS 036 00 0 +1 CAD - 0 036 01 0 +1 BSA *+2,3 TURN TAG ON IF WE HAVE PASSED THE 036 02 0 +1 BUN *+2 2ND SEMICOLON 036 03 0 +1 IFL TAG,00,1 036 04 0 +1 SRA 8 036 05 0 +1 LSA 0 036 06 0 +1 SUA GTAB0 WHAT PARAMETER NUMBER IS THIS 036 07 0 +1 STA STAAB,04 (FIRST 0000,THEN 9999, THEN 9998,ETC.) 036 08 0 +1 IFL - 0,22,1 036 09 0 +1 CAD STAAB 036 10 0 +1 BUN GENXY 036 11 0 +1 +1 +1 GCRD STP TSTOX MOD OPERATION MOD(V2,V1) 036 14 0 +1 BUN TSTOP 036 15 0 +1 CSU V2 IF -MOD CHANGE SIGN OF V2. 036 16 0 +1 BCU *+2 036 17 0 +1 STA V2 036 18 0 +1 EXT V1 036 19 0 +1 BFA E+,21,0 CHECK THAT V1,V2 BOTH INTEGER 036 20 0 +1 *F LDR V1 036 21 0 +1 CFR V10,66 IF V1 IS THE CONSTANT 2 OR -2 WE HAVE 036 22 0 +1 BCE Z+ A SPECIAL CASE 036 23 0 +1 *F STP ACCX 036 24 0 +1 BFR ACC1,11,0 PUT V1 IN MEMORY 036 25 0 +1 *C STP CADX 036 26 0 +1 BUN CAD2 BRING V2 INTO ACCUMULATOR 036 27 0 +1 CAD V1 036 28 0 +1 CFA *+1,11 036 29 0 +1 F424 2001,35,Y+ 036 30 0 +1 DLB V1,64,0 036 31 0 +1 CSA - 1 CHECK IF V1 IS A CONSTANT,POWER OF TEN 036 32 0 +1 CLL SYMBL 036 33 0 +1 BZA E+ 036 34 0 +1 SRT 1 036 35 0 +1 ADL SYMBL 036 36 0 +1 BFR *-2,11,0 036 37 0 +1 SLT 1 036 38 0 +1 CFA XONE+1,00 036 39 0 +1 *Y CAD +5822570000 036 40 0 +1 BCU GEN4 IF NOT,GENERATE SRT10,DIV V1, SLT 30 036 41 0 +1 CLL RR0 036 42 0 +1 STP FLTCX OTHERWISE GENERATE EXTRACT 036 43 0 +1 BUN FLTC1 WITH THE CONSTANT -1 OR -11 OR -111,ETC. 036 44 0 +1 STA V1,64 036 45 0 +1 CAD *+1 036 46 0 +1 BUN GEN4,2800 036 47 0 +1 *E STP WEMX 036 48 0 +1 BUN WEM,GENXX 036 49 0 +1 CNST 30113376911 IMPROPER ARGUMENT OF MOD FUNCTION 036 50 0 +1 *Z STP ACCX 036 51 0 +1 BUN ACC3 IF IT IS MOD 2, GENERATE 036 52 0 +1 CAD G99 CSU =1= EXT V2 036 53 0 +1 BUN GEN4 036 54 0 +1 +1 +1 GCRE LDB LAMDA EITHER IF FINISHING. 036 57 0 +1 CLL LAMDA IF OTHERWISE APPEARED, DO NOTHING 036 58 0 +1 DBB GENRX,1 IF NO OTHERWISE APPEARED, 036 59 0 +1 CAD NOPZ PUT OUT A NOP INSTRUCTION 036 60 0 +1 BUN GENXY 036 61 0 +1 +1 +1 GCRF CLL IOTA FINISH DECLARAING SOME ARRAY 036 64 0 +1 DLB V1,64,0 V1 IS FIRST DIMENSION,V2 IS ARRAY NAME 036 65 0 +1 CSU - 1 036 66 0 +1 MUL ARRI 036 67 0 +1 SLT 10 036 68 0 +1 *B LDR MULS 036 69 0 +1 ADL VARB RESERVE SPACE FOR THIS ARRAY 036 70 0 +1 STA TEMP 036 71 0 +1 *A CAD VARB 036 72 0 +1 ADD XONE+1 036 73 0 +1 STA ABASE,04 PUT BEGINNING LOCATION IN ABASE 036 74 0 +1 SUB ARRL 036 75 0 +1 ADA GTAB0 COMPUTE BASE ADDRESS (MOD 10000) 036 76 0 +1 SLA 4 036 77 0 +1 DLB V2,64,0 036 78 0 +1 STA - 0,64 MOVE LIST OF MULTIPLIERS 036 79 0 +1 STR - 0,04 TO THIS ARRAY NAME 036 80 0 +1 CAA TEMP 036 81 0 +1 SLA 4 PUT TOTAL LENGTH OF ARRAY ON TOP 036 82 0 +1 CLL MULS OF MULTIPLIER LIST 036 83 0 +1 BUN LNGTH 036 84 0 +1 +1 +1 GCRG DLB V1,64,0 MIDDLE OF ARRAY DECLARATION 036 87 0 +1 CAD - 1 036 88 0 +1 MUL ARRL IF GIVEN ARRAY A(I,J,K,L) 036 89 0 +1 STR ARRL 036 90 0 +1 IFL ARRL,00,1 ARRL IS SET TO ((J+1)K+1)L+1 036 91 0 +1 CAD - 1 036 92 0 +1 MUL ARRI 036 93 0 +1 STR ARRI 036 94 0 +1 CAD V1 ARRI IS SET TO JKL 036 95 0 +1 LDB B- 036 96 0 +1 LNGTH LDR V1 ALL DIMENSIONS MUST BE 036 97 0 +1 BFR A+,22,21 FIXED POINT CONSTANTS 036 98 0 +1 STP WEMX 036 99 0 +1 BUN WEM,GENRX 037 00 0 +1 CNST 30163640000 IMPROPER ARRAY DECLARATION 037 01 0 +1 *A STP INSX 037 02 0 +1 BUN INS1 J,K,L GO TO MULTIPLIER STACK 037 03 0 +1 BUN GENRX 037 04 0 +1 +1 +1 GCRH STP XSTX MAKE V1 INTEGRAL,IN MEMORY 037 07 0 +1 BUN XST 037 08 0 +1 CAD LBCV1 GENERATE LBC V1 037 09 0 +1 BUN GENXY 037 10 0 +1 +1 +1 GCRI CAA G3 GENERATE LSA 9,BUN IOPUS 037 13 0 +1 DFL UPSLN,62,29 037 14 0 +1 BUN A+ 037 15 0 +1 +1 +1 GCRJ CAD V1 037 18 0 +1 BFA E+,11,0 037 19 0 +1 BFA E+,11,2 CHECK FOR VALID INPUT EXPRESSION 037 20 0 +1 BSA E+,1 037 21 0 +1 CAA COMMX 037 22 0 +1 BUN A+ 037 23 0 +1 +1 +1 GCRK STP CADX BRING EXPRESSION INTO A-REGISTER 037 26 0 +1 BUN CAD1 037 27 0 +1 *B CAD G10 037 28 0 +1 *A LDR IOPUS GENERATE LDB * IBB IOPUS,2 037 29 0 +1 CLL DEX 037 30 0 +1 STR BUNI,04 037 31 0 +1 STR IBBI,04 037 32 0 +1 LDR V1 037 33 0 +1 STR LDBL0,21 037 34 0 +1 STP INTRX 037 35 0 +1 BUN INTRP 037 36 0 +1 BUN GENRX 037 37 0 +1 *E STP WEMX 037 38 0 +1 BUN WEM,B- IMPROPER INPUT DECLARATION 037 39 0 +1 CNST 30170640000 037 40 0 +1 +1 +1 GCRM DFL MU,62,29 END OF SCOPE OF MONITORED LABEL 037 43 0 +1 BUN GENRX 037 44 0 +1 +1 +1 GCRN STP FIXEX MAKE SURE V1 IS INTEGER 037 47 0 +1 BUN FIXER EITHER A CONSTANT OR IN A REGISTER 037 48 0 +1 BFA A+,11,2 037 49 0 +1 CAA G8 IF NOT A CONSTANT, ADD *+1 NOP V2 037 50 0 +1 BUN GEN5 037 51 0 +1 *A STB V1,11 IF A CONSTANT, ADD OR SUBTRACT ITS 037 52 0 +1 DLB V1,64,0 VALUE FROM THE ASSIGNMENT OF V2,MOD 10000 037 53 0 +1 LDR - 1 037 54 0 +1 STR 0 037 55 0 +1 SLT 14 037 56 0 +1 EXT EX42 (-11110000) 037 57 0 +1 DLB V2,64,00 037 58 0 +1 ADA - 0 037 59 0 +1 STA - 0,64 037 60 0 +1 STP ACCX 037 61 0 +1 BUN ACC4 037 62 0 +1 CAA G9 CAD *+1, NOP V2 037 63 0 +1 *B BUN GEN5 037 64 0 +1 +1 +1 GCRO STP PMTRX LAST PARAMETER TO FUNCTION IS V1 037 67 0 +1 BUN PMTR 037 68 0 +1 CLL DEX 037 69 0 +1 STP REMX,FUNS 037 70 0 +1 BUN REM,*+2 037 71 0 +1 G9 F424 0553,0,* 037 72 0 +1 STA BUNV2,22 037 73 0 +1 DLB V2,64,0 CHECK THAT PROPER 037 74 0 +1 LDR - 1 NUMBER OF ARGUMENTS 037 75 0 +1 STR EXPLN HAS APPEARED 037 76 0 +1 LDR - 0 037 77 0 +1 BFR B+,12,88 037 78 0 +1 SLT 6 037 79 0 +1 BFA A+,51,4 037 80 0 +1 CFR BUNV2,22 037 81 0 +1 BCE B+ 037 82 0 +1 BFR B+,22,0 037 83 0 +1 STP WEMX 037 84 0 +1 BUN WEM,*+2 037 85 0 +1 CNST 30113370800 IMPROPER ARGUMENT OF PROCEDURE 037 86 0 +1 *B CAD G4 GENERATE STP V2, BUN V2 037 87 0 +1 STP INTRX 037 88 0 +1 BUN INTRP 037 89 0 +1 STB V2,11 037 90 0 +1 CLL TAG 037 91 0 +1 BUN GENX2 037 92 0 +1 *A SLT 2 037 93 0 +1 BFR B-,21,3 037 94 0 +1 CFR V1,21 IF ARGUMENT TO LIBRARY FUNCTION 037 95 0 +1 BCE B- IS WRONG TYPE, CONVERT IT. 037 96 0 +1 DLB TABSC+82,64,0 037 97 0 +1 BFR *+2,21,0 037 98 0 +1 DLB FIXGN,64,0 037 99 0 +1 STP LINKX 038 00 0 +1 BUN LINK1 038 01 0 +1 BUN B- 038 02 0 +1 +1 +1 *E BFA GCRP,11,0 038 05 0 +1 STP WEMX 038 06 0 +1 BUN WEM,GCRP 038 07 0 +1 CNST 34661000000 038 08 0 +1 GCRP STP REMX,OPRND END OF PROCEDURE OR FUNCTION DECLARATION 038 09 0 +1 BUN REM,E- CHECK FOR EXTRA OPERANDS 038 10 0 +1 *A STP REMX,FUNS 038 11 0 +1 BUN REM2,*+2 PULL NAME OF THIS OFF FUN-STACK 038 12 0 +1 G10 F424 6273,0,* 038 13 0 +1 LDR FNSW 038 14 0 +1 BZR A+ 038 15 0 +1 SRA 4 038 16 0 +1 STA LDBI,4 RETURN FROM FUNCTION 038 17 0 +1 STP VSUBX 038 18 0 +1 BUN VSUB1 038 19 0 +1 *D CLL FNSW BRING BACK OLD TEMP STORAGE CELLS 038 20 0 +1 BUN OLDT AND EXIT 038 21 0 +1 *A STP REMX,PR3 FORGET ALL PREFIXES DEFINED IN THIS 038 22 0 +1 BUN REM,A- PROCEDURE 038 23 0 +1 LDR RR1 038 24 0 +1 STR RR3 BRING IN OTHERWISE TYPE OF MAIN PROGRAM 038 25 0 +1 LDR PR1 038 26 0 +1 STR PR3 BRING IN PREFIXES OF MAIN PROGRAM 038 27 0 +1 LDR CHI3 038 28 0 +1 STR CHI BRING IN MONITOR STATUS OF MAIN PROGRAM 038 29 0 +1 LDR PAREF 038 30 0 +1 BFR H+,04,00 038 31 0 +1 *C CAD PLOC IF PARAMETERS OF OUTPUT TYPE HAVE 038 32 0 +1 STP FXUPX OCCURRED, FIX UP THE INSTRUCTION 038 33 0 +1 BUN FXUP TO BUN TO THIS PART OF THE PROCEDURE 038 34 0 +1 CAD FRSTP 038 35 0 +1 SLA 4 038 36 0 +1 STA IRSTP 038 37 0 +1 *E LDB PAREF 038 38 0 +1 IBB F+,9999 038 39 0 +1 CAD - 1 038 40 0 +1 IBB *+1,1 REMOVE LIST OF REFERENCES TO THIS 038 41 0 +1 STA SETUP,04 PARAMETER, MAKE IT THE SETUP STACK 038 42 0 +1 SRA 4 038 43 0 +1 LDR AVAIL 038 44 0 +1 STB AVAIL 038 45 0 +1 STR - 0 038 46 0 +1 STA PAREF,04 038 47 0 +1 BSA G+,1 (THE FIRST PARAMETER MAY ALREADY BE 038 48 0 +1 EXT BCUL2 IN REGISTER A) 038 49 0 +1 SUB IRSTP CAD PARAMETER 038 50 0 +1 STA VEE,64 038 51 0 +1 STP ASMBX 038 52 0 +1 BUN ASMBL,X+ 038 53 0 +1 *G STP REMX,SETUP GENERATE ALL STA ----,04 038 54 0 +1 BUN REM,*+2 FROM THIS PARAMETER 038 55 0 +1 BUN E- 038 56 0 +1 SRA 4 038 57 0 +1 STA STAI,04 038 58 0 +1 STP ASMBX 038 59 0 +1 BUN ASMBL,STAI 038 60 0 +1 BUN G- 038 61 0 +1 *F CAD PLOC ASSEMBLE TO BUN TO THE 038 62 0 +1 SRA 4 BEGINNING OF THE PROCEDURE 038 63 0 +1 STA BUNI,04 038 64 0 +1 IFL BUNI,04,01 038 65 0 +1 STP ASMBX 038 66 0 +1 BUN ASMBL,BUNI 038 67 0 +1 *H CLL LEVEL EXIT,WE ARE THROUGH WITH THE PROCEDURE 038 68 0 +1 BUN D- 038 69 0 +1 VEE F2448 11,0,0 038 70 0 +1 *W F244 11,VEE,0 038 71 0 +1 *X F424 0,10,W--V 038 72 0 +1 +1 +1 GCRQ IFL PRFSW,62,25 PROCESS LAST PARAMETER. MARK IT 038 75 0 +1 STP YSUBX AS IN ACCUMULATOR IF ITS A CALL BY NAME 038 76 0 +1 BUN YSUB1 038 77 0 +1 DFL PRFSW,62,25 WE HAVE JUST FINISHED COLLECTING 038 78 0 +1 CLL TAG FUNCTION OR PROCEDURE PARAMETERS 038 79 0 +1 STA V3 038 80 0 +1 IFL V3,11,3 038 81 0 +1 STP ASMBX STORE LAST PARAMETER 038 82 0 +1 BUN ASMBL,STAT3 038 83 0 +1 *C CLL PARSW 038 84 0 +1 LDB FNSW 038 85 0 +1 DBB GENRX,1 EXIT IF A FUNCTION DECLARATION 038 86 0 +1 LDR PAREF 038 87 0 +1 BFR D+,04,00 IF CALL BY NAME PARAMETERS HAVE 038 88 0 +1 CAD LOCN APPEARED, ASEMBLE BUN INSTRUCTION 038 89 0 +1 STA PLOC WHICH WILL GO TO THE INITIALIZATION PART 038 90 0 +1 STP ASMBX 038 91 0 +1 BUN ASMBL,BUNZ 038 92 0 +1 *D IFL DELTA,04,4 038 93 0 +1 BUN GENRX 038 94 0 +1 +1 +1 GCRR STP XSTX V1 IS LAST ARRAY SUBSCRIPT 038 97 0 +1 BUN XST MAKE SURE IT IS FIXED POINT AND 038 98 0 +1 DLB V1,64,0 NOT IN REGISTER A 038 99 0 +1 LDR - 1 NOW COMES VERY TRICKY CODING. 039 00 0 +1 DLB V2,64,00 IF THE SUBSCRIPT IS A CONSTANT, 039 01 0 +1 CAD V1 SIMPLY CALCULATE THE ADDRESS 039 02 0 +1 BFA GENDX,22,21 039 03 0 +1 IFL - 0,11,1 OTHERWISE SET INCREMENT WORD TO A 6 039 04 0 +1 STP INSX AND SET UP A LINK TO V1 039 05 0 +1 BUN INS1 NOW INC WD/64=BASE ADDR. /04=AAAA 039 06 0 +1 BUN GENX2 AAAA/67=V1 /04=ARRAY INFORMATION 039 07 0 +1 +1 +1 GCRS STP REMX,FUNS FINISH SUBROUTINE DECLARATION. REMOVE 039 10 0 +1 BUN REM,OLDT LOCATION FROM FUNS, REMOVE TEMP STORAGES. 039 11 0 +1 G11 F424 0313,0,* 039 12 0 +1 +1 +1 GCRT CAD BUNV1 GENERATE BUN V1 039 15 0 +1 BUN GENXY 039 16 0 +1 +1 +1 GCRU LDR BNZAF 039 19 0 +1 BUN GIF1 UNTIL SIMILAR TO IF 039 20 0 +1 +1 +1 GCRV LDR LOCN END OF SEGMENT 039 23 0 +1 CFR LCMAX,64 039 24 0 +1 BCL *+2 039 25 0 +1 STR LCMAX,64 SET LCMAX TO GREATEST LOCN 039 26 0 +1 STP REMX,FUNS USED IN SEGMENTS 039 27 0 +1 BUN REM,*+2 039 28 0 +1 G12 F424 8990,0,* 039 29 0 +1 STA LOCN,64 RESET LOCN TO BEGINNING OF SEGMENT 039 30 0 +1 LSA 8 039 31 0 +1 SRA 4 OUTPUT CONTROL WORD FOR LOADER 039 32 0 +1 BUN GFWRF 039 33 0 +1 +1 +1 +1 GCRW IFL LAMDA,00,1 RECORD THAT OTHERWISE HAS OCCURRED 039 37 0 +1 BUN GENRX 039 38 0 +1 +1 +1 GCRX DEFN GENXY-1 039 41 0 +1 +1 +1 GCRY CAD V1 MAKE SURE A SUBSCRIPT IS FIXED POINT 039 44 0 +1 STP FIXEX 039 45 0 +1 BFA FIXER,21,0 039 46 0 +1 BUN GENXV 039 47 0 +1 +1 +1 GCRZ STP CADX STOP 039 50 0 +1 BUN CAD1 THERE WILL BE AN ACCUMULATOR 039 51 0 +1 *A CAD HLTZ SYMBOL PRESENT, IF THE STATEMENT 039 52 0 +1 BUN GENXY WAS SIMPLY STOP$ 039 53 0 +1 +1 +1 +1 GCROY DLB *+2,44,0 TRACE 039 57 0 +1 STP LIBRX 039 58 0 +1 BUN LIBRF,DMPER 039 59 0 +1 IFL TAG,00,1 039 60 0 +1 STP REMX,OPRND 039 61 0 +1 BUN REM,*+2 039 62 0 +1 BUN GENRX IF LABEL ONLY,EXIT 039 63 0 +1 STA TEMP IF LABEL(N), PUT N ON STACK 039 64 0 +1 DLB TEMP,64,0 039 65 0 +1 CAD - 1 039 66 0 +1 SLA 6 039 67 0 +1 JCROY LDB * 039 68 0 +1 STA - 0,44 039 69 0 +1 BUN GENRX 039 70 0 +1 039 71 0 +1 039 72 0 +1 OBTN1 STP REMX,OPRND 039 73 0 +1 BUN REM,*+2 GET TOP OF OPERAND STACK 039 74 0 +1 BUN E+ AND PLACE IT IN V1 039 75 0 +1 STA V1 039 76 0 +1 BUN A+ 039 77 0 +1 039 78 0 +1 039 79 0 +1 OBTN2 STP REMX,OPRND GET TOP OF OPERAND STACK AND PLACE IT IN 039 80 0 +1 BUN REM,C+ V2 039 81 0 +1 *E STP WEMX 039 82 0 +1 BUN WEM,GENRX 039 83 0 +1 CNST 37161000000 MISSING OPERAND 039 84 0 +1 *C STA V2 039 85 0 +1 *A BFA B+,11,0 IF AN ACCUMULATOR SYMBOL WAS 039 86 0 +1 BUN OBTNX REMOVED, SET SER TO ZERO 039 87 0 +1 *B CLL SER 039 88 0 +1 OBTNX BUN * 039 89 0 +1 039 90 0 +1 039 91 0 +1 PMTR LDR KAPPA SELECTIVELY BRING PARAMETER INTO A REG. 039 92 0 +1 BZR A+ HAVE EMPTY SUBSCRIPTS APPEARED 039 93 0 +1 CLL KAPPA 039 94 0 +1 *B STP CADX 039 95 0 +1 BUN CAD1 IF SO, ASSEMBLE CAD V1 AND EXIT 039 96 0 +1 BUN PMTRX 039 97 0 +1 *A LDB FUNS 039 98 0 +1 CAD - 0 IF BEFORE THE FIRST SEMICOLON, 039 99 0 +1 BSA B-,1 ASSEMBLE CAD V1 AND EXIT 040 00 0 +1 STP ACCX 040 01 0 +1 BUN ACC4 040 02 0 +1 CAD V1 OTHERWISE WE HAVE A CALL BY NAME 040 03 0 +1 BFA PMTRX,11,0 FREE THE A-REGISTER 040 04 0 +1 BSA C+,0 040 05 0 +1 *E STP WEMX 040 06 0 +1 BUN WEM,*+2 040 07 0 +1 CNST 30111130000 IMPROPER FUNCTION ARGUMENT 040 08 0 +1 STA V1 040 09 0 +1 *C CAA G5 040 10 0 +1 STP INTRX ASSEMBLE CAD *+1, NOP V1 040 11 0 +1 BUN INTRP 040 12 0 +1 PMTRX BUN * 040 13 0 +1 +1 +1 ACC DEFN *-1 040 16 0 +1 ACC1 BUN C+ ACC1.. PLACE V1 IN TEMP STORAGE 040 17 0 +1 ACC2 STP GETMX ACC2.. PLACE V2 IN TEMP STORAGE 040 18 0 +1 BUN GETMP 040 19 0 +1 STA V2,64 040 20 0 +1 IFL V2,11,3 040 21 0 +1 CAD STAT2 040 22 0 +1 BUN ASMBY 040 23 0 +1 *C STP GETMX 040 24 0 +1 BUN GETMP 040 25 0 +1 STA V1,64 040 26 0 +1 IFL V1,11,3 040 27 0 +1 CAD STAT1 040 28 0 +1 BUN ASMBY 040 29 0 +1 ACCX DEFN ASMBX 040 30 0 +1 ACC3 LDR V1 ACC3.. FREE THE A REGISTER 040 31 0 +1 BFR C-,11,0 IF V1 IS IN A, DO ACC1 040 32 0 +1 LDR V2 040 33 0 +1 BFR ACC2,11,0 IF V2 IS IN A, DO ACC2 040 34 0 +1 ACC4 LDB SER ELSE DO ACC4 040 35 0 +1 IBB ACCX,9999 ACC4.. IF THE A-REGISTER IS IN USE 040 36 0 +1 STP GETMX WITH OTHER OPERANDS BESIDES THE CURRENT 040 37 0 +1 BUN GETMP ONE(S), STORE IT INTO TEMP 040 38 0 +1 LDB SER 040 39 0 +1 STA - 0,64 AND MODIFY THE STACK ACCORDINGLY 040 40 0 +1 IFL - 0,11,3 040 41 0 +1 LDR - 0 040 42 0 +1 STR V3 040 43 0 +1 CAD STAT3 040 44 0 +1 CLL SER 040 45 0 +1 BUN ASMBY 040 46 0 +1 +1 +1 CAD2 LDB XTWO+1 CAD V2 040 49 0 +1 BUN CAD 040 50 0 +1 CAD1 LDB XONE+1 CAD V1 040 51 0 +1 CAD CAD - V 040 52 0 +1 STB ZHE,04 BRING V(RB) INTO A REGISTER 040 53 0 +1 BFA CADX,11,0 040 54 0 +1 STP ACCX IF ITS NOT THERE ALREADY, FREE 040 55 0 +1 BUN ACC4 THE ACCUMULATOR 040 56 0 +1 LDB ZHE 040 57 0 +1 CAD - V COMPILE CAD OR CSU V1 OR V2 040 58 0 +1 BSA B+,1 040 59 0 +1 CAD - CADV1-1 040 60 0 +1 *D STP ASMBX 040 61 0 +1 BUN ASMBY 040 62 0 +1 *C LDB ZHE 040 63 0 +1 STB - V,12 040 64 0 +1 CAD - V 040 65 0 +1 CADX BSA *,0 040 66 0 +1 STP ACCX TO REVERSE SIGN OF A-REGISTER, STORE 040 67 0 +1 BUN - ACC IT THEN COMPILE CSU INSTRUCTION 040 68 0 +1 LDB ZHE 040 69 0 +1 *B CAD - CSUV1-1 040 70 0 +1 BUN D- 040 71 0 +1 +1 +1 XST CAD V1 040 74 0 +1 STP FIXEX FIX V1 IF IT IS AN INTEGER 040 75 0 +1 BFA FIXER,21,0 040 76 0 +1 STP ACCX 040 77 0 +1 BFA ACC1,11,0 STORE V1 IF IT IS IN REGISTER A 040 78 0 +1 XSTX BUN * 040 79 0 +1 +1 +1 FIXER CAD V1 040 82 0 +1 BFA A+,11,2 040 83 0 +1 STP CADX 040 84 0 +1 BUN CAD1 CHANGE V1 TO INTEGER FORM 040 85 0 +1 BFA FIXEX,21,1 040 86 0 +1 DLB FIXGN,64,00 040 87 0 +1 STP LINKX LINK TO FIX ROUTINE 040 88 0 +1 BUN LINK1 040 89 0 +1 IFL V1,21,1 040 90 0 +1 CAD V1 040 91 0 +1 FIXEX BUN * 040 92 0 +1 *A BFA FIXEX,21,1 IF V1 IS A CONSTANT, 040 93 0 +1 STP FIXCX CHANGE IT WITH FIXCN 040 94 0 +1 BUN FIXCN 040 95 0 +1 STA V1,00 040 96 0 +1 BUN FIXEX-1 040 97 0 +1 +1 +1 TSTOP STP ACCX STORE A IF IT IS IN USE WITH 041 00 0 +1 BUN ACC4 NON-CURRENT OPERAND(S) 041 01 0 +1 LDB OP 041 02 0 +1 LDR - 0 IF NEXT ITEM IN OPERATION STACK 041 03 0 +1 CFR HYPH,67 IS A MINUS, REMOVE IT AND REVERSE 041 04 0 +1 BCU TSTOX THE SIGN OF V1 041 05 0 +1 STP REMX,OP 041 06 0 +1 BUN REM,*+2 041 07 0 +1 G13 F424 3100,0,0 041 08 0 +1 CSU V1 041 09 0 +1 STA V2 041 10 0 +1 TSTOX BUN * 041 11 0 +1 +1 +1 FLTCN STA TEMP CONVERT CONSTANT FROM INTEGER 041 14 0 +1 DLB TEMP,64,00 TO FLOATING POINT FORM 041 15 0 +1 CAD - 1 041 16 0 +1 FLTCM CLL RR0 041 17 0 +1 CLL SYMBL 041 18 0 +1 BFA B+,00,0 041 19 0 +1 IFL SYMBL,22,61 041 20 0 +1 ZHE CLR 041 21 0 +1 SRT 3 041 22 0 +1 *A SLT 1 NORMALIZE 041 23 0 +1 DFL SYMBL,22,1 041 24 0 +1 BFA A-,31,00 041 25 0 +1 STA SYMBL,08 041 26 0 +1 FLTC1 DEFN * 041 27 0 +1 *B STP NMBRX PUT INTO TABLE 041 28 0 +1 BUN NMBR 041 29 0 +1 CAD - 0 041 30 0 +1 STA L,23 041 31 0 +1 CAD L 041 32 0 +1 FLTCX BUN * 041 33 0 +1 +1 +1 FIXCN STA TEMP CONVERT FLOATING POINT CONSTANT 041 36 0 +1 DLB TEMP,64,00 INTO INTEGER FORM 041 37 0 +1 CAD - 1 041 38 0 +1 FIXCM CLL RR0 041 39 0 +1 IFL RR0,21,1 041 40 0 +1 CFA +6099999999 041 41 0 +1 BCH E+ 041 42 0 +1 S3 CLR 041 43 0 +1 SRT 8 041 44 0 +1 STA TEMP 041 45 0 +1 CFA *+1,02 041 46 0 +1 CLA 51 041 47 0 +1 BCL C+ 041 48 0 +1 DLB TEMP,04,50 UNNORMALIZE (CLEVERLY) 041 49 0 +1 SLT - 0 041 50 0 +1 *C STA SYMBL 041 51 0 +1 BUN B- 041 52 0 +1 *E STP WEMX 041 53 0 +1 BUN WEM,FIXCM 041 54 0 +1 CNST 33436373800 CONSTANT OUT OF RANGE 041 55 0 +1 FIXCX DEFN FLTCX 041 56 0 +1 +1 +1 ARTHG CLB MONTR ARITHMETIC SEQUENCE GENERATOR 041 59 0 +1 LDR V2 041 60 0 +1 BFR A+,11,0 CODE.. 0 ACCUMULATOR FLOATING 041 61 0 +1 DBB 0,9996 1 ACCUMULATOR FIXED 041 62 0 +1 BFR A+,11,2 2 (OTHER) FLOATING 041 63 0 +1 IBB 0,9998 3 (OTHER) FIXED 041 64 0 +1 *A BFR B+,21,1 4 CONSTANT FLOATING 041 65 0 +1 DBB 0,9999 5 CONSTANT FIXED 041 66 0 +1 *B LDR V1 041 67 0 +1 BFR C+,11,0 041 68 0 +1 DBB 0,9976 041 69 0 +1 BFR C+,11,2 CALCULATE 6 TIMES CODE(V1) PLUS CODE(V2) 041 70 0 +1 IBB 0,9988 041 71 0 +1 *C BFR D+,21,1 041 72 0 +1 DBB 0,9994 041 73 0 +1 *D LDR - COMP INDEX WITH THIS VALUE TO GET FANCY 041 74 0 +1 STR ARTHM COMP TABLE ENTRY, WHICH CONSISTS OF 041 75 0 +1 ARTHA LDR ARTHM IJ-PAIRS, LIKE AN INTERPRETIVE 041 76 0 +1 K3 CLA SYSTEM PROGRAM 041 77 0 +1 SLT 2 041 78 0 +1 STR ARTHM TAKE IJ-PAIRS FROM LEFT TO RIGHT 041 79 0 +1 STA J,01 041 80 0 +1 BFA ARTHC,91,3 TO ARTHC IF THIS IS THE LAST ENTRY 041 81 0 +1 SRT 1 041 82 0 +1 STA 1 041 83 0 +1 LDB 1 041 84 0 +1 BFR J1,11,1 FLOAT OPERAND V(I) 041 85 0 +1 BFR J2,11,2 STORE V(I) IN TEMP 041 86 0 +1 BFR J3,11,3 FLOAT CONSTANT V(I) 041 87 0 +1 BFR J4,11,4 BRING V(I) INTO A REGISTER 041 88 0 +1 BFR J5,11,5 COMPUTE SUM,PRODUCT,ETC. OF CONSTANTS 041 89 0 +1 BUN J6 CHECK FOR SPECIAL CASES IN CONSTANTS 041 90 0 +1 J1 DLB TABSC+82,64,0 041 91 0 +1 STP LINKX CALL IN FLOAT SUBROUTINE 041 92 0 +1 BUN LINK1 041 93 0 +1 LDB 1 041 94 0 +1 STB - V,21 FLOAT V(I) 041 95 0 +1 BUN ARTHA 041 96 0 +1 J2 STP ACCX STORE V(I) IN TEMP 041 97 0 +1 BUN - ACC 041 98 0 +1 BUN ARTHA 041 99 0 +1 J3 CAD - V FLOAT THE CONSTANT V(I) 042 00 0 +1 STP FLTCX 042 01 0 +1 BUN FLTCN 042 02 0 +1 LDB I 042 03 0 +1 STA - V,00 042 04 0 +1 BUN ARTHA 042 05 0 +1 J4 STP ACCX FREE THE A REGISTER. 042 06 0 +1 BUN ACC3 042 07 0 +1 LDB I 042 08 0 +1 STP CADX BRING V(I) IN 042 09 0 +1 BUN CAD 042 10 0 +1 BUN ARTHA 042 11 0 +1 J5 DLB V1,64,00 042 12 0 +1 LDR V1 GET CONSTANTS V1,V2 042 13 0 +1 CAD - 1 042 14 0 +1 SLT 0 042 15 0 +1 STA TEMP2 042 16 0 +1 DLB V2,64,00 042 17 0 +1 LDR V2 042 18 0 +1 CAD - 1 042 19 0 +1 SLT 0 042 20 0 +1 STA TEMP1 042 21 0 +1 LDR OPRTN 042 22 0 +1 CAD I 042 23 0 +1 CLL RR0 I SPECIFIES WHETHER FLOATING OR FIXED 042 24 0 +1 BFA X+,01,1 042 25 0 +1 CAD TEMP1 042 26 0 +1 CFR PLUS,67 042 27 0 +1 BCU A+ COMPUTE V2 OP V1 042 28 0 +1 FAD TEMP2 FAD 042 29 0 +1 BUN ARTHB 042 30 0 +1 *A CFR DOT,67 042 31 0 +1 BCU B+ 042 32 0 +1 FMU TEMP2 FMU 042 33 0 +1 BUN ARTHB 042 34 0 +1 *B CFR SOLD,67 042 35 0 +1 BCU ARTHA 042 36 0 +1 SCNXX CLR CLR,FDB 042 37 0 +1 FDV TEMP2 042 38 0 +1 BUN ARTHB 042 39 0 +1 *X IFL RR0,21,1 042 40 0 +1 CAD TEMP1 042 41 0 +1 CFR PLUS,67 042 42 0 +1 BCU A+ 042 43 0 +1 ADD TEMP2 ADD 042 44 0 +1 BUN ARTHB 042 45 0 +1 *A CFR DOT,67 042 46 0 +1 BCU B+ 042 47 0 +1 MUL TEMP2 MUL,SLT10 042 48 0 +1 SLT 10 042 49 0 +1 BZR ARTHB 042 50 0 +1 BUN V+ 042 51 0 +1 *B CFR SOLD,67 042 52 0 +1 BCU ARTHA 042 53 0 +1 SRT 10 042 54 0 +1 DIV TEMP2 SRT 10,DIV 042 55 0 +1 ARTHB BOF V+ 042 56 0 +1 *A STA SYMBL,00 CHECK IF OUT OF RANGE 042 57 0 +1 STA ACCUM PUT COMPUTED CONSTANT INTO TABLE 042 58 0 +1 STP NMBRX 042 59 0 +1 BUN NMBR 042 60 0 +1 CAA - 0 042 61 0 +1 STA ACCUM,00 042 62 0 +1 LDR L AND INTO ACCUM 042 63 0 +1 STR ACCUM,64 042 64 0 +1 CAD ACCUM 042 65 0 +1 BUN ARTHX AND EXIT 042 66 0 +1 *V STP WEMX 042 67 0 +1 BUN WEM,A- 042 68 0 +1 CNST 33436373800 CONSTANT OUT OF RANGE. USE =1= 042 69 0 +1 J6 CAD - V 042 70 0 +1 BPA X+ 042 71 0 +1 LDR OPRTN 042 72 0 +1 BFR X+,21,0 042 73 0 +1 LBC 1 042 74 0 +1 CSU - V3 042 75 0 +1 STA - V3 042 76 0 +1 LDB I 042 77 0 +1 CAA - V 042 78 0 +1 STA - V 042 79 0 +1 *V DLB - V,64,0 V(I) IS A CONSTANT. 042 80 0 +1 LDR - 1 CHECK IF IT IS A SPECIAL ONE 042 81 0 +1 BZR A+ IS IS ZERO 042 82 0 +1 CFR FONE+1 042 83 0 +1 BCE D+ IS IT 1.0 042 84 0 +1 *Q CAB 042 85 0 +1 DBB 0,9999 IS IT 10,100,1000,...,1000000000 042 86 0 +1 SLT 10 042 87 0 +1 BFA *-2,11,0 042 88 0 +1 SLT 1 042 89 0 +1 CFR XONE+1,00 042 90 0 +1 BCU ARTHA 042 91 0 +1 IBB D+,9998 IS IT 1 042 92 0 +1 CAD V1 042 93 0 +1 EXT V2 042 94 0 +1 BFA ARTHA,21,0 042 95 0 +1 LDR OPRTN 042 96 0 +1 DBB 0,9999 042 97 0 +1 STB SHIFT,06 042 98 0 +1 BFR Q+,62,48 CHECK IF OP IS MUL OR DIV 042 99 0 +1 LDB I 043 00 0 +1 DBB ARTHA,2 043 01 0 +1 BFR T+,62,24 043 02 0 +1 BUN ARTHA 043 03 0 +1 *Q IFL SHIFT,62,1 IF SO, SLA 043 04 0 +1 *T IFL SHIFT,62,48 OR SRA 043 05 0 +1 LBC I 043 06 0 +1 STP CADX 043 07 0 +1 DBB CAD,9997 043 08 0 +1 STP ASMBX 043 09 0 +1 BUN ASMBL,SHIFT 043 10 0 +1 BUN C+ 043 11 0 +1 *A DFL BOF,61,9 SUPPRESS BOF *+2 IN RELATIONALS 043 12 0 +1 *A LDR OPRTN IF ITS ZERO, AND WE ARE ADDING, 043 13 0 +1 BFR C+,65,0 OR ONE AND WE ARE MULTIPLYING, 043 14 0 +1 BFR M+,62,48 THE RESULT IS THE OTHER OPERAND 043 15 0 +1 BUN ARTHA IF ZERO AND MULTIPLYING, THE RESULT 043 16 0 +1 *D LDR OPRTN IS ZERO. 043 17 0 +1 CFR DOT,67 043 18 0 +1 BCU ARTHA 043 19 0 +1 *C LBC I 043 20 0 +1 CAD - V3 043 21 0 +1 *M STA ACCUM 043 22 0 +1 BUN ARTHX 043 23 0 +1 ARTHC STP ACCX FINISH OF ARITHMETICS. 043 24 0 +1 BUN ACC4 FIRST FREE A REGISTER IF NECESSARY 043 25 0 +1 CAD OPRTN 043 26 0 +1 SRA 4 043 27 0 +1 EXT NN 043 28 0 +1 STA TEMP1 043 29 0 +1 STA TEMP2 043 30 0 +1 CAD V2 COMPUTE OPERATION CODE 043 31 0 +1 SRS 10 PLUS SIGN OF V2 043 32 0 +1 ADL TEMP2 PLUS TWICE SIGN OF V1 043 33 0 +1 CAD V1 043 34 0 +1 SRS 10 043 35 0 +1 ADL TEMP2 043 36 0 +1 ADL TEMP2 043 37 0 +1 CAD OPRTN 043 38 0 +1 BFA A+,41,0 ADD,MULTIPLY, DIVIDE OPS 043 39 0 +1 BFA 41,1 MAX, MIN OPS 043 40 0 +1 CAD J AND,OR,EQIV,IMPL OPS. 043 41 0 +1 ADL TEMP2 043 42 0 +1 CSU V1 CHECK FOR VALID BOOLEAN OPERANDS 043 43 0 +1 BPA E+ 043 44 0 ?? BPA ?? BRANCH POSITIVE A? +1 EXT V2 043 45 0 +1 BMA E+ 043 46 0 ?? BMA ?? BRANCH MINUS A? +1 BFA H+,21,1 043 47 0 +1 *E STP WEMX 043 48 0 +1 BUN WEM,*+2 043 49 0 +1 CNST 30159610000 IMPROPER BOOLEAN OPERAND 043 50 0 +1 *H LDB TEMP2 043 51 0 +1 *K CAD - GTAB2 043 52 0 +1 BUN I+ 043 53 0 +1 *A CAD J INDEX INTO APPROPRIATE GTAB TABLE 043 54 0 +1 ADD J 043 55 0 +1 ADL TEMP2 043 56 0 +1 ADL TEMP2 043 57 0 +1 LDB TEMP2 043 58 0 +1 CAD - GTAB0 043 59 0 +1 YETH BUN I+,9988 (IN RELATION CASE,CHANGE FLOATING 043 60 0 +1 IBB I+-1,GTAB0-GTAB1 TO FIXED) 043 61 0 +1 *B CAD J 043 62 0 +1 MUL FUR 043 63 0 +1 DIV TWL 043 64 0 +1 SLT 10 043 65 0 +1 ADL TEMP2 043 66 0 +1 LDB TEMP2 043 67 0 +1 CAD - GTAB1 THIS TABLE ENTRY CAUSES THE ASSEMBLER 043 68 0 +1 *I STP INTRX TO PRODUCE ALL CODE NECESSARY FOR 043 69 0 +1 BUN INTRP THE BINARY OPEARTOR. 043 70 0 +1 ARTHX BUN * 043 71 0 +1 +1 +1 LINK1 LDR - I 043 74 0 +1 STR EXPLN 043 75 0 +1 LINK STP LIBRX MAKE SURE LIBRARY ROUTINE IS IN STORAGE 043 76 0 +1 BUN LIBRF 043 77 0 +1 STB V3 043 78 0 +1 IFL V3,51,4 043 79 0 +1 CAD V3 043 80 0 +1 SLA 4 043 81 0 +1 LINK2 STA V3 043 82 0 +1 CAA G6 COMPILE STP, BUN INSTRUCTIONS 043 83 0 +1 STP INTRX 043 84 0 +1 BUN INTRP 043 85 0 +1 CLL DEX MARK B REGISTER UNKNOWN 043 86 0 +1 LINKX BUN * 043 87 0 +1 +1 +1 VSUB LDB FUNS 043 90 0 +1 DLB - 0,64,00 RETURN.. COMPILE LDB () 043 91 0 +1 STB LDBI,04 BUN - 0 043 92 0 +1 VSUB1 CAD G1 043 93 0 +1 +1 +1 INTRP STP ASMBX GENERATE SERIES OF INSTRUCTIONS 043 96 0 +1 STA A+ FROM VOCABULARY TABLE. 043 97 0 +1 LDR A+ 043 98 0 +1 *B CLA * 043 99 0 +1 SLT 2 044 00 0 +1 STR A+ 044 01 0 +1 BFA C+,02,00 044 02 0 +1 BFA ACC1,02,32 POSSIBLY GENERATE A STORE INTO 044 03 0 +1 BFA ACC2,02,33 TEMP STORAGE 044 04 0 +1 STA B-,04 044 05 0 +1 LDB B- 044 06 0 +1 CAD - VOCAB-1 044 07 0 +1 BUN ASMBY 044 08 0 +1 *A HLT * 044 09 0 +1 *C BSA INTRX,0 AFTER THIS IS DONE, AND IF THE 044 10 0 +1 LDR V1 RESULT IS IN THE ACCUMULATOR, 044 11 0 +1 STR ACTBL+4,21 044 12 0 +1 STR ACTBL+5,21 044 13 0 +1 SRS 10 044 14 0 +1 STA B-,04 SET ACCUM TO THE CURRENT RESULT 044 15 0 +1 LDB - 044 16 0 +1 CAD - ACTBL-1 044 17 0 +1 STA ACCUM 044 18 0 +1 INTRX BUN * 044 19 0 +1 ACTBL CNST 00100000000 1 FIXED - TRUE SIGN 044 20 0 +1 CNST 00000000000 2 FLOATING - TRUE SIGN 044 21 0 +1 CNST 10100000000 3 FIXED - OPPOSITE SIGN 044 22 0 +1 CNST 10000000000 4 FLOATING - OPPOSITE SIGN 044 23 0 +1 CNST 00000000000 5 TYPE OF V1 - TRUE SIGN 044 24 0 +1 CNST 10000000000 6 TYPE OF V1 - REVERSED SIGN 044 25 0 +1 CONVX DEFN INTRX 044 26 0 +1 VSUBX DEFN INTRX 044 27 0 +1 +1 +1 LIBRF CAD - 0 PUT LIBRARY SUBROUTINE INTO TARGET 044 30 0 +1 LIBRX BFA LIBRX,11,4 PROGRAM IF IT HASNT BEEN PUT THERE 044 31 0 +1 SRA 4 ALREADY. 044 32 0 +1 EXT EX0 044 33 0 +1 SUB VARB 044 34 0 +1 STA VARB,04 044 35 0 +1 SLT 4 044 36 0 +1 STA - 0,64 044 37 0 +1 IFL - 0,64,1 044 38 0 +1 IFL - 0,11,1 044 39 0 +1 BUN LIBRF 044 40 0 +1 +1 +1 FXUP LDR LOCN COMPILE TO SET A PREVIOUS FORWARD 044 43 0 +1 STA DESCR 044 44 0 +1 SRT 4 044 45 0 +1 STR DESCR,04 044 46 0 +1 STA WRTF,04 044 47 0 +1 BSA *+2,7 044 48 0 +1 BUN *+2 044 49 0 +1 IFL DESCR,00,1 IF SIGN IS SEVEN, WE MEAN THE 044 50 0 +1 BCS *+2,2 044 51 0 +1 BUN *+4 044 52 0 +1 BSA *+3,8 044 53 0 +1 STP 4 9898,0208 044 54 0 +1 BUN 4 9898,WRTF 044 55 0 +1 LDR DESCR PRESENT LOCATION PLUS 1 044 56 0 +1 LDB LRTF REFERENCE TO THE PRESENT LOCATION 044 57 0 +1 CAD WRTF 044 58 0 +1 CFA PREV,04 044 59 0 +1 BCH A+ IF WE CAN FIX UP THE INSTRUCTION WHILE 044 60 0 +1 CAD - BUF+I IT SITS IN TEH OUTPUT BUFFER, WE WILL 044 61 0 +1 BFA A+,04,0 DO IT DIRECTLY 044 62 0 +1 CFA WRTF,04 044 63 0 +1 BCH A+ 044 64 0 +1 SUB WRTF 044 65 0 +1 SLA 6 044 66 0 +1 STA *+1,44 044 67 0 +1 DBB *+1,0 044 68 0 +1 STR - BUF+2,04 044 69 0 +1 BUN FXUPX 044 70 0 +1 *A DLB CNTRF,04,1 044 71 0 +1 STR - BUF+3 044 72 0 +1 BUN WRIT6 044 73 0 +1 FXUPX DEFN WRITX 044 74 0 +1 PREV DEFN BUF+99 044 75 0 +1 +1 +1 +1 XZERO F244 21,0,XONE THE FIRST FEW CONSTANTS 044 79 0 +1 CNST 0000000000 044 80 0 +1 FZERO F244 20,0,FONE 044 81 0 +1 CNST 0000000000 044 82 0 +1 XONE F244 21,0,XTWO 044 83 0 +1 CNST 0000000001 044 84 0 +1 FONE F244 20,0,FTWO 044 85 0 +1 CNST 5110000000 044 86 0 +1 XTWO F244 21,0,0 044 87 0 +1 CNST 0000000002 044 88 0 +1 FTWO F244 20,0,0 044 89 0 +1 CNST 5120000000 044 90 0 +1 LALE F244 30,100,20 044 91 0 +1 FCTIN F244 16,FUNGN,0 044 92 0 +1 +1 +1 LOC DEFN * 044 95 0 +1 LOCN *+7 044 96 0 +1 SCRTB F244 08,REAL,0 SCRAMBLE TABLE FOR IDENTIFIERS 044 97 0 +1 HLT 0 044 98 0 +1 HLT 0 THIS TABLE IS INITIALIZED TO 044 99 0 +1 HLT 0 THE RESERVED WORDS 045 00 0 +1 F244 04,GOGN,0 045 01 0 +1 HLT 0 045 02 0 +1 HLT 0 045 03 0 +1 F244 12,OUTGN,0 045 04 0 +1 HLT 0 045 05 0 +1 HLT 0 045 06 0 +1 HLT 0 045 07 0 +1 HLT 0 045 08 0 +1 HLT 0 045 09 0 +1 HLT 0 045 10 0 +1 HLT 0 045 11 0 +1 F244 08,IMPGN,TABSC+67 045 12 0 +1 F244 04,ORGN,0 045 13 0 +1 HLT 0 045 14 0 +1 HLT 0 045 15 0 +1 F244 08,EQIGN,0 045 16 0 +1 F244 04,TOGN,0 045 17 0 +1 F244 08,DUMPE,0 045 18 0 +1 HLT 0 045 19 0 +1 HLT 0 045 20 0 +1 HLT 0 045 21 0 +1 HLT 0 045 22 0 +1 HLT 0 045 23 0 +1 HLT 0 045 24 0 +1 HLT 0 045 25 0 +1 HLT 0 045 26 0 +1 HLT 0 045 27 0 +1 HLT 0 045 28 0 +1 HLT 0 045 29 0 +1 HLT 0 045 30 0 +1 HLT 0 045 31 0 +1 HLT 0 045 32 0 +1 HLT 0 045 33 0 +1 HLT 0 045 34 0 +1 HLT 0 045 35 0 +1 HLT 0 045 36 0 +1 F244 10,BEGGN,TABSC+92 045 37 0 +1 F244 06,ANDGN,0 045 38 0 +1 HLT 0 045 39 0 +1 HLT 0 045 40 0 +1 HLT 0 045 41 0 +1 F244 06,ENDGN,0 045 42 0 +1 F244 06,ABSGN,0 045 43 0 +1 HLT 0 045 44 0 +1 HLT 0 045 45 0 +1 HLT 0 045 46 0 +1 HLT 0 045 47 0 +1 F244 06,GEQGN,0 045 48 0 +1 F2440 12,EITGN,0 045 49 0 +1 F244 10,MEMRY,0 045 50 0 +1 F244 14,BOOGN,TABSC+34 045 51 0 +1 F244 06,MODGN,GSEG 045 52 0 +1 HLT 0 045 53 0 +1 F244 06,EQLGN,TABSC+37 045 54 0 +1 F244 12,FORMG,0 045 55 0 +1 F244 06,MINGN,TABSC+42 045 56 0 +1 HLT 0 045 57 0 +1 F244 16,FLOGN,TABSC+44 045 58 0 +1 F244 06,FORGN,TABSC+45 045 59 0 +1 F244 06,MAXGN,TABSC+46 045 60 0 +1 HLT 0 045 61 0 +1 HLT 0 045 62 0 +1 HLT 0 045 63 0 +1 HLT 0 045 64 0 +1 HLT 0 045 65 0 +1 F244 10,ENTGN,0 045 66 0 +1 F244 06,GTRGN,GNARR 045 67 0 +1 HLT 0 045 68 0 +1 HLT 0 045 69 0 +1 F244 18,OTHGN,FCTIN 045 70 0 +1 HLT 0 045 71 0 +1 F244 06,NOTGN,0 045 72 0 +1 F244 18,STAX,0 045 73 0 +1 HLT 0 045 74 0 +1 F244 06,LSSGN,0 045 75 0 +1 F244 14,MONGN,0 045 76 0 +1 F244 14,OVEGN,0 045 77 0 +1 F244 16,EXTGN,0 045 78 0 +1 HLT 0 045 79 0 +1 HLT 0 045 80 0 +1 HLT 0 045 81 0 +1 F244 12,SWIGN,TABSC+54 045 82 0 +1 F244 10,UNTGN,0 045 83 0 +1 HLT 0 045 84 0 +1 HLT 0 045 85 0 +1 HLT 0 045 86 0 +1 F244 10,INPGN,0 045 87 0 +1 HLT 0 045 88 0 +1 F244 12,RETGN,0 045 89 0 +1 HLT 0 045 90 0 +1 HLT 0 045 91 0 +1 F244 04,IFGN,0 045 92 0 +1 HLT 0 045 93 0 +1 HLT 0 045 94 0 +1 HLT 0 045 95 0 +1 HLT 0 045 96 0 +1 +1 +1 SSC HLT SCNT 045 99 0 +1 LOCN F244 0,0200,0 046 00 0 +1 SYS DEFN * 046 01 0 +1 EXPF F244 31,100,20 SOME LIBRARY ROUTINES 046 02 0 +1 F244 30,100,30 046 03 0 +1 F244 30,100,40 THE 64-FIELDS OF THESE CODES 046 04 0 +1 F244 30,100,50 ARE FIXED UP TO THE NUMBER 046 05 0 +1 FIX F244 31,100,60 OF LOCATIONS USED BY THE ROUTINES. 046 06 0 +1 CNST $FIX$ 046 07 0 +1 FLOAT F244 30,100,71 046 08 0 +1 CNST $FLOAT$ 046 09 0 +1 MONTR F244 30,100,80 046 10 0 +1 MAMAX HLT MSIZE 046 11 0 +1 MNTRE F244 40,MONTR,0 046 12 0 +1 ERROR F244 30,100,90 046 13 0 +1 DMPER F244 30,100,100 046 14 0 +1 DUMPR F244 40,DMPER,0 046 15 0 +1 RITE F244 30,10,0 046 16 0 +1 REED F244 30,10,0 046 17 0 +1 SCNT DEFN * 046 18 0 +1 +1 LOCN 4500 046 20 0 +1 STACK CRF 4 FR1+28,21,RLO INITIALIZATION OF THE PROGRAM 046 21 0 +1 MRW 4 OT 046 22 0 +1 CLL BUF 046 23 0 +1 LDB WRIT4 CLEAR OUTPUT BUFFER 046 24 0 +1 RTF BUF,99 046 25 0 +1 CRF 4 FR2+28,51 LOAD FORMAT BANDS 046 26 0 +1 CWF 4 FR6+28,32 FORWARD REFERENCES 046 27 0 +1 CWF 4 FR3+28,12 OUTPUT INSTRUCTIONS 046 28 0 +1 CWF 4 FR4+28,42 ERROR MESSAGES 046 29 0 +1 CWF 4 FR8+28,22 ALGOL STATEMENTS 046 30 0 +1 CWF 4 FR7+28,52 FIXUPS 046 31 0 +1 MPF 4 OT,3 046 32 0 +1 BCS HDNG+2,4 046 33 0 +1 *H BUN HDNG BUN/HPI SWITCH 046 34 0 +1 SPO RDY,8 046 35 0 +1 F424 8421,0,1248 046 36 0 +1 BUN H- 046 37 0 +1 HDNG STP 4 9898,1632 046 38 0 +1 BUN 4 9898,IMAGE 046 39 0 +1 STP 4 9999 046 40 0 +1 BUN 4 9999,IMAGE 046 41 0 +1 BUN SCN2 PROGRAM STARTS AT SCAN2 046 42 0 +1 +1 +1 CNST 20002000000 046 45 0 +1 HPV CNST 0,0,0 046 46 0 +1 CNST $BAC-220 ON LINE HSP VERSION$ 046 47 0 +1 CNST $ 2/1/62$ 046 48 0 +1 CNST 0,0,0,0,0 046 49 0 +1 PTV CNST 21615000000,20000000000,20000000000 046 50 0 +1 CNST $BAC-220 PAPER TAPE VERSION $ 046 51 0 +1 CNST $ 2/1/62$ 046 52 0 +1 RDY CNST 21600000000 046 53 0 +1 CNST $PLEASE READY HIGH-SPEED PRINTER$ 046 54 0 +1 +1 +1 FR1 FBGR INPUT,T2Z1B4A,15(T5A) 046 57 0 +1 FR2 FBGR INPUT,16(P5A),P10Z 046 58 0 +1 FR3 FBGR PRINT,49B,TZZZZZZNNNN,BBB,SBNNNNBNNBNNNN,BT5A,44B 046 59 0 +1 FR6 FBGR PRINT,49B,TZZZZZZNNNN,BBB,SBNNNNBNNBZZZZ,5BT5A,44B 046 60 0 +1 FR7 FBGR PRINT,49B,TZZZZZZNNNN,BBB,T6Z10BNNNN,50B 046 61 0 +1 FR4 FBGR PRINT,7(T5A),85B 046 62 0 +1 FR8 FBGR PRINT,TZZNNNNZZZZ,4B,16(T5A),32B 046 63 0 +1 +1 +1 +1 +1 +1 LOCN LOC 046 69 0 +1 FINI 1 046 70 0 +1 \ No newline at end of file diff --git a/software/BALGOL/BALGOL-Overlay.baca b/software/BALGOL/BALGOL-Overlay.baca new file mode 100644 index 0000000..00b272d --- /dev/null +++ b/software/BALGOL/BALGOL-Overlay.baca @@ -0,0 +1,574 @@ + Addr Sym Op - Address Comments + + ASBML 2 + REORD 100.0 + 01 00 0 0000 BUF DEFN 0002 TAPE OUTPUT BUFFER + 01 01 0 0000 OT DEFN 1 OUTPUT TAPE + 01 02 0 0000 T DEFN 2 COMPILER TAPE UNIT + 01 03 0 0000 PNTR DEFN 2 PRINTER UNIT +001 04 0 0000 PREV DEFN 101 ADDRESS OF PREVIOUS INSTRUCTION IN BUF +001 05 0 0000 CNTRI DEFN 180 COUNTER FOR INSTRUCTIONS IN BUFFER +001 06 0 0000 CNTRF DEFN 181 COUNTER FOR FIX-UPS IN BUFFER +001 07 0 0000 WRTF DEFN 183 RTF CONSTANT FOR WRITE SUBROUTINE + 01 08 0 0000 DESCR DEFN 184 INSTRUCTION IN OUTPUT BUFFER + 01 09 0 0000 EXPLN DEFN 185 SYMBOLIC EXPLANATION +001 10 0 0000 LCMAX DEFN 202 HIGHEST LOCATION USED IN SEGMENTS +001 11 0 0000 LRTF DEFN 207 LOCATION OF LAST RTF IN OUTPUT BUFFER +001 12 0 0000 HALT1 DEFN 208 ERROR FLAG(SIGN IS 8 IF NO ERRORS) +001 13 0 0000 VARB DEFN 251 LAST LOCATION USED FOR VARIABLES, ECT + 01 14 0 0000 EPSLN DEFN 258 NUMBER OF EXTERNAL PROGRAMS + 01 15 0 0000 AVAIL DEFN 275 FREED-UP LOCATIONS + 01 16 0 0000 OP DEFN 275 OPERATOR STACK + 01 17 0 0000 DUMBS DEFN 292 DUMP STACK + 01 18 0 0000 SX DEFN 400 MAG TAPE BUFFER + 01 19 0 0000 IMAGE DEFN 1632 CARD INPUT BUFFER +001 20 0 0000 AZERO DEFN 4095 START OF FIXED POINT CONSTANT LIST +001 21 0 0000 FZERO DEFN 4097 START OF FLOATING POINT CONSTANT LIST + 01 22 0 0000 XONE DEFN 4099 FIXED POINT CONSTANT 1 +001 23 0 0000 LALE DEFN 4107 POINTS TO LABEL PROCESSING SUBROUTINE +001 24 0 0000 SCRTS DEFN 4116 SCRAMBLE TABLE FOR IDENTIFIERS +001 25 0 0000 SSC DEFN 4216 POINTS TO WHATS LEFT OF MEMORY +001 26 0 0000 LOCN DEFN 4217 LOCATION COUNTER FOR INSTRUCTIONS +001 27 0 0000 MAMAX DEFN 4227 END OF ASSOCIATIVE MEMORY + 01 28 0 0000 MSIZE DEFN 4999 MEMORY SIZE + + + 01 31 0 0000 LOCN 0000 +001 32 0 0000 MDUMP HLT 0 SYMBOLIC MEMORY DUMP IS ON ODD LANE +001 33 0 0001 SOH SET INDICATOR FOR ENTIRE DUMP + 01 34 0 0002 BOF *+2 + 01 35 0 0003 IFL T+,51,3 + 01 36 0 0004 MRW 4 OT+10 + 01 37 0 0005 STA A + 01 38 0 0006 STB B + 01 39 0 0007 LBC *+1 + 01 40 0 0008 NOP LOD1-100 + 01 41 0 0009 MOW 4 0,OT,4 + 01 42 0 0010 MRD 4 100,OT,BMOD + 01 43 0 0011 BUN 100 + 01 44 0 0012 A HLT + 01 45 0 0013 B HLT MSIZE+1 + + + 01 48 0 0014 MLOAD LDB 0 + 01 49 0 0015 STB B+,04 GET EXIT LINE + 01 50 0 0016 MLS 4 OT POSITION TAPE SO THAT + 01 51 0 0017 MPF 4 OT SEGMENTATION WILL WORK + 01 52 0 0018 LDB B + 01 53 0 0019 SOR + 01 54 0 0020 FDV * + 01 55 0 0021 CAD A + 01 56 0 0022 *T NOP *+1 + 01 57 0 0023 STB T-,51 + 01 58 0 0024 *B BUN * RETURN TO PROGRAM + + + 01 61 0 0025 LDB *+2 + 01 62 0 0026 RTF A,1 + 01 63 0 0027 ZERO RTF 199,100 ZERO MEMORY + 01 64 0 0028 STB A BEFORE LOADING PROGRAM + 01 65 0 0029 CFR A,04 + 01 66 0 0030 BCU ZERO + 01 67 0 0031 LOADP MRD 4 100,OT,1 + 01 68 0 0032 LDR X+ + 01 69 0 0033 STR M+ + 01 70 0 0034 LBC *+1 + 01 71 0 0035 CLA 100 + 01 72 0 0036 *A ADD - 200 + 01 73 0 0037 ADD - 201 + 01 74 0 0038 ADD - 202 + 01 75 0 0039 ADD - 203 + 01 76 0 0040 ADD - 204 SUM CHECK THE BLOCK + 01 77 0 0041 IBB A-,5 + 01 78 0 0042 BOF *+1 + 01 79 0 0043 BZA M+ + 01 80 0 0044 SPO Q1+,4 IF IT DOES NOT + 01 81 0 0045 F424 9669,0,9669 SAY SO AND HALT + 01 82 0 0046 MPB 4 OT,1 TRY AGAIN + 01 83 0 0047 BUN LOADP + + + 01 86 0 0048 *M CAD 101 GET BUFFER ENTRY + 01 87 0 0049 LDB M- +001 88 0 0050 BSA C+,4 IS IT A RTF(IF NOT, ALL INSTRUCTIONS + +001 90 0 0051 CLL Z+ ARE LOADED SO PROCESS FIX-UPS + 01 91 0 0052 IFL Z+,02,99 + 01 92 0 0053 *A DLB Z+,04,1 +001 93 0 0054 LDR - 100 IF FIX-UP HAS A SIGN OF 8 IT INDICATES + 01 94 0 0055 BFR B+,12,80 END OF SOME SEGMENT + 01 95 0 0056 BZR LOADP + 01 96 0 0057 DLB - 100,64,0 DO FIX-UP + 01 97 0 0058 STR - 0,04 + 01 98 0 0059 BUN A- + + + 02 01 0 0060 *C STA R+,66 +002 02 0 0061 DBB 0,9999 INSTRUCTIONS ARE TRANSFERED TO + 02 03 0 0062 STB R+,04 MEMORY WITH A RTF + 02 04 0 0063 LDB - 9999 + 02 05 0 0064 *R RTF 0,100 + 02 06 0 0065 SRT 7 + 02 07 0 0066 ADD O+ GO GET NEXT RTF + 02 08 0 0067 ADL M- + 02 09 0 0068 BUN M- + 02 10 0 0069 *X CAD 101 + 02 11 0 0070 *O HLT 1 + 02 12 0 0071 *Z HLT 99 FIX-UP COUNTER + + + 02 15 0 0072 *B CFR SECT,67 HAVE WE LOADED ALL OF THE + 02 16 0 0073 BCU A- SEGMENT INDICATED BY SECT + 02 17 0 0074 LODOX BUN 200 + + + 02 20 0 0075 *V HLT 1111 + 02 21 0 0076 LODOV LDB LODOX + 02 22 0 0077 CAD - 0 + 02 23 0 0078 EXT V- + 02 24 0 0079 SLA 4 + 02 25 0 0080 STA SECT,00 GET SEGMENT NUMBER + 02 26 0 0081 IFL LODOX,04,I ADVANCE EXIT LINE BY ONE + 02 27 0 0082 CLB + 02 28 0 0083 *B MTS 4 SECT,OT SEARCH FOR SEGMENT + 02 29 0 0084 MRD 4 100,OT,1 + 02 30 0 0085 CAD 100 + 02 31 0 0086 CFA SECT,100 DID THE MACHINE WORK + 02 32 0 0087 BCE LOADP+1 IF YES,LOAD THE SEGMENT + 02 33 0 0088 SPO Q2+,3 IF NOT PRINT THE MESSAGE + 02 34 0 0089 F424 9669,0,9669 SEGMENT ERROR + 02 35 0 0090 BUN B- TRY AGAIN + + 02 37 0 0091 SECT HLT 8 0 SEGMENT NUMBER + + 02 39 0 0092 *Q1 CNST 21602020202 + 02 40 0 0093 CNST 24348454352 + 02 41 0 0094 CNST 20062645400 + 02 42 0 0095 CNST 24559595659 + 02 43 0 0096 *Q2 CNST 21662454754 + 02 44 0 0097 CNST 24555630045 + 02 45 0 0098 CNST 25959565902 + + + 02 48 0 0099 LOCN 100 + 02 49 0 0100 HLT 0 + 02 50 0 0101 FMT1 FBGR INPUT,16(P5A),P10Z +002 51 0 0130 FMT3 FBGR PRINT,39B,T5A,T1A1B2A4Z,T10N,T8Z1A,XB6Z2A,38B MONITOR +002 52 0 0159 FMT4 FBGR PRINT,32B,11(T5A),33B ERROR MESSAGE FORMAT BAND + 02 53 0 0188 TAB DEFN * + 02 54 0 0188 LOCN 200 + 02 55 0 0200 HLT 0 +002 56 0 0201 FMT5 FBGR PRINT,24(T5A) PRINTER-PUNCH FORMAT BAND + + 02 58 0 0230 LOADL CRI 4 *+2,1 LOADER ENTRANCE + 02 59 0 0231 BUN LOADC +002 60 0 0232 CRF 4 FMT1+28,51 LOAD INPUT FORMAT IF READY + 02 61 0 0233 LOADC STB 200,55 + 02 62 0 0234 *A IFL 200,54,1 + 02 63 0 0235 BOF A+ + 02 64 0 0236 CWI 4 A+,2 + 02 65 0 0237 BUN A- + 02 66 0 0238 *A CWI 4 *+2,2 + 02 67 0 0239 BUN *+4 +002 68 0 0240 CWF 4 FMT3+28,32 LOAD PRINTER FORMATS IF PRINTER READY + 02 69 0 0241 CWF 4 FMT4+28,42 + 02 70 0 0242 CWF 4 FMT5+28,52 + 02 71 0 0243 CWI 4 *+2,1 + 02 72 0 0244 BUN *+2 +002 73 0 0245 CWF 4 FMT5+28,51 LOAD PUNCH FORMAT IF PUNCH IS READY + 02 74 0 0246 LDR B + 02 75 0 0247 BUN ZERO-2 + + + 02 78 0 0248 LOCN 700 + + 02 80 0 0700 BCS *+3,4 + 02 81 0 0701 STP 4 9898,1642 + 02 82 0 0702 BUN 4 9898,IMAGE + 02 83 0 0703 MRD 4 0900,T,7 + 02 84 0 0704 MRD 4 1600,T,0 + 02 85 0 0705 MRD 4 2600,T,0 + 02 86 0 0706 CLA 3200 + 02 87 0 0707 LBC *-1 + 02 88 0 0708 ADD - 3600 + 02 89 0 0709 ADD - 3601 + 02 90 0 0710 ADD - 3602 + 02 91 0 0711 ADD - 3603 + 02 92 0 0712 ADD - 3604 + 02 93 0 0713 ADD - 3605 + 02 94 0 0714 ADD - 3606 + 02 95 0 0715 ADD - 3607 + 02 96 0 0716 ADD - 3608 + 02 97 0 0717 ADD - 3609 + 02 98 0 0718 IBB *-10,10 + 02 99 0 0719 BOF *+1 + 03 00 0 0720 BZA A+ IF IT DOES NOT PRINT + 03 01 0 0721 SPO CSERR,4 CHECK SUM ERROR + 03 02 0 0722 F424 9669,0,9669 + 03 03 0 0723 MPB 4 T,2 + 03 04 0 0724 MPB 4 T,10 + 03 05 0 0725 MPB 4 T,10 + 03 06 0 0726 MPB 4 T,10 + 03 07 0 0727 MRD 4 400,T,10 TRY AGAIN + 03 08 0 0728 MRD 4 1400,T,10 + 03 09 0 0729 MRD 4 2400,T,10 + 03 10 0 0730 MRD 4 3400,T,2 + 03 11 0 0731 BUN 707 + + + 03 14 0 0732 *A CWF 4 ERFRM+28,42 + 03 15 0 0733 LDB DUMBS + 03 16 0 0734 IBB A+,9999 + 03 17 0 0735 LDB +SCRTB+117 + 03 18 0 0736 STP LIBRX + 03 19 0 0737 BUN LIBRF + 03 20 0 0738 *A CAD HALT1 SET THE X X UP IF AN ERROR + 03 21 0 0739 BSA *+3,8 OCCURRED DURING COMPILATION + 03 22 0 0740 LDR +525005250 + 03 23 0 0741 STR HALT + 03 24 0 0742 LDB OP + 03 25 0 0743 *A STB C+,04 TEST FOR OP STACK EMPTY + 03 26 0 0744 IBB A+,9999 IT SHOULD BE + 03 27 0 0745 STP WEMX + 03 28 0 0746 BUN WEM + 03 29 0 0747 CNST 30102030000 EXTRA LEFT PARENTHESIS + 03 30 0 0748 LDB C+ + 03 31 0 0749 LDB - 0 + 03 32 0 0750 BUN A- + 03 33 0 0751 *C HLT 0 + + +003 36 0 0752 *A CAD BUF DUMP BUFFER IF SEGMENTATION WAS USED + 03 37 0 0753 BFA A+,64,0 AND BUFFER IS NOT EMPTY + 03 38 0 0754 CAD BUF+99 + 03 39 0 0755 ADD BUF+98 + 03 40 0 0756 BZA *+3 + 03 41 0 0757 STP WRITX + 03 42 0 0758 BUN WRIT5 + 03 43 0 0759 CAD BUF INCREASE SEGMENT NUMBER + 03 44 0 0760 CLL BUF + 03 45 0 0761 STA BUF,64 + 03 46 0 0762 IFL BUF,64,1 + 03 47 0 0763 BUN C+ + 03 48 0 0764 *A LDR +9669009669 GENERATE BIG X X HALT + 03 49 0 0765 STR INSTR + 03 50 0 0766 STP WRITX + 03 51 0 0767 BUN WRIT2 + 03 52 0 0768 LDR +1000600000 FOLLOWED BY A CARD READ + 03 53 0 0769 STR INSTR IF NOT USING SEGMENTATION + 03 54 0 0770 STP WRITX + 03 55 0 0771 BUN WRIT2 + + + 03 58 0 0772 *C LDR $POOL$ + 03 59 0 0773 STR EXPLN + 03 60 0 0774 *C LDB *+1 + 03 61 0 0775 CAD XZERO + 03 62 0 0776 *A STA HOLD + 03 63 0 0777 BFA B+,64,0 + 03 64 0 0778 SRA 4 + 03 65 0 0779 LDR - 1 + 03 66 0 0780 STP WRITX OUTPUT ALL CONSTANTS USED BY + 03 67 0 0781 BUN WRIT3 OBJECT PROGRAM + 03 68 0 0782 CAD HOLD + 03 69 0 0783 *B BFA C+,04,0 XXXX 2R YYYY LINK R=0 FLOATING + 03 70 0 0784 LDB HOLD XXXX+1 (CONSTANT) R=1 INTEGER + 03 71 0 0785 CAD - 0 YYY IS THE ASIGNMENT + 03 72 0 0786 BUN A- LINK=0 INDICATES END OF LIST + 03 73 0 0787 *C LDB *+1 + 03 74 0 0788 CAD FZERO PROCESS FLOATING LIST + 03 75 0 0789 STP B- + 03 76 0 0790 BUN A- + + + 03 79 0 0791 CLL EXPLN + 03 80 0 0792 MLS 4 T + 03 81 0 0793 MIB 4 *+2,T + 03 82 0 0794 BUN *-1 + 03 83 0 0795 MRD 4 LBRT,T,3 READ LIBRARY TABLE +003 84 0 0796 DFL WRT10,11,9 CHANGE CONTROL SWITCH FOR EXTERNAL + 03 85 0 0797 DFL FXUPY,11,9 + 03 86 0 0798 LDB EPSLN PROGRAMS +003 87 0 0799 STP EXTEX PROCESS EXTERNAL PROGRAMS IF EPSLN + 03 88 0 0800 DBB EXTP,1 IS NON-ZERO +003 89 0 0801 DFL WRT10,11,2 CHANGE CONTROL SWITCH FOR LIBRARY + 03 90 0 0802 DFL FXUPY,11,2 +003 91 0 0803 CAD +545600 MODIFY ERROR MESSAGE FOR LIBRARY +003 92 0 0804 STA CNST9,06 TO READ UNDEFINED EQUIVALENCE LIBRARY + INCORRECT + + + 03 96 0 0805 *F CLL TST + 03 97 0 0806 CLB + 03 98 0 0807 CAD LOCN + 03 99 0 0808 STA LCHOD + 04 00 0 0809 DBB *+1,99990LBRT START AT LBRT+1 + 04 01 0 0810 *E STB I + 04 02 0 0811 CAD - 0 +004 03 0 0812 BSA A+,1 +004 04 0 0813 BZA B+ END OF THIS PASS ON THE TABLE +004 05 0 0814 STA J,00 + 04 06 0 0815 DLB J,64,0 + 04 07 0 0816 CAD - 0 + 04 08 0 0817 BFA A+,11,3 IS THE ROUTINE ASSIGNED + 04 09 0 0818 LDB I IF YES + 04 10 0 0819 IFL - 0,12,10 MARK IT WITH A SIGN OF 1 + 04 11 0 0820 BUN C+ + 04 12 0 0821 *D DLB J,64,0 + 04 13 0 0822 CAD - 0 + 04 14 0 0823 BFA C+,11,4 + 04 15 0 0824 IFL TST,00,1 ASSIGN SUBROUTINE IF IT HAS NOT +004 16 0 0825 STP LIBRX ALREADY ASSIGNED, TST COUNTS NUMBER +004 17 0 0826 BUN LIBRF OF SUBROUTINES ASSIGNED ON THIS PASS + 04 18 0 0827 *C LDB J THRU TABLE + 04 19 0 0828 IBB A+,9999 SEQUENCE DOWN LIST OF REQUIRED + 04 20 0 0829 CAD - 1 SUBROUTINES + 04 21 0 0830 STA J + 04 22 0 0831 BUN D- + 04 23 0 0832 *A LDB I ADVANCE TO NEXT TABLE ENTRY + 04 24 0 0833 IBB E-,1 +004 25 0 0834 *B LDB TST IF 1 ADDITIONAL SUBROUTINE WAS ASSIGNED +004 26 0 0835 DBB F-,1 ANOTHER PASS THRU TABLE IS NECESSARY + + + 04 29 0 0836 *E DEFN * + 04 30 0 0836 *F DLB II,44,0 + 04 31 0 0837 CAD - LBRT + 04 32 0 0838 BFA A+,00,0 END OF LIBRARY TABLE +004 33 0 0839 BSA B+,1 IF ENTRY WAS MARKED PROCESS THIS + 04 34 0 0840 *C IFL II,44,1 ROUTINE + 04 35 0 0841 BUN F- + 04 36 0 0842 *B DLB - LBRT,64,0 +004 37 0 0843 CAD - 0 GET OPERAND OF ROUTINE TO BE PROCESSED +004 38 0 0844 DLB *,44,0 POSITION TAPE TO BEGINNING OF ROUTINE + 04 39 0 0845 MFS II,T + 04 40 0 0846 STA LOCN,64 SETUP LOCATION COUNTER + 04 41 0 0847 SLA 2 +004 42 0 0848 STA MSK,44 AND MASK FOR RELOCATION OF INSTRUCTIONS + 04 43 0 0849 SRA 6 + 04 44 0 0850 STA MSK,04 + 04 45 0 0851 CLL EQTAB-1 CLEAR EQUIVALENCE TABLE + 04 46 0 0852 LDB +EQTAB + 04 47 0 0853 RTF EQTAB-1,100 + 04 48 0 0854 CLL JJ + 04 49 0 0855 IFL JJ,02,2 + 04 50 0 0856 MLS 4 T + 04 51 0 0857 MIB 4 *+2,T + 04 52 0 0858 BUN *-1 + 04 53 0 0859 MRD 4 BUFR,T,1 + 04 54 0 0860 CAD BUFR DID WE FIND THE RIGHT BLOCK + 04 55 0 0861 CFA II + 04 56 0 0862 BCE E+ + 04 57 0 0863 SPO SRERR,3 + 04 58 0 0864 F424 9669,0,9669 + 04 59 0 0865 BUN B- + 04 60 0 0866 *G CLL JJ + 04 61 0 0867 IFL JJ,02,2 + 04 62 0 0868 MLS 4 T + 04 63 0 0869 MIB 4 *+2,T + 04 64 0 0870 BUN *-1 + 04 65 0 0871 MRD 4 BUFR,T,1 + 04 66 0 0872 *E LDB *+1 + 04 67 0 0873 CLA 98 + 04 68 0 0874 ADD - BUFR+1 + 04 69 0 0875 DBB *-1,1 CHECK SUM + 04 70 0 0876 BOF *+1 + 04 71 0 0877 BZA D+ + 04 72 0 0878 SPO CSERR,4 + 04 73 0 0879 F424 9669,0,9669 + 04 74 0 0880 MPB 4 T,1 + 04 75 0 0881 BUN G- + + + 04 78 0 0882 *D LDB JJ + 04 79 0 0883 CAD - BUFR-1 + 04 80 0 0884 STA INSTR + 04 81 0 0885 STP LBSBX PROCESS INSTRUCTION IN BUFFER + 04 82 0 0886 BUN LBSB + 04 83 0 0887 BUN C- END OF LIBRARY PROCEDURE + 04 84 0 0888 IFL JJ,02,1 + 04 85 0 0889 BOF G- END OF TAPE BLOCK + 04 86 0 0890 BUN D- + + + 04 89 0 0891 *A MIB 4 *+2,T + 04 90 0 0892 BUN *-1 + 04 91 0 0893 MRW 4 T + 04 92 0 0894 CLA EMIT AN END OF +004 93 0 0895 LSA 8 + 04 94 0 0896 STP FXUPX + 04 95 0 0897 BUN FXUP + 04 96 0 0898 CAD BUF+98 + 04 97 0 0899 BSA *+2,8 + 04 98 0 0900 BZA *+3 + 04 99 0 0901 STP WRITX DUMP BUFFER IF NOT EMPTY + 05 00 0 0902 BUN WRIT5 + 05 01 0 0903 CAD +9999999999 + 05 02 0 0904 STA BUF OUTPUT A SENTINEL BLOCK + 05 03 0 0905 STP WRITX + 05 04 0 0906 BUN WRIT5 + 05 05 0 0907 MIB 4 *+2,OT + 05 06 0 0908 BUN *-1 + 05 07 0 0909 MRW 4 OT + + + COMMENT + SEARCH FOR UNDEFINED LABELS AND EXTERNAL PROGRAMS + WORD= T LL SSSS LINK LL= LENGTH OF IDENTIFIER + T=2 FOR A NUMERIC LABLE + SSSS = V TR ASIGN 0000 + SSSS+1= (FIRST FIVE CHARACTERS OF IDENTIFIER) + SSSS+2= (NEXT FIVE CHARACTERS) + WE ARE LOOKING FOR THE CASES + (T=9, ASIGN=0) OR (V=9, T=8,9, ASIGN=0) + + 05 20 0 0910 *E LDB Z+ + 05 21 0 0911 CAD - SCRTB GET HEAD OF STACK + 05 22 0 0912 *D STA Y+ + 05 23 0 0913 DLB Y+,64,0 + 05 24 0 0914 IBB A+,9999 STACK HAS NO ENTRIES + 05 25 0 0915 BOF *+1 + 05 26 0 0916 IFL Y+,12,90 SET OVERFLOW IF + 05 27 0 0917 CAD - 1 OPERAND IS A NUMERIC LABEL + 05 28 0 0918 BSA E+,8 EXTERNAL PROGRAM + 05 29 0 0919 BFA B+,11,9 IS IT A LABEL + 05 30 0 0920 *C LDB Y+ SEQUENCE DOWN STACK + 05 31 0 0921 LDR +34353600 + 05 32 0 0922 STR CNST8,08 + 05 33 0 0923 CAD - 0 + 05 34 0 0924 DBB D-,1000 IF LINK IS LESS THAN 1000 + 05 35 0 0925 *A DFL Z+,02,1 SKIP TO NEXT STACK + 05 36 0 0926 BRP E- + 05 37 0 0927 BUN OUT END OF SCRAMBLE TABLE + 05 38 0 0928 *B BFA *+2,64,0 HAS LABEL BEEN ASSIGNED + 05 39 0 0929 BUN C- + 05 40 0 0930 DFL Y+,22,11 SET REPEAT IF IDENTIFIER + 05 41 0 0931 CAD - 2 IS LONGER THAN 5 CHARACTERS + 05 42 0 0932 LDR - 3 + 5 43 0 0933 LSA 3 + 05 44 0 0934 BRP *+2 + 05 45 0 0935 CLR + 05 46 0 0936 BOF NMBRL NUMERIC LABEL + 05 47 0 0937 STA DICT+35 + 05 48 0 0938 STR DICT+36 + 05 49 0 0939 PRNT STP WEMX + 05 50 0 0940 BUN WEM + 05 51 0 0941 CNST8 CNST 33234353600 UNDIFENED LABEL (EXT PROGRAM) L + 05 52 0 0942 BUN C- + 05 53 0 0943 *E BOF *+1 + 05 54 0 0944 BFA *+3,11,8 + 05 55 0 0945 BFA B-+2,12,89 + 05 56 0 0946 BUN C- + 05 57 0 0947 LDR +10123536 + 05 58 0 0948 STR CNST8,08 + 05 59 0 0949 BUN B- + + + 05 62 0 0950 NMBRL LSA 0 CONVERT INTEGER + 05 63 0 0951 SRT 10 TO ALFANUMERIC CODE + 05 64 0 0952 *B SLT 1 + 05 65 0 0953 ADD +80 + 05 66 0 0954 BFA A+,11,8 + 05 67 0 0955 SLA 1 + 05 68 0 0956 BUN B- + 05 69 0 0957 *A STA DICT+35 + 05 70 0 0958 IFL DICT+35,12,30 + 05 71 0 0959 CLA + 05 72 0 0960 *B SLT 1 + 05 73 0 0961 ADD +80 + 05 74 0 0962 BFA A+,11,8 + 05 75 0 0963 SLA 1 + 05 76 0 0964 BUN B- + 05 77 0 0965 *A STA DICT+36 + 05 78 0 0966 BUN PRNT + 05 79 0 0967 *Y HLT 0 PRESENT OPERAND + 05 80 0 0968 *Z HLT 99 STACK COUNT + + + 05 83 0 0969 OUT CAD LCHOD + 05 84 0 0970 CFA LCMAX,64 + 05 85 0 0971 BCH *+2 + 05 86 0 0972 CAD LCMAX + 05 87 0 0973 SUB +10000 + 05 88 0 0974 SRT 8 + 05 89 0 0975 BOF *+1 + 05 90 0 0976 *B CLA 300 + 05 91 0 0977 *C ADD +8 + 05 92 0 0978 SLT 1 + 05 93 0 0979 SLA 1 + 05 94 0 0980 DFL B-,81,1 + 05 95 0 0981 BRP C- + 05 96 0 0982 SLA 1 + 05 97 0 0983 STA DICT+35 + 05 98 0 0984 CAD VARB SET UP CONSTANTS + 05 99 0 0985 ADD +1 IN ALFANUMERIC FORMAT + 06 00 0 0986 BPA *+2 + 06 01 0 0987 CLA + 06 02 0 0988 SRT 4 + 06 03 0 0989 *C CLA 3 + 6 04 0 0990 *B ADD +8 + 06 05 0 0991 SLT 1 + 06 06 0 0992 SLA 1 + 06 07 0 0993 DFL C-,01,1 + 06 08 0 0994 BRP B- + 06 09 0 0995 SLA 1 IF NOT PCS(4) + 06 10 0 0996 STA DICT+36 PRINT MESSAGES + 06 11 0 0997 BCS A+,4 + 06 12 0 0998 CAD DICT+36 + 06 13 0 0999 CFA DICT+35,88 + 06 14 0 1000 BCH *+4 + 06 15 0 1001 STP WEMX + 06 16 0 1002 BUN WEM + 06 17 0 1003 CNST 36866707147 + 06 18 0 1004 STP WEMX + 06 19 0 1005 BUN WEM+2 + 06 20 0 1006 CNST 34547495036 COMPILED PROGRAM ENDS AT XXXX + 06 21 0 1007 STP WEMX + 06 22 0 1008 BUN WEM+2 + 06 23 0 1009 CNST 34751535037 PROGRAM VARIABLES START AT XXXX + 06 24 0 1010 *A LDB DUMBS + 06 25 0 1011 DBB MONST,1 GO GENERATE SYMBOLIC DUMP + + + + 06 29 0 1012 LDBG CAD HALT + 06 30 0 1013 BFA *+4,31,5 + 06 31 0 1014 STP 4 9898,0916 + 06 32 0 1015 BUN 4 9898,IFERR + 06 33 0 1016 BUN *+4 + 06 34 0 1017 BCS *+3,4 + 06 35 0 1018 STP 4 9898,0916 +006 36 0 1019 BUN 4 9898,ZERSS + 06 37 0 + 06 38 0 1020 AGAIN DLB FIXUP,44,0 THE FIXUP STACK CONTAINS THE + 06 39 0 1021 STP REMX FIX-UPS FOR CALLS OF EXTERNAL PROGRAMS + 06 40 0 1022 BUN REM FROM WITHIN SEGMENTS + 06 41 0 1023 XT001 BUN S+ STACK EMPTY + 06 42 0 1024 LDR +POST A REWIND + 06 43 0 1025 STR XT001,04 WILL BE NECESSARY + 06 44 0 1026 STA HOLD + 06 45 0 1027 DLB HOLD,64,0 + 06 46 0 1028 CAD - 0 + 06 47 0 1029 STA HOLD + 06 48 0 1030 SRA 8 + 06 49 0 1031 SLA 4 + 06 50 0 1032 STA THROW + 06 51 0 1033 CLB + 06 52 0 1034 MTS MTS 4 THROW,OT SEARCH FOR PROPER SEGMENT + 06 53 0 1035 MRD 4 100,OT,1 + 06 54 0 1036 CFA 100,00 + 06 55 0 1037 BCE RDT+1 + 06 56 0 1038 SPO SRERR,3 + 06 57 0 1039 F424 9669,0,9669 + 06 58 0 1040 BUN MTS TRY AGAIN + + 06 60 0 1041 RDT MRD 4 100,OT,1 + 06 61 0 1042 CLA 100 + 06 62 0 1043 LBC *-1 + 06 63 0 1044 *A ADD - 200 + 06 64 0 1045 ADD - 201 + 06 65 0 1046 ADD - 202 + 06 66 0 1047 ADD - 203 + 06 67 0 1048 ADD - 204 + 06 68 0 1049 IBB A-,5 CHECK SUM BLOCK + 06 69 0 1050 BOF *+1 diff --git a/software/BALGOL/README.txt b/software/BALGOL/README.txt index 43eb9ff..7a54d0b 100644 --- a/software/BALGOL/README.txt +++ b/software/BALGOL/README.txt @@ -14,5 +14,18 @@ BALGOL-Main.baca PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf. This transcription reflects the corrections hand-coded on the listing. +BALGOL-Main-card + Card-image input deck of BALGOL-Main.baca prepared for input to the + tools/BAC-Assembler script. + +BALGOL-Overlay.baca + Assembly listing of teh BALGOL compiler overlay module, transcribed + by Paul Kimpel from + http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/ + PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf. + This transcription reflects the corrections hand-coded on the listing. + [work in progress] +Paul Kimpel +December 2016 diff --git a/software/tools/BAC-Assembler.html b/software/tools/BAC-Assembler.html index 51bd6fb..5f1bdb8 100644 --- a/software/tools/BAC-Assembler.html +++ b/software/tools/BAC-Assembler.html @@ -804,10 +804,6 @@ window.addEventListener("load", function() { } } - while (count < 5) { // pad out final word with spaces - appendCode(0); - } - if (x >= length) { printError("$-STRING NOT TERMINATED"); } else { @@ -824,6 +820,10 @@ window.addEventListener("load", function() { } } + while (count < 5) { // pad out final word with spaces + appendCode(0); + } + values.push(word); // push out final word if (singleWord && values.length > 1) { printError("STRING OCCUPIES MORE THAN ONE WORD"); @@ -918,7 +918,8 @@ window.addEventListener("load", function() { token.newOffset = x; break; - case (c == "+" || c == "-"): // parse pool constant + case (c == "+"): // parse pool numeric constant + case (c == "-"): raw = c; if (++x >= length) { printError("INVALID POOL CONSTANT SYNTAX"); @@ -932,9 +933,6 @@ window.addEventListener("load", function() { printError("POOL CONSTANT LONGER THAN 10 DIGITS: " + token.text); } token.text = raw + padLeft(token.text, 10, "0"); - } else if (c == "$") { - parseString(text, token, true); - token.text = "$" + token.text.substring(0, 5); } else if (c == " " || c == ",") { printError("EMPTY POOL CONSTANT"); } else { @@ -946,6 +944,12 @@ window.addEventListener("load", function() { token.type = 6; break; + case (c == "$"): // parse pool string constant + parseString(text, token, true); + token.text = "$" + token.text.substring(0, 5); + token.type = 6; + break; + case (c == " "): // empty primary token.type = 0; token.newOffset = x; @@ -1208,7 +1212,7 @@ window.addEventListener("load", function() { if (values.length < 1) { printError("OPERAND ADDRESS REQUIRED"); } else if (values[0] >= 0) { - location = thisLoc = values[0]; + location = values[0]; } break; case pseudoCNST: