6 JMP EX40 NO, GO TO EX40
9 JMP EX38 NO, GO TO EX38
18 JST OT00 OUTPUT TRIADS
31 JST EX99 DATA POOL CHECK
40 CAS K5 ='254 (,) IN BCD MODE
45 JMP EX44 NO, GO TO EX44
53 JMP EX24 EQUAL, GO TO EX24
54 JMP* EX00 LESS, RETURN
55 LDA XR GREATER, REPEAT LOOP
57 EX44 JST IP00 ) - INPUT OPERATOR
60 STA T6EX IF O1(O1(A)) = L(0)
66 EX48 JST ET00 ENTER TRIAD
71 LDA IU IU = SUB OR ARR
73 JMP EX30 NO, GO TO EX30
77 JMP EX76 NO, GO TO EX76
84 JMP EX75 NO, GO TO EX75
97 JMP EX74 NO, GO TO EX74
99 STA T2EX YES, T (0) = 0
100 JST EX99 DATA POOL CHECK
104 LDA K132 OI (I) = A, 11
108 EX54 LDA D0 IF D0 = 1, GO TO EX56
112 JST EX99 DATA POOL CHECK
122 LDA K103 I (I) = T3+13
130 EX56 JST IV00 INPUT INTEGER VARIABLE
131 JST EX99 DATA POOL CHECK
137 JMP EX68 CONSTANT ENCOUNTERED
138 JST UC00 UNINPUT COLUMN
139 JST DN00 INPUT DO NOT ASSIGN
144 JMP EX57 IM * INTEGEH
146 BCI 1,SU SUBSCRIPT INCREMENTER NOT A CONSTANT
152 STA DP+1,1 O(1) = +, I(I) = T3+11
153 JST EX99 DATA POOL CHECK
156 LDA ID SUBSCRIPT SIZE
159 SNZ IF ZERO, GO TO EX60
165 JMP EX67 YES - (DUMMY DIMENSION)
170 STA T2EX T2 = T2+ID*D(K)
177 JMP EX62 YES - FINISHED
184 STA D0+1,1 D(K+1) = D(K+1)*D(K)
187 LDA DP-1,1 DOES O(--2) = *
194 JMP EX64 O(I-2) = 0 - YES
195 CAS K132 DOES O(I-2) = A
201 JMP EX65 YES (DUMMY ARRAY (1,1,1))
203 STA DP-1,1 01(I-2) = 1
206 LDA K137 0='X' ('24), I=2
209 STA DP+3,1 O1(1+2) = 0
211 STA DP+2,1 A(I+2) = T5
212 JST EX99 DATA POOL CHECK
217 LDA DP+2,1 S(A) = NON-ZERO
223 JST EX99 DATA POOL CHECK
230 STA DP-4,1 A (I) = T5
235 JMP EX62 ASSIGN INT CONSTANT
244 STA DP+1,1 OI(I) = +, T3+11
245 JST EX99 DATA POOL CHECK
255 STA DP+1,1 OI(I) = *, T3+13
256 JST IR00 INPUT INTEGER VAR/CON
258 EX69 CRA SET LISTING FOR OCTAL ADDR
260 LDA OMI5 JMP 0 INSTRUCTION
261 STA DF SET LISTING FOR SYMBOLIC A INSTR,
262 JST OA00 OUTPUT ABSOLUTE
268 JST HS00 TRANSFER HOLLERITH STRING
272 STA 0 SET LISTING FOR OCTAL ADDR.
273 STA A SET LISTING FOR OCTAL ADDR.
276 JST OS00 OUTPUT STRING RPL-1
277 JST CH00 INPUT CHARACTER
279 JST STXI RESET INDEX TO I
294 JMP EX34 WITHIN AN ARGUMENT LIST
296 BCI 1,AG SUBROUTINE OR ARRAY NAME NOT IN ARG. LIST
298 EX79 STA T1EX T (1) = 11
300 EX80 LDA K129 T (1) = 13
305 EX82 LDA K104 T (1) = 4
307 EX83 LDA T0EX T (0) =0
322 BCI 1,RL MORE THAN 1 RELATIONAL OPERATOR
324 ADD K102 T (5) = T (5) +2 = B = 0
330 BCI 1,EQ MULTIPLE ='S, OR EXPRESSIUN TO LEFT OF =
370 DAC EX34 NONE OF THESE
372 BCI 1,OP MURE THAN ONE OPERATOR IN A ROW
374 BCI 1,PA OPERATOR MUST BE WITHIN PARENTHESES
376 BCI 1,UO MULTIPLE + OR - SIGNS NOT AS UNARY OPS
377 * BUMP THE I COUNT BY TWO AND CHECK FOR DATA OVERFLOW
405 * THE AOIN TABLE IS PROCESSED FROM THE BOTTOM
406 * UP AND ENTRIES ARE FORMED FOR INCLUSION
407 * IN THE TRIAD TABLE, LEVELS ARE USED
408 * TO CONTROL THE ORDER OF ENTRY INTO
409 * THE TRIADS. SIGN CONTROL IS ALSO
410 * ACCOMPLISHED IN THIS ROUTINE.
413 STA ACCP INDICATE EMPTY ACCUM
414 CA04 JST STXI ESTABLISH I
417 ANA K118 IF I (I-2) = 0,
439 CAS K102 IF P IS NOT * OR /, GO TO CCA10
485 JMP CA37 IF ZER0, GO TO CA37
491 ANA K118 IF T2 .GT. I (I-2)
514 STA DP,1 AOIN(J) = AOIN(J+2)
532 CA24 JST ST00 TRIAD SEARCH
534 CAS K132 IF P = +,*, AND, OR
538 JMP CA28 ELSE, GO TO CA26
556 JST TC00 TEMP STORE CHECK
558 JST TC00 TEMP STORE CHECK
559 CA31 JST ET00 ENTER TRIAD
569 LDA T2CA IF T2 NOT ZERO,
572 JMP* CA00 ELSE, RETURN
584 JST ST00 TRIAD SEARCH
589 JMP CA26 ELSE, GO TO CA26
602 STA T0CA * * * * * * * * * * *
607 * IF THE CURRENT TRIAD (IN WORKING STORAGE) MATCHES
608 * ANY TRIAD TABLE ENTRY, EXIT WITH THE
609 * POINTER VALUE OF THE MATCHING ENTRY
610 * (THIS ACCOMPLISHES ELIMINATION OF REDUNDANT
611 * SUBEXPRESSION CALCULATIONS.
612 ST00 DAC ** TRIAD SEARCH
617 ST05 LDA P ELSE, IF P = X
621 LDA O1 ELSE, IF 01=ACCP
625 JMP* ST00 ELSE, RETURN
635 SUB DP,1 IF O1/P/O2 .NE. O1/P/O2(J)
639 SSP EXTRACT OFF STORE BIT
651 * IF J IS A REFERENCE TO A TRIAD , THE TEMP
652 * STORE BIT 0F THE REFERENCED TRIAD IS SET.)
653 TC00 DAC ** TEMP STORE CHECK
663 CA90 OCT 1,2,11,10,13,14,12,15
664 CA91 OCT 2,1,13,14,11,10,12,15
670 * STORE CURRENT TRIAD INTO THE NEXT TRIAD ENTRY
677 STA ACCP SET ACCUM PTR TO LAST TRIAD ENTRY
682 STA DP+1,1 O1(J) = O1
689 ACCP DAC ** ACCUM POINTER
692 SFTB BSS 36 SUBFUNCTION TABLE
693 * **************************
694 * *GENERATE SUBPRO ENTRANCE*
695 * **************************
696 * OUTPUT SUBPROGRAM ENTRANCE CODE , INCLUDING THE
697 * CALL TO ARGUMENT ADDRESS TRANSFER.
704 GE10 JST NA00 INPUT NAME
710 JMP GE30 MAKE ENTRY IN SFTB TABLE
712 STA I IF FULL, GO TO GE30
729 STA DP+1,1 CLEAR OLD USACE
735 JST AF00 DEFINE AFT (A=RPL+T0+3)
741 JST IP00 INPUT OPERATOR
744 JST OA00 OUTPUT ABS (0)
749 JST NF00 FILL IN REMAINING NAME
750 JST OL00 OUTPUT OBJECT LINK
755 JST OA00 OUTPUT NUMBER OF ARGS
756 IRS T0GE OUTPUT SPACE FOR ARG. ADDR.
759 GE30 JST ER00 CONSTR, ERROR
766 * CL SUBA IS INTERCHANGED WITH CL SUBF
770 STA EL90 CL (F) == CL (A)
792 NM00 DAC ** NON-COMMON TEST
798 BCI 1,CR ILLEGAL COMMON REFERENCE
801 * **************************
802 * *NON DUMMY OR SUBPRO TEST*
803 * **************************
810 BCI 1,DA ILLEGAL USE OF A DUMMY ARGUMENT
824 STA S2 NS = S2 = S3 = 0
831 JST XN00 EXAMINE NEXT CHAR,
833 JMP SC70 IF (A) NON ZERO,
834 SC15 JST IG00 GO TO SC70
835 LDA SCT0 INPUT INTEGER
842 SC60 JST AS00 ASSIGN ITEM
843 SC20 LDA A S (NS+1) = A
855 JMP SC50 MORE SUBSCRIPTS PERMITTED
856 SC40 JST IP00 )-INPUT OPERATOR
861 JMP SC40 TERMINATOR NOT A COMMA
863 SC70 JST IR00 INPUT INT VARIABLE
864 LDA SCT0 CHECK FOR NON-DUMMY
865 SNZ VARIABLE DIMENSIONS
872 BCI 1,VD ILLEGAL SYMBOLIC SUBSCRIPT
877 * ********************
878 * *INPUT LIST ELEMENT*
879 * ********************
880 * IF THE ITEM IS AN ARRAY, PROCESS THE SUBSCRIPT
884 SUB K105 NON-DUMMY TEST
888 BCI 1,DD DUMMY ITEM IN AN EQUIV, OR DATA LIST
889 LDA IU IF IU NOT ARR,
894 JST SC00 INPUT SUBSCRIPTS
895 JST FA00 FETCH ASSIGNS
898 SZE S1 = D* (S1 + D1* (S2+D2*S3)
899 JMP IL10 ELSE, GO TO IL10
914 IL10 LDA NS IF NS NOT 1
925 BCI 1,ND WRONG NUMBER OF DIMENSIONS IN ARRAY ELEMENT
927 IL30 JST TV00 TAG VARIABLE
936 * IF LSTF IS ZERO, THE STATEMENT IS OUT OF ORDER
937 * FUNCTIONS ARE CHECKED TO ENSURE ARGUMENTS
943 JST ER00 ILLEGAL STATEMENT
944 BCI 1,FS NOT FIRST STATEMENT IN SUBPROGRAM
945 R2A JST NA00 INPUT NAME
948 CRA ADDR=0, S/C CODE =0
949 JST ON00 OUTPUT NAME BLOCK TO THE LOADER
954 SUB CRET IF IC NOT C/R
961 BCI 1,FA FUNCTION HAS NO ARGUMENTS
964 JST GE00 GENERATE SUBPROGRAM ENTRY
965 JMP A1 GO TO C/R TEST
968 JMP C6 GO TO CONTINUE
978 * THE MODE FLAG (MFL) IS SET TO THE APPROPRIATE
979 * VALUE AND ANY ARRAY INFO IS PROCESSED
984 A5 LDA K106 DOUBLE PRECISION
989 A7A STA MFL TMFL = LOG
990 LDA LSTF IF LSTF = 0, GO TO A7B (2)
1001 LDA DFL IF DFL NOT = 0, GO TO A7B
1004 LDA TID IF ID = FUNCTI,
1006 SNZ SKIP IF NOT 'FUNCTION'
1007 JMP A9 FUNCTION PROCESSOR
1008 A7A5 JST ER00 CONSTRUCTION ERROR
1009 BCI 1,TF 'TYPE' NOT FOLLOWED BY 'FUNCTION' OR LIST
1010 A7K BCI 1,FU CONSTANT FOR 'FUNCTION' CHECK
1011 A7B JST NA00 INPUT NAME
1014 JMP B7 GO TO INPUT DIMENSION
1019 * TAGS NAME AS SUBPROGRAM
1020 B2 JST NA00 EXTERNAL, INPUT NAME
1021 JST TG00 TAG SUBPROGRAM
1022 JMP B1 GO TO , OR C/R TEST
1029 * PROCESS ARRAYS, PUT DIMENSION INFO IN SPECIAL
1030 * ARRAY POINTER ITEM
1036 B3A LDA AT IF AT = DUM
1038 SZE ELSE (A) = .LT. 0
1040 B3B STA B3T0 T0 = (A)
1045 LDA AT TEST FOR AT=DUMMY
1047 SZE SKIP NO-USAGE TEST IF DUMMY
1048 JST NU00 NO USAGE TEST
1050 LDA DP+1,1 IU (A) = ARR
1056 JST SC00 INPUT SUBSCRIPT
1059 LDA S2 PLACE SUBSCRIPTS IN ID
1063 LDA NS (A) = 0, B = NS
1065 JST AA00 ASSIGN SPECIAL.
1072 STA DP+1,1 DEFINE GF T0 GF(A)
1083 STA DP+1,1 DEFINE GF TO GF(A)
1085 SUB K104 IF TC NOT SLASH
1087 JMP B1 GO TO ,-C/R TEST
1088 LDA A9T2 IF SIDSW = COMMON-4
1090 SZE GO T0 B4 (COMMON-0)
1091 JMP B1 ELSE, GO TO ,-C/R TEST
1103 * INPUT BLOCK NAMES AND LINK THEM WITH THE
1104 * FOLLOWING VAR/ARRAY NAMES, BLOCK NAMES
1105 * ARE LINKED TOGETHER THROUGH THEIR GENERAL FIELDS
1110 LDA B4Z9 SET SWITCH IN INPUT DIMENSION
1116 B40 JST DN00 INPUT DNA
1120 LDA K101 (A) = SUB, (B) = 0
1121 JST AA00 ASSIGN SPECIAL
1137 STA DP+1,1 GF(A) = GF(CFL)
1142 STA DP+1,1 GF(CFL) = A
1143 B4D JST NA00 INPUT NAME
1144 JST ND00 NON DUMMY/SUBPROG TEST
1145 JST NM00 NON-COMMON TEST
1146 JST EL00 EXCHANGE LINKS
1149 ADD K122 AT(A) = COM (='040000)
1152 B4E JST UC00 UNINPUT COLUMN
1154 B4Z9 DAC B4D GO TO INPUT DIMENSION
1155 B4F OCT 107777 EXTRACT MASK TO STRIP OFF AT FIELD
1161 * STORE EQUIV INFO IN THE DATA POOL FOR LATER
1162 * PROCESSING BY GROUP EQUIV (PART OF SPECS WRAPUP)
1163 B5 LDA E0 L = NEXT WORD IN EQUIVALENCE TABLE
1170 JST ER00 DATA POOL FULL
1171 BCI 1,MO MEMORY OVERFLOW
1172 JST STXI ESTABLISH I
1179 LDA TC PUT IN FIRST CHARACTER
1180 LGL 8 PACK INTO DP (I)
1185 JMP C6 CHARACTER E C/R - EXIT
1189 JMP B5B WORD NOT FULL
1190 JMP B5 OBTAIN NEW WORD
1191 B5D LDA TC PUT IN SECOND CHARACTER
1196 * *********************
1197 * *RELATE COMMON ITEMS*
1198 * *********************
1199 * ALL ITEMS LINKED TO A COMMON BLOCK ARE PROCESSED
1200 * AND THEIR INVERSE OFFSETS CALCULATED. THESE
1201 * WILL BE INVERTED LATER TO GIVE TRUE
1202 * POSITION IN THE BLOCK.
1210 C2B JST FL00 FETCH LINK
1214 ADD C2T0 T0 = T0 + D0
1216 JST DA00 DEFINE ADDRESS FIELD
1218 C2D JST FL00 FETCH LINK
1225 JMP C2A AF = CFL. NO
1226 JMP C3 YES - GROUP EQUIVALENCE
1228 SUB AF (A) = T0 - AF
1233 JST TV00 TAG VARIABLE
1237 * *******************
1238 * *GROUP EQUIVALENCE*
1239 * *******************
1240 * THE EQUIV GROUPS ARE PROCESSED NOW. ANY COMMON
1241 * USAGE IS CHECKED TO SEE THAT THE ORIGIN
1242 * IS NOT MOVED AND THAT ONLY ONE ITEM IS
1256 STA EBAR EBAR=E(0) = END OF EQUIVALENCE TABLE
1258 STA E E=L(0) = START OF EUUIVALENCE TABLE
1265 LDA K102 T4 = STR-ABS
1267 JST CH00 INPUT CHARACTER
1270 C3D JST IL00 INPUT LIST ELEMENT
1277 C3F LDA F IF I=0, GO TO C3P
1282 SNZ IF A = I, GO TO C3N
1286 SNZ IF AT = COM, GO TO C3O
1290 STA T0C3 T(0) = AF +T (1)
1292 SUB K104 IF T(4) = 0, GO T0 C3K
1297 STA T0C3 T(0) = T(3)-T(0)
1302 C3K LDA C3T4 IMPOSSIBLE COMMON EQUIVALENCING
1304 LDA T0C3 AT (A) = COM
1312 SZE IF A .NE. T (2),
1313 JMP C3G GO TO C3G (5)
1315 JST EL00 EXCHANGE CL(A) == CL(I)
1316 C3M LDA TC EXCHANGE LINKS (CL(A) WITH CL(F) )
1320 JST IP00 )-INPUT OPERATOR
1322 SUB K134 IF TC = , OR C/R
1330 BCI 1,EC EOUIVALENCE GROUP NOT FOLLOWED BY , OR CR
1332 C3N LDA T1C3 IF T1 = 0, GO TO C3M
1335 C3N5 JST ER00 ERROR IMPOSSIBLE GROUP
1336 BCI 1,IE IMPOSSIBLE EQUIVALENCE GROUPING
1346 CAS A IF A = F, GO TO C3M (B)
1354 JST FA00 FETCH ASSIGNS
1362 * ***********************
1363 * *ASSIGN SPECIFICATIONS*
1364 * ***********************
1365 * NON-COMMON NON-EQUIV ITEMS ARE PROCESSED AFTER
1366 * COMMON BLOCKS ARE OUTPUT (WITH SIZE).
1371 ADD K105 I = A = A+5
1375 JMP NP35 RETURN TO FIRST NON-SPEC CHECK (POINT 1)
1377 JST FA00 ELSE, FETCH ASSIGN
1379 SUB K102 IF AT = STR-ABS
1380 SZE IU=VAR, OR ARR, AND
1383 SUB K102 ELSE, GO TO C4C
1390 STA C4T0 T0 = 0. T1 =-MAX
1393 JST KT00 SET D(0) = NO. OF WORDS PER ITEM
1399 SUB AF (A) = D(0) - AF
1403 JST FL00 FETCH LINK ( (A)=A - F )
1407 ADD C4T0 RPL * RPL + T0 + TL
1409 ADD C4T1 TO = RPL-T1
1414 LDA C4T0 (A) = TO-AF
1418 SZE IF (A) NOT ZERO,
1419 JMP C4I NOT END OF EQUIVALENCE GROUP
1420 JMP C4C CHECK NEXT ITEM IN ASSIGNMENI TABLE
1422 C4L2 LDA FLT1 = LINK LOCATION TO COMMON BLOCK NAME
1425 STA I SAVE A FOR LATER MODIFICATION
1428 JMP C4M END OF COMMON GROUP
1429 JST STXI SET INDEX TO POINT TO CURRENT ITEM IN
1431 LDA DP,1 SET CL FIELD TO POINT AT COMMON BLOCK
1433 ANA K119 ( = '177000)
1434 ADD C4T1 (= LINK LOCATION OF COMMON BLOCK NAME)
1436 JMP C4L3 PROCESS NEXT ITEM IN COMMON BLOCK
1438 C4 LDA CFL LOC, OF FIRST (BLANK) COMMON BLOCK
1443 C4L JST FL00 FETCH LINK
1445 JMP C4L2 NO MORE ITEMS IN COMMON BLOCK
1446 LDA D0 ELSE, IF TO .LT. DO+AF,
1448 CAS C4T0 T0 = D0 + AF
1456 * OUTPUT COMMON BLOCK NAME AND SIZE TO LOADER
1457 LDA AF LENGTH OF COMMON BLOCK
1459 ADD K122 ='40000 (S/C CODE = 1)
1460 JST ON00 OUTPUT NAME BLOCK TO LOADER
1475 * **************************
1476 * *DATA STATEMENT PROCESSOR*
1477 * **************************
1478 * PROCESS VARIABLE LIST .THEN OUTPUT LITERAL ITEMS
1479 * TO APPROPRIATE LOCATIONS. MODES MUST AGREE
1482 G PZE 0 LOWEST INDEX POINT IN LIST
1484 STA I I=END OF DATA POOL
1485 W4B JST IL00 INPUT LIST ELEMENT
1486 LDA AT D (0) = =WDS/ITEM
1488 SNZ IF AT = 'STR-ABS'
1492 LDA S1 S1 * DEFLECTION IF AN ARRAY
1494 STA DP,1 DP(E) = AF + S1
1496 STA DP-1,1 DP (E-1) = A
1506 JST TS00 TEST FOR SLASH TERMINATOR
1510 STA I I= END OF DATA POOL
1512 STA KPRM K' = KBAR = 0
1514 W4F JST DN00 INPUT, DNA
1517 JMP W4G VARIABLE OR ARRAY
1518 LDA TC LAST CHARACTER
1519 CAS K17 ='250 ( =( )
1521 JMP *+3 START OF COMPLEX CONSTANT
1523 BCI 1,CN NON-CON DATA
1524 STA SXF SET SXF TO NON-ZERO
1525 JMP W4F FINISH INPUT OF COMPLEX CONSTANT
1526 W4G LDA KBAR MULTIPLY COUNT
1535 STA KBAR KBAR = ID-1
1536 JST IT00 INTEGER TEST
1538 W4K LDA KPRM IF K NOT ZERO
1542 ALS 1 K ' = E-3* KBAR
1546 W4M JST STXI SET INDEX = I
1552 LDA BDF IF BDF NOT ZERO
1555 JST NM00 NON-COMMON TEST
1556 W4O JST STXI SET INDEX = I
1562 LDA HOLF IS IT HOLLERITH DATA
1564 JMP WHOW YES, GO TO OUTPUT IT
1567 JMP *,1 SWITCH ON NUMBER OF WORDS TO OUTPUT