Previous File   Multiple Pages   Next File

* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 1

0001 * C210-001-6601 (FRTN) 3C NO.180463000 REV. D 0002 * 0003 * 0004 * 0005 * COMPUTER. DDP-116,516 0006 * 0007 * 0008 * 0009 * 0010 * PROGRAM CATEGORY- COMPILER 0011 * 0012 * 0013 * 0014 * 0015 * PROGRAM TITLE. FRTN 0016 * EXPANDED FORTRAN IV COMPILER 0017 * FOR DDP-116,516 0018 * 0019 * 0020 * 0021 * 0022 * 0023 * 0024 * 0025 * APPROVAL DATE 0026 * 0027 * 0028 * PROG--------------------- ------------ 0029 * 0030 * 0031 * SUPR---------------------- ------------ 0032 * 0033 * 0034 * QUAL---------------------- ------------ 0035 * 0036 * 0037 * NO. OF PAGES ------------ 0038 * 0039 * REVISIONS 0040 * 0041 * REV. D ECO 5249 0042 * REV. C ECO 3824 10-31-66 0043 * REV. B ECO 3476 09-19-66 0044 * REV. A 06-08-66 0045 * 0046 * AUTHOR 0047 * 0048 * HONEYWELL. INC. - COMPUTER CONTROL DIVISION 0049 * 0050 *
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 2

0051 * PURPOSE 0052 * 0053 * THIS PROGRAM IS DESIGNED TO COMPILE ASA STANDARD FORTRAN IV 0054 * PROGRAMS IN ONE PASS, GENERATING OPTIMUM OBJECT CODE FOR THE 0055 * DDP-116 OR DDP-516. 0056 * 0057 * 0058 * RESTRICTIONS 0059 * 0060 * MINIMUM 8K CORE STORAGE 0061 * 0062 * 0063 * STORAGE 0064 * 0065 * 6682 (DECIMAL) 0066 * 15034 (OCTAL) 0067 * 0068 * 0069 * USE 0070 * 0071 * 0072 * ******************************** 0073 * 0074 * *FORTRAN-IV OPERATING PROCEDURE* 0075 * ******************************** 0076 * 0077 * 1. LOAD THE COMPILER SYSTEM TAPE USING STANDARD 'LOAD-MODE' 0078 * (DDP-116), OR "PAL-MODE (DDP-516) LOADING PROCEDURES 0079 * 0080 * 2. SET THE (A) REGISTER FOR THE DESIRED INPUT/OUTPUT DEVICE 0081 * SELECTION AS DESCRIBED BELOW, SET (P) TO '1000, SET THE 0082 * SENSE SWITCHES AS DESCRIBED BELOW, AND PRESS START. 0083 * 0084 * 3. INPUT/OUTPUT DEVICE SELECTION (BITS SET IN (A) ON ENTRY)..... 0085 * 1......IF SET, CERTAIN ERROR CHECKS ARE NOT MADE. THIS 0086 * OPTION IS USED WHEN COMPILING THOSE PARTS OF THE 0087 * LIBRARY WRITTEN IN FORTRAN LANGUAGE AND IT ALLOWS THE 0088 * LIBRARY TO TAKE ADVANTAGE OF THE COMPILER'S LOGIC TO 0089 * GENERATE SPECIAL CODING. 0090 * 0091 * 2-7....NOT ASSIGNED 0092 * 0093 * 8-10...INPUT DEVICE SELECTION 0094 * 1 = ASR-33/35 KEYBOARD (OR ITS PAPER TAPE READER) 0095 * 2 = NCR CARD READER 0096 * 3 = DIGITRONICS PAPER TAPE READER 0097 * 4 = MAGNETIC TAPE ( UNIT 1 ) 0098 * 5-7 = (SPARES) 0099 * 0100 * 11-13..SYMBOLIC LISTING SELECTION
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 3

