ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:06 2020 Source File: \kforph11.asm 1130 FORTRAN COMPILER PHASE 11 2 | *************************************************** K1100020 3 | * * K1100030 4 | *STATUS - VERSION 2 MODIFICATION 12 * K1100040 5 | * * K1100050 6 | *FUNCTION/OPERATION- * K1100060 7 | * * BYPASSES ALL FORMAT, CONTINUE AND ERROR * K1100070 8 | * STATEMENTS. * K1100080 9 | * * SCANS ALL OTHER STATEMENTS BUT OPERATES ONLY* K1100090 10 | * ON THOSE STATEMENTS CONTAINING THE SPECIAL * K1100100 11 | * LEFT PARENTHESIS OPERATOR INSERTED BY PHASE8* K1100110 12 | * * CHECKS SUBSCRIPTING INFORMATION FOR EACH * K1100120 13 | * VARIABLE FOR VALIDITY. * K1100130 14 | * * CALCULATES THE SUBSCRIPT CONSTANT D4 AND, * K1100140 15 | * DEPENDING ON THE DIMENSIONING LEVEL, THE * K1100150 16 | * CONSTANTS D1, D2, AND D3. * K1100160 17 | * * INSERTS THE SUBSCRIPT CONSTANTS INTO THE * K1100170 18 | * SUBSCRIPT EXPRESSION WITH THE SUBSCRIPT * K1100180 19 | * INDICES. * K1100190 20 | * * CHANGES THE RIGHT AND LEFT PARENTHESIS * K1100200 21 | * ENCLOSING THE SUBSCRIPT EXPRESSION TO * K1100210 22 | * SPECIAL OPERATORS TO BE USED IN A LATER * K1100220 23 | * PHASE. * K1100230 24 | * * CHECKS ARITHMETIC STATEMENTS FOR 2-11 K1100240 25 | * COMMAS INCORRECTLY PLACED 2-11 K1100250 26 | * * K1100260 27 | *ENTRY POINTS- * K1100270 28 | * * START-PHASE 11 IS READ INTO CORE BY THE ROL * K1100280 29 | * PROGRAM AND EXECUTION BEGINS AT THIS ADDRESS* K1100290 30 | * * K1100300 31 | *INPUT- * K1100310 32 | * * THE STATEMENT STRING * K1100320 33 | * * THE SYMBOL TABLE * K1100330 34 | * * FCOM * K1100340 35 | * * K1100350 36 | *OUTPUT- * K1100360 37 | * * THE MODIFIED STATEMENT STRING * K1100370 38 | * * THE SYMBOL TABLE * K1100380 39 | * * FCOM * K1100390 40 | * * K1100400 41 | *EXTERNAL REFERENCES- * K1100410 42 | * SUBROUTINES- * K1100420 43 | * * ROL * K1100430 44 | * COMMA/DCOM- * K1100440 45 | * * $PHSE * K1100450 46 | * * K1100460 47 | *EXITS * K1100470 48 | * NORMAL- * K1100480 49 | * * EXITS VIA A CALL TO THE ROL SUBROUTINE TO* K1100490 50 | * READ IN THE NEXT PHASE * K1100500 51 | * * K1100510 52 | * ERROR- * K1100520 53 | * * OVERLAP-NO PROCESSING OCCURS AND AN EXIT * K1100530 54 | * IS MADE VIA ROL AS FOR NORMAL EXITS * K1100540 55 | * * COMPILATION ERRORS DETECTED BY THIS PHASE* K1100550 56 | * ARE 31, 32, 33, 34 AND 35. * K1100560 57 | * * K1100570 58 | *TABLES/WORK AREAS-N/A * K1100580 59 | * * K1100590 60 | *ATTRIBUTES- NONE. * K1100600 61 | * * K1100610 62 | *NOTES- THE SWITCHES USED IN PHASE 11 FOLLOW. IF * K1100620 63 | * NON-ZERO, THE SWITCH IS TRANSFER=T. IF ZERO, * K1100630 64 | * THE SWITCH IS NORMAL=N. * K1100640 65 | * SW1 - SIGN CONDITION INDICATOR * K1100650 66 | * N=PLUS SIGN FOUND * K1100660 67 | * T=MINUS SIGN FOUND * K1100670 68 | * SW2 - SIGN FOUND INDICATOR * K1100680 69 | * T=SIGN FOUND * K1100690 70 | * N=SING NOT FOUND * K1100700 71 | * SW3 - RIGHT PARENTHESIS INDICATOR * K1100710 72 | * T=RIGHT PARENTHESIS FOUND * K1100720 73 | * SW4 - STRING CLOSE INDICATOR * K1100730 74 | * T=STRING CLOSURE REQUIRED * K1100740 75 | * * K1100750 76 | *************************************************** K1100760 1130 FORTRAN COMPILER PHASE 11 78 | ABS K1100780 79 | * K1100790 80 | * SYSTEM EQUATES K1100800 8000 81 | MEMRY EQU /8000 CORE SIZE K1100810 7A24 82 | OVERL EQU MEMRY-1500 PHASE OVERLAY AREA SIZE K1100820 7FBC 83 | ROL EQU MEMRY-68 LOC OF RTN TO READ NEXT PH K1100830 0078 84 | $PHSE EQU /78 NO. OF PHASE NOW IN CORE K1100840 7A24 85 | ORG OVERL K1100850 0029 86 | PHID EQU 41 ID NUMBER THIS PHASE K1100860 87 | * K1100870 88 | * FORTRAN COMMUNICATION AREA K1100880 89 | * K1100890 7A24 90 | SOFS BSS 1 START OF STRING K1100900 7A25 91 | EOFS BSS 1 END OF STRING K1100910 7A26 92 | SOFST BSS 1 START OF SYMBOL TABLE K1100920 7A27 93 | SOFNS BSS 1 START OF NON-STATEMENT NUMBERS K1100930 7A28 94 | SOFXT BSS 1 START OF SUBSCRIPT TEMPORARIES K1100940 7A29 95 | SOFGT BSS 1 START OF GENERATED TEMPORARIES K1100950 7A2A 96 | EOFST BSS 1 END OF SYMBOL TABLE K1100960 7A2B 97 | COMON BSS 1 NEXT AVAILABLE COMMON K1100970 7A2C 98 | CSIZE BSS 1 SIZE OF COMMON K1100980 7A2D 99 | ERROR BSS 1 OVERLAP ERROR K1100990 7A2E 100 | FNAME BSS 2 PROGRAM NAME K1101000 7A30 101 | SORF BSS 1 SUBROUTINE(-) OR FUNCTION(+) K1101010 7A31 102 | CCWD BSS 1 CONTROL CARD WORD K1101020 103 | * BIT 15 TRANSFER TRACE K1101030 104 | * BIT 14 ARITHMETIC TRACE K1101040 105 | * BIT 13 EXTENDED PRECISION K1101050 106 | * BIT 12 LIST SYMBOL TABLE K1101060 107 | * BIT 11 LIST SUBPROGRAM NAMES K1101070 108 | * BIT 10 LIST SOURCE PROGRAM K1101080 109 | * BIT 9 ONE WORD INTEGERS K1101090 110 | * BIT 8 PUNCH K1101100 111 | * BIT 7 NONPROCESS PROGRAM K1101110 7A32 112 | IOCS BSS 1 IOCS CONTROL CARD WORD K1101120 113 | * BIT 15 CARD K1101130 114 | * BIT 14 PAPER TAPE K1101140 115 | * BIT 13 TYPEWRITER K1101150 116 | * BIT 12 1443 PRINTER K1101160 117 | * BIT 11 MAGNETIC TAPE K1101170 118 | * BIT 10 KEYBOARD K1101180 119 | * BIT 8 DISK K1101190 120 | * BIT 3 PLOTTER K1101200 121 | * BIT 1 UNFORMATTED DISK K1101210 7A33 122 | DFCNT BSS 1 FILE TABLE WORD COUNT K1101220 123 | * K1101230 124 | * K1101240 125 | * K1101250 126 | * END OF FORTRAN COMMUNICATION K1101260 127 | * AREA K1101270 128 | * K1101280 7A36 129 | BPHAR EQU *+2 BEGIN PH AREA K1101290 7A34 0000 130 | DC 0 LOADER WORK AREA K1101300 7A35 FFD7 131 | DC -41 -PHASE ID FOR SLET LOOKUP K1101310 7A36 03AE 132 | DC NXTPH-*+1 TABLE FOR NEXT PHASE ENTRY K1101320 7A37 0001 133 | DC 1 ONE ENTRY TO BE SET BY LDR K1101330 7A36 134 | ORG *-2 K1101340 7A36 6129 135 | START LDX 1 PHID GET ID THIS PHASE K1101350 7A37 6D00 0078 136 | STX L1 $PHSE STORE IN SYSTEM PHASE AREA K1101360 137 | * K1101370 138 | * CHECK FOR OVERLAP ERROR K1101380 139 | * K1101390 7A39 C0F3 140 | LD ERROR IF OVERLAP ERROR THEN BR TO K1101400 7A3A 4C20 7DDE 141 | BSC L OUT,Z READ IN NEXT PH AND EXECUTE K1101410 142 | * K1101420 143 | * INITIALIZE PHASE K1101430 144 | * K1101440 7A3C 6580 7A24 145 | LDX I1 SOFS START OF FIRST STMNT ADDR K1101450 146 | * K1101460 147 | * CHECK STATEMENT TYPE K1101470 148 | * K1101480 7A3E C100 149 | TEST LD 1 0 STMNT ID WORD K1101490 7A3F 1801 150 | SRA 1 POSITION TO TEST STMNT TYPE K1101500 7A40 E03B 151 | AND IDTPE EXTRACT STMNT TYPE BITS K1101510 7A41 4C18 7D6C 152 | BSC L ARITH,+- BRNCH IF ARITH STMT 212 K1101520 7A43 9039 153 | RTRN S ENDC END STMT CONSTANT 212 K1101530 7A44 4C18 7DDE 154 | BSC L OUT,+- BR IF END TO RD NEXT PHASE K1101540 7A46 9037 155 | S ERRC ERROR STMNT CONSTANT K1101550 7A47 4C18 7B24 156 | BSC L MOVE,+- BR IF ERR TO GET NEXT STMNT K1101560 7A49 9035 157 | S FORMC FORMAT STMNT CONSTANT K1101570 7A4A 4C18 7B24 158 | BSC L MOVE,+- BR IF FORMAT TO NEXT STMNT K1101580 7A4C 9033 159 | S CONTC CONTINUE STMNT CONSTANT K1101590 7A4D 4C18 7B24 160 | BSC L MOVE,+- BR IF CONTINUE TO GET NEXT K1101600 7A4F 9031 161 | S FIOC FIO STMNT CONSTANT K1101610 7A50 4C18 7B24 162 | BSC L MOVE,+- BR IF FIO TO GET NEXT STMNT K1101620 7A52 902F 163 | S DFL DEFINE FILE STMNT CONSTANT K1101630 7A53 4C18 7B24 164 | BSC L MOVE,+- BR IF DEFINE FILE- GET NEXT K1101640 7A55 902D 165 | S CEXT CALL EXIT OR LINK CONSTANT K1101650 7A56 4C18 7B24 166 | BSC L MOVE,+- BR TO GET NEXT IF EXIT-LINK K1101660 7A58 902B 167 | S DATAS DATA STMNT CONSTANT K1101670 7A59 4C18 7B24 168 | BSC L MOVE,+- BR TO GET NEXT IF DATA K1101680 169 | * K1101690 170 | * INITIALIZE TO SCAN STATEMENT K1101700 171 | * K1101710 7A5B 1010 172 | SLA 16 ZERO ACCUMULATOR K1101720 7A5C D01E 173 | STO SW4 CLEAR STRING CLOSE SWITCH K1101730 7A5D D400 7D3B 174 | STO L HOB STRING CLOSE VALUE K1101740 7A5F 6925 175 | STX 1 IDSAV SAVE STMNT START ADDRESS K1101750 7A60 C100 176 | LD 1 0 STMNT ID WORD K1101760 7A61 1802 177 | SRA 2 RIGHT JUSTIFY STMNT WD CNT K1101770 7A62 E400 7B2E 178 | AND L IDNRM EXTRACT WORD COUNT K1101780 7A64 D400 7B65 179 | STO L NRMSV STMNT WORD COUNT TEMPORARY K1101790 7A66 C100 180 | LD 1 0 STMNT WORD COUNT K1101800 7A67 4804 181 | BSC E SKIP NEXT IF NO STMNT NO. K1101810 7A68 7101 182 | MDX 1 1 INCR TO BYPASS STMNT NUMBER K1101820 7A69 7101 183 | MDX 1 1 INCR STMNT POINTER K1101830 184 | * K1101840 185 | * CHK FOR STMNT TERMINATOR (SEMICOLON) K1101850 186 | * K1101860 7A6A C100 187 | TEST1 LD 1 0 NEXT STMNT WORD K1101870 7A6B 4C18 7D40 188 | BSC L O,+- BR IF SEMICOLON K1101880 189 | * K1101890 190 | * CHECK FOR DIMENSION SUBSCRIPTS K1101900 191 | * K1101910 7A6D 9018 192 | S SUB1 ONE-DIMENSIONAL SUBSCRIPT K1101920 7A6E 4C18 7A98 193 | BSC L ABEL,+- BR IF ONE-DIMENSIONAL SIBSC K1101930 7A70 9016 194 | S SUB3 SUBSCRIPT CONSTANT K1101940 7A71 4C18 7A98 195 | BSC L ABEL,+- BR IF TWO-DIMENSIONAL SUBSC K1101950 7A73 9013 196 | S SUB3 SUBSCRIPT CONSTANT K1101960 7A74 4C18 7A98 197 | BSC L ABEL,+- BR IF 3-DIMENSIONAL SUBSC K1101970 7A76 7101 198 | L MDX 1 1 MOVE STMNT POINTER K1101980 7A77 70F2 199 | MDX TEST1 BR TO TEST FOR SEMICOLON K1101990 200 | * K1102000 201 | * CONSTANTS AND WORK AREA K1102010 202 | * K1102020 7A78 0000 203 | SW1 DC 0 SIGN CONDITION INDR K1102030 7A79 0000 204 | SW2 DC 0 SIGN FOUND INDR K1102040 7A7A 0000 205 | SW3 DC 0 RIGHT PARENTHESIS INDR K1102050 7A7B 0000 206 | SW4 DC 0 STRING CLOSE REQUIRED INDR K1102060 7A7C 7C00 207 | IDTPE DC /7C00 STMNT TYPE MASK K1102070 7A7D 0800 208 | ENDC DC /0800 END STMNT CONSTANT K1102080 7A7E 4800 209 | ERRC DC /5000-/0800 ERROR STMNT CONSTANT K1102090 7A7F E000 210 | FORMC DC /3000-/5000 FORMAT STMNT CONSTANT K1102100 7A80 2800 211 | CONTC DC /5800-/3000 CONTINUE STMNT CONSTANT K1102110 7A81 1400 212 | FIOC DC /6C00-/5800 FIO STMNT CONSTANT K1102120 7A82 0C00 213 | DFL DC /7800-/6C00 DEFINE FILE STMNT CON K1102130 7A83 F800 214 | CEXT DC /7000-/7800 CALL EXIT-LINK STMNT CON K1102140 7A84 0C00 215 | DATAS DC /7C00-/7000 DATA STMNT CONSTANT K1102150 7A85 0000 216 | IDSAV DC 0 STMNT ID ADDR TEMPORARY K1102160 7A86 001A 217 | SUB1 DC /001A ONE-DIMENSIONAL SUBSC CON K1102170 7A87 0002 218 | SUB3 DC /0002 DIMENSION SUBSCRIPT CON K1102180 7A88 0000 219 | Y DC 0 STMNT POINTER TEMPORARY K1102190 7A89 07FF 220 | MASK DC /07FF SYMBOL TABLE POINTER MASK K1102200 7A8A 0000 221 | SAVE DC 0 SYMBOL TABLE ADDR TEMPORARY K1102210 7A8B FFFD 222 | THREE DC /FFFD MINUS 3 CONSTANT K1102220 7A8C 0000 223 | IJMAX DC 0 FIRST DIMENSION FACTOR TEMP K1102230 7A8D 0000 224 | IMAX DC 0 2ND DIMENSION FACTOR TEMP K1102240 7A8E 225 | BSS E 0 MAKE ADDRESS EVEN K1102250 7A8E 0000 226 | TEM DC 0 1ST WD BINARY CONSTANT TEMP K1102260 7A8F 0000 227 | DC 0 2ND WD BINARY CONSTANT TEMP K1102270 7A90 7E00 228 | COT1 DC /7E00 BINARY CON HIGH DIGIT MASK K1102280 7A91 7800 229 | COT2 DC /7800 4 BIT DIGIT MASK K1102290 7A92 4800 230 | NINT DC /4800 DECIMAL 9 DIGIT LIMIT CON K1102300 7A93 0000 231 | HELP1 DC 0 DIGIT TEMPORARY K1102310 7A94 0000 232 | TEMPT DC 0 PARTIAL PRODUCT TEMPORARY K1102320 7A95 FFFF 233 | MASK1 DC /FFFF ONE COMPLEMENT MASK K1102330 7A96 001C 234 | ASTK DC /001C ASTERISK CONSTANT K1102340 7A97 0000 235 | SUMM DC 0 CUMULATIVE CONVERTED SUM K1102350 236 | * K1102370 237 | * ARITHMETIC STATEMENT FUNCTION K1102380 238 | * K1102390 7A98 C480 7A85 239 | ABEL LD I IDSAV STMNT ID WORD K1102400 7A9A 180B 240 | SRA 11 RIGHT JUSTIFY STMNT TYPE K1102410 7A9B 90EA 241 | S SUB1 STMNT FUNCTION CONSTANT K1102420 7A9C 4C20 7AA1 242 | BSC L ABELL,Z BR IF NOT ARITH STMNT FUNC K1102430 7A9E 6120 243 | LDX 1 ERR32 SUBSC VAR IN STMT FUNC 212 K1102440 7A9F 4C00 7B94 244 | B L STORE BR-REPLACE STMT W/ERROR 212 K1102450 245 | * GET DIMENSION INFORMATION K1102480 246 | * K1102490 7AA1 69E6 247 | ABELL STX 1 Y SAVE STMNT POINTER K1102500 7AA2 7101 248 | MDX 1 1 INCR STMNT POINTER K1102510 7AA3 1010 249 | SLA 16 CLEAR ACCUMULATOR K1102520 7AA4 D0D3 250 | STO SW1 CLEAR SIGN CONDITION INDR K1102530 7AA5 D0D3 251 | STO SW2 CLEAR SIGN FOUND INDR K1102540 7AA6 D0D3 252 | STO SW3 CLEAR RIGHT PAREN INDR K1102550 7AA7 D400 7C31 253 | STO L GO CLEAR COMMA COUNT TEMP K1102560 7AA9 D400 7C32 254 | STO L D4 ZERO SUBSC CONSTANT 4 K1102570 7AAB D400 7CA8 255 | STO L CNT ZERO SUBSC ELEMENT COUNT K1102580 7AAD D400 7C35 256 | STO L D1 ZERO SUBSC CONSTANT 1 K1102590 7AAF D400 7C36 257 | STO L D2 ZERO SUBSC CONSTANT 2 K1102600 7AB1 D400 7C37 258 | STO L D3 ZERO SUBSC CONSTANT 3 K1102610 7AB3 D400 7C32 259 | STO L D4 ZERO SUBSC CONSTANT 4 K1102620 7AB5 D400 7C2C 260 | STO L A DIMENSION VALUE CON TEMP212 K1102630 7AB7 D075 261 | STO B DIMENSION VALUE CON TEMP K1102640 7AB8 C1FE 262 | LD 1 -2 SYMBOL TABLE POINTER WD K1102650 7AB9 E0CF 263 | AND MASK EXTRACT POINTER K1102660 7ABA A0D0 264 | M THREE WORDS PER ENTRY K1102670 7ABB 1090 265 | SLT 16 MOVE TO ACCUMULATOR K1102680 7ABC 8400 7A26 266 | A L SOFST START OF SYMBOL TABLE ADDR K1102690 7ABE D0CB 267 | STO SAVE SAVE SYMBOL TABLE ADDR K1102700 7ABF 6780 7A8A 268 | LDX I3 SAVE XR3= SYMBOL TABLE ADDR K1102710 7AC1 C301 269 | LD 3 +1 K1102720 7AC2 D0C9 270 | STO IJMAX 1ST DIMENSION CONSTANT K1102730 7AC3 C302 271 | LD 3 +2 K1102740 7AC4 D0C8 272 | STO IMAX 2ND DIMENSION CONSTANT K1102750 7AC5 C303 273 | LD 3 +3 K1102760 7AC6 D400 7CA9 274 | STO L HOLD 3RD DIMENSION CONSTANT K1102770 275 | * K1102780 276 | * CHK FOR OPERATOR, NAME, OR CONSTANT K1102790 277 | * K1102800 7AC8 C100 278 | G LD 1 0 NEXT STMND WORD K1102810 7AC9 4C10 7B8F 279 | BSC L ER33,- BR IF OPERATOR 212 K1102820 7ACB 1002 280 | SLA 2 K1102830 7ACC 4C02 7ACF 281 | BSC L *+1,C BR TO TEST SIGN IF CARRY ON K1102840 7ACE 7064 282 | MDX D BR IF NOT CARRY - NAME K1102850 7ACF 4C10 7B33 283 | BSC L D,- K1102860 7AD1 2000 284 | LDS 0 RESET STATUS INDRS K1102870 7AD2 10A0 285 | SLT 32 CLEAR ACC AND EXTENSION K1102880 7AD3 D0C3 286 | STO SUMM ACCUMULATED CONVERTED CON K1102890 7AD4 C100 287 | LD 1 0 FIRST CONSTANT WORD K1102900 7AD5 D8B8 288 | STD TEM CONSTANT TEMPORARY K1102910 7AD6 C101 289 | LD 1 1 NEXT STMNT WORD K1102920 7AD7 4C10 7ADF 290 | BSC L COLL,- BR TO CONVERT TO BINARY K1102930 7AD9 1001 291 | SLA 1 SHIFT OFF INDR BIT K1102940 7ADA D0B4 292 | STO TEM+1 SECOND CONSTANT WORD K1102950 7ADB C102 293 | LD 1 2 NEXT STMNT WORD K1102960 7ADC 7101 294 | MDX 1 1 INCR STMNT POINTER K1102970 7ADD 4C28 7B8F 295 | BSC L ER33,+Z BR IF 3RD WORD 212 K1102980 296 | * K1102990 297 | * COLLECT CONSTANT TO BINARY K1103000 298 | * K1103010 7ADF C0AE 299 | COLL LD TEM FIRST CONSTANT WORD K1103020 7AE0 E0AF 300 | AND COT1 EXTRACT HIGH CHARACTER K1103030 7AE1 1002 301 | SLA 2 K1103040 7AE2 4C02 7AE8 302 | BSC L PILL,C BR TO TEST SIGN IF CARRY ON K1103050 7AE4 4C18 7B02 303 | BSC L NEX,+- BR TO CHK SIGN CONDITION SW K1103060 7AE6 4C00 7B8F 304 | BSC L ER33 BR IF NON-DIGIT CHAR 212 K1103070 7AE8 4C10 7B8F 305 | PILL BSC L ER33,- BR IF NON-DIGIT CHAR 212 K1103080 7AEA E0A6 306 | AND COT2 EXTRACT BCD DIGIT K1103090 7AEB 90A6 307 | S NINT NINE K1103100 7AEC 4C30 7B8F 308 | BSC L ER33,-Z BR IF .GT. 9 212 K1103110 7AEE 80A3 309 | A NINT RESTORE DIGIT K1103120 7AEF 180B 310 | SRA 11 RIGHT JUSTIFY K1103130 7AF0 D0A2 311 | STO HELP1 UNITS DIGIT TEMPORARY K1103140 7AF1 C0A5 312 | LD SUMM CUMULATIVE SUM OF CONSTANT K1103150 7AF2 1001 313 | SLA 1 TIMES 2 K1103160 7AF3 D0A0 314 | STO TEMPT SAVE K1103170 7AF4 4C28 7B8F 315 | BSC L ER33,+Z BR IF TOO LARGE 212 K1103180 7AF6 1002 316 | SLA 2 TIMES 8 K1103190 7AF7 4C2A 7B8F 317 | BSC L ER33,C+Z BR IF TOO LARGE 212 K1103200 7AF9 809A 318 | A TEMPT TIMES 10 K1103210 7AFA 8098 319 | A HELP1 UNITS DIGIT K1103220 7AFB 4C29 7B8F 320 | BSC L ER33,O+Z BR IF TOO LARGE 212 K1103230 7AFD D099 321 | STO SUMM NEW CUMULATIVE SUM K1103240 7AFE C88F 322 | LDD TEM TWO-WD CONSTANT TEMPORARY K1103250 7AFF 1086 323 | SLT 6 SHIFT OFF CONVERTED DIGIT K1103260 7B00 D88D 324 | STD TEM RESTORE CONSTANT K1103270 7B01 70DE 325 | MDX COLL+1 BR TO CONVERT NEXT DIGIT K1103280 7B02 C400 7A78 326 | NEX LD L SW1 SIGN CONDITION SWITCH K1103290 7B04 4C20 7B08 327 | BSC L C,Z BR IF MINUS SIGN K1103300 7B06 C090 328 | LD SUMM CONVERTED CONSTANT K1103310 7B07 7003 329 | MDX C+3 BR TO STORE IN B K1103320 7B08 C08E 330 | C LD SUMM CONVERTED CONSTANT K1103330 7B09 F08B 331 | EOR MASK1 ONES COMPLIMENT K1103340 7B0A 8024 332 | A ONE TWOS COMPLIMENT = -CONSTANT K1103350 7B0B D021 333 | STO B PROPERLY SIGNED CONSTANT K1103360 7B0C 1010 334 | SLA 16 K1103370 7B0D D400 7A78 335 | STO L SW1 RESET SIGN CONDITION SWITCH K1103380 7B0F 7101 336 | MDX 1 1 INCR STMNT POINTER K1103390 337 | * K1103400 338 | * CHECK IF FIRST OR SECOND CONSTANT K1103410 339 | * K1103420 7B10 C100 340 | LD 1 0 NEXT STMNT WORD K1103430 7B11 9084 341 | S ASTK ASTERISK CONSTANT K1103440 7B12 4C20 7B88 342 | BSC L F,Z BR TO CHK IF COMMA K1103450 7B14 C018 343 | LD B PREVIOUS CON WAS 1ST OF 2 K1103460 7B15 D400 7C2C 344 | STO L A STORE AS A 212 K1103470 7B17 1010 345 | SLA 16 K1103480 7B18 D014 346 | STO B CLEAR B K1103490 7B19 7101 347 | MDX 1 1 INCR STMNT POINTER K1103500 348 | * K1103510 349 | * CHECK FOR VARIABLE NAME K1103520 350 | * K1103530 7B1A C100 351 | LD 1 0 NEXT STMNT WORD K1103540 7B1B 4C10 7B8F 352 | BSC L ER33,- BR IF NOT NAME 212 K1103550 7B1D 1002 353 | SLA 2 K1103560 7B1E 4C02 7B21 354 | BSC L POS,C BR TO TEST SIGN IF CARRY ON K1103570 7B20 7015 355 | MDX TV BR TO TEST SIGN FOUND SW K1103580 7B21 4C10 7B36 356 | POS BSC L TV,- BR IF ALPHA CHAR - NO ERROR K1103590 7B23 706B 357 | B ER33 BR IF NOT ALPHA CHAR 212 K1103600 358 | * K1103610 359 | * MOVE TO NEXT STMNT K1103620 360 | * K1103630 7B24 C100 361 | MOVE LD 1 0 NEXT STMNT WORD K1103640 7B25 1802 362 | SRA 2 K1103650 7B26 E007 363 | AND IDNRM EXTRACT STMNT WORD COUNT K1103660 7B27 D001 364 | STO NXID+1 ADDR NEXT INSTRUCTION K1103670 7B28 7500 0000 365 | NXID MDX L1 0 INCR TO NEXT STMNT ID WORD K1103680 7B2A 6400 7A3E 366 | LDX L TEST BR TO SCAN NEXT STMNT K1103690 367 | * K1103700 368 | * CONSTANTS AND WORK AREA K1103710 369 | * K1103720 7B2C 8000 370 | ON DC /8000 SIGN BIT CONSTANT K1103730 7B2D 0000 371 | B DC 0 DIMENSION VALUE CON TEMP K1103740 7B2E 01FF 372 | IDNRM DC /01FF STMNT WD COUNT EXTRACT MASK K1103760 7B2F 0001 373 | ONE DC 1 DECIMAL ONE CONSTANT K1103770 7B30 0000 374 | WORD1 DC 0 NAME CONVERSION TEMP-1ST WD K1103780 7B31 0000 375 | WORD2 DC 0 NAME CONVERSION TEMP-2ND WD K1103790 7B32 0000 376 | SAVE1 DC 0 INDEX REG 3 TEMPORARY K1103800 377 | * K1103810 378 | * CHECK FOR LEGEL VARIABLE NAME K1103820 379 | * K1103830 7B33 C0FB 380 | D LD ONE K1103840 7B34 D400 7C2C 381 | STO L A NO CON BEFORE NAME-A=1 212 K1103850 7B36 C400 7A79 382 | TV LD L SW2 SIGN FOUND SWITCH K1103860 7B38 4C20 7B8F 383 | BSC L ER33,Z BR IF SIGN FOUND 212 K1103870 7B3A C0F1 384 | LD ON PRESET WORD TWO FOR ONE K1103880 7B3B D0F5 385 | STO WORD2 WORD NAME. K1103890 7B3C C100 386 | LD 1 0 NEXT STMNT WORD K1103900 7B3D D0F2 387 | STO WORD1 FIRST NAME WORD K1103910 7B3E C101 388 | LD 1 1 NEXT STMNT WORD K1103920 7B3F 4C10 7B46 389 | BSC L CK1,- BR IF ONE WORD ONLY K1103930 7B41 D0EF 390 | STO WORD2 SECOND NAME WORD K1103940 7B42 7101 391 | MDX 1 1 INCR STMNT POINTER K1103950 7B43 C101 392 | LD 1 1 NEXT STMNT WORD K1103960 7B44 4C28 7B8F 393 | BSC L ER33,+Z BR IF 3RD NAME WORD 212 K1103970 394 | * K1103980 395 | * CHECK SYMBOL TABLE FOR DUPLICATE NAME K1103990 396 | * K1104000 7B46 6780 7A27 397 | CK1 LDX I3 SOFNS START OF NON-STMNT NUMBERS K1104010 7B48 7009 398 | MDX JACK BR TO INITIATE K1104020 7B49 C301 399 | LPP LD 3 1 NEXT NAME - FIRST WORD K1104030 7B4A 90E5 400 | S WORD1 CHECK FOR DUPLICATE K1104040 7B4B 4820 401 | BSC Z SKIP NEXT IF 1ST WDS EQUAL K1104050 7B4C 7004 402 | MDX EAT BR TO CHK AGAINST NEXT NAME K1104060 7B4D C302 403 | LD 3 2 COMPARE SECOND WORDS OF K1104070 7B4E 90E2 404 | S WORD2 NAME IF FIRST WDS COMPARE. K1104080 7B4F 4C18 7B6B 405 | BSC L CK3,+- BR TO CONVERT IF NAME FOUND K1104090 7B51 73FD 406 | EAT MDX 3 -3 DECR TO NEXT ENTRY K1104100 7B52 6BDF 407 | JACK STX 3 SAVE1 XR3 TO TEMPORARY K1104110 7B53 C0DE 408 | LD SAVE1 CURRENT SYMBOL TBL ADDRESS K1104120 7B54 9400 7A2A 409 | S L EOFST END OF SYMBOL TABLE K1104130 7B56 4820 410 | BSC Z SKIP NEXT IF END OF TABLE K1104140 7B57 70F1 411 | MDX LPP CONTINUE NAME SEARCH K1104150 7B58 6122 412 | LDX 1 ERR34 UNDEFINED VAR IN SUBSC 212 K1104160 7B59 703A 413 | B STORE BR TO REPLACE STMT 212 K1104170 414 | * K1104190 415 | * CONSTANTS AND WORK AREA K1104200 416 | * K1104210 7B5A 0000 417 | ERRNO DC 0 ERROR NUMBER TEMPORARY K1104230 7B5B 0003 418 | THRE DC 3 DECIMAL 3 CONSTANT K1104240 7B5C 0000 419 | DEE DC 0 DIMENSIONAL SUBSC NAME TEMP K1104250 7B5D 0000 420 | EEE DC 0 DIMENSIONAL SUBSC NAME TEMP K1104260 7B5E 0000 421 | NAME DC 0 CONVERTED NAME TEMPORARY K1104270 7B5F 0000 422 | CEE DC 0 DIMENSIONAL SUBSC NAME TEMP K1104280 7B60 D800 423 | MARS DC /D800 DIMENSION INDR BIT MASK K1104290 7B61 000E 424 | PLUSC DC /000E PLUS CONSTANT K1104300 7B62 0012 425 | MINC DC /0020-/000E MINUS CONSTANT K1104310 7B63 002B 426 | COMMC DC /002B COMMA CONSTANT K1104320 7B64 FFD7 427 | SPECP DC /0002-/002B SPECIAL RT PARENTHESIS K1104330 7B65 0000 428 | NRMSV DC 0 STMNT WD COUNT TEMPORARY K1104350 7B66 0000 429 | GETZ DC 0 NEXT STMNT ADDR TEMPORARY K1104360 7B67 A008 430 | ERRID DC /A008 ERROR IDENTIFIER CONSTANT K1104370 7B68 0000 431 | RNG DC 0 STRING CLOSURE RANGE K1104380 7B69 4000 432 | HUB DC /4000 BIT 1 MASK K1104390 7B6A A00D 433 | ERIID DC /A00D ERROR ID CONSTANT K1104400 434 | * K1104410 435 | * CONVERT NAME TO POINTER K1104420 436 | * K1104430 7B6B 6BC6 437 | CK3 STX 3 SAVE1 CURRENT SYMBOL TABLE ADDR K1104440 7B6C C400 7A26 438 | LD L SOFST START OF SYMBOL TABLE K1104450 7B6E 80EC 439 | A THRE ADJUST FOR SEARCH LOOP DECR K1104460 7B6F 90C2 440 | S SAVE1 ADDR WHERE NAME FOUND K1104470 7B70 1890 441 | SRT 16 MAKE NORMAL DIVIDEND K1104480 7B71 A8E9 442 | D THRE FORM SYMBOL TABLE POINTER K1104490 7B72 E8B9 443 | OR ON SIGN BIT K1104500 7B73 D0EA 444 | STO NAME NAME POINTER K1104510 7B74 C0E7 445 | LD DEE K1104520 7B75 D0E9 446 | STO CEE PUSH DOWN DIMENSIONAL K1104530 7B76 C0E6 447 | LD EEE SUBSCRIPT NAME POINTERS AND K1104540 7B77 D0E4 448 | STO DEE ADD THE NAME JUST CONVERTED K1104550 7B78 C0E5 449 | LD NAME TO THE TOP OF THE LIST. K1104560 7B79 D0E3 450 | STO EEE K1104570 451 | * K1104580 452 | * CHECK FOR NON-DIMENSIONED NAME K1104590 453 | * K1104600 7B7A C480 7B32 454 | E LD I SAVE1 SYMBOL TABLE ID WORD K1104610 7B7C E0E3 455 | AND MARS DIMENSION BIT MASK K1104620 7B7D F0EB 456 | EOR HUB REAL/INTEGER BIT MASK K1104630 7B7E 4C20 7B8F 457 | BSC L ER33,Z BR IF NON-DIM NAME 212 K1104640 7B80 7101 458 | MDX 1 1 INCR STMNT POINTER K1104650 459 | * K1104660 460 | * CHECK FOR OPERATOR K1104670 461 | * K1104680 7B81 C100 462 | LD 1 0 NEXT STMNT WORD K1104690 7B82 90DE 463 | S PLUSC PLUS SIGN CONSTANT K1104700 7B83 4C18 7BC4 464 | BSC L CK4,+- BR IF PLUS SIGN K1104710 7B85 90DC 465 | S MINC MINUS SIGN CONSTANT K1104720 7B86 4C18 7BCC 466 | BSC L CK5,+- BR IF MINUS SIGN K1104730 7B88 C100 467 | F LD 1 0 NEXT STMNT WORD K1104740 7B89 90D9 468 | S COMMC COMMA CONSTANT K1104750 7B8A 4C18 7BD2 469 | BSC L CK6,+- BR IF COMMA K1104760 7B8C 90D7 470 | S SPECP SPECIAL RIGHT PARENTHESIS K1104770 7B8D 4C18 7BCF 471 | BSC L CK7,+- BR IF RIGHT PARENTHESIS K1104780 472 | * K1104790 473 | * SET UP ERROR 33 K1104800 474 | * K1104810 7B8F 6121 475 | ER33 LDX 1 ERR33 212 K1104820 7B90 7003 476 | B STORE 212 K1104823 7B91 6123 477 | ER35 LDX 1 ERR35 212 K1104826 7B92 7001 478 | B STORE 212 K1104830 7B93 6124 479 | ER36 LDX 1 ERR36 212 K1104833 7B94 69C5 480 | STORE STX 1 ERRNO SAVE ERROR NUMBER 212 K1104836 481 | * K1104840 482 | * REPLACE STMNT WITH ERROR K1104850 483 | * K1104860 7B95 6580 7A85 484 | N LDX I1 IDSAV STMNT ID WORD ADDRESS K1104870 7B97 C100 485 | LD 1 0 STMNT ID WORD K1104880 7B98 1802 486 | SRA 2 RIGHT JUSTIFY WD COUNT K1104890 7B99 E094 487 | AND IDNRM EXTRACT WORD COUNT K1104900 7B9A D0CA 488 | STO NRMSV SAVE WORD COUNT K1104910 7B9B 8400 7A85 489 | A L IDSAV STMNT ID WORD ADDRESS K1104920 7B9D D0C8 490 | STO GETZ ADDR NEXT STMNT ID WORD K1104930 7B9E 6680 7B66 491 | LDX I2 GETZ XR2 = NEXT STMNT ADDRESS K1104940 7BA0 C100 492 | LD 1 0 STMNT ID WORD K1104950 7BA1 4C04 7BA4 493 | BSC L CALD,E BR IF NUMBERED STMNT K1104960 7BA3 7004 494 | MDX CALD+4 BR IF UNNUMBERED STMNT K1104970 7BA4 C0C5 495 | CALD LD ERIID ERROR ID WORD K1104980 7BA5 D100 496 | STO 1 0 STORE AS STMNT ID K1104990 7BA6 7101 497 | MDX 1 1 INCR STMNT POINTER K1105000 7BA7 7002 498 | MDX CALD+6 BR TO SET UP ERR ON STRING K1105010 7BA8 C0BE 499 | LD ERRID ERROR ID WORD K1105020 7BA9 D100 500 | STO 1 0 STORE AS STMNT ID K1105030 7BAA C0AF 501 | LD ERRNO ERROR NUMBER K1105040 7BAB D101 502 | STO 1 1 STORE ON STRING K1105050 7BAC 7101 503 | MDX 1 1 INCR STMNT POINTER K1105060 7BAD C400 7A25 504 | LD L EOFS END OF STRING ADDRESS K1105070 7BAF 9400 7A85 505 | S L IDSAV CURRENT STMNT ADDRESS K1105080 7BB1 90B3 506 | S NRMSV CURRENT STMNT WORD COUNT K1105090 7BB2 D0B5 507 | STO RNG K1105100 7BB3 6780 7B68 508 | LDX I3 RNG RANGE OF STRING CLOSURE K1105110 7BB5 69B2 509 | STX 1 RNG CURRENT STMNT POINTER K1105120 7BB6 7301 510 | MDX 3 1 ADJUST RANGE K1105130 7BB7 C200 511 | LIM LD 2 0 NEXT WORD TO MOVE K1105140 7BB8 D101 512 | STO 1 1 CLOSE UP STRING K1105150 7BB9 7101 513 | MDX 1 1 INCR MOVE TO POINTER K1105160 7BBA 7201 514 | MDX 2 1 INCR MOVE FROM POINTER K1105170 7BBB 73FF 515 | MDX 3 -1 DECR NO. WDS TO MOVE K1105180 7BBC 70FA 516 | MDX LIM BR TO CONTINUE CLOSING K1105190 7BBD 6D00 7A25 517 | STX L1 EOFS END OF STRING ADDRESS K1105200 7BBF 6580 7B68 518 | LDX I1 RNG XR1= CURRENT STMNT POINTER K1105210 7BC1 7101 519 | MDX 1 1 INCR STMNT POINTER K1105220 7BC2 4C00 7A3E 520 | BSC L TEST BR TO TEST NEXT STMNT TYPE K1105230 521 | * K1105240 522 | * SET SWITCHES TO INDICATE SIGN FOUND K1105250 523 | * K1105260 7BC4 1010 524 | CK4 SLA 16 CLEAR ACCUMULATOR K1105270 7BC5 D400 7A78 525 | STO L SW1 SET SW1 TO PLUS CONDITION K1105280 7BC7 7401 7A79 526 | MDX L SW2,1 SET SW2 = SIGN FOUND K1105290 7BC9 7101 527 | MDX 1 1 INCR STMNT POINTER K1105300 7BCA 6400 7AC8 528 | LDX L G BR TO CHK FOR OPERATOR K1105310 7BCC 7401 7A78 529 | CK5 MDX L SW1,1 SET SW1 TO MINUS CONDITION K1105320 7BCE 70F8 530 | MDX CK4+3 BR TO SET SWITCH 2 K1105330 531 | * K1105390 532 | * DETERMINE DIMENSIONING LEVEL K1105400 533 | * K1105410 7BCF 7401 7A7A 534 | CK7 MDX L SW3,1 SET SW3 = RIGHT PARENTHESIS K1105420 7BD1 6962 535 | STX 1 VAMP SAVE INDEX REG 1 K1105430 7BD2 7401 7C31 536 | CK6 MDX L GO,1 INCR DIMENSION LEVEL CTR K1105440 7BD4 C05C 537 | LD GO DIMENSION LEVEL CTR K1105450 7BD5 9400 7B2F 538 | S L ONE DECIMAL ONE K1105460 7BD7 4C18 7BF2 539 | BSC L CK8,+- BR IF 1-DIMENSION K1105470 7BD9 9400 7B2F 540 | S L ONE DECIMAL ONE K1105480 7BDB 4C18 7BFC 541 | BSC L CK9,+- BR IF 2-DIMENSION K1105490 7BDD 9400 7B2F 542 | S L ONE DECIMAL ONE K1105500 7BDF 4C20 7B8F 543 | BSC L ER33,Z BR IF MORE THAN 3 212 K1105510 7BE1 C049 544 | LD SUBB3 3 DIMENSION INDR CONSTANT K1105520 7BE2 D046 545 | STO TAB DIMENSION LEVEL INDR K1105530 546 | * K1105540 547 | * CALCULATE D4=D4+IJ K1105550 548 | * K1105560 7BE3 C400 7B2D 549 | LD L B DIMENSION VALUE CONSTANT K1105570 7BE5 A400 7A8C 550 | M L IJMAX FIRST DIMENSION FACTOR K1105580 7BE7 1090 551 | SLT 16 PRODUCT INTO ACCUMULATOR K1105590 7BE8 9400 7A8C 552 | S L IJMAX FIRST DIMENSION FACTOR K1105600 7BEA 8047 553 | A D4 D4 SUBSCRIPT CONSTANT K1105610 7BEB D046 554 | STO D4 NEW D4 K1105620 555 | * K1105630 556 | * CALCULATE A=A*IJMAX K1105640 557 | * K1105650 7BEC C03F 558 | LD A DIMENSION VALUE CONSTANT212 K1105660 7BED A400 7A8C 559 | M L IJMAX FIRST DIMENSION FACTOR K1105670 7BEF 1090 560 | SLT 16 PRODUCT INTO ACCUMULATOR K1105680 7BF0 D03B 561 | STO A NEW A VALUE 212 K1105690 7BF1 701A 562 | MDX CK10 BR TO CHECK IF A=0 K1105700 563 | * K1105710 564 | * CALCULATE D4=D4+B-1 K1105720 565 | * K1105730 7BF2 C400 7A86 566 | CK8 LD L SUB1 ONE-DIMENSIONAL SUBSC CON K1105740 7BF4 D034 567 | STO TAB DIMENSIONAL LEVEL INDR K1105750 7BF5 C03C 568 | LD D4 D4 SUBSC CONSTANT 212 K1105760 7BF6 8400 7B2D 569 | A L B DIMENSION VALUE CONSTANT K1105770 7BF8 9400 7B2F 570 | S L ONE DECIMAL ONE K1105780 7BFA D037 571 | STO D4 NEW D4 K1105790 7BFB 7010 572 | MDX CK10 BR TO CHECK IF A=0 K1105800 573 | * K1105810 574 | * CALCULATE D4=D4+IMAX(B-1) K1105820 575 | * K1105830 7BFC C02D 576 | CK9 LD SUBB2 TWO-DIMENSIONAL SUBSC CON K1105840 7BFD D02B 577 | STO TAB DIMENSIONAL LEVEL INDR K1105850 7BFE C400 7B2D 578 | LD L B DIMENSION VALUE CONSTANT K1105860 7C00 A400 7A8D 579 | M L IMAX 2ND DIMENSION FACTOR K1105870 7C02 1090 580 | SLT 16 PRODUCT INTO ACCUMULATOR K1105880 7C03 9400 7A8D 581 | S L IMAX 2ND DIMENSION FACTOR K1105890 7C05 802C 582 | A D4 D4 SUBSCRIPT CONSTANT K1105900 7C06 D02B 583 | STO D4 NEW D4 K1105910 584 | * K1105920 585 | * CALCULATE A=A*IMAX K1105930 586 | * K1105940 7C07 C024 587 | LD A DIMENSION VALUE CONSTANT212 K1105950 7C08 A400 7A8D 588 | M L IMAX 2ND DIMENSION FACTOR K1105960 7C0A 1090 589 | SLT 16 PRODUCT INTO ACCUMULATOR K1105970 7C0B D020 590 | STO A NEW A VALUE 212 K1105980 591 | * K1105990 592 | * CHECK FOR A=0 K1106000 593 | * K1106010 7C0C C01F 594 | CK10 LD A DIMENSION VALUE CONSTANT212 K1106020 7C0D 4C18 7C18 595 | BSC L J,+- BR IF A=0 TO TEST IF B=0 K1106030 596 | * K1106040 597 | * SET A INTO NEXT SUBSCRIPT CONSTANT K1106050 598 | * K1106060 7C0F 7401 7CA8 599 | MDX L CNT,1 INCR SUBSC ELEMENT COUNTER K1106070 7C11 C024 600 | LD D2 D1=D2 K1106080 7C12 D022 601 | STO D1 K1106090 7C13 C023 602 | LD D3 D2=D3 K1106100 7C14 D021 603 | STO D2 K1106110 7C15 C016 604 | LD A D3=A 212 K1106120 7C16 D020 605 | STO D3 K1106130 7C17 7004 606 | MDX JK BR TO CHK RIGHT PAREN INDR K1106140 7C18 C400 7B2D 607 | J LD L B DIMENSION VALUE CONSTANT K1106150 7C1A 4C18 7B8F 608 | BSC L ER33,+- BR IF B= ZERO 212 K1106160 609 | * K1106170 610 | * TEST RIGHT PARENTHESIS INDICATOR K1106180 611 | * K1106190 7C1C C400 7A7A 612 | JK LD L SW3 RT PARENTHESIS INDICATOR K1106200 7C1E 4C20 7C39 613 | BSC L CK11,Z BR IF RT PARENTHESIS K1106210 7C20 7101 614 | MDX 1 1 MOVE STMNT POINTER K1106220 7C21 1010 615 | SLA 16 CLEAR ACCUMULATOR K1106230 7C22 D400 7A79 616 | STO L SW2 RESET SIGN INDICATOR K1106240 7C24 D007 617 | STO A CLEAR DIM VALUE CON A 212 K1106250 7C25 D400 7B2D 618 | STO L B CLEAR DIMENSION VALUE CON B K1106260 7C27 6400 7AC8 619 | LDX L G BR TO CHK FOR OPERATOR K1106270 620 | * K1106280 621 | * CONSTANTS AND WORK AREA K1106290 622 | * K1106300 7C29 0000 623 | TAB DC 0 DIMENSIONAL LEVEL INDICATOR K1106310 7C2A 001C 624 | SUBB2 DC /001C 2 DIMENSION INDR CONSTANT K1106320 7C2B 001E 625 | SUBB3 DC /001E 3 DIMENSION INDR CONSTANT K1106330 7C2C 0000 626 | A DC 0 DIMENSION VALUE CON TEMP212 K1106340 7C2D 0004 627 | FOUR DC 4 DECIMAL 4 CONSTANT K1106360 7C2E 0000 628 | OP DC 0 STMNT CLOSURE COUNT TEMP K1106370 7C2F 0000 629 | NO DC 0 SUBSC EXPRESSION SIZE TEMP K1106380 7C30 0018 630 | SUBZ DC /0018 ZERO SUBSC INDR CONSTANT K1106390 7C31 0000 631 | GO DC 0 DIMENSION LEVEL TEMP 212 K1106400 7C32 0000 632 | D4 DC 0 DIMENSION CONSTANT TENP 212 K1106405 7C33 0024 633 | SPARR DC /0024 SPECIAL RT PARENTHESIS CON K1106410 7C34 0000 634 | VAMP DC 0 INDEX REG 1 TEMPORARY K1106420 7C35 0000 635 | D1 DC 0 SUBSC CONSTANT D1 K1106430 7C36 0000 636 | D2 DC 0 SUBSC CONSTANT D2 K1106440 7C37 0000 637 | D3 DC 0 SUBSC CONSTANT D3 K1106450 7C38 0015 638 | EQVIC DC /15 EQUIVALENCE STMNT CONSTANT K1106460 639 | * K1106470 640 | * DO SUBSCRIPTS AGREE K1106480 641 | * K1106490 7C39 C480 7A88 642 | CK11 LD I Y STMNT SUBSC WORD K1106500 7C3B 90ED 643 | S TAB DIMENSION LEVEL INDICATOR K1106510 7C3C 4C18 7C4D 644 | BSC L CK12,+- BR IF SUBSCRIPTS AGREE K1106520 645 | * K1106530 646 | * EQUIVALENCE STATEMENT K1106540 647 | * K1106550 7C3E C480 7A85 648 | LD I IDSAV STMNT ID WORD K1106560 7C40 180B 649 | SRA 11 RT JUSTIFY STMNT TYPE K1106570 7C41 90F6 650 | S EQVIC EQUIVALENCE STMNT CONSTANT K1106580 7C42 4C20 7B91 651 | BSC L ER35,Z BR IF NOT EQU STMT 212 K1106590 652 | * K1106600 653 | * CHECK IF 1 DIMENSIONAL STMNT K1106610 654 | * K1106620 7C44 C400 7C29 655 | LD L TAB DIMENSION LEVEL INDICATOR K1106630 7C46 9400 7A86 656 | S L SUB1 ONE-DIMENSIONAL SUBSC CON K1106640 7C48 4C18 7C4D 657 | BSC L CK12,+- BR IF ONE DIMENSION SUBSC K1106650 7C4A 611F 658 | LDX 1 ERR31 SUBSC ERROR IN EQU STMT 212 K1106660 7C4B 4C00 7B94 659 | B L STORE BR-REPLACE STMT W/ERROR 212 K1106670 7C4D C05A 660 | CK12 LD CNT SUBSCRIPT ELEMENT COUNT K1106720 7C4E A0DE 661 | M FOUR CNT=CNT*4 K1106730 7C4F 1090 662 | SLT 16 PRODUCT INTO ACCUMULATOR K1106740 7C50 D057 663 | STO CNT RESTORE CNT K1106750 664 | * K1106760 665 | * COMPUTE SIZE OF SUBSCRIPT EXPRESSION K1106770 666 | * K1106780 7C51 C0E2 667 | LD VAMP STMNT POINTER END K1106790 7C52 9400 7A88 668 | S L Y STMNT POINTER BEGINNING K1106800 7C54 D0DA 669 | STO NO STORE SIZE-1 K1106810 7C55 7401 7C2F 670 | MDX L NO,1 SUBSCRIPT EXPRESSION SIZE K1106820 671 | * K1106830 672 | * COMPUTE RANGE OF STMNT CLOSURE K1106840 673 | * K1106850 7C57 C050 674 | LD CNT SUBSCRIPT ELEMENT COUNT K1106860 7C58 90D6 675 | S NO SUBSCRIPT EXPRESSION SIZE K1106870 7C59 8400 7B5B 676 | A L THRE THREE K1106880 7C5B D0D2 677 | STO OP RANGE OF CLOSURE K1106890 7C5C 4C28 7CF5 678 | BSC L CK13,+Z BR IF RANGE IS NEGATIVE K1106900 7C5E 4C20 7D0D 679 | BSC L CK14,Z BR IF RANGE IS POSITIVE K1106910 7C60 6580 7A88 680 | K LDX I1 Y STMNT PT =Y IF RANGE ZERO K1106920 681 | * K1106930 682 | * COMPUTE NO. OF WORDS PER ENTRY K1106940 683 | * K1106950 7C62 C046 684 | LD HOLD 3RD DIMENSION CONSTANT K1106960 7C63 1001 685 | SLA 1 REAL-INTEGER INDR INTO SIGN K1106970 7C64 4C10 7C6B 686 | BSC L HOLD1,- BR IF REAL K1106980 7C66 C400 7A31 687 | LD L CCWD CONTROL CARD WORD K1106990 7C68 1009 688 | SLA 9 ONE-WD INTEGER BIT TO SIGN K1107000 7C69 4828 689 | BSC +Z SKIP NEXT IF NOT ONE WORD K1107010 7C6A 7008 690 | MDX HLD2 BR IF ONE WORD INTEGER MODE K1107020 7C6B C400 7A31 691 | HOLD1 LD L CCWD CONTROL CARD WORD K1107030 7C6D 100D 692 | SLA 13 EXTENDED PREC BIT INTO SIGN K1107040 7C6E 4828 693 | BSC +Z SKIP NEXT IF STANDARD PREC K1107050 7C6F 7006 694 | MDX ZZZZ-2 BR IF EXTENDED PRECISION K1107060 7C70 C400 7DA6 695 | LD L TWO 212 K1107070 7C72 7005 696 | MDX ZZZZ BR TO SET WDS PER ENTRY =2 K1107080 7C73 C400 7B2F 697 | HLD2 LD L ONE K1107090 7C75 7002 698 | MDX ZZZZ BR TO SET WDS PER ENTRY =1 K1107100 7C76 C400 7B5B 699 | LD L THRE WORDS PER ENTRY =3 K1107110 7C78 D031 700 | ZZZZ STO SES NO. OF WORDS PER SUBSCRIPT K1107120 701 | * K1107130 702 | * SET UP D1, D2, D3, AND D4 K1107140 703 | * K1107150 7C79 6203 704 | LDX 2 3 LOOP COUNTER K1107160 7C7A C600 7C34 705 | LD L2 D1-1 D-FACTOR K1107170 7C7C A02D 706 | M SES NO. OF WORDS PER SUNSCRIPT K1107180 7C7D 1090 707 | SLT 16 PRODUCT INTO ACCUMULATOR K1107190 7C7E D600 7C34 708 | STO L2 D1-1 COMPUTED DIMENSION INDEX K1107200 7C80 72FF 709 | MDX 2 -1 DECR COUNTER K1107210 7C81 70F8 710 | MDX ZZZZ+2 BR TO COMPUTE NEXT D FACTOR K1107220 7C82 C0B2 711 | LD D1 TEST IF D1, D2, D3 K1107230 7C83 E8B2 712 | OR D2 *ARE ALL ZERO K1107240 7C84 E8B2 713 | OR D3 * K1107250 7C85 4C20 7C8E 714 | BSC L D40K,Z BRANCH IF NOT ALL ZERO K1107260 715 | * K1107270 716 | * TEST FOR SUBSCRIPT SIZE ERROR K1107280 717 | * K1107290 7C87 C480 7A8A 718 | LD I SAVE LOAD MAXIMUM SUBSCRIPT K1107300 7C89 90A8 719 | S D4 SUBTRACT THIS SUBSCRIPT 212 K1107310 7C8A 4C30 7C8E 720 | BSC L D40K,-Z BRANCH IF SIZE OK K1107320 7C8C 4C00 7B91 721 | B L ER35 SUBSC SIZE ERROR 212 K1107330 7C8E 722 | D40K EQU * CONTINUE K1107350 723 | * K1107360 724 | * PUT D4 ON STRING AT POINTER+1 K1107370 725 | * K1107380 7C8E C0A3 726 | LD D4 D-FACTOR 212 K1107390 7C8F A01A 727 | M SES NO. OF WORDS PER SUBSCRIPT K1107400 7C90 1090 728 | SLT 16 PRODUCT INTO ACCUMULATOR K1107410 7C91 EC00 7B2C 729 | OR L ON SIGN BIT K1107420 7C93 D400 7C32 730 | STO L D4 COMPUTED DIMENSION INDEX K1107430 7C95 D101 731 | STO 1 1 PLACE ON STRING K1107440 732 | * K1107450 733 | * PLACE DIMENSION SUBSC ON OUTPUT STRING K1107460 734 | * K1107470 7C96 C011 735 | LD CNT SUBSC ELEMENT COUNT K1107480 7C97 4C20 7CAC 736 | BSC L Z,Z BR IF NOT ZERO K1107490 7C99 C096 737 | LD SUBZ ZERO SUBSC INDR K1107500 7C9A D100 738 | STO 1 0 PLACE ON STRING K1107510 7C9B C400 7A88 739 | Z3 LD L Y COMPUTE POINTER=Y+CNT+2 K1107520 7C9D 800A 740 | A CNT ELEMENT COUNT K1107530 7C9E 8400 7DA6 741 | A L TWO DECIMAL TWO 212 K1107540 7CA0 D001 742 | STO TAT+1 ADDR OF LDX INSTRUCTION K1107550 7CA1 6500 0000 743 | TAT LDX L1 0 POINTER= Y+CNT+2 K1107560 744 | * K1107570 745 | * PUT SPECIAL RT PARENTHESIS ON STRING K1107580 746 | * K1107590 7CA3 C08F 747 | LD SPARR SPECIAL RT PARENTHESIS K1107600 7CA4 D100 748 | STO 1 0 PLACE ON STRING K1107610 7CA5 6400 7A76 749 | LDX L L BR TO CHK FOR END OF STMNT K1107620 750 | * K1107630 751 | * CONSTANTS AND WORK AREA K1107640 752 | * K1107650 7CA7 0008 753 | EIGHT DC 8 K1107660 7CA8 0000 754 | CNT DC 0 SUBSCRIPT ELEMENT COUNT 212 K1107665 7CA9 0000 755 | HOLD DC 0 3RD DIMENSION FACTOR TEMP K1107670 7CAA 0000 756 | SES DC 0 NO. OF WORDS PER SUBSC TEMP K1107680 7CAB 0012 757 | COMS DC /0012 COMMA CONSTANT K1107690 758 | * K1107700 759 | * CHECK FOR D1=0 K1107710 760 | * K1107720 7CAC C088 761 | Z LD D1 D-FACTOR 1 K1107730 7CAD 4C20 7CC0 762 | BSC L Z1,Z BR IF NOT ZERO K1107740 7CAF C400 7C36 763 | LD L D2 D-FACTOR 2 K1107750 7CB1 D400 7C35 764 | STO L D1 D1=D2 K1107760 7CB3 C400 7C37 765 | LD L D3 D-FACTOR 3 K1107770 7CB5 D400 7C36 766 | STO L D2 D2=D3 K1107780 7CB7 C400 7B5C 767 | LD L DEE K1107790 7CB9 D400 7B5F 768 | STO L CEE C=D K1107800 7CBB C400 7B5D 769 | LD L EEE K1107810 7CBD D400 7B5C 770 | STO L DEE D=E K1107820 7CBF 70EC 771 | MDX Z BR TO CHK D1 FOR ZERO K1107830 7CC0 C0E7 772 | Z1 LD CNT ELEMENT COUNT 212 K1107840 7CC1 9400 7C2D 773 | S L FOUR DECIMAL FOUR K1107850 7CC3 4C20 7CD3 774 | BSC L Z4,Z BR TO Z4 IF GREATER THAN 4 K1107860 7CC5 C400 7A86 775 | LD L SUB1 1 DIMENSIONAL SUBSC INDR K1107870 7CC7 D100 776 | STO 1 0 PLACE ON STRING K1107880 7CC8 7102 777 | MDX 1 2 INCR POINTER BY 2 K1107890 778 | * K1107900 779 | * PLACE ,C,D1 ON STRING K1107910 780 | * K1107920 7CC9 C0E1 781 | Z5 LD COMS COMMA CHARACTER CONSTANT K1107930 7CCA D100 782 | STO 1 0 FIRST COMMA K1107940 7CCB D102 783 | STO 1 2 SECOND COMMA K1107950 7CCC C400 7C35 784 | LD L D1 K1107960 7CCE D103 785 | STO 1 3 D1 K1107970 7CCF C400 7B5F 786 | LD L CEE K1107980 7CD1 D101 787 | STO 1 1 C K1107990 7CD2 70C8 788 | MDX Z3 BR TO COMPUTE POINTER K1108000 7CD3 C0D3 789 | Z4 LD EIGHT DECIMAL EIGHT K1108010 7CD4 90D3 790 | S CNT ELEMENT COUNT 212 K1108020 7CD5 4C20 7CE6 791 | BSC L Z6,Z BR TO Z6 IF GREATER THAN 8 K1108030 7CD7 C400 7C2A 792 | LD L SUBB2 2 DIMENSIONAL SUBSC INDR K1108040 7CD9 D100 793 | STO 1 0 PLACE ON STRING K1108050 7CDA 7106 794 | MDX 1 6 INCR POINTER BY 6 K1108060 795 | * K1108070 796 | * PUT ,D,D2 ON STRING K1108080 797 | * K1108090 7CDB C0CF 798 | Z7 LD COMS COMMA CONSTANT K1108100 7CDC D100 799 | STO 1 0 FIRST COMMA K1108110 7CDD D102 800 | STO 1 2 SECOND COMMA K1108120 7CDE C400 7C36 801 | LD L D2 K1108130 7CE0 D103 802 | STO 1 3 D2 K1108140 7CE1 C400 7B5C 803 | LD L DEE K1108150 7CE3 D101 804 | STO 1 1 D K1108160 7CE4 71FC 805 | MDX 1 -4 MOVE POINTER BY -4 K1108170 7CE5 70E3 806 | MDX Z5 BR TO PUT ,C,D1 ON STRING K1108180 7CE6 C400 7C2B 807 | Z6 LD L SUBB3 3 DIMENSIONAL SUBSC INDR K1108190 7CE8 D100 808 | STO 1 0 PLACE ON STRING K1108200 7CE9 710A 809 | MDX 1 10 INCR POINTER BY 10 K1108210 810 | * K1108220 811 | * PUT ,E,D3 ON STRING K1108230 812 | * K1108240 7CEA C0C0 813 | LD COMS COMMA CHARACTER CONSTANT K1108250 7CEB D100 814 | STO 1 0 FIRST COMMA K1108260 7CEC D102 815 | STO 1 2 SECOND COMMA K1108270 7CED C400 7C37 816 | LD L D3 K1108280 7CEF D103 817 | STO 1 3 D3 K1108290 7CF0 C400 7B5D 818 | LD L EEE K1108300 7CF2 D101 819 | STO 1 1 E K1108310 7CF3 71FC 820 | MDX 1 -4 MOVE POINTER BY -4 K1108320 7CF4 70E6 821 | MDX Z7 BR TO PUT ,D,D2 ON STRING K1108330 822 | * K1108340 823 | * COMPUTE STRING CLOSE VALUE K1108350 824 | * K1108360 7CF5 C045 825 | CK13 LD HOB STRING CLOSE VALUE K1108370 7CF6 9400 7C2E 826 | S L OP STMNT CLOSURE RANGE K1108380 7CF8 D042 827 | STO HOB ADJUSTED STRING CLOSE VALUE K1108390 7CF9 7401 7A7B 828 | MDX L SW4,1 SET STRING CLOSE SWITCH ON K1108400 829 | * K1108410 830 | * CLOSE STMNT OP WORDS K1108420 831 | * K1108430 7CFB C400 7A88 832 | LD L Y ADDR BEGIN SUBSCRIPT STMNT K1108440 7CFD 9400 7C2E 833 | S L OP RANGE OF STMNT CLOSURE K1108450 7CFF D001 834 | STO *+1 K1108460 7D00 6600 0000 835 | LDX L2 0 MOVE FROM ADDRESS K1108470 7D02 6580 7A88 836 | LDX I1 Y MOVE TO ADDRESS K1108480 7D04 C201 837 | CLOS LD 2 1 NEXT WORD TO MOVE K1108490 7D05 D101 838 | STO 1 1 CLOSE UP STMNT K1108500 7D06 4C18 7D0B 839 | BSC L *+3,+- BR IF END OF STMNT FOUND K1108510 7D08 7101 840 | MDX 1 1 INCR MOVE TO ADDR K1108520 7D09 7201 841 | MDX 2 1 INCR MOVE FROM ADDR K1108530 7D0A 70F9 842 | MDX CLOS BR TO CONTINUE CLOSING K1108540 7D0B 4C00 7C60 843 | BSC L K BR TO SET STMNT POINTER =Y K1108550 844 | * K1108560 845 | * OPEN STRING OP WORDS K1108570 846 | * K1108580 7D0D 692E 847 | CK14 STX 1 CRIK CURRENT STMNT POINTER K1108590 7D0E 6580 7A25 848 | LDX I1 EOFS END OF STRING ADDRESS K1108600 7D10 6680 7A25 849 | LDX I2 EOFS END OF STRING ADDRESS K1108610 7D12 7680 7C2E 850 | MDX I2 OP NEW END OF STRING ADDRESS K1108620 7D14 C400 7A25 851 | LD L EOFS END OF STRING ADDRESS K1108630 7D16 9025 852 | S CRIK CURRENT STMNT POINTER K1108640 7D17 D001 853 | STO CRIK1+1 DIFFERENCE AS ADDR NEXT K1108650 7D18 6700 0000 854 | CRIK1 LDX L3 0 K1108660 7D1A 7301 855 | MDX 3 1 NO. OF WORDS TO MOVE K1108670 7D1B 6E00 7A25 856 | STX L2 EOFS NEW END OF STRING ADDRESS K1108680 7D1D C100 857 | LAMB LD 1 0 NEXT WORD TO MOVE K1108690 7D1E D200 858 | STO 2 0 OPEN STRING K1108700 7D1F 71FF 859 | MDX 1 -1 DECR MOVE FROM ADDRESS K1108710 7D20 72FF 860 | MDX 2 -1 DECR MOVE TO ADDRESS K1108720 7D21 73FF 861 | MDX 3 -1 DECR NO. OF WORDS TO MOVE K1108730 7D22 70FA 862 | MDX LAMB BR TO CONTINUE MOVE K1108740 7D23 6580 7A85 863 | LDX I1 IDSAV ADDR OF STMNT ID WORD K1108750 7D25 C100 864 | LD 1 0 STMNT ID WORD K1108760 7D26 E016 865 | AND MAZZ EXTRACT STMNT WORD COUNT K1108770 7D27 D014 866 | STO CRIK SAVE ID WITHOUT WORD COUNT K1108780 7D28 C400 7B65 867 | LD L NRMSV OLD WD COUND K1108790 7D2A 8400 7C2E 868 | A L OP INCR WD COUNT BY RANGE K1108800 7D2C D400 7B65 869 | STO L NRMSV NEW WD COUNT K1108810 7D2E 1002 870 | SLA 2 POSITION FOR ID WD FORMAT K1108820 7D2F E80C 871 | OR CRIK NEW WD COUNT IN ID WORD K1108830 7D30 D100 872 | STO 1 0 RESTORE ID WITH NEW WD CNT K1108840 7D31 C400 7A2A 873 | LD L EOFST LOAD END OF SYMBOL TABLE K1108850 7D33 9400 7A25 874 | S L EOFS SUBTRACT END OF STRING K1108860 7D35 4C30 7C60 875 | BSC L K,-Z BRANCH IF NO OVERLAP K1108870 7D37 7401 7A2D 876 | MDX L ERROR,1 SET OVERLAP INDICATOR ON K1108880 7D39 4C00 7DDE 877 | BSC L OUT EXIT 2-12 K1108890 878 | * K1108900 879 | * CONSTANTS AND WORK AREA K1108910 880 | * K1108920 7D3B 0000 881 | HOB DC 0 STRING CLOSE VALUE K1108930 7D3C 0000 882 | CRIK DC 0 STMNT POINTER TEMPORARY K1108940 7D3D F803 883 | MAZZ DC /F803 STMNT ID WD EXTRACT MASK K1108950 7D3E 0000 884 | ZAP1 DC 0 STMNT WORD COUNT TEMPORARY K1108960 7D3F 0000 885 | ZAP DC 0 INDEX REG 1 TEMPORARY K1108970 886 | * K1108980 887 | * CHECK SWITCH 4 FOR STRING CLOSURE K1108990 888 | * K1109000 7D40 C400 7A7B 889 | O LD L SW4 STRING CLOSE SWITCH K1109010 7D42 4C20 7D47 890 | BSC L ZAPZ,Z BR IF STRING CLOSE REQUIRED K1109020 7D44 7101 891 | ZAP6 MDX 1 1 INCR STMNT POINTER K1109030 7D45 4C00 7A3E 892 | BSC L TEST GO TO NEXT STMNT K1109040 893 | * K1109050 894 | * CLOSE STRING BY HOB WORDS K1109060 895 | * K1109070 7D47 69F7 896 | ZAPZ STX 1 ZAP SAVE CURRENT STMNT POINTER K1109080 7D48 6580 7A85 897 | LDX I1 IDSAV ADDR OF STMNT ID WORD K1109090 7D4A C100 898 | LD 1 0 STMNT ID WORD K1109100 7D4B E0F1 899 | AND MAZZ EXTRACT STMNT WORD COUNT K1109110 7D4C D0EF 900 | STO CRIK SAVE ID WITHOUT WORD COUNT K1109120 7D4D C400 7B65 901 | LD L NRMSV OLD STMNT WORD COUNT K1109130 7D4F 90EB 902 | S HOB STRING CLOSURE RANGE K1109140 7D50 1002 903 | SLA 2 POSITION FOR ID WORD FORMAT K1109150 7D51 E8EA 904 | OR CRIK NEW STMNT WORD CNT IN ID WD K1109160 7D52 D100 905 | STO 1 0 RESTORE ID WITH NEW WD CNT K1109170 7D53 C400 7B65 906 | LD L NRMSV OLD WORD COUNT K1109180 7D55 8400 7A85 907 | A L IDSAV ADDRESS STMNT ID WORD K1109190 7D57 D0E6 908 | STO ZAP1 K1109200 7D58 6680 7D3E 909 | LDX I2 ZAP1 MOVE FROM ADDRESS K1109210 7D5A C400 7A25 910 | LD L EOFS END OF STRING ADDRESS K1109220 7D5C 90E1 911 | S ZAP1 MOVE FROM ADDRESS K1109230 7D5D D001 912 | STO ZAP2+1 K1109240 7D5E 6700 0000 913 | ZAP2 LDX L3 0 RANGE-1 OF MOVE K1109250 7D60 7301 914 | MDX 3 1 NO. OF WORDS TO MOVE K1109260 7D61 6580 7D3F 915 | LDX I1 ZAP MOVE TO ADDRESS K1109270 7D63 C200 916 | ZAP4 LD 2 0 NEXT WORD TO MOVE K1109280 7D64 D101 917 | STO 1 1 CLOSE UP STRING K1109290 7D65 7101 918 | MDX 1 1 INCR MOVE TO ADDRESS K1109300 7D66 7201 919 | MDX 2 1 INCR MOVE FROM ADDRESS K1109310 7D67 73FF 920 | MDX 3 -1 DECR NO. OF WDS TO MOVE K1109320 7D68 70FA 921 | MDX ZAP4 BR TO CONTINUE MOVE K1109330 7D69 6580 7D3F 922 | LDX I1 ZAP RESTORE INDEX REG 1 K1109340 7D6B 70D8 923 | MDX ZAP6 BR TO INCR STMNT POINTER K1109350 924 | *********************************************** 212 K1109353 925 | * * 212 K1109356 926 | * THIS ROUTINE SCANS TO THE RIGHT UNTIL A * 212 K1109360 927 | * COMMA (/2B OR /12) IS FOUND. THEN THE SCAN * 212 K1109363 928 | * IS REVERSED AND PARENTHESIS ARE COUNTED. * 212 K1109366 929 | * (+1 FOR LEFT AND -1 FOR RIGHT) WHEN THE * 212 K1109370 930 | * COUNT IS EQUAL TO +1 A CHECK IS MADE TO * 212 K1109373 931 | * INSURE THAT THE COMMA IS IN A VALID POSITION* 212 K1109376 932 | * IN THE CASE OF SUBSCRIPTS, A CHECK FOR TOO* 212 K1109380 933 | * MANY COMMAS IS MADE. * 212 K1109383 934 | * * 212 K1109386 935 | *********************************************** 212 K1109390 936 | * * 212 K1109393 7D6C 937 | ARITH EQU * ENTRY POINT K1109396 7D6C 6D00 7A85 938 | STX L1 IDSAV SAVE STMT START ADDR 212 K1109400 7D6E C100 939 | LD 1 0 STMT ID WD 212 K1109403 7D6F 1005 940 | SLA 5 RT JUSTIFY WD 212 K1109406 7D70 1807 941 | SRA 7 EXTRACT WD CNT 212 K1109410 7D71 9034 942 | S TWO ADJ FOR STMT ID/TERM 212 K1109413 7D72 D400 7B65 943 | STO L NRMSV SAVE STMT WD CNT 212 K1109416 7D74 7101 944 | MDX 1 1 MOVE POINTER 212 K1109420 7D75 1010 945 | LOOP SLA 16 212 K1109423 7D76 D02D 946 | STO SW SW=0 212 K1109426 7D77 D02D 947 | STO COUNT COUNT=0 212 K1109430 7D78 6932 948 | STX 1 LOCSV SAVE POINTER 212 K1109433 7D79 C100 949 | LD 1 0 212 K1109436 7D7A 902E 950 | S COMA1 IS IT AN ARRAY COMMA 212 K1109440 7D7B 4C20 7DAC 951 | BNZ FUNCT NO-BR 212 K1109443 7D7D 7401 7DA4 952 | MDM SW,1 INCR SW 212 K1109446 7D7F 71FF 953 | OVER MDX 1 -1 DECR LOC 212 K1109450 7D80 C100 954 | LD 1 0 212 K1109453 7D81 9027 955 | S COMA1 IF LOC=2B 212 K1109456 7D82 4C20 7D87 956 | BNZ OVER1 212 K1109460 7D84 7401 7DA4 957 | MDM SW,1 * THEN INCR SW 212 K1109463 7D86 70F8 958 | B OVER * LOOP 212 K1109466 959 | * * 212 K1109470 7D87 4031 960 | OVER1 BSI PAREN CHECK FOR PARENS 212 K1109473 7D88 70F6 961 | B OVER NO-LOOP 212 K1109476 962 | * * 212 K1109480 7D89 4820 963 | SKP Z SKIP IF (0010) 212 K1109483 7D8A 901C 964 | S TEN IF (001A) OR (0010) 212 K1109486 7D8B 4C18 7DA2 965 | BZ PERR ERROR CONDITION 212 K1109490 7D8D 9018 966 | S TWO IF (001C) 212 K1109493 7D8E 4C18 7D94 967 | BZ OVER2 YES-BR 212 K1109496 7D90 74FE 7DA4 968 | MDM SW,-2 IS SW LT OR EQ 2 212 K1109500 7D92 700F 969 | B PERR NO-ERROR 212 K1109503 7D93 7003 970 | B RSTOR YES-OKAY 212 K1109506 971 | * * 212 K1109510 7D94 74FF 7DA4 972 | OVER2 MDM SW,-1 IS SW LT OR EQ 1 212 K1109513 7D96 700B 973 | B PERR NO-ERROR 212 K1109516 974 | * * 212 K1109520 7D97 6580 7DAB 975 | RSTOR LDX I1 LOCSV YES-RESTART 212 K1109523 7D99 7101 976 | MDX 1 1 * WITH NEXT LOC 212 K1109526 7D9A 74FF 7B65 977 | MDM NRMSV,-1 DECR WD CNT 212 K1109530 7D9C 70D8 978 | B LOOP CONTINUE SCANNING 212 K1109533 979 | * 212 K1109536 7D9D 6580 7A85 980 | LDX I1 IDSAV RESTORE XR1 212 K1109540 7D9F 1010 981 | SLA 16 CLAER ACC 212 K1109543 7DA0 4C00 7A43 982 | B L RTRN RETURN 212 K1109546 983 | * * 212 K1109550 984 | * * 212 K1109553 7DA2 4C00 7B91 985 | PERR B L ER35 TOO MANY COMMAS IN SUBSC212 K1109560 986 | *********************************************** 212 K1109563 987 | * 212 K1109566 988 | * ROUTINE CONSTANTS 212 K1109570 989 | * 212 K1109573 990 | *********************************************** 212 K1109576 7DA4 0000 991 | SW DC *-* 212 K1109580 7DA5 0000 992 | COUNT DC *-* 212 K1109583 7DA6 0002 993 | TWO DC 2 212 K1109586 7DA7 000A 994 | TEN DC 10 212 K1109590 7DA8 0010 995 | SIXTN DC 16 212 K1109593 7DA9 002B 996 | COMA1 DC /2B 212 K1109596 7DAA 0012 997 | COMA2 DC /12 212 K1109600 7DAB 0000 998 | LOCSV DC *-* 212 K1109603 999 | * 212 K1109606 7DAC C100 1000 | FUNCT LD 1 0 212 K1109610 7DAD 90FC 1001 | S COMA2 IS IT A FUNCTION COMMA 212 K1109613 7DAE 4C20 7D97 1002 | BNZ RSTOR NO-RESTART 212 K1109616 1003 | * * 212 K1109620 7DB0 71FF 1004 | AGAIN MDX 1 -1 DECR LOC 212 K1109623 7DB1 4007 1005 | BSI PAREN CHECK FOR PARENS 212 K1109626 7DB2 70FD 1006 | B AGAIN NO-LOOP 212 K1109630 1007 | * * 212 K1109633 7DB3 4C20 7B93 1008 | BNZ ER36 BR IF NOT (0010) 212 K1109636 7DB5 C1FF 1009 | LD 1 -1 GET PRECEEDING WORD 212 K1109640 7DB6 4C30 7B93 1010 | BP ER36 BR IF NOT CONSTANT 212 K1109643 7DB8 70DE 1011 | B RSTOR RESTART 212 K1109646 1012 | *********************************************** 212 K1109650 1013 | * * 212 K1109655 1014 | * THIS ROUTINE COUNTS PARENTHESIS WHEN * 212 K1109660 1015 | * ENCOUNTERED. * 212 K1109663 1016 | * * 212 K1109666 1017 | *********************************************** 212 K1109670 1018 | * * 212 K1109673 7DB9 0000 1019 | PAREN DC *-* ENTRY POINT 212 K1109676 7DBA C100 1020 | LD 1 0 212 K1109680 7DBB 90EA 1021 | S TWO IS LOC=RT PAREN 212 K1109683 7DBC 4C20 7DC4 1022 | BNZ PARN1 NO-BR 212 K1109686 7DBE C0E6 1023 | LD COUNT YES-DECR COUNT 212 K1109690 7DBF 9400 7B2F 1024 | S L ONE 212 K1109693 7DC1 D0E3 1025 | STO COUNT 212 K1109696 7DC2 4C80 7DB9 1026 | B I PAREN RETURN 212 K1109700 1027 | * * 212 K1109703 7DC4 90E3 1028 | PARN1 S SIXTN IS IT COMMA 212 K1109706 7DC5 4C98 7DB9 1029 | BZ I PAREN YES-RETURN 212 K1109710 7DC7 80DE 1030 | A TWO NO-CHECK FOR ALL 212 K1109720 7DC8 4820 1031 | SKP Z * LEFT PAREN 212 K1109730 7DC9 90DD 1032 | S TEN 212 K1109740 7DCA 4820 1033 | SKP Z 212 K1109750 7DCB 90DA 1034 | S TWO 212 K1109760 7DCC 4820 1035 | SKP Z 212 K1109770 7DCD 90D8 1036 | S TWO 212 K1109780 7DCE 4CA0 7DB9 1037 | BNZ I PAREN RETURN IF NOT A PAREN 212 K1109790 1038 | * * 212 K1109800 7DD0 C0D4 1039 | LD COUNT INCR CO4NT 212 K1109810 7DD1 8400 7B2F 1040 | A L ONE 212 K1109820 7DD3 D0D1 1041 | STO COUNT 212 K1109830 7DD4 9400 7B2F 1042 | S L ONE COUNT=1 212 K1109840 7DD6 4CA0 7DB9 1043 | BNZ I PAREN NO-PAREN 212 K1109850 1044 | * * 212 K1109860 7DD8 7401 7DB9 1045 | MDM PAREN,1 YES-MOVE RETURN 212 K1109870 7DDA C100 1046 | LD 1 0 STORE ACC W/ RESULTS 212 K1109880 7DDB 90CC 1047 | S SIXTN * OF TESTING FOR (0010) 212 K1109890 7DDC 4C80 7DB9 1048 | B I PAREN RETURN 212 K1109900 1049 | * * 212 K1109910 1050 | * K1109920 1051 | * READ IN AND GO TO NEXT PHASE K1109930 1052 | * K1109940 7DDE 6580 7DE5 1053 | OUT LDX I1 NXTPH+1 LOAD PARAM FOR READING K1109950 7DE0 C805 1054 | LDD NXTPH+2 NEXT PHASE K1109960 7DE1 4C00 7FBC 1055 | BSC L ROL BR TO READ IN NEXT PHASE K1109970 7DE4 1056 | BSS E 0 MAKE ADDRESS EVEN K1109980 7DE4 002A 1057 | NXTPH DC 42 ID OF NEXT PHASE K1109990 7DE5 0000 1058 | DC *-* CORE ADDR OF NEXT PHASE K1110000 7DE6 0000 1059 | DC *-* WORD COUNT NEXT PHASE K1110010 7DE7 0000 1060 | DC *-* SECTOR ADDRESS NEXT PHASE K1110020 7DE8 1061 | PATCH BSS /7DF5-* PATCH AREA 2-11 K1110030 7DF5 0000 1062 | DC 0 K1110040 001F 1063 | ERR31 EQU 31 212 K1110050 0020 1064 | ERR32 EQU 32 212 K1110060 0021 1065 | ERR33 EQU 33 212 K1110070 0022 1066 | ERR34 EQU 34 212 K1110080 0023 1067 | ERR35 EQU 35 212 K1110090 0024 1068 | ERR36 EQU 36 212 K1110100 7DF6 1069 | END BPHAR-2 K1110110 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $PHSE 0078 84 136 A 7C2C 626 260 344 381 558 561 587 590 594 604 617 ABEL 7A98 239 193 195 197 ABELL 7AA1 247 242 AGAIN 7DB0 1004 1006 ARITH 7D6C 937 152 ASTK 7A96 234 341 B 7B2D 371 261 333 343 346 549 569 578 607 618 BPHAR 7A36 129 1069 C 7B08 330 327 329 CALD 7BA4 495 493 494 498 CCWD 7A31 102 687 691 CEE 7B5F 422 446 768 786 CEXT 7A83 214 165 CK1 7B46 397 389 CK10 7C0C 594 562 572 CK11 7C39 642 613 CK12 7C4D 660 644 657 CK13 7CF5 825 678 CK14 7D0D 847 679 CK3 7B6B 437 405 CK4 7BC4 524 464 530 CK5 7BCC 529 466 CK6 7BD2 536 469 CK7 7BCF 534 471 CK8 7BF2 566 539 CK9 7BFC 576 541 CLOS 7D04 837 842 CNT 7CA8 754 255 599 660 663 674 735 740 772 790 COLL 7ADF 299 290 325 COMA1 7DA9 996 950 955 COMA2 7DAA 997 1001 COMMC 7B63 426 468 COMON 7A2B 97 COMS 7CAB 757 781 798 813 CONTC 7A80 211 159 COT1 7A90 228 300 COT2 7A91 229 306 COUNT 7DA5 992 947 1023 1025 1039 1041 CRIK 7D3C 882 847 852 866 871 900 904 CRIK1 7D18 854 853 CSIZE 7A2C 98 D 7B33 380 282 283 D1 7C35 635 256 601 705 708 711 761 764 784 D2 7C36 636 257 600 603 712 763 766 801 D3 7C37 637 258 602 605 713 765 816 D4 7C32 632 254 259 553 554 568 571 582 583 719 726 730 D40K 7C8E 722 714 720 DATAS 7A84 215 167 DEE 7B5C 419 445 448 767 770 803 DFCNT 7A33 122 DFL 7A82 213 163 E 7B7A 454 EAT 7B51 406 402 EEE 7B5D 420 447 450 769 818 EIGHT 7CA7 753 789 ENDC 7A7D 208 153 EOFS 7A25 91 504 517 848 849 851 856 874 910 EOFST 7A2A 96 409 873 EQVIC 7C38 638 650 ER33 7B8F 475 279 295 304 305 308 315 317 320 352 357 383 393 457 543 608 ER35 7B91 477 651 721 985 ER36 7B93 479 1008 1010 ERIID 7B6A 433 495 ERR31 001F 1063 658 ERR32 0020 1064 243 ERR33 0021 1065 475 ERR34 0022 1066 412 ERR35 0023 1067 477 ERR36 0024 1068 479 ERRC 7A7E 209 155 ERRID 7B67 430 499 ERRNO 7B5A 417 480 501 ERROR 7A2D 99 140 876 F 7B88 467 342 FIOC 7A81 212 161 FNAME 7A2E 100 FORMC 7A7F 210 157 FOUR 7C2D 627 661 773 FUNCT 7DAC 1000 951 G 7AC8 278 528 619 GETZ 7B66 429 490 491 GO 7C31 631 253 536 537 HELP1 7A93 231 311 319 HLD2 7C73 697 690 HOB 7D3B 881 174 825 827 902 HOLD 7CA9 755 274 684 HOLD1 7C6B 691 686 HUB 7B69 432 456 IDNRM 7B2E 372 178 363 487 IDSAV 7A85 216 175 239 484 489 505 648 863 897 907 938 980 IDTPE 7A7C 207 151 IJMAX 7A8C 223 270 550 552 559 IMAX 7A8D 224 272 579 581 588 IOCS 7A32 112 J 7C18 607 595 JACK 7B52 407 398 JK 7C1C 612 606 K 7C60 680 843 875 L 7A76 198 749 LAMB 7D1D 857 862 LIM 7BB7 511 516 LOCSV 7DAB 998 948 975 LOOP 7D75 945 978 LPP 7B49 399 411 MARS 7B60 423 455 MASK 7A89 220 263 MASK1 7A95 233 331 MAZZ 7D3D 883 865 899 MEMRY 8000 81 82 83 MINC 7B62 425 465 MOVE 7B24 361 156 158 160 162 164 166 168 N 7B95 484 NAME 7B5E 421 444 449 NEX 7B02 326 303 NINT 7A92 230 307 309 NO 7C2F 629 669 670 675 NRMSV 7B65 428 179 488 506 867 869 901 906 943 977 NXID 7B28 365 364 NXTPH 7DE4 1057 132 1053 1054 O 7D40 889 188 ON 7B2C 370 384 443 729 ONE 7B2F 373 332 380 538 540 542 570 697 1024 1040 1042 OP 7C2E 628 677 826 833 850 868 OUT 7DDE 1053 141 154 877 OVER 7D7F 953 958 961 OVER1 7D87 960 956 OVER2 7D94 972 967 OVERL 7A24 82 85 PAREN 7DB9 1019 960 1005 1026 1029 1037 1043 1045 1048 PARN1 7DC4 1028 1022 PATCH 7DE8 1061 PERR 7DA2 985 965 969 973 PHID 0029 86 135 PILL 7AE8 305 302 PLUSC 7B61 424 463 POS 7B21 356 354 RNG 7B68 431 507 508 509 518 ROL 7FBC 83 1055 RSTOR 7D97 975 970 1002 1011 RTRN 7A43 153 982 SAVE 7A8A 221 267 268 718 SAVE1 7B32 376 407 408 437 440 454 SES 7CAA 756 700 706 727 SIXTN 7DA8 995 1028 1047 SOFGT 7A29 95 SOFNS 7A27 93 397 SOFS 7A24 90 145 SOFST 7A26 92 266 438 SOFXT 7A28 94 SORF 7A30 101 SPARR 7C33 633 747 SPECP 7B64 427 470 START 7A36 135 STORE 7B94 480 244 413 476 478 659 SUB1 7A86 217 192 241 566 656 775 SUB3 7A87 218 194 196 SUBB2 7C2A 624 576 792 SUBB3 7C2B 625 544 807 SUBZ 7C30 630 737 SUMM 7A97 235 286 312 321 328 330 SW 7DA4 991 946 952 957 968 972 SW1 7A78 203 250 326 335 525 529 SW2 7A79 204 251 382 526 616 SW3 7A7A 205 252 534 612 SW4 7A7B 206 173 828 889 TAB 7C29 623 545 567 577 643 655 TAT 7CA1 743 742 TEM 7A8E 226 288 292 299 322 324 TEMPT 7A94 232 314 318 TEN 7DA7 994 964 1032 TEST 7A3E 149 366 520 892 TEST1 7A6A 187 199 THRE 7B5B 418 439 442 676 699 THREE 7A8B 222 264 TV 7B36 382 355 356 TWO 7DA6 993 695 741 942 966 1021 1030 1034 1036 VAMP 7C34 634 535 667 WORD1 7B30 374 387 400 WORD2 7B31 375 385 390 404 Y 7A88 219 247 642 668 680 739 832 836 Z 7CAC 761 736 771 Z1 7CC0 772 762 Z3 7C9B 739 788 Z4 7CD3 789 774 Z5 7CC9 781 806 Z6 7CE6 807 791 Z7 7CDB 798 821 ZAP 7D3F 885 896 915 922 ZAP1 7D3E 884 908 909 911 ZAP2 7D5E 913 912 ZAP4 7D63 916 921 ZAP6 7D44 891 923 ZAPZ 7D47 896 890 ZZZZ 7C78 700 694 696 698 710