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 -- EQUIVALENCE PHASE TWO -- 11 PAGE 1 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 101 JOB FORTRAN COMPILER -- EQUIVALENCE PHASE TWO -- 11 102 CTL 6611 103 * 104 * THE DIMENSION TABLE IS ALTERED TO SHOW THE RELATIONSHIP 105 * BETWEEN ARRAYS. THE PROCEDURE, ESSENTIALLY, IS TO MAKE 106 * EVERY ARRAY WHOSE FIRST ELEMENT IS EQUIVALENT TO A SECONDARY 107 * ELEMENT OF ANOTHER ARRAY KNOW THE DISTANCE TO THE FIRST 108 * ELEMENT OF THE LATTER ARRAY. 109 * 110 X1 EQU 89 0089 111 X2 EQU 94 0094 112 X3 EQU 99 0099 113 * 114 * STUFF IN THE RESIDENT AREA 115 * 116 PHASID EQU 110 PHASE ID, FOR SNAPSHOT DUMPS 0110 117 GLOBER EQU 184 GLOBAL ERROR FLAG -- WM MEANS ERROR 0184 118 SNAPSH EQU 333 CORE DUMP SNAPSHOT 0333 119 LOADNX EQU 700 LOAD NEXT OVERLAY 0700 120 CLEARL EQU 707 CS AT START OF OVERLAY LOADER 0707 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 * 125 * STUFF IN THE PREVIOUS OVERLAY 126 * 127 GM EQU 839 GROUP MARK, IN PREVIOUS PHASE 0839 128 PREFIX EQU 849 0849 129 NEXT EQU 852 ONE BELOW NEXT SLOT IN ARRAY TABLE 0852 130 OFF1 EQU 857 OFFSET WORK AREA 0857 131 CLASS1 EQU 860 EQUIVALENCE CLASS LINK 0860 132 OFF2 EQU 865 OFFSET WORK AREA 0865 133 CLASS2 EQU 868 EQUIVALENCE CLASS LINK 0868 134 OFF3 EQU 873 OFFSET WORK AREA 0873 135 NEXT3 EQU 876 EQUIVALENCE CLASS LINK 0876 136 SYNTAX EQU 883 SYNTAX ERROR ROUTINE 0883 137 NXSTMT EQU 1115 PROCESS THE NEXT STATEMENT 1115 138 GOTLP EQU 1158 GET TO NEXT VARIABLE IN STATEMENT 1158 139 NXTVAR EQU 1165 PROCESS NEXT VARIABLE 1165 140 * 141 * THIS PHASE ACTUALLY STARTS AT NXSTMT IN THE PREVIOUS OVERLAY. 142 * HERE X1 POINTS ONE BELOW THE BOTTOM CHARACTER OF A VARIABLE IN 143 * A STATEMENT AND X2 POINTS AT THE TOPMOST CHARACTER OF THE NAME 144 * OF THE CORRESPONDING VARIABLE IN THE ARRAY TABLE. 145 * 146 * EACH ELEMENT OF THE ARRAY TABLE HAS ONE OR TWO VARIABLE-WIDTH 147 * DIMENSION FIELDS (FIRST DIMENSION HIGHER IN CORE), WITH THE FORTRAN COMPILER -- EQUIVALENCE PHASE TWO -- 11 PAGE 2 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 148 * DIGITS OF THE DIMENSIONS NOT REVERSED, A FIVE DIGIT OFFSET 149 * FROM THE BASE OF THE EQUIVALENCE CLASS, A THREE-CHARACTER LINK 150 * TO THE BASE MEMBER OF THE EQUIVALENCE CLASS, A THREE-CHARACTER 151 * LINK TO THE NEXT ELEMENT, A THREE-CHARACTER LINK TO THE 152 * PREVIOUS ELEMENT, THE NAME (VARIABLE WIDTH), AND A GROUP MARK 153 * WITH A WORD MARK. THE GMWM OF THE TOPMOST ELEMENT IS AT 154 * TOPCOR-3, AND TOPCOR-2 .. TOPCOR ARE BLANK. 155 * 156 * THE NEXT AND PREV POINTERS ARE REDIRECTED SO THAT ELEMENTS OF 157 * AN EQUIVALENCE CLASS ARE CONSECUTIVE, AND ASCENDING ORDER BY 158 * OFFSET. 159 * 160 * BELOW THE ARRAY TABLE, BUILD A TABLE OF CLASSES, EACH ELEMENT 161 * HAVING A FIVE-DIGIT OFFSET AND A LINK TO THE FIRST ELEMENT OF 162 * THE CLASS IN THE ARRAY TABLE. 163 * 164 * AT EXIT, X3 IS ONE BELOW THE GM AT THE BOTTOM OF THE ARRAY 165 * TABLE, AND X1 IS THE TOP (PREFIX) OF THE FIRST STATEMENT 166 * AFTER (BELOW) THE LAST EQUIVALENCE. 167 * 168 * COME HERE FROM FIND ROUTINE IN PREVIOUS PHASE WHEN IT FINDS 169 * THE VARIABLE IN THE ARRAY TABLE. 170 * 171 ORG 1181 1181 172 LOADDD EQU *&1 LOAD ADDRESS 1181 173 1 181 LCA KZ5,OFF2 7 1181 L Z91 865 4 174 1 188 NOP 0&X2 4 1188 N 0!0 4 175 1 192 MCW SKIP NAME 1 1192 M 4 176 1 193 MCW SKIP "NEXT" POINTER 1 1193 M 4 177 1 194 MCW SKIP "PREV" POINTER 1 1194 M 4 178 1 195 MCW SKIP "CLASS" POINTER 1 1195 M 4 179 1 196 SAR X2 X2 NOW POINTS AT 5-DIGIT OFFSET 4 1196 Q 094 4 180 1 200 BAV *&1 TURN OFF ARITHMETIC OVERFLOW FLAG 5 1200 B S05 Z 5 181 1 205 S W3 4 1205 S Z94 5 182 1 209 MORE BCE NEW,1&X2, OFFSET EMPTY? 8 1209 B S47 0!1 5 183 1 217 A 0&X2,OFF2 7 1217 A 0!0 865 5 184 1 224 MCW 3&X2,X2 NEXT ELEMENT IN EQUIVALENCE CLASS 7 1224 M 0!3 094 5 185 1 231 A KP1,W3 COUNT ELEMENTS IN CLASS 7 1231 A Z95 Z94 5 186 1 238 BAV FIXIT ERROR IF OVERFLOW -- CIRCULAR LIST? 5 1238 B Z51 Z 6 187 1 243 B MORE 4 1243 B S09 6 188 1 247 NEW MCW X2,CLASS2 7 1247 M 094 868 6 189 1 254 BCE SUBS,0&X1,% VARIABLE IN EQUIVALENCE SUBSCRIPTED? 8 1254 B V92 0|0 % 6 190 1 262 A K1,OFF2 BUMP OFFSET 7 1262 A Z96 865 6 191 1 269 TOTOP MCW NEXT3,X3 TOP OF CLASS TABLE 7 1269 M 876 099 6 192 1 276 LCA OFF1,OFF3 7 1276 L 857 873 7 193 1 283 S OFF2,OFF3 7 1283 S 865 873 7 194 1 290 BM NEG,OFF3 OFF2 .LT. OFF1? 8 1290 V W53 873 K 7 195 1 298 LCA CLASS2,0&X3 7 1298 L 868 0?0 7 196 1 305 SBR NEXT3 4 1305 H 876 7 197 1 309 GETNXT BCE NXTVAR,0&X1,, 8 1309 B /65 0|0 , 8 FORTRAN COMPILER -- EQUIVALENCE PHASE TWO -- 11 PAGE 3 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 198 1 317 BCE EQVFIN,0&X1,) EQUIVALENCE GROUP DONE 8 1317 B T29 0|0 ) 8 199 1 325 B SYNTAX 4 1325 B 883 8 200 1 329 EQVFIN MN 0&X1 SKIP RIGHT PAREN 4 1329 D 0|0 8 201 1 333 MN SKIP COMMA IF STATEMENT NOT ENDED 1 1333 D 8 202 1 334 SAR SAVX1 LEFT PAREN IF STATEMENT NOT ENDED 4 1334 Q Z99 8 203 1 338 MCW NEXT3,X3 7 1338 M 876 099 8 204 1 345 LCA DOLLAR,0&X3 MARK BOTTOM OF CLASS TABLE 7 1345 L !00 0?0 9 205 * 206 * SEARCH THE CLASS TABLE FOR THE LINK TO THE CLASS IN CLASS1 207 * 208 1 352 MCW NEXT,X3 TOP OF CLASS TABLE 7 1352 M 852 099 9 209 1 359 TSTBOT BCE ATBOT,0&X3,$ AT BOTTOM OF CLASS TABLE? 8 1359 B W83 0?0 $ 9 210 1 367 MCW 0&X3,WNEXT 7 1367 M 0?0 !03 9 211 1 374 C CLASS1,WNEXT 7 1374 C 860 !03 9 212 1 381 BE TESTRI IT'S EITHER REDUNDANT OR ILLEGAL 5 1381 B Y28 S 10 213 1 386 BACKRI MCW 0&X3,X2 7 1386 M 0?0 094 10 214 1 393 SAR NEXT3 4 1393 Q 876 10 215 1 397 BCE EMPTY,0&X2, 8 1397 B U09 0!0 10 216 1 405 B FULL ENTRY HAS AN OFFSET 4 1405 B Z72 10 217 1 409 EMPTY MCW 9&X2,X1 PREV TO X1 7 1409 M 0!9 089 10 218 1 416 EMPTYL MCW 6&X2,X3 NEXT FROM X3 IS X3 7 1416 M 0!6 099 11 219 1 423 BCE ENDTAB,X3, AT END OF ARRAY TABLE? 8 1423 B U47 099 11 220 1 431 BCE ENDTAB,1&X3, 8 1431 B U47 0?1 11 221 1 439 SBR X2 NEXT TO X2 4 1439 H 094 11 222 1 443 B EMPTYL 4 1443 B U16 11 223 1 447 ENDTAB BCE ENDTB2,X3, AT END OF ARRAY TABLE? 8 1447 B U62 099 11 224 1 455 MCW X1,9&X3 7 1455 M 089 0?9 12 225 1 462 ENDTB2 BCE NOPREV,X1, NO PREV LINK? 8 1462 B X24 089 12 226 1 470 MCW X3,6&X1 7 1470 M 099 0|6 12 227 1 477 ENDTB3 MCW CLASS1,X1 7 1477 M 860 089 12 228 1 484 MCW 6&X1,6&X2 7 1484 M 0|6 0!6 12 229 1 491 MCW 6&X1,X3 7 1491 M 0|6 099 13 230 1 498 MCW X2,9&X3 7 1498 M 094 0?9 13 231 1 505 MCW NEXT3,X3 7 1505 M 876 099 13 232 1 512 MCW 3&X3,X2 7 1512 M 0?3 094 13 233 1 519 MCW X2,6&X1 7 1519 M 094 0|6 13 234 1 526 MCW X1,9&X2 7 1526 M 089 0!9 14 235 1 533 MCW CLASS1,3&X2 7 1533 M 860 0!3 14 236 1 540 MCW 1 1540 M 14 237 1 541 S 0&X3,0&X2 7 1541 S 0?0 0!0 14 238 1 548 SAR X3 4 1548 Q 099 14 239 1 552 BW TSTBOT,FLAG 8 1552 V T59 J44 1 14 240 1 560 SW FLAG 4 1560 , J44 14 241 1 564 C 0&X2,WOFF 7 1564 C 0!0 J43 15 242 1 571 BE RED1 5 1571 B V84 S 15 243 1 576 B ILLEGL 4 1576 B Y67 15 244 1 580 B TSTBOT 4 1580 B T59 15 245 * 246 * REDUNDANT EQUIVALENCE 247 * FORTRAN COMPILER -- EQUIVALENCE PHASE TWO -- 11 PAGE 4 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 248 1 584 RED1 B REDUND 4 1584 B Z09 15 249 1 588 B TSTBOT 4 1588 B T59 15 250 * 251 * VARIABLE IN EQUIVALENCE HAS SUBSCRIPT 252 * 253 1 592 SUBS MN 877 4 1592 D 877 15 254 1 596 MN 1 1596 D 16 255 1 597 SAR X3 WHY NOT SBR X3,NEXT3-1? 4 1597 Q 099 16 256 1 601 SBR X1,0&X1 7 1601 H 089 0|0 16 257 * 258 * MOVE SUBSCRIPT, IN FORWARD ORDER, TO CLASS TABLE 259 * 260 1 608 SUBSL MCW 0&X1,CHTEST 7 1608 M 0|0 !04 16 261 1 615 SAR X1 4 1615 Q 089 16 262 1 619 BCE SUBSX,CHTEST,) 8 1619 B W42 !04 ) 16 263 1 627 MCW CHTEST,2&X3 7 1627 M !04 0?2 16 264 1 634 SBR X3 4 1634 H 099 17 265 1 638 B SUBSL 4 1638 B W08 17 266 * 267 1 642 SUBSX A 1&X3,OFF2 7 1642 A 0?1 865 17 268 1 649 B TOTOP 4 1649 B S69 17 269 * 270 1 653 NEG BCE FIRST,OFF1, STILL EMPTY? 8 1653 B W72 857 17 271 1 661 LCA CLASS1,0&X3 7 1661 L 860 0?0 17 272 1 668 SBR NEXT3 4 1668 H 876 17 273 1 672 FIRST MCW CLASS2,CLASS1 CURRENT ONE HAS LEAST OFFSET 7 1672 M 868 860 18 274 1 679 B GETNXT 4 1679 B T09 18 275 * 276 * AT BOTTOM OF CLASS TABLE 277 * 278 1 683 ATBOT MCW SAVX1,X1 7 1683 M Z99 089 18 279 1 690 LCA EOFF,OFF1 EMPTY OFFSET TO OFF1 7 1690 L !09 857 18 280 1 697 MCW NEXT,NEXT3 7 1697 M 852 876 18 281 1 704 BCE GOTLP,1&X1,, 8 1704 B /58 0|1 , 19 282 1 712 BCE NXSTMT,1&X1,} 8 1712 B /15 0|1 } GMARK 19 283 1 720 B SYNTAX 4 1720 B 883 19 284 * 285 1 724 NOPREV MCW X3,86 7 1724 M 099 086 19 286 1 731 B ENDTB3 4 1731 B U77 19 287 * 288 * CODE IN PREVIOUS OVERLAY COMES HERE WHEN EQUIVALENCE STATEMENTS 289 * HAVE ALL BEEN PROCESSED 290 * 291 1 735 DONE2 MCW NEXT,X3 7 1735 M 852 099 19 292 1 742 MCW GM,1&X3 MARK BOTTOM OF ARRAY TABLE 7 1742 M 839 0?1 20 293 1 749 MCM 5&X1 4 1749 P 0|5 20 294 1 753 MN 1 1753 D 20 295 1 754 MN 1 1754 D 20 296 1 755 SAR X1 TOP OF STATEMENT AFTER LAST EQUIVALENCE 4 1755 Q 089 20 297 1 759 BSS SNAPSH,C 5 1759 B 333 C 20 FORTRAN COMPILER -- EQUIVALENCE PHASE TWO -- 11 PAGE 5 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 298 1 764 SBR TPREAD&6,838 7 1764 H 786 838 20 299 1 771 SBR CLRBOT 4 1771 H 833 21 300 1 775 SBR LOADXX&3,838 7 1775 H 796 838 21 301 1 782 SBR CLEARL&3,GMWM 7 1782 H 710 J45 21 302 1 789 LCA DIM2,PHASID 7 1789 L !18 110 21 303 1 796 B LOADNX 4 1796 B 700 21 304 * 305 * CODE IN PREVIOUS OVERLAY COMES HERE FOR VARIABLES IN THE 306 * EQUIVALENCE STATEMENT THAT ARE NOT IN THE TABLE 307 * 308 1 800 NOTIN2 BCE GOTRP,0&X1,) 8 1800 B Y16 0|0 ) 21 309 1 808 SBR X1 4 1808 H 089 22 310 1 812 B NOTIN2 4 1812 B Y00 22 311 1 816 GOTRP MN 0&X1 4 1816 D 0|0 22 312 1 820 SAR X1 4 1820 Q 089 22 313 1 824 B NXTVAR 4 1824 B /65 22 314 * 315 * TEST FOR REDUNDANT OR ILLEGAL EQUIVALENCE 316 * 317 1 828 TESTRI MCW 0&X3,X2 7 1828 M 0?0 094 22 318 1 835 SAR X2 4 1835 Q 094 22 319 1 839 C 0&X2,OFF1 7 1839 C 0!0 857 23 320 1 846 BE RED2 5 1846 B Y59 S 23 321 1 851 B ILLEGL 4 1851 B Y67 23 322 1 855 B BACKRI 4 1855 B T86 23 323 1 859 RED2 B REDUND 4 1859 B Z09 23 324 1 863 B BACKRI 4 1863 B T86 23 325 * 326 * ILLEGAL EQUIVALENCE 327 * 328 1 867 ILLEGL SBR NOVFL1&3 4 1867 H Z08 23 329 1 871 CS 332 4 1871 / 332 24 330 1 875 CS 1 1875 / 24 331 1 876 SW GLOBER 4 1876 , 184 24 332 1 880 MN PREFIX,244 7 1880 D 849 244 24 333 1 887 MN 1 1887 D 24 334 1 888 MN 1 1888 D 24 335 1 889 MCW ERROR7 4 1889 M !59 24 336 1 893 W 1 1893 2 25 337 1 894 BCV OVFL1 5 1894 B Z03 @ 25 338 1 899 B NOVFL1 4 1899 B Z05 25 339 1 903 OVFL1 CC 1 2 1903 F 1 25 340 1 905 NOVFL1 B 0 4 1905 B 000 25 341 * 342 * REDUNDANT EQUIVALENCE 343 * 344 1 909 REDUND SBR NOVFL2&3 4 1909 H Z50 25 345 1 913 CS 332 4 1913 / 332 25 346 1 917 CS 1 1917 / 26 347 1 918 SW GLOBER 4 1918 , 184 26 FORTRAN COMPILER -- EQUIVALENCE PHASE TWO -- 11 PAGE 6 SEQ PG LIN LABEL OP OPERANDS SFX CT LOCN INSTRUCTION TYPE CARD 348 1 922 MN PREFIX,246 7 1922 D 849 246 26 349 1 929 MN 1 1929 D 26 350 1 930 MN 1 1930 D 26 351 1 931 MCW ERROR8 4 1931 M J02 26 352 1 935 W 1 1935 2 26 353 1 936 BCV OVFL2 5 1936 B Z45 @ 27 354 1 941 B NOVFL2 4 1941 B Z47 27 355 1 945 OVFL2 CC 1 2 1945 F 1 27 356 1 947 NOVFL2 B 0 4 1947 B 000 27 357 * 358 * PRINT "CORRECT ERRORS AND RERUN" MESSAGE AND STOP 359 * 360 1 951 FIXIT CC L 2 1951 F L 27 361 1 953 CS 332 4 1953 / 332 27 362 1 957 CS 1 1957 / 27 363 1 958 MCW FIXMSG,270 7 1958 M J38 270 28 364 1 965 W 1 1965 2 28 365 1 966 CC 1 2 1966 F 1 28 366 1 968 HALT H HALT 4 1968 . Z68 28 367 * 368 * OFFSET HAS A VALUE 369 * 370 1 972 FULL MCW 0&X2,WOFF 7 1972 M 0!0 J43 28 371 1 979 CW FLAG 4 1979 ) J44 28 372 1 983 B EMPTY 4 1983 B U09 28 373 * 374 * DATA 375 * 376 1 991 KZ5 DCW @00000@ 5 1991 29 377 1 994 W3 DCW #3 3 1994 29 378 1 995 KP1 DCW &1 1 1995 29 379 1 996 K1 DCW 1 1 1996 29 380 1 999 SAVX1 DCW #3 3 1999 29 381 2 000 DOLLAR DCW @$@ 1 2000 29 382 2 003 WNEXT DCW #3 3 2003 29 383 2 004 CHTEST DCW #1 1 2004 30 384 2 009 EOFF DCW #5 5 2009 30 385 2 018 DIM2 DCW @DIMEN TWO@ 9 2018 30 386 2 059 ERROR7 DCW @ERROR 7 - ILLEGAL EQUIVALENCE, STATEMENT @ 41 2059 32 387 2 102 ERROR8 DCW @ERROR 8 - REDUNDANT EQUIVALENCE, STATEMENT @ 43 2102 34 388 2 138 FIXMSG DCW @CORRECT ERRORS INDICATED AND RESTART@ 36 2138 35 389 2 143 WOFF DCW #5 OFFSET WORK AREA 5 2143 36 390 2 144 FLAG DCW #1 1 2144 36 391 2 145 GMWM DCW @}@ 1 2145 GMARK 36 392 ORG 201 0201 393 203 DSA LOADDD LOAD ADDRESS FOR CARD-TO-TAPE PROGRAM 3 0203 /81 37 394 EX NXSTMT B /15 38 395 END / 000 080 FORTRAN COMPILER -- EQUIVALENCE PHASE TWO -- 11 PAGE 7 SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS SYMBOL ADDRESS ATBOT 1683 BACKRI 1386 CHTEST 2004 CLASS1 860 CLASS2 868 CLEARL 707 CLRBOT 833 DIM2 2018 DOLLAR 2000 DONE2 1735 EMPTY 1409 EMPTYL 1416 ENDTAB 1447 ENDTB2 1462 ENDTB3 1477 EOFF 2009 EQVFIN 1329 ERROR7 2059 ERROR8 2102 FIRST 1672 FIXIT 1951 FIXMSG 2138 FLAG 2144 FULL 1972 GETNXT 1309 GLOBER 184 GM 839 GMWM 2145 GOTLP 1158 GOTRP 1816 HALT 1968 ILLEGL 1867 K1 1996 KP1 1995 KZ5 1991 LOADDD 1181 LOADNX 700 LOADXX 793 MORE 1209 NEG 1653 NEW 1247 NEXT 852 NEXT3 876 NOPREV 1724 NOTIN2 1800 NOVFL1 1905 NOVFL2 1947 NXSTMT 1115 NXTVAR 1165 OFF1 857 OFF2 865 OFF3 873 OVFL1 1903 OVFL2 1945 PHASID 110 PREFIX 849 RED1 1584 RED2 1859 REDUND 1909 SAVX1 1999 SNAPSH 333 SUBS 1592 SUBSL 1608 SUBSX 1642 SYNTAX 883 TESTRI 1828 TOTOP 1269 TPREAD 780 TSTBOT 1359 W3 1994 WNEXT 2003 WOFF 2143 X1 89 X2 94 X3 99