0101 * 0. SUPPRESS ALL SYMBOLIC LISTINGS 0102 * 1. ASR-33/35 TYPEWRITER 0103 * 2. LINE PRINTER 0104 * 3 = ( SPARE ) 0105 * 4 = LISTING ON MAGNETIC TAPE UNIT 2 0106 * 5-7 = (SPARES) 0107 * 0108 * 14-16..BINARY OUTPUT SELECTION 0109 * 0. SUPPRESS BINARY OUTPUT. 0110 * 1. BRPE HIGH SPEED PAPER TAPE PUNCH 0111 * 2. ASR BINARY OUTPUT ASR/33 0112 * 3. ASR BINARY OUTPUT ASR/35 0113 * 4 = MAGNETIC TAPE OUTPUT 0114 * 5-7 (SPARES) 0115 * 0116 * 0117 * 4. SENSE SWITCH SETTINGS AND MEANINGS....... 0118 * 1......EXPAND THE SYMBOLIC LISTING TO INCLUDE 0119 * SIDE-BY-SIDE OCTAL INFORMATION. 0120 * 2......INHIBIT SYMBOLIC LISTING (AS LONG AS SSW-1 NOT SET). 0121 * 3......PAUSE BEFORE INPUT OF THE NEXT RECORD. DURING 0122 * THIS PAUSE, THE (A) REGISTER WILL DISPLAY THE CURRENT 0123 * STATUS OF THE I/O KEYBOARD, IT MAY BE 0124 * CHANGED AT THIS TIME IF DESIRED BEFORE RESETTING 0125 * SSW-3 AND PRESSING START TO CONTINUE. 0126 * 4......CAUSE TRACE COUPLING INFORMATION TO BE INCLUDED 0127 * IN THE OBJECT CODING BEING GENERATED REGARDLESS OF 0128 * ANY TRACE STATEMENTS WITHIN THE PROGRAM (OPERATOR 0129 * OVERRIDE). 0130 * 0131 * 5. WHEN BINARY TAPE IS BEING GENERATED, THE COMPILER 0132 * AUTOMATICALLY TURNS ON THE TAPE PUNCH AND PUNCHES OUT A 0133 * LENGTH OF LEADER. AFTER THE END-OF-JOB IS TYPED, A LENGTH OF 0134 * TRAILER IS PUNCHED BEFORE TURNING OFF THE PUNCH, AND THE LINE 0135 * PRINTER IS ADVANCED TO THE NEXT PAPER SEAM. PRESS 'START' 0136 * TO PROCESS THE NEXT PROGRAM (BATCH COMPILING). 0137 * 0138 * FOR ASR BINARY OUTPUT, NO LEADER OR TRAILER IS 0139 * PROVIDED, AND THE BINARY PUNCH IS LEFT ON THROUGHOUT 0140 * THE COMPILATION. 0141 * 0142 * 0143 * ERRORS 0144 * 0145 * THE ERROR MESSAGES OUTPUT BY THIS COMPILER ARE LISTED ON A 0146 * SEPERATE DOCUMENT FOR EASE OF DISTRIBUTION. 0147 * ************************* 0148 * *DATA POOL ENTRY FORMATS* 0149 * ************************* 0150 *
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 4

0151 * THE DATA POOL CONSISTS OF FOUR FORMS OF INFORMATION 0152 * 1. THE ASSIGNMENT TABLE CONSISTS OF 5 WORDS, STARTS 0153 * AT THE END OF THE COMPILER AND EXTENDS TOWARD THE 0154 * END OF MEMORY. 0155 * 0156 * TDCCCCCCCCCCCCCC....DP(A+4) 0157 * CCCCCCCCCCCCCCCC....DP(A+3) 0158 * CCCCCCCCCCCCCCCC....DP(A+2) 0159 * IIAAAAAAAAAAAAAA....DP(A+1) 0160 * NRRRMMMLLLLLLLLL....DP(A) 0161 * 0162 * T = TRACE TAG 0163 * D = DATA TAG 0164 * C = SIX 8-BIT CHAR. OR BINARY CONSTANT 0165 * I = ITEM USAGE (IU) 0166 * 0 = NO USAGE 2 = VAR/CONSTAN^ 0167 * 1 = SUBPROGRAM 3 = ARRAY 0168 * A = ASSIGNMENT ADDRESS 0169 * N = NAME TAG (NT) 0170 * 0 = NAME 1 = CONSTANT 0171 * R = ADDRESS TYPE (AT) 0172 * 0 = ABSOLUTE 3 = STRING-REL 0173 * 1 = RELATIVE 4 = COMMON 0174 * 2 = STRING-ABS 5 = DUMMT 0175 * M = ITEM MODE (IM) 0176 * 1 = INTEGER 5 = COMPLEX 0177 * 2 = REAL 6 = DOUBLE 0178 * 3 = LOGICAL 0179 * 4=COM/EQU LINK 0180 * 2. THE DO TABLE 'FLOATS' ON TOP OF THE ASSIGNMENT 0181 * TABLE AND CONTAINS THE INFORMATION NEEDED TO CLOSE-OUT 0182 * A DO-LOOP, EACH ENTRY IS 5 WORDS. 0183 * 00IIIIIIIIIIIII 0184 * 00TTTITTTTTTTTT 0185 * 00XXXXXXXXXXXXX 0186 * 00UUUUUUUUUUUUUU 0187 * 00NNNNNNNNNNNNNN 0188 * I = INITIAL VALUE/OR RPL 0189 * T = TERMINAL VALUE 0190 * X = INDEX 0191 * U = INCREMENT 0192 * N = STATEMENT NUMBER 0193 * 0194 * 3. THE EXPRESSION TABLE (A0I TABLE) 'FLOATS' ON TOP 0195 * THE DO TABLE AND CONSISTS OF 2 WORD ENTRIES. 0196 * 0197 * NOOOOOOOOIIIIIII.....DP(I+1) 0198 * 00AAAAAAAAAAAAAAAA...DP(I) 0199 * N = NEGATION INDICATOR 0200 * O = OPERATOR
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 5

