CLEAR STORAGE 1 ,008015,022026,030037,044,049,053053N000000N00001026 1 CLEAR STORAGE 2 L068116,105106,110117B101/I9I#071029C029056B026/B001/0991,001/001117I0? 2 BOOTSTRAP ,008015,022029,036040,047054,061068,072/061039 ,0010011040 3 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 1 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 101 JOB FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 102 CTL 6611 103 * 104 * THE SOURCE PROGRAM IS SCANNED FOR VARIABLES. SIMPLE 105 * VARIABLES ARE MERELY TAGGED FOR LATER PROCESSING BY 106 * VARIABLES PHASE FOUR. SUBSCRIPTED VARIABLES WHOSE 107 * SUBSCRIPTS ARE CONSTANTS ARE REPLACED BY THE OBJECT- 108 * TIME ADDRESS OF THE ARRAY ELEMENT. SUBSCRIPTED VARIABLES 109 * WHOSE SUBSCRIPTS ARE VARIABLE ARE REPLACED BY THE 110 * COMPUTATION REQUIRED AT OBJECT TIME TO DETERMINE THE 111 * ARRAY ELEMENT SELECTED. NON-SUBSCRIPTED ARRAY VARIABLES 112 * APPEARING IN LISTS ARE REPLACED BY TWO MACHINE-LANGUAGE 113 * ADDRESSES REPRESENTING THE LIMITS OF THE ARRAY. NON- 114 * SUBSCRIPTED ARRAY VARIABLES APPEARING ELSEWHERE ARE 115 * REPLACED BY THE ADDRESS OF THE FIRST ELEMENT OF THE 116 * ARRAY. 117 * 118 * ON ENTRY, 83 IS ONE BELOW THE GM BELOW THE BOTTOM OF 119 * THE ARRAY TABLE AND X1 IS AT THE TOP OF THE FIRST (IN SORTED 120 * ORDER) STATEMENT THAT'S NEITHER DIMENSION NOR EQUIVALENCE. 121 * 122 * ON EXIT THE CODE IS MOVED UP AGAINST THE ARRAY TABLE. 123 * 124 X1 EQU 89 0089 125 X2 EQU 94 0094 126 X3 EQU 99 0099 127 * 128 * STUFF IN THE RESIDENT AREA 129 * 130 PHASID EQU 110 PHASE ID, FOR SNAPSHOT DUMPS 0110 131 GLOBER EQU 184 GLOBAL ERROR FLAG -- WM MEANS ERROR 0184 132 SNAPSH EQU 333 CORE DUMP SNAPSHOT 0333 133 LOADNX EQU 700 LOAD NEXT OVERLAY 0700 134 CLEARL EQU 707 CS AT START OF OVERLAY LOADER 0707 135 LOADXX EQU 793 EXIT FROM OVERLAY LOADER 0793 136 * 137 ORG 838 0838 138 LOADDD EQU *&1 LOAD ADDRESS 0838 139 838 BEGINN MCW 83,X2 7 0838 M 083 094 4 140 845 MCW X2,TBLBOT SAVE BOTTOM OF ARRAY TABLE 7 0845 M 094 O36 4 141 852 SW GM 4 0852 , N55 4 142 856 NXTSTM BCE DONE,0&X1, NO MORE STATEMENTS? 8 0856 B J38 0|0 4 143 864 LCA 0&X1,PREFIX 7 0864 L 0|0 O46 4 144 871 SAR X1 TOP OF STATEMENT 4 0871 Q 089 4 145 875 SBR X3 4 0875 H 099 5 146 879 LCA PREFIX,0&X2 PUSH UP BELOW ARRAY TABLE 7 0879 L O46 0!0 5 147 886 SBR X2 AND SAVE THE NEXT AVAILABLE 4 0886 H 094 5 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 2 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 148 890 BCE FORMAT,PREFIX-3,F FORMAT STATEMENT? 8 0890 B M70 O43 F 5 149 898 SW PREFIX-3 4 0898 , O43 5 150 902 MCW PREFIX-3,*&8 7 0902 M O43 916 5 151 909 BCE DATXFR,DATXFC,0 DATA TRANSFER STATEMENT? 8 0909 B J68 O53 0 6 152 917 CHAIN 6 MACRO 153 BCE 1 0917 B GEN 6 154 BCE 1 0918 B GEN 6 155 BCE 1 0919 B GEN 6 156 BCE 1 0920 B GEN 6 157 BCE 1 0921 B GEN 6 158 BCE 1 0922 B GEN 6 159 * 160 * NOT A DATA TRANSFER STATEMENT 161 * 162 923 MCW NOP,SWICH1 TURN OFF DATA TRANSFER 7 0923 M O54 956 7 163 930 MCW NOP,SWICH2 STATEMENT SWITCHES 7 0930 M O54 T32 7 164 * 165 * BACK HERE FOR EITHER DATA TRANSFER STATEMENT OR NOT 166 * 167 937 STMT MCW 0&X1,CH SKIP NUMERIC 7 0937 M 0|0 O55 7 168 944 SAR X1 AND NON-ZONED PUNCTUATION 4 0944 Q 089 7 169 948 BWZ STMT,CH,2 CHARACTERS 8 0948 V 937 O55 2 7 170 956 SWICH1 NOP DATXF1 BRANCH IF DATA TRANSFER STATEMENT 4 0956 N K12 7 171 960 SKIPP MCW CH,*&8 SKIP @*-&.%), 7 0960 M O55 974 8 172 967 BCE STMT,PUNCT,0 PUNCTUATION 8 0967 B 937 O63 0 8 173 975 CHAIN 7 MACRO 174 BCE 1 0975 B GEN 8 175 BCE 1 0976 B GEN 8 176 BCE 1 0977 B GEN 8 177 BCE 1 0978 B GEN 8 178 BCE 1 0979 B GEN 8 179 BCE 1 0980 B GEN 9 180 BCE 1 0981 B GEN 9 181 982 BCE FLTCON,CH,E FLOATING-POINT CONSTANT? 8 0982 B K99 O55 E 9 182 990 BCE GOTVAR,CH,} GM (BOTTOM OF STMT)? 8 0990 B /19 O55 } GMARK 9 183 998 MCW 2&X1,CH2 7 0998 M 0|2 O64 9 184 1 005 MCW CH2,*&8 7 1005 M O64 |19 9 185 1 012 BCE GOTVAR,PUNCT2,0 #,}*@&-%) 8 1012 B /19 N01 0 10 186 1 020 CHAIN 8 MACRO 187 BCE 1 1020 B GEN 10 188 BCE 1 1021 B GEN 10 189 BCE 1 1022 B GEN 10 190 BCE 1 1023 B GEN 10 191 BCE 1 1024 B GEN 10 192 BCE 1 1025 B GEN 10 193 BCE 1 1026 B GEN 11 194 BCE 1 1027 B GEN 11 195 1 028 BCE GOTVAR,PREFIX-3,D DO STATEMENT? 8 1028 B /19 O43 D 11 196 1 036 SYNTAX CS 332 4 1036 / 332 11 197 1 040 CS 1 1040 / 11 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 3 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 198 1 041 SW GLOBER GLOBAL ERROR FLAG 4 1041 , 184 11 199 1 045 MN PREFIX,240 SEQUENCE NUMBER TO PRINT LINE 7 1045 D O46 240 11 200 1 052 MN 1 1052 D 12 201 1 053 MN 1 1053 D 12 202 1 054 MCW ERROR9 VARIABLE SYNTAX ERROR 4 1054 M P01 12 203 1 058 W 1 1058 2 12 204 1 059 BCV OVFL1 5 1059 B |68 @ 12 205 1 064 B NOVFL1 4 1064 B |70 12 206 1 068 OVFL1 CC 1 2 1068 F 1 12 207 1 070 NOVFL1 BW CW1S6,FLAG1 GO CLEAR FLAG 1 AND SET FLAG 6 8 1070 V Z38 N02 1 13 208 1 078 SBR X1,1&X1 7 1078 H 089 0|1 13 209 1 085 SW FLAG3 4 1085 , N04 13 210 1 089 B SKP2P2 SKIP TO PUNCT2 PUNCTUATION 4 1089 B /71 13 211 * 212 1 093 SUBER2 LCA K0Q0,0&X2 0?0 7 1093 L P04 0!0 13 213 1 100 SBR X2 4 1100 H 094 13 214 1 104 SBR X3,1&X1 7 1104 H 099 0|1 14 215 1 111 SBR X1 4 1111 H 089 14 216 1 115 B VARFIN 4 1115 B U45 14 217 * 218 * X1 IS AT THE GM AT THE BOTTOM OF THE STATEMENT, OR ONE BELOW 219 * THE TOP (FIRST) CHARACTER OF A VARIABLE. 220 * MOVE STUFF ABOVE AND FIRST CHARACTER UP. 221 * 222 1 119 GOTVAR SW 1&X1 4 1119 , 0|1 14 223 1 123 LCA 0&X3,0&X2 MOVE UP STUFF ABOVE (BEFORE) VAR 7 1123 L 0?0 0!0 14 224 1 130 SBR X2 4 1130 H 094 14 225 1 134 CW 1&X1 4 1134 ) 0|1 14 226 1 138 SBR X3,1&X1 X3 NOW AT TOP (BEGINNING) OF VARIABLE 7 1138 H 099 0|1 15 227 1 145 SBR CHECK&6,2&X1 7 1145 H U74 0|2 15 228 1 152 MCW SEMIC REPLACE CHAR ABOVE VARIABLE OR GM 4 1152 M P05 15 229 1 156 BCE ENDSTM,CH,} END IF GM 8 1156 B K43 O55 } GMARK 15 230 1 164 ZA KP1,W2 7 1164 ? P06 P08 15 231 * 232 ` * COUNT CHARACTERS IN NAME 233 * 234 1 171 SKP2P2 MCW 0&X1,CH 7 1171 M 0|0 O55 16 235 1 178 SAR X1 4 1178 Q 089 16 236 1 182 MCW CH,*&8 7 1182 M O55 /96 16 237 1 189 BCE GOTP2,PUNCT2,0 #,}*@&-%) 8 1189 B S16 N01 0 16 238 1 197 CHAIN 8 MACRO 239 BCE 1 1197 B GEN 16 240 BCE 1 1198 B GEN 16 241 BCE 1 1199 B GEN 16 242 BCE 1 1200 B GEN 17 243 BCE 1 1201 B GEN 17 244 BCE 1 1202 B GEN 17 245 BCE 1 1203 B GEN 17 246 BCE 1 1204 B GEN 17 247 1 205 A KP1,W2 7 1205 A P06 P08 17 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 4 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 248 1 212 B SKP2P2 4 1212 B /71 17 249 * 250 1 216 GOTP2 BW SUBFN1,FLAG6 8 1216 V Z50 O00 1 18 251 1 224 BW SUBER2,FLAG3 8 1224 V |93 N04 1 18 252 1 232 SW 2&X1 AT BOTTOM (LAST) CHAR OF TOKEN 4 1232 , 0|2 18 253 1 236 SAR SX1 SAVE 1&X1 AT PUNCT BELOW NAME 4 1236 Q P11 18 254 * 255 * LOOK FOR VARIABLE IN ARRAY TABLE. X3 IS AT TOP (FIRST) 256 * CHARACTER OF THE VARIABLE. CH IS CHARACTER BELOW (AFTER) 257 * THE VARIABLE. 258 * 259 1 240 LOOKUP MCW TBLBOT,X1 GET BOTTOM OF ARRAY TABLE 7 1240 M O36 089 18 260 1 247 BCE ASG,CH,# GO TURN OFF SWICH2 IF ASSIGNMENT STMT 8 1247 B K54 O55 # 18 261 1 255 LOOK2 BCE NOTARR,2&X1, AT END OF ARRAY TABLE? 8 1255 B T81 0|2 19 262 1 263 MORE MCM 2&X1 4 1263 P 0|2 19 263 1 267 MN 1 1267 D 19 264 1 268 MN 1 1268 D 19 265 1 269 SAR X1 4 1269 Q 089 19 266 1 273 BCE MORE,1&X1,| 8 1273 B S63 0|1 | 19 267 1 281 C 0&X3,0&X1 7 1281 C 0?0 0|0 19 268 1 288 BU LOOK2 5 1288 B S55 / 20 269 1 293 C 0&X1,0&X3 7 1293 C 0|0 0?0 20 270 1 300 BU LOOK2 5 1300 B S55 / 20 271 1 305 C 0&X1 GET X1 DOWN TO 4 1305 C 0|0 20 272 1 309 CHAIN 3 OFFSET FIELD MACRO 273 C 1 1309 C GEN 20 274 C 1 1310 C GEN 20 275 C 1 1311 C GEN 20 276 1 312 SAR X1 4 1312 Q 089 21 277 1 316 BW SUBVR2,FLAG2 WORKING ON VARIABLE SUBSCRIPT? 8 1316 V X43 N03 1 21 278 1 324 BCE SUB,CH,% SUBSCRIPTED 8 1324 B V83 O55 % 21 279 * 280 * IN ARRAY TABLE, NOT SUBSCRIPTED 281 * 282 1 332 SWICH2 NOP DATXF2 BRANCH IF DATA TRANSFER STATEMENT 4 1332 N T58 21 283 1 336 LCA 9&X1,1&X2 ADDR OF LOW DIGIT OF FIRST ARRAY ELT 7 1336 L 0|9 0!1 21 284 1 343 SBR X2 4 1343 H 094 21 285 1 347 LOOKFN MCW SX1,X1 7 1347 M P11 089 22 286 1 354 B VARFIN 4 1354 B U45 22 287 * 288 * WHOLE ARRAY 289 * 290 1 358 DATXF2 LCA 9&X1,1&X2 ADDR OF LOW DIGIT OF FIRST ARRAY ELT 7 1358 L 0|9 0!1 22 291 1 365 LCA 3&X1 ADDR OF LOW DIGIT OF LAST ARRAY ELT 4 1365 L 0|3 22 292 1 369 SBR X2 4 1369 H 094 22 293 1 373 CW 4&X2 BETWEEN ADDRESSES 4 1373 ) 0!4 22 294 1 377 B LOOKFN 4 1377 B T47 22 295 * 296 * NOT IN ARRAY TABLE. X2 IS TWO BELOW THE PUNCTUATION BEFORE 297 * THE VARIABLE OR PREFIX MOVED TO BE BELOW THE ARRAY TABLE. FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 5 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 298 * 299 1 381 NOTARR MCW SX1,X1 7 1381 M P11 089 23 300 1 388 BW SUBVR3,FLAG2 WORKING ON VARIABLE SUBSCRIPT? 8 1388 V X67 N03 1 23 301 1 396 BCE SUBNOT,CH,% 8 1396 B U87 O55 % 23 302 1 404 LCA KBUNDR,1&X2 BLANK, UNDERSCORE 7 1404 L P13 0!1 23 303 1 411 SBR X2 4 1411 H 094 23 304 1 415 NOTAR2 LCA 0&X3,1&X2 MOVE VARIABLE UP 7 1415 L 0?0 0!1 24 305 1 422 SBR X2 4 1422 H 094 24 306 1 426 CW 1&X2 4 1426 ) 0!1 24 307 1 430 S KP2,W2 7 1430 S P14 P08 24 308 1 437 BM SHORT,W2 VARIABLE NAME IS SHORT 8 1437 V K80 P08 K 24 309 1 445 VARFIN CW 1&X1 4 1445 ) 0|1 24 310 1 449 SAR X3 4 1449 Q 099 24 311 1 453 VARFN2 CW 1&X2 4 1453 ) 0!1 25 312 1 457 CW FLAG4,FLAG3 7 1457 ) N98 N04 25 313 1 464 CW FLAG5 4 1464 ) N99 25 314 1 468 CHECK BCE STMT,0,; SEMICOLON? 8 1468 B 937 000 ; 25 315 1 476 MCW DOLLAR,X1 7 1476 M P15 089 25 316 1 483 B DONE 4 1483 B J38 25 317 * 318 * NOT IN ARRAY TABLE, BUT APPEARS TO BE SUBSCRIPTED 319 * 320 1 487 SUBNOT BCE NOTAR2,1&X1,F LAST CHAR OF VAR SAYS FUNCTION? 8 1487 B U15 0|1 F 26 321 1 495 CS 332 4 1495 / 332 26 322 1 499 CS 1 1499 / 26 323 1 500 SW GLOBER 4 1500 , 184 26 324 1 504 MN PREFIX,240 7 1504 D O46 240 26 325 1 511 MN 1 1511 D 26 326 1 512 MN 1 1512 D 26 327 1 513 MCW ERROR6 4 1513 M P52 27 328 1 517 W 1 1517 2 27 329 1 518 BCV OVFL2 5 1518 B V27 @ 27 330 1 523 B NOVFL2 4 1523 B V29 27 331 1 527 OVFL2 CC 1 2 1527 F 1 27 332 1 529 NOVFL2 LCA KPCT3Z,1&X2 %000 7 1529 L P56 0!1 27 333 1 536 SBR X2 4 1536 H 094 27 334 1 540 MZ SAVZON,3&X2 7 1540 Y P68 0!3 28 335 1 547 GETEND BCE ENDSUB,0&X1,) END OF SUBSCRIPT? 8 1547 B V71 0|0 ) 28 336 1 555 BCE ENDST2,0&X1,} END OF STATEMENT? 8 1555 B K35 0|0 } GMARK 28 337 1 563 SBR X1 4 1563 H 089 28 338 1 567 B GETEND 4 1567 B V47 28 339 1 571 ENDSUB MN 0&X1 X1 NOW BELOW SUBSCRIPT 4 1571 D 0|0 28 340 1 575 SAR X1 4 1575 Q 089 28 341 1 579 B VARFN2 4 1579 B U53 29 342 * 343 * IN ARRAY TABLE AND SUBSCRIPTED 344 * 345 1 583 SUB ZA 0&X1,W6 HIGH DIGIT OF FIRST ARRAY ELEMENT 7 1583 ? 0|0 P62 29 346 1 590 SAR X3 X3 NOW AT FIRST DIMENSION 4 1590 Q 099 29 347 1 594 SW FLAG7 IN ARRAY TABLE AND SUBSCRIPTED 4 1594 , P79 29 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 6 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 348 1 598 ZA 0&X3,W5 FIRST DIMENSION TO W5 7 1598 ? 0?0 P67 29 349 1 605 ZA 5&X1,PROD-7 ELEMENT SIZE 7 1605 ? 0|5 N87 29 350 1 612 S KP1,W6 7 1612 S P06 P62 30 351 1 619 MZ 8&X1,SAVZON TYPE TAG OF ARRAY 7 1619 Y 0|8 P68 30 352 1 626 MCW SX1,X1 X1 BACK TO STATEMENT 7 1626 M P11 089 30 353 1 633 LCA KBDOLR,1&X2 BLANK, $ INDICATES SUBSCRIPT 7 1633 L P70 0!1 30 354 1 640 SBR X2 4 1640 H 094 30 355 1 644 MN 0&X1 4 1644 D 0|0 30 356 1 648 SAR X1 4 1648 Q 089 31 357 1 652 SBR X3 4 1652 H 099 31 358 1 656 TSTCON BWZ SUBMOR,0&X1,2 CONSTANT SUBSCRIPT? 8 1656 V Y51 0|0 2 31 359 1 664 SBR X1,2&X1 7 1664 H 089 0|2 31 360 1 671 LCA KSTAR1,0&X1 STAR, 1 (1 IS PREV DIM WIDTH) 7 1671 L P72 0|0 31 361 1 678 B SUBMOR 4 1678 B Y51 31 362 * 363 * CONTINUE VARIABLE SUBSCRIPT PROCESSING 364 * 365 1 682 SUBVAR LCA KBUNDR,1&X2 BLANK, UNDERSCORE INDICATES VARIABLE 7 1682 L P13 0!1 32 366 1 689 SBR X2 4 1689 H 094 32 367 * 368 * GET DOWN TO THE BOTTOM OF THE VARIABLE 369 * 370 1 693 SKP2P3 MCW 0&X1,CH 7 1693 M 0|0 O55 32 371 1 700 SAR X1 4 1700 Q 089 32 372 1 704 MCW CH,*&8 7 1704 M O55 X18 32 373 1 711 BCE GOTP3,PUNCT3,0 -&), 8 1711 B X26 P76 0 32 374 1 719 CHAIN 3 MACRO 375 BCE 1 1719 B GEN 32 376 BCE 1 1720 B GEN 33 377 BCE 1 1721 B GEN 33 378 1 722 B SKP2P3 4 1722 B W93 33 379 1 726 GOTP3 SW 2&X1 4 1726 , 0|2 33 380 1 730 SW 1 1730 , 33 381 1 731 SAR SX1 4 1731 Q P11 33 382 1 735 SW FLAG2 WORKING ON VARIABLE SUBSCRIPT 4 1735 , N03 33 383 1 739 B LOOKUP 4 1739 B S40 34 384 * 385 1 743 SUBVR2 LCA 9&X1,2&X2 7 1743 L 0|9 0!2 34 386 1 750 SBR X2 4 1750 H 094 34 387 1 754 CW 1&X2 4 1754 ) 0!1 34 388 1 758 MN 1 1758 D 34 389 1 759 SAR X2 4 1759 Q 094 34 390 1 763 B SUBVR4 4 1763 B X83 34 391 * 392 * MOVE SUBSCRIPT UP 393 * 394 1 767 SUBVR3 LCA 0&X3,1&X2 7 1767 L 0?0 0!1 35 395 1 774 LCA 1 1774 L 35 396 1 775 SBR X2 4 1775 H 094 35 397 1 779 CW 2&X2 4 1779 ) 0!2 35 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 7 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 398 1 783 SUBVR4 MCW SX1,X1 7 1783 M P11 089 35 399 1 790 CW 2&X1 4 1790 ) 0|2 35 400 1 794 BCE SHORT2,3&X2,_ 8 1794 B K65 0!3 _ 35 401 1 802 LCA KBCOMM,1&X2 BLANK, COMMA 7 1802 L P78 0!1 36 402 1 809 SBR X2 4 1809 H 094 36 403 1 813 CW FLAG2 DONE WORKING ON VARIABLE SUBSCRIPT 4 1813 ) N03 36 404 1 817 BCE MORSUB,CH,, 8 1817 B M38 O55 , 36 405 1 825 BCE SUBFIN,CH,) 8 1825 B Z54 O55 ) 36 406 1 833 MZ CH,PROD-7 7 1833 Y O55 N87 36 407 1 840 SUBVR5 MCW X1,X3 7 1840 M 089 099 37 408 1 847 B TSTCON 4 1847 B W56 37 409 * 410 * CONTINUE SUBSCRIPT PROCESSING 411 * 412 1 851 SUBMOR SBR X3,BIGWRK-2 7 1851 H 099 N03 37 413 1 858 SUBM2 MCW 0&X1,CH MOVE SUBSCRIPT 7 1858 M 0|0 O55 37 414 1 865 SAR X1 TO BIGWRK PUTTING 4 1865 Q 089 37 415 1 869 MCW CH,2&X3 ITS CHARACTERS 7 1869 M O55 0?2 37 416 1 876 SBR X3 INTO FORWARD ORDER 4 1876 H 099 38 417 1 880 BWZ SUBM2,0&X1,2 CONSTANT SUBSCRIPT? 8 1880 V Y58 0|0 2 38 418 1 888 SBR X1 4 1888 H 089 38 419 1 892 M PROD-7,7&X3 7 1892 @ N87 0?7 38 420 1 899 BCE SUBV1,1&X1,* FIRST VARIABLE SUBSCRIPT? 8 1899 B Z92 0|1 * 38 421 1 907 A 7&X3,W6 ADD TO OFFSET FROM ARRAY BASE 7 1907 A 0?7 P62 38 422 1 914 BCE SUBFIN,1&X1,) DONE WITH SUBSCRIPTS? 8 1914 B Z54 0|1 ) 39 423 1 922 BCE MORSUB,1&X1,, SECOND SUBSCRIPT? 8 1922 B M38 0|1 , 39 424 1 930 SW FLAG1 4 1930 , N02 39 425 1 934 B SYNTAX 4 1934 B |36 39 426 * 427 1 938 CW1S6 CW FLAG1 4 1938 ) N02 39 428 1 942 SW FLAG6 4 1942 , O00 39 429 1 946 B SKP2P2 4 1946 B /71 39 430 * 431 1 950 SUBFN1 CW FLAG6 4 1950 ) O00 40 432 1 954 SUBFIN NOP W6-7 4 1954 N P55 40 433 1 958 SAR X3 4 1958 Q 099 40 434 1 962 SW FLAG4 MOVING VARIABLE SUBSCRIPT 4 1962 , N98 40 435 1 966 B NORMLZ 4 1966 B !29 40 436 1 970 SUBFN2 LCA DOLLAR,0&X2 MARK END OF SUBSCRIPT 7 1970 L P15 0!0 40 437 1 977 SBR X2 4 1977 H 094 40 438 1 981 MZ SAVZON,3&X2 7 1981 Y P68 0!3 41 439 1 988 B VARFIN 4 1988 B U45 41 440 * 441 * FIRST VARIABLE SUBSCRIPT 442 * 443 1 992 SUBV1 CW 1&X1,FLAG7 7 1992 ) 0|1 P79 41 444 1 999 B NORMLZ 4 1999 B !29 41 445 2 003 LCA KBSTAR,0&X2 7 2003 L P81 0!0 41 446 2 010 SBR X2 4 2010 H 094 41 447 2 014 CW 1&X2 4 2014 ) 0!1 41 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 8 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 448 2 018 MCW X1,X3 7 2018 M 089 099 42 449 2 025 B SUBVAR 4 2025 B W82 42 450 * 451 * NORMALIZE OFFSET BETWEEN 0 AND 15999, STORE IT 452 * INTO CODE AT TOP OF CORE. 453 * 454 2 029 NORMLZ SBR NORMLX&3 4 2029 H J37 42 455 2 033 NORMLP S KP16K,7&X3 SUBTRACT 16000 7 2033 S P86 0?7 42 456 2 040 BWZ NORMLP,7&X3,B UNTIL NEGATIVE 8 2040 V !33 0?7 B 42 457 2 048 NORMLN A KP16K,7&X3 ADD 16000 7 2048 A P86 0?7 42 458 2 055 BM NORMLN,7&X3 UNTIL POSITIVE 8 2055 V !48 0?7 K 43 459 2 063 BW CVTADR,FLAG4 MOVING VARIABLE SUBSCRIPT? 8 2063 V L35 N98 1 43 460 2 071 NORTRM SBR X3,1&X3 TRIM LEADING 7 2071 H 099 0?1 43 461 2 078 BCE NORTRM,2&X3,0 ZEROES 8 2078 B !71 0?2 0 43 462 2 086 SBR X2,1&X2 7 2086 H 094 0!1 43 463 2 093 LCA KB6 4 2093 L P92 44 464 2 097 NORREV MCW 2&X3,CH MOVE NORMALIZED 7 2097 M 0?2 O55 44 465 2 104 SAR X3 OFFSET UP 4 2104 Q 099 44 466 2 108 MCW CH,0&X2 WHILE REVERSING 7 2108 M O55 0!0 44 467 2 115 SBR X2 THE DIGITS 4 2115 H 094 44 468 2 119 BWZ NORREV,1&X3,2 8 2119 V !97 0?1 2 44 469 2 127 MZ KB1,1&X2 CLOBBER LAST DIGIT ZONE 7 2127 Y P87 0!1 45 470 2 134 NORMLX B 0-0 4 2134 B 000 45 471 * 472 * DONE 473 * 474 2 138 DONE BSS SNAPSH,C 5 2138 B 333 C 45 475 2 143 SBR LOADXX&3,849 7 2143 H 796 849 45 476 2 150 SBR CLEARL&3,GMWM 7 2150 H 710 Q13 45 477 2 157 LCA VARBL2,PHASID 7 2157 L Q01 110 45 478 2 164 B LOADNX 4 2164 B 700 46 479 * 480 * DATA TRANSFER INPUT/OUTPUT STATEMENT 481 * 482 2 168 DATXFR MCW BRANCH,SWICH1 TURN ON DATA TRANSFER 7 2168 M Q02 956 46 483 2 175 MCW BRANCH,SWICH2 STATEMENT SWITCHES 7 2175 M Q02 T32 46 484 2 182 MCW PREFIX-3,*&8 7 2182 M O43 J96 46 485 2 189 BCE RWT,RWTC,0 READ/WRITE (INPUT/OUTPUT) TAPE? 8 2189 B K04 Q06 0 46 486 2 197 CHAIN 3 MACRO 487 BCE 1 2197 B GEN 46 488 BCE 1 2198 B GEN 46 489 BCE 1 2199 B GEN 47 490 2 200 B STMT READ, PRINT OR PUNCH 4 2200 B 937 47 491 2 204 RWT SW FLAG5 4 2204 , N99 47 492 2 208 B STMT 4 2208 B 937 47 493 2 212 DATXF1 BCE DATXRP,CH,) 8 2212 B K24 O55 ) 47 494 2 220 B SKIPP GO SKIP PUNCTUATION 4 2220 B 960 47 495 2 224 DATXRP MCW BRANCH,SWICH2 7 2224 M Q02 T32 47 496 2 231 B SKIPP GO SKIP PUNCTUATION 4 2231 B 960 48 497 * FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 9 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 498 * BOTTOM (END) OF STATEMENT 499 * 500 2 235 ENDST2 MN 0&X2 4 2235 D 0!0 48 501 2 239 SAR X2 4 2239 Q 094 48 502 2 243 ENDSTM LCA GM,1&X2 7 2243 L N55 0!1 48 503 2 250 B NXTSTM 4 2250 B 856 48 504 * 505 * SAW ASSIGNMENT OPERATOR (#) 506 * 507 2 254 ASG MCW NOP,SWICH2 7 2254 M O54 T32 48 508 2 261 B LOOK2 4 2261 B S55 48 509 * 510 * MAKE SURE AT LEAST 3 CHARACTERS 511 * 512 2 265 SHORT2 LCA KB2,1&X2 7 2265 L P88 0!1 49 513 2 272 SBR X2 4 2272 H 094 49 514 2 276 B SUBVR4 4 2276 B X83 49 515 * 516 * VARIABLE NAME IS SHORT -- WE NEED AT LEAST THREE SPACES 517 * 518 2 280 SHORT LCA KB1,0&X2 7 2280 L P87 0!0 49 519 2 287 SBR X2 4 2287 H 094 49 520 2 291 CW 1&X2 4 2291 ) 0!1 49 521 2 295 B VARFIN 4 2295 B U45 49 522 * 523 * LOOKS LIKE A FLOATING-POINT CONSTANT 524 * 525 2 299 FLTCON BCE GOTVAR,2&X1,# 8 2299 B /19 0|2 # 50 526 2 307 BCE GOTVAR,2&X1,@ 8 2307 B /19 0|2 @ 50 527 2 315 BWZ STMT,2&X1,2 8 2315 V 937 0|2 2 50 528 2 323 BCE STMT,2&X1,. 8 2323 B 937 0|2 . 50 529 2 331 B GOTVAR 4 2331 B /19 50 530 * 531 * CONVERT BIGWRK TO MACHINE ADDRESS 532 * 533 2 335 CVTADR MCW 7&X3,W5B 7 2335 M 0?7 Q11 51 534 2 342 MN W5B,SUBADR 7 2342 D Q11 N97 51 535 2 349 MN 1 2349 D 51 536 2 350 MN 1 2350 D 51 537 2 351 SAR *&4 4 2351 Q L58 51 538 2 355 MCW 0-0,X3 THOUSANDS 7 2355 M 000 099 51 539 2 362 MCW K0 AND A ZERO TO X3 4 2362 M Q12 51 540 2 366 A X3 DOUBLE X3 4 2366 A 099 52 541 2 370 MZ ZONES&1&X3,SUBADR 7 2370 Y O?3 N97 52 542 2 377 CW 1 2377 ) 52 543 2 378 SBR *&7 4 2378 H L88 52 544 2 382 MZ ZONES&X3,0-0 7 2382 Y O?2 000 52 545 2 389 BCE CVTAD2,2&X2,, 8 2389 B M04 0!2 , 52 546 2 397 SBR X2,1&X2 7 2397 H 094 0!1 52 547 2 404 CVTAD2 LCA SUBADR,1&X2 7 2404 L N97 0!1 53 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 10 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 548 2 411 SBR X2 4 2411 H 094 53 549 2 415 CW 1&X2 4 2415 ) 0!1 53 550 2 419 MZ SAVZON,2&X2 7 2419 Y P68 0!2 53 551 2 426 BW VARFIN,FLAG7 IN ARRAY TABLE AND SUBSCRIPTED? 8 2426 V U45 P79 1 53 552 2 434 B SUBFN2 4 2434 B Z70 53 553 * 554 * SAW A COMMA, HERE COMES ANOTHER SUBSCRIPT 555 * 556 2 438 MORSUB MZ *-4,PROD-7 7 2438 Y M40 N87 54 557 2 445 M W5,PROD-1 7 2445 @ P67 N93 54 558 2 452 MCM PROD-5,PROD-11 7 2452 P N89 N83 54 559 2 459 S PROD-7,W6 7 2459 S N87 P62 54 560 2 466 B SUBVR5 4 2466 B Y40 54 561 * 562 * FORMAT STATEMENT -- JUST COPY IT 563 * 564 2 470 FORMAT LCA 0&X1,0&X2 COPY STMT BELOW ARRAY TABLE 7 2470 L 0|0 0!0 54 565 2 477 SBR X2 SAVE NEXT 'TO' ADDRESS 4 2477 H 094 55 566 2 481 C 0&X1 GET TO BOTTOM OF STATEMENT 4 2481 C 0|0 55 567 2 485 SAR X1 SAVE TOP OF NEXT STATEMENT 4 2485 Q 089 55 568 2 489 B NXTSTM 4 2489 B 856 55 569 * 570 * DATA 571 * 572 2 501 PUNCT2 DCW @#,}*@&-%)@ 9 2501 55 573 2 502 FLAG1 DC #1 SYNTAX ERROR AFTER FIRST SUBSCRIPT 1 2502 55 574 2 503 FLAG2 DC #1 1 2503 55 575 2 504 FLAG3 DC #1 1 2504 55 576 2 505 BIGWRK DCW #1 1 2505 55 577 2 554 DC #49 49 2554 57 578 2 555 GM DC @}@ 1 2555 GMARK 57 579 2 561 DCW @ERROR @ 6 2561 57 580 2 582 DCW @ VARIABLE, STATEMENT @ 21 2582 57 581 2 594 PROD DCW @ |@ 12 2594 58 582 2 597 SUBADR DCW #3 SUBSCRIPT VARIABLE ADDRESS 3 2597 58 583 2 598 FLAG4 DC #1 MOVING VARIABLE SUBSCRIPT 1 2598 58 584 2 599 FLAG5 DC #1 1 2599 58 585 2 600 FLAG6 DC #1 1 2600 58 586 2 602 ZONES DCW @ 9@ 2 2602 58 587 2 633 DCW @9Z9R9I99ZZZRZIZ9RZRRRIR9IZIRIII@ 31 2633 59 588 2 636 TBLBOT DCW #3 BOTTOM OF THE ARRAY TABLE 3 2636 59 589 2 646 PREFIX DCW #10 10 2646 60 590 2 653 DATXFC DCW @3L5UP61@ CODES FOR DATA TRANSFER STATEMENTS 7 2653 60 591 2 654 NOP NOP 1 2654 N 60 592 2 655 CH DCW #1 1 2655 60 593 2 663 PUNCT DCW @@*-&.%),@ PUNCTUATION CHARACTERS 8 2663 60 594 2 664 CH2 DCW #1 1 2664 60 595 2 701 ERROR9 DCW @ERROR 9 - VARIABLE SYNTAX, STATEMENT @ 37 2701 61 596 2 704 K0Q0 DSA 0&X3 3 2704 0?0 62 597 2 705 SEMIC DCW @;@ SEMICOLON 1 2705 62 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 11 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 598 2 706 KP1 DCW &1 1 2706 62 599 2 708 W2 DCW #2 2 2708 62 600 2 711 SX1 DCW #3 3 2711 62 601 2 713 KBUNDR DCW @ _@ BLANK, UNDERSCORE 2 2713 62 602 2 714 KP2 DCW &2 1 2714 62 603 2 715 DOLLAR DCW @$@ 1 2715 63 604 2 752 ERROR6 DCW @ERROR 6 - UNDEFINED ARRAY, STATEMENT @ 37 2752 63 605 2 756 KPCT3Z DCW @%000@ 4 2756 64 606 2 762 W6 DCW #6 6 2762 64 607 2 767 W5 DCW #5 5 2767 64 608 2 768 SAVZON DCW #1 1 2768 64 609 2 770 KBDOLR DCW @ $@ 2 2770 64 610 2 772 KSTAR1 DCW @*1@ 2 2772 64 611 2 776 PUNCT3 DCW @-&),@ 4 2776 64 612 2 778 KBCOMM DCW @ ,@ 2 2778 65 613 2 779 FLAG7 DCW #1 WM MEANS IN ARRAY TABLE AND SUBSCRIPTED 1 2779 65 614 2 781 KBSTAR DCW @ *@ 2 2781 65 615 2 786 KP16K DCW @1600?@ 5 2786 65 616 2 787 KB1 DCW #1 1 2787 65 617 2 788 KB2 DC #1 1 2788 65 618 2 792 KB6 DC #4 4 2792 65 619 2 801 VARBL2 DCW @VARBL TWO@ 9 2801 65 620 2 802 BRANCH B 1 2802 B 65 621 2 806 RWTC DCW @1356@ READ/WRITE (INPUT/OUTPUT) TAPE CODES 4 2806 66 622 2 811 W5B DCW #5 5 2811 66 623 2 812 K0 DCW 0 1 2812 66 624 2 813 GMWM DCW @}@ 1 2813 GMARK 66 625 ORG 201 0201 626 203 DSA LOADDD LOAD ADDRESS FOR CARD-TO-TAPE PROGRAM 3 0203 838 67 627 EX BEGINN B 838 68 628 END / 000 080 FORTRAN COMPILER -- VARIABLE PHASE ONE -- 13 PAGE 12 SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS ASG 2254 BEGINN 838 BIGWRK 2505 BRANCH 2802 CH 2655 CH2 2664 CHECK 1468 CLEARL 707 CVTAD2 2404 CVTADR 2335 CW1S6 1938 DATXF1 2212 DATXF2 1358 DATXFC 2653 DATXFR 2168 DATXRP 2224 DOLLAR 2715 DONE 2138 ENDST2 2235 ENDSTM 2243 ENDSUB 1571 ERROR6 2752 ERROR9 2701 FLAG1 2502 FLAG2 2503 FLAG3 2504 FLAG4 2598 FLAG5 2599 FLAG6 2600 FLAG7 2779 FLTCON 2299 FORMAT 2470 GETEND 1547 GLOBER 184 GM 2555 GMWM 2813 GOTP2 1216 GOTP3 1726 GOTVAR 1119 K0 2812 K0Q0 2704 KB1 2787 KB2 2788 KB6 2792 KBCOMM 2778 KBDOLR 2770 KBSTAR 2781 KBUNDR 2713 KP1 2706 KP16K 2786 KP2 2714 KPCT3Z 2756 KSTAR1 2772 LOADDD 838 LOADNX 700 LOADXX 793 LOOK2 1255 LOOKFN 1347 LOOKUP 1240 MORE 1263 MORSUB 2438 NOP 2654 NORMLN 2048 NORMLP 2033 NORMLX 2134 NORMLZ 2029 NORREV 2097 NORTRM 2071 NOTAR2 1415 NOTARR 1381 NOVFL1 1070 NOVFL2 1529 NXTSTM 856 OVFL1 1068 OVFL2 1527 PHASID 110 PREFIX 2646 PROD 2594 PUNCT 2663 PUNCT2 2501 PUNCT3 2776 RWT 2204 RWTC 2806 SAVZON 2768 SEMIC 2705 SHORT 2280 SHORT2 2265 SKIPP 960 SKP2P2 1171 SKP2P3 1693 SNAPSH 333 STMT 937 SUB 1583 SUBADR 2597 SUBER2 1093 SUBFIN 1954 SUBFN1 1950 SUBFN2 1970 SUBM2 1858 SUBMOR 1851 SUBNOT 1487 SUBV1 1992 SUBVAR 1682 SUBVR2 1743 SUBVR3 1767 SUBVR4 1783 SUBVR5 1840 SWICH1 956 SWICH2 1332 SX1 2711 SYNTAX 1036 TBLBOT 2636 TSTCON 1656 VARBL2 2801 VARFIN 1445 VARFN2 1453 W2 2708 W5 2767 W5B 2811 W6 2762 X1 89 X2 94 X3 99 ZONES 2602