ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:06 2020 Source File: \kforph08.asm 1 | *************************************************** K0800000 2 | * * K0800010 3 | *STATUS - VERSION 2, MODIFICATION 12 * K0800020 4 | * * K0800030 5 | *FUNCTION/OPERATION- * K0800040 6 | * * CHECKS VARIABLE NAMES FOUND IN STATEMENT * K0800050 7 | * STRING FOR VALIDITY. * K0800060 8 | * * ADDS VALID VARIABLES TO THE SYMBOL TABLE * K0800070 9 | * * ENSURES THAT ALL VARIABLE NAMES CONFORM TO * K0800080 10 | * THE IMPLICIT OR EXPLICIT MODE SPECIFICATIONS* K0800090 11 | * (REAL OR INTEGER). * K0800100 12 | * * ADDS UNIQUE INTEGER CONSTANTS TO THE SYMBOL * K0800110 13 | * TABLE. * K0800120 14 | * * REPLACES NAMES AND CONSTANTS IN THE STMNT * K0800130 15 | * STRING BY POINTERS TO THEIR RESPECTIVE * K0800140 16 | * SYMBOL TABLE ENTRIES. * K0800150 17 | * * REPLACES INTERNAL STATEMENT NUMBERS BY * K0800160 18 | * POINTERS TO CORRESPONDING SYMBOL TABLE * K0800170 19 | * ENTRIES. * K0800180 20 | * * PLACES PARAMETERS FROM STATEMENT FUNCTION * K0800190 21 | * STATEMENTS INTO THE SYMBOL TABLE. * K0800200 22 | * * CONVERTS THE LEFT PARENTHESIS OF SUBSCRIPTS * K0800210 23 | * TO A SPECIAL DIMENSION INDICATOR * K0800220 24 | * * REPLACES OPERATORS WITH POINTERS TO THE * K0800230 25 | * SCAN-FORCING TABLE. * K0800240 26 | * * K0800250 27 | *ENTRY POINTS- * K0800260 28 | * * ORIGIN-PHASE 8 IS READ INTO CORE BY THE ROL * K0800270 29 | * PROGRAM AND EXECUTION BEGINS AT THIS ADDRESS* K0800280 30 | * * K0800290 31 | *INPUT- * K0800300 32 | * * THE STATEMENT STRING FROM PREVIOUS PHASES * K0800310 33 | * * THE SYMBOL TABLE FROM PREVIOUS PHASES * K0800320 34 | * * DCOM * K0800330 35 | * * K0800340 36 | *OUTPUT- * K0800350 37 | * * THE STATEMENT STRING AS MODIFIED BY THIS PHS* K0800360 38 | * * THE SYMBOL TABLE AS MODIFIED BY THIS PHASE * K0800370 39 | * * DCOM * K0800380 40 | * * K0800390 41 | *EXTERNAL REFERENCES- * K0800400 42 | * SUBROUTINES- * K0800410 43 | * * ROL * K0800420 44 | * COMMA/DCOM * K0800430 45 | * * $PHSE * K0800440 46 | * * K0800450 47 | *EXITS * K0800460 48 | * NORMAL-PHASE EXITS VIA THE ROL SUBROUTINE * K0800470 49 | * * K0800480 50 | * ERROR * K0800490 51 | * * OVERLAP ERROR CAUSES NEXT PHASE TO BE * K0800500 52 | * LOADED WITHOUT PROCESSING. * K0800510 53 | * * COMPILATION ERRORS DETECTED BY THIS PHASE* K0800520 54 | * * ARE 7, 24, 25, 26, 41 AND 43. * K0800530 55 | * * K0800540 56 | *TABLES/WORK AREAS-N/A * K0800550 57 | * * K0800560 58 | *ATTRIBUTES- NONE. K0800570 59 | * * K0800580 60 | *NOTES- THE SWITCHES USED IN PHASE 8 FOLLOW. IF K0800590 61 | * NON-ZERO, THE SWITCH IS TRANSFER=T. IF ZERO, K0800600 62 | * THE SWITCH IS NORMAL=N. K0800610 63 | * SW1 - GOTO STATEMENT K0800620 64 | * T=GOTO STATEMENT K0800630 65 | * SW2 - IF STATEMENT K0800640 66 | * T= IF STATEMENT K0800650 67 | * SW3 - POSSIBLE ASF K0800660 68 | * N0POSSIBLE ASF K0800670 69 | * SW4 - READ OR WRITE STMNT K0800680 70 | * T=READ OR WRITE STMNT K0800690 71 | * SW5 - PACK STRING BY CNT K0800700 72 | * T=PACK STRING K0800710 73 | * SW6 - ASF NAME TABLE K0800720 74 | * T=PUT NAMES IN ASF TABLE K0800730 75 | * SW7 - ASF NAME TABLE K0800740 76 | * T=CHECK NAMES IN ASF TABLE K0800750 77 | * SW8 - ASF STMNT K0800760 78 | * T=ASF STMNT K0800770 79 | * SW9 - PHASING SWITCH K0800780 80 | * N=PHASING SWITCH K0800790 81 | * SW10- TWO-WORD NAME K0800800 82 | * T=TWO-WORD NAME K0800810 83 | * K0800820 84 | *************************************************** K0800830 1130 FORTRAN COMPILER PHASE 8 86 | ABS K0800850 87 | * K0800860 88 | * SYSTEM EQUATES K0800870 89 | * K0800880 8000 90 | MEMRY EQU /8000 CORE SIZE K0800890 7A23 91 | OVERL EQU MEMRY-1501 PHASE OVERLAY AREA START K0800900 7FBC 92 | ROL EQU MEMRY-68 LOC OF RTN TO READ NEXT PH K0800910 0078 93 | $PHSE EQU /78 NO. OF PHASE NOW IN CORE K0800920 0004 94 | PHLEN EQU 4 NO. OF SECTORS THIS PHASE K0800925 7A23 95 | ORG OVERL K0800930 0026 96 | PHID EQU 38 ID NUMBER THIS PHASE K0800940 97 | * K0800950 98 | * FORTRAN COMMUNICATION AREA K0800960 7A23 99 | ORG BSS 1 ORIGIN ADDRESS 2-4 K0800965 7A24 100 | SOFS BSS 1 START OF STRING K0800970 7A25 101 | EOFS BSS 1 END OF STRING K0800980 7A26 102 | SOFST BSS 1 START OF SYMBOL TABLE K0800990 7A27 103 | SOFNS BSS 1 START OF NON-STATEMENT NUMBERS K0801000 7A28 104 | SOFXT BSS 1 START OF SUBSCRIPT TEMPORARIES K0801010 7A29 105 | SOFGT BSS 1 START OF GENERATED TEMPORARIES K0801020 7A2A 106 | EOFST BSS 1 END OF SYMBOL TABLE K0801030 7A2B 107 | COMON BSS 1 NEXT AVAILABLE COMMON K0801040 7A2C 108 | CSIZE BSS 1 SIZE OF COMMON K0801050 7A2D 109 | ERROR BSS 1 OVERLAP ERROR K0801060 7A2E 110 | FNAME BSS 2 PROGRAM NAME K0801070 7A30 111 | SORF BSS 1 SUBROUTINE(-) OR FUNCTION(+) K0801080 7A31 112 | CCWD BSS 1 CONTROL CARD WORD K0801090 113 | * BIT 15 TRANSFER TRACE K0801100 114 | * BIT 14 ARITHMETIC TRACE K0801110 115 | * BIT 13 EXTENDED PRECISION K0801120 116 | * BIT 12 LIST SYMBOL TABLE K0801130 117 | * BIT 11 LIST SUBPROGRAM NAMES K0801140 118 | * BIT 10 LIST SOURCE PROGRAM K0801150 119 | * BIT 9 ONE WORD INTEGERS K0801160 120 | * BIT 8 ORIGIN 2-4 K0801170 121 | * K0801180 7A32 122 | IOCS BSS 1 IOCS CONTROL CARD WORD K0801190 123 | * BIT 15 CARD K0801200 124 | * BIT 14 PAPER TAPE K0801210 125 | * BIT 13 TYPEWRITER K0801220 126 | * BIT 12 1443 PRINTER K0801230 127 | * BIT 11 MAGNETIC TAPE K0801240 128 | * BIT 10 KEYBOARD K0801250 129 | * BIT 8 DISK K0801260 130 | * BIT 3 PLOTTER K0801270 131 | * BIT 1 UNFORMATTED DISK K0801280 7A33 132 | DFCNT BSS 1 FILE TABLE LENGTH IN WORDS K0801290 133 | * K0801300 134 | * K0801310 135 | * K0801320 136 | * END OF FORTRAN COMMUNICATION K0801330 137 | * AREA K0801340 138 | * K0801350 7A36 139 | BPHAR EQU *+2 BEGINNING ADDR PHASE AREA K0801360 7A34 0000 140 | DC 0 LOADER WORK AREA K0801370 7A35 FFDA 141 | DC -38 -PHASE ID FOR SLET LOOKUP K0801380 7A36 000E 142 | DC NXTPH-*+1 TABLE FOR NEXT PHASE ENTRY K0801390 7A37 0001 143 | DC 1 ONE ENTRY TO BE SET BY LDR K0801400 7A36 144 | ORG *-2 K0801410 145 | * K0801420 146 | * INITIALIZE PHASE K0801430 147 | * K0801440 7A36 6126 148 | ORGIN LDX 1 PHID GET ID THIS PHASE K0801450 7A37 6D00 0078 149 | STX L1 $PHSE STORE IN SYSTEM PHASE AREA K0801460 7A39 6580 7A24 150 | LDX I1 SOFS START OF STRING ADDRESS K0801470 7A3B C0F1 151 | LD ERROR OVERLAP ERROR INDICATOR K0801480 7A3C 4C18 7A5A 152 | BSC L CV1,+- BR TO INITIALIZE STMNT SCAN K0801490 153 | * K0801500 154 | * READ IN NEXT PHASE AND EXECUTE K0801510 155 | * K0801520 7A3E 6580 7A45 156 | WAIT LDX I1 NXTPH+1 LOAD PARAM FOR READING K0801530 7A40 C805 157 | LDD NXTPH+2 NEXT PHASE K0801540 7A41 4C00 7FBC 158 | BSC L ROL GO TO READ NEXT PHASE K0801550 7A44 159 | BSS E 0 K0801560 7A44 0027 160 | NXTPH DC 39 ID OF NEXT PHASE K0801570 7A45 161 | BSS 3 LOADER TABLE FOR NEXT PHS K0801580 162 | * K0801590 163 | * CONSTANTS K0801600 164 | * K0801610 7A48 0002 165 | ENDC DC /02 END STMNT CONSTANT K0801620 7A49 0019 166 | FIOC DC /1B-/02 FIO STMNT CONSTANT K0801630 7A4A FFFB 167 | CONTC DC /16-/1B CONTINUE STMNT CONSTANT K0801640 7A4B FFF6 168 | FORC DC /0C-/16 FORMAT STMNT CONSTANT K0801650 7A4C 0009 169 | EQUC DC /15-/0C EQUIVALENCE STMNT CONSTANT K0801660 7A4D FFFF 170 | ERRCN DC /14-/15 ERROR STMNT CONSTANT K0801670 7A4E 0008 171 | CLINK DC /1C-/14 CALL LINK STMNT CONSTANT K0801680 7A4F 0002 172 | DFILE DC /1E-/1C DEFINE FILE STMNT CONSTANT K0801690 7A50 0001 173 | DATAS DC /1F-/1E DATA STMNT CONSTANT K0801700 174 | * K0801710 175 | * MOVE TO NEXT STATEMENT K0801720 176 | * K0801730 7A51 6500 0000 177 | MOVE LDX L1 *-* ADDR OF CURRENT STMNT ID WD K0801740 7A52 178 | IDSV1 EQU *-1 LABEL ADDR LAST INSTRUCTION K0801750 7A53 C100 179 | LD 1 0 CURRENT STMNT ID WORD K0801760 7A54 E400 7B62 180 | AND L S07FC EXTRACT STMNT WD COUNT K0801770 7A56 1802 181 | SRA 2 RIGHT JUSTIFY K0801780 7A57 D001 182 | STO *+1 K0801790 7A58 7500 0000 183 | MDX L1 *-* INCR TO NEXT STMNT ID WORD K0801800 184 | * K0801810 185 | * INITIALIZE TO SCAN BODY OF STATEMENT K0801820 186 | * K0801830 7A5A 69F7 187 | CV1 STX 1 IDSV1 SAVE ADDR OF STMNT ID WORD K0801840 7A5B 6700 7D64 188 | LDX L3 ASFT ARITH STMNT FUNC TBL ADDR K0801850 7A5D 6F00 7D85 189 | STX L3 ASFNT SAVE ADDRESS NAME TABLE K0801860 7A5F 1010 190 | SLA 16 CLEAR ACC K0801870 7A60 D400 7B4D 191 | STO L SW1 RESET SWITCH 1 K0801880 7A62 D400 7B4E 192 | STO L SW2 RESET SWITCH 2 K0801890 7A64 D400 7B50 193 | STO L SW4 RESET SWITCH 4 K0801900 7A66 D400 7B51 194 | STO L SW5 RESET SWITCH 5 K0801910 7A68 D400 7B52 195 | STO L SW6 RESET SWITCH 6 K0801920 7A6A D400 7B53 196 | STO L SW7 RESET SWITCH 7 K0801930 7A6C D400 7B54 197 | STO L SW8 RESET SWITCH 8 K0801940 7A6E D400 7B55 198 | STO L SW9 RESET SWITCH 9 K0801950 7A70 D400 7B56 199 | STO L SW10 RESET SWITCH 10 K0801960 7A72 D400 7B61 200 | STO L CNT STMNT WORD COUNT TEMPORARY K0801970 7A74 D400 7D61 201 | STO L PAR LEFT PARENTHESIS SWITCH K0801980 7A76 C100 202 | LD 1 0 STMNT ID WORD K0801990 7A77 4804 203 | BSC E SKIP IF STMNT NOT NUMBERED K0802000 7A78 7101 204 | MDX 1 1 INCR STMNT POINTER K0802010 7A79 7101 205 | MDX 1 1 INCR STMNT POINTER K0802020 206 | * K0802030 207 | * CHECK STATEMENT TYPE K0802040 208 | * K0802050 7A7A C480 7A52 209 | LD I IDSV1 STMNT ID WORD K0802060 7A7C 180B 210 | SRA 11 POSITION TO TEST STMNT TYPE K0802070 7A7D 90CA 211 | S ENDC END STMNT CONSTANT K0802080 7A7E 4C18 7A3E 212 | BSC L WAIT,+- BR TO RD NEXT PH IF END K0802090 7A80 90C8 213 | S FIOC FIO STMNT CONSTANT K0802100 7A81 4C18 7A51 214 | BSC L MOVE,+- BR IF FIO STMNT K0802110 7A83 90C6 215 | S CONTC CONTINUE STMNT CONSTANT K0802120 7A84 4C18 7AEB 216 | BSC L CV0,+- BR IF CONTINUE STMNT K0802130 7A86 90C4 217 | S FORC FORMAT STMNT CONSTANT K0802140 7A87 4C18 7A51 218 | BSC L MOVE,+- BR IF FORMAT STMNT K0802150 7A89 90C2 219 | S EQUC EQUIVALENCE STMNT CONSTANT K0802160 7A8A 4C18 7AD6 220 | BSC L CV5,+- BR IF EQUIVALENCE STMNT K0802170 7A8C 90C0 221 | S ERRCN ERROR STMNT CONSTANT K0802180 7A8D 4C18 7A51 222 | BSC L MOVE,+- BR IF ERROR STMNT K0802190 7A8F 90BE 223 | S CLINK CALL LINK STMNT CONSTANT K0802200 7A90 4C18 7A51 224 | BSC L MOVE,-+ BR IF CALL LINK STMNT K0802210 7A92 90BC 225 | S DFILE DEFINE FILE CONSTANT K0802220 7A93 4C18 7A51 226 | BSC L MOVE,-+ BR IF DEFINE FILE STMNT K0802230 7A95 90BA 227 | S DATAS DATA STMNT CONSTANT K0802240 7A96 4C18 7A51 228 | BSC L MOVE,+- BR IF DATA STMNT K0802250 7A98 C400 7B4F 229 | LD L SW3 ARITH STMNT FUNC SWITCH K0802260 7A9A 4C20 7AA3 230 | BSC L CV2,Z BR ASF STMNT NOT POSSIBLE K0802270 7A9C C480 7A52 231 | LD I IDSV1 STMNT ID WORD K0802280 7A9E 180B 232 | SRA 11 RIGHT JUSTIFY STMNT TYPE K0802290 7A9F 4C18 7AD6 233 | BSC L CV5,+- BF IF ARITHMETIC STMNT K0802300 7AA1 6C00 7B4F 234 | STX L0 SW3 SET SW3 NON-ARITH STMNT K0802310 7AA3 C480 7A52 235 | CV2 LD I IDSV1 STMNT ID WORD K0802320 7AA5 180B 236 | SRA 11 RIGHT JUSTIFY STMNT TYPE K0802330 7AA6 9400 7B5A 237 | S L GOTOC GO TO STMNT CONSTANT K0802340 7AA8 4C20 7AB6 238 | BSC L CV3,Z BR IF NOT GOTO STMNT K0802350 7AAA 632B 239 | LDX 3 43 K0802360 7AAB 6F00 7BA0 240 | STX L3 ERNO SET UP ERROR 43 K0802370 7AAD C100 241 | LD 1 0 LD NEXT WORD OF STMNT K0802380 7AAE 9400 7C57 242 | S L LPAR LEFT PARENTHESIS CONSTANT K0802390 7AB0 4C20 7CC0 243 | BSC L CV25A,Z BR IF NOT LEFT PARENTHESIS K0802400 7AB2 6C00 7B4D 244 | STX L0 SW1 SET SWITCH 1 FOR GOTO STMNT K0802410 7AB4 4C00 7AE0 245 | BSC L CV5A BR TO CHECK FOR OPERATOR K0802420 7AB6 9400 7B5B 246 | CV3 S L DOC DO STMNT CONSTANT K0802430 7AB8 4C20 7ABF 247 | BSC L CV3A,Z BR NOT DO STMNT K0802440 7ABA 632B 248 | LDX 3 43 K0802450 7ABB 6F00 7BA0 249 | STX L3 ERNO SET UP ERROR 43 K0802460 7ABD 4C00 7CC0 250 | BSC L CV25A BR TO CHK STMNT NUMBER OK K0802470 7ABF 9400 7B5C 251 | CV3A S L IFC IF STMNT CONSTANT K0802480 7AC1 4C20 7AC9 252 | BSC L CV4,Z BR IF NOT IF STMNT K0802490 7AC3 632B 253 | LDX 3 43 K0802500 7AC4 6F00 7BA0 254 | STX L3 ERNO SET UP ERROR 43 K0802510 7AC6 6C00 7B4E 255 | STX L0 SW2 SET SW2 =IF STMNT K0802520 7AC8 700D 256 | MDX CV5 BR TO CHK GOTO STMNT SWITCH K0802530 7AC9 9400 7B5D 257 | CV4 S L RDC READ STMNT CONSTANT K0802540 7ACB 4C18 7AD1 258 | BSC L *+4,+- BR TO SET SW4 IF READ K0802550 7ACD 9400 7B5E 259 | S L WTC WRITE STMNT CONSTANT K0802560 7ACF 4C20 7AD6 260 | BSC L CV5,Z BR IF NOT WRITE STMNT K0802570 7AD1 6C00 7B50 261 | STX L0 SW4 SET SW4=READ OR WRITE STMNT K0802580 7AD3 632E 262 | LDX 3 46 INDEX REG 3 = 46 K0802590 7AD4 6F00 7BA0 263 | STX L3 ERNO SET UP ERROR 46 K0802600 7AD6 C400 7B4D 264 | CV5 LD L SW1 SWITCH 1 K0802610 7AD8 4C20 7D08 265 | BSC L CV26,Z BR IF .GOTO. STMNT K0802620 7ADA C073 266 | LD SW2 SWITCH 2 K0802630 7ADB 4C20 7D24 267 | BSC L CV29,Z BR IF .IF. STMNT K0802640 7ADD C072 268 | LD SW4 SWITCH 4 K0802650 7ADE 4C20 7D35 269 | BSC L CV31,Z BR IF RD OR WRT STMNT K0802660 270 | * K0802670 271 | * CHECK FOR OPERATOR K0802680 272 | * K0802690 7AE0 C100 273 | CV5A LD 1 0 NEXT STMNT WD K0802700 7AE1 4C28 7BA4 274 | BSC L CV11,+Z BR IF NOT OPERATOR K0802710 7AE3 C100 275 | CV5B LD 1 0 NEXT STMNT WD K0802720 7AE4 9400 7B5F 276 | S L SEMIC SEMICOLON CONSTANT K0802730 7AE6 4C20 7B41 277 | BSC L CV6,Z BR IF NOT SEMICOLON K0802740 7AE8 1010 278 | CV5C SLA 16 CLEAR ACCUMULATOR K0802750 7AE9 D100 279 | STO 1 0 CONVERT SEMICOLON OPERATOR K0802760 7AEA 7101 280 | MDX 1 1 INCR STMNT POINTER K0802770 281 | * K0802780 282 | * CHECK FOR ARITHMETIC STMNT FUNCTION K0802790 283 | * K0802800 7AEB C063 284 | CV0 LD SW3 SWITCH 3 K0802810 7AEC 4C20 7B1D 285 | BSC L CV5D,Z BR ASF STMNT NOT POSSIBLE K0802820 7AEE C480 7A52 286 | LD I IDSV1 STMNT ID WORD K0802830 7AF0 180B 287 | SRA 11 RIGHT JUSTIFY STMNT TYPE K0802840 7AF1 9066 288 | S EQCOO EQUIVALENCE STMNT CONSTANT K0802850 7AF2 4C18 7B1D 289 | BSC L CV5D,+- BR IF EQUIVALENCE STMNT K0802860 7AF4 C05F 290 | LD SW8 SWITCH 8 K0802870 7AF5 4C18 7B1C 291 | BSC L CV0A,+- BR IF NOT ASF STMNT K0802880 7AF7 C480 7A52 292 | LD I IDSV1 STMNT ID WORD K0802890 7AF9 E85F 293 | OR ASFID CHANGE ID WD TO ASF TYPE K0802900 7AFA D480 7A52 294 | STO I IDSV1 RESTORE ID WORD K0802910 295 | * K0802920 296 | * CHECK FOR STMNT NUMBER K0802930 297 | * K0802940 7AFC 4804 298 | BSC E SKIP NEXT IF NO STMNT NO. K0802950 7AFD 7001 299 | MDX *+1 BR IF STMNT NUMBERED K0802960 7AFE 701E 300 | MDX CV5D BR NO STMNT NUMBER K0802970 7AFF 6919 301 | STX 1 XR1SV+1 SAVE INDEX REGISTER 1 K0802980 7B00 6580 7A52 302 | LDX I1 IDSV1 INDEX REG 1 = ADDR ID WORD K0802990 7B02 C101 303 | LD 1 1 STMNT NUMBER K0803000 7B03 1001 304 | SLA 1 SHIFT OFF INDR BIT K0803010 7B04 A05F 305 | M MT3 MINUS 3 K0803020 7B05 108F 306 | SLT 15 PRODUCT TO ACCUMULATOR K0803030 7B06 8400 7A26 307 | A L SOFST START OF SYMBOL TBL ADDRESS K0803040 7B08 905A 308 | S MT2 MINUS 4 K0803050 7B09 D002 309 | STO *+2 SET STORE ADDRESS K0803060 7B0A 1010 310 | SLA 16 CLEAR ACC K0803070 7B0B D400 0000 311 | STO L *-* ZERO SYMBOL TBL ENTRY K0803080 7B0D 6843 312 | STX SW5 SET SW5 ON-PACK STRING K0803090 7B0E C100 313 | LD 1 0 STMNT ID WORD K0803100 7B0F F047 314 | EOR AONE REMOVE STMNT NUMBER INDR K0803110 7B10 D100 315 | STO 1 0 RESTORE ID WORD K0803120 7B11 7101 316 | MDX 1 1 INCR TO NEXT STMNT WD K0803130 7B12 C101 317 | LD 1 1 REMOVE STATEMENT NUMBER K0803140 7B13 D100 318 | STO 1 0 CLOSE STMNT 1 WORD K0803150 7B14 4C20 7B11 319 | BSC L *-5,Z BR TO CONTINUE CLOSING K0803160 7B16 7401 7B61 320 | MDX L CNT,1 ADJUST STMNT WORD COUNT K0803170 7B18 6500 0000 321 | XR1SV LDX L1 *-* RESTORE INDEX REG 1 K0803180 7B1A 71FF 322 | MDX 1 -1 ADJUST STMNT POINTER K0803190 7B1B 7001 323 | MDX CV5D BR TO CHECK FOR STRING PACK K0803200 324 | * K0803210 325 | * TAG SWITCH 3 K0803220 326 | * K0803230 7B1C 6832 327 | CV0A STX 0 SW3 ASF STMNT NOT POSSIBLE K0803240 328 | * K0803250 329 | * CHECK IF STRING CLOSURE REQUIRED K0803260 330 | * K0803270 7B1D C033 331 | CV5D LD SW5 SWITCH 5 K0803280 7B1E 4C18 7A51 332 | BSC L MOVE,+- BR TO GO TO NEXT STATEMENT K0803290 7B20 6916 333 | STX 1 CX0 SAVE INDEX REGISTER 1 K0803300 7B21 C015 334 | LD CX0 CURRENT STRING POINTER K0803310 7B22 803E 335 | A CNT STMNT WORD COUNT K0803320 7B23 D007 336 | STO CX1 STORE ADDR TO MOVE FROM K0803330 7B24 C400 7A25 337 | LD L EOFS END OF STRING ADDRESS K0803340 7B26 9004 338 | S CX1 MOVE FROM ADDR K0803350 7B27 D001 339 | STO *+1 RANGE OF CLOSURE K0803360 7B28 6700 0000 340 | LDX L3 *-* INDEX REG 3 = RANGE K0803370 7B2A 6600 0000 341 | LDX L2 *-* ADDR FIRST WD TO MOVE K0803380 7B2B 342 | CX1 EQU *-1 LABEL ADDR LAST INSTRUCTION K0803390 7B2C 7301 343 | MDX 3 1 NO. OF WORDS TO MOVE K0803400 7B2D C200 344 | LD 2 0 NEXT WORD TO MOVE K0803410 7B2E D100 345 | STO 1 0 CLOSE UP STRING K0803420 7B2F 7101 346 | MDX 1 1 INCR ADDR TO MOVE TO K0803430 7B30 7201 347 | MDX 2 1 INCR ADDR TO MOVE FROM K0803440 7B31 73FF 348 | MDX 3 -1 DECR MOVE COUNTER K0803450 7B32 70FA 349 | MDX *-6 BR TO CONTINUE MOVE K0803460 7B33 71FF 350 | MDX 1 -1 ADJUST INDEX REG 1 K0803470 7B34 6D00 7A25 351 | STX L1 EOFS NEW END OF STRING ADDRESS K0803480 7B36 6500 0000 352 | LDX L1 *-* RESTORE INDEX REG 1 K0803490 7B37 353 | CX0 EQU *-1 LABEL ADDR LAST INSTRUCTION K0803500 7B38 C480 7A52 354 | LD I IDSV1 STMNT ID WORD K0803510 7B3A 1882 355 | SRT 2 RIGHT JUSTIFY STMNT NORM K0803520 7B3B 9025 356 | S CNT CORRECT STMNT WORD COUNT K0803530 7B3C 1082 357 | SLT 2 SHIFT BACK TO NORMAL FORM K0803540 7B3D D480 7A52 358 | STO I IDSV1 RESTORE CORRECTED STMNT ID K0803550 7B3F 4C00 7A51 359 | BSC L MOVE BR TO GO TO NEXT STATEMENT K0803560 360 | * K0803570 361 | * REMOVE CONSTANT OPERATOR FROM STMNT K0803580 362 | * K0803590 7B41 901E 363 | CV6 S CONC CONSTANT OPERATOR K0803600 7B42 4C20 7B65 364 | BSC L CV8,Z BR IF NOT CONSTANT OPERATOR K0803610 7B44 71FF 365 | MDX 1 -1 ADJUST TO REMOVE OPERATOR K0803620 7B45 4400 7DE0 366 | BSI L SXB1 BR TO CLOSE STMNT ONE WORD K0803630 7B47 7101 367 | MDX 1 1 MOVE STMNT POINTER K0803640 7B48 6808 368 | STX 0 SW5 SET SW5 TO CLOSE STRING K0803650 7B49 7401 7B61 369 | MDX L CNT,1 ADJUST STMNT WORD COUNT K0803660 7B4B 7101 370 | CV7 MDX 1 1 INCR STMNT POINTER K0803670 7B4C 7089 371 | MDX CV5 BR TO TEST SWITCH 1 K0803680 372 | * K0803690 373 | * CONSTANTS AND WORK AREA K0803700 374 | * K0803710 7B4D 0000 375 | SW1 DC 0 GOTO STMNT SWITCH K0803720 7B4E 0000 376 | SW2 DC 0 IF STMNT SWITCH K0803730 7B4F 0000 377 | SW3 DC 0 POSSIBLE ASF STMNT SWITCH K0803740 7B50 0000 378 | SW4 DC 0 READ OR WRITE STMNT SWITCH K0803750 7B51 0000 379 | SW5 DC 0 CLOSE STRING SWITCH K0803760 7B52 0000 380 | SW6 DC 0 ASF NAME TABLE PUT SWITCH K0803770 7B53 0000 381 | SW7 DC 0 ASF NAME TABLE CHECK SWITCH K0803780 7B54 0000 382 | SW8 DC 0 ARITH STMNT FUNCTION SWITCH K0803790 7B55 0000 383 | SW9 DC 0 PHASING SWITCH K0803800 7B56 0000 384 | SW10 DC 0 TWO WORD NAME SWITCH K0803810 7B57 0001 385 | AONE DC 1 STMNT NO. EXTRACT MASK K0803820 7B58 0015 386 | EQCOO DC /15 EQUIVALENCE STMNT CONSTANT K0803830 7B59 D000 387 | ASFID DC /D000 ARITH STMNT FUNC ID CON K0803840 7B5A 000E 388 | GOTOC DC /0E GOTO STMNT CONSTANT K0803850 7B5B FFFD 389 | DOC DC /0B-/0E DO STMNT CONSTANT K0803860 7B5C 0004 390 | IFC DC /0F-/0B IF STMNT CONSTANT K0803870 7B5D 0003 391 | RDC DC /12-/0F EAD STMNT CONSTANT K0803880 7B5E FFFF 392 | WTC DC /11-/12 WRITE STMNT CONSTANT K0803890 7B5F 001E 393 | SEMIC DC /1E SEMICOLON CONSTANT K0803900 7B60 0040 394 | CONC DC /5E-/1E CONSTANT OPERATOR CONSTANT K0803910 7B61 0000 395 | CNT DC 0 STMNT WORD COUNT TEMPORARY K0803920 7B62 07FC 396 | S07FC DC /07FC STMNT NORM EXTRACT MASK K0803930 7B63 FFFC 397 | MT2 DC -4 STMNT NO. CONVERSION CON K0803940 7B64 FFFD 398 | MT3 DC -3 STMNT NO. CONVERSION CON K0803950 399 | * K0803960 400 | * CHECK FOR OPERATOR AND CONVERT K0803970 401 | * K0803980 7B65 C0EE 402 | CV8 LD SW8 ASF STMNT SWITCH K0803990 7B66 4C18 7D56 403 | BSC L CV33,+- BR IF NOT ASF K0804000 7B68 C0EC 404 | LD SW9 PHASING SWITCH K0804010 7B69 4C18 7B7A 405 | BSC L CV10,+- BR NOT SET ON K0804020 7B6B C100 406 | LD 1 0 NEXT STMNT WORD K0804030 7B6C 9400 7C57 407 | S L LPAR LEFT PARENTHESIS CONSTANT K0804040 7B6E 4C20 7B72 408 | BSC L CV9,Z BR IF NOT LEFT PARENTHESIS K0804050 7B70 68E1 409 | STX 0 SW6 SET SW6 TO T CONDITION K0804060 7B71 7008 410 | MDX CV10 BR TO CONVERT OPERATOR K0804070 7B72 C100 411 | CV9 LD 1 0 NEXT STMNT WORD K0804080 7B73 9400 7C59 412 | S L RPAR RIGHT PARENTHESIS CONSTANT K0804090 7B75 4C20 7B7A 413 | BSC L CV10,Z BR IF NOT RIGHT PARENTHESIS K0804100 7B77 D0DD 414 | STO SW9 RESET PHASING SWITCH K0804110 7B78 D0D9 415 | STO SW6 RESET ASF NAME TBL PUT SW K0804120 7B79 68D9 416 | STX 0 SW7 SET ASF NAME TBL CHECK SW K0804130 417 | * K0804140 418 | * CONVERT OPERATOR TO SCAN-FORCING CODE K0804150 419 | * K0804160 7B7A 6700 7B97 420 | CV10 LDX L3 TABLE TABLE ADDRESS K0804170 7B7C 6205 421 | LDX 2 QX2-TABLE INITIALIZE COUNTER K0804180 7B7D C01F 422 | LD INST1 MDX INSTRUCTION K0804190 7B7E D00B 423 | STO INST INITIALIZE ODD K0804200 7B7F C100 424 | LD 1 0 OPERATOR K0804210 7B80 4C04 7B85 425 | BSC L CUD,E BR IF ODD K0804220 7B82 C01B 426 | LD INST2 MDX INSTRUCTION K0804230 7B83 D006 427 | STO INST INITIALIZE EVEN K0804240 7B84 6206 428 | LDX 2 TABLE-QX1 INITIALIZE COUNTER K0804250 7B85 C300 429 | CUD LD 3 0 TABLE ENTRY K0804260 7B86 E01C 430 | AND SFF EXTRACT OPERATOR K0804270 7B87 9100 431 | S 1 0 COMPARE WITH OPERATOR K0804280 7B88 4C18 7B8D 432 | BSC L OZ,+- BR IF OPERATOR FOUND K0804290 7B8A 1000 433 | INST NOP INCR OR DECR TABLE ADDRESS K0804300 7B8B 72FF 434 | MDX 2 -1 DECR COUNTER K0804310 7B8C 70F8 435 | MDX CUD BR TO CONTINUE SEARCH K0804320 7B8D C300 436 | OZ LD 3 0 TABLE ENTRY K0804330 7B8E 1808 437 | SRA 8 RIGHT JUSTIFY FORCING CODE K0804340 7B8F D100 438 | STO 1 0 REPLACE OPERATOR K0804350 7B90 70BA 439 | MDX CV7 BR TO MOVE STMNT POINTER K0804360 440 | * K0804370 441 | * TABLE TO CONVERT OPERATORS K0804380 442 | * K0804390 7B91 3000 443 | QX1 DC /3000 NOP K0804400 7B92 323A 444 | DC /323A COLON K0804410 7B93 0E3E 445 | DC /0E3E = K0804420 7B94 0C1C 446 | DC /0C1C * K0804430 7B95 0620 447 | DC /0620 - K0804440 7B96 040E 448 | DC /040E + K0804450 7B97 021D 449 | TABLE DC /021D ) K0804460 7B98 100D 450 | DC /100D ( K0804470 7B99 122B 451 | DC /122B , K0804480 7B9A 0821 452 | DC /0821 / K0804490 7B9B 423D 453 | DC /423D QUOTE (APOSTROPHE) K0804500 7B9C 3000 454 | QX2 DC /3000 NOP K0804510 455 | * K0804520 456 | * CONSTANTS AND WORK AREA K0804530 457 | * K0804540 7B9D 7301 458 | INST1 MDX 3 1 INCR TABLE ADDR INSTRUCTION K0804550 7B9E 73FF 459 | INST2 MDX 3 -1 DECR TABLE ADDR INSTRUCTION K0804560 7B9F 8000 460 | S8000 DC /8000 ONE WORD NAME INDICATOR K0804570 7BA0 0000 461 | ERNO DC 0 ERROR NUMBER TEMPORARY K0804580 7BA1 0001 462 | S0001 DC 1 DECIMAL ONE CONSTANT K0804590 7BA2 A008 463 | ERID DC /A008 ERROR IDENTIFIER K0804600 7BA3 01FF 464 | SFF DC /01FF OPERATOR EXTRACT MASK K0804610 465 | * K0804620 466 | * CHECK FOR LEGAL NAME K0804630 467 | * K0804640 7BA4 1002 468 | CV11 SLA 2 SHIFT INTO SIGN AND CARRY K0804650 7BA5 4C10 7BA9 469 | BSC L *+2,- BR TO CHK FOR LEGAL NAME K0804660 7BA7 4C02 7C84 470 | BSC L CV22,C BR TO CHK IF LEGAL CONSTANT K0804670 7BA9 1010 471 | SLA 16 CLEAR ACCUMULATOR K0804680 7BAA D400 7C56 472 | STO L IND SET INDR = ZERO K0804690 7BAC C0F2 473 | LD S8000 ONE WORD NAME INDICATOR K0804700 7BAD D400 7C53 474 | STO L WORD2 SECOND WORD OF 2-WORD NAME K0804710 7BAF C100 475 | LD 1 0 FIRST HALF OF NAME K0804720 7BB0 D400 7C52 476 | STO L WORD1 FIRST HALF OF NAME TEMP K0804730 7BB2 C101 477 | LD 1 1 SECOND HALF OF NAME K0804740 7BB3 4C10 7BE6 478 | BSC L CV13,- BR IF ONE WORD NAME K0804750 7BB5 D400 7C53 479 | STO L WORD2 SECOND HALF OF NAME TEMP K0804760 7BB7 689E 480 | STX 0 SW10 SET TWO-WORD NAME SWITCH ON K0804770 7BB8 C102 481 | LD 1 2 NEXT STMNT WORD K0804780 7BB9 4C10 7BE6 482 | BSC L CV13,- BR IF NOT NAME WORD K0804790 7BBB 6307 483 | LDX 3 7 INDEX REG 3 = 7 K0804800 7BBC 6BE3 484 | BK STX 3 ERNO SET UP ERROR NO. 7 K0804810 485 | * K0804820 486 | * REPLACE STATEMENT WITH ERROR K0804830 487 | * K0804840 7BBD 6580 7A52 488 | CV12 LDX I1 IDSV1 STMNT ID WORD ADDRESS K0804850 7BBF C100 489 | LD 1 0 STMNT ID WORD K0804860 7BC0 E0A1 490 | AND S07FC EXTRACT STMNT WORD COUNT K0804870 7BC1 1802 491 | SRA 2 RIGHT JUSTIFY K0804880 7BC2 8400 7A52 492 | A L IDSV1 ADDR OF STMNT ID WORD K0804890 7BC4 D001 493 | STO *+1 ADDR OF NEXT STMNT ID WORD K0804900 7BC5 6600 0000 494 | LDX L2 *-* INDEX REG 2 = NEXT STMNT ID K0804910 7BC7 C400 7A25 495 | LD L EOFS END OF STRING ADDRESS K0804920 7BC9 90FC 496 | S *-4 ADDR OF NEXT STMNT ID WORD K0804930 7BCA D001 497 | STO *+1 ADDR OF NEXT INSTRUCTION K0804940 7BCB 6700 0000 498 | LDX L3 *-* INDEX REG 3=RANGE OF CLOSE K0804950 7BCD 7301 499 | MDX 3 1 NO. OF WORDS TO MOVE K0804960 7BCE C100 500 | LD 1 0 STMNT ID WORD K0804970 7BCF E0D1 501 | AND S0001 EXTRACT LOW BIT K0804980 7BD0 E8D1 502 | OR ERID ERROR IDENTIFIER K0804990 7BD1 D100 503 | STO 1 0 STMNT ID WORD K0805000 7BD2 F0CE 504 | EOR S0001 REVERSE STMNT NUMBER INDR K0805010 7BD3 4C04 7BD9 505 | BSC L *+4,E BR IF BIT 15 ON K0805020 7BD5 6901 506 | STX 1 *+1 STMNT ID WORD ADDRESS K0805030 7BD6 7404 0000 507 | MDX L *-*,4 INCR STMNT ID WORD K0805040 7BD8 7101 508 | MDX 1 1 INCR STMNT POINTER K0805050 7BD9 C0C6 509 | LD ERNO ERROR NUMBER K0805060 7BDA D101 510 | STO 1 1 ERROR NO. INTO STMNT K0805070 7BDB C200 511 | LD 2 0 NEXT WORD TO MOVE K0805080 7BDC D102 512 | STO 1 2 CLOSE UP STRING K0805090 7BDD 7201 513 | MDX 2 1 INCR ADDR TO MOVE FROM K0805100 7BDE 7101 514 | MDX 1 1 INCR ADDR TO MOVE TO K0805110 7BDF 73FF 515 | MDX 3 -1 DECR MOVE WORD COUNT K0805120 7BE0 70FA 516 | MDX *-6 BR TO CONTINUE CLOSING K0805130 7BE1 7101 517 | MDX 1 1 ADJUST TO MAKE NEW END OF K0805140 7BE2 6D00 7A25 518 | STX L1 EOFS STRING ADDRESS. K0805150 7BE4 4C00 7A51 519 | BSC L MOVE BR TO SCAN NEXT STMNT K0805160 520 | * K0805170 521 | * PUT NAME IN ASF TABLE K0805180 522 | * K0805190 7BE6 C400 7B52 523 | CV13 LD L SW6 PUT NAME SWITCH K0805200 7BE8 4C18 7BFB 524 | BSC L CV14,+- BR TO CHECK FOR NAME IN TBL K0805210 7BEA C867 525 | LDD WORD1 TWO-WORD NAME K0805220 7BEB DC80 7D85 526 | STD I ASFNT PUT NAME IN ASF TABLE K0805230 7BED 4400 7DED 527 | BSI L NASFT CHECK FOR DUPLICATE STMNT K0805240 7BEF 7BF9 528 | DC ER25 FUNCTION PARAMETERS. K0805250 7BF0 7BF1 529 | DC * K0805260 7BF1 7402 7D85 530 | MDX L ASFNT,2 INCR NEXT TABLE ENTRY ADDR K0805270 7BF3 C400 7D84 531 | LD L AFSNT MINUS 3 K0805280 7BF5 9400 7D85 532 | S L ASFNT NEXT TABLE ADDR K0805290 7BF7 4C10 7C03 533 | BSC L CV15,- BR IF LESS THAN 15 NAMES K0805300 7BF9 6319 534 | ER25 LDX 3 25 SET UP ERROR 25 K0805310 7BFA 70C1 535 | MDX BK BR TO STORE ERROR NUMBER K0805320 536 | * K0805330 537 | * CHECK FOR NAME IN ASF TABLE K0805340 538 | * K0805350 7BFB C400 7B53 539 | CV14 LD L SW7 CHECK NAME SWITCH K0805360 7BFD 4C18 7C0A 540 | BSC L CV16,+- BR TO CHK FOR INTEGER NAME K0805370 7BFF 4400 7DED 541 | CV14A BSI L NASFT CHK FOR NAME ALREADY IN TBL K0805380 7C01 7C03 542 | DC CV15 K0805390 7C02 7C0A 543 | DC CV16 K0805400 7C03 C04F 544 | CV15 LD WORD2 SECOND WD OF STMNT NAME K0805410 7C04 1001 545 | SLA 1 REMOVE SIGN BIT K0805420 7C05 1801 546 | SRA 1 K0805430 7C06 D04C 547 | STO WORD2 RESTORE SECOND WORD OF NAME K0805440 7C07 C04E 548 | LD IND ADD STATEMENT FUNCTION K0805450 7C08 E85C 549 | OR S0400 PARAMETER TO THE SYMBOL K0805460 7C09 D04C 550 | STO IND TABLE ID WORD TEMPORARY K0805470 551 | * K0805480 552 | * CHECK FOR INTEGER NAME K0805490 553 | * K0805500 7C0A C047 554 | CV16 LD WORD1 FIRST WORD OF NAME K0805510 7C0B 1809 555 | SRA 9 RIGHT JUSTIFY FIRST CHAR K0805520 7C0C 9047 556 | S ILOW LOW ALPHA LIMIT CONSTANT K0805530 7C0D 4C28 7C15 557 | BSC L CV17,+Z BR IF ALPHA BELOW I K0805540 7C0F 9045 558 | S IHI HIGH ALPHA LIMIT CONSTANT K0805550 7C10 4C30 7C15 559 | BSC L CV17,-Z BR IF ALPHA ABOVE N K0805560 7C12 C043 560 | LD IND SYMBOL TBL ID WORD TEMP K0805570 7C13 E852 561 | OR S4000 ADD INTEGER INDR K0805580 7C14 D041 562 | STO IND RESTORE SYMBOL TBL ID TEMP K0805590 563 | * K0805600 564 | * PUT STMNT FUNC NAME IN SYMBOL TABLE K0805610 565 | * K0805620 7C15 4400 7E12 566 | CV17 BSI L PTCH2 BRANCH TO PUT NAME 2-3 K0805630 7C17 4400 7DC8 567 | BSI L EXTRA SYMBOL TBL ADDR TO STRING K0805640 7C19 7101 568 | TAM MDX 1 1 MOVE STMNT POINTER K0805650 569 | * K0805660 570 | * CHECK FOR LEFT PARENTHESIS OPERATOR K0805670 571 | * K0805680 7C1A C100 572 | LD 1 0 NEXT STMNT WORD K0805690 7C1B 903B 573 | S LPAR LEFT PARENTHESIS CONSTANT K0805700 7C1C 4C20 7AD6 574 | BSC L CV5,Z BR IF NOT LEFT PARENTHESIS K0805710 575 | * K0805720 576 | * CHK FOR DIMENSIONED NAME, ARITH STMNT K0805730 577 | * K0805740 7C1E C300 578 | DIMED LD 3 0 SYMBOL TABLE ID WORD K0805750 7C1F E040 579 | AND MK DIMENSION BIT MASK K0805760 7C20 4C20 7C6D 580 | BSC L CV19,Z BR IF DIMENSIONED NAME K0805770 7C22 C480 7A52 581 | LD I IDSV1 STMNT ID WORD K0805780 7C24 180B 582 | SRA 11 RIGHT JUSTIFY STMNT TYPE K0805790 7C25 4C20 7C3D 583 | BSC L CV18,Z BR IF NOT ARITHM STMNT 2-7 K0805800 7C27 C400 7B4F 584 | LD L SW3 ASF POSSIBLE SWITCH K0805810 7C29 4C20 7C3D 585 | BSC L CV18,Z BR IF ASF NOT POSSIBLE 2-7 K0805820 7C2B C400 7B54 586 | LD L SW8 ASF STMNT SWITCH K0805830 7C2D 4C20 7C3D 587 | BSC L CV18,Z BR IF ASF STMNT SW ON 2-7 K0805840 7C2F 6C00 7B54 588 | STX L0 SW8 SET ASF SWITCH ON K0805850 7C31 6C00 7B55 589 | STX L0 SW9 SET PHASING SWITCH ON K0805860 590 | * K0805861 591 | * CHECK FOR PREVIOUS ASF WITH THIS NAME K0805862 7C33 C300 592 | LD 3 0 GET SYMBOL TABLE ID WD 2-12 K0805863 7C34 1007 593 | SLA 7 ISOLATE ASF BIT 2-12 K0805864 7C35 4C10 7C3A 594 | BSC L DIM10,- BR IF NOT ALREADY ASF 2-12 K0805865 7C37 6329 595 | LDX 3 41 GENERATE A C41 ERROR 2-12 K0805866 7C38 4C00 7BBC 596 | BSC L BK *FOR THIS STATEMENT 2-12 K0805867 7C3A C300 597 | DIM10 LD 3 0 SET ASF BIT 2-12 K0805868 7C3B E827 598 | OR S0100 *IN THE SYMBOL 2-12 K0805869 7C3C D300 599 | STO 3 0 *TABLE ID WORD 2-12 K0805870 600 | * K0805871 7C3D C300 601 | CV18 LD 3 0 BR TO CHK CLOSURE RE- 2-12 K0805872 7C3E 1007 602 | SLA 7 *QUIRED IF ASF BIT IA 2-12 K0805873 7C3F 4C28 7AD6 603 | BSC L CV5,+Z *ON IN SBL TBL ID WORD 2-7 K0805874 7C41 C400 7D8B 604 | LD L OLDEN TEST OLD SYM TBL ENT 2-10 K0805875 7C43 4C18 7C4C 605 | BSC L CV18A,+- BR IF NEW ENTRY 2-10 K0805876 7C45 C300 606 | LD 3 0 LD SYM TBL ID WORD 2-10 K0805877 7C46 1002 607 | SLA 2 TEST IF IN COMMON 2-10 K0805878 7C47 4C10 7C4C 608 | BSC L CV18A,- *BR IF NOT 2-10 K0805879 7C49 6323 609 | LDX 3 35 FLAG ERROR 35 2-10 K0805880 7C4A 4C00 7BBC 610 | BSC L BK GO SET UP ERR MSG 2-10 K0805881 7C4C C300 611 | CV18A LD 3 0 SET SUBPROGRAM BIT ON 2-10 K0805882 7C4D E816 612 | OR S0080 *IN THE SYMBOL TABLE 2-7 K0805883 7C4E D300 613 | STO 3 0 *ID WORD 2-7 K0805884 7C4F 4C00 7AD6 614 | BSC L CV5 BR TO CHK CLOSURE REQRD 2-7 K0805885 615 | * 2-7 K0805886 616 | * CONSTANTS AND WORK AREA K0805890 617 | * K0805900 7C52 618 | BSS E 0 MAKE ADDRESS EVEN K0805910 7C52 0000 619 | WORD1 DC 0 FIRST HALF OF NAME K0805920 7C53 0000 620 | WORD2 DC 0 SECOND HALF OF NAME K0805930 7C54 0049 621 | ILOW DC /0049 LOW ALPHA LIMIT CONSTANT K0805940 7C55 000C 622 | IHI DC /000C HIGH ALPHA LIMIT CONSTANT K0805950 7C56 0000 623 | IND DC 0 SYMBOL TABLE ID WD TEMP K0805960 7C57 000D 624 | LPAR DC /000D LEFT PARENTHESIS CONSTANT K0805970 7C58 001E 625 | SEMS DC /001E SEMICOLON CONSTANT K0805980 7C59 001D 626 | RPAR DC /001D RIGHT PARENTHESIS CONSTANT K0805990 7C5A 627 | BSS E 0 MAKE ADDRESS EVEN K0806000 7C5A 0000 628 | NOS DC 0 2 WORD TEMPORARY FOR K0806010 7C5B 0000 629 | DC 0 CONSTANT TO BE CONVERTED. K0806020 7C5C 0000 630 | NOST DC 0 CUMULATIVE SUM OF CONSTANT K0806030 7C5D 0009 631 | NINE DC 9 DECIMAL NINE CONSTANT K0806040 7C5E 000A 632 | TEN DC 10 DECIMAL TEN CONSTANT K0806050 7C5F 0000 633 | YZ1 DC 0 INDEX REGISTER 3 TEMPORARY K0806060 7C60 1800 634 | MK DC /1800 DIMENSION BIT MASK K0806070 7C61 0020 635 | S0020 DC /0020 STMNT NO. REFERENCED INDR K0806080 7C62 FFFF 636 | RPARQ DC /001D-/001E RIGHT PARENTHESIS CON K0806090 7C63 0100 637 | S0100 DC /0100 ASF INDICATOR 2-7 K0806092 7C64 0080 638 | S0080 DC /0080 SUBPROGRAM INDICATOR 2-7 K0806095 7C65 0400 639 | S0400 DC /0400 STMNT FUNC PARAMETER INDR K0806100 7C66 4000 640 | S4000 DC /4000 INTEGER INDICATOR K0806110 7C67 001A 641 | SS1 DC /001A DIMENSION LEVEL 1 OPERATOR K0806120 7C68 001C 642 | DC /1C DIMENSION LEVEL 2 OPERATOR K0806130 7C69 001E 643 | DC /1E DIMENSION LEVEL 3 OPERATOR K0806140 7C6A 7E00 644 | H7E00 DC /7E00 HIGH CHARACTER CONSTANT K0806150 7C6B 6000 645 | H6000 DC /6000 LEADING ZEROES CONSTANT K0806160 7C6C 8000 646 | H8000 DC /8000 SIGN CONSTANT K0806170 647 | * K0806180 648 | * CONVERT SPECIAL LEFT PARENTHESIS K0806190 649 | * K0806200 7C6D C300 650 | CV19 LD 3 0 SYMBOL TABLE ID WORD K0806210 7C6E E0F1 651 | AND MK DIMENSION BIT MASK K0806220 7C6F 180B 652 | SRA 11 RIGHT JUSTIFY K0806230 7C70 D001 653 | STO *+1 K0806240 7C71 6700 0000 654 | LDX L3 *-* 1, 2, OR 3 DIMENSION INDR K0806250 7C73 C700 7C66 655 | LD L3 SS1-1 SPECIAL LEFT PARENTHESIS K0806260 7C75 D100 656 | STO 1 0 STORE TO STMNT STRING K0806270 7C76 7101 657 | CV20 MDX 1 1 MOVE STMNT POINTER K0806280 658 | * K0806290 659 | * CHECK FOR OPERATOR K0806300 660 | * K0806310 7C77 C100 661 | LD 1 0 NEXT STMNT WORD K0806320 7C78 90DF 662 | S SEMS SEMICOLON CONSTANT K0806330 7C79 4C18 7C7F 663 | BSC L CV21,+- BR IF SEMICOLON OPERATOR K0806340 7C7B 90E6 664 | S RPARQ RIGHT PARENTHESIS CONSTANT K0806350 7C7C 4400 7E04 665 | BSI L PTCH1 BRANCH TO PATCH AREA 2-3 K0806360 7C7E 70F7 666 | MDX CV20 BR TO MOVE POINTER K0806370 7C7F 631A 667 | CV21 LDX 3 26 K0806380 7C80 6F00 7BA0 668 | STX L3 ERNO SET UP ERROR NUMBER 26 K0806390 7C82 4C00 7BBD 669 | BSC L CV12 BR TO REPLACE STMNT IN ERR K0806400 670 | * K0806410 671 | * CHECK FOR VALID CONSTANT K0806420 672 | * K0806430 7C84 10A0 673 | CV22 SLT 32 CLEAR ACC AND EXTENSION K0806440 7C85 D8CC 674 | STD WORD1 CLEAR NAME TEMPORARY K0806450 7C86 C100 675 | LD 1 0 FIRST HALF OF CONSTANT K0806460 7C87 D8D2 676 | STD NOS STORE AND CLEAR 2ND HALF K0806470 7C88 C101 677 | LD 1 1 SECOND HALF OF CONSTANT K0806480 7C89 4C10 7C92 678 | BSC L COOT,- BR TO CONVERT IF NOT NEG K0806490 7C8B 6C00 7B56 679 | STX L0 SW10 SET TWO-WORD NAME SWITCH K0806500 7C8D 1001 680 | SLA 1 SHIFT OFF SIGN BIT K0806510 7C8E D0CC 681 | STO NOS+1 SECOND HALF OF CONSTANT K0806520 7C8F C102 682 | LD 1 2 NEXT STMNT WORD K0806530 7C90 4C28 7CBB 683 | BSC L CV23,+Z BR IF NEG TO SET NAME ERROR K0806540 684 | * K0806550 685 | * COLLECT CONSTANT TO BINARY K0806560 686 | * K0806570 7C92 2000 687 | COOT LDS 0 RESET OVERFLOW AND CARRY K0806580 7C93 C0C6 688 | LD NOS FIRST HALF OF CONSTANT K0806590 7C94 1002 689 | XX1 SLA 2 SHIFT TO CHK FOR NUMERIC K0806600 7C95 4C02 7C9A 690 | BSC L *+3,C BR IF CARRY K0806610 7C97 4C20 7CBB 691 | BSC L CV23,Z BR TO SET ERROR 24 K0806620 7C99 7016 692 | MDX JDC BR SET SYMBOL TBL ID INDRS K0806630 7C9A 4C10 7CBB 693 | BSC L CV23,- BR NOT DIGIT TO SET ERROR K0806640 7C9C 1001 694 | SLA 1 SHIFT OFF NON-DIGIT BIT K0806650 7C9D 180C 695 | SRA 12 RIGHT JUSTIFY 4-BIT DIGIT K0806660 7C9E D0BD 696 | STO NOST TEMPORARY K0806670 7C9F 90BD 697 | S NINE DECIMAL NINE LIMIT CONSTANT K0806680 7CA0 4C30 7CBB 698 | BSC L CV23,-Z BR IF GREATER THAN NINE K0806690 7CA2 C0AF 699 | LD WORD1 PREVIOUS CONSTANT VALUE K0806700 7CA3 A0BA 700 | M TEN MPY BY 10 K0806710 7CA4 1081 701 | SLT 1 K0806720 7CA5 4C20 7CBB 702 | BSC L CV23,Z BR CONSTANT TOO LARGE K0806730 7CA7 108F 703 | SLT 15 SHIFT INTO ACCUMULATOR K0806740 7CA8 80B3 704 | A NOST UNITS DIGIT K0806750 7CA9 4C01 7CBB 705 | BSC L CV23,O BR IF OVERLOW TO SET ERROR K0806760 7CAB D0A6 706 | STO WORD1 TEMPORARY CUMULATIVE SUM K0806770 7CAC C8AD 707 | LDD NOS TWO-WORD CON TO CONVERT K0806780 7CAD 1086 708 | SLT 6 NEXT DIGIT TO HIGH 6 BITS K0806790 7CAE D8AB 709 | STD NOS RESTORE TO TEMP K0806800 7CAF 70E4 710 | MDX XX1 BR TO CONVERT NEXT DIGIT K0806810 7CB0 6700 C000 711 | JDC LDX L3 /C000 INTEGER CONSTANT INDR BITS K0806820 7CB2 6BA3 712 | STX 3 IND SYMBOL TBL ID WD TEMPORARY K0806830 7CB3 7401 7D89 713 | MDX L SWCS,1 CHK SYMBOL TBL OVERLAP SW K0806840 7CB5 4400 7D8C 714 | BSI L STOOK BR PUT NAME IN SYMBOL TABLE K0806850 7CB7 4400 7DC8 715 | BSI L EXTRA SYMBOL TBL ADDR ON STRING K0806860 7CB9 4C00 7B4B 716 | BSC L CV7 BR TO MOVE STMNT POINTER K0806870 717 | * K0806880 718 | * SET UP ERROR NO 24 K0806890 719 | * K0806900 7CBB 6318 720 | CV23 LDX 3 24 INDEX REG 3= 24 K0806910 7CBC 6F00 7BA0 721 | STX L3 ERNO SET UP ERROR 24 K0806920 7CBE 4C00 7BBD 722 | BSC L CV12 BR REPLACE STMNT WITH ERROR K0806930 723 | * K0806940 724 | * CHECK FOR VALID STATEMENT NUMBER K0806950 725 | * K0806960 7CC0 1010 726 | CV25A SLA 16 CLEAR ACCUMULATOR K0806970 7CC1 D091 727 | STO WORD2 ZERO SECOND WD OF TEMPORARY K0806980 7CC2 C100 728 | LD 1 0 NEXT STMNT WORD K0806990 7CC3 4C10 7BBD 729 | BSC L CV12,- BR REPLACE STMNT WITH ERROR K0807000 7CC5 D08C 730 | STO WORD1 FIRST HALF OF STMNT NUMBER K0807010 7CC6 C101 731 | LD 1 1 NEXT STMNT WORD K0807020 7CC7 4C10 7CD0 732 | BSC L YYX,- BR TO CHK FOR DUPLICATE NO. K0807030 7CC9 1001 733 | SLA 1 SHIFT OFF SIGN BIT K0807040 7CCA D088 734 | STO WORD2 SECOND HALF OF STMNT NUMBER K0807050 7CCB 6C00 7B56 735 | STX L0 SW10 SET TWO-WORD SWITCH ON K0807060 7CCD C102 736 | LD 1 2 NEXT STMNT WORD K0807070 7CCE 4C28 7BBD 737 | BSC L CV12,+Z BR TO SET ERROR IF 3RD WORD K0807080 738 | * K0807090 739 | * ADJUST FOR LEADING ZEROES K0807100 740 | * K0807110 7CD0 C400 7C52 741 | YYX LD L WORD1 FIRST HALF OF NUMBER K0807120 7CD2 E097 742 | ZEROT AND H7E00 EXTRACT FIRST DIGIT K0807130 7CD3 F097 743 | EOR H6000 REMOVE NON-DIGIT BITS K0807140 7CD4 4C20 7CDD 744 | BSC L ZSLT,Z BR NO LEADING ZERO K0807150 7CD6 CC00 7C52 745 | LDD L WORD1 TWO-WORD NUMBER TEMPORARY K0807160 7CD8 1086 746 | SLT 6 SHIFT OFF LEADING ZERO K0807170 7CD9 E892 747 | OR H8000 REPLACE SIGN BIT K0807180 7CDA DC00 7C52 748 | STD L WORD1 RESTORE NUMBER K0807190 7CDC 70F5 749 | MDX ZEROT BR TO TEST FOR LEADING ZERO K0807200 7CDD C400 7C53 750 | ZSLT LD L WORD2 SECOND HALF OF STMNT NUMBER K0807210 7CDF 1801 751 | SRA 1 RIGHT JUSTIFY K0807220 7CE0 E88B 752 | OR H8000 REPLACE SIGN BIT K0807230 7CE1 D400 7C53 753 | STO L WORD2 RESTORE TO TEMPORARY K0807240 754 | * K0807250 755 | * CHK FOR DUPLICATE NO. IN SYMBOL TABLE K0807260 756 | * K0807270 7CE3 6780 7A26 757 | LDX I3 SOFST START OF STRING ADDRESS K0807280 7CE5 700B 758 | MDX YY1 BR TO INITIALIZE LOOP K0807290 7CE6 C301 759 | YY0 LD 3 1 FIRST HALF SYMBOL TBL ENTRY K0807300 7CE7 9400 7C52 760 | S L WORD1 FIRST HALF STMNT NUMBER K0807310 7CE9 4C20 7CF0 761 | BSC L YEQZ,Z BR NOT FOUND K0807320 7CEB C302 762 | LD 3 2 2ND HALF SYMBOL TABLE ENTRY K0807330 7CEC 9400 7C53 763 | S L WORD2 2ND HALF STMNT NUMBER K0807340 7CEE 4C18 7CFA 764 | BSC L YYZ,+- BR IF STMNT NUMBER FOUND K0807350 7CF0 73FD 765 | YEQZ MDX 3 -3 DECR SYMBOL TABLE ADDRESS K0807360 7CF1 6F00 7C5F 766 | YY1 STX L3 YZ1 STORE IN TEMPORARY K0807370 7CF3 C400 7C5F 767 | LD L YZ1 CURRENT SEARCH ADDRESS K0807380 7CF5 9400 7A27 768 | S L SOFNS START OF NON-STMNT NUMBERS K0807390 7CF7 4C08 7BBD 769 | BSC L CV12,+ BR REPLACE STMNT WITH ERROR K0807400 7CF9 70EC 770 | MDX YY0 BR TO CHECK NEXT ENTRY K0807410 7CFA C480 7A52 771 | YYZ LD I IDSV1 STMNT ID WORD TEMP K0807420 7CFC 180B 772 | SRA 11 RIGHT JUSTIFY STMNT TYPE K0807430 7CFD 9061 773 | S DOCC DO STMNT CONSTANT K0807440 7CFE 4C18 7D04 774 | BSC L YYZQ,+- BR IF DO STATEMENT K0807450 7D00 C300 775 | YY2 LD 3 0 SET STATEMENT NUMBER REFER- K0807460 7D01 EC00 7C61 776 | OR L S0020 ENCED INDICATOR IN THE K0807470 7D03 D300 777 | STO 3 0 SYMBOL TABLE ID WORD. K0807480 7D04 4400 7DC8 778 | YYZQ BSI L EXTRA SYMBOL TABLE ADDR ON STRING K0807490 7D06 4C00 7B4B 779 | BSC L CV7 BR TO MOVE INCR K0807500 780 | * K0807510 781 | * CHECK FOR SEMICOLON OPERATOR K0807520 782 | * K0807530 7D08 C400 7B4E 783 | CV26 LD L SW2 IF STMNT SWITCH K0807540 7D0A 4C18 7D17 784 | BSC L CV27,+- BR NOT IF STMNT K0807550 7D0C C100 785 | LD 1 0 NEXT STMNT WORD K0807560 7D0D 9400 7C58 786 | S L SEMS SEMICOLON CONSTANT K0807570 7D0F 4C20 7D20 787 | BSC L CV28,Z BR IF NOT SEMICOLON K0807580 7D11 D400 7B4D 788 | STO L SW1 RESET GOTO STMNT SWITCH K0807590 7D13 D400 7B4E 789 | STO L SW2 RESET IF STMNT SWITCH K0807600 7D15 4C00 7AE8 790 | BSC L CV5C BR TO CONVERT SEMICOLON K0807610 791 | * K0807620 792 | * CHECK FOR RIGHT PARENTHESIS OPERATOR K0807630 793 | * K0807640 7D17 C100 794 | CV27 LD 1 0 NEXT STMNT WORD K0807650 7D18 9400 7C59 795 | S L RPAR RIGHT PARENTHESIS CONSTANT K0807660 7D1A 4C20 7D20 796 | BSC L CV28,Z BR NOT RIGHT PARENTHESIS K0807670 7D1C D400 7B4D 797 | STO L SW1 RESET GOTO STMNT SWITCH K0807680 7D1E 4C00 7B7A 798 | LMQZ BSC L CV10 BR TO CONVERT OPERATOR K0807690 7D20 C100 799 | CV28 LD 1 0 NEXT STMNT WORD K0807700 7D21 4C10 7AE3 800 | BSC L CV5B,- BR IF OPERATOR K0807710 7D23 709C 801 | MDX CV25A BR CHK VALID STMNT NUMBER K0807720 802 | * K0807730 803 | * CHECK FOR LEFT PARENTHESIS OPERATOR K0807740 804 | * K0807750 7D24 C100 805 | CV29 LD 1 0 NEXT STMNT WORD K0807760 7D25 9400 7C57 806 | S L LPAR LEFT PARENTHESIS CONSTANT K0807770 7D27 4C20 7D2C 807 | BSC L CV30,Z BR IF NOT LEFT PARENTHESIS K0807780 7D29 7401 7D61 808 | MDX L PAR,1 PARENTHESIS INDICATOR K0807790 7D2B 70F2 809 | MDX LMQZ BR TO CONVERT OPERATOR K0807800 810 | * K0807810 811 | * CHECK FOR RIGHT PARENTHESIS OPERATOR K0807820 812 | * K0807830 7D2C 9035 813 | CV30 S MRPO RIGHT PARENTHESIS CONSTANT K0807840 7D2D 4C20 7AE0 814 | BSC L CV5A,Z BR IF NOT RIGHT PARENTHESIS K0807850 7D2F 74FF 7D61 815 | MDX L PAR,-1 PARENTHESIS INDICATOR K0807860 7D31 70EC 816 | MDX LMQZ BR TO CONVERT OPERATOR K0807870 7D32 6C00 7B4D 817 | STX L0 SW1 SET GOTO STMNT SW ON K0807880 7D34 70E9 818 | MDX LMQZ BR TO CONVERT OPERATOR K0807890 819 | * K0807900 820 | * CHECK FOR APOSTROPHE K0807910 821 | * K0807920 7D35 C100 822 | CV31 LD 1 0 NEXT STMNT CHARACTER K0807930 7D36 9029 823 | S QMRK QUOTE (APOSTROPHE) CONSTANT K0807940 7D37 4C20 7D3D 824 | BSC L CV31A,Z BR IF NOT QUOTE CHARACTER K0807950 7D39 D400 7B50 825 | NSW4 STO L SW4 ZERO READ-WRITE STMNT SW K0807960 7D3B 4C00 7AE0 826 | BSC L CV5A BR TO CHK FOR OPERATOR K0807970 827 | * K0807980 828 | * CHECK FOR A FORMAT STMNT NUMBER IN A K0807990 829 | * READ OR WRITE STATEMENT. K0808000 830 | * K0808010 7D3D C100 831 | CV31A LD 1 0 NEXT STMNT CHARACTER K0808020 7D3E 4C10 7AE0 832 | BSC L CV5A,- BR TO CHK FOR OPERATOR K0808030 7D40 C101 833 | LD 1 1 STMNT POINTER+1 CHARACTER K0808040 7D41 9400 7C59 834 | S L RPAR BRANCH IF RIGHT PARENTHESIS K0808050 7D43 4C18 7D4A 835 | BSC L CV32,+- AT STMNT POINTER + 1. K0808060 7D45 C102 836 | LD 1 2 STMNT POINTER+2 CHARACTER K0808070 7D46 9400 7C59 837 | S L RPAR BRANCH IF NO RIGHT PAREN- K0808080 7D48 4C20 7AE0 838 | BSC L CV5A,Z THESIS AT POINTER + 2. K0808090 7D4A C1FF 839 | CV32 LD 1 -1 STMNT POINTER-1 CHARACTER K0808100 7D4B 9011 840 | S CONVL BRANCH IF LEFT PARENTHESIS K0808110 7D4C 4C18 7D39 841 | BSC L NSW4,+- AT STMNT POINTER - 1. K0808120 7D4E 1010 842 | SLA 16 CLEAR ACCUMULATOR K0808130 7D4F D400 7B50 843 | STO L SW4 ZERO READ OR WRITE STMNT SW K0808140 7D51 632E 844 | LDX 3 46 K0808150 7D52 6F00 7BA0 845 | STX L3 ERNO SET UP ERROR NUMBER 46 K0808160 7D54 4C00 7CC0 846 | BSC L CV25A BR CHK FOR VALID STMNT NO. K0808170 847 | * K0808180 848 | * CHECK FOR EQUAL CHARACTER K0808190 849 | * K0808200 7D56 C100 850 | CV33 LD 1 0 NEXT STMNT CHARACTER K0808210 7D57 9006 851 | S LXE EQUAL CHAR K0808220 7D58 4C20 7B7A 852 | BSC L CV10,Z BR IF NOT EQUAL K0808230 7D5A 6C00 7B4F 853 | STX L0 SW3 SET SW3 ASF NOT POSSIBLE K0808240 7D5C 70C1 854 | MDX LMQZ BR TO CONVERT OPERATOR K0808250 855 | * K0808260 856 | * CONSTANTS AND WORK AREA K0808270 857 | * K0808280 7D5D 0010 858 | CONVL DC /10 CONVERTED LEFT PARENTHESIS K0808290 7D5E 003E 859 | EQOP DC /003E EQUAL SIGN K0808300 7D5E 860 | LXE EQU EQOP EQUAL SIGN K0808310 7D5F 000B 861 | DOCC DC /0B DO STMNT CONSTANT K0808320 7D60 003D 862 | QMRK DC /3D QUOTE (APOSTROPHE) CONSTANT K0808330 7D61 0000 863 | PAR DC 0 PARENTHESIS INDICATOR K0808340 7D62 0010 864 | MRPO DC /001D-/000D RIGHT PARENTHESIS CON K0808350 7D64 865 | BSS E 0 MAKE ADDRESS EVEN K0808360 7D64 866 | ASFT BSS 32 ARITH STMNT FUNC NAME TABLE K0808370 7D84 7D82 867 | AFSNT DC *-3 ADDR OF LAST TABLE ELEMENT K0808380 7D85 0000 868 | ASFNT DC 0 TABLE ADDRESS TEMPORARY K0808390 7D86 8001 869 | SIGN1 DC /8001 NUMBERED STMNT INDICATOR K0808400 7D87 0000 870 | SAVE DC 0 INDEX REG 3 TEMPORARY K0808410 7D88 0003 871 | THRE DC 3 DECIMAL 3 ADDRESS CONSTANT K0808420 7D89 0000 872 | SWCS DC 0 SYMBOL TABLE OVERLAP SWITCH K0808430 7D8A 0000 873 | SAVES DC 0 INDEX REG 3 TEMPORARY K0808440 7D8B 0000 874 | OLDEN DC 0 NON ZERO IF IN SYM TBL 2-10 K0808445 875 | * K0808450 876 | * PLACE NAME AND ID WD IN SYMBOL TABLE K0808460 877 | * K0808470 7D8C 0000 878 | STOOK DC 0 RETURN ADDRESS K0808480 7D8D 1010 879 | SLA 16 2-10 K0808485 7D8E D0FC 880 | STO OLDEN RESET OLD ENTRY SWITCH 2-10 K0808486 7D8F 6780 7A27 881 | LDX I3 SOFNS START OF NON-STMNT NUMBERS K0808490 7D91 7013 882 | MDX HACK BR TO INITIALIZE K0808500 7D92 C301 883 | LP LD 3 1 FIRST WD OF NAME-NEXT ENTRY K0808510 7D93 9400 7C52 884 | S L WORD1 COMPARE FIRST WORD OF NAME K0808520 7D95 4C20 7DA4 885 | BSC L HACK-1,Z BR NOT EQUAL, LOOK AT NEXT K0808530 7D97 C302 886 | LD 3 2 2ND WD OF NAME K0808540 7D98 9400 7C53 887 | S L WORD2 COMPARE SECOND WORD OF NAME K0808550 7D9A 4C20 7DA4 888 | BSC L HACK-1,Z BR NOT EQUAL, LOOK AT NEXT K0808560 7D9C 68EE 889 | STX OLDEN SET NON ZERO 2-10 K0808565 7D9D C0EB 890 | LD SWCS K0808570 7D9E 4C18 7DBC 891 | BSC L PUTF,+- BR CHK FOR OVERLAP K0808580 7DA0 C300 892 | LD 3 0 SYMBOL TBL ID WORD K0808590 7DA1 1001 893 | SLA 1 SHIFT INTEGER INDR TO SIGN K0808600 7DA2 4C28 7DBA 894 | BSC L PUT,+Z BR IF INTEGER BIT SET ON K0808610 7DA4 73FD 895 | MDX 3 -3 DECR SYMBOL TABLE ADDRESS K0808620 7DA5 6BE4 896 | HACK STX 3 SAVES K0808630 7DA6 C0E3 897 | LD SAVES CURRENT SEARCH ADDRESS K0808640 7DA7 9400 7A2A 898 | S L EOFST END OF SYMBOL TABLE ADDRESS K0808650 7DA9 4C30 7D92 899 | BSC L LP,-Z BR TO CONTINUE IF NOT END K0808660 900 | * K0808670 901 | * PUT NAME IN SYMBOL TABLE K0808680 902 | * K0808690 7DAB C400 7C56 903 | LD L IND SYMBOL TBL ID WD TEMPORARY K0808700 7DAD D300 904 | STO 3 0 STORE AS SYMBOL TBL ID WORD K0808710 7DAE C400 7C52 905 | LD L WORD1 FIRST HALF NAME K0808720 7DB0 D301 906 | STO 3 1 STORE IN SYMBOL TABLE K0808730 7DB1 C400 7C53 907 | LD L WORD2 SECOND HALF NAME K0808740 7DB3 D302 908 | STO 3 2 STORE IN SYMBOL TABLE K0808750 7DB4 74FD 7A2A 909 | MDX L EOFST,-3 NEW END OF SYMBOL TBL ADDR K0808760 7DB6 74FD 7A29 910 | MDX L SOFGT,-3 NEW START OF GENERATED TEMP K0808770 7DB8 74FD 7A28 911 | MDX L SOFXT,-3 NEW START OF SUBSC TEMPS K0808780 7DBA 1010 912 | PUT SLA 16 CLEAR ACCUMULATOR K0808790 7DBB D0CD 913 | STO SWCS ZERO CHK FOR OVERLAP SWITCH K0808800 914 | * K0808810 915 | * CHECK FOR SYMBOL TABLE OVERLAP K0808820 916 | * K0808830 7DBC C400 7A2A 917 | PUTF LD L EOFST END OF SYMBOL TBL ADDR K0808840 7DBE 9400 7A25 918 | S L EOFS END OF STRING K0808850 7DC0 4C28 7DC4 919 | BSC L JFF,+Z BR IF OVERLAP K0808860 7DC2 4C80 7D8C 920 | BSC I STOOK EXIT FROM PLACE NAME K0808870 7DC4 7401 7A2D 921 | JFF MDX L ERROR,1 SET UP OVERLAP ERROR K0808880 7DC6 4C00 7A3E 922 | BSC L WAIT READ AND EXECUTE NEXT PHASE K0808890 923 | * K0808900 924 | * PUT NAME POINTER ON STRING K0808910 925 | * K0808920 7DC8 0000 926 | EXTRA DC 0 RETURN ADDRESS K0808930 7DC9 6BBD 927 | STX 3 SAVE SYMBOL TABLE ADDRESS K0808940 7DCA C400 7A26 928 | LD L SOFST START OF SYMBOL TABLE ADDR K0808950 7DCC 90BA 929 | S SAVE CURRENT SYMBOL TABLE ADDR K0808960 7DCD 1890 930 | SRT 16 FORM NORMAL DIVIDEND K0808970 7DCE A8B9 931 | D THRE NO. OF WORDS PER ENTRY K0808980 7DCF 80B6 932 | A SIGN1 SYMBOL TABLE POINTER K0808990 7DD0 D100 933 | STO 1 0 STORE ON STRING K0809000 934 | * K0809010 935 | * CHK IF 1 WORD STMNT CLOSURE REQUIRED K0809020 936 | * K0809030 7DD1 C400 7B56 937 | LD L SW10 TWO-WORD NAME SWITCH K0809040 7DD3 4C18 7DDE 938 | BSC L FRANK,+- BR IF NO CLOSURE REQUIRED K0809050 7DD5 1010 939 | SLA 16 CLEAR ACCUMULATOR K0809060 7DD6 D400 7B56 940 | STO L SW10 RESET TWO-WORD NAME SWITCH K0809070 7DD8 7401 7B51 941 | MDX L SW5,1 SET STRING PACK SWITCH K0809080 7DDA 4400 7DE0 942 | BSI L SXB1 BR TO CLOSE STMNT 1 WORD K0809090 7DDC 7401 7B61 943 | MDX L CNT,1 ADJUST CNT FOR CLOSURE K0809100 7DDE 4C80 7DC8 944 | FRANK BSC I EXTRA EXIT K0809110 945 | * SUBROUTINE TO CLOSE STMNT BY ONE WORD K0809120 946 | * K0809130 947 | * K0809140 7DE0 0000 948 | SXB1 DC 0 RETURN ADDRESS K0809150 7DE1 6908 949 | STX 1 FRAN+1 SAVE STMNT POINTER K0809160 7DE2 7101 950 | MDX 1 1 INCR STMNT CLOSE POINTER K0809170 7DE3 C101 951 | LD 1 1 NEXT WORD TO MOVE TO CLOSE K0809180 7DE4 D100 952 | STO 1 0 CLOSE STMNT ONE WORD K0809190 7DE5 9400 7C58 953 | S L SEMS SEMICOLON K0809200 7DE7 4C20 7DE2 954 | BSC L SXB1+2,Z BR TO CONTINUE IF NON-ZERO K0809210 7DE9 6500 0000 955 | FRAN LDX L1 0 RESTORE STMNT POINTER K0809220 7DEB 4C80 7DE0 956 | BSC I SXB1 EXIT K0809230 957 | * K0809240 958 | * CHECK WORD1 AND WORD2 AGAINST K0809250 959 | * ARITHMETIC STATEMENT FUNCTION TABLE. K0809260 960 | * IF THEY ARE IN THE TABLE, K0809270 961 | * BRANCH INDIRECT THROUGH FIRST DC, K0809280 962 | * IF NOT- GO THROUGH SECOND DC. K0809290 963 | * K0809300 7DED 0000 964 | NASFT DC 0 RETURN ADDRESS K0809310 7DEE C0FE 965 | LD NASFT RETURN ADDRESS K0809320 7DEF D008 966 | STO NAX1+1 SET UP EXIT K0809330 7DF0 6780 7D85 967 | LDX I3 ASFNT ADDR ARITH STMNT FUNC TABLE K0809340 7DF2 7700 829C 968 | NAX2 MDX L3 -ASFT BASE OF TABLE ADDRESS K0809350 7DF4 7004 969 | MDX *+4 BR TO SEARCH IF NON-ZERO K0809360 7DF5 7401 7DF8 970 | MDX L NAX1+1,1 INCR EXIT ADDR POINTER K0809370 7DF7 4C80 0000 971 | NAX1 BSC I *-* EXIT K0809380 7DF9 7700 7D62 972 | MDX L3 ASFT-2 ADDR OF NEXT ELEMENT K0809390 7DFB CB00 973 | LDD 3 0 TWO-WORD NAME OF TBL ENTRY K0809400 7DFC 9C00 7C52 974 | SD L WORD1 COMPARE WITH TWO-WORD NAME K0809410 7DFE 4C20 7DF2 975 | BSC L NAX2,Z BR IF NOT EQUAL K0809420 7E00 1090 976 | SLT 16 SECOND HALF TO ACCUMULATOR K0809430 7E01 4C20 7DF2 977 | BSC L NAX2,Z BR IF NAME NOT FOUND K0809440 7E03 70F3 978 | MDX NAX1 BR IF NAME FOUND K0809450 979 | * K0809460 7E04 0000 980 | PTCH1 DC *-* LINK 2-3 K0809470 7E05 4C18 7B7A 981 | BSC L CV10,+- BRANCH IF RIGHT PAR 2-3 K0809480 7E07 C100 982 | LD 1 0 BRANCH BACK 2-3 K0809490 7E08 4C90 7E04 983 | BSC I PTCH1,- IF OPERATOR 2-3 K0809500 7E0A 1002 984 | SLA 2 2-3 K0809510 7E0B 4C10 7E0F 985 | BSC L *+2,- 2-3 K0809520 7E0D 4C02 7E23 986 | BSC L PTH1A,C BRANCH IF NOT NAME 2-3 K0809530 7E0F 6812 987 | STX SW11 SET SUBSCRIPT SWITCH 2-3 K0809540 7E10 4C00 7BA9 988 | BSC L CV11+5 GO PROCESS NAME 2-3 K0809550 989 | * K0809560 7E12 0000 990 | PTCH2 DC *-* LINK 2-3 K0809570 7E13 4400 7D8C 991 | BSI L STOOK PUT NAME IN SYM TABLE 2-3 K0809580 7E15 C00C 992 | LD SW11 TEST SUBSCRIPT SWITCH 2-3 K0809590 7E16 4C98 7E12 993 | BSC I PTCH2,+- BRANCH BACK IF OFF 2-3 K0809600 7E18 C400 7B56 994 | LD L SW10 TEST SWITCH 10 2-3 K0809610 7E1A 4820 995 | BSC Z SKIP IF OFF 2-3 K0809620 7E1B 7101 996 | MDX 1 1 INCREMENT POINTER 2-3 K0809630 7E1C 1810 997 | SRA 16 CLEAR 2-3 K0809640 7E1D D004 998 | STO SW11 BOTH SWITCH 11 2-3 K0809650 7E1E D400 7B56 999 | STO L SW10 AND SWITCH 10 2-3 K0809660 7E20 4C80 7E04 1000 | BSC I PTCH1 BRANCH BACK 2-3 K0809670 1001 | * K0809680 7E22 0000 1002 | SW11 DC *-* SUBSCRIPT SWITCH 2-3 K0809690 1003 | * K0809700 7E23 C101 1004 | PTH1A LD 1 1 LOAD NEXT WORD 2-3 K0809710 7E24 4828 1005 | BSC +Z SKIP IF TWO WORD CONST 2-3 K0809720 7E25 7101 1006 | MDX 1 1 MOVE POINTER 2-3 K0809730 7E26 4C80 7E04 1007 | BSC I PTCH1 RETURN 2-3 K0809740 1008 | * K0809750 7E28 1009 | BSS BPHAR+PHLEN*320-*-1 PATCH AREA K0809760 7F35 0000 1010 | DC 0 K0809770 7F36 1011 | END BPHAR-2 K0809780 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $PHSE 0078 93 149 AFSNT 7D84 867 531 AONE 7B57 385 314 ASFID 7B59 387 293 ASFNT 7D85 868 189 526 530 532 967 ASFT 7D64 866 188 968 972 BK 7BBC 484 535 596 610 BPHAR 7A36 139 1009 1011 CCWD 7A31 112 CLINK 7A4E 171 223 CNT 7B61 395 200 320 335 356 369 943 COMON 7A2B 107 CONC 7B60 394 363 CONTC 7A4A 167 215 CONVL 7D5D 858 840 COOT 7C92 687 678 CSIZE 7A2C 108 CUD 7B85 429 425 435 CV0 7AEB 284 216 CV0A 7B1C 327 291 CV1 7A5A 187 152 CV10 7B7A 420 405 410 413 798 852 981 CV11 7BA4 468 274 988 CV12 7BBD 488 669 722 729 737 769 CV13 7BE6 523 478 482 CV14 7BFB 539 524 CV14A 7BFF 541 CV15 7C03 544 533 542 CV16 7C0A 554 540 543 CV17 7C15 566 557 559 CV18 7C3D 601 583 585 587 CV18A 7C4C 611 605 608 CV19 7C6D 650 580 CV2 7AA3 235 230 CV20 7C76 657 666 CV21 7C7F 667 663 CV22 7C84 673 470 CV23 7CBB 720 683 691 693 698 702 705 CV25A 7CC0 726 243 250 801 846 CV26 7D08 783 265 CV27 7D17 794 784 CV28 7D20 799 787 796 CV29 7D24 805 267 CV3 7AB6 246 238 CV30 7D2C 813 807 CV31 7D35 822 269 CV31A 7D3D 831 824 CV32 7D4A 839 835 CV33 7D56 850 403 CV3A 7ABF 251 247 CV4 7AC9 257 252 CV5 7AD6 264 220 233 256 260 371 574 603 614 CV5A 7AE0 273 245 814 826 832 838 CV5B 7AE3 275 800 CV5C 7AE8 278 790 CV5D 7B1D 331 285 289 300 323 CV6 7B41 363 277 CV7 7B4B 370 439 716 779 CV8 7B65 402 364 CV9 7B72 411 408 CX0 7B37 353 333 334 CX1 7B2B 342 336 338 DATAS 7A50 173 227 DFCNT 7A33 132 DFILE 7A4F 172 225 DIM10 7C3A 597 594 DIMED 7C1E 578 DOC 7B5B 389 246 DOCC 7D5F 861 773 ENDC 7A48 165 211 EOFS 7A25 101 337 351 495 518 918 EOFST 7A2A 106 898 909 917 EQCOO 7B58 386 288 EQOP 7D5E 859 860 EQUC 7A4C 169 219 ER25 7BF9 534 528 ERID 7BA2 463 502 ERNO 7BA0 461 240 249 254 263 484 509 668 721 845 ERRCN 7A4D 170 221 ERROR 7A2D 109 151 921 EXTRA 7DC8 926 567 715 778 944 FIOC 7A49 166 213 FNAME 7A2E 110 FORC 7A4B 168 217 FRAN 7DE9 955 949 FRANK 7DDE 944 938 GOTOC 7B5A 388 237 H6000 7C6B 645 743 H7E00 7C6A 644 742 H8000 7C6C 646 747 752 HACK 7DA5 896 882 885 888 IDSV1 7A52 178 187 209 231 235 286 292 294 302 354 358 488 492 581 771 IFC 7B5C 390 251 IHI 7C55 622 558 ILOW 7C54 621 556 IND 7C56 623 472 548 550 560 562 712 903 INST 7B8A 433 423 427 INST1 7B9D 458 422 INST2 7B9E 459 426 IOCS 7A32 122 JDC 7CB0 711 692 JFF 7DC4 921 919 LMQZ 7D1E 798 809 816 818 854 LP 7D92 883 899 LPAR 7C57 624 242 407 573 806 LXE 7D5E 860 851 MEMRY 8000 90 91 92 MK 7C60 634 579 651 MOVE 7A51 177 214 218 222 224 226 228 332 359 519 MRPO 7D62 864 813 MT2 7B63 397 308 MT3 7B64 398 305 NASFT 7DED 964 527 541 965 NAX1 7DF7 971 966 970 978 NAX2 7DF2 968 975 977 NINE 7C5D 631 697 NOS 7C5A 628 676 681 688 707 709 NOST 7C5C 630 696 704 NSW4 7D39 825 841 NXTPH 7A44 160 142 156 157 OLDEN 7D8B 874 604 880 889 ORG 7A23 99 ORGIN 7A36 148 OVERL 7A23 91 95 OZ 7B8D 436 432 PAR 7D61 863 201 808 815 PHID 0026 96 148 PHLEN 0004 94 1009 PTCH1 7E04 980 665 983 1000 1007 PTCH2 7E12 990 566 993 PTH1A 7E23 1004 986 PUT 7DBA 912 894 PUTF 7DBC 917 891 QMRK 7D60 862 823 QX1 7B91 443 428 QX2 7B9C 454 421 RDC 7B5D 391 257 ROL 7FBC 92 158 RPAR 7C59 626 412 795 834 837 RPARQ 7C62 636 664 S0001 7BA1 462 501 504 S0020 7C61 635 776 S0080 7C64 638 612 S0100 7C63 637 598 S0400 7C65 639 549 S07FC 7B62 396 180 490 S4000 7C66 640 561 S8000 7B9F 460 473 SAVE 7D87 870 927 929 SAVES 7D8A 873 896 897 SEMIC 7B5F 393 276 SEMS 7C58 625 662 786 953 SFF 7BA3 464 430 SIGN1 7D86 869 932 SOFGT 7A29 105 910 SOFNS 7A27 103 768 881 SOFS 7A24 100 150 SOFST 7A26 102 307 757 928 SOFXT 7A28 104 911 SORF 7A30 111 SS1 7C67 641 655 STOOK 7D8C 878 714 920 991 SW1 7B4D 375 191 244 264 788 797 817 SW10 7B56 384 199 480 679 735 937 940 994 999 SW11 7E22 1002 987 992 998 SW2 7B4E 376 192 255 266 783 789 SW3 7B4F 377 229 234 284 327 584 853 SW4 7B50 378 193 261 268 825 843 SW5 7B51 379 194 312 331 368 941 SW6 7B52 380 195 409 415 523 SW7 7B53 381 196 416 539 SW8 7B54 382 197 290 402 586 588 SW9 7B55 383 198 404 414 589 SWCS 7D89 872 713 890 913 SXB1 7DE0 948 366 942 954 956 TABLE 7B97 449 420 421 428 TAM 7C19 568 TEN 7C5E 632 700 THRE 7D88 871 931 WAIT 7A3E 156 212 922 WORD1 7C52 619 476 525 554 674 699 706 730 741 745 748 760 884 905 974 WORD2 7C53 620 474 479 544 547 727 734 750 753 763 887 907 WTC 7B5E 392 259 XR1SV 7B18 321 301 XX1 7C94 689 710 YEQZ 7CF0 765 761 YY0 7CE6 759 770 YY1 7CF1 766 758 YY2 7D00 775 YYX 7CD0 741 732 YYZ 7CFA 771 764 YYZQ 7D04 778 774 YZ1 7C5F 633 766 767 ZEROT 7CD2 742 749 ZSLT 7CDD 750 744