0201 * I = INDEX (OPERATOR LEVEL) 0202 * A = ASSIGNMENT TABLE REFERENCE 0203 * 4. THE TRIAD TABLE IS USED TO OPTIMIZE EXPRESSIONS AND 0204 * IS AT THE END OF MEMORY EXTENDING DOWN TOWARDS THE 0205 * COMPILER. EACH ENTRY IS THREE WORDS LONG. 0206 * 0207 * S000000000PPPPPP.....DP(L+2) 0208 * 0011111111111111.....DP(L+1) 0209 * 0022222222222222.....DP(L) 0210 * S = TEMP STORAGE INDICATOR 0211 * P = OPERATOR 0212 * 1 = FIRST OPERAND ADDRESS 0213 * 2 = SECOND OPERAND ADDRESS 0214 ABS 0215 ORG '100 0216 * 0217 * ************************************ 0218 * * DIRECTORY OF FORTRAN IV COMPILER * 0219 * ************************************ 0220 * 0221 * 0222 * 0223 *..............ENTRANCE GROUP 0224 00100 0 011101 DAC A3 (ENG1) COMPILER ENTRANCE/INITIALIZE 0225 00101 0 015400 DAC DP DATA POOL START 0226 * 0227 *..............INPUT GROUP 0228 00102 0 001066 DAC IC00 (IPG1) INPUT COLUMN 0229 00103 0 001251 DAC UC00 (IPG2) UNINPUT COLUMN 0230 00104 0 001256 DAC CH00 (IPG3) INPUT CHARACTER 0231 00105 0 001342 DAC ID00 (IPG4) INPUT DIGIT 0232 00106 0 001355 DAC IA00 (IPG5) INPUT (A) CHARACTERS 0233 00107 0 001412 DAC FN00 (IPG6) FINISH OPERATOR 0234 00110 0 001521 DAC DN00 (IPG7) INPUT DNA 0235 00111 0 002354 DAC II00 (IPG8) INPUT ITEM 0236 00112 0 002363 DAC OP00 (IPG9) INPUT OPERAND 0237 00113 0 002373 DAC NA00 (IPG10) INPUT NAME 0238 00114 0 002404 DAC IG00 (IPG11) INPUT INTEGER 0239 00115 0 002432 DAC IV00 (IPG12) INPUT INTEGER VARIABLE/CONSTANT 0240 00116 0 002437 DAC IR00 (IPG13) INPUT INTEGER VARIABLE 0241 00117 0 002443 DAC IS00 (IPG14) INPUT STATEMENT NUMBER 0242 00120 0 002525 DAC XN00 (IPG15) EXAMINE NEXT CHARACTER 0243 00121 0 002520 DAC SY00 INPUT STMBOL 0244 * 0245 *..............TEST GROUP 0246 00122 0 002547 DAC TS00 (TSG1) ALL CHARACTER TEST (EXCEPT C/R) 0247 00123 0 002555 DAC IP00 (TSG2) )-INPUT OPERATOR 0248 00124 0 004266 DAC A1 (TSG3) C/R TEST 0249 00125 0 002567 DAC B1 (TSG4) , OR C/R TEST 0250 00126 0 002603 DAC NU00 (TSG5) NO USAGE TEST
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 6

0251 00127 0 002611 DAC NC00 (TSG6) NON CONSTANT TEST 0252 00130 0 002617 DAC NS00 (TSG7) NON SUBPROGRAM TEST 0253 00131 0 002626 DAC AT00 (TSG8) ARRAY TEST 0254 00132 0 002635 DAC IT00 (TSG9) INTEGER TEST 0255 00133 0 002574 DAC NR00 (TSG10) NON REL TEST 0256 * 0257 *..............ASSIGNMENT GROUP 0258 00134 0 003241 DAC AS00 (ASG1) ASSIGN ITEM 0259 00135 0 003465 DAC TG00 (ASG2) TAG SUBPROGRAM 0260 00136 0 003642 DAC TV00 (ASG3) TAG VARIABLE 0261 00137 0 003656 DAC FA00 (ASG4) FETCH ASSIGN 0262 00140 0 003770 DAC FL00 (ASG5) FETCH LINK 0263 00141 0 004005 DAC KT00 (ASG6) D(0)= SIZE OF ARRAY DEFLECTION 0264 00142 0 004026 DAC DM00 (ASG7) DEFINE IM 0265 00143 0 004041 DAC DA00 (ASG8) DEFINE AF 0266 00144 0 004214 DAC AF00 (ASG9) DEFINE AFT 0267 00145 0 004233 DAC LO00 (ASG10) DEFINE LOCATION 0268 00146 0 004241 DAC AI00 (ASG11) ASSIGN INTEGER CONSTANT 0269 00147 0 004252 DAC AA00 (ASG12) ASSIGN SPECIAL 0270 00150 0 004062 DAC NXT GET NEXT ENTRY FROM ASSGN TABLE 0271 00151 0 004142 DAC BUD BUILD ASSIGNMENT TABLE ENTRT 0272 * 0273 *..............CONTROL GROUP 0274 00152 0 004262 DAC B6 (CNG1) JUMP 0275 00153 0 004264 DAC C5 ILL TERM 0276 00154 0 004271 DAC C6 (CNG2) CONTINUE 0277 00155 0 004353 DAC C7 (CNG3) STATEMENT INPUT 0278 00156 0 004456 DAC C8 (CNG4) STATEMENT SCAN 0279 00157 0 004602 DAC A9 (CNG5) STATEMENT IDENTIFICATION 0280 00160 0 005074 DAC NP00 (CNG6) FIRST NON-SPEC CHECK 0281 * 0282 *..............SPECIFICATIONS GROUP 0283 00161 0 010624 DAC EL00 (SPG1) EXCHANGE LINKS 0284 00162 0 010650 DAC NM00 (SPG2) NON COMM0N TEST 0285 00163 0 010657 DAC ND00 (SPG3) NON DUMMY OR SUBPROGRAM TEST 0286 00164 0 010672 DAC SC00 (SPG4) INPUT SUBSCRIPT 0287 00165 0 010761 DAC IL00 (SPG5) INPUT LIST ELEMENT 0288 00166 0 011042 DAC R1 (SPG6) FUNCTION 0289 00167 0 011044 DAC R2 SUBROUTINE 0290 00170 0 011101 DAC A3 (SPG7) INTEGER 0291 00171 0 011103 DAC A4 REAL 0292 00172 0 011105 DAC A5 DOUBLE PRECISION 0293 00173 0 011107 DAC A6 COMPLEX 0294 00174 0 011111 DAC A7 LOGICAL 0295 00175 0 011145 DAC B2 (SPG8) EXTERNAL 0296 00176 0 011154 DAC B3 (SPG9) DIMENSION 0297 00177 0 011246 DAC B7 INPUT DIMENSION 0298 00200 0 011253 DAC B4 (SPG10) COMMON 0299 00201 0 011335 DAC B5 (SPG11) EQUIVALENCE 0300 00202 0 011375 DAC C2 (SPG12) RELATE COMMON ITEMS
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 7

