$JOB ASSEMBLY OF MONITOR, COMPILER SECTIONS 1 THROUGH 6 OF $00000010 $* FORTRAN II PROCESSOR, 7090-FO-928 00000020 $* VERSION 3, MODIFICATION LEVEL 35 (35)00000030 $EXECUTE IBSFAP $00000050 * 32K 709/7090 FORTRAN SECTION SIX F6A00000 * FAP F6A00030 COUNT 4000 F6A00040 * 32K 709/7090 FORTRAN SECTION SIX F6A00050 LBL 9F30,X F6A00055 REM F6A00060 ABS F6A00070 SST FORTRAN $F6A00071 TITLE F6A00080 EJECT F6A00970 TOPTAB SYN BOTIOP-1 TOP OF AVAILABLE TABLE BUFFERS F6A00972 CITSIZ SYN 200 LENGTH OF CIT TAPE RECORD F6A00973 TABTAP SYN 2 TABLE TAPE F6A00974 SLSTAP SYN 2 SINGLE COMPILE LISTING TAPE F6A00975 CITTAP SYN 3 CIT INPUT TAPE F6A00976 SBNTAP SYN 3 SINGLE COMPILE BINARY OUTPUT TAPE F6A00977 COTTAP SYN 4 CIT OUTPUT TAPE F6A00978 REM F6A00990 TTL COMMON SUBROUTINES AND ERASABLE F6A01000 REM F6A01010 ORG SYSCUR $F6A01020 BCI 1,9F3000 $F6A01030 ORG (LODR) $F6A01070 TXI ASTART,,300 8R ENTRY PT,,RECNO F6A01080 REM F6A01090 REM F6A01110 REM SECTION SIX COMMON SUBROUTINES F6A01120 REM F6A01130 ORG BOTTOM F6A01140 REM F6A01150 HEAD X F6A01160 REM F6A01170 MEMRY PZE BOTTAB,,TOPTAB PARAMETER TO DEFINE LIMITS OF TABLES F6A01180 REM F6A01190 REM ERROR LIST F6A01200 ERR00 TXL DELET,,0 MACHINE ERROR (SEE LISTING FOR DETAILS) F6A01210 ERR02 TXI (DIAG),,-2 IFN (IN XR2) GREATER THAN 4095 F6A01220 ERR03 TXI (DIAG),,-3 TAPE TABLES OVERFLOWED AVAILABLE MEMORY F6A01230 ERR04 TXI (DIAG),,-4 STORAGE ASSIGNMENTS GREATER THAN 32K CORESF6A01240 ERR05 TXI (DIAG),,-5 LITERAL APPEARANCE OF ARGUMENTS IN OBJECT F6A01250 REM PROGRAM MORE THAN 8 TIMES NUMBER IN ARG F6A01260 REM LIST OF SUBPROGRAM DEFINING STATEMENT F6A01270 ERR06 TXI (DIAG),,-6 MULTIPLY DEFINED SYMBOLS EXIST ON LIST F6A01280 REM XR1 CONTAINS ORIGIN, XR2 CONTAINS COUNT F6A01290 ERR07 TXI (DIAG),,-7 MORE THAN 2*CITSIZ 9) TABLE ENTRIES F6A01300 ERR08 TXI (DIAG),,-8 CORE TABLES OVERFLOWED AVAILABLE MEMORY F6A01310 DUP 1,10 PATCH SPACE FOR ADDITIONAL DIAGNOSTICS F6A01320 PZE F6A01330 REM F6A01340 DELET SXA DELEX,4 SAVE CALLING LINKAGE F6A01350 CLA* ORGFLG IS THIS SINGLE COMPILE F6A01360 TPL DELEX YES F6A01370 TSX (TAPE),4 *NO, ERASE BINARY CARD IMAGES FROM MON TAPEF6A01380 PZE CRDCT,,(SKBP) F6A01390 PZE ,,MBNTAP F6A01400 TSX (TAPE),4 *BACKSPACE TO PAGE HEADING F6A01410 SKDP1 PZE LSTCT,,(SKDP) F6A01420 PZE ,,MLSTAP F6A01430 DELEX AXT **,4 RELOAD CALLING LINKAGE F6A01440 TXH (DIAG),4,0 *WAS THIS CORE ERROR F6A01450 TSX (MECL),4 *CALL MACHINE ERROR RECORD F6A01460 PZE SPACER FOR POSSIBLE PARAMETERS F6A01470 CRDCT MZE ** COUNT OF BINARY CARD IMAGES ON OUTPUT TAPEF6A01480 LSTCT MZE ** COUNT OF LINES FOLLOWING PAGE HEADING F6A01490 REM F6A01500 REM SORT OUT SYMBOLS, ASSEMBLE INTERNAL SYMBOLS IN TIV FORM F6A01510 SORT0 TZE 1,4 IS THERE A SYMBOL F6A01520 SLW SYMBL YES, SAVE FOR POSSIBLE DIAGNOSTIC CALL F6A01530 LGR 30 ISOLATE FIRST CHARACTER F6A01540 PAX ,2 F6A01550 TXL *+3,2,16 F6A01560 LGL 30 SYMBOL BEGINS ALPHA F6A01570 TRA 3,4 F6A01580 TRA SORT1,2 SYMBOL IS INTERNAL VARIABLE OR IFN F6A01590 TSX XERR00,4 *SYMBOL BEGINS + F6A01600 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A01610 * THE SYMBOL STORED IN LOCATION SYMBL HAS BEEN FOUND IN A F6A01620 * CIT SYMBOLIC LOCATION FIELD (CITSL) BY ROUTINE PAS15, F6A01630 * CITC2, OR SAP00, OR IN A CIT SYMBOLIC ADDRESS FIELD F6A01640 * (CITSA) BY ROUTINES PAS04, BIN01, OR SAP01. THE FIRST SIXF6A01650 * BITS ARE 010000, WHICH IS AN ILLEGAL COMBINATION IN A F6A01660 * SYMBOL. ( SYMBOL BEGINS + ) F6A01670 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A01680 TRA 2,4 * PROGRAM COUNTER F6A01690 TXI SORT2,4,-1 E)N SXD INSTRUCTION LOCATION F6A01700 TXI SORT2,4,-1 D)N LXD INSTRUCTION LOCATION F6A01710 TRA SORT2 C)N INDEX REGISTER ERASABLE F6A01720 TXI SORT2,4,-1 B) HOLLERITH DATA F6A01730 TXI SORT2,4,-1 A)N RELCON SUBROUTINE LOCATION F6A01740 TXI SORT2,4,-1 9) INITIALIZATION ADDEND DATA F6A01750 TXI SORT2,4,-1 8)N FORMAT SPECIFICATION DATA F6A01760 TRA SORT2 7)N ARITH STATE FUNCTION XR4 ERASABLE F6A01770 TXI SORT2,4,-1 6) UNIVERSAL CONSTANTS DATA F6A01780 TXI SORT2,4,-1 5) ASSIGN TRANSFER CONSTANT DATA F6A01790 TRA SORT2 4)N ARITH STATE FUNCTION ARG ERASABLE F6A01800 TXI SORT2,4,-1 3) FLOATING POINT CONSTANT DATA F6A01810 TXI SORT2,4,-1 2) FIXED POINT CONSTANT DATA F6A01820 TRA SORT2 1)N ARITHMETIC ERASABLE F6A01830 SORT1 LXA SYMBL,2 0 INTERNAL OR SUB FORMULA NUMBER F6A01840 TXH *+2,2,0 IS THIS INTERNAL FORMULA NUMBER F6A01850 TRA 4,4 YES F6A01860 REM SYMBOL IS SUBSIDIARY INTERNAL FORMULA NUMBER F6A01870 TXL *+2,2,248 IS INCREMENT LEGAL F6A01880 TSX XERR00,4 *NO, INCREMENT GREATER THAN (37)8 F6A01890 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A01900 * THE SUBSIDIARY INTERNAL FORMULA NUMBER STORED IN LOCATIONF6A01910 * SYMBL (SEE DISCUSSION IMMEDIATELY ABOVE) HAS AN INCREMENTF6A01920 * ASSIGNED BY SECTION 2 GREATER THAN (37)8. ILLEGAL. F6A01930 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A01940 LGL 12 YES, ASSEMBLE SUB IFN F6A01950 RQL 10 IFN IN BITS 5 - 16 (SIGN IS BIT 1) F6A01960 LGL 5 INCREMENT IN BITS 17 - 21 F6A01970 TXI SORT2+2,4,1 F6A01980 REM SYMBOL IS INTERNAL VARIABLE F6A01990 SORT2 RQL 13 ASSEMBLE TYPE IN BITS 1-4 (SIGN IS BIT 1) F6A02000 LGL 17 1)N, 4)N, 7)N SUBROUT LEVEL IN BITS 14-21 F6A02010 ALS 15 2), 3), 5), 6), 9), B) ZERO IN BITS 5-21 F6A02020 REM 5,4 SUB IFN 8)N EXTERNAL FORMULA NUMBER IN BITS 7-21 F6A02030 TRA 6,4 ERASABLE A)N, C)N I IN BITS 10-12, T IN BITS 13-21 F6A02040 REM 7,4 DATA D)N, E)N I IN BITS 9-11 BB IN BITS 12-21 F6A02050 REM 1)0 MAIN PROGRAM ERASABLE F6A02060 REM 4)0 LIBE SUBROUTINE ERASABLE = 77777 F6A02070 REM 7)0 MAIN PROGRAM XR4 ERASABLE = 6)+4 F6A02080 REM F6A02090 REM SEARCH DEV TABLE FOR SYMBOL IN ACCUMULATOR. IF SYMBOL F6A02100 REM IS IN DEV, RETURN WITH LOCATION ASSIGNED TO SYMBOL. IN F6A02110 REM ANY CASE, RETURN WITH ORDERED LOCATION IN XR2 FOR SYMBOL.F6A02120 SRDEV SXA NOTIN,1 SAVE TABLE COUNT F6A02130 SLW SYMBL SAVE SYMBOL BEING SEARCHED FOR F6A02140 LDQ DEVTL INITIALIZE BINARY SEARCH FOR DEV TABLE F6A02150 STQ BSRCH DOWNWARDS IN MEMORY F6A02160 LXA DEVTS,1 LOAD HOP COUNT F6A02170 LXD DEVTS,2 LOAD COUNT OF MEDIAN ENTRY F6A02180 SRDE1 LAS* ORGDEV IS ENTRY IN TABLE SAME AS NEW ENTRY F6A02190 TXI LOWER,1,-2 NEW ENTRY IS LARGER, LOOK HIGHER IN TABLE F6A02200 TRA *+2 YES, XR2 CONTAINS ORDERED LOCATION IN DEV F6A02210 TXI RAISE,1,-2 NEW ENTRY IS SMALLER, LOOK LOWER IN TABLE F6A02220 CLA* ORGDEA GET LOCATION ASSIGNED THIS SYMBOL F6A02230 LXA NOTIN,1 RELOAD TABLE COUNT F6A02240 TRA 3,4 F6A02250 DEVTL TXL SRDE1,2,** ,,TABLE LENGTH F6A02260 DEVTS PZE 5,,0 HOP COUNT,,LOCATION OF MEDIAN ENTRY F6A02270 REM F6A02280 REM SEARCH TEV TABLE FOR SYMBOL IN ACCUMULATOR. IF SYMBOL F6A02290 REM IS IN TEV, RETURN WITH LOCATION ASSIGNED TO SYMBOL. IN F6A02300 REM ANY CASE, RETURN WITH ORDERED LOCATION IN XR2 FOR SYMBOL.F6A02310 SRTEV SXA NOTIN,1 SAVE TABLE COUNT F6A02320 LDQ TEVTL INITIALIZE BINARY SEARCH FOR TABLE F6A02330 STQ BSRCH DOWNWARDS IN MEMORY F6A02340 LXA TEVTS,1 LOAD HOP COUNT F6A02350 LXD TEVTS,2 LOAD COUNT OF MEDIAN ENTRY F6A02360 SRTE1 LAS* ORGTEV IS ENTRY IN TABLE SAME AS NEW ENTRY F6A02370 TXI LOWER,1,-2 NEW ENTRY IS LARGER, LOOK HIGHER IN TABLE F6A02380 TRA *+2 YES, XR2 CONTAINS ORDERED LOCATION IN TEV F6A02390 TXI RAISE,1,-2 NEW ENTRY IS SMALLER, LOOK LOWER IN TABLE F6A02400 PXA ,2 COMPUTE LOCATION FOR VARIABLE F6A02410 ADD TEVBS POSITION IN TABLE ABOVE BASE LOCATION F6A02420 LXA NOTIN,1 RELOAD TABLE COUNT F6A02430 TRA 2,4 F6A02440 TEVTL TXL SRTE1,2,** ,,TABLE LENGTH F6A02450 TEVTS PZE 5,,0 HOP COUNT,, LOCATION OF MEDIAN ENTRY F6A02460 REM F6A02470 REM SEARCH TIV TABLE FOR PSEUDOSYMBOL LEFT ADJUSTED IN F6A02480 REM ACCUMULATOR. IF PSEUDOSYMBOL IS IN TIV, RETURN WITH F6A02490 REM LOCATION ASSIGNED TO PSEUDOSYMBOL OR LENGTH OF BLOCK F6A02500 REM RESERVED FOR ERASABLE STORAGE. IN ANY CASE, RETURN WITH F6A02510 REM ORDERED LOCATION IN XR2 FOR PSEUDOSYMBOL F6A02520 SRTIV SXA NOTIN,1 SAVE TABLE COUNT F6A02530 SLW SYMBL SAVE SYMBOL BEING SEARCHED FOR F6A02540 SLW ERASE F6A02550 LDQ TIVTL INITIALIZE BINARY SEARCH FOR TIV TABLE F6A02560 STQ BSRCH UPWARDS IN MEMORY F6A02570 LXA TIVTS,1 LOAD HOP COUNT F6A02580 LXD TIVTS,2 LOAD COUNT OF MEDIAN ENTRY F6A02590 SRTI1 CAL* ORGTIV GET NEXT ENTRY IN TIV TABLE F6A02600 STA ERASE EQUALIZE ADDRESSES F6A02610 LAS ERASE IS ENTRY IN TABLE SAME AS NEW ENTRY F6A02620 TXI LOWER,1,-2 NEW ENTRY IS SMALLER, LOOK HIGHER IN TABLEF6A02630 TRA *+2 YES, XR2 CONTAINS ORDERED LOCATION IN DEV F6A02640 TXI RAISE,1,-2 NEW ENTRY IS LARGER, LOOK LOWER IN TABLE F6A02650 LXA NOTIN,1 RELOAD TABLE COUNT F6A02660 TRA 2,4 F6A02670 TIVTL TXH SRTI1,2,-2 ,,TABLE LENGTH F6A02680 TIVTS PZE 5,,-1 HOP COUNT,,LOCATION OF MEDIAN ENTRY F6A02690 REM F6A02700 REM F6A02710 REM BINARY SEARCH OF TABLE OF MAXIMUM LENGTH 16K-1. THIS, IN F6A02720 REM EFFECT, IS THE LIMIT TO LENGTH OF DEV, TEV, TIV, OR F6A02730 REM SYMBOL TABLE. F6A02740 BSRCH PZE THIS INSTRUCTION IS INITIALIZED FOR F6A02750 TQP *+2 DIRECTION AND LENGTH OF TABLE SEARCHED F6A02760 TXI LOWER,1,-2 F6A02770 TXI RAISE,1,-2 FOR A TABLE WITH N ENTRIES, THE SEARCH IS F6A02780 TXI BSRCH,2,-8192 COMMENCED AT THE 2**X ENTRY, THIS NUMBER F6A02790 TXI BSRCH,2,+8192 BEING THE LARGEST POWER OF 2 LESS THAN N. F6A02800 TXI BSRCH,2,-4096 IF THE NEW ENTRY IS IS NOT LOGICALY (OR F6A02810 TXI BSRCH,2,+4096 ALGEBRAICALY) EQUAL TO THIS ENTRY, THE F6A02820 TXI BSRCH,2,-2048 HOP COUNT IS REDUCED OR MULTIPLIED BY F6A02830 TXI BSRCH,2,+2048 2**(X-1), DEPENDING UPON THE RESULTS OF F6A02840 TXI BSRCH,2,-1024 THE COMPARISON AND THE DIRECTION OF THE F6A02850 TXI BSRCH,2,+1024 TABLE. FOR EXAMPLE, THE DEV TABLE GOES F6A02860 TXI BSRCH,2,-512 DOWNWARDS IN MEMORY WITH ENTRIES IN F6A02870 TXI BSRCH,2,+512 DESCENDING LOGICAL ORDER (Z AT THE BOTTOM,F6A02880 TXI BSRCH,2,-256 A AT THE TOP). IF THE NEW ENTRY IS LESS F6A02890 TXI BSRCH,2,+256 THAN THE OLD, THE NEXT COMPARISON WILL BE F6A02900 TXI BSRCH,2,-128 MADE WITH AN ENTRY HALF WAY CLOSER TO F6A02910 TXI BSRCH,2,+128 THE ORIGIN OF THE TABLE (CLOSER TO A). F6A02920 TXI BSRCH,2,-64 F6A02930 TXI BSRCH,2,+64 IF A HOP IS MADE BEYOND THE END OF THE F6A02940 TXI BSRCH,2,-32 TABLE, THE TXH OR TXL INSTRUCTION F6A02950 TXI BSRCH,2,+32 INITIALIZED AT BSRCH TRAPS THE HOP AND F6A02960 TXI BSRCH,2,-16 REDUCES THE HOP COUNT. A COMPARISON WILL F6A02970 TXI BSRCH,2,+16 BE MADE WITH A VALID TABLE ENTRY ONLY. F6A02980 TXI BSRCH,2,-8 FOR EXAMPLE, IF THE LENGTH OF THE DEV F6A02990 TXI BSRCH,2,+8 TABLE IS 600, AND THE COMPARISON IS WITH F6A03000 TXI BSRCH,2,-4 THE 768 ENTRY, THE TXL SRDE1,2,600 WILL F6A03010 TXI BSRCH,2,+4 CAUSE THE ENTRY COUNT IN XR2 TO BE F6A03020 TXI BSRCH,2,-2 REDUCED TO 640, AND THEN TO 576 BEFORE F6A03030 TXI BSRCH,2,+2 THE NEXT COMPARISON IS MADE F6A03040 TXI BSRCH,2,-1 F6A03050 TXI BSRCH,2,+1 HOPS ARE CONTROLLED BY XR1 WHICH CONTAINS F6A03060 TXI *+1,2,-1 X+4, WHERE X IS THE POWER OF 2 GREATER F6A03070 NOTIN AXT **,1 THAN WHICH THE TABLE IS. F6A03080 TRA 1,4 F6A03090 LOWER TRA *,1 IF SEARCH IS UNSUCCESSFUL, XR2 CONTAINS F6A03100 RAISE TRA *,1 THE ORDERED POSITIN INTO WHICH THE NEW F6A03110 REM ENTRY IS TO BE INSERTED F6A03120 REM F6A03130 DUP 1,10 PATCH SPACE FOR COMMON CODING F6A03140 PZE F6A03150 REM F6A03160 REM F6A03170 REM SENSE SWITCH SIMULATORS F6A03180 SWCH1 PZE DOWN, NO CARDS ON LINE F6A03190 SWCH2 PZE DOWN, MACHINE LANGUAGE LISTING PREPARED F6A03200 SWCH3 PZE DOWN, ONLINE PRINT F6A03210 SWCH4 PZE DOWN, ONLINE CARDS TO BE COLUMN BINARY F6A03220 SWCH5 PZE DOWN, PUNCH LIBRARY SUBROUTINES F6A03230 SWCH6 PZE DOWN, PUNCH SYMBOL TABLE F6A03240 SWCH7 PZE DOWN, PUNCH OFFLINE CARD LABEL (COL 73-80)F6A03250 SWCH8 PZE DOWN, PRINT TWO COLUMN EXTENDED LISTING F6A03260 SWCH9 PZE DOWN, OFFLINE CARDS TO BE ROW BINARY F6A03270 SWC10 PZE DOWN, BLOCK LISTING TAPE F6A03271 DEC ,,,, EXPANSION SPACE FOR ADDED SS SIMULATORS. F6A03280 PZE SKEW SPACE F6A03290 REM F6A03300 REM ORIGINS FOR INDIRECT ADDRESSING OF TABLES F6A03310 ORGFLG EQU (FGBX) F6A03320 ORGLCT EQU (LNCT) F6A03330 ORGDEV PZE **,2 ORIGIN FOR NAMES IN DEV,TAG F6A03340 PZE **,2,** (FLAG FOR PRESENCE OF FORMAT STATEMENTS) F6A03350 ORGDEA PZE **,2 ORIGIN FOR LOCATIONS FOR NAMES IN DEV,TAG F6A03360 PZE **,2 F6A03370 ORGTEV PZE **,2 ORIGIN FOR NAMES OF SINGLE CELL VARIABLES F6A03380 PZE **,2 F6A03390 PZE **,2 F6A03400 ORGTIV PZE **,2 ORIGIN FOR NAMES, LOCATIONS OF INT VARS F6A03410 ORGCLO PZE **,1,** ORIGIN FOR SUBPROGRAM NAMES F6A03420 ORGEIF PZE **,2,** ORIGIN FOR EXT,,INT STATEMENT NUMBERS F6A03430 ORGIFN PZE **,4,** ORIGIN FOR LOCATIONS FOR INT STATE NUMBERSF6A03440 ORGSUB PZE **,1,** ORIGIN FOR ARGUMENT NAMES F6A03450 REM F6A03460 DUP 1,10 PATCH SPACE FOR ORIGINS AND ERASABLE F6A03470 PZE F6A03480 REM F6A03490 REM ERASABLE STORAGE F6A03500 PCD8L PZE LENGTH OF TRANSFER VECTOR (DECREMENT) F6A03510 REM PROGRAM BREAK (ADDRESS) F6A03520 PCD8R PZE COMMON BREAK (ADDRESS) F6A03530 PCD7L PZE BCD NAME OF SUBPROGRAM F6A03540 PCD7R PZE SUBPROGRAM ENTRY POINT (ADDRESS) F6A03550 PGBRK PZE FIRST CELL AVAILABLE ABOVE OBJECT PROGRAM F6A03560 TEVBS PZE ORIGIN FOR TEV STORAGE IN OBJECT PROGRAM F6A03570 SLINT PZE LOCATION SYMBOL FOR FIRST PROGRAM CIT F6A03580 SYMBL PZE NAME OF VARIABLE TO BE SEARCHED F6A03590 ERASE PZE ERASABLE FULL WORD F6A03600 PGHED BCI 8,1 F6A03610 BCI 8, F6A03620 BCI 2, PAGE 1 F6A03630 LABEL PZE CARD LABEL F6A03640 LOADP SYN * F6A03650 EJECT F6A03660 TTL CONTROL ROUTINES FOR FIRST CIT PASS F6A03670 REM F6A03680 REM READ IN ALL TAPE TABLES REQUIRED BY SECTION 6 F6A03690 REM COMPILE CIT FOR TAPE TABLE CONSTANTS F6A03700 REM ENTER NAMES IN TAPE TABLES INTO DEV SYMBOL TABLE F6A03710 REM PASS OVER CIT TAPE TO DEFINE SYMBOLS, ARGUMENTS F6A03720 REM CHANGE INTERNAL PSEUDOOPERATIONS TO MACHINE OPCODES F6A03730 REM F6A03740 ORG XLOADP F6A03750 REM F6A03760 HEAD A F6A03770 REM F6A03780 REM ORIGINS FOR INDIRECT ADDRESSING OF TABLES F6A03790 RGCOM PZE **,2,** ORIGIN FOR COMMON VARIABLE NAMES F6A03800 RGEQU PZE **,1,** ORIGIN FOR EQUIVALENT VARIABLE NAMES F6A03810 PZE **,1 ORIGIN FOR EQUIVALENT VARIABLE SUBSCRIPTS F6A03820 RGFOR PZE **,1,** ORIGIN FOR ARITH STATEMENT FUNCTION NAMES F6A03830 PZE **,1 ORIGIN FOR LEVEL,,INTERNAL STATEMENT NO F6A03840 RGSIZ PZE **,1,** ORIGIN FOR ARRAY NAMES F6A03850 PZE **,1 ORIGIN FOR ARRAY LENGTHS F6A03860 RG9TB PZE **,1,** ORIGIN FOR 9) ADDEND CONSTANTS F6A03870 REM F6A03880 DUP 1,10 PATCH SPACE FOR ORIGINS AND ERASABLE F6A03890 PZE F6A03900 REM F6A03910 REM ERASEABLE STORAGE F6A03920 CITSL PZE CIT SYMBOLIC LOCATION F6A03930 CITOP PZE CIT OPCODE, DECREMENT F6A03940 CITSA PZE CIT SYMBOLIC ADDRESS F6A03950 CITRA PZE CIT RELATIVE ADDRESS, TAG F6A03960 ADDRS PZE ERASABLE ADDRESS FIELD F6A03970 ERASE PZE ERASABLE FULL WORD F6A03980 LOCTR PZE PROGRAM LOCATION COUNTER F6A03990 UPCTR PZE -207 UPPER STORAGE LOCATION COUNTER F6A04000 TIVCL MZE ERASABLE TO COMPUTE LENGTH OF TIV BLOCK F6A04010 IDENT PZE TABLE IDENTIFICATION NUMBER F6A04020 TABCT PZE TABLE COUNT FROM TAPE TABLE LABEL F6A04030 ARGNO PZE ERASABLE USED TO COMPUTE INITIALIZATION F6A04040 REM F6A04050 REM F6A04060 START SLF TURN OFF FLAGS F6A04070 DVP L(0) TURN ON INDICATOR FOR COMMON AMUSEMENT F6A04080 NOP PATCH IN SWT FOR DEBUGGING F6A04090 TRA *+2 F6A04100 HPR 27 F6A04110 REM F6A04120 REM INITIALIZE ORIGINS OF TABLES F6A04130 LXD XMEMRY,4 TOP OF MEMORY F6A04140 LXA XMEMRY,2 BOTTOM OF MEMORY F6A04150 TXI *+1,2,1 F6A04160 SXA ORGDEV,4 F6A04170 SXA ADDRS,4 INITIALIZE LOWER CORE TABLE OVERFLOW TEST F6A04180 PXA ,2 INITIALIZE ORIGINS OF LOWER CORE TABLES F6A04190 AXT FORLP-ASSLP+1,1 F6A04200 STA FORLP+1,1 F6A04210 TIX *-1,1,1 F6A04220 SXA CLEAR,4 PREPARE TO CLEAR WORKING MEMORY F6A04230 SXD *+1,2 F6A04240 TIX *+2,4,** F6A04250 TSX XERR00,4 *TOPMEM BELOW BOTMEM F6A04260 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A04270 * THE LIMITS OF STORAGE IN CELL MEMRY HAVE BEEN ASSIGNED F6A04280 * DURING EDITING OF THIS SYSTEM TAPE. TOPMEM HAS BEEN FOUNDF6A04290 * TO BE BELOW BOTMEM. SECTION 6 REQUIRES MORE ROOM TO PLAY.F6A04300 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A04310 CLEAR STZ **,4 F6A04320 TIX *-1,4,1 F6A04330 REM F6A04340 REM READ IN TAPE TABLES, COMPILE CIT FOR TAPE TABLE CONSTANT F6A04350 TSX (TAPE),4 *BACKSPACE TABLE TAPE OVER ASSIGN CONSTANTSF6A04360 PZE BKSPC,,(SKBP) F6A04370 PZE ASSLB,,TABTAP F6A04380 CAL TRAOP SET CIT OPCODE TO TRA F6A04420 SLW CITOP F6A04430 TSX RDTAB,4 *READ ASSIGN TABLE (FILE 9) F6A04440 TSX CPCIT,4 *COMPILE 5) CITS F6A04450 CAL OCTOP SET CIT OPCODE TO OCT F6A04460 SLW CITOP F6A04470 TSX RDTAB,4 *READ FIXCON TABLE (FILE 8) F6A04480 TSX CPCIT,4 *COMPILE 2) CITS F6A04490 TSX RDTAB,4 *READ HOLARG TABLE (FILE 5 RECORD 4) F6A04500 TXL HOLL3+1,1,0 IS HOLARG TABLE EMPTY F6A04510 STA HOLL1+2 NO, INITIALIZE ORIGIN FOR BCD WORD F6A04520 CAL HLSYM SET CIT SYMBOLIC LOCATION TO B) F6A04530 SLW CITSL F6A04540 HOLL1 CAL BCDOP SET CIT OPCODE TO BCD F6A04550 SLW CITOP F6A04560 CAL **,1 SET CIT SYMBOLIC ADDRESS TO NEXT WORD F6A04570 SLW CITSA IN HOLARG TABLE F6A04580 ERA ALONE IS IT END OF ARGUMENT FLAG F6A04590 TZE HOLL2 YES F6A04600 TSX TBCIT,4 *NO, WRITE COMPILED CIT F6A04610 STZ CITSL SET SUBSEQUENT SYMBOLIC LOCATION ZERO F6A04620 TIX HOLL1+2,1,1 IS TABLE EXHAUSTED F6A04630 TSX XERR00,4 *YES, END OF SENTENCE FLAG MISSING F6A04640 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A04650 * THE HOLARG TABLE, PREPARED BY SECTION 1 AND 1P, READ FROMF6A04660 * FILE 5 RECORD 4 LOGICAL TAPE 2, MUST HAVE A FLAG OF 36 F6A04670 * BINARY ONES AS THE LAST WORD. IT HAS NOT BEEN RECOGNIZED.F6A04680 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A04690 HOLL2 CAL OCTOP SET CIT OPCODE TO OCT F6A04700 SLW CITOP F6A04710 TSX TBCIT,4 *WRITE COMPILED CIT F6A04720 HOLL3 TIX HOLL1,1,1 IS TABLE EXHAUSTED F6A04730 TSX RDTAB,4 *READ FLOCON TABLE (FILE 4 RECORD 1) F6A04740 TSX CPCIT,4 *COMPILE 3) CITS F6A04750 AXT SXTAB+6,1 INITIALIZE ORIGIN OF UNIVERSAL CONSTANTS $F6A04760 PXA ,1 F6A04770 AXT 6,1 PREPARE TO COMPILE 6 CONSTANTS $F6A04780 AXT 8,2 SET INITIAL SYMBOLIC LOCATION TO 6) F6A04790 TSX CPCIT,4 *COMPILE 6) CITS F6A04800 TSX RDTAB,4 *READ IN FORMAT TABLE (FILE 4 RECORD 2) F6A04810 SXD ORGDEV+1,1 SET SWITCH FOR FORMAT TABLE ENTRIES F6A04820 TSX CPBCD,4 *COMPILE 8) CITS F6A04830 REM F6A04840 REM WRITE OUT CONTENTS OF FINAL PARTIAL BUFFER F6A04850 LAC TBCIT+1,4 COMPUTE PARTIAL WORD COUNT F6A04860 SXD *+2,4 F6A04870 AXT CITSIZ+4,4 F6A04880 TXI *+1,4,** F6A04890 SXD IOCIT,4 INITIALIZE I/O WORD COUNT F6A04900 TSX (TAPE),4 *WRITE FINAL PARTIAL BUFFER CONTENTS F6A04910 PZE IOCIT,,(WBNP) F6A04920 PZE 3LABL,,CITTAP F6A04930 TSX (TAPE),4 *MARK END OF CIT FILE F6A04940 PZE ,,(WEFP) F6A04950 PZE 3LABL,,CITTAP F6A04960 TSX (TAPE),4 *PREPARE FOR FIRST PASS F6A04970 PZE REWND,,(SKBP) F6A04980 PZE 3LABL,,CITTAP F6A04990 TSX RDTAB,4 *READ FORSUB TABLE (FILE 3) F6A05000 SXD RGFOR,1 SAVE FORSUB TABLE COUNT F6A05010 STA TAPAR,2 INITIALIZE LOAD POINT FOR SIZ TABLE F6A05020 STA RGFOR INITIALIZE ORIGIN FOR ARITH STATE NAMES F6A05030 ADD L(1) F6A05040 STA RGFOR+1 INITIALIZE ORIGIN FOR LEVEL,,IFN F6A05050 TSX RDTAB,4 *READ SIZ TABLE (FILE 4 RECORD 3) F6A05060 SXD RGSIZ,1 SAVE SIZE TABLE COUNT F6A05070 STA TAPAR+1,2 INITIALIZE LOAD POINT FOR SUBDEF TABLE F6A05080 STA RGSIZ INITIALIZE ORIGIN FOR ARRAY NAME F6A05090 ADD L(1) F6A05100 STA RGSIZ+1 INITIALIZE ORIGIN FOR ARRAY LENGTH F6A05110 LXD IDENT,2 LOAD HIGHEST+1 IFN USED IN PROGRAM F6A05120 TXL *+2,2,4096 IS IFN TOO LARGE F6A05130 TSX XERR02,4 *YES, IFN LARGER THAN 4095 F6A05140 TXI *+1,2,1 NO, BUMP BY ONE F6A05150 SXD ORGIFN,2 SAVE HIGHEST IFN+2 FOR TABLE LENGTH ALLOC F6A05160 TSX RDTAB,4 *READ END TABLE (FILE 5 RECORD 1) F6A05170 TSX RDTAB,4 *READ SUBDEF TABLE (FILE 5 RECORD 2) F6A05180 STA TAPAR,2 INITIALIZE LOAD POINT FOR COMMON TABLE F6A05190 TXL SUBL1+1,1,0 IS SUBDEF TABLE EMPTY F6A05200 STA ORGSUB NO, INITIALIZE ORIGIN FOR DUMMY ARGUMENTS F6A05210 CAL* ORGSUB INSERT BCD SUBPROGRAM NAME F6A05220 SLW XPCD7L INTO PROGRAM CARD 7L F6A05230 TXI *+1,1,-1 BUMP COUNT PAST SUBPROGRAM NAME F6A05240 SUBL1 SXD ORGSUB,1 SAVE COUNT OF ARGUMENTS F6A05250 TSX RDTAB,4 *READ COMMON TABLE (FILE 5 RECORD 3) F6A05260 SXD RGCOM,1 SAVE COMMON TABLE COUNT F6A05270 STA TAPAR,2 INITIALIZE LOAD POINT FOR EIF TABLE F6A05280 STA IOCIT INITIALIZE I/O PARAMETER TO WRITE EIF F6A05290 STA TAPAR+1,2 INITIALIZE LOAD POINT FOR EQUIV TABLE F6A05300 STA RGCOM INITIALIZE ORIGIN FOR COMMON VARIABLE NAMEF6A05310 TSX RDTAB,4 *READ EIF TABLE (FILE 5 RECORD 5) F6A05320 SXD ORGEIF,1 SAVE EIF TABLE COUNT F6A05330 SXD IOCIT,1 INITIALIZE I/O PARAMETER TO WRITE EIF F6A05340 TXL *+4,1,0 IS EIF TABLE EMPTY F6A05350 TSX (TAPE),4 *NO, WRITE EIF TABLE AS FIRST RECORD TAPE 4F6A05360 PZE IOCIT,,(WBNC) F6A05370 PZE ELABL,,COTTAP F6A05380 TSX RDTAB,4 *READ EQUIV TABLE (FILE 5 RECORD 13) F6A05390 SXD RGEQU,1 SAVE EQUIVALENCE TABLE COUNT F6A05400 STA TAPAR,2 INITIALIZE LOAD POINT FOR CLOSUB TABLE F6A05410 STA RGEQU INITIALIZE ORIGIN FOR VARIABLE NAME F6A05420 ADD L(1) F6A05430 STA RGEQU+1 INITIALIZE ORIGIN FOR SUBSCRIPT F6A05440 TSX RDTAB,4 *READ CLOSUB TABLE (FILE 5 RECORD 14) F6A05450 SXD XPCD8L,1 INSERT VECTOR LENGTH IN PC 8L DECREMENT F6A05460 SXD ORGCLO,1 SAVE CLOSUB TABLE COUNT F6A05470 STA ORGCLO INITIALIZE ORIGIN FOR SUBPROGRAM NAMES F6A05480 REM F6A05490 REM INITIALIZE ORIGIN OF DEA TABLE SPLITTING AVAILABLE F6A05500 REM MEMORY ABOVE CLOSUB TABLE WITH DEV F6A05510 STA ADDRS SET TOP OF LOWER MEMORY TABLES F6A05520 CLA ORGDEV GET ORIGIN OF UPPER TABLES F6A05530 ANA ADMSK F6A05540 ADD L(1) F6A05550 STA ORGDEV+1 F6A05560 SUB ADDRS COMPUTE AVAILABLE MEMORY F6A05570 TPL *+2 DID TAPE TABLES OVERLAP UPPER MEMORY F6A05580 TSX XERR03,4 *YES F6A05590 ARS 1 NO, SPLIT AVAILABLE MEMORY F6A05600 PAX ,2 F6A05610 TXL *+3,2,16383 IS THIS LONGER THAN BINARY SEARCH F6A05620 LXD *-1,2 YES, SET MAXIMUM TABLE LENGTH F6A05630 PXA ,2 F6A05640 SXD ENDET,2 SET DEV TABLE OVERFLOW TEST F6A05650 SBM ORGDEV INITIALIZE ORIGIN FOR DEA TABLE F6A05660 STA ORGDEA F6A05670 SUB L(1) F6A05680 STA ORGDEA+1 F6A05690 AXT 0,2 F6A05700 CLA ALONE SET BINARY SEARCH STOP F6A05710 STO* ORGDEV AT UPPER END OF DEV TABLE F6A05720 REM F6A05730 REM ALL TAPE TABLES REQUIRED BY SECTION 6 ARE IN MEMORY. F6A05740 REM CONSTRUCT OBJECT PROGRAM STORAGE ALLOCATION TABLE F6A05750 REM FROM INFORMATION IN TAPE TABLES F6A05760 LXD RGCOM,1 LOAD COMMON TABLE COUNT F6A05770 REM F6A05780 REM REENTRY TO ASSIGN NEXT SUPERCOMMON STATEMENT F6A05790 SPRCM TXL COMS1+1,1,0 IS COMMON TABLE EMPTY F6A05800 SXD RGCOM,1 NO, SAVE COUNT OF REMAINING COMMON VARIABSF6A05810 CLA T(2) RESET TAG FOR INDIRECT ADDRESS OF F6A05820 STT RGCOM COMMON TABLE F6A05830 REM F6A05840 REM ASSIGN LOCATIONS TO COMMON-EQUIVALENCE VARIABLES F6A05850 LXD RGEQU,1 GET EQUIVALENCE TABLE COUNT F6A05860 TXL EQCM1+1,1,0 IS EQUIVALENCE TABLE EMPTY F6A05870 EQCOM SXA SEQAS+1,1 NO, SAVE COUNT OF FIRST SYMBOL THIS SET F6A05880 LXD RGCOM,2 GET COMMON TABLE COUNT F6A05890 CAL* RGEQU GET NEXT SYMBOL THIS SET F6A05900 LAS* RGCOM IS EQUIVALENCE VARIABLE IN COMMON F6A05910 TRA *+2 NO F6A05920 TSX SEQAS,4 *YES, ASSIGN THIS SET TO UPPER MEMORY F6A05930 CAL* RGCOM GET COMMON VARIABLE F6A05940 ERA ALONE IS THIS END OF SUPERCOMMON STATEMENT F6A05950 TZE *+2 YES F6A05960 TIX EQCOM+2,2,1 NO, IS COMMON TABLE EXHAUSTED F6A05970 CLA* RGEQU+1 YES, GET SUBSCRIPT F6A05980 TMI EQCM1 IS THIS END OF SENTENCE F6A05990 TIX EQCOM+1,1,2 NO, IS EQUIVALENCE TABLE EXHAUSTED F6A06000 TSX XERR00,4 *YES, END OF SENTENCE FLAG MISSING F6A06010 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A06020 * THE EQUIVALENCE TABLE PREPARED BY SECTION 1 AND PROCESSEDF6A06030 * BY 1P, READ FROM FILE 5 RECORD 13 LOGICAL TAPE 2, MUST F6A06040 * HAVE A FLAG OF 36 BINARY ONES AS THE LAST WORD. THIS FLAGF6A06050 * HAS NOT BEEN RECOGNIZED. F6A06060 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A06070 EQCM1 TIX EQCOM,1,2 IS EQUIVALENCE TABLE EXHAUSTED F6A06080 REM F6A06090 REM ASSIGN LOCATIONS TO COMMON-DIMENSION VARIABLES F6A06100 LXD RGCOM,1 GET COMMON TABLE COUNT F6A06110 CLA T(1) RESET TAG FOR INDIRECT ADDRESS OF F6A06120 STT RGCOM COMMON TABLE F6A06130 ADD UPCTR SET LOCATION ASSIGNED TO THIS SYMBOL F6A06140 SLW ADDRS TO CURRENT VALUE OF UPPER LOCATION COUNTERF6A06150 COMAS CAL* RGCOM GET NEXT VARIABLE NAME F6A06160 LAS ALONE IS THIS END OF SUPERCOMMON STATEMENT FLAG F6A06170 TRA *+2 NO F6A06180 TXI SPRCM,1,-1 YES, ASSIGN NEXT SUPERCOMMON STATEMENT F6A06190 TSX XSRDEV,4 *IS NAME IN AN EQUIVALENCE SENTENCE F6A06200 TSX ENDEV,4 *NO, ENTER IT INTO DEV F6A06210 TRA *+2 F6A06220 TRA COMS1 YES F6A06230 CAL XSYMBL GET VARIABLE NAME F6A06240 TSX SSIZE,4 *GET -LENGTH OF THIS ARRAY F6A06250 ADD ADDRS BUMP LOCATION COUNTER BY ARRAY LENGTH F6A06260 SUB T(1) DID ASSIGNMENT WRAP AROUND MEMORY F6A06270 TPL *+2 NO F6A06280 TSX XERR04,4 *YES F6A06290 STA UPCTR SAVE NEW VALUE OF UPPER COUNTER F6A06300 STA ADDRS F6A06310 COMS1 TIX COMAS,1,1 IS COMMON TABLE EXHAUSTED F6A06320 CLA UPCTR YES, INSERT COMMON BREAK F6A06330 STA XPCD8R IN PROGRAM CARD 8R ADDRESS F6A06340 REM F6A06350 REM ASSIGN EQUIVALENCE VARIABLES NOT IN COMMON F6A06360 LXD RGEQU,1 GET EQUIVALENCE TABLE COUNT F6A06370 TXL EQLO1+1,1,0 IS EQUIVALENCE TABLE EMPTY F6A06380 EQLOW SXA SEQAS+1,1 NO, SAVE COUNT OF FIRST SYMBOL THIS SET F6A06390 CAL* RGEQU GET FIRST SYMBOL THIS SENTENCE F6A06400 TSX XSRDEV,4 *IS SENTENCE IN COMMON F6A06410 TSX SEQAS,4 *NO, ASSIGN SENTENCE TO LOWER MEMORY F6A06420 PZE NOT USED F6A06430 CLA* RGEQU+1 YES, GET NEXT SUBSCRIPT F6A06440 TMI EQLO1 IS THIS END OF SENTENCE F6A06450 TIX *-2,1,2 NO, IS EQUIVALENCE TABLE EXHAUSTED F6A06460 TSX XERR00,4 *YES, END OF SENTENCE FLAG MISSING F6A06470 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A06480 * SEE DISCUSSION OF SIMILAR ERROR AT EQCOM. F6A06490 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A06500 PZE NOT USED F6A06510 PZE NOT USED F6A06520 PZE NOT USED F6A06530 EQLO1 TIX EQLOW,1,2 IS EQUIVALENCE TABLE EXHAUSTED F6A06540 REM F6A06550 REM F6A06560 REM ENTER SUBROUTINE ARGUMENTS INTO DEV F6A06570 LXD ORGSUB,1 GET SUBDEF TABLE COUNT F6A06580 TXL SBAR1+1,1,0 ARE THERE ANY ARGUMENTS F6A06590 CAL P(2) YES, SET ARGUMENT FLAG F6A06600 ADD T(4) SET SYMBOL TABLE FLAG F6A06610 SBARG ADD L(1) BUMP ARGUMENT COUNT F6A06620 STO ADDRS F6A06630 CAL* ORGSUB GET ARGUMENT NAME F6A06640 TSX XSRDEV,4 *IS ARGUMENT IN COMMON OR EQUIVALENCE F6A06650 TSX ENDEV,4 *NO, ENTER IT INTO DEV F6A06660 TRA SBAR1 F6A06670 ANA T(2) IS THIS AN EQUIVALENCE VARIABLE F6A06680 TZE *+3 NO F6A06690 CLA L(1) YES, GET SUBROUTINE ARGUMENT FLAG F6A06700 TSX SMDER,4 *ADD THIS NAME TO MULTIPLY DEFINED LIST F6A06710 CLA ADDRS RESET COMMON STORAGE ASSIGNMENT F6A06720 STO* ORGDEA TO DELETE FROM MAP F6A06730 SBAR1 TIX SBARG,1,1 IS ARGUMENT LIST EXHAUSTED F6A06740 REM F6A06750 REM ASSIGN LOCATIONS TO DIMENSION VARIABLES F6A06760 LXD RGSIZ,1 GET SIZ TABLE COUNT F6A06770 TXL DIMN1+1,1,0 IS SIZ TABLE EMPTY F6A06780 CLA T(1) SET SYMBOL TABLE FLAG F6A06790 ADD UPCTR SET LOCATION OF ARRAY NAME TO CURRENT F6A06800 STO ADDRS VALUE OF UPPER LOCATION COUNTER F6A06810 DIMEN CAL* RGSIZ GET NEXT ARRAY NAME F6A06820 TSX XSRDEV,4 *IS THIS ARRAY IN COMMON, EQUIV, OR ARG F6A06830 TSX ENDEV,4 *NO, ENTER IT IN DEV F6A06840 TRA *+2 F6A06850 TRA DIMN1 YES, IT IS COMMON, EQUIV, OR ARGUMENT F6A06860 CLS* RGSIZ+1 REDUCE LOCATION COUNTER BY LENGTH OF F6A06870 ADD ADDRS ARRAY (STORED BACKWARDS IN MEMORY) F6A06880 SUB T(1) DID ASSIGNMENT WRAP AROUND MEMORY F6A06890 TPL *+2 NO F6A06900 TSX XERR04,4 *YES F6A06910 STA UPCTR SAVE NEW VALUE OF UPPER COUNTER F6A06920 STA ADDRS F6A06930 DIMN1 TIX DIMEN,1,2 NO, IS SIZ TABLE EXHAUSTED F6A06940 REM F6A06950 REM ENTER TRANSFER VECTOR NAMES IN DEV F6A06960 CAL P(1) SET TRANSFER VECTOR FLAG F6A06970 ADD T(4) SET SYMBOL TABLE FLAG F6A06980 STO ADDRS F6A06990 LXD ORGCLO,1 GET COUNT OF TRANSFER VECTOR F6A07000 TXL TRVC1+1,1,0 IS TRANSFER VECTOR EMPTY F6A07010 TRVEC CAL* ORGCLO NO, GET NEXT NAME IN TRANSFER VECTOR F6A07020 TSX XSRDEV,4 *IS IT IN DEV F6A07030 TSX ENDEV,4 *NO, ENTER IT INTO DEV F6A07040 TRA *+3 F6A07050 CLA L(3) YES, GET TRANSFER VECTOR FLAG F6A07060 TSX SMDER,4 *ADD NAME TO MULTIPLY DEFINED ERROR LIST F6A07070 CLA ADDRS BUMP LOWER LOCATION COUNTER F6A07080 ADD L(1) F6A07090 STA ADDRS F6A07100 TRVC1 TIX TRVEC,1,1 IS TRANSFER VECTOR EXHAUSTED F6A07110 REM F6A07120 REM ENTER INITIAL SYMBOLIC LOCATION INTO DEV F6A07130 PXD ,0 ERASE TRANSFER VECTOR FLAG IN PREFIX F6A07140 STP ADDRS F6A07150 CAL L(SD) SET INITIAL SYMBOLIC LOCATION TO $ F6A07160 NZT XPCD7L IS THIS A SUBPROGRAM F6A07170 CAL L(DD) NO, RESET INITIAL SYMBOLIC LOCATION TO $$ F6A07180 TSX XSRDEV,4 *IS THIS IN DEV F6A07190 TSX ENDEV,4 *NO, ENTER IT INTO DEV F6A07200 TRA *+2 F6A07210 TSX XERR00,4 *YES, $ OR $$ APPEARS IN DEV PREMATURELY F6A07220 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A07230 * THE DEV TABLE, MADE UP OF BCD NAMES IN COMMON, DIMENSION,F6A07240 * EQUIVALENCE, TRANSFER VECTOR (CLOSUB), ARGUMENT LIST F6A07250 * (SUBDEF) AND ARITHMETIC STATEMENT FUNCTION (FORSUB) NAMESF6A07260 * HAS BEEN SEARCHED AND $ OR $$ (SEE LOC SYMBL) HAS BEEN F6A07270 * FOUND AT ORGDEV,2. NOONE PUT IT THERE. F6A07280 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A07290 REM F6A07300 REM ENTER ARITHMETIC STATEMENT FUNCTION NAMES IN DEV F6A07310 LXD RGFOR,1 GET FORSUB TABLE COUNT F6A07320 TXL FORS1+1,1,0 IS FORSUB TABLE EMPTY F6A07330 CLS T(4) NO, SET ARITHMETIC STATEMENT FUNCTION F6A07340 STO ADDRS FLAG (MINUS), SYMBOL TABLE FLAG (TAG) F6A07350 FORSB CLA* RGFOR+1 GET LEVEL,,IFN OF THIS FUNCTION F6A07360 ARS 18 ISOLATE IFN F6A07370 STA ADDRS FOR DEA ENTRY F6A07380 CAL* RGFOR GET NEXT ARITH STATE FUNCTION NAME F6A07390 TSX XSRDEV,4 *IS IT IN DEV F6A07400 TSX ENDEV,4 *NO, ENTER IT INTO DEV F6A07410 TRA *+3 F6A07420 CLA L(2) YES, GET ARITHMETIC STATEMENT DEF FLAG F6A07430 TSX SMDER,4 *ADD NAME TO MULTIPLY DEFINED LIST F6A07440 FORS1 TIX FORSB,1,2 IS FORSUB TABLE EXHAUSTED F6A07450 REM F6A07460 REM TO CHECK FOR ILLEGAL USE OF SUBPROGRAM NAME F6A07470 CAL XPCD7L GET NAME OF THIS SUBPROGRAM F6A07480 TSX XSRDEV,4 *IS IT IN DEV F6A07490 TRA SBNER+1 NO F6A07500 PZE NOT USED F6A07510 ANA T(4) IS IT FORSUB, TRANSFER VECTOR, OR ARG NAMEF6A07520 TZE SBNER+1 NO F6A07530 CLA L(4) YES, GET SUBPROGRAM NAME FLAG F6A07540 SBNER TSX SMDER,4 *ADD NAME TO MULTIPLY DEFINED LIST F6A07550 REM F6A07560 REM DEV TABLE IS COMPLETE. PACK DEA UP IN MEMORY AGAINST DEV F6A07570 CLA ORGDEA INITIALIZE MOVE LOOP F6A07580 STA MVDEA F6A07590 LXD XDEVTL,4 COMPUTE POSITION OF LAST ENTRY IN DEV F6A07600 PXA ,4 F6A07610 SBM ORGDEV F6A07620 STA ORGDEA INITIALIZE NEW ORIGIN OF DEA TABLE F6A07630 STA ORGIFN INITIALIZE ORIGIN OF IFN TABLE F6A07640 REM IFN WILL OCCUPY DECREMENT, DEA ADDRESS F6A07650 REM PORTION OF WORDS IN SHARED MEMORY F6A07660 SXD MVDEA+3,4 SET END OF MOVE LOOP TEST F6A07670 AXT 1,6 PREPARE TO MOVE DEA TABLE OFF THE TOP F6A07680 MVDEA CLA **,2 MOVE NEXT ENTRY IN DEA F6A07690 STO* ORGDEA UP PACKED AGAINST DEV F6A07700 TXI *+1,6,1 BUMP TO NEXT WORD IN DEA F6A07710 TXL MVDEA,2,** IS DEA EXHAUSTED F6A07720 SXD *+2,2 YES, SET TEST FOR ORIGIN OF TEV TABLE F6A07730 LXD ORGIFN,2 GET LENGTH OF REQUIRED IFN TABLE F6A07740 TXL *+2,2,** IS DEA LONGER THAN IFN F6A07750 LXD ORGIFN,4 NO, GET COUNT OF IFN TABLE INSTEAD F6A07760 PXA ,4 COMPUTE ORIGIN OF TEV TABLE F6A07770 SBM ORGDEA PACKED AGAINST LAST ENTRY IN DEA OR IFN F6A07780 STA ORGTEV F6A07790 SUB L(1) F6A07800 STA ORGTEV+1 F6A07810 REM F6A07820 REM INITIALIZE PASS OVER CIT TAPE F6A07830 REM INITIALIZE ORIGIN OF TIV TABLE ALLOWING 8 ENTRIES IN F6A07840 REM ARGUMENT LIST FOR EACH ARGUMENT IN SOURCE PROGRAM F6A07850 LXD ORGSUB,4 LOAD COUNT OF ARGUMENTS F6A07860 PXA ,4 F6A07870 ARGTB ALS 4 MULTIPLY BY 16 (2 WORDS FOR EACH ENTRY) F6A07880 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * F6A07890 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * F6A07900 REM CHANGE SHIFT AT ARGTB TO ALTER LENGTH OF BUFFER F6A07910 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * F6A07920 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * F6A07930 TXH *+2,4,12 IS TABLE RESERVATION AT LEAST 200 WORDS F6A07932 CLA L(200 NO, PROVIDE FOR AT LEAST 100 ENTRIES F6A07934 PAX ,1 F6A07940 SXD PAS10,1 INITIALIZE ARGUMENT LIST OVERFLOW TEST F6A07950 SXD *+2,1 F6A07960 LXA XMEMRY,1 F6A07970 TXI *+1,1,** F6A07980 SXA ORGTIV,1 F6A07990 TXI *+1,1,-1 F6A08000 SXA ORGTIV-1,1 F6A08010 LAC ORGTIV,2 COMPUTE LENGTH OF TIV AND TEV TABLES F6A08020 SXD *+2,2 FOR TABLE OVERFLOW TEST F6A08030 LXA ORGTEV,2 F6A08040 TXI *+1,2,** F6A08050 SXD ENTET,2 F6A08060 PXA ,2 F6A08070 PAC ,2 F6A08080 SXD ENTIT,2 F6A08090 CLA ALONE F6A08100 AXT 0,2 SET BINARY SEARCH STOPS F6A08110 STO* ORGTEV AT UPPER END OF TEV TABLE F6A08120 STO* ORGTIV AND AT LOWER END OF TIV TABLE F6A08130 TXI *+1,2,-1 CLEAR FIRST WORD IN TIV F6A08140 STZ* ORGTIV F6A08150 TXL PAS01,4,0 ARE THERE ANY ARGUMENTS F6A08160 TSX RDCIT,4 *YES, READ FIRST CIT F6A08170 TRA RDCRR *WAS END OF CIT FILE MISTAKENLY SENSED F6A08180 CAL CITSL NO, GET FIRST SYMBOLIC LOCATION F6A08190 TNZ *+3 IS A SYMBOLIC LOCATION ASSIGNED F6A08200 CAL L(8) NO, SET IT TO A1 F6A08210 SLW CITSL F6A08220 SLW XSLINT F6A08230 TRA PAS01+2 F6A08240 REM F6A08250 REM PASS OVER CIT TAPE 3 TO DEFINE VARIABLE NAMES NOT IN DEV F6A08260 REM AND TO PREPARE INITIALIZATION FOR ARGUMENTS F6A08270 PAS01 TSX RDCIT,4 *GET NEXT CIT F6A08280 TRA PAS18+2 WAS END OF CIT FILE SENSED F6A08290 STZ ADDRS NO, RESET LOCATION OF THIS SYMBOL F6A08300 CAL CITOP GET CIT OPCODE F6A08310 LXD OPLST,4 LOAD COUNT OF SPECIAL OPERATIONS F6A08320 LAS OPLST+16,4 IS OPCODE ON LIST F6A08330 TRA *+2 NO F6A08340 TRA PAS02+1,4 YES F6A08350 TIX *-3,4,1 IS SPECIAL OPERATION LIST EXHAUSTED F6A08360 TXI PAS04,4,15 YES F6A08370 DUP 1,8 EXPANSION SPACE FOR ADDITIONAL PSEUDOOPS F6A08380 PZE F6A08390 TRA PAS03+2 OPCODE IS SXQ F6A08400 TRA PAS03 OPCODE IS QXD F6A08410 TRA PAS02+1 OPCODE IS QPR F6A08420 TRA PAS14 OPCODE IS OCT F6A08430 TRA PAS14 OPCODE IS BCD F6A08440 SLN 4 OPCODE IS BSS F6A08450 PAS02 TRA PAS04 OPCODE IS SYN F6A08460 REM OPCODE IS QPR F6A08470 STZ CITSL ERASE IFN FOR THIS INSTRUCTION F6A08480 CAL TRAOP REPLACE QPR WITH TRA F6A08490 ZET CITSA IS IT TERMINAL SUBROUTINE CALL F6A08500 CAL TSXOP YES, REPLACE QPR WITH TSX INSTEAD F6A08510 SLW CITOP F6A08520 CLA LOCTR BUMP PROGRAM COUNTER F6A08530 ADD L(1) F6A08540 STO LOCTR F6A08550 TSX WRCIT,4 *WRITE CIT ON TAPE 4 F6A08560 TSX RDCIT,4 *DELETE FOLLOWING CIT F6A08570 TRA RDCRR *WAS END OF CIT FILE MISTAKENLY SENSED F6A08580 TRA PAS01 NO F6A08590 REM OPCODE IS QXD OR SXQ F6A08600 PAS03 CAL LXDOP REPLACE QXD WITH LXD F6A08610 TRA *+2 F6A08620 CAL SXDOP REPLACE SXQ WITH SXD F6A08630 SLW CITOP F6A08640 PAS04 SXA PAS13,4 SET SPECIAL OPCODE SWITCH F6A08650 CAL CITSA GET CIT SYMBOLIC ADDRESS F6A08660 TSX XSORT0,4 *SORT OUT SYMBOLS F6A08670 TRA PAS13 NO SYMBOL ASSIGNED F6A08680 TRA PAS12 PROGRAM COUNTER, DEFINE SYN F6A08690 TRA PAS07 EXTERNAL VARIABLE F6A08700 TRA PAS13 INTERNAL FORMULA NUMBER, DO NOT DEFINE SYNF6A08710 TRA PAS06 SUBSIDIARY INTERNAL FORMULA NUMBER F6A08720 TRA PAS05 INTERNAL SYMBOL FOR ERASABLE F6A08730 TSX XSRTIV,4 *IS INTERNAL SYMBOL FOR LOCATION OF LOAD F6A08740 REM OR SAVE XR INSTRUCTION IN TIV F6A08750 TRA PAS13 NO F6A08760 TRA PAS12+1 YES, DEFINE POSSIBLE SYN F6A08770 REM SYMBOLLIC ADDRESS IS INTERNAL SYMBOL FOR ERASABLE CELL F6A08780 PAS05 TSX XSRTIV,4 *INTERNAL SYMBOL FOR ERASABLE, IS IT IN TIVF6A08790 TSX ENTIV,4 *NO ENTER IT IN TIV F6A08800 STA TIVCL YES, GET COUNT OF BLOCK RESERVED F6A08810 LDQ TIVCL F6A08820 CLS CITRA GET COUNT OF BLOCK REQUIRED F6A08830 ARS 18 F6A08840 TLQ *+2 IS BLOCK LONG ENOUGH F6A08850 STA* ORGTIV NO, REPLACE WITH NEW BLOCK LENGTH F6A08860 TRA PAS13 DO NOT DEFINE SYN F6A08870 REM SYMBOLLIC ADDRESS IS SUBSIDIARY INTERNAL FORMULA NUMBER F6A08880 PAS06 TSX XSRTIV,4 *IS SUB IFN IN TIV F6A08890 TSX ENTIV,4 *NO, ENTER IT IN TIV (TO BE DEFINED LATER) F6A08900 TRA PAS13 DO NOT DEFINE SYN F6A08910 REM SYMBOLLIC ADDRESS IS EXTERNAL VARIABLE NAME F6A08920 PAS07 TSX XSRDEV,4 *IS EXTERNAL NAME IN DEV F6A08930 TRA PAS11 NO F6A08940 PZE NOT USED F6A08950 TMI PAS13 YES, IS IT FORSUB NAME F6A08960 PAI NO, PICK UP PREFIX F6A08970 LFT 200000 IS IT ARGUMENT NAME F6A08980 TRA PAS09 YES F6A08990 LFT 100000 NO, IS IT TRANSFER VECTOR NAME F6A09000 TRA PAS08 YES F6A09010 CAL DEAMK NO, RESET FLAG FOR SYMBOL TABLE F6A09020 ANS* ORGDEA VARIABLE IS USED IN SOURCE PROGRAM F6A09030 TRA PAS13 DO NOT DEFINE SYN F6A09040 REM CHECK FOR USE OF TRANSFER VECTOR NAME AS VARIABLE F6A09050 PAS08 CAL CITOP LOAD OPCODE F6A09060 ERA OPCD1 IS IT PZE F6A09070 TZE PAS13 YES F6A09072 ERA OPCD1+1 NO, IS IT TSX F6A09074 TZE PAS13 YES F6A09080 CAL CITSA NO, LOAD SYMBOLIC ADDRESS F6A09090 LXD TVTBL,2 LOAD LENGTH OF INTERNAL SUBROUTINE LIST F6A09092 LAS TVTBL,2 IS SUBROUTINE NAME ON LIST F6A09094 TRA *+2 NO F6A09096 TRA PAS13 YES F6A09100 TIX *-3,2,1 IS LIST EXHAUSTED F6A09110 CLA L(5) YES, GET VECTOR NAME USED AS VARIABLE FLAGF6A09120 TSX SMDER,4 *ADD NAME TO MULTIPLY DEFINED LIST F6A09130 TRA PAS14 F6A09140 REM SYMBOLIC ADDRESS IS AN ARGUMENT WHICH MUST BE INITIALIZEDF6A09150 PAS09 ALS 18 ISOLATE ARGUMENT NUMBER F6A09160 ADD LOCTR RELATIVE COUNT,,ARGUMENT NUMBER F6A09170 LDQ CITRA GET TAG,,RA OF CIT FOR WORD 2 F6A09180 LXD ORGTIV,2 LOAD ARGUMENT LIST COUNT F6A09190 TXI *+1,2,2 BUMP LIST COUNT TO NEXT ENTRY F6A09200 STO* ORGTIV-1 F6A09210 STQ* ORGTIV F6A09220 PAS10 TXL *+2,2,** DID LIST OVERFLOW F6A09230 TSX XERR05,4 *YES F6A09240 SXD ORGTIV,2 NO, SAVE LIST COUNT F6A09250 TRA PAS13 DO NOT DEFINE SYN F6A09260 REM SYMBOLLIC ADDRESS IS SINGLE CELLED ERASABLE VARIABLE F6A09270 PAS11 TSX XSRTEV,4 *IS VARIABLE NAME IN TEV F6A09280 TSX ENTEV,4 *NO, ENTER IT IN TEV F6A09290 TRA PAS13 DO NOT DEFINE SYN F6A09300 REM SYMBOLLIC ADDRESS IS PROGRAM COUNTER ( * ) F6A09310 PAS12 CLA LOCTR GET CURRENT CONTENTS OF LOCATION COUNTER F6A09320 STA ADDRS TO DEFINE POSSIBLE SYN F6A09330 REM ENTRY POINT TO UNDEFINE POSSIBLE SYN F6A09340 PAS13 AXT **,4 LOAD SPECIAL OPCODE SWITCH F6A09350 TXH PAS14,4,1 IS OPCODE SYN F6A09360 NZT ADDRS YES, IS SYN DEFINED F6A09370 TSX XERR00,4 *NO, SYN TO (CITSA) IS UNDEFINED F6A09380 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A09390 * SECTION 4 HAS WRITTEN THE CIT 'CITSL SYN CITSA', F6A09400 * EXPECTING THAT THE SYMBOL IN CITSA HAS ALREADY APPEARED F6A09410 * IN A CIT SYMBOLIC LOCATION FIELD. IF SECTION 6 FOUND IT, F6A09420 * IT WOULD HAVE PUT IT IN TIV. IT HAS NOT BEEN RECOGNIZED. F6A09430 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A09440 TRA PAS15 YES F6A09450 REM OP CODE IS OCT OR BCD PSEUDOOPERATION F6A09460 PAS14 SLT 4 IS OPCODE BSS F6A09461 TRA *+6 NO F6A09462 NZT CITSL YES, IS SYMBOLIC LOCATION BLANK F6A09464 TRA PAS01 YES, DO NOT LIST NOR BUMP LOCATION COUNTERF6A09466 CLA LOCTR SET LOCATION OF BSS TO RELATIVE COUNT F6A09467 STO ADDRS F6A09468 TRA PAS15 SINCE BSS HAS LOCATION SYMBOL, LIST IT. F6A09469 CLA LOCTR BUMP RELATIVE COUNT F6A09470 STO ADDRS SET LOCATION OF SYMBOL TO RELATIVE COUNT F6A09480 ADD L(1) NO, BUMP RELATIVE COUNT F6A09500 STO LOCTR F6A09510 PAS15 CAL CITSL GET CIT SYMBOLIC LOCATION F6A09520 TSX XSORT0,4 *SORT OUT SYMBOLS F6A09530 TRA PAS18 NO SYMBOL ASSIGNED F6A09540 STZ CITSL LOCATION COUNTER ( * ) F6A09550 REM (SEC 3 FLAG TIFGO ENTRY FOR TRASTO F6A09560 REM TRANSFER ADDRESS, FOR SEC 4 CONSIDERATION)F6A09570 TRA PAS18 EXTERNAL VARIABLE F6A09580 TRA PAS17 INTERNAL FORMULA NUMBER F6A09590 TRA PAS16 SUBSIDIARY INTERNAL FORMULA NUMBER F6A09600 TSX XERR00,4 *INT SYMBOL FOR ERASABLE IN SYMBOLIC LOC F6A09610 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A09620 * THE INTERNAL SYMBOL STORED IN SYMBL FOR AN ERASABLE CELL,F6A09630 * WHICH IS DEFINED BY APPEARING ON THE STORAGE MAP, AND F6A09640 * SHOULD NEVER APPEAR IN A SYMBOLIC LOCATION FIELD OF A CITF6A09650 * HAS BEEN RECOGNIZED IN CITSL. F6A09660 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A09670 TSX XSRTIV,4 *IS INTERNAL SYMBOL FOR DATA IN TIV F6A09680 TRA *+2 NO F6A09690 TSX XERR00,4 *INT SYMBOL FOR DATA TWICE IN SYMBOLIC LOC F6A09700 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A09710 * THE INTERNAL SYMBOL FOR A DATA CELL SHOULD APPEAR ONCE F6A09720 * AND ONCE ONLY IN THE SYMBOLIC LOCATION FIELD OF A CIT, F6A09730 * WHICH SECTION 6 HAS COMPILED FROM DATA IN ASSIGN 5), F6A09740 * FIXCON 2), HOLARG B), FLOCON 3), UNIVERSAL CONSTANTS 6), F6A09750 * AND FORMAT 8), IN THE ROUTINES FOLLOWING CLEAR. DURING F6A09760 * THIS PASS, WHEN THIS INTERNAL SYMBOL IS RECOGNIZED IN A F6A09770 * CIT SYMBOLIC LOCATION, SECTION 6 ENTERS IT INTO TIV. THE F6A09780 * INTERNAL SYMBOL STORED IN SYMBL HAS BEEN ENCOUNTERED IN AF6A09790 * CIT SYMBOLIC LOCATION FIELD (CITSL), AND HAS BEEN FOUND F6A09800 * TO BE IN ORGTIV,2 ALREADY. IT SHOULDNT BE THERE F6A09810 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A09820 TSX ENTIV,4 *ENTER IT INTO TIV F6A09830 TRA PAS18 F6A09840 PAS16 TSX XSRTIV,4 *IS SUB INTERNAL FORMULA NUMBER IN TIV F6A09850 TRA PAS18 NO F6A09860 CLA ADDRS YES, DEFINE IT F6A09870 STA* ORGTIV F6A09880 TRA PAS18 F6A09890 PAS17 CLA ADDRS GET CURRENT LOCATION FOR MAIN IFN F6A09900 ADD L(1) DIFERENTIATE FROM NONEXECUTABLE IFNS F6A09910 ALS 18 F6A09920 LXD CITSL,4 LOAD IFN F6A09930 STD* ORGIFN ENTER CURRENT LOCATION IN IFN TABLE F6A09940 TXL *+3,4,** IS THIS INLINE CODING F6A09950 SXD *-1,4 YES, UPDATE TEST F6A09960 TRA PAS18 F6A09970 PXA ,4 NO, THIS IS FORSUB IFN F6A09980 STO ADDRS SAVE IFN F6A09990 LXD XDEVTL,2 LOAD DEV TABLE COUNT F6A10000 CLA* ORGDEA LOAD FLAGS F6A10010 TPL *+4 IS THIS FORSUB NAME F6A10020 ANA ADMSK YES, MASK IN IFN F6A10030 SUB ADDRS IS IT THIS IFN F6A10040 TZE *+3 YES F6A10050 TIX *-5,2,1 NO, IS DEV TABLE EXHAUSTED F6A10060 TRA PAS18 YES, IFN IS WITHIN BODY OF ARITH STATE F6A10070 CAL* ORGDEV PICK UP FORSUB NAME F6A10080 SLW CITSL REPLACE IFN WITH FORSUB NAME F6A10090 PAS18 TSX WRCIT,4 *WRITE CIT ON TAPE 4 F6A10100 TRA PAS01 F6A10110 REM F6A10120 REM END OF CIT FILE SENSED F6A10130 LXA SMDER,2 HAVE THERE BEEN ANY ERRORS F6A10140 TXL *+3,2,0 NO F6A10150 AXT ERLST,1 YES, LOAD ORIGIN OF ERROR LIST F6A10160 TSX XERR06,4 *COUNT OF ERRORS IS IN XR2 F6A10170 TSX (TAPE),4 *PREPARE FOR BINARY OUTPUT F6A10180 PZE REWND,,(SKBP) F6A10190 PZE 3LABL,,CITTAP F6A10200 REM F6A10210 REM PREPARE PAGE HEADING F6A10220 HEDR0 CLA* ORGFLG IS THIS SINGLE COMPILE F6A10230 TMI CCRD1 NO F6A10240 ENK YES, PICK UP DATE IN CONSOLE KEYS F6A10250 STQ ERASE F6A10260 CAL ERASE F6A10270 TZE CCARD HAS A DATE BEEN SPECIFIED F6A10280 ANA BLNKS YES, MASK IN ZONE BITS F6A10290 TNZ CCARD IS IT AN APPARENTLY PROPER DATE F6A10300 LGL 12 YES, LEFT ADJUST BCD MONTH F6A10310 ALS 6 F6A10320 ORA SLASH FOLLOWED BY SLASH F6A10330 LGL 12 RIGHT ADJUST BCD DAY F6A10340 ALS 6 F6A10350 ORA SLASH FOLLOWED BY SLASH F6A10360 SLW XPGHED+14 IN WORD 15 OF PAGE HEADING F6A10370 LGL 12 LEFT ADJUST BCD YEAR F6A10380 LDQ BLNKS FOLLOWED BY BLANKS F6A10390 LGL 24 F6A10400 SLW XPGHED+15 IN WORD 16 OF PAGE HEADING F6A10410 CCARD CAL XSKDP1 RESET SKIP TO DECIMAL $F6A10411 STD SKDP2 F6A10412 TSX (TAPE),4 *READ FIRST SOURCE CARD $F6A10420 PZE *+3,,(RDNC) F6A10430 PZE ,,SLSTAP F6A10440 PZE HEDRR F6A10450 IORT XPGHED+1,,12 (NOP) F6A10460 PXD ,0 F6A10470 LDQ XPGHED+1 GET FIRST WORD F6A10480 STQ XLABEL SAVE COMMENTS CHARACTER F6A10490 LGL 6 FIRST CHARACTER F6A10500 CAS L(C) IS IT COMMENTS CARD F6A10510 TRA *+2 NO F6A10520 CAL BLANK YES, DELETE C FROM HEADING F6A10530 LGR 6 F6A10540 STQ XPGHED+1 F6A10550 TRA CCRD1 F6A10560 HEDRR AXT 12,4 DELETE HEADING F6A10570 CAL BLNKS F6A10580 SLW XPGHED+13,4 F6A10590 TIX *-1,4,1 F6A10600 TSX (PRNT),4 *PRINT HEADING DELETED MESSAGE F6A10610 PZE HEDRM,,7 F6A10620 CCRD1 AXT REWND,2 PREPARE TO PRINT FIRST FILE F6A10630 ZET XSWCH3 IS ONLINE PRINT REQUESTED F6A10640 SXA *+2,2 YES, RESET SKIP INSTRUCTION TO REWIND F6A10650 TSX (TAPE),4 *SPACE TO PROPER END OF SOURCE PROGRAM F6A10660 SKDP2 PZE D(1),,(SKBP) (RESET TO (SKDP) IF SINGLE COMPILE) F6A10670 PZE ,,SLSTAP F6A10680 REM F6A10690 REM COMPUTE ADDENDS REQUIRED FOR INITIALIZATION F6A10700 LXD ORGTIV,2 LOAD COUNT OF ARGUMENT LIST F6A10710 TXL ARG06+1,2,0 IS ARGUMENT LIST EMPTY F6A10720 CLA WRCBF-1 NO, INITIALIZE ORIGIN OF 9) TABLE F6A10730 STA RG9TB IN CIT INPUT BUFFER F6A10740 LXD ORGSUB,4 LOAD COUNT OF ARGUMENTS F6A10750 SXD INITT,4 INITIALIZE END OF COMPILE LOOP F6A10760 ARG01 SXD ARGNO,4 SET CURRENT ARGUMENT NUMBER F6A10770 LXD ORGTIV,2 LOAD ARGUMENT LIST COUNT F6A10780 STZ ADDRS RESET RUNNING ADDEND F6A10790 ARG02 CLA* ORGTIV-1 GET NEXT RELATIVE COUNT,,ARGUMENT NUMBER F6A10800 ANA DECMK ISOLATE ARGUMENT NUMBER F6A10810 SUB ARGNO IS IT THIS ARGUMENT F6A10820 TNZ ARG04+2 NO F6A10830 CLA* ORGTIV YES, GET ,,RA OF CIT TO BE INITIALIZED F6A10840 ARS 18 F6A10850 STO ERASE F6A10860 SUB ADDRS REDUCE BY INITIALIZATION TO DATE F6A10870 LDQ ERASE UPDATE RUNNING ADDEND (CURRENT RA) F6A10880 STQ ADDRS F6A10890 TZE ARG04+1 IS THERE AN ADDEND F6A10900 LXD RG9TB,1 YES, PICK UP COUNT OF 9)TABLE F6A10910 TXL ARG03,1,0 IS 9) TABLE EMPTY F6A10920 CAS* RG9TB NO, IS THIS ADDEND IN 9)TABLE F6A10930 TRA *+2 NO F6A10940 TRA ARG04 YES F6A10950 TIX *-3,1,1 IS 9) TABLE EXHAUSTED F6A10960 LXD RG9TB,1 YES, BUMP 9) TABLE COUNT F6A10970 ARG03 TXI *+1,1,1 F6A10980 TXL *+2,1,2*CITSIZ DID 9)TABLE OVERFLOW F6A10990 TSX XERR07,4 *YES F6A11000 SXD RG9TB,1 NO, SAVE NEW 9) TABLE COUNT F6A11010 STO* RG9TB INSERT CONSTANT IN 9) TABLE F6A11020 ARG04 PXA ,1 INSERT POSITION+1 OF CONSTANT IN 9) TABLE F6A11030 STO* ORGTIV AS NEW WORD 2 IN ARGUMENT LIST F6A11040 TIX ARG02,2,2 IS ARGUMENT LIST EXHAUSTED F6A11050 TIX ARG01,4,1 YES, ARE ARGUMENTS EXHAUSTED F6A11060 LXD RG9TB,1 GET COUNT OF 9) TABLE F6A11070 TXL ARG06+1,1,0 IS 9) TABLE EMPTY F6A11080 SXD ARG05,1 NO, SET END OF 9) TABLE COMPILE LOOP TEST F6A11090 STZ CITRA RESET RA,,TAG F6A11100 CAL OCTOP SET CIT OPCODE TO OCT F6A11110 SLW CITOP F6A11120 CLA LOCTR SET LOCATION OF SYMBOL TO CURRENT CONTENTSF6A11130 STO ADDRS OF PROGRAM COUNTER F6A11140 CAL 9)SYM SET FIRST CIT SYMBOLIC LOCATION TO 9) F6A11150 SLW CITSL F6A11160 ALS 2 CONVERT TO TIV FORM F6A11170 TSX XSRTIV,4 *IS 9) SYMBOL IN TIV F6A11180 TRA *+2 NO F6A11190 TSX XERR00,4 *YES, INT SYM FOR DATA 9) TWICE IN SYM LOC F6A11200 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A11210 * THE INTERNAL SYMBOL FOR ARGUMENT ADDEND CONSTANTS 9), F6A11220 * WHICH HAS JUST BEEN COMPILED, HAS BEEN FOUND AT ORGTIV,2.F6A11230 * IT SHOULD NOT HAVE APPEARED IN A SYMBOLIC LOCATION FIELD F6A11240 * OF ANY CIT, AND SHOULD NOT HAVE BEEN ENTERED INTO TIV. F6A11250 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A11260 TSX ENTIV,4 *ENTER IT F6A11270 AXT 1,1 START AT TOP OF LIST F6A11280 ARG05 TXH ARG06+1,1,** IS 9) TABLE EXHAUSTED F6A11290 CAL* RG9TB NO, SET CIT SYMBOLIC ADDRESS F6A11300 SLW CITSA TO NEXT CONSTANT IN 9) TABLE F6A11310 TSX WRCIT,4 *WRITE CIT F6A11320 STZ CITSL RESET SUBSEQUENT CIT SYMBOLIC LOCATION F6A11330 CLA LOCTR BUMP PROGRAM COUNTER F6A11340 ADD L(1) F6A11350 STO LOCTR F6A11360 ARG06 TXI ARG05,1,1 BUMP 9) TABLE COUNT TO NEXT ENTRY F6A11370 REM F6A11380 REM WRITE OUT AND CHECK FINAL PARTIAL CIT BUFFER F6A11390 LAC WRCIT+1,4 COMPUTE PARTIAL WORD COUNT F6A11400 SXD *+2,4 F6A11410 AXT CITSIZ+4,4 F6A11420 TXI *+1,4,** F6A11430 SXD IOCIT,4 INITIALIZE I/O COMMAND WORD COUNT F6A11440 LXA WRCI2+1,4 COMPUTE LOAD ADDRESS F6A11450 TXI *+1,4,-CITSIZ F6A11460 SXA IOCIT,4 INITIALIZE I/O COMMAND LOAD POINT F6A11470 TSX (TAPE),4 *WRITE FINAL PARTIAL BUFFER CONTENTS F6A11480 PZE IOCIT,,(WBNP) F6A11490 PZE CLABL,,COTTAP F6A11500 TSX (TAPE),4 *MARK END OF CIT FILE F6A11510 PZE ,,(WEFP) F6A11520 PZE CLABL,,COTTAP F6A11530 TSX (TAPE),4 *PREPARE FOR SECOND PASS F6A11540 PZE REWND,,(SKBP) F6A11550 PZE CLABL,,COTTAP F6A11560 CLA LOCTR SAVE CURRENT CONTENTS OF LOCATION COUNTER F6A11570 STO XPGBRK (NUMBER OF INSTRUCTIONS IN MAIN PROGRAM) F6A11580 LXD XPCD8L,3 LOAD COUNT OF TRANSFER VECTOR F6A11590 SXA XPCD7R,2 SET TENTATIVE ENTRY POINT IN PC 7R ADDRESSF6A11600 REM F6A11610 REM TRANSFER VECTOR, PROLOG AND INITIALIZATION RETAINED IN F6A11620 REM TABULAR FORM, AND DO NOT APPEAR ON THE CIT TAPE 4 F6A11630 SXA LOCTR,2 INITIALIZE PROGRAM COUNTER F6A11640 REM TO INSTRUCTION FOLLOWING TRANSFER VECTOR F6A11650 LDC XTEVTL,1 LOAD TEV TABLE LENGTH F6A11660 PXA ,1 COMPUTE ORIGIN FOR ARGUMENT LIST F6A11670 ADM ORGTEV F6A11680 STA ORGSUB F6A11690 NZT XPCD7L IS THIS A SUBPROGRAM F6A11700 TRA INIT5 NO F6A11710 TXI *+1,2,4 YES, UPDATE ENTRY POINT PAST F6A11720 SXA XPCD7R,2 NAME AND THREE XR STORAGE CELLS F6A11730 TXI *+1,2,3 UPDATE PROGRAM COUNTER PAST F6A11740 SXA LOCTR,2 THREE SAVE XR INSTRUCTIONS F6A11750 LXD ORGTIV,4 ARE THERE ANY ARGUMENTS F6A11760 TXL INIT3+5,4,0 NO F6A11770 SXD *+2,1 YES, INITIALIZE ARG TABLE OVERFLOW TEST F6A11780 LXD ENTEV+4,4 F6A11790 TXI *+1,4,** F6A11800 SXD ENART,4 F6A11810 INIT1 LXD ORGTIV,2 LOAD ARGUMENT LIST COUNT F6A11820 TSX GETRG,4 *GET NEXT ARGUMENT LIST ENTRY F6A11830 TRA INIT3 LIST EXHAUSTED F6A11840 REM THIS ARGUMENT IS USED IN SOURCE PROGRAM F6A11850 ARS 18 CONSTRUCT INITIALIZATION TABLE ENTRY F6A11860 ACL CLAOP CLA L F6A11870 TSX ENARG,4 *ENTER INTO INITIALIZATION TABLE F6A11880 INIT2 CLA* ORGTIV GET POSITION+1 OF ADDEND IN 9) TABLE F6A11890 TZE *+4 IS THERE AN ADDEND F6A11900 SUB L(1) YES, COMPUTE POSITION IN 9) TABLE F6A11910 ACL ADDOP CONSTRUCT TABLE ENTRY ADD M F6A11920 TSX ENARG,4 *ENTER INTO INITIALIZATION TABLE F6A11930 CLA* ORGTIV-1 GET LOCATION,,ARGUMENT NUMBER F6A11940 ANA ADMSK CONSTRUCT INITIALIZATION TABLE ENTRY F6A11950 ACL STAOP STA N F6A11960 TSX ENARG,4 *ENTER INTO INITIALIZATION TABLE F6A11970 TNX INIT3,2,2 IS ARGUMENT LIST EXHAUSTED F6A11980 TSX GETRG,4 *NO, GET NEXT ARGUMENT LIST ENTRY F6A11990 TRA INIT3 INITIALIZATION LIST EXHAUSTED F6A12000 TRA INIT2 NEXT ENTRY IS FOR THIS ARGUMENT NUMBER F6A12010 REM INITIALIZATION LIST EXHAUSTED. PREPARE TO SCAN FOR F6A12020 REM NEXT ARGUMENT NUMBER F6A12030 INIT3 LXD ARGNO,4 BUMP TO NEXT ARGUMENT NUMBER F6A12040 TXI *+1,4,1 F6A12050 SXD ARGNO,4 F6A12060 INITT TXL INIT1,4,** IS ARGUMENT NUMBER EXHAUSTED F6A12070 LXA ENARG,4 YES, COMPUTE TOTAL LENGTH OF F6A12080 SXD ORGSUB,4 TRANSFER VECTOR, PROLOG, INITIALIZATION F6A12090 INIT4 SXD *+2,4 F6A12100 LXA LOCTR,2 BUMP PROGRAM COUNTER BY LENGTH OF F6A12110 TXI *+1,2,** INITIALIZATION F6A12120 REM F6A12130 REM RELOCATE INTERNAL STATEMENT NUMBER, SUB INTERNAL F6A12140 REM STATEMENT NUMBER, UP BY LENGTH OF VECTOR, PROLOG, INIT F6A12150 INIT5 PXA ,2 COMPUTE INCREMENT F6A12160 STA ADDRS FOR TIV LOCATIONS IN LOWER MEMORY F6A12170 SUB L(1) CORRECT FOR NONEXECUTABLE STATEMNTS F6A12180 ALS 18 F6A12190 STO ERASE FOR IFN LOCATIONS F6A12200 PXA ,2 UPDATE LOWER PROGRAM COUNTER F6A12210 ADD XPGBRK F6A12220 STO LOCTR FOR TIV ERASABLE STORAGE ASSIGNMENTS F6A12230 LXD ORGIFN,4 LOAD COUNT OF IFN TABLE F6A12240 TXI *+1,4,-1 FORGET IFNMAX+1 F6A12250 CAL* ORGIFN PICK UP LOCATION FOR IFN F6A12260 ANA DECMK MASK IN LOCATION FOR IFN F6A12270 TZE *+3 IS IFN FOR NONEXECUTABLE STATEMENT F6A12280 ADD ERASE NO, INCREMENT BY LENGTH OF VECTOR, PROLOG F6A12290 STD* ORGIFN AND INITIALIZATION F6A12300 TIX *-5,4,1 IS IFN TABLE EXHAUSTED F6A12310 STZ ERASE YES F6A12320 CAL ORGTIV GET PRESENT ORIGIN OF TIV TABLE F6A12330 STA REL01 INITIALIZE COPY LOOP F6A12340 CAL ORGSUB GET ORIGIN OF ARGUMENT TABLE F6A12350 LXD ORGSUB,2 GET LENGTH OF ARGUMENT TABLE F6A12360 SXA ERASE,2 F6A12370 SUB ERASE RESERVE LAST UPPER TABLE STORAGE F6A12380 LXD XTIVTL,2 LOAD COUNT OF TIV TABLE F6A12390 SXA ERASE,2 F6A12400 ADD ERASE RESERVE TIV STORAGE F6A12410 STA REL05 F6A12420 SUB L(1) F6A12430 STA ORGTIV F6A12440 TXI *+1,2,1 BUMP TO LAST WORD IN TIV F6A12450 CLA T(1) ENTER A1 IN TIV F6A12460 ADD ADDRS WHICH MAY BE SLINT F6A12470 TXI REL05,2,1 F6A12480 REL01 CAL **,2 GET NEXT ENTRY IN TIV F6A12490 STA ERASE SAVE BLOCK LENGTH F6A12500 ARS 14 SHIFT OUT ADDRESS F6A12510 PDX ,1 GET FIRST CHARACTER F6A12520 PAX ,4 GET INCREMENT F6A12530 CAL* REL01 GET SYMBOL AGAIN F6A12540 TRA REL02,1 SORT OUT SYMBOLS F6A12550 TSX XERR00,4 *PROGRAM COUNTER (*) IN TIV TABLE F6A12560 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A12570 * THE INTERNAL SYMBOL FOR PROGRAM COUNTER (17)8 HAS BEEN F6A12580 * RECOGNIZED IN THE FIRST FOUR BITS AT ORGTIV,2. SECTION 6 F6A12590 * SHOULD NOT HAVE PUT IT THERE. F6A12600 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A12610 TRA REL02+2 E)N F6A12620 TRA REL02+2 D)N F6A12630 TRA REL04 C)N F6A12640 TRA REL02 B) F6A12650 TRA REL02 A)N F6A12660 TRA REL02 9) F6A12670 TRA REL02 8)N F6A12680 TRA REL04 7)N+M F6A12690 TRA REL02 6) F6A12700 TRA REL02 5) F6A12710 TRA REL03 4)N+M F6A12720 TRA REL02 3) F6A12730 TRA REL02 2) F6A12740 TRA REL04 1)N+M F6A12750 REL02 STA TIVCL NAM, SAVE LOCATION OF SYMBOL IN CIT FILE F6A12760 ZET TIVCL IS SYMBOL UNDEFINED F6A12770 ADD ADDRS NO, RELOCATE SYMBOL IN CIT FILE LENGTH OF F6A12780 TXI REL05,2,1 TRANSFER VECTOR PROLOG AND INITIALIZATION F6A12790 REL03 TXH REL04,4,0 IS SYMBOL 4)N F6A12800 ORA ADMSK NO, IT IS 4). SET ADDRESS TO TOP OF F6A12810 TXI REL05,2,1 MEMORY F6A12820 REL04 SLW* ORGTIV PACK IT AGAINST UPPER TABLES F6A12830 CLA LOCTR SET LOCATION OF ERASABLE TO CURRENT F6A12840 STA* ORGTIV CONTENTS OF PROGRAM COUNTER F6A12850 ADD ERASE BUMP PROGRAM COUNTER BY LENGTH OF F6A12860 ADD L(1) BLOCK RESERVED F6A12870 STO LOCTR F6A12880 TXI REL05+1,2,1 F6A12890 REL05 SLW **,2 RESET INCREMENTED LOCATION F6A12900 TXH REL01,2,0 IS TIV EXHAUSTED F6A12910 CLA LOCTR YES, SET ORIGIN OF TEV TO F6A12920 SUB L(1) TO LAST ASSIGNMENT MADE TO TIV F6A12930 STO XTEVBS F6A12940 LXD XTEVTL,1 BUMP PROGRAM COUNTER BY LENGTH OF TEV F6A12950 PXA ,1 F6A12960 ADD LOCTR F6A12970 STO LOCTR F6A12980 REM F6A12990 REM RELOCATE NON-COMMON STORAGE DOWN BELOW PROGRAM BREAK F6A13000 CLA UPCTR GET CELL BELOW LAST ASSIGNMENT MADE F6A13010 REM IN UPPER MEMORY F6A13020 ADD L(1) F6A13030 STO ERASE THIS IS LOCATION OF LOWEST STORAGE CELL F6A13040 SUB LOCTR GET CELL ABOVE LAST CELL ON STORAGE MAP F6A13050 STO ADDRS THIS IS LENGTH OF RELOCATION F6A13060 TPL *+2 DID ASSIGNMENT WRAP AROUND MEMORY F6A13070 TSX XERR04,4 *YES F6A13080 CLA XPCD8R NO, GET COMMON BREAK F6A13090 SUB UPCTR GET NUMBER OF VARIABLES TO BE RELOCATED F6A13100 ADD LOCTR ADD TO FIRST CELL INTO WHICH RELOCATED F6A13110 STA XPCD8L INSERT PROGRAM BREAK IN PC 8L ADDRESS F6A13120 SUB L(1) F6A13130 STO XPGBRK THIS IS TOP OF LOWER STORAGE F6A13140 LXD XDEVTL,2 GET COUNT OF DEV TABLE F6A13150 RLDEA LDI* ORGDEA GET NEXT ADDRESS IN DEA F6A13160 RFT 400000 IS IT FORSUB, CLUSUB, ARGUMENT NAME OR $ F6A13170 TRA RLDE1 YES F6A13180 PIA NO F6A13190 ANA ADMSK ISOLATE ADDRESS F6A13200 CAS XPCD8R IS IT BELOW COMMON F6A13210 TRA RLDE1 NO F6A13220 NOP YES F6A13230 SUB ADDRS YES, RELOCATE DOWNWARDS F6A13240 STA* ORGDEA F6A13250 RLDE1 TIX RLDEA,2,1 IS DEV TABLE EXHAUSTED F6A13260 TSX (LOAD),4 *CALL RECORD 31 F6A13270 PZE NOT USED F6A13280 REM F6A13290 TTL SUBROUTINES RELEVANT TO FIRST CIT PASS F6A13300 REM READ TAPE TABLE INTO LOWER MEMORY F6A13310 REM PARAMETER IS PRE ADDRS,TAG,DECREM F6A13320 REM WHERE PREFIX IS 4 IF NO TABLE IDENTIFICATION NUMBER F6A13330 REM 2 IF NO WORD COUNT F6A13340 REM 1 IF WORD COUNT IS IN ADDRESS F6A13350 REM 0 IF WORD COUNT IS IN DECREMENT F6A13360 REM DECREM IS TABLE IDENTIFICATION NUMBER (IF ANY) F6A13370 REM TAG IS NUMBER OF WORDS PRECEDING TABLE F6A13380 REM ADDRSS IS LOAD ADDRESS F6A13390 RDTAB SXA RDTBX,4 SAVE CALLING LINKAGE F6A13400 AXT TLABL-ASSLB,2 LOAD CURRENT TABLE INDEX F6A13410 CAL TAPAR,2 GET LOAD ADDRESS,,TABLE ID NUMBER F6A13420 STA ERASE INITIALIZE OVERFLOW TEST F6A13430 STA IOTAB+1 INITIALIZE TABLE LOAD ADDRESS F6A13440 ANA T(7) MASK IN PRETABLE WORD COUNT F6A13450 ALS 3 F6A13460 STD IOTAB INITIALIZE PRETABLE WORD COUNT F6A13470 PDC ,4 COMPUTE PRETABLE LOAD ADDRESS F6A13480 TXI *+1,4,IDENT+2 F6A13490 SXA IOTAB,4 INITIALIZE PRETABLE LOAD ADDRESS F6A13500 TSX (TAPE),4 *READ IN TAPE TABLE F6A13510 PZE IOTAB,,(RBNP) F6A13520 PZE TLABL,2,TABTAP F6A13530 TXH *+3,2,1 IS THIS FINAL REPOSITION F6A13540 STA *+4 YES, DELETE LABEL F6A13550 STT *+3 F6A13560 TSX (TAPE),4 *SKIP TO NEXT TABLE F6A13570 PZE SKLST,2,(SKBP) F6A13580 PZE TLABL+1,2,TABTAP F6A13590 CLA TAPAR,2 GET TABLE NUMBER F6A13600 TMI RDTB1 SHOULD TABLE NUMBER BE CHECKED F6A13610 PDX ,1 YES, PUT TABLE NUMBER IN ADDRESS F6A13620 PXA ,1 F6A13630 SUB IDENT IS TABLE NUMBER CORRECT F6A13640 TZE RDTB1 YES F6A13650 AXT -1,1 NO, LOAD TABLE LABEL FLAG F6A13660 TRA RDTRR F6A13670 RDTB1 LAC IOTAB+1,1 COMPUTE LENGTH OF TABLE F6A13680 SXD *+2,1 F6A13690 LXA (SCHU)+TABTAP,1 PICK UP TABLE LAST ADDRESS+1 F6A13700 TXI *+1,1,** REDUCE BY TABLE LOAD ADDRESS F6A13710 LDI TAPAR,2 LOAD WORD COUNT FLAG F6A13720 LFT 200000 SHOULD WORD COUNT BE CHECKED F6A13730 TRA RDTB2 NO F6A13740 PXD ,1 YES, PUT WORD COUNT IN DECREMENT F6A13750 LFT 100000 IS WORD COUNT IN ADDRESS F6A13760 PXA ,1 YES, PUT WORD COUNT IN ADDRESS INSTEAD F6A13770 SUB TABCT IS WORD COUNT CORRECT F6A13780 TZE RDTB2 YES F6A13790 AXT -2,1 NO, LOAD TABLE COUNT FLAG F6A13800 TRA RDTRR F6A13810 RDTB2 CLA (SCHU)+TABTAP GET ORIGIN AT END OF TABLE F6A13820 ANA ADMSK MASK IN ADDRESS F6A13830 CAS ADDRS DID TABLE OVERFLOW BUFFER SPACE F6A13840 TSX XERR03,4 *YES F6A13850 NOP MAYBE NOT F6A13860 CAS ERASE DID TABLE WRAP AROUND MEMORY F6A13870 NOP NO F6A13880 TXI *+2,2,-1 BUMP TABLE INDEX TO NEXT TABLE F6A13890 TSX XERR03,4 *YES F6A13900 SXA RDTAB+1,2 SAVE NEXT TABLE INDEX F6A13910 RDTBX AXT **,4 RELOAD CALLING LINKAGE F6A13920 TRA 1,4 F6A13930 REM ERROR ON TABLE TAPE F6A13940 RDTRR TSX (TAPE),4 *PRINT ERROR MESSAGE F6A13950 PZE *+1,1,(TPER) F6A13960 PZE TLABL,2,TABTAP F6A13970 BCI 1,LABEL F6A13980 BCI 1,COUNT F6A13990 REM F6A14000 IOTAB IOCP **,,** F6A14010 IORT **,,6001 F6A14020 REM F6A14030 ASSLP MZE **,1,65 ASSIGN F6A14040 MON **,1,66 FIXCON F6A14050 PZE **,2,13 HOLARG F6A14060 MON **,1,67 FLOCON F6A14070 PZE **,2,10 FORMAT F6A14080 FORLP MTW **,1,68 FORSUB F6A14090 MON **,2,69 SIZ F6A14100 MTW XSWCH1,0,70 END F6A14110 PZE **,2,11 SUBDEF F6A14120 PZE **,2,12 COMMON F6A14130 PZE **,2,0 EIF F6A14140 PZE **,2,8 EQUIV F6A14150 PZE **,2,9 CLOSUB F6A14160 TAPAR SYN * F6A14170 REM F6A14180 3LABL BCI 1,CITS05 F6A14190 CLABL BCI 1,CITS06 F6A14200 ELABL BCI 1,TEIFN6 F6A14210 ASSLB BCI 1,ASCON5 F6A14220 BCI 1,FIXCN3 F6A14230 BCI 1,HOLARG F6A14240 BCI 1,FLOCON F6A14250 BCI 1,FORMAT F6A14260 BCI 1,FORSUB F6A14270 BCI 1,SIZ F6A14280 BCI 1,END F6A14290 BCI 1,SUBDEF F6A14300 BCI 1,COMMON F6A14310 BCI 1,TEIFNO F6A14320 BCI 1,EQUIT F6A14330 BCI 1,CLOSUB F6A14340 TLABL SYN * F6A14350 REM F6A14360 BKSPC MZE 1,,0 F6A14370 MZE 1,,1 TO FIXCON (FILE 8 RECORD 1) F6A14380 MZE 11,,3 TO HOLARG (FILE 5 RECORD 4) F6A14390 MZE 3,,1 TO FLOCON (FILE 4 RECORD 1) F6A14400 PZE 0,,0 TO FORMAT (FILE 4 RECORD 2) F6A14410 MZE 1,,1 TO FORSUB (FILE 3 RECORD 1) F6A14420 PZE 2,,1 TO SIZ (FILE 4 RECORD 3) F6A14430 PZE 0,,1 TO END (FILE 5 RECORD 1) F6A14440 PZE 0,,0 TO SUBDEF (FILE 5 RECORD 2) F6A14450 PZE 0,,0 TO COMMON (FILE 5 RECORD 3) F6A14460 PZE 1,,0 TO EIF (FILE 5 RECORD 5) F6A14470 PZE 7,,0 TO EQUIV (FILE 5 RECORD 13) F6A14480 PZE 0,,0 TO CLOSUB (FILE 5 RECORD 14) F6A14490 REWND PZE ,,-1 TO SOURCE (FILE 1 RECORD 1) F6A14500 SKLST SYN * F6A14510 REM F6A14520 REM COMPILE CIT FOR FORTRAN CONSTANTS AND PROGRAM DATA F6A14530 CPCIT TXL CPCIX+1,1,0 IS TABLE EMPTY F6A14540 SXA CPCIX,4 NO, SAVE CALLING LINKAGE F6A14550 STA CPCI1 INITIALIZE ORIGIN AT END OF TABLE F6A14560 CAL TBSYM+8,2 SET INITIAL CIT SYMBOLIC LOCATION F6A14570 SLW CITSL F6A14580 CPCI1 CLA **,1 GET NEXT CONSTANT F6A14590 STO CITSA F6A14600 TSX TBCIT,4 *WRITE OUT COMPILED CIT F6A14610 STZ CITSL RESET SUBSEQUENT SYMBOLIC LOCATION F6A14620 TIX CPCI1,1,1 IS TABLE EXHAUSTED F6A14630 CPCIX AXT **,4 YES, RELOAD CALLING LINKAGE F6A14640 TRA 1,4 F6A14650 REM F6A14660 9)SYM BCI 1,900000 F6A14670 BCI 1,500000 F6A14680 BCI 1,200000 F6A14690 HLSYM BCI 1,=00000 F6A14700 BCI 1,300000 F6A14710 TBSYM BCI 1,600000 F6A14720 REM F6A14730 REM COMPILE CIT FOR BCD PROGRAM DATA F6A14740 CPBCD TXL CPBCX+1,1,0 IS TABLE EMPTY F6A14750 SXA CPBCX,4 NO, SAVE CALLING LINKAGE F6A14760 SXD CPBC2,1 SET END OF COMPILE LOOP TEST F6A14770 SUB L(1) F6A14780 STA CPBC1+1 INITIALIZE ORIGIN FOR BCD WORD F6A14790 SUB L(1) F6A14800 STA CPBC1+6 INITIALIZE ORIGIN FOR SYMBOL F6A14810 SUB L(1) F6A14820 STA CPBC1+3 INITIALIZE ORIGIN FOR FLAG F6A14830 CAL BCDOP SET CIT OP CODE TO BCD F6A14840 SLW CITOP F6A14850 CAL ALONE SET STOP PRECEDING TABLE F6A14860 SLW* CPBC1+1 F6A14870 AXT 1,1 START WITH LAST WORD IN TABLE F6A14880 CPBC1 STZ CITSL RESET CIT SYMBOLIC LOCATION F6A14890 CAL **,1 MOVE BCD WORD INTO SYMBOLIC ADDRESS F6A14900 SLW CITSA F6A14910 CAL **,1 IS THIS BEGIN STATEMENT FLAG F6A14920 ERA ALONE F6A14930 TNZ *+4 NO F6A14940 CAL **,1 YES, SET SYMBOLIC LOCATION TO M)N SYMBOL F6A14950 SLW CITSL F6A14960 TXI *+1,1,2 BUMP WORD COUNT PAST FLAG AND SYMBOL F6A14970 TSX TBCIT,4 *WRITE COMPILED CIT F6A14980 TXI *+1,1,1 BUMP WORD COUNT TO NEXT PRECEDING WORD F6A14990 CPBC2 TXL CPBC1,1,** IS TABLE EXHAUSTED F6A15000 CPBCX AXT **,4 YES, RELOAD CALLING LINKAGE F6A15010 TRA 1,4 F6A15020 REM F6A15030 REM MOVE 4-WORD CIT GENERATED BY TAPE TABLE CONSTANT INTO F6A15040 REM CIT BUFFER. WHEN BUFFER IS FILLED, WRITE OUT ON TAPE 3 F6A15050 REM AND CHECK FOR TAPE ERROR. THIS SUBROUTINE IS NOT DOUBLE F6A15060 REM BUFFERED F6A15070 TBCIT SXA TBCIX,4 SAVE CALLING LINKAGE F6A15080 AXT CITSIZ+4,4 LOAD BUFFER COUNT F6A15090 TIX TBCI3,4,4 IS BUFFER FILLED F6A15100 TSX (TAPE),4 *YES, WRITE BUFFER CONTENTS F6A15110 PZE IOCIT,,(WBNC) F6A15120 PZE 3LABL,,CITTAP F6A15130 AXT CITSIZ,4 RESET BUFFER COUNT F6A15140 TBCI3 AXT 4,2 PREPARE TO MOVE 4-WORD CIT F6A15150 CAL CITRA+1,2 MOVE NEXT WORD F6A15160 SLW* CITBF+1,2 TO OUTPUT BUFFER F6A15170 TIX *-2,2,1 HAVE ALL 4 WORDS BEEN MOVED F6A15180 SXA TBCIT+1,4 YES, SAVE BUFFER COUNT F6A15190 TBCIX AXT **,4 RELOAD CALLING LINKAGE F6A15200 TRA 1,4 F6A15210 REM F6A15220 IOCIT IORT BUFF3,,CITSIZ F6A15230 PZE BUFF3+CITSIZ,4 F6A15240 PZE BUFF3+CITSIZ+1,4 F6A15250 PZE BUFF3+CITSIZ+2,4 F6A15260 CITBF PZE BUFF3+CITSIZ+3,4 F6A15270 REM F6A15280 REM ASSIGN STORAGE FOR EQUIVALENCE SENTENCE F6A15290 SEQAS SXA SEQSX,4 SAVE CALLING LINKAGE F6A15300 AXT **,1 GET COUNT OF FIRST SYMBOL THIS SET F6A15310 STZ ERASE CLEAR WORKING CELL FOR MAXIMUM OVERHANG F6A15320 CLS* RGEQU+1 GET FIRST SUBSCRIPT THIS SENTENCE F6A15330 XCA F6A15340 SEQS1 CAL* RGEQU GET NEXT SYMBOL THIS SENTENCE F6A15350 TSX SSIZE,4 *GET -LENGTH OF THIS ARRAY F6A15360 ADM* RGEQU+1 GET ARRAY LENGTH OVER SUBSCRIPT F6A15370 CAS ERASE IS THIS OVERHANG GREATER F6A15380 TRA *+3 NO F6A15390 TRA *+2 NO F6A15400 STO ERASE YES, SAVE THIS OVERHANG INSTEAD F6A15410 CLS* RGEQU+1 GET CORRESPONDING SUBSCRIPT F6A15420 TPL SEQS2 IS THIS END OF SENTENCE F6A15430 TLQ *+2 NO, IS THIS SUBSCRIPT GREATER F6A15440 XCA YES, SAVE THIS SUBSCRIPT INSTEAD F6A15450 TIX SEQS1,1,2 IS EQUIVALENCE TABLE EXHAUSTED F6A15460 TSX XERR00,4 *YES, END OF SENTENCE FLAG MISSING F6A15470 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A15480 * SEE DISCUSSION OF SIMILAR ERROR AT EQCOM. F6A15490 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A15500 SEQS2 SSM CHANGE SIGN OF LAST SUBSCRIPT F6A15510 TLQ *+2 IS THIS SUBSCRIPT GREATER F6A15520 TRA *+2 YES F6A15530 XCA NO, GET LARGEST SUBSCRIPT F6A15540 REM AT END OF SCAN OF EQUIVALENCE SENTENCE, -GREATEST F6A15550 REM SUBSCRIPT IN SENTENCE IS IN AC. IF VARIABLE WITH LARGEST F6A15560 REM SUBSCRIPT IS ASSIGNED LOCATION OF UPPER COUNTER, ALL F6A15570 REM OTHER VARIABLES IN SENTENCE NEED BE ASSIGNED LOCATIONS F6A15580 REM LENGTH OF THEIR SUBSCRIPT ABOVE THIS BASE (AC). LARGEST F6A15590 REM OVERHANG OF ARRAY LENGTH OVER SUBSCRIPT (ABOVE BASE) IS F6A15600 REM IN ERASE. TOTAL STORAGE REQUIRED FOR THIS SENTENCE IS F6A15610 REM LARGEST SUBSCRIPT + LARGEST OVERHANG. F6A15620 ADD UPCTR REDUCE LOCATION COUNTER BY GREATEST F6A15630 STO UPCTR SUBSCRIPT AS BASE FOR ASSIGNING ADDRESS F6A15640 TPL *+2 DID ASSIGNMENT WRAP AROUND MEMORY F6A15650 TSX XERR04,4 *YES F6A15660 SXD SEQS4,1 NO, SAVE COUNT OF LAST SYMBOL THIS SET F6A15670 LXA SEQAS+1,1 GET COUNT OF FIRST SYMBOL THIS SENTENCE F6A15680 SEQS3 CLA UPCTR SET LOCATION ASSIGNED TO THIS SYMBOL F6A15690 ADM* RGEQU+1 LENGTH OF SUBSCRIPT ABOVE BASE (ARRAY F6A15700 ADD T(2) STORED BACKWARDS IN MEMORY) FLAGGED AS F6A15710 STO ADDRS ALLOWABLE IN SYMBOL TABLE F6A15720 CAL* RGEQU GET CORRESPONDING SYMBOL F6A15730 TSX XSRDEV,4 *IS SYMBOL IN DEV F6A15740 TSX ENDEV,4 *NO, ENTER IT INTO DEV F6A15750 TRA *+2 F6A15760 TSX XERR00,4 *YES, EQUIV NAME TWICE IN EQUIV TABLE F6A15770 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A15780 * THE EQUIVALENCE TABLE HAS BEEN PREPARED BY SECTION 1 AND F6A15790 * ALL REDUNDANCIES REMOVED BY SECTION 1P. SECTION 6 READ ITF6A15800 * FROM FILE 5 RECORD 13 LOGICAL TAPE 2, AND HAS ENTERED F6A15810 * INTO DEV THE COMPLETE SENTENCE IN WHICH THE SYMBOL STOREDF6A15820 * IN LOCATION SYMBL APPEARED. SECTION 6 HAS DETERMINED THATF6A15830 * THIS SENTENCE IS NOT IN DEV, AS THE FIRST SYMBOL IN THE F6A15840 * SENTENCE WAS NOT RECOGNIZED IN DEV. NO SUBSEQUENT SYMBOL F6A15850 * IN THE ENTIRE SENTENCE SHOULD BE RECOGNIZED IN DEV. THE F6A15860 * EQUIVALENCE VARIABLE NAME IN RGEQU,1 IS A MAVERICK. F6A15870 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *F6A15880 SEQS4 TXL *+2,1,** IS SENTENCE EXHAUSTED F6A15890 TXI SEQS3,1,-2 NO, BUMP TO NEXT SYMBOL F6A15900 CLA UPCTR REDUCE UPPER LOCATION COUNTER BY GREATEST F6A15910 SBM ERASE OVERHANG, RESERVING TOTAL BLOCK OF F6A15920 STO UPCTR STORAGE REQUIRED BY THIS SENTENCE F6A15930 TPL *+2 DID ASSIGNMENT WRAP AROUND MEMORY F6A15940 TSX XERR08,4 *YES F6A15950 SEQSX AXT **,4 RELOAD CALLING LINKAGE F6A15960 TRA 9,4 F6A15970 REM F6A15980 REM FIND LENGTH OF ARRAY FOR VARIABLE NAME F6A15990 SSIZE SXA SSIZX,1 SAVE TABLE COUNT F6A16000 LXD RGSIZ,1 GET SIZ TABLE COUNT F6A16010 TXL *+5,1,0 IS SIZ TABLE EMPTY F6A16020 LAS* RGSIZ NO, IS VARIABLE NAME OF AN ARRAY F6A16030 TRA *+2 NO F6A16040 TRA *+4 YES F6A16050 TIX *-3,1,2 IS SIZ TABLE EXHAUSTED F6A16060 CLS L(1) YES, SET ARRAY LENGTH TO 1 F6A16070 TRA SSIZX F6A16080 CLS* RGSIZ+1 GET -ARRAY LENGTH F6A16090 SSIZX AXT **,1 RELOAD TABLE COUNT F6A16100 TRA 1,4 F6A16110 REM F6A16120 REM ADD SYMBOL NAME AND FLAG TO MULTIPLY DEFINED ERROR LIST F6A16130 REM FLAG ERROR F6A16140 REM 1 ARGUMENT F6A16150 REM 2 ARITHMETIC STATEMENT FUNCTION F6A16160 REM 3 TRANSFER VECTOR (SUBSCR VAR NOT IN DIM) F6A16170 REM 4 SUBROUTINE NAME F6A16180 REM 5 TRANSFER VECTOR NAME USED AS VARIABLE F6A16190 SMDER AXT **,2 LOAD ERROR LIST COUNT F6A16200 STO ERLST+1,2 INSERT FLAG IN SECOND WORD F6A16210 CAL XSYMBL GET MULTIPLY DEFINED SYMBOL NAME F6A16220 SLW ERLST,2 INSERT SYMBOL IN FIRST WORD F6A16230 TXI *+1,2,-2 BUMP ERROR LIST COUNT F6A16240 TXH *+3,2,-2*CITSIZ WILL ERROR LIST OVERFLOW BUFFER F6A16250 AXT ERLST,1 YES, LOAD ORIGIN OF ERROR LIST F6A16260 TSX XERR06,4 *COUNT OF ERRORS IS IN XR2 F6A16270 SXA SMDER,2 NO, SAVE ERROR LIST COUNT F6A16280 CLA WRCIX+1 BYPASS CIT OUTPUTROUTINE F6A16290 STO WRCIT TO PRESERVE ERROR LIST F6A16300 TRA 1,4 F6A16310 REM F6A16320 REM MOVE 4-WORD CIT FROM TAPE 3 BUFFER TO WORKING AREA. F6A16330 REM INITIALLY, BUFFER 1 IS FILLED, CHECKED FOR TAPE ERROR, F6A16340 REM AND BUFFER 2 FILLED WITH NEXT RECORD. ERROR ON OR END F6A16350 REM FILE ON SUCCESSIVE BUFFERS ARE NOT TESTED UNTIL PRIOR F6A16360 REM BUFFER IS EXHAUSTED. F6A16370 RDCIT SXA RDCIX,4 SAVE CALLING LINKAGE F6A16380 AXT **,4 GET CIT COUNT F6A16390 TIX RDCI2,4,4 IS BUFFER EXHAUSTED F6A16400 AXT 1,2 YES, SET BUFFER 1 SWITCH F6A16410 TXL *+2,,0 IS BUFFER 1 NEXT F6A16420 AXT 2,2 NO, SET BUFFER 2 SWITCH INSTEAD F6A16430 CLS *-2 RESET BUFFER SWITCH F6A16440 STO *-3 F6A16450 TXH *+5,4,0 IS THIS FIRST RECORD F6A16460 TSX (TAPE),4 *YES, READ FIRST CIT RECORD F6A16470 PZE RDCBF,2,(RBEP) F6A16480 PZE 3LABL,,CITTAP F6A16490 PZE CITRR F6A16500 TSX (TAPE),4 *READ NEXT CIT RECORD F6A16510 PZE RDCBF+1,2,(RBEP) F6A16520 PZE 3LABL,,CITTAP F6A16530 PZE CITRR F6A16540 REM COMPUTE WORD COUNT AND INITIALIZE BUFFERS F6A16550 CLA RDCBF,2 INITIALIZE WORD COUNT COMPUTATION F6A16560 PAC ,4 F6A16570 SXD RDCI1,4 F6A16580 LXA (SCHU)+CITTAP,4 GET LOCATION OF LAST+1 WORD IN CIT BLOCK F6A16590 TXL RDCI3,4,0 WAS END FILE SENSED F6A16600 SXA RDCI2,4 NO, INITIALIZE MOVE LOOP F6A16610 TXI *+1,4,1 F6A16620 SXA RDCI2+2,4 F6A16630 TXI *+1,4,1 F6A16640 SXA RDCI2+4,4 F6A16650 TXI *+1,4,1 F6A16660 SXA RDCI2+6,4 F6A16670 TXI *+1,4,-3 F6A16680 RDCI1 TXI *+1,4,** F6A16690 TXL RDCI2,4,CITSIZ IS RECORD TOO LONG F6A16700 AXT -1,2 YES, SET CIT COUNT SWITCH F6A16710 TRA RDCRR+1 F6A16720 REM MOVE CIT FROM CIT BUFFER TO WORKING BUFFER F6A16730 RDCI2 CAL **,4 F6A16740 SLW CITSL F6A16750 CAL **,4 F6A16760 SLW CITOP F6A16770 CAL **,4 F6A16780 SLW CITSA F6A16790 CAL **,4 F6A16800 SLW CITRA F6A16810 SXA RDCIT+1,4 SAVE CIT INPUT BUFFER COUNT F6A16820 RDCIX AXT **,4