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 -- DIMENSION PHASE ONE -- 09 PAGE 1 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 101 JOB FORTRAN COMPILER -- DIMENSION PHASE ONE -- 09 102 * 103 * A TABLE OF ARRAYS IS GENERATED AT THE END OF STORAGE. 104 * EACH TABLE ELEMENT CONSISTS OF THE ARRAY NAME, ITS 105 * DIMENSIONS AND SUFFICIENT SPACE FOR CONTROL STATEMENTS 106 * AND DATA GENERATED BY THE EQUIVALENCE PHASES AND BY 107 * DIMENSION PHASE TWO. 108 * 109 * DIMENSION TABLE ELEMENTS ARE SEPARATED BY GROUP MARK WORD MARK. 110 * AT THE TOP OF EACH ELEMENT IS THE ARRAY NAME, SPELT BACKWARD. 111 * BELOW THAT ARE TWO CELLS USED TO DOUBLE LINK THE ELEMENTS. 112 * THE UPPER ONE POINTS TO THE NEXT ONE HIGHER IN CORE (UNLESS 113 * IT'S BLANK); THE LOWER ONE POINTS TO THE NEXT ONE LOWER IN 114 * CORE (UNLESS IT'S BLANK). BELOW THAT ARE EMPTY THREE CHARACTER 115 * AND FIVE CHARACTER FIELDS. BELOW THAT ARE THE DIMENSIONS, WITH 116 * THE FIRST DIMENSION AT THE HIGHER ADDRESS. THE DIGITS OF THE 117 * DIMENSIONS ARE NOT REVERSED. 118 * 119 * 81-83 = START (TOP ADDRESS) OF FIRST (TOP IN MEMORY) 120 * STATEMENT. REMEMBER, STATEMENTS ARE SORTED BY TYPE NOW, 121 * AND PUSHED TO THE BOTTOM OF AVAILABLE CORE. 122 * 123 * ON EXIT, 84-86 IS THE ADDRESS OF THE TOPMOST (FIRST) 124 * DIMENSION TABLE. 125 * 126 CTL 6611 127 * 128 X1 EQU 89 0089 129 X2 EQU 94 0094 130 X3 EQU 99 0099 131 * 132 * STUFF IN THE RESIDENT AREA 133 * 134 PHASID EQU 110 PHASE ID, FOR SNAPSHOT DUMPS 0110 135 GLOBER EQU 184 GLOBAL ERROR FLAG -- WM MEANS ERROR 0184 136 SNAPSH EQU 333 CORE DUMP SNAPSHOT 0333 137 TOPCOR EQU 688 TOP CORE ADDRESS FROM PARAM CARD 0688 138 IMOD EQU 690 INTEGER MODULUS -- NUMBER OF DIGITS 0690 139 MANTIS EQU 692 FLOATING POINT MANTISSA DIGITS 0692 140 LOADNX EQU 700 LOAD NEXT OVERLAY 0700 141 CLEARL EQU 707 CS AT START OF OVERLAY LOADER 0707 142 CDOVLY EQU 769 READ (1) INSTRUCTION IF RUNNING FROM CARDS 0769 143 TPREAD EQU 780 TAPE READ INSTRUCTION IN OVERLAY LOADER 0780 144 LOADXX EQU 793 EXIT FROM OVERLAY LOADER 0793 145 CLRBOT EQU 833 BOTTOM OF CORE TO CLEAR IN OVERLAY LOADER 0833 146 * 147 ORG 838 0838 FORTRAN COMPILER -- DIMENSION PHASE ONE -- 09 PAGE 2 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 148 LOADDD EQU *&1 LOAD ADDRESS 0838 149 838 DIFF DCW @0@ WM IF FP WIDTH /= INTEGER WIDTH 1 0838 4 150 839 BEGINN SW GM 4 0839 , W91 4 151 843 MCW 83,X1 TOP OF TOP (FIRST) STATEMENT 7 0843 M 083 089 4 152 850 A KB1,MANTIS GET RID OF ZONES IN MANTIS 7 0850 A X01 692 4 153 857 MCW MANTIS,MANP2 7 0857 M 692 X03 4 154 864 A KP2,MANP2 MANTIS + 2 = TOTAL FP WIDTH 7 0864 A X04 X03 4 155 871 C IMOD,MANP2 FP WIDTH == INTEGER WIDTH? 7 0871 C 690 X03 5 156 878 BU DIFWID 5 0878 B 887 / 5 157 883 CW DIFF 4 0883 ) 838 5 158 887 DIFWID LCA GM,1&X1 SET GMWM ABOVE STATEMENT 7 0887 L W91 0|1 5 159 894 LCA TOPCOR,X2 X2 = TOPCOR 7 0894 L 688 094 5 160 901 MN 0&X2 4 0901 D 0!0 5 161 905 MN 1 0905 D 5 162 906 MCW KB1A 4 0906 M X05 6 163 910 SBR X2 X2 = TOPCOR - 3 4 0910 H 094 6 164 914 PREV MCW KB1,1-0 CLOBBER PREVIOUS LESS-THAN SIGN 7 0914 M X01 001 6 165 921 MCW KLESS,2&X1 STMT TOP + 2 = LESS-THAN SIGN 7 0921 M X06 0|2 6 166 928 NOP 2&X1 4 0928 N 0|2 6 167 932 SAR PREV&6 REMEMBER WHERE WE PUT IT 4 0932 Q 920 6 168 936 LCA 0&X1,PREFIX 7 0936 L 0|0 W90 6 169 943 SAR X1 POINT X1 4 0943 Q 089 7 170 947 SBR X3 AND X3 AFTER LABEL 4 0947 H 099 7 171 951 BCE DONE,PREFIX, NO MORE STATEMENTS? 8 0951 B V45 W90 7 172 959 BCE FIND,PREFIX-3,I DIMENSION STATEMENT? 8 0959 B 979 W87 I 7 173 967 BCE END,PREFIX-3,/ END STATEMENT? 8 0967 B V33 W87 / 7 174 975 B DONE 4 0975 B V45 7 175 * 176 * SKIP OVER THE ARRAY NAME -- MUST END WITH LEFT PAREN 177 * 178 979 FIND BCE LPAREN,0&X1,% 8 0979 B |19 0|0 % 8 179 987 BCE SYNTAX,0&X1,, 8 0987 B U84 0|0 , 8 180 995 BCE SYNTAX,0&X1,) 8 0995 B U84 0|0 ) 8 181 1 003 BCE SYNTAX,0&X1,} 8 1003 B U84 0|0 } GMARK 8 182 1 011 SBR X1 4 1011 H 089 8 183 1 015 B FIND 4 1015 B 979 9 184 * 185 * FOUND THE LEFT PAREN 186 * 187 1 019 LPAREN SW LPFLAG 4 1019 , X00 9 188 1 023 MN 0&X1 GET BELOW 4 1023 D 0|0 9 189 1 027 SAR X1 LEFT PAREN 4 1027 Q 089 9 190 1 031 SW 2&X1 SET WORD MARK AT BOTTOM OF SYMBOL 4 1031 , 0|2 9 191 1 035 MCW X2,SAVX2 7 1035 M 094 X09 9 192 1 042 BW FIRST,FIRSTF 8 1042 V /12 X10 1 9 193 * 194 * CHECK WHETHER SYMBOL IS IN THE TABLE. X2 IS AT BOTTOM 195 * OF THE BOTTOM SYMBOL ENTRY. 196 * 197 1 050 CHECK MCM 1&X2 4 1050 P 0!1 10 FORTRAN COMPILER -- DIMENSION PHASE ONE -- 09 PAGE 3 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 198 1 054 SAR X2 4 1054 Q 094 10 199 1 058 BCE FIRST,0&X2, TOP OF THE TABLE? 8 1058 B /12 0!0 10 200 1 066 HIGHER MCM 2&X2 MOVE UP TO NEXT ELEMENT 4 1066 P 0!2 10 201 1 070 MN 1 1070 D 10 202 1 071 MN 1 1071 D 10 203 1 072 SBR X2 TOP OF ELEMENT (MAYBE) 4 1072 H 094 10 204 1 076 BCE HIGHER,1&X2,| NEED TO MOVE UP MORE IF RM 8 1076 B |66 0!1 | 11 205 1 084 COMPAR C 0&X2,0&X3 SAME AS ALREADY IN TABLE? 7 1084 C 0!0 0?0 11 206 1 091 SAR X2 4 1091 Q 094 11 207 1 095 BU CHECK 5 1095 B |50 / 11 208 1 100 BW DOUBLE,1&X2 8 1100 V T56 0!1 1 11 209 1 108 B CHECK 4 1108 B |50 11 210 1 112 FIRST MCW SAVX2,X2 7 1112 M X09 094 12 211 1 119 LCA GM,0&X2 MARK TOP OF ELEMENT 7 1119 L W91 0!0 12 212 1 126 LCA 0&X3 SYMBOL TO ELEMENT 4 1126 L 0?0 12 213 1 130 LCA NEWX3 CHAIN 4 1130 L W94 12 214 1 134 SBR X2 BELOW CHAIN IN ELEMENT 4 1134 H 094 12 215 1 138 MCW NEWX3,X3 7 1138 M W94 099 12 216 1 145 BCE HEAD,X3, 8 1145 B /57 099 13 217 1 153 B NOHEAD 4 1153 B /64 13 218 1 157 HEAD A KB1,X3 CONVERT BLANK X3 TO ZEROES 7 1157 A X01 099 13 219 1 164 NOHEAD LCA K3B,0&X2 PUT TWO THREE-CHARACTER 7 1164 L X13 0!0 13 220 1 171 LCA K3B FIELDS INTO SYMBOL TABLE 4 1171 L X13 13 221 1 175 SBR 6&X3 LINK PREV ELEMENT TO THIS ONE 4 1175 H 0?6 13 222 1 179 SBR NEWX3 4 1179 H W94 13 223 1 183 LCA K5B ADD FIVE SPACES TO ELEMENT 4 1183 L X18 14 224 1 187 SBR X2 AND GET X2 BELOW IT 4 1187 H 094 14 225 1 191 NOTHER MN DIMSAV-4 MAKE X3&2 4 1191 D W95 14 226 1 195 MN BE THE HIGH-ORDER 1 1195 D 14 227 1 196 SAR X3 DIGIT OF DIMSAV 4 1196 Q 099 14 228 1 200 SBR X1,0&X1 STRANGE KIND OF NOP? 7 1200 H 089 0|0 14 229 * 230 * ACCUMULATE CHARACTERS OF DIMENSION 231 * 232 1 207 MORE MCW 0&X1,CHAR GET CHARACTER FROM DIMENSION FIELD 7 1207 M 0|0 X19 14 233 1 214 SAR X1 AND STEP DOWN TO NEXT ONE 4 1214 Q 089 15 234 1 218 BCE DIMFIN,CHAR,) 8 1218 B S57 X19 ) 15 235 1 226 BCE DIMFIN,CHAR,} 8 1226 B S57 X19 } GMARK 15 236 1 234 BCE DIMFIN,CHAR,, 8 1234 B S57 X19 , 15 237 1 242 MCW CHAR,2&X3 STORE CHAR IN DIMENSION SAVE 7 1242 M X19 0?2 15 238 1 249 SBR X3 4 1249 H 099 15 239 1 253 B MORE 4 1253 B S07 16 240 1 257 DIMFIN BCE SYNTAX,1&X1,} 8 1257 B U84 0|1 } GMARK 16 241 1 265 LCA 1&X3,0&X2 MOVE DIMENSION TO SYMBOL TABLE 7 1265 L 0?1 0!0 16 242 1 272 SBR X2 4 1272 H 094 16 243 1 276 BCE NOTHER,1&X1,, GET ANOTHER DIMENSION 8 1276 B /91 0|1 , 16 244 1 284 MCW PREV&6,X3 7 1284 M 920 099 16 245 1 291 BCE NOTBIG,0&X3,< 8 1291 B T03 0?0 < 17 246 1 299 B TOOBIG 4 1299 B W46 17 247 1 303 NOTBIG CW FIRSTF CLEAR FIRST-TIME FLAG 4 1303 ) X10 17 FORTRAN COMPILER -- DIMENSION PHASE ONE -- 09 PAGE 4 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 248 1 307 TSTFIN BCE FINI,0&X1,} FINISHED 8 1307 B T44 0|0 } GMARK 17 249 1 315 B WITH STATEMENT? 1 1315 B 17 250 1 316 BCE NEWVAR,0&X1,, ANOTHER VARIABLE? 8 1316 B T28 0|0 , 17 251 1 324 B SYNTAX 4 1324 B U84 17 252 1 328 NEWVAR MN 0&X1 GET BELOW COMMA 4 1328 D 0|0 18 253 1 332 SAR X1 4 1332 Q 089 18 254 1 336 SBR X3 4 1336 H 099 18 255 1 340 B FIND AND GO FIND END OF NEXT VARIABLE 4 1340 B 979 18 256 * 257 * FINISHED WITH DIMENSION STATEMENT 258 * 259 1 344 FINI C 0&X1 4 1344 C 0|0 18 260 1 348 SAR X1 4 1348 Q 089 18 261 1 352 B PREV 4 1352 B 914 18 262 * 263 * DOUBLY DEFINED ARRAY 264 * 265 1 356 DOUBLE CS 332 4 1356 / 332 19 266 1 360 CS 1 1360 / 19 267 1 361 SW GLOBER 4 1361 , 184 19 268 1 365 MCW ERROR2,230 7 1365 M X49 230 19 269 1 372 MCW COMPAR&6,X2 7 1372 M |90 094 19 270 1 379 MN 232 4 1379 D 232 19 271 1 383 MN 1 1383 D 19 272 1 384 SAR X2 4 1384 Q 094 20 273 1 388 SBR X3,0&X3 7 1388 H 099 0?0 20 274 1 395 MORECH MCW 0&X3,CH 7 1395 M 0?0 X50 20 275 1 402 SAR X3 4 1402 Q 099 20 276 1 406 MCW CH,2&X2 7 1406 M X50 0!2 20 277 1 413 SBR X2 4 1413 H 094 20 278 1 417 BW DONECH,1&X3 AT THE END OF THE VARIABLE NAME? 8 1417 V U29 0?1 1 21 279 1 425 B MORECH 4 1425 B T95 21 280 1 429 DONECH W 1 1429 2 21 281 1 430 BCV OVFL 5 1430 B U39 @ 21 282 1 435 B NOOVFL 4 1435 B U41 21 283 1 439 OVFL CC 1 2 1439 F 1 21 284 1 441 NOOVFL BCE BOTTOM,0&X1,) BOTTOM OF STATEMENT? 8 1441 B U65 0|0 ) 21 285 1 449 SBR X1 4 1449 H 089 22 286 1 453 BCE SYNTAX,1&X1,} 8 1453 B U84 0|1 } GMARK 22 287 1 461 B NOOVFL 4 1461 B U41 22 288 1 465 BOTTOM MN 0&X1 4 1465 D 0|0 22 289 1 469 SAR X1 4 1469 Q 089 22 290 1 473 MCW SAVX2,X2 7 1473 M X09 094 22 291 1 480 B TSTFIN 4 1480 B T07 22 292 * 293 * DIMENSION SYNTAX ERROR 294 * 295 1 484 SYNTAX CS 332 4 1484 / 332 23 296 1 488 CS 1 1488 / 23 297 1 489 SW GLOBER 4 1489 , 184 23 FORTRAN COMPILER -- DIMENSION PHASE ONE -- 09 PAGE 5 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 298 1 493 MN PREFIX,241 7 1493 D W90 241 23 299 1 500 MN 1 1500 D 23 300 1 501 MN 1 1501 D 23 301 1 502 MCW ERROR3 4 1502 M X88 23 302 1 506 W 1 1506 2 24 303 1 507 BCV OVFL2 5 1507 B V16 @ 24 304 1 512 B NOVL2 4 1512 B V18 24 305 1 516 OVFL2 CC 1 2 1516 F 1 24 306 1 518 NOVL2 MCW SAVX2,X2 7 1518 M X09 094 24 307 1 525 BCE PREV,1&X1,} 8 1525 B 914 0|1 } GMARK 24 308 1 533 END C 0&X1 4 1533 C 0|0 24 309 1 537 SAR X1 4 1537 Q 089 25 310 1 541 B PREV 4 1541 B 914 25 311 * 312 1 545 DONE BW GOTLP,LPFLAG 8 1545 V V88 X00 1 25 313 1 553 LCA GM,0&X2 7 1553 L W91 0!0 25 314 1 560 LCA COLON 4 1560 L X89 25 315 1 564 LCA W3 4 1564 L X92 25 316 1 568 LCA W3 4 1568 L X92 25 317 1 572 LCA W3 4 1572 L X92 26 318 1 576 LCA W5 4 1576 L X97 26 319 1 580 LCA W10 4 1580 L X99 26 320 1 584 SBR X2 4 1584 H 094 26 321 1 588 GOTLP NOP 2&X1 4 1588 N 0|2 26 322 1 592 MCM 1 1592 P 26 323 1 593 MCW 1 1593 M 26 324 1 594 SAR X1 4 1594 Q 089 27 325 1 598 MCW 6,86 TOPMOST TABLE ENTRY ADDRESS TO 86 7 1598 M 006 086 27 326 1 605 BSS SNAPSH,C 5 1605 B 333 C 27 327 1 610 SBR TPREAD&6,839 LOAD ADDRESS FOR NEXT OVERLAY 7 1610 H 786 839 27 328 1 617 SBR CLRBOT AND CLEAR BOTTOM 4 1617 H 833 27 329 1 621 SBR LOADXX&3,1034 EXIT FROM LOADER 7 1621 H 796 |34 27 330 1 628 SBR CLEARL&3,1845 CLEAR TOP 7 1628 H 710 Y45 28 331 1 635 LCA EQUIV,PHASID 7 1635 L Y08 110 28 332 1 642 B LOADNX 4 1642 B 700 28 333 * 334 * PROGRAM IS TOO BIG 335 * 336 1 646 TOOBIG CS 332 4 1646 / 332 28 337 1 650 CS 1 1650 / 28 338 1 651 CC 1 2 1651 F 1 28 339 1 653 MCW MSG2,270 7 1653 M Y44 270 28 340 1 660 W 1 1660 2 29 341 1 661 CC 1 2 1661 F 1 29 342 1 663 BCE HALT,CDOVLY,1 8 1663 B W76 769 1 29 343 1 671 RWD 1 5 1671 U %U1 R 29 344 1 676 HALT H HALT 4 1676 . W76 29 345 * 346 * DATA 347 * FORTRAN COMPILER -- DIMENSION PHASE ONE -- 09 PAGE 6 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 348 1 690 PREFIX DCW @0 @ 11 1690 29 349 1 691 GM DC @}@ 1 1691 GMARK 29 350 1 694 NEWX3 DCW #3 3 1694 29 351 1 699 DIMSAV DCW #5 5 1699 30 352 1 700 LPFLAG DC #1 WM IN LOW-ORDER CHARACTER IF LEFT PAREN 1 1700 30 353 1 701 KB1 DCW #1 1 1701 30 354 1 703 MANP2 DCW #2 MANTIS + 2 2 1703 30 355 1 704 KP2 DCW &2 1 1704 30 356 1 705 KB1A DCW #1 1 1705 30 357 1 706 KLESS DCW @<@ 1 1706 30 358 1 709 SAVX2 DCW #3 3 1709 30 359 1 710 FIRSTF DCW #1 WM IS FIRST-TIME FLAG 1 1710 31 360 1 713 K3B DCW #3 3 1713 31 361 1 718 K5B DCW #5 5 1718 31 362 1 719 CHAR DCW #1 CHARACTER FROM DIMENSION FIELD 1 1719 31 363 1 749 ERROR2 DCW @ERROR 2 - DOUBLY DEFINED ARRAY@ 30 1749 32 364 1 750 CH DCW #1 1 1750 32 365 1 788 ERROR3 DCW @ERROR 3 - DIMENSION SYNTAX, STATEMENT @ 38 1788 33 366 1 789 COLON DCW @:@ 1 1789 33 367 1 792 W3 DCW #3 3 1792 34 368 1 797 W5 DCW #5 5 1797 34 369 1 799 W10 DCW 10 2 1799 34 370 1 808 EQUIV DCW @EQUIV ONE@ 9 1808 34 371 1 844 MSG2 DCW @MESSAGE 2 - OBJECT PROGRAM TOO LARGE@ 36 1844 35 372 1 845 GMWM DCW @}@ 1 1845 GMARK 35 373 ORG 201 0201 374 203 DSA LOADDD LOAD ADDRESS FOR CARD-TO-TAPE PROGRAM 3 0203 838 36 375 EX BEGINN B 839 37 376 END / 000 080 FORTRAN COMPILER -- DIMENSION PHASE ONE -- 09 PAGE 7 SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS BEGINN 839 BOTTOM 1465 CDOVLY 769 CH 1750 CHAR 1719 CHECK 1050 CLEARL 707 CLRBOT 833 COLON 1789 COMPAR 1084 DIFF 838 DIFWID 887 DIMFIN 1257 DIMSAV 1699 DONE 1545 DONECH 1429 DOUBLE 1356 END 1533 EQUIV 1808 ERROR2 1749 ERROR3 1788 FIND 979 FINI 1344 FIRST 1112 FIRSTF 1710 GLOBER 184 GM 1691 GMWM 1845 GOTLP 1588 HALT 1676 HEAD 1157 HIGHER 1066 IMOD 690 K3B 1713 K5B 1718 KB1 1701 KB1A 1705 KLESS 1706 KP2 1704 LOADDD 838 LOADNX 700 LOADXX 793 LPAREN 1019 LPFLAG 1700 MANP2 1703 MANTIS 692 MORE 1207 MORECH 1395 MSG2 1844 NEWVAR 1328 NEWX3 1694 NOHEAD 1164 NOOVFL 1441 NOTBIG 1303 NOTHER 1191 NOVL2 1518 OVFL 1439 OVFL2 1516 PHASID 110 PREFIX 1690 PREV 914 SAVX2 1709 SNAPSH 333 SYNTAX 1484 TOOBIG 1646 TOPCOR 688 TPREAD 780 TSTFIN 1307 W10 1799 W3 1792 W5 1797 X1 89 X2 94 X3 99