0301 00203 0 011442 DAC C3 (SPG13) GROUP EOUIVALENCE 0302 00204 0 011715 DAC C4 (SPG14) ASSIGN SPECIFICATIONS 0303 00205 0 011762 DAC W4 (SPG15) DATA 0304 00206 0 012303 DAC R3 (SPG16) BLOCK DATA 0305 00207 0 012313 DAC TRAC (SPG17) TRACE 0306 * 0307 *..............PROCESSOR GROUP 0308 00210 0 005210 DAC V3 (PRG1) IF 0309 00211 0 005334 DAC R7 (PRG2) GO TO 0310 00212 0 005414 DAC IB00 INPUT BRANCH LIST 0311 00213 0 005443 DAC W3 (PRG3) ASSIGN 0312 00214 0 005510 DAC C9 (PRG5) DO 0313 00215 0 005533 DAC V7 (PRG6) END FILE 0314 00216 0 005526 DAC V6 BACKSPACE 0315 00217 0 005535 DAC V8 REWIND 0316 00220 0 005543 DAC V5 (PRG7) READ 0317 00221 0 005552 DAC V4 WRITE 0318 00222 0 005771 DAC V2 (PRG8) FORMAT 0319 00223 0 006160 DAC SI00 INPUT FORMAT STRING 0320 00224 0 006153 DAC IN00 INPUT NUMERIC FORMAT STRING 0321 00225 0 006145 DAC NZ00 NON ZERO STRING TEST 0322 00226 0 006274 DAC W8 (PRG9) PAUSE 0323 00227 0 006233 DAC W7 STOP 0324 00230 0 006301 DAC R8 (PRG10) CALL 0325 00231 0 006321 DAC G2 ASSIGNMENT STATEMENT 0326 00232 0 006330 DAC R9 (PRG11) RETURN 0327 00233 0 006367 DAC G1 (PRG12) STATEMENT FUNCTION 0328 00234 0 006444 DAC W5 (PRG13) END 0329 * 0330 *..............PROCESSOR SUBROUTINES GROUP 0331 00235 0 006660 DAC PO00 (PSG1) INPUT CHAR AND OUTPUT PACK 0332 00236 0 006664 DAC HS00 (PSG2) TRANSMIT HOLLERITH STRING 0333 00237 0 006702 DAC DP00 (PSG3) DO INPUT 0334 00240 0 006747 DAC DS00 (PSG4) DO INITIALIZE 0335 00241 0 006773 DAC DQ00 (PSG5) DO TERMINATION 0336 00242 0 007041 DAC EX00 (PSG6) EXPRESSION 0337 00243 0 010040 DAC CA00 (PSG7) SCAN 0338 00244 0 010335 DAC ST00 TRIAD SEARCH 0339 00245 0 010404 DAC TC00 TEMP STORE CHECK 0340 00246 0 010436 DAC ET00 (PSG8) ENTER TRIAD 0341 00247 0 010525 DAC GE00 (PSG9) GENERATE SUBPROGRAM ENTRANCE 0342 * 0343 *..............OUTPUT GROUP 0344 00250 0 012330 DAC OL00 (OPG1) OUTPUT OBJECT LINK 0345 00251 0 012337 DAC OI00 (OPG2) OUTPUT I/O LINK 0346 00252 0 012363 DAC CN00 (OPG3) CALL NAME 0347 00253 0 012437 DAC OK00 (OPG4) OUTPUT PACK 0348 00254 0 012467 DAC OB00 (OPG5) OUTPUT OA 0349 00255 0 012700 DAC OT00 (OPG6) OUTPUT TRIADS 0350 00256 0 013147 DAC OM00 (OPG7) OUTPUT ITEM
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 8

