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 -- SORT THREE PHASE -- PHASE 06 PAGE 1 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 101 JOB FORTRAN COMPILER -- SORT THREE PHASE -- PHASE 06 102 CTL 6611 103 * 104 * SORT THREE PHASE: SORT STATEMENTS BY TYPE, SHIFT TO LOW 105 * MEMORY. 106 * 81-83 IS THE ADDRESS OF THE LAST CHARACTER (LOWEST IN CORE, 107 * ONE ABOVE GMWM) OF THE LAST (LOWEST IN CORE) STATEMENT. 108 * 109 X1 EQU 89 0089 110 X2 EQU 94 0094 111 X3 EQU 99 0099 112 * 113 * STUFF IN THE RESIDENT AREA 114 * 115 PHASID EQU 110 PHASE ID, FOR SNAPSHOT DUMPS 0110 116 SNAPSH EQU 333 CORE DUMP SNAPSHOT 0333 117 TOPCOR EQU 688 TOP CORE ADDRESS FROM PARAM CARD 0688 118 LOADNX EQU 700 LOAD NEXT OVERLAY 0700 119 CLEARL EQU 707 CS AT START OF OVERLAY LOADER 0707 120 CDOVLY EQU 769 1 IF RUNNING FROM CARDS, N IF FROM TAPE 0769 121 TPREAD EQU 780 TAPE READ INSTRUCTION IN OVERLAY LOADER 0780 122 LOADXX EQU 793 EXIT FROM OVERLAY LOADER 0793 123 CLRBOT EQU 833 BOTTOM OF CORE TO CLEAR IN OVERLAY LOADER 0833 124 TYPTAB EQU 840 TYPE TABLE (WORD MARKS SET IN PHASE 3) 0840 125 * INDEXED BY 30*(ZONE OF STATEMENT CODE) + 126 * 3*(NUMERIC PART OF STATEMENT CODE). EACH 127 * ENTRY IS THE ADDRESS OF THE EARLIEST (HIGHEST 128 * ADDRESS) STATEMENT OF A TYPE. EACH STATEMENT 129 * HAS A POINTER TO THE NEXT ONE (LOWER IN CORE) 130 * OF THE SAME TYPE AS ITS FIRST THREE (HIGHEST 131 * ADDRESS) CHARACTERS. 132 * 133 ORG 1022 1022 134 LOADDD EQU *&1 LOAD ADDRESS 1022 135 1 022 BEGINN MCW 83,X3 ADDRESS AT END OF LAST STATEMENT 7 1022 M 083 099 4 136 1 029 SW GM 4 1029 , Y06 4 137 1 033 SBR X1,2899 BOTTOM OF FREE STORAGE 7 1033 H 089 Q99 4 138 1 040 SW 2900 4 1040 , R00 4 139 1 044 MN 0&X3 COMPUTE ADDRESS BELOW LAST STATEMENT, 4 1044 D 0?0 4 140 1 048 LCA GM PUT A GMWM THERE 4 1048 L Y06 4 141 1 052 SBR SAVE&6 AND STORE ADDRESS BELOW GMWM 4 1052 H /10 4 142 1 056 SBR W3,TABIXS GET LAST TYPTAB INDEX 7 1056 H Y10 X99 5 143 1 063 LOOP MCW W3,X3 GET NEXT HEAD 7 1063 M Y10 099 5 144 1 070 MCW 0&X3,X3 OF CHAIN TO X3 7 1070 M 0?0 099 5 145 1 077 SAR W3 4 1077 Q Y10 5 146 1 081 BCE DONE,X3,X END OF THE TABLE? 8 1081 B W47 099 X 5 147 1 089 MCW TYPTAB&X3,X3 HEAD OF LIST OF STATEMENTS OF TYPE 7 1089 M 8D0 099 6 FORTRAN COMPILER -- SORT THREE PHASE -- PHASE 06 PAGE 2 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 148 1 096 BCE LOOP,X3, NO STATEMENTS OF THE TYPE 8 1096 B |63 099 6 149 * 150 * MOVE ALL STATEMENTS OF THE TYPE DOWN TO LOW CORE 151 * 152 1 104 SAVE MCW 0&X3,0-0 MOVE STATEMENT TO SAVE AREA 7 1104 M 0?0 000 6 153 1 111 SAR X2 4 1111 Q 094 6 154 1 115 BCE *&5,1&X2,} DID WE MOVE THE GM? 8 1115 B /27 0!1 } GMARK 6 155 1 123 B NOROOM NO, MAYBE WE'RE OUT OF SPACE 4 1123 B S95 6 156 1 127 SBR X2,2&X2 GET BACK ABOVE GMWM, TO BOTTOM OF STMT 7 1127 H 094 0!2 7 157 1 134 MORE MCM 0&X2 COMPUTE ADDRESS ABOVE TOP OF STATEMENT 4 1134 P 0!0 7 158 1 138 SBR SX2&6 AND SAVE IT 4 1138 H /67 7 159 1 142 MCM 0&X2,1&X1 MOVE STATEMENT TO BOTTOM OF FREE AREA, 7 1142 P 0!0 0|1 7 160 1 149 SBR X1 BUMP POINTER TO BOTTOM, 4 1149 H 089 7 161 1 153 MN 0&X1 THEN BACK DOWN TO GM 4 1153 D 0|0 7 162 1 157 SBR X1 AND SAVE IT 4 1157 H 089 7 163 1 161 SX2 SBR X2,0-0 MOVE UP TO RECORD MARK OR GM 7 1161 H 094 000 8 164 1 168 BCE MORE,0&X1,| MORE TO GO IF STMT CONTAINS RM 8 1168 B /34 0|0 | 8 165 1 176 SBR X1,1&X1 BUMP POINTER ABOVE GM 7 1176 H 089 0|1 8 166 1 183 CW BIGFLG 4 1183 ) Y07 8 167 1 187 MN 0&X1 NOW SUBTRACT 4 1187 D 0|0 8 168 1 191 MN FOUR FROM 1 1191 D 8 169 1 192 MN X1 TO RECOVER 1 1192 D 8 170 1 193 MN SPACE USED FOR 1 1193 D 9 171 1 194 SAR X1 SAME-TYPE LINK 4 1194 Q 089 9 172 1 198 LCA GM,0&X1 MARK TOP OF STATEMENT 7 1198 L Y06 0|0 9 173 1 205 SBR 83 STORE ADDRESS OF TOP OF STATEMENT 4 1205 H 083 9 174 1 209 SBR X1 AND IN X1 4 1209 H 089 9 175 1 213 MORE2 MCM 1&X1 COMPUTE ADDRESS ABOVE TOP OF STATEMENT, 4 1213 P 0|1 9 176 1 217 MN GET BACK DOWN TO RM OR GMWM 1 1217 D 9 177 1 218 SAR X1 AND SAVE IT 4 1218 Q 089 10 178 1 222 BCE MORE2,0&X1,| MORE TO GO IF STMT CONTAINS RM 8 1222 B S13 0|0 | 10 179 1 230 MN 0&X3 SUBTRACT 4 1230 D 0?0 10 180 1 234 MN SIX 1 1234 D 10 181 1 235 MN FROM 1 1235 D 10 182 1 236 MN X3 1 1236 D 10 183 1 237 MN ,, 1 1237 D 10 184 1 238 MN ,, 1 1238 D 11 185 1 239 SAR X3 ,, 4 1239 Q 099 11 186 1 243 MN 0&X1 COMPUTE -1&X1 INTO B-STAR 4 1243 D 0|0 11 187 1 247 LCA 3&X3 COPY SEQUENCE NUMBER 4 1247 L 0?3 11 188 1 251 MCW POUND,0&X3 7 1251 M Y11 0?0 11 189 1 258 MORE3 MCM 2&X3 POINT X3 4 1258 P 0?2 11 190 1 262 MN BACK AT 1 1262 D 11 191 1 263 MN TOP OF 1 1263 D 12 192 1 264 SAR X3 STATEMENT 4 1264 Q 099 12 193 1 268 BCE MORE3,1&X3,| MORE TO GO IF STMT CONTAINS RM 8 1268 B S58 0?1 | 12 194 1 276 BCE LOOP,0&X3, LAST STATEMENT ON CHAIN? 8 1276 B |63 0?0 12 195 1 284 MCW 0&X3,X3 NO, GET NEXT STATEMENT IN CHAIN 7 1284 M 0?0 099 12 196 1 291 B SAVE AND SAVE IT 4 1291 B /04 12 197 * FORTRAN COMPILER -- SORT THREE PHASE -- PHASE 06 PAGE 3 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 198 * NO ROOM TO MOVE STATEMENT BELOW BOTTOM STATEMENT 199 * 200 1 295 NOROOM BW TOOBIG,BIGFLG 8 1295 V W88 Y07 1 13 201 1 303 SW BIGFLG 4 1303 , Y07 13 202 1 307 MCW TOPCOR,X2 7 1307 M 688 094 13 203 1 314 MN 0&X2 4 1314 D 0!0 13 204 1 318 SAR X2 X2 IS TOPCOR-1 NOW 4 1318 Q 094 13 205 1 322 MCW X2,X3 7 1322 M 094 099 13 206 1 329 MOVEUP LCA 0&X2,0&X3 MOVE STATEMENT UP 7 1329 L 0!0 0?0 14 207 1 336 SAR X2 4 1336 Q 094 14 208 1 340 MCW 0&X3,PREFIX 7 1340 M 0?0 Y20 14 209 1 347 BCE MOVED,PREFIX-6,# STATEMENT ALREADY MOVED? 8 1347 B T66 Y14 # 14 210 1 355 LCA 0&X3,0&X3 NO, DECREMENT X3 SO AS NOT TO 7 1355 L 0?0 0?0 14 211 1 362 SAR X3 CLOBBER RECENTLY MOVED STATEMENT 4 1362 Q 099 14 212 1 366 MOVED C SAVE&6,X2 DONE? 7 1366 C /10 094 15 213 1 373 BU MOVEUP NO, MOVE ANOTHER ONE 5 1373 B T29 / 15 214 1 378 MCW X3,SAVE&6 BELOW LAST MOVED STATEMENT 7 1378 M 099 /10 15 215 1 385 MCW X3,X2 7 1385 M 099 094 15 216 1 392 MZ X3,X3999 COMPUTE X3 & X00 - 1 7 1392 Y 099 Y05 15 217 1 399 MZ 1 1399 Y 15 218 1 400 MCW 1 1400 M 15 219 1 401 MZ X1,X1999 COMPUTE X1 & X00 - 1 7 1401 Y 089 Y02 16 220 1 408 MZ 1 1408 Y 16 221 1 409 MCW 1 1409 M 16 222 1 410 C X1999,X3999 7 1410 C Y02 Y05 16 223 1 417 BE NOCLR 5 1417 B U42 S 16 224 1 422 CLR CS 0&X3 CLEAR FROM X3 DOWN TO X1 & X00 4 1422 / 0?0 16 225 1 426 SBR X3 4 1426 H 099 16 226 1 430 C X3,X1999 7 1430 C 099 Y02 17 227 1 437 BU CLR 5 1437 B U22 / 17 228 1 442 NOCLR ZA TABLEN,TABCNT TABLE LENGTH TO TABLE COUNTER 7 1442 ? Y22 !03 17 229 1 449 S X3&1 4 1449 S 100 17 230 * 231 * FILL TYPE TABLE WITH BLANKS 232 * 233 1 453 CLRTAB MCW KB3,TYPTAB&X3 MARK END OF CHAIN 7 1453 M Y25 8D0 17 234 1 460 S KP1,TABCNT 7 1460 S Y26 !03 17 235 1 467 BM CLRFIN,TABCNT DONE CLEARING TABLE? 8 1467 V U86 !03 K 18 236 1 475 A KP3,X3 7 1475 A Y27 099 18 237 1 482 B CLRTAB 4 1482 B U53 18 238 * 239 * RELINK MOVED STATEMENTS INTO TYPE TABLE 240 * 241 1 486 CLRFIN MCM 1&X2 GET X1 TO TOP OF STATEMENT 4 1486 P 0!1 18 242 1 490 MN 1 1490 D 18 243 1 491 SAR X2 4 1491 Q 094 18 244 1 495 BCE CLRFIN,0&X2,| MORE TO DO IF RM INSTEAD OF GMWM 8 1495 B U86 0!0 | 18 245 1 503 SBR X2,1&X2 X2 IS NOW BOTTOM OF NEXT STATEMENT 7 1503 H 094 0!1 19 246 1 510 S X3&1 4 1510 S 100 19 247 1 514 C 0&X2 4 1514 C 0!0 19 FORTRAN COMPILER -- SORT THREE PHASE -- PHASE 06 PAGE 4 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 248 1 518 SAR *&4 4 1518 Q V25 19 249 1 522 MCW 0-0,PREFIX SAVE PREFIX 7 1522 M 000 Y20 19 250 1 529 MN PREFIX-6,X3 3 TIMES 7 1529 D Y14 099 19 251 1 536 MCW X3,TABCNT NUMERIC PART OF 7 1536 M 099 !03 20 252 1 543 A X3 STATEMENT CODE 4 1543 A 099 20 253 1 547 A TABCNT,X3 TO X3 7 1547 A !03 099 20 254 1 554 BWZ ZONFIN,PREFIX-6,2 ADD 30 TIMES 8 1554 V V99 Y14 2 20 255 1 562 A KP30,X3 ZONE PART 7 1562 A Y29 099 20 256 1 569 BWZ ZONFIN,PREFIX-6,S OF STATEMENT 8 1569 V V99 Y14 S 21 257 1 577 A KP30,X3 CODE 7 1577 A Y29 099 21 258 1 584 BM ZONFIN,PREFIX-6 TO X3 8 1584 V V99 Y14 K 21 259 1 592 A KP30,X3 7 1592 A Y29 099 21 260 1 599 ZONFIN MN 0&X2 MINUS 2 4 1599 D 0!0 21 261 1 603 MN 1 1603 D 21 262 1 604 MCW TYPTAB&X3 LINK TO NEXT STATEMENT SAME TYPE 4 1604 M 8D0 21 263 1 608 C 0&X2 DOWN TO NEXT WORD MARK 4 1608 C 0!0 22 264 1 612 SAR TYPTAB&X3 LINK TYPE TABLE TO STATEMENT TYPE 4 1612 Q 8D0 22 265 1 616 C X2,TOPCOR DONE? 7 1616 C 094 688 22 266 1 623 BU CLRFIN 5 1623 B U86 / 22 267 1 628 MCW W3,X3 RECOVER X3 7 1628 M Y10 099 22 268 1 635 NOP 3&X3 4 1635 N 0?3 22 269 1 639 SAR W3 PLUS 3 4 1639 Q Y10 22 270 1 643 B LOOP BACK TO SORTING 4 1643 B |63 23 271 * 272 * LOAD NEXT OVERLAY 273 * 274 1 647 DONE BSS SNAPSH,C 5 1647 B 333 C 23 275 1 652 SBR TPREAD&6,TYPTAB-2 NEXT OVERLAY READ ADDRESS 7 1652 H 786 838 23 276 1 659 SBR CLRBOT AND BOTTOM OF CLEAR AREA 4 1659 H 833 23 277 1 663 SBR LOADXX&3,TYPTAB-2 NEXT OVERLAY ENTRY ADDRESS 7 1663 H 796 838 23 278 1 670 SBR CLEARL&3,TABCNT TOP OF CLEAR 7 1670 H 710 !03 23 279 1 677 LCA GMMSG,PHASID NEXT PHASE ID 7 1677 L Y39 110 24 280 1 684 B LOADNX LOAD IT 4 1684 B 700 24 281 * 282 * PROGRAM IS TOO BIG 283 * 284 1 688 TOOBIG CS 332 4 1688 / 332 24 285 1 692 CS 1 1692 / 24 286 1 693 CC 1 2 1693 F 1 24 287 1 695 MCW MSG2,270 7 1695 M Y75 270 24 288 1 702 W 1 1702 2 24 289 1 703 CC 1 2 1703 F 1 25 290 1 705 BCE HALT,CDOVLY,1 8 1705 B X18 769 1 25 291 1 713 RWD 1 5 1713 U %U1 R 25 292 1 718 HALT H HALT 4 1718 . X18 25 293 * 294 * DATA 295 * 296 * FIRST IS TABLE OF TABLE INDEXES IN THE REVERSE ORDER 297 * WE WANT STATEMENTS SORTED INTO LOW CORE FORTRAN COMPILER -- SORT THREE PHASE -- PHASE 06 PAGE 5 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 298 * 299 1 724 DCW @XXX@ END-OF-TABLE SENTINEL 3 1724 25 300 1 727 DSA 117 I DIMENSION 3 1727 117 25 301 1 730 DSA 84 Q 3 1730 084 25 302 1 733 DSA 108 F FORMAT 3 1733 108 26 303 1 736 DSA 9 3 WRITE TAPE 3 1736 009 26 304 1 739 DSA 3 1 READ 3 1739 003 26 305 1 742 DSA 18 6 WRITE OUTPUT TAPE 3 1742 018 26 306 1 745 DSA 81 M 3 1745 081 26 307 1 748 DSA 42 U PUNCH 3 1748 042 26 308 1 751 DSA 15 5 READ INPUT TAPE 3 1751 015 26 309 1 754 DSA 69 L 3 1754 069 27 310 1 757 DSA 87 R ARITHMETIC 3 1757 087 27 311 1 760 DSA 105 E IF 3 1760 105 27 312 1 763 DSA 27 9 3 1763 027 27 313 1 766 DSA 96 B BACKSPACE 3 1766 096 27 314 1 769 DSA 57 Z REWIND 3 1769 057 27 315 1 772 DSA 75 N ENDFILE 3 1772 075 27 316 1 775 DSA 39 T COMPUTED GOTO 3 1775 039 28 317 1 778 DSA 111 G GOTO 3 1778 111 28 318 1 781 DSA 36 S STOP 3 1781 036 28 319 1 784 DSA 93 A PAUSE 3 1784 093 28 320 1 787 DSA 63 J SENSE LIGHT 3 1787 063 28 321 1 790 DSA 66 K IF SENSE LIGHT 3 1790 066 28 322 1 793 DSA 48 W IF SENSE SWITCH 3 1793 048 28 323 1 796 DSA 99 C CONTINUE 3 1796 099 29 324 1 799 TABIXS DSA 102 D DO LAST OF TABLE INDEXES 3 1799 102 29 325 * 326 1 802 X1999 DSA 999 X1 & X00 - 1 3 1802 999 29 327 1 805 X3999 DCW 999 X3 & X00 - 1 3 1805 29 328 1 806 GM DC @}@ 1 1806 GMARK 29 329 1 807 BIGFLG DC 0 WORD MARK SET IF TOO BIG 1 1807 29 330 1 810 W3 DCW #3 3 1810 29 331 1 811 POUND DCW @#@ 1 1811 29 332 1 820 PREFIX DCW #9 STATEMENT PREFIX 9 1820 29 333 1 822 TABLEN DCW &39 TYPE TABLE LENGTH 2 1822 30 334 1 825 KB3 DCW #3 THREE BLANKS -- END OF CHAIN SENTINEL 3 1825 30 335 1 826 KP1 DCW &1 1 1826 30 336 1 827 KP3 DCW &3 1 1827 30 337 1 829 KP30 DCW &30 2 1829 30 338 1 839 GMMSG DCW @GROUP MARK@ 10 1839 30 339 1 875 MSG2 DCW @MESSAGE 2 - OBJECT PROGRAM TOO LARGE@ 36 1875 31 340 ORG 2001 2001 341 2 003 TABCNT DCW #3 3 2003 32 342 ORG 2900 2900 343 2 900 GMWM DCW @}@ 1 2900 GMARK 33 344 ORG 201 0201 345 203 DSA LOADDD LOAD ADDRESS FOR CARD-TO-TAPE PROGRAM 3 0203 |22 34 346 EX BEGINN B |22 35 347 END / 000 080 FORTRAN COMPILER -- SORT THREE PHASE -- PHASE 06 PAGE 6 SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS BEGINN 1022 BIGFLG 1807 CDOVLY 769 CLEARL 707 CLR 1422 CLRBOT 833 CLRFIN 1486 CLRTAB 1453 DONE 1647 GM 1806 GMMSG 1839 GMWM 2900 HALT 1718 KB3 1825 KP1 1826 KP3 1827 KP30 1829 LOADDD 1022 LOADNX 700 LOADXX 793 LOOP 1063 MORE 1134 MORE2 1213 MORE3 1258 MOVED 1366 MOVEUP 1329 MSG2 1875 NOCLR 1442 NOROOM 1295 PHASID 110 POUND 1811 PREFIX 1820 SAVE 1104 SNAPSH 333 SX2 1161 TABCNT 2003 TABIXS 1799 TABLEN 1822 TOOBIG 1688 TOPCOR 688 TPREAD 780 TYPTAB 840 W3 1810 X1 89 X1999 1802 X2 94 X3 99 X3999 1805 ZONFIN 1599