ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:06 2020 Source File: \kforph12.asm 1130 FORTRAN COMPILER PHASE 12 2 | *************************************************** K1200020 3 | * * K1200030 4 | *STATUS - VERSION 2 MODIFICATION 8 * K1200040 5 | * * K1200050 6 | *FUNCTION/OPERATION- * K1200060 7 | * * EXAMINES ONLY THE ARITHMETIC, IF, CALL, AND * K1200070 8 | * STATEMENT FUNCTION STATEMENTS IN THE STMNT * K1200080 9 | * STRING. * K1200090 10 | * * CHECKS SYNTAX OF STATEMENTS EXAMINED. * K1200100 11 | * * INSERTS A CALL OPERATOR BETWEEN THE SUBPROG * K1200110 12 | * NAME AND ITS DUMMY ARGUMENTS IN A CALL STMNT* K1200120 13 | * * CHECKS STATEMENT FUNCTION CALLS, INCLUDING * K1200130 14 | * NESTED CALLS, FOR VALID NAMES AND THE * K1200140 15 | * CORRECT NUMBER OF PARAMETERS. * K1200150 16 | * * CHECKS TO SEE THAT VARIABLES ARE DEFINED * K1200160 17 | * CORRECTLY AND SETS DEFINED INDR IN SYM TBL. * K1200170 18 | * * CHECKS FOR VALID STATEMENT NUMBER REFERENCES* K1200180 19 | * IN IF STATEMENTS. REFERENCES TO FORMAT * K1200190 20 | * STATEMENT NUMBERS ARE INVALID. * K1200200 21 | * * CHECKS SYNTAX OF THE RECORD NUMBER * K1200210 22 | * EXPRESSION IN DISK READ/WRITE STATEMENTS. * K1200220 23 | * THE RIGHT PARENTHESIS IS CHANGED TO A COLON * K1200230 24 | * OPERATOR FACILITATING SCAN OF DISK READY * K1200240 25 | * WRITE STMNT IN THE NEXT PHASE. * K1200250 26 | * * K1200260 27 | *ENTRY POINTS- * K1200270 28 | * * START-THE PHASE IS LOADED BY THE ROL SUBR * K1200280 29 | * AND EXECUTION STARTS AT THIS ADDRESS. * K1200290 30 | * * K1200300 31 | *INPUT- * K1200310 32 | * * THE STATEMENT STRING * K1200320 33 | * * THE SYMBOL TABLE * K1200330 34 | * * FCOM * K1200340 35 | * * K1200350 36 | *OUTPUT- * K1200360 37 | * * THE STATEMENT STRING * K1200370 38 | * * THE SYMBOL TABLE * K1200380 39 | * * FCOM * K1200390 40 | * * K1200400 41 | *EXTERNAL REFERENCES- * K1200410 42 | * SUBROUTINES- * K1200420 43 | * * ROL * K1200430 44 | * COMMA/FCOM * K1200440 45 | * * $PHSE * K1200450 46 | * * K1200460 47 | *EXITS- * K1200470 48 | * NORMAL- * K1200480 49 | * * EXITS VIA A CALL TO THE ROL SUBROUTINE TO* K1200490 50 | * READ IN THE NEXT PHASE. * K1200500 51 | * ERROR- * K1200510 52 | * * OVERLAP ERROR-BYPASSES PROCESSING AND * K1200520 53 | * EXITS VIA THE ROL SUBROUTINE * K1200530 54 | * * COMPILATION ERRORS DETECTED BY THIS PHASE* K1200540 55 | * ARE 36, 37, 38, 39, 40, 41, 42, AND 43 * K1200550 56 | * * K1200560 57 | *TABLES/WORK AREAS-N/A * K1200570 58 | * * K1200580 59 | *ATTRIBUTES-NONE * K1200590 60 | * * K1200600 61 | *NOTES- * K1200610 62 | * THE SWITCHES USED BY THIS PHASE FOLLOW. IF * K1200620 63 | * NON-ZERO, THE SWITCH IS TRANSFER = T. IF ZERO,* K1200630 64 | * THE SWITCH IS NORMAL=N * K1200640 65 | * SW1-DIMENSIONED NAME SUBSCRIPTED * K1200650 66 | * T = NOT SUBSCRIPTED * K1200660 67 | * SW4-SIGN ALLOWABLE * K1200670 68 | * N = SIGN ALLOWABLE * K1200680 69 | * SW5-POINTER INSIDE FUNCTION CALL * K1200690 70 | * T = POINTER INSIDE FUNCTION CALL * K1200700 71 | * SW7-DIMENSIONED NAME * K1200710 72 | * T = NAME DIMENSIONED * K1200720 73 | * * K1200730 74 | *************************************************** K1200740 1130 FORTRAN COMPILER PHASE 12 76 | ABS K1200760 77 | * K1200770 78 | * SYSTEM EQUATES K1200780 8000 79 | MEMRY EQU /8000 K1200790 7A23 80 | OVERL EQU MEMRY-1501 2-4 K1200800 7FBC 81 | ROL EQU MEMRY-68 LOC OF RTN TO READ NEXT PH K1200810 0078 82 | $PHSE EQU /78 NO. OF PHASE NOW IN CORE K1200820 0003 83 | PHLEN EQU 3 NO. OF SECTORS THIS PHASE K1200825 7A23 84 | ORG OVERL K1200830 002A 85 | PHID EQU 42 ID NUMBER THIS PHASE K1200840 86 | * K1200850 87 | * FORTRAN COMMUNICATION AREA K1200860 7A23 88 | ORG BSS 1 ORIGIN ADDRESS 2-4 K1200865 7A24 89 | SOFS BSS 1 START OF STRING K1200870 7A25 90 | EOFS BSS 1 END OF STRING K1200880 7A26 91 | SOFST BSS 1 START OF SYMBOL TABLE K1200890 7A27 92 | SOFNS BSS 1 START OF NON-STATEMENT NUMBERS K1200900 7A28 93 | SOFXT BSS 1 START OF SUBSCRIPT TEMPORARIES K1200910 7A29 94 | SOFGT BSS 1 START OF GENERATED TEMPORARIES K1200920 7A2A 95 | EOFST BSS 1 END OF SYMBOL TABLE K1200930 7A2B 96 | COMON BSS 1 NEXT AVAILABLE COMMON K1200940 7A2C 97 | CSIZE BSS 1 SIZE OF COMMON K1200950 7A2D 98 | ERROR BSS 1 OVERLAP ERROR K1200960 7A2E 99 | FNAME BSS 1 PROGRAM NAME K1200970 7A2F 100 | BSS 1 K1200980 7A30 101 | SORF BSS 1 SUBROUTINE(-) OR FUNCTION(+) K1200990 7A31 102 | CCWD BSS 1 CONTROL CARD WORD K1201000 103 | * BIT 15 TRANSFER TRACE K1201010 104 | * BIT 14 ARITHMETIC TRACE K1201020 105 | * BIT 13 EXTENDED PRECISION K1201030 106 | * BIT 12 LIST SYMBOL TABLE K1201040 107 | * BIT 11 LIST SUBPROGRAM NAMES K1201050 108 | * BIT 10 LIST SOURCE PROGRAM K1201060 109 | * BIT 9 ONE WORD INTEGERS K1201070 110 | * BIT 8 ORIGIN ADDRESS 2-4 K1201080 111 | * K1201090 7A32 112 | IOCS BSS 1 IOCS CONTROL CARD WORD K1201100 113 | * BIT 15 CARD K1201110 114 | * BIT 14 PAPER TAPE K1201120 115 | * BIT 13 TYPEWRITER K1201130 116 | * BIT 12 1443 PRINTER K1201140 117 | * BIT 11 MAGNETIC TAPE K1201150 118 | * BIT 10 KEYBOARD K1201160 119 | * BIT 8 DISK K1201170 120 | * BIT 3 PLOTTER K1201180 121 | * BIT 1 UNFORMATTED DISK K1201190 7A33 122 | DFCNT BSS 1 K1201200 123 | * K1201210 124 | * K1201220 125 | * K1201230 126 | * K1201240 127 | * END OF FORTRAN COMMUNICATION K1201250 128 | * AREA K1201260 129 | *************************************************** K1201270 130 | * K1201280 131 | * K1201290 7A36 132 | BPHAR EQU *+2 BEGIN PH AREA K1201300 7A34 0000 133 | DC 0 LOADER WORK AREA K1201310 7A35 FFD6 134 | DC -42 -PHASE ID FOR SLET LOOKUP K1201320 7A36 000C 135 | DC NXTPH-*+1 TABLE FOR NEXT PHASE ENTRY K1201330 7A37 0001 136 | DC 1 ONE ENTRY TO BE SET BY LDR K1201340 7A36 137 | ORG *-2 K1201350 138 | * K1201360 7A36 612A 139 | START LDX 1 PHID GET ID THIS PHASE K1201370 7A37 6D00 0078 140 | STX L1 $PHSE STORE IN SYSTEM PHASE AREA K1201380 141 | * K1201390 142 | * CHECK FOR OVERLAP ERROR K1201400 143 | * K1201410 7A39 C0F3 144 | LD ERROR IF NO OVERLAP ERROR THEN BR K1201420 7A3A 4C18 7A46 145 | BSC L ORGIN,+- TO MOVE STRING. K1201430 146 | * K1201440 147 | * READ AND GO TO NEXT PHASE K1201450 148 | * K1201460 7A3C 6580 7A43 149 | OVERF LDX I1 NXTPH+1 LOAD PARAM FOR READING K1201470 7A3E C805 150 | LDD NXTPH+2 NEXT PHASE K1201480 7A3F 4C00 7FBC 151 | BSC L ROL BR TO READ IN NEXT PHASE K1201490 7A42 152 | BSS E 0 MAKE ADDRESS EVEN K1201500 7A42 002B 153 | NXTPH DC 43 ID OF NEXT PHASE K1201510 7A43 154 | BSS 3 LOADER TABLE FOR NEXT PHASE K1201520 155 | * K1201530 156 | * MOVE STRING NEXT TO SYMBOL TABLE K1201540 157 | * K1201550 7A46 C0DE 158 | ORGIN LD EOFS END OF STRING ADDRESS K1201560 7A47 90DC 159 | S SOFS START OF STRING ADDRESS K1201570 7A48 D001 160 | STO *+1 ADDR OF NEXT INSTRUCTION K1201580 7A49 6700 0000 161 | LDX L3 *-* RANGE OF MOVE K1201590 7A4B 7301 162 | MDX 3 1 NO. OF WORDS INCLUSIVE K1201600 7A4C 6680 7A25 163 | LDX I2 EOFS END OF STRING ADDR K1201610 7A4E 6580 7A2A 164 | LDX I1 EOFST END OF SYMBOL TABLE ADDRESS K1201620 7A50 C200 165 | ORGA1 LD 2 0 NEXT WORD TO MOVE K1201630 7A51 D102 166 | STO 1 +2 MOVE STRING NEXT TO SYM TBL K1201640 7A52 71FF 167 | MDX 1 -1 DECR MOVE TO ADDRESS K1201650 7A53 72FF 168 | MDX 2 -1 DECR MOVE FROM ADDRESS K1201660 7A54 73FF 169 | MDX 3 -1 DECR NO. OF WORDS TO MOVE K1201670 7A55 70FA 170 | MDX ORGA1 CONTINUE K1201680 7A56 7103 171 | MDX 1 3 INCR TO EQUAL 1ST STMNT PT K1201690 172 | * K1201700 173 | * INITIALIZE INPUT AND OUTPUT K1201710 174 | * STRING POINTERS K1201720 175 | * K1201730 7A57 6680 7A24 176 | LDX I2 SOFS START OF STRING ADDR K1201740 7A59 72FF 177 | MDX 2 -1 DECR BY 1 K1201750 7A5A 6E00 7CC3 178 | STX L2 CKS2+1 STORE AS ASF TABLE ADDRESS K1201760 7A5C 7202 179 | MDX 2 2 K1201770 7A5D 6E00 7DAD 180 | STX L2 XY33+1 ASF TABLE REFERENCE K1201780 7A5F 72FF 181 | MDX 2 -1 K1201790 7A60 6E00 7CC9 182 | STX L2 CKS3+1 STORE FOR ASF ARGUMENT CNT K1201800 183 | * K1201810 184 | * INITIALIZE TO SCAN STATEMENT K1201820 185 | * K1201830 7A62 C100 186 | XY1 LD 1 0 STMNT ID WORD K1201840 7A63 E037 187 | AND S07FF EXTRACT STMNT WORD COUNT K1201850 7A64 1802 188 | SRA 2 RIGHT JUSTIFY K1201860 7A65 D400 7DEC 189 | STO L XY27+1 STORE AS INSTRUCTION ADDR K1201870 7A67 6932 190 | STX 1 XT1 INDEX REG 1 TEMPORARY K1201880 7A68 8031 191 | A XT1 ADDR OF STMNT ID WORD K1201890 7A69 D400 7AC9 192 | STO L NXTID ADDR OF NEXT STMNT ID WORD K1201900 7A6B 6E00 7AB7 193 | STX L2 IDSV2 INDEX REG 2 TEMPORARY K1201910 7A6D 690B 194 | STX 1 IDSV1 INDEX REG 1 TEMPORARY K1201920 7A6E 4400 7B3B 195 | BSI L MOVE1 BR TO OUTPUT 1 ELEMENT K1201930 7A70 C1FF 196 | LD 1 -1 STMNT ID WORD K1201940 7A71 F02C 197 | EOR S0001 EXTRACT AND REVERSE BIT 15 K1201950 7A72 4C04 7A78 198 | BSC L XY2,E BR IF NOT A NUMBERED STMNT K1201960 7A74 4400 7B3B 199 | BSI L MOVE1 BR TO OUTPUT ONE ELEMENT K1201970 7A76 74FF 7DEC 200 | MDX L XY27+1,-1 ADJUST TO EXCLUDE STMNT NO. K1201980 201 | * K1201990 202 | * CHECK FOR END STATEMENT K1202000 203 | * K1202010 7A78 C400 0000 204 | XY2 LD L *-* STMNT ID WORD K1202020 7A79 205 | IDSV1 EQU XY2+1 LABEL PREVIOUS ADDRESS K1202030 7A7A 180B 206 | SRA 11 RIGHT JUSTIFY STMNT TYPE K1202040 7A7B 9020 207 | S TEND END STMNT CONSTANT K1202050 7A7C 4C20 7ACC 208 | BSC L XY5,Z BR IF NOT END STMNT K1202060 209 | * K1202070 210 | * REMOVE ASF TABLE IF PRESENT K1202080 211 | * K1202090 7A7E 74FF 7CBD 212 | MDX L CKAS+1,-1 DECR ASF TABLE COUNTER K1202100 7A80 7001 213 | MDX *+1 BR IF ASF TABLE K1202110 7A81 7014 214 | MDX XY34 BR IF NO ASF TABLE K1202120 7A82 6AA2 215 | STX 2 EOFS END OF STRING ADDR K1202130 7A83 C0A0 216 | LD SOFS START OF STRING ADDR K1202140 7A84 8400 7CBD 217 | A L CKAS+1 ASF TABLE COUNT K1202150 7A86 D001 218 | STO *+1 ADDR OF NEXT INSTRUCTION K1202160 7A87 6500 0000 219 | LDX L1 *-* MOVE FROM ADDRESS K1202170 7A89 6680 7A24 220 | LDX I2 SOFS MOVE TO ADDRESS K1202180 7A8B 9400 7A25 221 | S L EOFS END OF STRING ADDRESS K1202190 7A8D D001 222 | STO *+1 ADDR OF NEXT INSTRUCTION K1202200 7A8E 6700 0000 223 | LDX L3 *-* RANGE OF MOVE K1202210 7A90 C100 224 | MV1 LD 1 0 NEXT WORD TO MOVE K1202220 7A91 D200 225 | STO 2 0 REMOVE ARITH STMNT FUNC TBL K1202230 7A92 7101 226 | MDX 1 1 INCR MOVE FROM ADDR K1202240 7A93 7201 227 | MDX 2 1 INCR MOVE TO ADDR K1202250 7A94 7301 228 | MDX 3 1 INCR MOVE COUNTER K1202260 7A95 70FA 229 | MDX MV1 BR TO CONTINUE MOVE K1202270 7A96 72FF 230 | XY34 MDX 2 -1 END OF STRING = XR2-1 K1202280 7A97 6E00 7A25 231 | STX L2 EOFS NEW END OF STRING ADDR K1202290 7A99 70A2 232 | MDX OVERF K1202300 233 | * K1202310 234 | * CONSTANTS AND WORK AREA K1202320 235 | * K1202330 7A9A 0000 236 | XT1 DC 0 INDEX REG 1 TEMPORARY K1202340 7A9B 07FF 237 | S07FF DC /07FF STMNT TYPE MASK CONSTANT K1202350 7A9C 0002 238 | TEND DC /02 END STMNT CONSTANT K1202360 7A9D 0000 239 | ERNO DC 0 ERROR NUMBER TEMPORARY K1202370 7A9E 0001 240 | S0001 DC /0001 STMNT NO. INDR BIT MASK K1202380 7A9F F803 241 | SF802 DC /F803 STMNT WORD COUNT MASK K1202390 7AA0 0020 242 | S0020 DC /0020 DEFINED BIT CONSTANT K1202400 243 | * K1202410 244 | * CHECK FOR STMNT TERMINATOR K1202420 245 | * K1202430 7AA1 C100 246 | XY13 LD 1 0 NEXT STMNT WORD K1202440 7AA2 4C20 7AB6 247 | BSC L XY7,Z BR IF NO TERMINATOR K1202450 7AA4 4400 7B27 248 | XY11 BSI L PUT BR TO MOVE 1 WD TO OUTPUT K1202460 7AA6 C480 7AB7 249 | CRCTN LD I IDSV2 STMNT ID WITHOUT WD COUNT K1202470 7AA8 E400 7A9F 250 | AND L SF802 ZERO WORD COUNT BITS K1202480 7AAA D009 251 | STO XT4 STMNT ID WORD TEMPORARY K1202490 7AAB 6A07 252 | STX 2 XT3 INDEX REG 2 TEMPORARY K1202500 7AAC C006 253 | LD XT3 NEXT STMNT ID WD ADDRESS K1202510 7AAD 9009 254 | S IDSV2 CURRENT STMNT ID WD ADDRESS K1202520 7AAE 1002 255 | SLA 2 POSITION TO STORE STMNT CNT K1202530 7AAF 8004 256 | A XT4 STMNT ID W/O WORD COUNT K1202540 7AB0 D480 7AB7 257 | STO I IDSV2 CORRECTED STMNT ID WORD K1202550 7AB2 7015 258 | MDX XY22 BR TO MOVE TO NEXT STMNT K1202560 259 | * K1202570 260 | * CONSTANTS AND WORK AREA K1202580 261 | * K1202590 7AB3 0000 262 | XT3 DC 0 INDEX REG 2 TEMPORARY K1202600 7AB4 0000 263 | XT4 DC 0 STMNT ID WORD TEMPORARY K1202610 7AB5 A008 264 | ERID DC /A008 ERROR ID WORD K1202620 265 | * K1202630 266 | * REPLACE STATEMENT WITH ERROR K1202640 267 | * K1202650 7AB6 6600 0000 268 | XY7 LDX L2 *-* STMNT ID WORD ADDRESS K1202660 7AB6 269 | ATERR EQU XY7 LABEL LAST INSTRUCTION K1202670 7AB7 270 | IDSV2 EQU XY7+1 LABEL LAST INSTRUCTION ADDR K1202680 7AB8 C200 271 | LD 2 0 OUTPUT STMNT ID WORD K1202690 7AB9 F055 272 | EOR FIVE REVERSE STMNT NO. INDR BIT K1202700 7ABA 4C04 7AC1 273 | BSC L *+5,E BR IF NOT A NUMBERED STMNT K1202710 7ABC C052 274 | LD FIVE STMNT NUMBERED INDR K1202720 7ABD 80F7 275 | A ERID SET BIT 15 ON AND INCR CNT K1202730 7ABE D200 276 | STO 2 0 REPLACE STMNT ID WORD K1202740 7ABF 7201 277 | MDX 2 1 INCR STMNT POINTER K1202750 7AC0 7003 278 | MDX *+3 BR TO SET UP ERROR NUMBER K1202760 7AC1 C400 7AB5 279 | LD L ERID ERROR ID WORD K1202770 7AC3 D200 280 | STO 2 0 STMNT ID WORD K1202780 7AC4 C400 7A9D 281 | LD L ERNO ERROR NUMBER K1202790 7AC6 D201 282 | STO 2 1 STORE ON OUTPUT STRING K1202800 7AC7 7202 283 | MDX 2 2 INCR STMNT POINTER K1202810 7AC8 6500 0000 284 | XY22 LDX L1 *-* NEXT STMNT ID WORD ADDRESS K1202820 7AC9 285 | NXTID EQU XY22+1 LABEL FOR PRECEDING ADDRESS K1202830 7ACA 4C00 7A62 286 | BSC L XY1 BR TO SCAN NEXT STMNT K1202840 287 | * K1202850 288 | * CHECK FOR AN ARITHMETIC STATEMENT K1202860 289 | * K1202870 7ACC 9040 290 | XY5 S TARTH ARITH STMNT CONSTANT K1202880 7ACD 4C20 7AE9 291 | BSC L XY23,Z BR IF NOT ARITH STMNT K1202890 7ACF 6324 292 | LDX 3 36 ERROR NUMBER 36 K1202900 7AD0 6F00 7A9D 293 | STX L3 ERNO SET UP ERROR NUMBER K1202910 7AD2 C100 294 | LD 1 0 STMNT ID WORD K1202920 7AD3 4041 295 | BSI GETID BR TO GET SYMBOL TBL ID WD K1202930 7AD4 4400 7CCF 296 | BSI L TESTV BR TO TEST VARIABLE NAMES K1202940 7AD6 C300 297 | LD 3 0 SYMBOL TABLE ID WORD K1202950 7AD7 EC00 7AA0 298 | OR L S0020 SET DEFINED BIT ON K1202960 7AD9 D300 299 | STO 3 0 RESTORE ID WORD K1202970 7ADA 4400 7B47 300 | BSI L NAME BR TO CHK NAME DIMENSIONING K1202980 7ADC C400 7B70 301 | LD L SW1 TEST DIMENSIONED NAME SUBSC K1202990 7ADE 4C20 7AB6 302 | BSC L XY7,Z BR IF NOT SUBSCRIPTED K1203000 303 | * K1203010 304 | * SCAN ARITH EXPRESSION IF EQUAL SIGN K1203020 305 | * K1203030 7AE0 C100 306 | XY5A LD 1 0 NEXT STMNT WORD K1203040 7AE1 902C 307 | S EQSGN EQUAL SIGN CONSTANT K1203050 7AE2 4C20 7AB6 308 | BSC L XY7,Z BR IF NOT EQUAL SIGN K1203060 7AE4 4400 7B3B 309 | BSI L MOVE1 BR TO MOVE ONE ELEMENT K1203070 7AE6 4400 7B98 310 | BSI L ARITH BR TO ARITH SCAN K1203080 7AE8 70B8 311 | MDX XY13 BR TO CHK FOR SEMICOLON K1203090 312 | * K1203100 313 | * CHECK FOR IF STATEMENT K1203110 314 | * K1203120 7AE9 9026 315 | XY23 S TIF IF STMNT CONSTANT K1203130 7AEA 4C20 7CE3 316 | BSC L XY25,Z BR IF NOT IF STMNT K1203140 7AEC 6325 317 | LDX 3 37 ERROR NUMBER 37 K1203150 7AED 6F00 7A9D 318 | STX L3 ERNO SET UP ERROR NUMBER K1203160 7AEF C021 319 | LD IFOP IF OPERATOR K1203170 7AF0 403B 320 | BSI CHECK BR TO CHK STRING OVERLAP K1203180 321 | * K1203190 322 | * CHECK FOR LEFT PARENTHESIS K1203200 323 | * K1203210 7AF1 C100 324 | LD 1 0 NEXT STMNT WORD K1203220 7AF2 901F 325 | S ULP LEFT PARENTHESIS CONSTANT K1203230 7AF3 4C20 7AB6 326 | BSC L XY7,Z BR IF NOT LEFT PARENTHESIS K1203240 7AF5 4045 327 | BSI MOVE1 BR TO MOVE ONE ELEMENT K1203250 7AF6 6326 328 | LDX 3 38 ERROR NUMBER 38 K1203260 7AF7 6F00 7A9D 329 | STX L3 ERNO SET UP ERROR WORD K1203270 7AF9 4400 7B98 330 | BSI L ARITH BR TO ARITH SCAN K1203280 7AFB 6325 331 | LDX 3 37 ERROR NUMBER 37 K1203290 7AFC 6F00 7A9D 332 | STX L3 ERNO SET UP ERROR WORD K1203300 333 | * K1203310 334 | * CHECK FOR RIGHT PARENTHESIS K1203320 335 | * K1203330 7AFE C100 336 | LD 1 0 NEXT STMNT WORD K1203340 7AFF 9013 337 | S URP RIGHT PARENTHESIS CONSTANT K1203350 7B00 4C20 7AB6 338 | BSC L XY7,Z BR IF NOT RIGHT PARENTHESIS K1203360 7B02 4038 339 | BSI MOVE1 BR TO MOVE ONE ELEMENT K1203370 340 | * K1203380 341 | * CHECK FOR COMMA OPERATOR K1203390 342 | * K1203400 7B03 C010 343 | LD UCMA COMMA OPERATOR CONSTANT K1203410 7B04 4027 344 | BSI CHECK BR TO CHECK STRING OVERLAP K1203420 7B05 4400 7B78 345 | BSI L LIST BR TO CHK STMNT NO. LISTS K1203430 7B07 C400 7B94 346 | LD L CNT STMNT NO. COUNT K1203440 7B09 9005 347 | S FIVE DECIMAL FIVE K1203450 7B0A 4C20 7AB6 348 | BSC L XY7,Z BR IF NOT FIVE K1203460 7B0C 7094 349 | MDX XY13 BR TO CHK FOR SEMICOLON K1203470 350 | * K1203480 351 | * CONSTANTS AND WORK AREA K1203490 352 | * K1203500 7B0D FFFE 353 | TARTH DC /00-/02 ARITHMETIC ID K1203510 7B0E 000E 354 | EQSGN DC /0E = OPERATOR K1203520 7B0F 0005 355 | FIVE DC 5 DECIMAL FIVE CONSTANT K1203530 7B10 000F 356 | TIF DC /0F-/00 IF ID K1203540 7B11 0014 357 | IFOP DC /14 IF OPERATOR K1203550 7B12 0010 358 | ULP DC /10 ( OPERATOR K1203560 7B13 0002 359 | URP DC /02 ) OPERATOR K1203570 7B14 0012 360 | UCMA DC /12 , OPERATOR K1203580 361 | *************************************************** K1203590 362 | * THIS SUBROUTINE GETS THE ID WORD * K1203600 363 | * FROM THE SYMBOL TABLE. THE ENTRY IS * K1203610 364 | * A BSI INSTRUCTION TO THE LABEL GETID* K1203620 365 | *************************************************** K1203630 366 | * K1203640 367 | * GET ID WORD K1203650 368 | * K1203660 7B15 0000 369 | GETID DC 0 RETURN ADDRESS K1203670 7B16 4C10 7AB6 370 | BSC L XY7,- BR IF NOT SYMBOL TBL PT K1203680 7B18 E00D 371 | AND SO1FF EXTRACT TABLE DISPLACEMENT K1203690 7B19 1002 372 | SLA 2 EFFECTIVE MULTIPLY BY 4 K1203700 7B1A D006 373 | STO *+6 TEMPORARY STORE K1203710 7B1B 1802 374 | SRA 2 RESTORE - RIGHT JUSTIFY K1203720 7B1C 9004 375 | S *+4 -3 TIMES DISPLACEMENT K1203730 7B1D 8400 7A26 376 | A L SOFST START OF SYMBOL TBL ADDR K1203740 7B1F D001 377 | STO *+1 ADDR OF NEXT INSTRUCTION K1203750 7B20 6700 0000 378 | LDX L3 *-* INDEX 3 = SYMBOL TBL ADDR K1203760 7B22 7303 379 | MDX 3 3 ADJUST ADDRESS K1203770 7B23 C300 380 | LD 3 0 SYMBOL TABLE ID WORD K1203780 7B24 4C80 7B15 381 | BSC I GETID BR TO EXIT GETID SUBROUTINE K1203790 382 | * K1203800 383 | * CONSTANTS AND WORK AREA K1203810 384 | * K1203820 7B26 07FF 385 | SO1FF DC /07FF SYMBOL TBL POINTER MASK K1203830 386 | * K1203840 387 | *************************************************** K1203850 388 | * THIS SUBROUTINE PLACES THE ITEMS * K1203860 389 | * ON THE NEW STRING. THE ENTRY IS A * K1203870 390 | * BSI INSTRUCTION TO THE LABEL PUT. * K1203880 391 | *************************************************** K1203890 392 | * STORE ACCUMULATOR ON NEW STRING K1203900 393 | * K1203910 7B27 0000 394 | PUT DC 0 RETURN ADDRESS K1203920 7B28 D200 395 | STO 2 0 ONE ELEMENT TO NEW STRING K1203930 7B29 7201 396 | MDX 2 1 INCR NEW STRING POINTER K1203940 7B2A 4C80 7B27 397 | BSC I PUT BR TO EXIT FROM PUT K1203950 398 | *************************************************** K1203960 399 | * THIS SUBROUTINE CHECKS FOR ROOM * K1203970 400 | * BETWEEN THE TWO STRINGS. THE ENTRY * K1203980 401 | * IS A BSI INSTRUCTION TO THE LABEL * K1203990 402 | * CHECK. * K1204000 403 | *************************************************** K1204010 404 | * K1204020 405 | * CALL PUT K1204030 406 | * K1204040 7B2C 0000 407 | CHECK DC 0 RETURN ADDRESS K1204050 7B2D 40F9 408 | BSI PUT BR TO MOVE ONE ELEMENT K1204060 409 | * K1204070 410 | * CHK FOR XR1 GREATER THAN XR2 K1204080 411 | * K1204090 7B2E 690B 412 | STX 1 CKTEM INDEX REGISTER 1 TEMPORARY K1204100 7B2F C00A 413 | LD CKTEM ADDR OF INPUT STRING K1204110 7B30 6A09 414 | STX 2 CKTEM INDEX REGISTER 2 TEMPORARY K1204120 7B31 9008 415 | S CKTEM ADDR OF OUTPUT STRING K1204130 7B32 4C08 7B36 416 | BSC L CK1,+ BR IF STRING OVERLAP K1204140 7B34 4C80 7B2C 417 | BSC I CHECK BR TO EXIT K1204150 7B36 7401 7A2D 418 | CK1 MDX L ERROR,1 SET OVERLAP ERROR ON K1204160 7B38 4C00 7A3C 419 | BSC L OVERF BR TO RD AND GO TO NEXT PH K1204170 420 | * K1204180 421 | * CONSTANTS AND WORK AREA K1204190 422 | * K1204200 7B3A 0000 423 | CKTEM DC 0 INDEX REG TEMPORARY STORE K1204210 424 | * K1204220 425 | *************************************************** K1204230 426 | * THIS SUBROUTINE OUTPUTS ONE ELEMENT * K1204240 427 | * AND MOVES THE POINTER. THE ENTRY IS * K1204250 428 | * A BSI INSTRUCTION TO THE LABEL MOVE1* K1204260 429 | *************************************************** K1204270 430 | * CALL PUT K1204280 431 | * K1204290 7B3B 0000 432 | MOVE1 DC 0 RETURN ADDRESS K1204300 7B3C C100 433 | LD 1 0 NEXT STMNT WORD K1204310 7B3D 40E9 434 | BSI PUT BR TO MOVE ONE ELEMENT K1204320 7B3E 7101 435 | MDX 1 1 INCR INPUT POINTER K1204330 7B3F 4C80 7B3B 436 | BSC I MOVE1 BR TO EXIT K1204340 437 | *************************************************** K1204350 438 | * THIS SUBROUTINE OUTPUT UNDER CONTROL* K1204360 439 | * OF XR3. THE ENTRY IS A BSI INSTRUC. * K1204370 440 | * TO THE LABEL OUT. * K1204380 441 | *************************************************** K1204390 442 | * CALL MOVE1 K1204400 443 | * K1204410 7B41 0000 444 | OUT DC 0 RETURN ADDRESS K1204420 7B42 40F8 445 | BSI MOVE1 BR TO MOVE ONE ELEMENT K1204430 7B43 73FF 446 | MDX 3 -1 DECR MOVE COUNT K1204440 7B44 70FD 447 | MDX OUT+1 BR TO OUTPUT ONE MORE K1204450 7B45 4C80 7B41 448 | BSC I OUT EXIT IF COUNT IS ZERO K1204460 449 | *************************************************** K1204470 450 | * THIS SUBROUTINE HANDLES THE NAME * K1204480 451 | * AND THE SUBSCRIPT IF THERE IS AND * K1204490 452 | * SHOULD BE ONE. THE ENTRY IS A BSI * K1204500 453 | * INSTRUCTION TO THE LABEL NAME. * K1204510 454 | *************************************************** K1204520 455 | * K1204530 456 | * CALL PUT K1204540 457 | * K1204550 7B47 0000 458 | NAME DC 0 RETURN ADDRESS K1204560 7B48 C100 459 | LD 1 0 NEXT STMNT WORD K1204570 7B49 40DD 460 | BSI PUT BR TO OUTPUT ONE ELEMENT K1204580 7B4A 40CA 461 | BSI GETID BR TO GET SYMBOL TBL ID WD K1204590 7B4B D02B 462 | STO SVID ID WORD TEMPORARY K1204600 7B4C E025 463 | AND S1800 EXTRACT DIMENSION BITS K1204610 7B4D 4C20 7B55 464 | BSC L NAME1,Z BR IF NOT DIMENSIONED NAME K1204620 7B4F 7101 465 | MDX 1 1 INCR STMNT POINTER K1204630 7B50 6820 466 | STX 0 SW7 SET DIMENSIONED NAME SW ON K1204640 7B51 1010 467 | NAME3 SLA 16 CLEAR ACCUMULATOR K1204650 7B52 D01D 468 | STO SW1 ZERO DIMENSION SUBSC INDR K1204660 7B53 4C80 7B47 469 | NAME8 BSC I NAME BR TO EXIT K1204670 470 | * K1204680 471 | * RESET DIMENSIONED NAME SWITCH K1204690 472 | * K1204700 7B55 1010 473 | NAME1 SLA 16 CLEAR ACCUMULATOR K1204710 7B56 D01A 474 | STO SW7 RESET DIMENSIONED NAME SW K1204720 7B57 7101 475 | MDX 1 1 INCR STMNT POINTER K1204730 7B58 C100 476 | LD 1 0 NEXT STMNT WORD K1204740 7B59 9019 477 | S NP3 3 DIMENSION OPERATOR CON K1204750 7B5A 4C20 7B5F 478 | BSC L NAME2,Z BR IF NOT 3 DIMENSION K1204760 7B5C 630F 479 | LDX 3 15 SET UP OUTPUT SPACE IN XR3 K1204770 7B5D 40E3 480 | NAME4 BSI OUT BR TO MOVE TO OUTPUT STRING K1204780 7B5E 70F2 481 | MDX NAME3 BR TO NORMALIZE SWITCH 1 K1204790 7B5F 9014 482 | NAME2 S NP2 2 DIMENSION OPERATOR CON K1204800 7B60 4C20 7B64 483 | BSC L NAME5,Z BR IF NOT 2 DIMENSION K1204810 7B62 630B 484 | LDX 3 11 SET UP OUTPUT SPACE IN XR3 K1204820 7B63 70F9 485 | MDX NAME4 BR TO OUTPUT K1204830 7B64 9010 486 | NAME5 S NP1 1 DIMENSION OPERATOR CON K1204840 7B65 4C20 7B69 487 | BSC L NAME6,Z BR IF NOT 1 DIMENSION K1204850 7B67 6307 488 | LDX 3 7 SET UP OUTPUT SPACE IN XR3 K1204860 7B68 70F4 489 | MDX NAME4 BR TO OUTPUT K1204870 7B69 900C 490 | NAME6 S NP0 O DIMENSION OPERATOR CON K1204880 7B6A 4C20 7B6E 491 | BSC L NAME7,Z BR IF NOT O DIMENSION K1204890 7B6C 6303 492 | LDX 3 3 SET UP OUTPUT SPACE IN XR3 K1204900 7B6D 70EF 493 | MDX NAME4 BR TO OUTPUT K1204910 7B6E 6801 494 | NAME7 STX 0 SW1 SET SWITCH 1 ON K1204920 7B6F 70E3 495 | MDX NAME8 BR TO EXIT FROM NAME K1204930 496 | * K1204940 497 | * CONSTANTS AND WORK AREA K1204950 498 | * K1204960 7B70 0000 499 | SW1 DC 0 DIMENSIONED NAME SUBSC SW K1204970 7B71 0000 500 | SW7 DC 0 DIMENSIONED NAME SWITCH K1204980 7B72 1800 501 | S1800 DC /1800 DIMENSION INDICATOR MASK K1204990 7B73 001E 502 | NP3 DC /1E (3 OPERATOR CONSTANT K1205000 7B74 FFFE 503 | NP2 DC /1C-/1E (2 OPERATOR CONSTANT K1205010 7B75 FFFE 504 | NP1 DC /1A-/1C (1 OPERATOR CONSTANT K1205020 7B76 FFFE 505 | NP0 DC /18-/1A (0 OPERATOR CONSTANT K1205030 7B77 0000 506 | SVID DC *-* SYMBOL TABLE ID WORD TEMP K1205040 507 | *************************************************** K1205050 508 | * THIS SUBROUTINE CHECKS THE STATEMENTS K1205060 509 | * NUMBER LIST OF IF AND GOTO STATEMENTS K1205070 510 | * ENTRY IS A BSI INSTRUCTION TO THE * K1205080 511 | * LABEL LIST * K1205090 512 | *************************************************** K1205100 7B78 0000 513 | LIST DC 0 RETURN ADDRESS K1205110 7B79 1010 514 | SLA 16 CLEAR ACCUMULATOR K1205120 7B7A D019 515 | STO CNT ZERO COUNT OF WORDS OUTPUT K1205130 516 | * K1205140 517 | * CHK FOR NON-FORMAT STMNT NUMBER K1205150 518 | * K1205160 7B7B C100 519 | LIST3 LD 1 0 NEXT STMNT WORD K1205170 7B7C 4400 7B15 520 | BSI L GETID BR TO GET SYMBOL TABLE ID K1205180 7B7E E017 521 | AND SFFDF REMOVE REFERENCED NO. INDR K1205190 7B7F F017 522 | EOR S0200 FLIP STMNT NO. INDR BIT K1205200 7B80 4C20 7B8A 523 | BSC L LIST2,Z BR IF NO STMNT NUMBER K1205210 7B82 40B8 524 | BSI MOVE1 BR TO MOVE 1 WD TO OUTPUT K1205220 7B83 7401 7B94 525 | MDX L CNT,1 INCR WORDS OUTPUT COUNT K1205230 526 | * K1205240 527 | * CHECK FOR COMMA CHARACTER K1205250 528 | * K1205260 7B85 C100 529 | LD 1 0 NEXT STMNT WORD K1205270 7B86 900E 530 | S LCMA COMMA CONSTANT K1205280 7B87 4C18 7B8F 531 | BSC L LIST4,+- BR IF COMMA K1205290 7B89 7003 532 | MDX LIST5 BR TO EXIT K1205300 533 | * K1205310 534 | * SET UP ERROR 43 K1205320 535 | * K1205330 7B8A 632B 536 | LIST2 LDX 3 43 INDEX REG 3 = 43 K1205340 7B8B 6F00 7A9D 537 | STX L3 ERNO SET UP ERROR WORD K1205350 538 | * K1205360 539 | * RETURN K1205370 540 | * K1205380 7B8D 4C80 7B78 541 | LIST5 BSC I LIST EXIT FROM LIST CHECK SUBR K1205390 7B8F 7401 7B94 542 | LIST4 MDX L CNT,1 INCR WORD OUTPUT COUNT K1205400 7B91 4400 7B3B 543 | BSI L MOVE1 BR TO OUTPUT ONE WORD K1205410 7B93 70E7 544 | MDX LIST3 BR TO GET SYMBOL TBL ID WD K1205420 545 | * K1205430 546 | * CONSTANTS AND WORK AREA K1205440 547 | * K1205450 7B94 0000 548 | CNT DC 0 NO. OF WDS OUTPUT COUNTER K1205460 7B95 0012 549 | LCMA DC /12 COMMA CHARACTER CONSTANT K1205470 7B96 FFDF 550 | SFFDF DC /FFDF SYMBOL TABLE ID WORD MASK K1205480 7B97 0200 551 | S0200 DC /0200 STMNT NUMBER INDR MASK K1205490 552 | *************************************************** K1205500 553 | * THIS SUBROUTINE CHECKS AND ALTERS * K1205510 554 | * ALL ARITHMETIC EXPRESSIONS TO BE * K1205520 555 | * SCANNED. THE ENTRY IS A BSI COMMAND * K1205530 556 | * TO THE LABEL ARITH. INDEX REGISTER * K1205540 557 | * 1 POINTS AT THE RIGHT STRING AND * K1205550 558 | * INDEX REGISTER 2 POINTS AT THE LEFT * K1205560 559 | * STRING. THE ARITHMETIC EXPRESSION * K1205570 560 | * IS MOVED FROM THE RIGHT STRING TO * K1205580 561 | * THE LEFT STRING AS IT IS CHECKED. * K1205590 562 | * A NEST CALL TABLE IS INSERTED IN THE* K1205600 563 | * STRING AS NEEDED. * K1205610 564 | *************************************************** K1205620 565 | * K1205630 566 | * INITIALIZE TO HANDLE EXPRESSIONS K1205640 567 | * K1205650 7B98 0000 568 | ARITH DC 0 SUBR ENTRY POINT K1205660 7B99 1010 569 | SLA 16 CLEAR ACCUMULATOR K1205670 7B9A D072 570 | STO PAR CLEAR PARENTHESIS COUNTER K1205680 7B9B D072 571 | STO SW4 CLEAR SIGN ALLOWABLE SWITCH K1205690 7B9C D072 572 | STO SW5 CLEAR PT INSIDE FUNCTION SW K1205700 7B9D D073 573 | STO CALLN FUNCTION CALL INDICATOR K1205710 7B9E D074 574 | STO ASFN ARITH STMNT FUNC INDICATOR K1205720 7B9F 6301 575 | LDX 3 1 SET INDEX REG 3 =1 K1205730 7BA0 6B71 576 | STX 3 PARNO INITIALIZE PARAMETER COUNT K1205740 7BA1 C400 7AC9 577 | LD L NXTID K1205750 7BA3 D400 7C98 578 | STO L ATH14+1 ADDR OF NEXT STMNT ID WORD K1205760 7BA5 C100 579 | ATH3 LD 1 0 NEXT STMNT WORD K1205770 7BA6 4C28 7BC5 580 | BSC L ATH1,+Z BR IF NOT OPERATOR K1205780 7BA8 9067 581 | S ARPEN LEFT PARENTHESIS CONSTANT K1205790 7BA9 4C20 7BB2 582 | BSC L ATH2,Z BR IF NOT LEFT PARENTHESIS K1205800 583 | * K1205810 584 | * PAR = PAR + 1 K1205820 7BAB 7401 7C0D 585 | MDX L PAR,1 INCR PARENTHESIS COUNT K1205830 7BAD 4400 7B3B 586 | ATH12 BSI L MOVE1 BR TO MOVE ONE WD TO OUTPUT K1205840 7BAF 1010 587 | SLA 16 CLEAR ACCUMULATOR K1205850 7BB0 D05D 588 | STO SW4 NORMALIZE SWITCH 4 K1205860 7BB1 70F3 589 | MDX ATH3 BR TO CHK NEXT STMNT WORD K1205870 7BB2 C05B 590 | ATH2 LD SW4 SIGN ALLOWABLE SWITCH K1205880 7BB3 4C20 7AB6 591 | BSC L ATERR,Z BR IF SIGN NOT ALLOWABLE K1205890 7BB5 C100 592 | LD 1 0 NEXT STMNT WORD K1205900 7BB6 9400 7C60 593 | S L APSGN PLUS SIGN CONSTANT K1205910 7BB8 4C18 7BC2 594 | BSC L ATH4,+- BR IF PLUS SIGN FOUND K1205920 7BBA 9400 7C61 595 | S L AMSGN MINUS SIGN CONSTANT K1205930 7BBC 4C20 7AB6 596 | BSC L ATERR,Z BR IF NOT MINUS SIGN K1205940 597 | * K1205950 598 | * CALL PUT (U- OPERATOR) K1205960 599 | * K1205970 7BBE C400 7C62 600 | LD L UMNS U- OPERATOR K1205980 7BC0 4400 7B27 601 | BSI L PUT BR TO PUT ON OUTPUT STRING K1205990 7BC2 7101 602 | ATH4 MDX 1 1 INCR STMNT POINTER K1206000 7BC3 684A 603 | ATH11 STX 0 SW4 SET SWITCH 4 ON K1206010 7BC4 70E0 604 | MDX ATH3 BR TO CHK NEXT STMNT WORD K1206020 7BC5 D400 7C63 605 | ATH1 STO L SNAME SAVE NAME IN SNAME K1206030 7BC7 4400 7B47 606 | BSI L NAME BR TO CHK NAME DIMENSIONING K1206040 7BC9 C400 7B70 607 | LD L SW1 DIMENSIONED NAME SUBSCR SW K1206050 7BCB 4C20 7C6F 608 | BSC L ATH5,Z BR IF NAME NOT SUBSCRIPTED K1206060 7BCD C400 7B71 609 | LD L SW7 DIMENSIONED NAME SWITCH K1206070 7BCF 4C18 7BE9 610 | BSC L ATH6,+- BR IF NAME NOT DIMENSIONED K1206080 611 | * K1206090 612 | * CHECK FOR CONSTANT K1206100 613 | * K1206110 7BD1 C0A5 614 | LD SVID SYMBOL TABLE ID WORD K1206120 7BD2 4C28 7BE9 615 | BSC L ATH6,+Z BR TO CHECK FOR SEMICOLON K1206130 7BD4 C100 616 | LD 1 0 NEXT STMNT WORD K1206140 7BD5 903A 617 | S ARPEN LEFT PARENTHESIS CONSTANT K1206150 7BD6 4C18 7C16 618 | BSC L ATH7,+- BR IF LEFT PARENTHESIS K1206160 7BD8 C09E 619 | LD SVID LOAD ID K1206170 7BD9 E03A 620 | AND S0190 CHECK IF ARITHMETIC STMNT K1206180 7BDA 4C18 7BE9 621 | BSC L ATH6,+- BR IF ARITHMETIC STMNT K1206190 7BDC F038 622 | EOR H0090 K1206200 7BDD 4C18 7C09 623 | BSC L ATH20,+- BRANCH IF EXTERNAL 2-6 K1206210 7BDF C400 7A30 624 | LD L SORF TEST FOR SUBR OR FUNCTION K1206220 7BE1 4C08 7AB6 625 | BSC L XY7,+ BRANCH IF SUBROUTINE K1206230 7BE3 C400 7A2E 626 | LD L FNAME LOAD PROG NAME SYM TBL PT K1206240 7BE5 9400 7C63 627 | S L SNAME COMPARE WITH FUNCTION PT K1206250 7BE7 4C20 7AB6 628 | ATH21 BSC L XY7,Z BR TO ERR IF FNAME NE SNAME K1206260 7BE9 C100 629 | ATH6 LD 1 0 NEXT STMNT WORD K1206270 7BEA 4C18 7C04 630 | BSC L ATH8,+- BR IF SEMICOLON K1206280 7BEC 9073 631 | S APSGN PLUS SIGN CONSTANT K1206290 7BED 4C18 7C01 632 | BSC L ATH9,+- BR IF PLUS SIGN K1206300 7BEF 9071 633 | S AMSGN MINUS SIGN CONSTANT K1206310 7BF0 4C18 7C01 634 | BSC L ATH9,+- BR IF MINUS SIGN K1206320 7BF2 9071 635 | S ASLH SLASH CONSTANT K1206330 7BF3 4C18 7C01 636 | BSC L ATH9,+- BR IF SLASH K1206340 7BF5 906F 637 | S ASTER ASTERISK CONSTANT K1206350 7BF6 4C20 7C79 638 | BSC L ATH10,Z BR IF NOT ASTERISK K1206360 7BF8 C101 639 | LD 1 1 NEXT STMNT WORD K1206370 7BF9 906C 640 | S ASK ASTERISK CONSTANT K1206380 7BFA 4C20 7C01 641 | BSC L ATH9,Z BR IF NOT ASTERISK K1206390 642 | * K1206400 643 | * CALL PUT (** OPERATOR) K1206410 644 | * K1206420 7BFC 7102 645 | MDX 1 2 MOVE POINTER BY 2 K1206430 7BFD C069 646 | LD AEXP ** OPERATOR K1206440 7BFE 4400 7B27 647 | BSI L PUT BR TO PUT ON OUTPUT STRING K1206450 7C00 70C2 648 | MDX ATH11 BR TO TAG SWITCH 4 K1206460 7C01 4400 7B3B 649 | ATH9 BSI L MOVE1 BR TO ONE WD TO OUTPUT K1206470 7C03 70BF 650 | MDX ATH11 BR TO TAG SWITCH 4 K1206480 7C04 C008 651 | ATH8 LD PAR PARENTHESIS COUNT K1206490 7C05 4C20 7AB6 652 | BSC L ATERR,Z BR IF NOT ZERO TO SET ERROR K1206500 7C07 4C80 7B98 653 | BSC I ARITH BR TO EXIT FROM ARITH SUBR K1206510 654 | * K1206520 7C09 C005 655 | ATH20 LD SW5 ERROR IF POINTER IS 2-8 K1206521 7C0A 4C18 7AB6 656 | BSC L XY7,+- *OUTSIDE PARAMETER LIST 2-8 K1206522 7C0C 70DC 657 | MDX ATH6 CONTINUE IF NOT 2-8 K1206523 658 | * K1206527 659 | * CONSTANTS AND WORK AREA K1206530 660 | * K1206540 7C0D 0000 661 | PAR DC 0 PARENTHESIS COUNT K1206550 7C0E 0000 662 | SW4 DC 0 SWITCH 4 - SIGN ALLOWABLE K1206560 7C0F 0000 663 | SW5 DC 0 POINTER INSIDE FUNC CALL SW K1206570 7C10 0010 664 | ARPEN DC /10 LEFT PARENTHESIS CONSTANT K1206580 7C11 0000 665 | CALLN DC 0 FUNCTION CALL INDICATOR K1206590 7C12 0000 666 | PARNO DC 0 PARAMETER COUNT K1206600 7C13 0000 667 | ASFN DC 0 ARITH STMNT FUNC INDICATOR K1206610 7C14 0190 668 | S0190 DC /0190 ARITHMETIC STMNT MASK K1206620 7C15 0090 669 | H0090 DC /0090 EXTERNAL STMNT MASK K1206630 670 | * K1206640 671 | * CALL CHECK (C OPERATOR) K1206650 672 | * K1206660 7C16 C051 673 | ATH7 LD ACALL C OPERATOR K1206670 7C17 4400 7B2C 674 | BSI L CHECK CHECK FOR OVERLAP K1206680 7C19 68F5 675 | STX 0 SW5 SET SWITCH 5 ON K1206690 7C1A 7401 7C11 676 | MDX L CALLN,1 CALLN = CALLN +1 K1206700 677 | * K1206710 678 | * CHK FOR LEGAL SUBPROGRAM NAME K1206720 679 | * K1206730 7C1C C046 680 | LD SNAME IS IT REFERENCE TO 2-5 K1206732 7C1D 9400 7A2E 681 | S L FNAME NAME OF THIS PROGRAM 2-5 K1206734 7C1F 4C18 7AB6 682 | BSC L ATERR,+- YES - ERROR 36 2-5 K1206736 7C21 C041 683 | LD SNAME NAME K1206740 7C22 4400 7B15 684 | BSI L GETID GET SYMBOL TABLE ID WORD K1206750 7C24 1008 685 | SLA 8 SUBPROGRAM NAME BIT TO SIGN K1206760 7C25 4C02 7C31 686 | BSC L ATH19,C BR IF STMNT FUNCTION NAME K1206770 7C27 4C28 7C3A 687 | BSC L ATH17,+Z BR IF SUBPROGRAM NAME K1206780 7C29 C300 688 | LD 3 0 SYMBOL TABLE ID WORD K1206790 7C2A E041 689 | AND SBE7F LEGAL SUBPROGRAM NAME MASK K1206800 7C2B 4C20 7AB6 690 | BSC L ATERR,Z BR TO SET UP ERROR K1206810 7C2D C300 691 | ATH15 LD 3 0 SYMBOL TABLE ID WORD K1206820 7C2E E83F 692 | OR S0080 SUBPROGRAM INDICATOR BIT K1206830 7C2F D300 693 | STO 3 0 RESTORE SYMBOL TBL ID WORD K1206840 7C30 7009 694 | MDX ATH17 CONTINUE K1206845 695 | * K1206850 7C31 6780 7AB7 696 | ATH19 LDX I3 IDSV2 IS THIS THE 2-5 K1206852 7C33 7301 697 | MDX 3 1 NAME OF THE 2-5 K1206853 7C34 6B01 698 | STX 3 *+1 STATEMENT 2-5 K1206854 7C35 C400 0000 699 | LD L *-* FUNCTION JUST 2-5 K1206856 7C37 902B 700 | S SNAME BEING LOOKED AT 2-5 K1206857 7C38 4C18 7AB6 701 | BSC L ATERR,+- YES - ERROR 42 2-5 K1206858 702 | * K1206859 703 | * XR2 +2 LESS THAN XR1 K1206860 704 | * K1206870 7C3A 6A2E 705 | ATH17 STX 2 ATEMP INDEX REG 2 TEMPORARY K1206880 7C3B C02D 706 | LD ATEMP XR2 CONTENTS-OUTPUT STRING K1206890 7C3C 8030 707 | A ATWO INCR BY 2 K1206900 7C3D 692B 708 | STX 1 ATEMP INDEX REG 1 TEMPORARY K1206910 7C3E 902A 709 | S ATEMP ADDR OF INPUT STRING K1206920 7C3F 4C10 7B36 710 | BSC L CK1,- BR IF OVERLAP ERROR K1206930 711 | * K1206940 712 | * OPEN STRING 2 WORDS K1206950 713 | * K1206960 7C41 C056 714 | LD ATH14+1 NEXT STMNT ID WORD ADDRESS K1206970 7C42 9026 715 | S ATEMP CURRENT STMNT ADDRESS K1206980 7C43 D001 716 | STO *+1 ADDR NEXT INSTRUCTION K1206990 7C44 6700 0000 717 | LDX L3 *-* RANGE - NO. WDS TO MOVE K1207000 7C46 71FE 718 | MDX 1 -2 DECR CURRENT STMNT ADDRESS K1207010 7C47 6906 719 | STX 1 *+6 NEW CURRENT STMNT ADDRESS K1207020 7C48 C102 720 | LD 1 2 NEXT WORD TO MOVE K1207030 7C49 D100 721 | STO 1 0 OPEN STRING 2 WORDS K1207040 7C4A 7101 722 | MDX 1 1 INCR STMNT MOVE POINTER K1207050 7C4B 73FF 723 | MDX 3 -1 DECR NO. OF WORDS TO MOVE K1207060 7C4C 70FB 724 | MDX *-5 BR TO CONTINUE MOVE K1207070 7C4D 6500 0000 725 | LDX L1 *-* SET UP NEW STMNT POINTER K1207080 726 | * K1207090 727 | * PUT PAR,PARNO AND ASFN IN THE K1207100 728 | * NESTED CALL TABLE K1207110 729 | * K1207120 7C4F 6780 7C98 730 | LDX I3 ATH14+1 ADDR OF NEXT STMNT ID WORD K1207130 7C51 73FE 731 | MDX 3 -2 DECR BY 2 K1207140 7C52 6B45 732 | STX 3 ATH14+1 ADDR NESTED CALL TABLE K1207150 7C53 C0BF 733 | LD ASFN ARITH STMNT FUNC NAME K1207160 7C54 D300 734 | STO 3 0 CALL TABLE K1207170 7C55 C0B7 735 | LD PAR PARENTHESIS COUNT K1207180 7C56 1008 736 | SLA 8 K1207190 7C57 E8BA 737 | OR PARNO K1207200 7C58 D301 738 | STO 3 1 K1207210 7C59 C009 739 | LD SNAME K1207220 7C5A D0B8 740 | STO ASFN K1207230 7C5B 6301 741 | LDX 3 1 K1207240 7C5C 6BB0 742 | STX 3 PAR K1207250 7C5D 6BB4 743 | STX 3 PARNO K1207260 7C5E 4C00 7BAD 744 | BSC L ATH12 K1207270 745 | * K1207280 746 | * CONSTANTS AND WORK AREA K1207290 747 | * K1207300 7C60 0004 748 | APSGN DC /04 + K1207310 7C61 0002 749 | AMSGN DC /06-/04 --+ K1207320 7C62 0020 750 | UMNS DC /20 U- OPERATOR K1207330 7C63 0000 751 | SNAME DC 0 LAST NAME K1207340 7C64 0002 752 | ASLH DC /08-/06 /-- K1207350 7C65 0004 753 | ASTER DC /0C-/08 *-/ K1207360 7C66 000C 754 | ASK DC /0C * K1207370 7C67 000A 755 | AEXP DC /0A ** OPERATOR K1207380 7C68 002E 756 | ACALL DC /2E C OPERATOR K1207390 7C69 0000 757 | ATEMP DC 0 INDEX REGISTERS TEMPORARY K1207400 7C6A 0012 758 | ACOMA DC /12 , K1207410 7C6B FFF0 759 | ARPC DC /02-/12 )-, K1207420 7C6C BA6E 760 | SBE7F DC /BA6E LEGAL SUBPROGRAM ID MASK K1207430 7C6D 0002 761 | ATWO DC 2 DECIMAL TWO CONSTANT K1207440 7C6E 0080 762 | S0080 DC /0080 SUBPROGRAM NAME INDR BIT K1207450 7C6D 763 | CMSGN EQU ATWO , - ( 2-10 K1207451 764 | * K1207460 765 | * TEST SWITCH 5 K1207470 766 | * K1207480 7C6F C09F 767 | ATH5 LD SW5 K1207490 7C70 4C18 7AB6 768 | BSC L ATERR,+- K1207500 7C72 C1FE 769 | LD 1 -2 CHECK IF PRECEDING WD 2-10 K1207501 7C73 909C 770 | S ARPEN *WAS LEFT PAR OR COMMA 2-10 K1207502 7C74 4C18 7C79 771 | BSC L ATH10,+- IF YES GO ON TESTING ON2-10 K1207503 7C76 90F6 772 | S CMSGN *SUCCEDING,IF NO GO TO 2-10 K1207504 7C77 4C20 7AB6 773 | BSC L ATERR,Z *ERROR 2-10 K1207505 774 | * K1207510 775 | * CHK FOR COMMA (1 K1207520 776 | * K1207530 7C79 C100 777 | ATH10 LD 1 0 K1207540 7C7A 90EF 778 | S ACOMA K1207550 7C7B 4C20 7C84 779 | BSC L ATH13,Z K1207560 780 | * K1207570 781 | * TEST SWITCH 5 K1207580 782 | * K1207590 7C7D C091 783 | LD SW5 BR NO POINTER INSIDE K1207600 7C7E 4C18 7C04 784 | BSC L ATH8,+- FUNCTION CALL. K1207610 7C80 7401 7C12 785 | MDX L PARNO,1 INCR PARAMETER COUNT BY 1 K1207620 7C82 4C00 7BAD 786 | BSC L ATH12 BR TO MOVE 1 ELEMENT K1207630 787 | * K1207640 788 | * CHECK FOR RIGHT PARENTHESIS (1 K1207650 789 | * K1207660 7C84 90E6 790 | ATH13 S ARPC RIGHT PARENTHESIS CONSTANT K1207670 7C85 4C20 7AB6 791 | BSC L ATERR,Z BR IF NOT RIGHT PARENTHESIS K1207680 7C87 C085 792 | LD PAR PARENTHESIS COUNT K1207690 7C88 4C18 7C04 793 | BSC L ATH8,+- BR IF ZERO K1207700 7C8A 74FF 7C0D 794 | MDX L PAR,-1 DECR PAR BY 1 IF NOT ZERO K1207710 7C8C 702A 795 | MDX ATH16 BR IF PAR IS NOW ZERO K1207720 7C8D C081 796 | LD SW5 BR IF NO POINTER INSIDE K1207730 7C8E 4C18 7CB7 797 | BSC L ATH16,+- FUNCTION CALL. K1207740 7C90 402A 798 | BSI CKASF BR TO CHK ARITH STMNT FUNC K1207750 7C91 74FF 7C11 799 | MDX L CALLN,-1 CALLN = CALLN -1 K1207760 7C93 7003 800 | MDX ATH14 BR IF CALLN IS NOW ZERO K1207770 7C94 1010 801 | SLA 16 CLEAR ACCUMULATOR K1207780 7C95 D400 7C0F 802 | STO L SW5 NORMALIZE SW5 2-10 K1207790 803 | * K1207800 804 | * GET PAR, PARNO, AND ASFN FROM THE K1207810 805 | * NESTED CALL TABLE. K1207820 806 | * K1207830 7C97 6700 0000 807 | ATH14 LDX L3 *-* ADDR OF NESTED CALL TABLE K1207840 7C99 C300 808 | LD 3 0 FIRST TABLE ELEMENT K1207850 7C9A D400 7C13 809 | STO L ASFN ARITH STMNT FUNC NAME 2-10 K1207860 7C9C C301 810 | LD 3 1 SECOND TABLE ELEMENT K1207870 7C9D 1888 811 | SRT 8 RIGHT JUSTIFY PAR K1207880 7C9E D400 7C0D 812 | STO L PAR PARENTHESIS COUNT K1207890 7CA0 1010 813 | SLA 16 CLEAR ACCUMULATOR K1207900 7CA1 1088 814 | SLT 8 SHIFT IN 8 FROM EXTENSION K1207910 7CA2 D400 7C12 815 | STO L PARNO PARAMETER COUNT K1207920 816 | * K1207930 817 | * CLOSE STRING 2 WORDS K1207940 818 | * K1207950 7CA4 69C4 819 | STX 1 ATEMP INDEX REG 1 TEMPORARY K1207960 7CA5 C0F2 820 | LD ATH14+1 ADDR OF NESTED CALL TABLE K1207970 7CA6 90C2 821 | S ATEMP CURRENT STMNT POINTER K1207980 7CA7 D001 822 | STO *+1 ADDR OF NEXT INSTRUCTION K1207990 7CA8 6700 0000 823 | LDX L3 *-* RANGE OF MOVE TO CLOSE K1208000 7CAA 7102 824 | MDX 1 2 INCR CURRENT POINTER BY 2 K1208010 7CAB 7402 7C98 825 | MDX L ATH14+1,2 INCR ADDR NESTED CALL TABLE K1208020 7CAD 6908 826 | STX 1 ATH18+1 NEW STMNT POINTER K1208030 7CAE 6580 7C98 827 | LDX I1 ATH14+1 XR1 EQUALS MOVE ADDRESS K1208040 7CB0 C1FD 828 | LD 1 -3 MOVE TO CLOSE K1208050 7CB1 D1FF 829 | STO 1 -1 STRING TWO WORDS K1208060 7CB2 71FF 830 | MDX 1 -1 DECR MOVE ADDR K1208070 7CB3 73FF 831 | MDX 3 -1 DECR MOVE COUNTER K1208080 7CB4 70FB 832 | MDX *-5 BR TO CONTINUE MOVE K1208090 7CB5 6500 0000 833 | ATH18 LDX L1 *-* NEW STMNT POINTER K1208100 7CB7 4400 7B3B 834 | ATH16 BSI L MOVE1 BR TO MOVE 1 ELEMENT K1208110 7CB9 4C00 7BE9 835 | BSC L ATH6 BR TO CHK FOR SEMICOLON K1208120 836 | * K1208130 837 | *************************************************** K1208140 838 | * THIS ROUTINE CHECKS THE ASF TABLE TO* K1208150 839 | * INSURE THAT CALLS TO ASF STATEMENTS * K1208160 840 | * HAVE THE CORRECT NO OF PARAMETERS. * K1208170 841 | * THE ENTRY IS A BSI INSTRUCTION TO * K1208180 842 | * THE LABEL CKASF. THE ROUTINE RETURNS* K1208190 843 | * ONLY IF THE MATCH IS CORRECT. * K1208200 844 | *************************************************** K1208210 845 | * K1208220 7CBB 0000 846 | CKASF DC 0 SUBR ENTRY POINT K1208230 7CBC 6700 0001 847 | CKAS LDX L3 1 INITIALIZE INDEX REG 3 K1208240 7CBE 73FE 848 | CKS1 MDX 3 -2 SKIP NEXT IF XR3 NEG OR 0 K1208250 7CBF 7002 849 | MDX *+2 BRANCH IF XR3 POSITIVE K1208260 7CC0 4C80 7CBB 850 | CKS1A BSC I CKASF EXIT FROM CKASF K1208270 7CC2 C700 0000 851 | CKS2 LD L3 *-* PRESTORED ASF TABLE ADDR K1208280 7CC4 9400 7C13 852 | S L ASFN COMPARE NAMES K1208290 7CC6 4C20 7CBE 853 | BSC L CKS1,Z BR IF NOT SAME NAME K1208300 7CC8 C700 0000 854 | CKS3 LD L3 *-* PRESTORED ASR TABLE ADDR K1208310 7CCA 9400 7C12 855 | S L PARNO COMPARE PARAMETER COUNTS K1208320 7CCC 4C20 7AB6 856 | BSC L ATERR,Z BR TO ERROR IF NOT EQUAL K1208330 7CCE 70F1 857 | MDX CKS1A BR TO EXIT IF MATCH K1208340 858 | * K1208350 859 | * CHECK FOR VALID VARIABLE IN K1208360 860 | * ARITHMETIC EXPRESSION K1208370 861 | * K1208380 7CCF 0000 862 | TESTV DC 0 ENTRY POINT K1208390 7CD0 C400 7A30 863 | LD L SORF SUBPROGRAM OR FUNC INDR K1208400 7CD2 4C08 7CDB 864 | BSC L TESTW,+ BR IF NOT FUNCTION K1208410 7CD4 C100 865 | LD 1 0 NEXT STMNT WORD K1208420 7CD5 9400 7A2E 866 | S L FNAME FUNCTION NAME K1208430 7CD7 4C98 7CCF 867 | BSC I TESTV,+- EXIT IF NAME COMPARE K1208440 7CD9 C008 868 | LD SA7DE LEGAL FUNCTION ID MASK K1208450 7CDA 7001 869 | MDX TESTX BR TO MASK SYMBOL TBL ID WD K1208460 7CDB C005 870 | TESTW LD S83DE LEGAL SUBROUTINE ID MASK K1208470 7CDC E300 871 | TESTX AND 3 0 MASK SYMBOL TABLE ID WORD K1208480 7CDD 4C20 7AB6 872 | BSC L XY7,Z BR TO ERROR IF ANY BITS ON K1208490 7CDF 4C80 7CCF 873 | BSC I TESTV EXIT IF LEGAL SUBR OR FUNC K1208500 874 | * K1208510 7CE1 83DE 875 | S83DE DC /83DE SUBROUTINE ID MASK K1208520 7CE2 A7DE 876 | SA7DE DC /A7DE FUNCTION ID MASK K1208530 877 | * K1208540 878 | * CHECK CALL STMNT SYNTAX K1208550 879 | * K1208560 7CE3 907C 880 | XY25 S CCALL CALL ID CONSTANT K1208570 7CE4 4C20 7D6A 881 | BSC L XY28,Z BR IF NOT CALL K1208580 7CE6 6327 882 | LDX 3 39 SET XR3 =39 K1208590 7CE7 6F00 7A9D 883 | STX L3 ERNO SET UP ERROR NUMBER 39 K1208600 7CE9 C100 884 | LD 1 0 IS IT A CALL 2-5 K1208602 7CEA 9400 7A2E 885 | S L FNAME TO THIS SUBPROGRAM 2-5 K1208604 7CEC 4C18 7AB6 886 | BSC L ATERR,+- YES - ERROR 39 2-5 K1208606 7CEE C100 887 | LD 1 0 NEXT STMNT WORD K1208610 7CEF 4400 7B15 888 | BSI L GETID GET SYMBOL K1208620 7CF1 E077 889 | AND SUB1X LEGAL SUBPROGRAM MASK K1208630 7CF2 4C20 7AB6 890 | BSC L ATERR,Z BR TO ERROR IF NOT LEGAL K1208640 7CF4 C300 891 | LD 3 0 SYMBOL TABLE ID WORD K1208650 7CF5 E872 892 | OR SUBPO SET SUBPROG INDR BIT ON K1208660 7CF6 D300 893 | STO 3 0 RESTORE SYMBOL TABLE ID WD K1208670 7CF7 4400 7B47 894 | BSI L NAME CALL NAME K1208680 7CF9 C400 7B71 895 | LD L SW7 DIMENSIONED NAME SWITCH K1208690 7CFB 4C18 7AB6 896 | BSC L ATERR,+- BR IF NOT DIMENSIONED NAME K1208700 7CFD C065 897 | LD RCOP C OPERATOR K1208710 7CFE 4400 7B2C 898 | BSI L CHECK CHECK FOR OVERLAP K1208720 899 | * K1208730 900 | * CH FOR LEFT PARENTHESIS (1 K1208740 901 | * K1208750 7D00 C100 902 | LD 1 0 NEXT STMNT WORD K1208760 7D01 905F 903 | S LPAR LEFT PARENTHESIS CONSTANT K1208770 7D02 4C20 7D40 904 | BSC L XY29,Z BR IF NOT LEFT PARENTHESIS K1208780 7D04 4400 7B3B 905 | XY30 BSI L MOVE1 BR TO MOVE ONE ELEMENT K1208790 906 | * K1208800 907 | * CHECK FOR SUBSCRIPTED ELEMENT K1208810 908 | * K1208820 7D06 690F 909 | STX 1 XY30B+1 SAVE XR1 K1208830 7D07 C101 910 | LD 1 1 NEXT STMNT WORD K1208840 7D08 904E 911 | S LX1 SUBSC CHARACTER LOW LIMIT K1208850 7D09 4C28 7D14 912 | BSC L XY30A,+Z BR IF NOT SUBSCRIPT CHAR K1208860 7D0B 904C 913 | S LX2 SUBSC CHARACTER HIGH LIMIT K1208870 7D0C 4C30 7D14 914 | BSC L XY30A,-Z BR IF NOT SUBSCRIPT CHAR K1208880 7D0E 804A 915 | A LX3 RESTORE SUBSCRIPT VALUE K1208890 7D0F 1001 916 | SLA 1 MPY BY 2 K1208900 7D10 D001 917 | STO *+1 ADDR NEXT INSTRUCTION K1208910 7D11 7500 0000 918 | MDX L1 *-* INCR TO SKIP OVER SUBSC K1208920 7D13 7101 919 | MDX 1 1 AJUST BY ONE MORE K1208930 920 | * K1208940 921 | * CHK FOR COMMA OR RT PARENTHESIS K1208950 922 | * K1208960 7D14 C101 923 | XY30A LD 1 1 NEXT CHAR BEYOND SUBSCRIPT K1208970 7D15 6500 0000 924 | XY30B LDX L1 *-* RESTORE STMNT POINTER K1208980 7D17 9042 925 | S LX4 COMMA CHARACTER CONSTANT K1208990 7D18 4C18 7D1D 926 | BSC L XY30C,+- BR IF COMMA K1209000 7D1A 9040 927 | S LX5 RIGHT PARENTHESIS CONSTANT K1209010 7D1B 4C20 7D30 928 | BSC L XY30D,Z BR IF NOT RIGHT PARENTHESIS K1209020 7D1D 6327 929 | XY30C LDX 3 39 INDEX REG 3 =39 K1209030 7D1E 6F00 7A9D 930 | STX L3 ERNO SET UP ERROR NUMBER 39 K1209040 931 | * K1209050 932 | * CHECK FOR LEGAL VARIABLE K1209060 933 | * K1209070 7D20 C100 934 | LD 1 0 NEXT STMNT WORD K1209080 7D21 4400 7B15 935 | BSI L GETID GET SYMBOL TABLE ID WORD K1209090 7D23 E038 936 | AND LX6 LEGAL VARIABLE ID MASK K1209100 7D24 4C20 7D30 937 | BSC L XY30D,Z BR IF NOT LEGAL VARIABLE K1209110 938 | * K1209120 939 | * CHECK FOR SUBPROGRAM NAME K1209130 940 | * K1209140 7D26 C300 941 | LD 3 0 SYMBOL TABLE ID WORD K1209150 7D27 1008 942 | SLA 8 SUBPROGRAM NAME BIT TO SIGN K1209160 7D28 4C28 7D47 943 | BSC L XY30G,+Z BR IF SUBPROGRAM NAME K1209170 7D2A C300 944 | LD 3 0 SYMBOL TABLE ID WORD K1209180 7D2B E831 945 | OR LX7 REFERENCED INDICATOR BIT ON K1209190 7D2C D300 946 | STO 3 0 RESTORE SYMBOL TABLE ID WD K1209200 947 | * K1209210 948 | * CALL NAME K1209220 949 | * K1209230 7D2D 4400 7B47 950 | XY30F BSI L NAME BR TO CHK NAME DIMENSIONING K1209240 7D2F 7005 951 | MDX XY30E BR TO CHK FOR COMMA K1209250 952 | * K1209260 953 | * SET UP ERROR NUMBER 40 K1209270 954 | * K1209280 7D30 6328 955 | XY30D LDX 3 40 INDEX REG 3 =40 K1209290 7D31 6F00 7A9D 956 | STX L3 ERNO SET UP ERROR NUMBER 40 K1209300 957 | * K1209310 958 | * CALL ARITH EXPRESSION SCAN K1209320 959 | * K1209330 7D33 4400 7B98 960 | BSI L ARITH BR TO ARITH SCAN SUBROUTINE K1209340 961 | * K1209350 962 | * CHECK FOR COMMA (1 K1209360 963 | * K1209370 7D35 C100 964 | XY30E LD 1 0 NEXT STMNT WORD K1209380 7D36 902B 965 | S CMAS COMMA CHAR CONSTANT K1209390 7D37 4C18 7D04 966 | BSC L XY30,+- BR IF COMMA FOUND K1209400 7D39 902A 967 | S RPAR RIGHT PARENTHESIS (1 K1209410 7D3A 4C20 7AB6 968 | BSC L XY7,Z BR IF NOT RT PARENTHESIS K1209420 7D3C 4400 7B3B 969 | BSI L MOVE1 BR TO MOVE ONE ELEMENT K1209430 7D3E 4C00 7AA1 970 | XY31 BSC L XY13 BR TO CHECK FOR SEMICOLON K1209440 7D40 C100 971 | XY29 LD 1 0 NEXT STMNT WORD K1209450 7D41 4C20 7AB6 972 | BSC L XY7,Z BR TO ERR IF NOT SEMICOLON K1209460 7D43 C021 973 | LD RFAC FLOATING ACC INDICATOR K1209470 7D44 4400 7B2C 974 | BSI L CHECK OUTPUT AND CHK FOR OVERLAP K1209480 7D46 70F7 975 | MDX XY31 BR TO CHK FOR SEMICOLON K1209490 976 | * K1209500 7D47 1003 977 | XY30G SLA 3 TEST IF EXTERNAL K1209510 7D48 4828 978 | BSC +Z SKIP IF NOT 2-5 K1209520 7D49 70E3 979 | MDX XY30F CONTINUE K1209530 980 | * K1209531 7D4A C400 7A30 981 | LD L SORF IS IT FUNCTION SUBPROGR 2-5 K1209532 7D4C 4C08 7AB6 982 | BSC L ATERR,+ ERROR IF NOT 2-5 K1209533 7D4E C100 983 | LD 1 0 LOAD STATEMENT WORD 2-5 K1209534 7D4F 9400 7A2E 984 | S L FNAME IS IT FUNCTION NAME 2-5 K1209535 7D51 4C20 7AB6 985 | BSC L ATERR,Z ERROR IF NOT 2-5 K1209536 7D53 C300 986 | LD 3 0 SET THE REFERENCED 2-5 K1209537 7D54 E808 987 | OR LX7 *INDICATOR BIT IN THE 2-5 K1209538 7D55 D300 988 | STO 3 0 *SYMBOL TABLE ID WORD 2-5 K1209539 7D56 70D6 989 | MDX XY30F CONTINUE 2-5 K1209540 990 | * K1209541 991 | * CONSTANTS AND WORK AREA K1209550 992 | * K1209560 7D57 0018 993 | LX1 DC /18 SUBSC CHAR LOW LIMIT CON K1209570 7D58 0006 994 | LX2 DC /1E-/18 SUBSC CHAR HIGH LIMIT CON K1209580 7D59 0007 995 | LX3 DC 7 RESTORE SUBSC VALUE CON K1209590 7D5A 0012 996 | LX4 DC /12 COMMA CHAR CONSTANT K1209600 7D5B FFF0 997 | LX5 DC /02-/12 RIGHT PARENTHESIS CONSTANT K1209610 7D5C 834E 998 | LX6 DC /834E LEGAL VARIABLE MASK K1209620 7D5D 0020 999 | LX7 DC /0020 REFERENCED STMNT NO. INDR K1209630 7D5E BEFE 1000 | LX8 DC /BEFE LEGAL ASF MASK 2-7 K1209640 7D5F 0100 1001 | LX9 DC /0100 ARITH STMNT FUNC INDR BIT K1209650 7D60 FFF7 1002 | CCALL DC /06-/0F CALL ID K1209660 7D61 0010 1003 | LPAR DC /10 LEFT PARENTHESIS CONSTANT K1209670 7D62 0012 1004 | CMAS DC /12 COMMA CHAR CONSTANT K1209680 7D63 002E 1005 | RCOP DC /2E CALL OPERATOR K1209690 7D64 FFF0 1006 | RPAR DC /02-/12 RIGHT PARENTHESIS CONSTANT K1209700 7D65 8000 1007 | RFAC DC /8000 FLOATING ACC INDR CONSTANT K1209710 7D66 0014 1008 | ASFID DC /1A-/06 ASF ID K1209720 7D67 002C 1009 | RASF DC /2C ASF OPERATOR K1209730 7D68 0080 1010 | SUBPO DC /0080 SUBPROGRAM INDR BIT K1209740 7D69 BB6E 1011 | SUB1X DC /BB6E LEGAL SUBPROGRAM MASK K1209750 1012 | * K1209760 1013 | * CHK FOR ARITH STMNT FUNCTION K1209770 1014 | * K1209780 7D6A 90FB 1015 | XY28 S ASFID ARITH STMNT FUNC ID K1209790 7D6B 4C20 7DC7 1016 | BSC L XY26,Z BR IF NOT ARITH STMNT FUNC K1209800 7D6D 6329 1017 | LDX 3 41 INDEX REG 3 =41 K1209810 7D6E 6F00 7A9D 1018 | STX L3 ERNO SET UP ERROR NUMBER 43 K1209820 1019 | * K1209830 1020 | * CHK FOR VALID ARITH STMNT FUNC NAME K1209840 1021 | * K1209850 7D70 C100 1022 | LD 1 0 NEXT STMNT WORD K1209860 7D71 4400 7B15 1023 | BSI L GETID GET SYMBOL TABLE ID WORD K1209870 7D73 E0EA 1024 | AND LX8 VALID ASF NAME MASK K1209880 7D74 4C20 7AB6 1025 | BSC L XY7,Z BR IF NOT VALID TO SET ERR K1209890 7D76 C300 1026 | LD 3 0 SYMBOL TABLE ID WORD K1209900 7D77 E8E7 1027 | OR LX9 SET STMNT FUNC NAME BIT ON K1209910 7D78 D300 1028 | STO 3 0 RESTORE SYMBOL TABLE ID WD K1209920 7D79 4400 7B3B 1029 | BSI L MOVE1 BR TO MOVE ON ELEMENT K1209930 1030 | * K1209940 1031 | * OPEN STRING 2 WDS IF REQUIRED K1209950 1032 | * K1209960 7D7B 7202 1033 | MDX 2 2 INCR OUTPUT STRING ADDRESS K1209970 7D7C 6A1C 1034 | STX 2 XQ1 INDEX REG 2 TO TEMPORARY K1209980 7D7D C01B 1035 | LD XQ1 OUTPUT STRING ADDRESS K1209990 7D7E 691C 1036 | STX 1 XQ2 INDEX REG 1 TO TEMPORARY K1210000 7D7F 901B 1037 | S XQ2 INPUT STRING ADDRESS K1210010 7D80 4C10 7B36 1038 | BSC L CK1,- BR IF OVERLAP ERROR K1210020 7D82 C016 1039 | LD XQ1 CURRENT OUTPUT STRING PT K1210030 7D83 9400 7A24 1040 | S L SOFS START OF STRING ADDRESS K1210040 7D85 D001 1041 | STO *+1 ADDR NEXT INSTRUCTION K1210050 7D86 6700 0000 1042 | LDX L3 *-* RANGE OF MOVE TO OPEN K1210060 7D88 73FE 1043 | MDX 3 -2 NO. OF WORDS TO MOVE K1210070 7D89 C2FD 1044 | LD 2 -3 NEXT WORD TO MOVE TO OPEN K1210080 7D8A D2FF 1045 | STO 2 -1 OPEN STRING 2 WORDS K1210090 7D8B 72FF 1046 | MDX 2 -1 DECR MOVE ADDRESS K1210100 7D8C 73FF 1047 | MDX 3 -1 DECR MOVE WORD COUNT K1210110 7D8D 70FB 1048 | MDX *-5 BR TO CONTINUE MOVE K1210120 7D8E 6680 7A24 1049 | LDX I2 SOFS NEW START OF STRING ADDRESS K1210130 7D90 7402 7AB7 1050 | MDX L IDSV2,2 INCR STMNT WORD COUNT BY 2 K1210140 1051 | * K1210150 1052 | * PUT NAME AND ZERO IN ARITH STMNT K1210160 1053 | * FUNCTION TABLE. K1210170 1054 | * K1210180 7D92 C1FF 1055 | LD 1 -1 ASF NAME K1210190 7D93 D200 1056 | STO 2 0 ASF FUNCTION TABLE K1210200 7D94 1010 1057 | SLA 16 CLEAR ACCUMULATOR K1210210 7D95 D201 1058 | STO 2 1 STORE ZERO IN ASF TABLE K1210220 7D96 7402 7CBD 1059 | MDX L CKAS+1,2 INCR ASF TABLE POINTER BY 2 K1210230 7D98 6600 0000 1060 | LDX L2 *-* RESTORE OUTPUT STRING PT K1210240 7D99 1061 | XQ1 EQU *-1 ADDR FOR LAST INSTRUCTION K1210250 7D9A 6500 0000 1062 | LDX L1 *-* RESTORE INPUT STRING PT K1210260 7D9B 1063 | XQ2 EQU *-1 ADDR FOR LAST INSTRUCTION K1210270 1064 | * K1210280 1065 | * CALL CHECK (ASF OPERATOR) K1210290 7D9C C0CA 1066 | LD RASF ASF OPERATOR K1210300 7D9D 4400 7B2C 1067 | BSI L CHECK OUTPUT AND CHK FOR OVERLAP K1210310 7D9F C100 1068 | LD 1 0 NEXT STMNT WORD K1210320 7DA0 90C0 1069 | S LPAR LEFT PARENTHESIS CONSTANT K1210330 7DA1 4C20 7AB6 1070 | BSC L XY7,Z BR IF NOT LEFT PARENTHESIS K1210340 7DA3 4400 7B3B 1071 | XY32 BSI L MOVE1 BR TO OUPUT ONE ELEMENT K1210350 1072 | * K1210360 1073 | * CHK FOR VALID DUMMY ARGUMENT K1210370 1074 | * K1210380 7DA5 C100 1075 | LD 1 0 NEXT STMNT WORD K1210390 7DA6 4400 7B15 1076 | BSI L GETID BR TO GET SYMBOL TABLE ID W K1210400 7DA8 4C28 7AB6 1077 | BSC L XY7,+Z BR TO ERROR IF MINUS K1210410 7DAA 4400 7B3B 1078 | BSI L MOVE1 BR TO OUTPUT ONE ELEMENT K1210420 7DAC 7401 0000 1079 | XY33 MDX L *-*,1 COUNT ASF ARGUMENTS K1210430 7DAE C100 1080 | LD 1 0 NEXT STMNT WORD K1210440 7DAF 90B2 1081 | S CMAS COMMA CHAR CONSTANT K1210450 7DB0 4C18 7DA3 1082 | BSC L XY32,+- BR IF COMMA FOUND K1210460 7DB2 90B1 1083 | S RPAR RIGHT PARENTHESIS CONSTANT K1210470 7DB3 4C20 7AB6 1084 | BSC L XY7,Z BR TO ERR IF NOT RT PAREN K1210480 7DB5 4400 7B3B 1085 | BSI L MOVE1 BR TO OUTPUT ONE ELEMENT K1210490 7DB7 C100 1086 | LD 1 0 NEXT STMNT WORD K1210500 7DB8 9400 7B0E 1087 | S L EQSGN EQUAL SIGN CHAR CONSTANT K1210510 7DBA 4C20 7AB6 1088 | BSC L XY7,Z BR TO ERR IF NO EQUAL SIGN K1210520 7DBC 632A 1089 | LDX 3 42 INDEX REG 3 =42 K1210530 7DBD 6F00 7A9D 1090 | STX L3 ERNO SET UP ERROR NUMBER 42 K1210540 7DBF 4C00 7AE0 1091 | BSC L XY5A BR TO CHK FOR EQUAL SIGN K1210550 1092 | * K1210560 1093 | * CONSTANTS FOR DISK READ/WRITE SCAN K1210570 1094 | * K1210580 7DC1 FFF8 1095 | REDID DC /12-/1A READ ID K1210590 7DC2 FFFF 1096 | WRTID DC /11-/12 WRITE ID K1210600 7DC3 000C 1097 | FNDID DC /1D-/11 FIND ID K1210610 7DC4 0040 1098 | APOST DC /42-/02 APOSTRAPHE K1210620 7DC5 0002 1099 | RPARN DC /02 RIGHT PARENTHESIS K1210630 7DC6 0032 1100 | COLON DC /32 COLON OPERATOR K1210640 1101 | * K1210650 1102 | * SEEK READ/WRITE OPERATOR K1210660 1103 | * K1210670 7DC7 90F9 1104 | XY26 S REDID READ ID CONSTANT K1210680 7DC8 4820 1105 | BSC Z SKIP IF READ K1210690 7DC9 90F8 1106 | S WRTID WRITE ID CONSTANT K1210700 7DCA 4820 1107 | BSC Z SKIP IF FIND K1210710 7DCB 90F7 1108 | S FNDID FIND ID CONSTANT K1210720 7DCC 4C20 7DEB 1109 | BSC L XY27,Z BRANCH UNLESS READ OR WRITE K1210730 1110 | * K1210740 1111 | * TEST FOR SIDK READ/WRITE K1210750 1112 | * K1210760 7DCE 6349 1113 | LDX 3 73 ERROR NUMBER K1210770 7DCF 6F00 7A9D 1114 | STX L3 ERNO SET ERROR NO JUST IN CASE K1210780 7DD1 4400 7B3B 1115 | MOVCH BSI L MOVE1 MOVE ONE CHAR K1210790 7DD3 C1FF 1116 | LD 1 -1 GET CHARACTER JUST MOVED K1210800 1117 | * K1210810 1118 | * CHECK FOR APOSTROPHE K1210820 1119 | * K1210830 7DD4 4C18 7AC8 1120 | BSC L XY22,+- BRANCH IF SEMICOLON K1210840 7DD6 90EE 1121 | S RPARN TEST FOR RIGHT PAREN K1210850 7DD7 4C18 7DE4 1122 | BSC L MVRST,+- BRANCH IF NOT DISK R/W K1210860 7DD9 90EA 1123 | S APOST APOSTROPHE CHAR CONSTANT K1210870 7DDA 4820 1124 | BSC Z SKIP ON APOSTRAPHE K1210880 7DDB 70F5 1125 | MDX MOVCH BR TO MOVE ONE CHARACTER K1210890 1126 | * K1210900 1127 | * GO SCAN FOR SECTOR ADDR K1210910 1128 | * K1210920 7DDC 4400 7B98 1129 | BSI L ARITH GO TO SCAN ARITH EXPRESSION K1210930 7DDE C100 1130 | LD 1 0 REQUIRE RIGHT PAREN K1210940 7DDF 90E5 1131 | S RPARN AS TERMINATOR K1210950 7DE0 4C20 7AB6 1132 | BSC L XY7,Z BRANCH TO ERROR IF NOT K1210960 1133 | * K1210970 1134 | * PUT COLON OVER THE RIGHT PARENTHESIS K1210980 1135 | * K1210990 7DE2 C0E3 1136 | LD COLON COLON OPERATOR K1211000 7DE3 D100 1137 | STO 1 0 PUT OVER RIGHT PARENTHESIS K1211010 1138 | * K1211020 1139 | * MOVE REST OF STMNT K1211030 1140 | * K1211040 7DE4 4400 7B3B 1141 | MVRST BSI L MOVE1 MOVE REST OF STATEMENT K1211050 7DE6 C1FF 1142 | LD 1 -1 STOP WHEN SEMICOLON K1211060 7DE7 4C20 7DE4 1143 | BSC L MVRST,Z FOUND. K1211070 7DE9 4C00 7AA6 1144 | BSC L CRCTN GO CORRECT NORM K1211080 1145 | * K1211090 1146 | * MOVE STATEMENT K1211100 1147 | * K1211110 7DEB 6700 0000 1148 | XY27 LDX L3 *-* RANGE OF STMNT MOVE K1211120 7DED 73FF 1149 | MDX 3 -1 NO. OF WORDS TO MOVE K1211130 7DEE 7001 1150 | MDX *+1 BR IF RANGE NOT ZERO K1211140 7DEF 7004 1151 | MDX XY27A BR TO GO NEXT STMNT K1211150 7DF0 4400 7B3B 1152 | BSI L MOVE1 GO TO MOVE ONE ELEMENT K1211160 7DF2 73FF 1153 | MDX 3 -1 DECR MOVE COUNTER K1211170 7DF3 70FA 1154 | MDX XY27+3 BR TO MOVE NEXT WORD K1211180 7DF4 4C00 7AC8 1155 | XY27A BSC L XY22 K1211190 1156 | * K1211200 1157 | * END OF ASCAN PHASE K1211210 1158 | * NO PATCH AREA LEFT IN THIS PHASE 2-10 K1211215 7DF6 1159 | END BPHAR-2 K1211225 There were no errors in this assembly === CROSS REFERENCES ========================================================== Name Val Defd Referenced $PHSE 0078 82 140 ACALL 7C68 756 673 ACOMA 7C6A 758 778 AEXP 7C67 755 646 AMSGN 7C61 749 595 633 APOST 7DC4 1098 1123 APSGN 7C60 748 593 631 ARITH 7B98 568 310 330 653 960 1129 ARPC 7C6B 759 790 ARPEN 7C10 664 581 617 770 ASFID 7D66 1008 1015 ASFN 7C13 667 574 733 740 809 852 ASK 7C66 754 640 ASLH 7C64 752 635 ASTER 7C65 753 637 ATEMP 7C69 757 705 706 708 709 715 819 821 ATERR 7AB6 269 591 596 652 682 690 701 768 773 791 856 886 890 896 982 985 ATH1 7BC5 605 580 ATH10 7C79 777 638 771 ATH11 7BC3 603 648 650 ATH12 7BAD 586 744 786 ATH13 7C84 790 779 ATH14 7C97 807 578 714 730 732 800 820 825 827 ATH15 7C2D 691 ATH16 7CB7 834 795 797 ATH17 7C3A 705 687 694 ATH18 7CB5 833 826 ATH19 7C31 696 686 ATH2 7BB2 590 582 ATH20 7C09 655 623 ATH21 7BE7 628 ATH3 7BA5 579 589 604 ATH4 7BC2 602 594 ATH5 7C6F 767 608 ATH6 7BE9 629 610 615 621 657 835 ATH7 7C16 673 618 ATH8 7C04 651 630 784 793 ATH9 7C01 649 632 634 636 641 ATWO 7C6D 761 707 763 BPHAR 7A36 132 1159 CALLN 7C11 665 573 676 799 CCALL 7D60 1002 880 CCWD 7A31 102 CHECK 7B2C 407 320 344 417 674 898 974 1067 CK1 7B36 418 416 710 1038 CKAS 7CBC 847 212 217 1059 CKASF 7CBB 846 798 850 CKS1 7CBE 848 853 CKS1A 7CC0 850 857 CKS2 7CC2 851 178 CKS3 7CC8 854 182 CKTEM 7B3A 423 412 413 414 415 CMAS 7D62 1004 965 1081 CMSGN 7C6D 763 772 CNT 7B94 548 346 515 525 542 COLON 7DC6 1100 1136 COMON 7A2B 96 CRCTN 7AA6 249 1144 CSIZE 7A2C 97 DFCNT 7A33 122 EOFS 7A25 90 158 163 215 221 231 EOFST 7A2A 95 164 EQSGN 7B0E 354 307 1087 ERID 7AB5 264 275 279 ERNO 7A9D 239 281 293 318 329 332 537 883 930 956 1018 1090 1114 ERROR 7A2D 98 144 418 FIVE 7B0F 355 272 274 347 FNAME 7A2E 99 626 681 866 885 984 FNDID 7DC3 1097 1108 GETID 7B15 369 295 381 461 520 684 888 935 1023 1076 H0090 7C15 669 622 IDSV1 7A79 205 194 IDSV2 7AB7 270 193 249 254 257 696 1050 IFOP 7B11 357 319 IOCS 7A32 112 LCMA 7B95 549 530 LIST 7B78 513 345 541 LIST2 7B8A 536 523 LIST3 7B7B 519 544 LIST4 7B8F 542 531 LIST5 7B8D 541 532 LPAR 7D61 1003 903 1069 LX1 7D57 993 911 LX2 7D58 994 913 LX3 7D59 995 915 LX4 7D5A 996 925 LX5 7D5B 997 927 LX6 7D5C 998 936 LX7 7D5D 999 945 987 LX8 7D5E 1000 1024 LX9 7D5F 1001 1027 MEMRY 8000 79 80 81 MOVCH 7DD1 1115 1125 MOVE1 7B3B 432 195 199 309 327 339 436 445 524 543 586 649 834 905 969 1029 1071 1078 1085 1115 1141 1152 MV1 7A90 224 229 MVRST 7DE4 1141 1122 1143 NAME 7B47 458 300 469 606 894 950 NAME1 7B55 473 464 NAME2 7B5F 482 478 NAME3 7B51 467 481 NAME4 7B5D 480 485 489 493 NAME5 7B64 486 483 NAME6 7B69 490 487 NAME7 7B6E 494 491 NAME8 7B53 469 495 NP0 7B76 505 490 NP1 7B75 504 486 NP2 7B74 503 482 NP3 7B73 502 477 NXTID 7AC9 285 192 577 NXTPH 7A42 153 135 149 150 ORG 7A23 88 ORGA1 7A50 165 170 ORGIN 7A46 158 145 OUT 7B41 444 447 448 480 OVERF 7A3C 149 232 419 OVERL 7A23 80 84 PAR 7C0D 661 570 585 651 735 742 792 794 812 PARNO 7C12 666 576 737 743 785 815 855 PHID 002A 85 139 PHLEN 0003 83 PUT 7B27 394 248 397 408 434 460 601 647 RASF 7D67 1009 1066 RCOP 7D63 1005 897 REDID 7DC1 1095 1104 RFAC 7D65 1007 973 ROL 7FBC 81 151 RPAR 7D64 1006 967 1083 RPARN 7DC5 1099 1121 1131 S0001 7A9E 240 197 S0020 7AA0 242 298 S0080 7C6E 762 692 S0190 7C14 668 620 S0200 7B97 551 522 S07FF 7A9B 237 187 S1800 7B72 501 463 S83DE 7CE1 875 870 SA7DE 7CE2 876 868 SBE7F 7C6C 760 689 SF802 7A9F 241 250 SFFDF 7B96 550 521 SNAME 7C63 751 605 627 680 683 700 739 SO1FF 7B26 385 371 SOFGT 7A29 94 SOFNS 7A27 92 SOFS 7A24 89 159 176 216 220 1040 1049 SOFST 7A26 91 376 SOFXT 7A28 93 SORF 7A30 101 624 863 981 START 7A36 139 SUB1X 7D69 1011 889 SUBPO 7D68 1010 892 SVID 7B77 506 462 614 619 SW1 7B70 499 301 468 494 607 SW4 7C0E 662 571 588 590 603 SW5 7C0F 663 572 655 675 767 783 796 802 SW7 7B71 500 466 474 609 895 TARTH 7B0D 353 290 TEND 7A9C 238 207 TESTV 7CCF 862 296 867 873 TESTW 7CDB 870 864 TESTX 7CDC 871 869 TIF 7B10 356 315 UCMA 7B14 360 343 ULP 7B12 358 325 UMNS 7C62 750 600 URP 7B13 359 337 WRTID 7DC2 1096 1106 XQ1 7D99 1061 1034 1035 1039 XQ2 7D9B 1063 1036 1037 XT1 7A9A 236 190 191 XT3 7AB3 262 252 253 XT4 7AB4 263 251 256 XY1 7A62 186 286 XY11 7AA4 248 XY13 7AA1 246 311 349 970 XY2 7A78 204 198 205 XY22 7AC8 284 258 285 1120 1155 XY23 7AE9 315 291 XY25 7CE3 880 316 XY26 7DC7 1104 1016 XY27 7DEB 1148 189 200 1109 1154 XY27A 7DF4 1155 1151 XY28 7D6A 1015 881 XY29 7D40 971 904 XY30 7D04 905 966 XY30A 7D14 923 912 914 XY30B 7D15 924 909 XY30C 7D1D 929 926 XY30D 7D30 955 928 937 XY30E 7D35 964 951 XY30F 7D2D 950 979 989 XY30G 7D47 977 943 XY31 7D3E 970 975 XY32 7DA3 1071 1082 XY33 7DAC 1079 180 XY34 7A96 230 214 XY5 7ACC 290 208 XY5A 7AE0 306 1091 XY7 7AB6 268 247 269 270 302 308 326 338 348 370 625 628 656 872 968 972 1025 1070 1077 1084 1088 1132