0351 00257 0 013773 DAC OR00 (OPG8) OUTPUT REL 0352 00260 0 014127 DAC OA00 OUTPUT ABS 0353 00261 0 014135 DAC OS00 OUTPUT STRING 0354 00262 0 014365 DAC OW00 (OPG9) OUTPUT WORD 0355 00263 0 014465 DAC PU00 PICKUP 0356 00264 0 014523 DAC FS00 (OPG10) FLUSH 0357 00265 0 013663 DAC TRSE (OPG11) OUTPUT TRACE COUPLING 0358 00266 0 014301 DAC PRSP SET BUFFER TO SPACES 0359 * 0360 *..............MISC. GROUP 0361 00267 0 002653 DAC AD3 ADD TWO 3 WORD INTEGERS 0362 00270 0 002703 DAC IM00 MULTIPLY (A) BY (B) 0363 00271 0 002672 DAC STXA SET A INTO INDEX 0364 00272 0 002676 DAC STXI SET I INTO INDEX 0365 00273 0 002722 DAC NF00 SET FS INTO NAMF 0366 00274 0 002741 DAC BLNK SET AREA TO ZEROS 0367 00275 0 002754 DAC MOV3 MOVE 3 WORDS TO TEMP STORAGE 0368 00276 0 002764 DAC CIB COMPARE IBUF TO A CONSTANT 0369 00277 0 003007 DAC SAV SAVE INDEX IN PUSH-DOWN STACK 0370 00300 0 003016 DAC RST RESET INDEX FROM PUSH-DOWN STACK 0371 00301 0 003055 DAC PACK 0372 00302 0 003116 DAC ER00 ERROR OUTPUT 0373 00303 0 003157 DAC SRT SHIFT RIGHT 1 (TRIPLE PRES.) 0374 00304 0 003202 DAC SFT SHIFT LEFT 1 (TRIPLE PRES.) 0375 00305 0 003227 DAC LIST 0376 * 0377 * 0378 * **************************** 0379 * *CONSTANT AND VARIABLE POOL* 0380 * **************************** 0381 * 0382 000000 XR EQU 0 INDEX REGISTER 0383 * THE FOLLOWING 62 VARIABLES ARE SET TO ZERO DURING 0384 * PROGRAM INITIALIZATION 0385 000040 A EQU '40 ASSIGNMENT TABLE INDEX 0386 000041 I EQU A+1 EXPRESSION TABLE INDEX 0387 000042 C EQU A+2 0388 000043 ASAV EQU A+3 0389 000044 L EQU A+4 0390 000045 MFL EQU A+5 MODE FLAG 0391 000046 SFF EQU A+6 FUNCTION FLAG 0392 000047 SBF EQU A+7 SUBFUNCTION FLAG 0393 000050 SXF EQU A+8 POSSIBLE CPX FLAG 0394 000051 SPF EQU A+9 PEC. FLAG 0395 000052 TCF EQU A+10 TEMP STORE COUNT 0396 000053 IFF EQU A+11 0397 000054 ABAR EQU A+12 BASE OF ASSIGN TABLE 0398 000055 XST EQU A+13 FIRST EXECUTABLE STMNT. 0399 000056 CFL EQU A+14 MON FLAG 0400 000057 D EQU A+15 DO INDEX
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 9

0401 000060 RPL EQU A+16 RELATE PROGRAM LOCATION 0402 000061 BDF EQU A+17 LOCK DATA FLAG 0403 000062 SLST EQU A+18 SOURCE LIST 0404 000063 OBLS EQU A+19 OUTPUT BINARY LIST 0405 000064 BNOT EQU A+20 BINART OUTPUT FLAG 0406 000065 TRF EQU A+21 TRACE FLAG (END TRACE STATEMENT NO.) 0407 000066 TRFA EQU A+22 POINTER TO FIRST VAR, 0R ARRAY NAME IN 0408 * AN EXPRESSION (FOR USE BY TRACE). 0409 000067 SOF EQU A+23 SUBSCRIPT CONSTANT FLAG (NON-ZERO IF SET) 0410 000070 LIF EQU A+24 LOGICAL IF FLAG 0411 000071 LSTN EQU A+25 LAST STATEMENT NO. 0412 000072 LSTF EQU A+26 LAST STATEMENT FLAG 0413 000073 LSTP EQU A+27 LAST STATEMENT STOP 0414 000074 SDSW EQU A+28 STATEMENT I0 SWITCH 0415 * 0416 000570 NAMF EQU '570 NAME FUNCTION 0417 000571 ND EQU NAMF+1 NO OF DIMENSIONS 0418 000572 NS EQU '572 NO OF SUBSCRIPTS 0419 000573 NT EQU NS+1 NAME TAG 0420 000574 NTF EQU NS+2 NAME TAG FLAG 0421 000575 NTID EQU NS+3 NO. WORDS IN TID 0422 000576 O1 EQU NS+4 OPERATOR 1 0423 000577 O2 EQU NS+5 OPERATOR 2 0424 000600 P EQU NS+6 0425 000601 PCNT EQU NS+7 0426 000602 OCNT EQU NS+8 OUTPUT COUNT 0427 000603 S0 EQU NS+9 0428 000604 S1 EQU NS+10 SUBSCRIPT NO.1 0429 000605 S2 EQU NS+11 SUBSCRIPT NO.2 0430 000606 S3 EQU NS+12 SUBSCRIPT NO.3 0431 000607 TC EQU NS+13 TERMINAL CHAR 0432 000610 TT EQU NS+14 0433 000611 TYPE EQU NS+15 0434 000612 X EQU NS+16 ARRAY INDICES 0435 000613 X1 EQU NS+17 0436 000614 X2 EQU NS+18 0437 000615 X3 EQU NS+19 0438 000616 X4 EQU NS+20 0439 000617 NTA EQU NS+21 UNPACKED ASSIGNMENT ITEMS 0440 000620 ATA EQU NS+22 0441 000621 IMA EQU NS+23 0442 000622 CLA EQU NS+24 0443 000623 IUA EQU NS+25 0444 000624 DTA EQU NS+26 0445 000625 TTA EQU NS+27 0446 *..........ADJUST THIS ORG IF THE SIZE OF THE CONSTAST POOL IS MODIFIED 0447 ORG '630 0448 00630 0 00 00000 AF PZE 0 ADDRESS FIELD 0449 000630 GF EQU AF 0450 00631 0 00 00000 AT PZE 0 ADDRESS TYPE
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 10

0451 00632 0 00 00000 CODE PZE 0 OUTPUT CODE 0452 00633 0 00 00000 D0 PZE 0 DIMENSIONS 0453 00634 0 00 00000 D1 PZE 0 0454 00635 0 00 00000 D2 PZE 0 0455 00636 0 00 00000 D3 PZE 0 0456 00637 0 00 00000 D4 PZE 0 0457 00640 0 00 00000 DF PZE 0 DATA FLAG 0458 00641 0 00 00000 NF PZE 0 0459 00642 0 00 00000 B PZE 0 0460 00643 0 00 00000 DFL PZE 0 DELIMITER FLAG 0461 00644 000000 E OCT 0 EQUIVALENCE INDEX 0462 00645 0 00 00000 EP PZE 0 E-PRIME 0463 00646 0 00 00000 E0 PZE 0 E-ZERO 0464 00647 0 00 00000 FTOP PZE 0 OUTPUT COMMAND 0465 00650 0 00 00000 GFA PZE 0 0466 00651 0 00 00001 ICSW PZE 1 INPUT CONTROL SWITCH 0467 00652 0 00 00000 IFLG PZE 0 I-FLAG 0468 00653 0 00 00000 IM PZE 0 ITEM MODE 0469 00654 0 00 00000 IOF PZE 0 I-0 FLAG 0470 00655 0 00 00000 IU PZE 0 ITEM USAGE 0471 00656 0 00 00000 KBAR PZE 0 TEM STORE 0472 00657 0 00 00000 KPRM PZE 0 TEM STORE 0473 00660 177777 EBAR OCT -1 E-BAR 0474 00661 000017 DO OCT 17 DO TABLE INDEX(FLOATS ABOVE ASSIGNMENT) 0475 00662 0 00 00111 CC PZE '111 CARD COLUMN COUNTER 0476 00663 0 00 00000 DCT PZE 0 DUMMY ARGUMENT COUNT 0477 00664 0 00 00000 F PZE 0 TRIAD TABLE INDEX 0478 00665 0 00 00000 CL PZE 0 ASSIGNMENT ITEMS UNPACKED 0479 00666 0 00 00000 DT PZE 0 0480 00667 0 00 00000 FLT1 PZE 0 FETCH LINK CL POINTER LOCATION 0481 00670 0 00 00000 LIBF PZE 0 SPECIAL LIBRARY FLAG (NON-ZERO IF SET) 0482 *..........CONSTANTS USED BY THE COMPILER 0483 00671 000251 K4 OCT 251 0) 0484 00672 000254 K5 OCT 254 0, 0485 00673 000240 K8 OCT 240 0-SPACE 0486 00674 000257 K9 OCT 257 0/ 0487 00675 000256 K10 OCT 256 0. 0488 00676 000255 K12 OCT 255 0- 0489 00677 000253 K13 OCT 253 0+ 0490 00700 000244 K15 OCT 244 0$ 0491 00701 000016 K16X OCT 16 0492 00702 000250 K17 OCT 250 0( 0493 00703 000275 K18 OCT 275 0= 0494 00704 142317 K19 BCI 1,DO DO 0495 00705 000324 K34 OCT 324 0T 0496 00706 000317 K35 OCT 317 0O 0497 00707 153716 K40 BCI 1,WN 0498 00710 151316 K41 BCI 1,RN RN 0499 00711 141702 K42 BCI 1,CB 0500 00712 000311 K43 OCT 311 0I
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 11

0501 00713 000321 K44 OCT 321 0Q 0502 000705 K45 EQU K34 0T 0503 00714 000252 K57 OCT 252 0* 0504 00715 000260 K60 OCT 260 00 (BCI ZERO) 0505 00716 000271 K61 OCT 271 09 0506 000704 K68 EQU K19 0507 00717 000001 K101 OCT 1 0508 00720 000002 K102 OCT 2 0509 00721 000003 K103 OCT 3 0510 00722 000004 K104 OCT 4 0511 00723 000005 K105 OCT 5 0512 00724 000006 K106 OCT 6 0513 00725 000007 K107 OCT 7 0514 00726 000020 K109 DEC 16 0515 00727 000377 K100 OCT 377 0516 00730 037777 K111 OCT 37777 0517 00731 177757 K110 DEC -17 0518 00732 170777 K115 OCT 170777 0519 00733 177400 K116 OCT 177400 0520 00734 177745 K117 DEC -27 0521 00735 000777 K118 OCT 777 0522 00736 177000 K119 OCT 177000 0523 00737 177761 K120 DEC -15 0524 00740 040000 K122 OCT 040000 0525 00741 177777 K123 DEC -1 0526 00742 000011 K124 DEC 9 0527 00743 000010 K125 DEC 8 0528 00744 000012 K126 DEC 10 0529 00745 000013 K127 DEC 11 0530 00746 000014 K128 DEC 12 0531 00747 000015 K129 DEC 13 0532 00750 177762 K131 DEC -14 0533 00751 000022 K132 OCT 22 0534 00752 000017 K134 OCT 17 0535 00753 024002 K137 OCT 24002 0536 00754 000025 K138 OCT 25 0537 00755 000024 K139 OCT 24 0538 00756 000215 CRET OCT 215 0 C/R 0539 00757 000000 ZERO OCT 0 0540 00760 140000 HBIT OCT 140000 HIGH BITS FOR ALPHA DATA 0541 00761 142721 KAEQ BCI 1,EQ EQUIVALENCE ERROR MESSAGE ATTACHMENT 0542 00762 177776 MIN2 DEC -2 -2 0543 00763 000340 HC2 OCT 340 0544 00764 000357 K357 OCT 357 0545 * 0546 * 0547 015400 DP EQU '15400 DUMMY START OF DATA POOL (ACTUALLY SET 0548 * BY THE FORTRAN IOS SUBROUTINE.) 0549 000113 L0 EQU '113 DUMMY END OF DATA POOL (MINUS 3 WORDS) 0550 * THE FOLLOWING INSTRUCTIONS CAUSE THE LOADER
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 12

0551 * TO ASSIGN ALL REFERENCES TO THE DATA POOL IN WORDS 0552 * 100 TO 112 OF THE ZERO SECTOR, FORTRAN IOS WILL 0553 * CAUSE THESE CELLS TO BE SET TO THE ACTUAL DATA POOL 0554 * LOCATIONS WHICH WILL BE DETERMINED BY COMPUTER 0555 * CONFIGURATION. 0556 ORG '1000 0557 01000 1 00 15374 PZE DP-4,1 (100) 0558 01001 1 00 15375 PZE DP-3,1 (101) DATA POOL REFERENCES 0559 01002 1 00 15376 PZE DP-2,1 (102) 0560 01003 1 00 15377 PZE DP-1,1 (103) 0561 01004 1 00 15400 PZE DP,1 (104) 0562 01005 1 00 15401 PZE DP+1,1 (105) 0563 01006 1 00 15402 PZE DP+2,1 (106) 0564 01007 1 00 15403 PZE DP+3,1 (107) 0565 01010 1 00 15404 PZE DP+4,1 (108) 0566 01011 1 00 15411 PZE DP+9,1 (111) 0567 01012 1 00 15406 PZE DP+6,1 (112) 0568 01013 0 00 15407 PZE DP+7 (113) NO WDS IN DATA POOL SET BY IOS 0569 * 0570 * 0571 ORG 1 0572 00001 0 10 03116 JST ER00 THIS INSTRUCTION REACHED ONLY IF THE 0573 00002 141707 BCI 1,CG COMPILER JUMPED TO ZERO BY MISTAKE. 0574 * 0575 * 0576 * 0577 * 0578 * ******************* 0579 * *START OF COMPILER* 0580 * ******************* 0581 * 0582 ORG '1000 0583 * 0584 * 0585 * 0586 * - A0 COMP ENT EMPTY BUFFERS 0587 01000 0400 61 LRL 15 0588 01001 0 04 00670 STA LIBF SET SPECIAL LIBRARY FLAG 0589 01002 0410 61 LLL 15 (BIT 1 ON INHIBITS CERTAIN ERROR CHECKS) 0590 01003 0 10 00000 A0 CALL F4$INT INITIALIZE I/O DEVICES 0591 01004 0 02 01153 LDA K108 0592 01005 0 04 00662 STA CC CC = 73 0593 01006 0 10 01066 JST IC00 INPUT COLUMN 0594 01007 0 02 01063 A051 LDA A090 0595 01010 0 04 00000 STA XR 0596 01011 0 02 01065 LDA A092 LOC, OF INDEX PUSH-DOWN BUFFER 0597 01012 0 04 03030 STA SAV9 INITIALIZE PUSH-DOWN BUFR, 0598 01013 140040 CRA 0599 01014 1 04 00076 STA A+M,1 SET M VARIABLES TO ZERO 0600 01015 1 04 00626 STA NAMF+M,1
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 13

0601 01016 0 12 00000 IRS XR 0602 01017 0 01 01014 JMP *-3 0603 01020 0 04 00652 STA IFLG 0604 01021 0 04 12435 STA PKF 0605 01022 0 10 14523 JST FS00 INITIALIZE OUTPUT BUFFER 0606 01023 140401 CMA 0607 01024 0 04 00072 STA LSTF LSTF NOT EQ 0 0608 01025 0 04 00073 STA LSTP LSTP NOT EQ 0 0609 01026 0 04 00660 STA EBAR EBAR SET NEGATIVE 0610 01027 0 02 00113 LDA L0 0611 01030 0 04 00651 STA ICSW 0612 01031 0 04 00646 STA E0 INITIALIZE EQUIVALENCE TABLE 0613 01032 0 04 00044 STA L INITIALIZE TRIAD TABLE POINTER 0614 01033 0 10 14301 JST PRSP SET PRINT BUFFER TO SPACES 0615 01034 0 02 00752 LDA K134 0616 01035 0 04 00661 STA DO INITIALIZE DO TABLE POINTER 0617 01036 0 07 00754 SUB K138 0618 01037 0 04 01064 STA A091 0619 01040 140040 CRA 0620 01041 0 04 01475 STA ID 0621 01042 0 12 01475 A055 IRS ID ESTABLISH CONSTANTS 0622 01043 0 10 04241 JST AI00 0623 01044 0 12 01064 IRS A091 0624 01045 0 01 01042 JMP A055 0625 01046 0 02 02731 LDA K81 0626 01047 0 04 01475 STA ID 0627 01050 0 04 01476 STA ID+1 0628 01051 0 04 01477 STA ID+2 0629 01052 140040 CRA 0630 01053 0400 40 LRL 32 (B)=0 IM=NO USAGE 0631 01054 0 02 00717 LDA K101 (A)=1 IU=SUBR 0632 01055 0 10 04252 JST AA00 ASSIGN (SPECIAL) 0633 01056 0 10 02672 JST STXA SET POINTER A INTO INDEX AND (A) 0634 01057 0 04 00056 STA CFL CFL=A (LOCATION OF FIRST COMMON BLOCK) 0635 01060 0 06 00740 ADD K122 ='40000 (IU=SUBR) 0636 01061 1 04 15401 STA DP+1,1 GF(A)=A (IN CASE NO BLANK COMMON IS SPECIFI 0637 01062 0 01 04353 JMP C7 GO TO STMNT INPUT 0638 000036 M EQU 30 0639 01063 -1 177742 A090 DAC* -M,1 0640 01064 0 00 00000 A091 PZE 0 0641 01065 0 003031 A092 DAC SAVX START OF INDEX PUSH-DOWN BUFFER 0642 * 0643 * 0644 * 0645 * ************** 0646 * *INPUT COLUMN* 0647 * ************** 0648 * 0649 * INPUT NEXT CHARACTER 0650 * IGNORE BLANKS
* C210-001-6601 (FRTN) 3C NO.180463000 REV. D PAGE 14

0651 * CHECK FOR COMMENTS 0652 * IC02 SET AS FOLLOWS - 0653 * NORMAL - ICIP 0654 * INITIAL SCAN -ICSR 0655 01066 0 000000 IC00 DAC ** LINK STORE 0656 01067 0 10 03007 JST SAV SAVE INDEX 0657 01070 0 02 00662 LDA CC IF CC = 73, GO TO IC 10 0658 01071 0 07 01153 SUB K108 0659 01072 100040 SZE 0660 01073 0 01 01125 JMP IC19 ELSE, GO TO IC 0661 01074 0 02 00651 IC10 LDA ICSW IF ICSW. GO TO IC12 0662 01075 101040 SNZ 0663 01076 0 01 01141 JMP IC24 ELSE, GO TO IC24 0664 01077 0 10 00000 IC12 CALL F4$IN INPUT SYMBOLIC CARD IMAGE 0665 01100 0 001155 DAC CI 0666 01101 0 02 01155 LDA CI 0667 01102 0404 70 LGR 8 GO 70 IC 14 0668 01103 0 11 01152 CAS K16 =(C) 0669 01104 0 01 01106 JMP *+2 0670 01105 0 01 01150 JMP IC30 COMMENT CARD (IGNORE) 0671 01106 0 07 00700 SUB K15 =($)