32K 709/7090 FORTRAN ASSEMBLY PROGRAM - MACRO-FAP
$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 ASSEMBLY PROGRAM MACRO-FAP F0D00000
* FAP F0D00010
* 32K 709/7090 FORTRAN ASSEMBLY PROGRAM MACRO-FAP F0D00020
COUNT 10000 F0D00030
TITLE F0D00040
ABS F0D00050
SST FORTRAN $F0D00060
HEAD 4,5 COMMON TO PASS ONE AND TWO F0D00070
REM PARAMETERS VARIABLE AT ASSEMBLY TIME F0D00080
REM F0D00090
INPREM SYN 0 NUMBER OF WORDS PRECEDING PACKED RECORD F0D00100
INPRCL SYN 16 LENGTH OF INTERMEDIATE RECORD F0D00110
INPBKL SYN 16*INPRCL+INPREM LENGTH OF PACKED INTERMEDIATE BUFFER F0D00120
UPDRCL SYN 14 LENGTH OF UPDATE INPUT/OUTPUT RECORD F0D00130
UPDBKL SYN 16*UPDRCL LENGTH OF UPDATE INPUT/OUTPUT BUFFER F0D00140
TOPTAB SYN BOTIOP-1 TOP OF AVAILABLE TABLE BUFFERS F0D00150
BOTBUF SYN TOPTAB-6*UPDBKL-2*INPBKL-214 F0D00160
BOTTAB SYN BOTTOM+7900 LOWER LIMIT FOR DATA TABLE SPACE F0D00170
REM F0D00180
M SYN 1 TABLE FACTORS F0D00190
N SYN 1 F0D00200
LOPTBM SYN 2048 MAXIMUM LENGTH OF MACHINE OPERATION TABLE F0D00210
LMXTBL SYN 1000*M/N MACRO EXPANSION TABLE LENGTH F0D00220
LLITBL SYN 500*M/N*2 LITERAL TABLE LENGTH F0D00230
LTVTBL SYN 250*M/N TRANSFER VECTOR TABLE LENGTH F0D00240
LSMTBM SYN BOTBUF-LLITBL-LTVTBL-BOTTAB F0D00250
REM MAXIMUM LENGTH OF SYMBOL AND REF TABLES F0D00260
LUDTBM SYN LSMTBM/100 MAXIMUM LENGTH OF UNDEFINED SYMBOL TABLE F0D00270
REM F0D00280
REM F0D00290
T EQU 16 MAXIMUM NUMBER OF LOGICAL TAPES IN SYSTEM F0D00300
C EQU 4 MAXIMUM NUMBER OF DATA CHANNELS IN SYSTEM F0D00310
REM C MUST BE A MULTIPLE OF 2 F0D00320
REM F0D00330
EXPRR SYN 1 SENSE LIGHT FOR ERROR ON EXPRESSION F0D00340
EXPND SYN 2 SENSE LIGHT FOR END OF EXPRESSION F0D00350
FLDND SYN 4 SENSE LIGHT FOR END OF VARIABLE FIELD F0D00360
REM F0D00370
TDMSK BOOL 000001 FLAG FOR TYPE D SENSE OPERATION F0D00380
VLMSK BOOL 000002 FLAG FOR VARIABLE LENGTH OPERATION F0D00390
TKMSK BOOL 000004 FLAG FOR TYPE K DISC COMMAND F0D00400
9OMSK BOOL 020000 FLAG FOR OPERATIONS RESTRICTED TO 709/90 F0D00410
04MSK BOOL 040000 FLAG FOR OPERATIONS RESTRICTED TO 704 F0D00420
TTL COMMON SUBROUTINES, CONSTANTS AND ERASABLE F0D00430
LBL 9F04,X F0D00440
ORG SYSCUR $F0D00450
BCI 1,9F0400 $F0D00460
ORG (LODR) $F0D00470
TXI START,,40 ENTRY POINT,,RECORD NUMBER F0D00480
REM F0D00490
ORG BOTTOM-7 LOAD INFORMATION FOR MACHINE ERROR RECORD $F0D00494
PZE INRECT+1,,4 ORIGIN OF REC. COUNT TABLE,,LENGTH $F0D00495
REM F0D00500
ORG BOTTOM F0D00520
REM F0D00530
REM TRANSFER VECTOR F0D00540
REM F0D00550
CHANS PZE C NUMBER OF CHANNELS IN SYSTEM F0D00560
SYSAST PZE T NUMBER OF TAPES ASSIGNED TO SYSTEM F0D00570
SYSTPS PZE 7 NUMBER OF TAPES RESERVED TO MONITOR $F0D00580
REM F0D00590
REM ERASABLE INFORMATION TRANSMITTED BETWEEN PASSES F0D00600
MAINPF PZE ,,1 FLAG FOR MAIN PROGRAM (ZERO IF SUBPROGRAM)F0D00610
ABSFLG PZE ** FLAG FOR ABSOLUTE ASSEMBLY F0D00620
ONLCFG PZE ** FLAG FOR ONLINE COLUMN BINARY CARDS F0D00630
OFLCFG PZE ** FLAG FOR OFFLINE COLUMN BINARY CARDS F0D00640
CRDFLG PZE ** FLAG FOR ONLINE CARDS F0D00650
LBLFLG PZE ** FLAG FOR OFFLINE CARD LABEL AND SERIAL F0D00660
IPTFLG PZE ** FLAG FOR UPDATE INPUT TAPE F0D00670
OPTFLG PZE ** FLAG TO WRITE UPDATE OUTPUT TAPE F0D00680
PAKFLG PZE **,,** FLAG TO UNPACK UPDATE OUTPUT TAPE F0D00690
DELFLG PZE ** FLAG TO DELETE ASSEMBLY F0D00700
SEPFLG SVN -1,-1,-1 FLAG FOR STANDARD ERROR PROCEEDURE F0D00710
REM SET TO PZE BY 9F04FLOW F0D00720
REM TO DELETE STANDARD ERROR PROCEDURE F0D00730
LITSIZ PZE 22,,** LOG LLITBL,,LITERAL TABLE COUNT F0D00740
REM (LITERAL TABLE LIMITED TO 1024 ENTRIES) F0D00750
PRGBK PZE ** CURRENT PROGRAM BREAK F0D00760
PROLG PZE ** LENGTH OF VECTOR, LINKAGE DIRECTOR F0D00770
REM F0D00780
REM ERASABLE INFORMATION RESET BETWEEN PASSES F0D00790
CHRCTR PZE NEXT CHARACTER IN VARIABLE FIELD F0D00800
RESIDU PZE REMAINDER OF NEXT WORD IN VARIABLE FIELD F0D00810
UPCTR PZE -207,,2 COMMON STORAGE COUNTER,,RELOCATION BIT F0D00820
CDCTR PZE ** ABS CARD ORIGIN COUNTER F0D00830
LOCTR PZE **,,1 PROGRAM COUNTER,,RELOCATION BIT F0D00840
ADDRS PZE **,,1 DEFINITION OF SYMBOL,,RELOCATABLE FLAG F0D00850
OPCOD PZE OP FIELD (CC 8 - 13) F0D00860
DEC ,,,,,,,,, MULTIPLE HEAD CHARACTERS (PRECEDE BHEAD) F0D00870
BHEAD PZE HEADING CHARACTER F0D00880
THEAD PZE HEADING CHARACTER PRECEDING $ F0D00890
SYMB2 PZE HIGH ORDER SIX CHARACTRS ALPHAMERIC FIELD F0D00900
SYMBL PZE LOW ORDER SIX CHARACTERS ALPHAMERIC FIELD F0D00910
VFDFL PZE LOW ORDER HALF OF VARIABLE FIELD F0D00920
PZE HIGH ORDER HALF OF VARIABLE FIELD F0D00930
BINRY PZE 36 BIT BINARY INSTRUCTION, DATA WORD F0D00940
NERAS PZE INTEGER FIELD F0D00950
XERAS PZE EXPONENT (E) FIELD F0D00960
BERAS PZE BINARY (B) FIELD F0D00970
ERASE PZE GENERAL ERASABLE F0D00980
OFLGS PZE FLAGS FOR DECODING OF MACHINE INSTRUCTION F0D00990
VRFLD PZE **,,** CHARACTER COUNT,,WORD COUNT F0D01000
INDFG PZE ** FLAG FOR INDIRECT ADDRESS OP CODE F0D01010
RBITS PZE ** RELOCATION BITS FOR FIELD F0D01020
INDIC PZE **,,** RELOCATION BITS FOR WORD F0D01030
DUPCT PZE ,,** NUMBER OF ITERATIONS IN RANGE OF DUP CARD F0D01040
PZE ** PROGRAM COUNTER AT ENTRY INTO RANGE F0D01050
PZE ** CARD COUNTER AT ENTRY INTO RANGE F0D01060
DUPFG PZE ** FLAG TO UNBLOCK INTERMEDIATE TAPE F0D01070
SKDUP MZE ** RANGE OF DUP TO BE BACKSPACED F0D01080
TVFLG PZE ** FLAG FOR NAME IN TRANSFER VECTOR F0D01090
OPRFG PZE ** FLAG FOR UNDEFINED OPERATION F0D01100
VFDRB PZE ** NUMBER OF BITS REMAINING IN WORD F0D01110
VFDTB PZE ** TOTAL BIT COUNT IN VAR FIELD OF VFD CARD F0D01120
VFDFB PZE ** FIELD BIT COUNT IN VAR FIELD OF VFD CARD F0D01130
ELMEQ PZE ** VALUE OF ELEMENT F0D01140
ELMUN PZE ** NUMBER OF SYMBOLS IN ELEMENT F0D01150
ELMUF PZE ** FLAG FOR SYMBOLS IN ELEMENT F0D01160
REM 0 ABSOLUTE F0D01170
REM -1 COMMON F0D01180
REM +1 RELOCATABLE F0D01190
TRMEQ PZE ** VALUE OF TERM F0D01200
TRMUN PZE ** NUMBER OF SYMBOLS IN TERM F0D01210
TRMUF PZE ** FLAG FOR SYMBOLS IN TERM F0D01220
VAREQ PZE ** VALUE OF EXPRESSION F0D01230
VARUC PZE ** NUMBER OF COMMON SYMBOLS IN EXPRESSION F0D01240
VARUR PZE ** NUMBER OF RELOCATABLE SYMBOLS IN EXPRSSN F0D01250
LINKG PZE ** LOCATION OF LINKAGE DIRECTOR F0D01260
9LPMD PZE ** FLAG FOR BINARY CONTROL CARD FORMAT F0D01270
FULMD PZE ** FLAG FOR BINARY CARD FUL FORMAT F0D01280
BOLMD PZE ** FLAG FOR BOOLEAN FIELD F0D01290
DUPMD PZE ** FLAG FOR RECORD WITHIN RANGE OF DUP F0D01300
ETCMD PZE ** FLAG FOR FOLLOWING CARD A CALL OR VFD ETC F0D01310
FCFLG PZE ** FLAG FOR FIRST CARD GROUP COMPLETED F0D01320
SCNBC PZE ** FLAG FOR BOOLEAN COM F0D01330
SCNBE PZE ** FLAG FOR BOOLEAN ERA F0D01340
SCNFC PZE ** FLAG FOR FIRST CHARACTER IN ELEMENT F0D01350
VFDPF PZE ** MEDAL FOR 36 BIT VFD F0D01360
VFDMD PZE ** FLAG FOR VFD CARD F0D01370
VFDHF PZE ** HOLLERITH FIELD FLAG F0D01380
VFDOF PZE ** OCTAL FIELD FLAG F0D01390
NOGOF PZE ** FLAG FOR ASSEMBLY ERROR F0D01400
TYPAF PZE ** FLAG FOR TYPE A 0 00000 0 00000 INSTRUCTN F0D01410
TYPCF PZE ** FLAG FOR TYPE C VARIABLE LENGTH INSTRUCTN F0D01420
REM OR TYPE K WITH HIGH ORDER COUNT FIELD F0D01430
TYPDF PZE ** FLAG FOR TYPE D 0 00000 000000 INSTRUCTN F0D01440
TYPKF PZE ** FLAG FOR TYPE K 00 0000 0 00000 COMMAND F0D01450
OPFLG PZE ** FLAG FOR OP DEFINITION PSEUDOOPERATION F0D01460
UNL1F PZE ** PRELIMINARY FLAG TO SUSPEND LISTING F0D01470
UNLSF PZE ** FLAG TO SUSPEND LISTING F0D01480
TITLF PZE ** FLAG TO SUSPEND LISTING OF GENERATED DATA F0D01490
LBLFG PZE ** BINARY CARD NUMBER LISTING FLAG F0D01500
PRTFG PZE ** FLAG FOR ONLINE PRINTING OF ONE LINE F0D01510
PRTF1 PZE ** PRELIMINARY FLAG FOR ONLINE PRINT F0D01520
DCNFG PZE ** FLAG FOR DECIMAL POINT IN DECCV F0D01530
DCXFG PZE ** FLAG FOR DECIMAL EXPONENT (E) IN DECCV F0D01540
DCBFG PZE ** FLAG FOR BINARY EXPONENT (B) IN DECCV F0D01550
PRTIF PZE ** FLAG FOR MACHINE INSTRUCTION IN PRINT F0D01560
704FG PZE ** FLAG FOR ASSEMBLY IN 704 MODE F0D01570
ORDRF PZE ** FLAG FOR INPUT CARD OUT OF ORDER F0D01580
TTLFG PZE -1 FLAG TO PRINT SUBHEAD (PRESET FOR PASS 1) F0D01590
P1FLG PZE ** PASS 1 FLAGS TRANSMITTED TO PASS 2 F0D01600
REM AS LOW ORDER 18 BITS OF WORD 14 $F0D01610
REM BIT 35 PHASE ERROR F0D01620
REM 34 FOLLOWING CARD IS ETC F0D01630
REM 33 FIELD ERROR F0D01640
REM 32 LITERAL ERROR F0D01650
REM 31 UNRECOGNIZED PSEUDOOP F0D01660
REM 30 MACRO GENERATED CARD F0D01670
REM 29 MISSING PSEUDOOP VARIABLE FIELD F0D01680
REM 18 - 27 MACRO LEVEL NUMBER $F0D01690
REM F0D01700
REM FLAGS FOR ERRORS ON INPUT CARDS F0D01710
DCPFG PZE ** FLAG FOR EXCESS DECIMAL POINT $F0D01720
DCEFG PZE ** FLAG FOR EXCESS EXPONENT (E) $F0D01721
DC2FG PZE ** FLAG FOR EXCESS EXPONENT (B) $F0D01722
ERFDL PZE ** IMPROPER DOLLAR SIGN $F0D01723
ERRFU PZE ** UNDEFINED SYMBOL F0D01730
ERRFM PZE ** MULTIPLY DEFINED SYMBOL F0D01740
ERRFR PZE ** RELOCATION ERROR F0D01750
ERRFP PZE ** PHASE ERROR F0D01760
ERRFL PZE ** LITERAL ERROR F0D01770
ERRFO PZE ** ILLEGAL OPERATION CODE F0D01780
ERRFE PZE ** VACUUM CLEANER F0D01790
ERRFB PZE ** BOOLEAN (OCTAL) ERROR F0D01800
REM FOLLOWING ERRORS ARE NON FATAL F0D01810
ERRFN PZE ** IMPROPER OP CODE F0D01820
ERR49 PZE ** MIXED MODE OPCODE F0D01830
ERRFA PZE ** MISSING ADDRESS F0D01840
ERRFT PZE ** MISSING TAG F0D01850
ERRFD PZE ** MISSING DECREMENT F0D01860
ERRFI PZE ** IMPROPER INDIRECT ADDRESS F0D01870
ERRFF PZE ** EXCESSIVE FIELD F0D01880
ERFFM PZE ** NON-FATAL MULTIPLY DEFINED SYMBOL F0D01890
EFLST PZE *-ERRFN,,*-ERFDL NONFATAL LIST,,LENGTH OF ERROR LIST $F0D01900
REM ADDITIONAL INFORMATION TRANSMITTED BETWEEN PASSES $F0D01901
REM $F0D01902
EVNFLG PZE ** FLAG FOR EVEN CONTAINED IN PROGRAM $F0D01903
REM $F0D01904
REM ERROR CHARACTERS F0D01910
DEC , PATCH SPACE $F0D01920
BCI 1,$ $F0D01921
BCI 1,U F0D01930
BCI 1,M F0D01940
BCI 1,R F0D01950
BCI 1,P F0D01960
BCI 1,L F0D01970
BCI 1,O F0D01980
BCI 1,E F0D01990
BCI 1,B F0D02000
REM FOLLOWING ERRORS ARE NONFATAL F0D02010
BCI 1,N F0D02020
FLG49 BCI 1,4 RESET TO 9 FOR 704 MODE CHANGE F0D02030
BCI 1,A F0D02040
BCI 1,T F0D02050
BCI 1,D F0D02060
BCI 1,I F0D02070
BCI 1,F F0D02080
BCI 1,M F0D02090
EFCHR SYN * F0D02100
REM F0D02110
REM F0D02120
PGHDNG BCI 8,1 F0D02130
BCI 8, F0D02140
BCI 2, PAGE 1 F0D02150
REM F0D02160
BLANKS BCI 3, F0D02170
BCI 5,PREPROCESSOR UPDATE PROGRAM F0D02180
BCI 6, F0D02190
REM F0D02200
PBUFF1 MZE ,,4 PUNCH OUTPUT BUFFER F0D02210
DEC ,,,,,,,,,,,,,,,,,,,,,, F0D02220
IDBUFF DEC ,,, CARD SERIAL BUFFER + ONE WORD SKEW SPACE F0D02230
REM F0D02240
REM BCD CARD BUFFERS F0D02250
REM F0D02260
PFLAG DEC ERROR FLAGS F0D02270
REM OCTAL EXPANSION OF MACHINE INSTRUCTION(23)F0D02275
OCTAL DEC ,,, (27)F0D02280
REM (THIS BUFFER MUST PRECEDE BCDBF) F0D02290
BCDBF DEC ,,,,,,,,,,,,, SOURCE DECK WORKING BUFFER F0D02300
LITRL DEC VALUE OF LITERAL OR PSEUDOOP DEFINITION F0D02310
OPBIN DEC BINARY INSTRUCTION, PSEUDOOP TRANSFER F0D02320
REM (LITRL AND OPBIN MUST FOLLOW BCDBF) F0D02330
REM F0D02340
INSBF BCI 9, F0D02350
BCI 8, INSERTED F0D02360
REM F0D02370
DELBF BCI 9, F0D02380
BCI 8, THE FIRST CARD IN THIS DECK IS DELETED F0D02390
REM F0D02400
ORDBF BCI 9, F0D02410
BCI 9, ORDER ERROR F0D02420
REM F0D02430
REM F0D02440
REM COMMON ROUTINES F0D02450
REM F0D02460
REM WRITE LINE ON AND OFF LINE F0D02470
REM CALL IS TSX FPRINT,4 F0D02480
REM PZE FWORD,,COUNT F0D02490
REM (MZE FWORD,,COUNT FORCE PRINTING) F0D02500
REM ( ,,0 BLANK LINE) F0D02510
FPRINT SXA FPRNX,4 SAVE CALLING LINKAGE F0D02520
SXA FPRNX+1,2 SAVE WORD COUNT F0D02530
SXA FPRNX+2,1 SAVE CHARACTER COUNT F0D02540
CLA 1,4 LOAD PARAMETER F0D02550
STA FPRN2 INITIALIZE I/O COMMAND F0D02560
STD FPRN2 F0D02570
PDX ,2 LOAD WORD COUNT F0D02580
PAGCNT AXT **,1 LOAD PAGE LINE COUNT (20)F0D02590
PAGENO AXT **,4 LOAD PAGE NUMBER (20)F0D02600
TXH FPRN0,2,0 IS BLANK LINE REQUESTED $F0D02610
LDQ IOBLK YES,LOAD PARAMETER FOR BLANK LINE $F0D02620
STQ FPRN2 INITIALIZE I/O COMMAND $F0D02630
TXL FPRN0,1,0 IS BLANK LINE AT TOP OF PAGE (20)F0D02640
TXH FPRN0,1,4 IS BLANK LINE AT BOTTOM OF PAGE (20)F0D02650
ZSA PAGCNT YES, EJECT PAGE (20)F0D02660
TXH FPRNX,4,0 TRANSFER IF NOT FIRST PAGE (20)F0D02670
REM LINE IS NOT BLANK,OR NOT AT BOTTOM OF PAGE (20)F0D02680
FPRN0 TPL *+2 IS THIS LINE FORCED (20)F0D02690
STL PRTF1 YES,SET FLAG (20)F0D02700
TIX FPRN1,1,1 IS PAGE FULL (20)F0D02710
TXI *+1,4,1 YES, BUMP PAGE NUMBER (20)F0D02720
SXA PAGENO,4 (20)F0D02730
PXA ,4 LOAD NEW PAGE NUMBER F0D02740
TSX BCDCV,4 *CONVERT TO BCD F0D02750
LDQ BLANKS APPEND FOLLOWING BLANKS F0D02760
LGR 6 LEFT ADJUST F0D02770
TNZ *-1 F0D02780
STQ PGHDNG+17 INSERT IN PAGE HEADING F0D02790
TSX WRITT,4 *WRITE PAGE HEADING F0D02800
IOCD PGHDNG,,18 F0D02810
NZT TTLFG IS SUBTITLE SPECIFIED F0D02820
TRA *+3 NO F0D02830
TSX WRITT,4 *YES, WRITE IT F0D02840
IOHED IOCD BLANKS,,14 F0D02850
TSX WRITT,4 *WRITE BLANK LINE F0D02860
IOBLK IOCD BLANKS,,3 F0D02870
CLA (PGCT) RESET LINE COUNT F0D02880
PDX ,1 F0D02890
ZET TTLFG IS SUBTITLE SPECIFIED F0D02900
TXI *+1,1,-1 YES, BUMP PAGE LINE COUNT DOWN ONE F0D02910
TRA PATCH $F0D02920
FPRN1 CLA PRTF1 NO, SET ONLINE PRINT FLAG F0D02930
STO PRTFG F0D02940
STZ PRTF1 RESET INTERMEDIATE FLAG F0D02950
TSX FPRNA,4 *TEST FOR PRINT CONTROL, SET XR4 $F0D02960
FPRN2 IOCD **,,** F0D02970
SXA PAGCNT,1 SAVE PAGE LINE COUNT F0D02980
FPRNX AXT **,4 RELOAD CALLING LINKAGE F0D02990
AXT **,2 RELOAD WORD COUNT F0D03000
AXT **,1 RELOAD CHARACTER COUNT F0D03010
TRA 2,4 F0D03020
REM F0D03030
REM BLOCK LISTING OUTPUT TAPE F0D03040
WRITT SXA WRITX,4 SAVE CALLING LINKAGE F0D03050
SXA WRITX+1,2 SAVE WORD COUNT F0D03060
SXA WRITX+2,1 SAVE LINE COUNT F0D03070
AXT **,1 LOAD BLOCK WORD COUNT F0D03080
LAC WRBLK+1,2 LOAD BUFFER INDEX F0D03090
TXL *+4,1,0 IS THIS FIRST LINE IN BLOCK F0D03100
CAL RECMK NO, INSERT RECORD MARK F0D03110
SLW* BCD14+1,2 FOLLOWING LAST WORD OF PREVIOUS LINE F0D03120
TXI *+1,1,-1 BUMP COUNT TO NEXT WORD IN BLOCK F0D03130
CAL 1,4 LOAD PARAMETER F0D03140
STO WRIT1+2 INITIALIZE PRINT I/O PARAMETER F0D03150
PDX ,4 LOAD WORD COUNT F0D03160
SXA XERAS,4 F0D03170
ADM XERAS COMPUTE ORIGIN AT END OF BUFFER F0D03180
STA *+1 INITIALIZE COPY LOOP F0D03190
CAL **,4 MOVE NEXT WORD F0D03200
SLW* BCD14+1,2 INTO OUTPUT BUFFER F0D03210
TXI *+1,1,-1 BUMP TO NEXT WORD IN BLOCK F0D03220
TIX *-3,4,1 IS LINE COMPLETE F0D03230
SXA WRITT+3,1 YES, SAVE BLOCK WORD COUNT F0D03240
WRIT0 AXT **,4 BUMP BLOCK LINE COUNT F0D03250
TXI *+1,4,1 F0D03260
SXA WRIT0,4 F0D03270
TXH *+2,4,-1 IS LISTING TAPE TO BE UNBUFFERED F0D03280
TXL *+2,4,4 NO, IS BLOCKED BUFFER FULL F0D03290
TSX WRBLK,4 *YES, WRITE BUFFER F0D03300
WRITS NOP IS THIS LINE MONITORED F0D03310
TRA *+2 NO F0D03320
TRA *+3 YES F0D03330
NZT PRTFG IS THIS LINE FORCED F0D03340
WRIT1 TXL WRITX,4,-1 NO, IS ONLINE PRINT SPECIFIED F0D03350
TSX (PRNT),4 *YES, PRINT LINE F0D03360
PZE **,,** F0D03370
SXA PRTFG,0 RESET FLAG F0D03380
WRITX AXT **,4 RELOAD CALLING LINKAGE F0D03390
AXT **,2 RELOAD WORD COUNT F0D03400
AXT **,1 RELOAD LINE COUNT F0D03410
TRA 2,4 F0D03420
RECMK OCT 606060606072 720 PRINTER RECORD MARK F0D03430
REM F0D03440
REM WRITE FINAL BLOCK ON LISTING TAPE F0D03450
WRFBK SXA WRFBX,4 SAVE CALLING LINKAGE F0D03460
LXA WRITT+3,1 LOAD BLOCK WORD COUNT F0D03470
TXL WRFBX,1,0 IS BLOCK EMPTY F0D03480
LAC WRBLK+1,2 NO, LOAD BUFFER INDEX F0D03490
CAL FRCMK INSERT 720 PRINTER NOP F0D03500
SLW* BCD14+1,2 FOLLOWING LAST LINE F0D03510
TXI *+1,1,-1 BUMP WORD COUNT F0D03520
SXA WRITT+3,1 F0D03530
TSX WRBLK,4 *WRITE LAST BUFFER F0D03540
WRFBX AXT **,4 RELOAD CALLING LINKAGE F0D03550
TRA 1,4 F0D03560
FRCMK OCT 606060607260 720 PRINTER NOP F0D03570
REM F0D03580
REM WRITE BLOCKED/UNBLOCKED LISTING OUTPUT TAPE F0D03590
WRBLK SXA WRBLX,4 SAVE CALLING LINKAGE F0D03600
AXC 1,2 LOAD BUFFER INDEX F0D03610
SXA *-1,2 FLIP BUFFER INDEX F0D03620
LAC WRITT+3,1 LOAD BLOCK WORD COUNT F0D03630
TXL WRBLX,1,0 IS BLOCK EMPTY F0D03640
PXD ,1 NO, INITIALIZE I/O COMMAND WORD COUNT F0D03650
STD BCD14,2 F0D03660
TSX (TAPE),4 *WRITE BLOCKED/UNBLOCKED RECORD F0D03670
PZE BCD14,2,(WDNP) F0D03680
PZE ,,MLSTAP F0D03690
CAL* (LNCT) BUMP LINE COUNT F0D03700
ADM WRIT0 F0D03710
STA* (LNCT) F0D03720
WRBLX AXT **,4 RELOAD CALLING LONKAGE F0D03730
SXA WRITT+3,0 RESET BLOCK WORD COUNT F0D03740
SXA WRIT0,0 RESET BLOCK LINE COUNT F0D03750
TRA 1,4 F0D03760
REM F0D03770
REM ASSEMBLE UNIFORM SYMBOL F0D03780
LOCFL SXA LOCFX,4 SAVE CALLING LINKAGE F0D03790
STZ SYMBL CLEAR WORKING STORAGE F0D03800
LAS BLANKS IS SYMBOL ALL BLANKS F0D03810
TRA *+2 NO F0D03820
TRA LOCF2 YES F0D03830
XCL RECALL SYMBOL F0D03840
AXT 6,4 PREPARE TO SCAN SIX CHARACTERS F0D03850
LOCF1 PXD ,0 F0D03860
LGL 6 GET NEXT CHARACTER F0D03870
LAS BLANK IS IT BLANK F0D03880
TRA *+2 NO F0D03890
TRA *+5 YES F0D03900
LGR 6 ADD NONBLANK CHARACTER F0D03910
CAL SYMBL F0D03920
LGL 6 F0D03930
SLW SYMBL SAVE PARTIAL SYMBOL F0D03940
TIX LOCF1,4,1 IS SYMBOL ASSEMBLED F0D03950
LOCF2 CAL SYMBL YES, RELOAD UNIFORM SYMBOL F0D03960
LOCFX AXT **,4 RELOAD CALLING LINKAGE F0D03970
TRA 1,4 F0D03980
REM F0D03990
REM SET UP OPCODE, VARIABLE FIELD F0D04000
SETUP SXA STUPX,4 SAVE CALLING LINKAGE F0D04010
STZ INDFG RESET INDIRECT ADDRESS FLAG F0D04020
REM CHECK FOR COMMENTS CARD (24)F0D04030
CAL BCDBF LOAD CARD WORD 1 (24)F0D04040
LGR 30 ISOLATE COLUMN 1 (24)F0D04050
ERA ASTRK IS THIS COMMENTS CARD $F0D04060
TZE 1,4 YES $F0D04070
ERA Q7 IS IT A DOLLAR SIGN $F0D04071
TZE 1,4 YES $F0D04072
AXC 1,2 NO, INITIALIZE WORD AND (24)F0D04080
AXT 6,1 CHARACTER POSITIONS FOR OP CODE SCAN (24)F0D04090
CAL BCDBF+1 CHECK FOR ASTERISK IN COLUMN 7 (UGH) (24)F0D04100
LGR 30 POSSIBLE IF IN IBSFAP MODE (24)F0D04110
ERA ASTRK IS IT BY CHANCE (24)F0D04120
TZE STP00 *CHECK MODE IF YES (24)F0D04130
REM REENTRY TO SCAN NEXT CHARACTER IN OP FIELD (24)F0D04135
STP01 SXA STP06,2 STORE CURRENT WORD AND CHARACTER (24)F0D04140
SXA NERAS,1 POSITIONS OF OP CODE SCAN (24)F0D04150
TSX C019Q,4 *GO GET NEXT CHARACTER (24)F0D04160
SUB ASTRK IS THIS * F0D04170
TNZ *+3 NO $F0D04180
STL INDFG YES, SET INDIRECT FLAG $F0D04190
TRA STP02 $F0D04200
SUB Q4 IS THIS BLANK $F0D04210
TZE STP2A YES, END OF OPCODE (24)F0D04220
SUB EQUAL NO, IS THIS , $F0D04230
TZE STP03 YES, END OF OPCODE $F0D04240
SUB Q1 NO, IS THIS ( $F0D04250
TZE STP04 YES (24)F0D04260
STZ INDFG NO, RESET INDIRECT FLAG $F0D04270
STP02 TXH STP01,2,-2 ARE WE STILL IN CARD WORD 2 (24)F0D04280
TXH STP01,1,4 NO, ARE WE PAST CC 14 (24)F0D04290
LXA STUPX,4 YES, OP FIELD IS TOO LONG (24)F0D04300
TRA 2,4 TAKE ERROR RETURN (24)F0D04310
REM REENTRY FOR OP CODE TERMINATED BY BLANK (24)F0D04320
STP2A TSX C019Q,4 *OBTAIN NEXT CHARACTER (24)F0D04330
SUB BLANK IS IT BLANK (24)F0D04340
TNZ STP05 NO, VARIABLE FIELD HAS BEGUN (24)F0D04350
TXH STP2A,2,-2 YES, ARE WE PAST WORD 2 (24)F0D04355
TXH STP2A,1,4 YES, IS NEXT COLUMN 16 (24)F0D04360
REM REENTRY FOR OP CODE TERMINATED BY , (24)F0D04370
STP03 TSX C019Q,4 *INITIALIZE CHRCTR PROPERLY (24)F0D04380
REM REENTRY FOR OP CODE TERMINATED BY ( (24)F0D04390
STP04 TXL STP05,2,-2 ARE WE PAST WORD TWO (24)F0D04400
TXH STP01,1,4 NO, ( IN CC 8 IS PART OF OP CODE (24)F0D04410
REM REENTRY FOR BEGINNING OF VARIABLE FIELD SENSED (24)F0D04420
STP05 CAL CHRCTR RELOAD BEGINNING CHARACTER (24)F0D04430
LGR 6 AND POSITION FOR SCAN (24)F0D04440
STQ RESIDU STORE SCAN WORD (24)F0D04450
TXI *+1,1,1 BUMP CHARACTER POSITION BACK (24)F0D04460
SXD VRFLD,2 STORE WORD AND CHARACTER (24)F0D04470
SXA VRFLD,1 POSITIONS BEGINNING VARIABLE FIELD (24)F0D04480
LDQ NERAS LOAD CHARACTER POSITION OF OP FIELD (24)F0D04490
VLM Q6,,15 END AND MULTIPLY BY 6 TO COMPUTE (24)F0D04500
LLS 15 AMOUNT OF SHIFT (24)F0D04510
PAC ,4 (24)F0D04520
STP06 AXC **,2 RELOAD WORD ENDING OP FIELD (24)F0D04530
TXH *+2,2,1 WAS IT WORD TWO (24)F0D04540
TXI *+1,4,-36 NO, BUMP SHIFT COUNT (24)F0D04550
ZET INDFG WAS OPERATION INDIRECTLY ADDRESSED (24)F0D04560
TXI STP07,4,-6 YES, ADJUST SHIFT COUNT TO OMIT * (24)F0D04570
STP07 CAL BCDBF+1 LOAD CARD WORDS TWO (24)F0D04580
LDQ BCDBF+2 AND THREE (COLUMNS 7 THROUGH 18) (24)F0D04590
LGR -6,4 RIGHT ADJUST OPERATION CODE (24)F0D04600
LGL 0,4 THEN LEFT ADJUST IT (24)F0D04610
TNZ STP08 IF OPCODE IS NULL, (24)F0D04620
CAL BLNK3 RESET IT TO BLANKS (24)F0D04630
STP08 SLW OPCOD STORE OPERATION CODE (24)F0D04640
ERA DASTR DID IT COME OUT AS ** (24)F0D04650
TNZ STP09 NO, EXIT (24)F0D04660
STZ INDFG YES, MUST HAVE BEEN *** (24)F0D04670
TXI STP07,4,6 GO BACK TO READJUST IT (24)F0D04680
STP09 LXD VRFLD,2 RELOAD SCAN WORD POSITION (24)F0D04690
STUPX AXT **,4 RELOAD CALLING LINKAGE (24)F0D04700
TRA 3,4 (24)F0D04710
REM (24)F0D04720
REM THE FOLLOWING IS A PATCH TO SUBROUTINE SCANF (24)F0D04725
RELFG CLA VARUC ARE THERE RELOCATION ERRORS (24)F0D04730
TZE *+2 IGNORE -0 (24)F0D04740
TMI SCN12+5 COMPLEMENT OF COMMON ELEMENT (24)F0D04750
CLA VARUR (24)F0D04760
TZE *+2 IGNORE -0 (24)F0D04770
TMI SCN12+5 COMPLEMENT OF RELOCATABLE ELEMENT (24)F0D04780
TRA SCN12+1 (24)F0D04790
REM F0D04800
REM FIND BINARY MACHINE OPERATION FOR BCD OPCODE F0D04810
SOPTB SXA SOPTX,4 SAVE CALLING LINKAGE F0D04820
AXT 0,1 LOAD LOCATION OF FIRST NAME IN TABLE F0D04830
LXA OPTSIZ,2 LOAD LOGARITHM OF TABLE LENGTH F0D04840
TSX LOWER,4 *EXECUTE BINARY SEARCH F0D04850
REM F0D04860
TRA SOPTX+2 NOT FOUND F0D04870
SOPT1 TXL *+4,1,** IS SEARCH PAST UPPER END OF TABLE F0D04880
LAS OPTTBL-2,1 NO, IS IT THIS OPCODE F0D04890
TXI LOWER,2,-2 NO, LARGER - GO LOOK HIGHER F0D04900
TRA *+2 YES F0D04910
TXI RAISE,2,-2 NO, SMALLER - GO LOOK LOWER F0D04920
REM OPCODE FOUND IN TABLE F0D04930
LDI OPTTBL-1,1 LOAD OPERATION DEFINITION F0D04940
SOPTX AXT **,4 RELOAD CALLING LINKAGE F0D04950
TRA 2,4 F0D04960
REM OPCODE NOT FOUND IN TABLE F0D04970
LXA SOPTX,4 RELOAD CALLING LINKAGE F0D04980
TRA 1,4 F0D04990
REM F0D05000
TXI BSRCH,1,+16384 F0D05010
TXI BSRCH,1,-16384 F0D05020
TXI BSRCH,1,+8192 F0D05030
TXI BSRCH,1,-8192 F0D05040
TXI BSRCH,1,+4096 F0D05050
TXI BSRCH,1,-4096 F0D05060
TXI BSRCH,1,+2048 F0D05070
TXI BSRCH,1,-2048 F0D05080
TXI BSRCH,1,+1024 F0D05090
TXI BSRCH,1,-1024 F0D05100
TXI BSRCH,1,+512 F0D05110
TXI BSRCH,1,-512 F0D05120
TXI BSRCH,1,+256 F0D05130
TXI BSRCH,1,-256 F0D05140
TXI BSRCH,1,+128 F0D05150
TXI BSRCH,1,-128 F0D05160
TXI BSRCH,1,+64 F0D05170
TXI BSRCH,1,-64 F0D05180
TXI BSRCH,1,+32 F0D05190
TXI BSRCH,1,-32 F0D05200
TXI BSRCH,1,+16 F0D05210
TXI BSRCH,1,-16 F0D05220
TXI BSRCH,1,+8 F0D05230
TXI BSRCH,1,-8 F0D05240
TXI BSRCH,1,+4 F0D05250
TXI BSRCH,1,-4 F0D05260
TXI BSRCH,1,+2 F0D05270
TXI BSRCH,1,-2 F0D05280
TRA 1,4 NOT FOUND F0D05290
TRA 1,4 NOT FOUND F0D05300
RAISE TRA *,2 F0D05310
LOWER TRA *,2 F0D05320
BSRCH TRA 2,4 LOOK FURTHER F0D05330
REM F0D05340
REM EVALUATE NEXT EXPRESSION IN VARIABLE FIELD F0D05350
SCANF SXA SCANX,4 SAVE CALLING LINKAGE F0D05360
STZ TRMEQ RESET VALUE OF FIRST TERM IN EXPRESSION F0D05370
STZ TRMUN RESET UNITS OF TERM F0D05380
STZ TRMUF RESET FLAG FOR TYPE OF UNITS TO ABSOLUTE F0D05390
STZ VAREQ RESET VALUE OF EXPRESSION F0D05400
STZ VARUR RESET NUMBER OF RELOCATABLE SYMBOLS F0D05410
STZ VARUC RESET NUMBER OF COMMON SYMBOLS F0D05420
STZ RBITS RESET RELOCATION BITS F0D05430
STZ SCNBE RESET FLAG FOR BOOLEAN ERA F0D05440
CAL CHRCTR LOAD FIRST CHARACTER IN NEXT EXPRESSION F0D05450
ERA BLANK IS IT END OF VARIABLE FIELD F0D05460
TNZ *+3 NO F0D05470
STZ BOLMD YES, RESET BOOLEAN FLAG F0D05480
TRA 1,4 RETURN ON VACUUOUS FIELD F0D05490
AXC SCADD,4 NO, INITIALIZE OPERATION SWITCH FOR F0D05500
SXD OPSW1,4 FOLLOWING ELEMENT TO ADD F0D05510
TRA SCN01+5 F0D05520
REM REENTRY TO EVALUATE NEXT ELEMENT F0D05530
SCN01 NZT TVFLG IS THIS CALL SUBPROGRAM NAME F0D05540
TRA *+4 NO F0D05550
TSX SCEND,4 YES, SKIP TO END OF EXPRESSION F0D05560
STL ERRFF SET ERROR FLAG F0D05570
TRA SCN14 F0D05580
STL SCNFC SET FLAG FOR FIRST CHARACTER IN ELEMENT F0D05590
STZ SCNBC RESET FLAG FOR BOOLEAN COM F0D05600
CAL BHEAD SET HEADING CHARACTER F0D05610
ZET TVFLG IS THIS CALL SUBPROGRAM NAME F0D05620
PXD ,0 YES, DELETE HEADING CHARACTER F0D05630
TRA SCN02+1 F0D05640
REM REENTRY FOR $ REHEADING CHARACTER F0D05650
SCN02 TRA DLRUT DOLLAR SIGN TEST $F0D05660
SLW THEAD F0D05670
STZ ELMEQ RESET VALUE OF ELEMENT F0D05680
STZ ELMUN RESET UNITS OF ELEMENT F0D05690
STZ ELMUF RESET FLAG FOR TYPE OF UNITS TO ABSOLUTE F0D05700
TRA SCN03+1 F0D05710
REM REENTRY FOR BOOLEAN UNARY / F0D05720
SCN03 STL SCNBC SET FLAG TO COMPLEMENT NEXT ELEMENT F0D05730
REM REENTRY TO ASSEMBLE SYMBOL F0D05740
TSX SSCAN,4 *ASSEMBLE ELEMENT F0D05750
TRA EVALE *END OF VARIABLE FIELD F0D05760
SLT EXPND DID FIELD END WITH COMMA OR BLANK F0D05770
PAX ,4 NO, LOAD PUNCTUATION CHARACTER F0D05780
TXL SCADD,4,16 + OPERATION IS ADD F0D05790
TXL SCSUB,4,32 - OPERATION IS SUBTRACT F0D05800
TXL SCN02,4,43 $ RESET HEADING CHARACTER F0D05810
TXL SCN05,4,44 * OPERATION MAY BE MULTIPLY F0D05820
TXL SCN04,4,49 / OPERATION MAY BE DIVIDE F0D05830
TRA EVALE *PUNCTUATION WAS COMMA OR BLANK F0D05840
REM CHARACTER IS / F0D05850
SCN04 NZT SCNFC IS THIS FIRST CHARACTER IN ELEMENT F0D05860
TRA SCDIV NO, IT IS DIVIDE OR BINARY NOT OPERATION F0D05870
STZ SCNFC YES, RESET FLAG F0D05880
ZET BOLMD IS FIELD BOOLEAN F0D05890
TRA SCN03 YES, IT IS UNARY NOT OPERATION F0D05900
TRA SCDIV NO F0D05910
REM CHARACTER IS * F0D05920
SCN05 NZT SCNFC IS THIS FIRST CHARACTER IN ELEMENT F0D05930
TRA SCMPY NO, IT IS MULTIPLY OPERATION F0D05940
STZ SCNFC YES, RESET FLAG F0D05950
SLW SYMBL CHARACTER IS PROGRAM COUNTER F0D05960
TSX SSCET,4 *FIND OPERATION F0D05970
TXI EVALE,,0 NO OPERATION FOLLOWS F0D05980
TRA SCN03+3 F0D05990
REM F0D06000
REM ENTRY POINTS TO EVALUATE ELEMENT ASSEMBLED ABOVE. F0D06010
REM RETURN FROM EVALF IS TO OPERATION PRECEDING ELEMENT. F0D06020
REM RETURN TO PRESENT OPERATION IS AFTER FOLLOWING ELEMENT F0D06030
REM HAS BEEN EVALUATED. F0D06040
SCDIV TSX EVALF,4 *EVALUATE PRECEDING ELEMENT F0D06050
REM F0D06060
TRA BLDIV EXPRESSION IS BOOLEAN F0D06070
CLA TRMEQ LOAD PARTIAL TERM F0D06080
LRS 35 F0D06090
NZT ELMEQ IS ELEMENT UNDEFINED OR ZERO F0D06100
TRA *+4 YES, ASSUME ELEMENT 1 F0D06110
DVP ELMEQ NO, COMBINE WITH FOLLOWING ELEMENT F0D06120
DCT DID DIVIDE FAIL F0D06130
TSX MACERR,4 **YES F0D06140
STQ TRMEQ SAVE PARTIAL TERM F0D06150
STQ TRMUN SAVE COEFFICIENT OF SYMBOLS F0D06160
NZT TRMUF IS TERM ABSOLUTE F0D06170
ZET ELMUF YES, IS ELEMENT ABSOLUTE F0D06180
TRA SCMP1 **NO, SET ERROR FLAGS F0D06190
TRA SCN10 F0D06200
REM F0D06210
SCMPY TSX EVALF,4 *EVALUATE PRECEDING ELEMENT F0D06220
REM F0D06230
TRA BLMPY EXPRESSION IS BOOLEAN F0D06240
LDQ TRMEQ COMBINE PARTIAL TERM F0D06250
MPY ELMEQ WITH FOLLOWING ELEMENT F0D06260
STQ TRMEQ SAVE PARTIAL TERM MOD 2**35 F0D06270
LDQ TRMUN COMBINE COEFFICIENT FOR TERM F0D06280
MPY ELMUN WITH COEFFICIENT FOR FOLLOWING ELEMENT F0D06290
STQ TRMUN SAVE COEFFICIENT MOD 2**35 F0D06300
ZET TRMUF IS TERM ABSOLUTE F0D06310
NZT ELMUF NO, IS ELEMENT ABSOLUTE F0D06320
TRA *+3 YES F0D06330
REM REENTRY AFTER RELOCATION ERROR ON DIVIDE F0D06340
SCMP1 SLN EXPRR NO, SET ERROR FLAGS F0D06350
STL ERRFR F0D06360
CAL ELMUF SET COMMON OR RELOCATABLE FLAG FOR ELEMENTF0D06370
ORS TRMUF INTO FLAG FOR TERM (AT LEAST ONE IS ZERO) F0D06380
TRA SCN10 F0D06390
REM F0D06400
SCADD TSX EVALF,4 *EVALUATE PRECEDING ELEMENT F0D06410
REM F0D06420
TRA BLADD EXPRESSION IS BOOLEAN F0D06430
CLA ELMEQ LOAD VALUE OF FOLLOWING ELEMENT F0D06440
TRA SCSB1 F0D06450
REM F0D06460
SCSUB TSX EVALF,4 *EVALUATE PRECEDING ELEMENT F0D06470
REM F0D06480
TRA BLSUB EXPRESSION IS BOOLEAN F0D06490
CLS ELMUN INVERT COEFFICIENT FOR FOLLOWING ELEMENT F0D06500
STO ELMUN F0D06510
CLS ELMEQ INVERT VALUE OF FOLLOWING ELEMENT F0D06520
REM REENTRY FOR ADD F0D06530
SCSB1 XCA HOLD FOLLOWING ELEMENT F0D06540
CLA VAREQ COMBINE VALUE OF PARTIAL EXPRESSION F0D06550
ADD TRMEQ WITH PRECEDING TERM F0D06560
STO VAREQ F0D06570
STQ TRMEQ INITIALIZE FOLLOWING TERM TO VALUE OF ELEMF0D06580
CLA TRMUF LOAD FLAG FOR UNITS OF TERM F0D06590
TZE SCSB3 IS TERM ABSOLUTE F0D06600
TMI SCSB2 NO, IS TERM COMMON F0D06610
CLA VARUR NO, BUMP NUMBER OF RELOCATABLE SYMBOLS F0D06620
ADD TRMUN BY COEFFICIENT OF TERM F0D06630
STO VARUR F0D06640
TRA SCSB3 F0D06650
REM TERM IS COMMON F0D06660
SCSB2 CLA VARUC BUMP NUMBER OF COMMON SYMBOLS F0D06670
ADD TRMUN BY COEFFICIENT OF TERM F0D06680
STO VARUC F0D06690
REM REENTRY FOR ABSOLUTE OR RELOCATABLE TERM F0D06700
SCSB3 CLA ELMUN INITIALIZE COEFFICIENT OF FOLLOWING TERM F0D06710
STO TRMUN TO COEFFICIENT OF FIRST ELEMENT F0D06720
CAL ELMUF INITIALIZE FLAG FOR UNITS OF TERM F0D06730
SLW TRMUF TO FLAG FOR UNITS OF FIRST ELEMENT F0D06740
TRA SCN10 F0D06750
REM F0D06760
BLADD TSX BLERA,4 *EVALUATE POSSIBLE ERA F0D06770
TRA BLSUB+2 F0D06780
REM F0D06790
BLSUB TSX BLERA,4 *EVALUATE POSSIBLE ERA F0D06800
STL SCNBE SET FLAG TO COMPLEMENT FOLLOWING ELEMENT F0D06810
SLW VAREQ SAVE PARTIAL VALUE OF EXPRESSION F0D06820
CAL ELMEQ INITIALIZE NEXT TERM TO VALUE OF F0D06830
SLW TRMEQ FIRST ELEMENT F0D06840
TRA SCN10 F0D06850
REM F0D06860
BLMPY CAL ELMEQ MASK (AND) PARTIAL VALUE OF EXPRESSION F0D06870
ANS TRMEQ WITH VALUE OF ELEMENT F0D06880
TRA SCN10 F0D06890
REM F0D06900
BLDIV CAL ELMEQ OPERATION IS BINARY NOT F0D06910
COM COMPLEMENT ELEMENT F0D06920
ANS TRMEQ MASK PARTIAL VALUE OF EXPRESSION F0D06930
REM F0D06940
REM ELEMENT HAS BEEN EVALUATED F0D06950
SCN10 SLT EXPND WAS THIS END OF EXPRESSION F0D06960
TRA SCN01 NO F0D06970
REM END OF EXPRESSION F0D06980
NZT BOLMD IS EXPRESSION BOOLEAN F0D06990
TRA *+3 NO F0D07000
TSX BLERA,4 *YES, EVALUATE POSSIBLE ERA F0D07010
TRA SCN11 F0D07020
CLA VAREQ COMBINE PARTIAL VALUE OF EXPRESSION F0D07030
ADD TRMEQ WITH FINAL TERM F0D07040
STO VAREQ F0D07050
CAL P4 COMPLEMENT IF NEGATIVE F0D07060
ALS 1 F0D07070
ADD VAREQ F0D07080
REM REENTRY FOR BOOLEAN EXPRESSION F0D07090
SCN11 ZET VFDMD IS THIS EXPRESSION PART OF VFD F0D07100
TRA *+4 YES, KEEP ENTIRE WORD F0D07110
ANA ADTMK NO, MASK IN FINAL 18 BITS F0D07120
NZT BOLMD IS EXPRESSION BOOLEAN F0D07130
ANA ADDMK NO, MASK IN FINAL 15 BITS F0D07140
SLW VAREQ SAVE F0D07150
CLA TRMUF LOAD FLAG FOR TERM UNITS F0D07160
TZE SCN12 IS EXPRESSION ABSOLUTE F0D07170
TMI *+5 NO, IS EXPRESSION COMMON F0D07180
CLA VARUR NO, BUMP NUMBER OF RELOCATABLE SYMBOLS F0D07190
ADD TRMUN BY COEFFICIENT OF LAST TERM F0D07200
STO VARUR F0D07210
TRA SCN12 F0D07220
CLA VARUC BUMP NUMBER OF COMMON SYMBOLS F0D07230
ADD TRMUN BY COEFFICIENT OF LAST TERM F0D07240
STO VARUC F0D07250
REM REENTRY FOR ABSOLUTE OR RELOCATABLE TERM F0D07260
SCN12 TRA RELFG CHECK FOR RELOCATION ERROR $F0D07270
ADD VARUC NUMBER OF RELOCATABLE AND COMMON SYMBOLS $F0D07280
TZE SCN13 IS COEFFICIENT ZERO F0D07290
SUB Q1 NO, IS COEFFICIENT 1 F0D07300
TZE *+3 YES F0D07310
SLN EXPRR NO, SET ERROR FLAGS F0D07320
STL ERRFR F0D07330
CAL VAREQ COMPUTE RELATIVE POSITION F0D07340
ANA ADDMK OF EXPRESSION ABOVE OR BELOW F0D07350
SUB PRGBK PROGRAM BREAK F0D07360
ZET VARUC IS EXPRESSION IN COMMON F0D07370
CHS YES, INVERT RELATIVE POSITION F0D07380
AXT 2,4 SET EXPRESSION DIRECTLY RELOCATABLE F0D07390
TMI *+2 IS EXPRESSION DIRECTLY RELOCATABLE F0D07400
AXT 3,4 NO, SET EXPRESSION COMPLEMENT RELOCATABLE F0D07410
SXA RBITS,4 F0D07420
SCN13 TRA *+2 $F0D07430
REM CONSTANT FOR BCDCV CONVERSION ROUTINE (25)F0D07435
TEN5TH DEC 100000 (25)F0D07440
CAL VAREQ YES, LOAD LOGICAL VALUE OF EXPRESSION F0D07450
STZ BOLMD RESET BOOLEAN MODE FLAG F0D07460
SLT EXPRR WAS ERROR FOUND IN THIS EXPRESSION F0D07470
TRA SCANX NO F0D07480
SCN14 SLN EXPRR YES, RESET ERROR FLAG F0D07490
STZ RBITS DELETE RELOCATION BITS F0D07500
PXD ,0 DELETE VALUE OF SYMBOL F0D07510
STZ VAREQ F0D07520
SCANX AXT **,4 RELOAD CALLING LINKAGE F0D07530
TRA 2,4 F0D07540
REM F0D07550
REM EVALUATE BOOLEAN EXPRESSION F0D07560
BLERA CAL TRMEQ LOAD FOLLOWING TERM F0D07570
NZT SCNBE IS OPERATION ERA F0D07580
ORA VAREQ NO, COMBINE WITH PARTIAL TERM F0D07590
ZET SCNBE IS OPERATION ERA F0D07600
ERA VAREQ YES, MASK PARTIAL VALUE OF EXPRESSION F0D07610
STZ SCNBE RESET FLAG F0D07620
TRA 1,4 F0D07630
REM F0D07640
REM EVALUATE SYMBOL PRECEDING OPERATION, OR END OF EXPRESSIONF0D07650
EVALE SLN EXPND SET END OF EXPRESSION FLAG F0D07660
EVALF SXD OPSW2,4 SAVE CALLING LINKAGE (OP FOLLOWING SYMBOL)F0D07670
CAL SYMBL LOAD LOW ORDER PORTION OF ELEMENT F0D07680
LAS ASTRK IS IT * F0D07690
TRA *+2 NO F0D07700
TRA EVAL1 YES, CURRENT CONTENTS OF LOCATION COUNTER F0D07710
ORA SYMB2 COMBINE LOW AND HIGH ORDER PORTIONS F0D07720
ANA BLANKS IS ELEMENT NUMERIC F0D07730
TZE EVAL3 YES F0D07740
ZET SYMB2 NO, IS SYMBOL NAME LONGER THAN 6 CHARACTERF0D07750
STL ERRFE YES F0D07760
LDQ SYMBL LOAD SYMBOL NAME F0D07770
PXD ,0 F0D07780
LGL 6 LOAD FIRST CHARACTER F0D07790
TNZ *+2 IS SYMBOL NAME SHORTER THAN 6 CHARACTERS F0D07800
CAL THEAD YES, APPEND CURRENT HEADING CHARACTER F0D07810
LGL 30 F0D07820
SLW SYMBL SAVE F0D07830
TSX SSYMT,4 *EVALUATE SYMBOL F0D07840
TRA EVAL1+3 F0D07850
REM SYMBOL IS * F0D07860
EVAL1 CLA LOCTR LOAD CURRENT PROGRAM COUNTER F0D07870
ZET BOLMD IS EXPRESSION BOOLEAN F0D07880
PXD ,0 YES, ASSUME IT IS AN OPERATOR F0D07890
REM WITH NO PRECEDENT OPERAND F0D07900
REM REENTRY FOR DEFINED SYMBOL F0D07910
STA ELMEQ DEFINE THIS ELEMENT F0D07920
ZET BOLMD IS EXPRESSION BOOLEAN F0D07930
TRA EVAL2 YES F0D07940
ARS 18 NO, SHIFT UP RELOCATION BITS F0D07950
ANA Q3 DELETE EXTRANEOUS FLAGS F0D07960
SUB Q1 IS ELEMENT ABSOLUTE F0D07970
TMI EVAL5 YES F0D07980
SSM NO, SET ELEMENT COMMON F0D07990
TNZ *+2 IS ELEMENT COMMON F0D08000
CLA Q1 NO, RESET ELEMENT RELOCATABLE F0D08010
STO ELMUF SAVE ELEMENT UNIT FLAG F0D08020
TRA EVAL5+1 F0D08030
REM SYMBOL IS BOOLEAN F0D08040
EVAL2 PAI LOAD RELOCATION BITS F0D08050
LFT 3 IS SYMBOL ABSOLUTE F0D08060
TRA EVLBR **NO F0D08070
ANA ADTMK DELETE EXTRANEOUS FLAGS F0D08080
ZET SCNBC IS ELEMENT COMPLEMENTABLE F0D08090
COM YES, FLATTER IT F0D08100
SLW ELMEQ DEFINE ELEMENT F0D08110
OPSW1 TXI EVAL5+2,,** (RETURN FOR OPERATION PRECEDING ELEMENT) F0D08120
REM ERROR ON BOOLEAN SYMBOL F0D08130
EVLBR SLN EXPRR SET ERROR FLAGS F0D08140
STL ERRFB F0D08150
TRA EVAL5+2 F0D08160
REM ELEMENT IS NUMERIC F0D08170
EVAL3 NZT BOLMD IS ELEMENT BOOLEAN F0D08180
TXL EVAL4,,0 NO, IS ELEMENT UNDER OCTAL QUALIFIER F0D08190
REM (SWITCH SET BY SAK) F0D08200
TSX OCTSV,4 *YES, CONVERT SYMBOL FROM OCTAL F0D08210
ZET SCNBC IS ELEMENT COMPLEMENTABLE F0D08220
COM YES F0D08230
SLW ELMEQ SAVE ELEMENT F0D08240
NZT BOLMD IS ELEMENT BOOLEAN F0D08250
TRA EVAL5 NO, SET RELOCATION UNITS FOR OCTAL INTEGERF0D08260
OPSW2 TXI EVAL5+2,,** (RETURN FOR OPERATION FOLLOWING ELEMENT) F0D08270
REM EVALUATE DECIMAL INTEGER F0D08280
EVAL4 TSX DECSV,4 *CONVERT SYMBOL FROM DECIMAL F0D08290
STO ELMEQ SAVE F0D08300
REM REENTRY FOR ABSOLUTE SYMBOL OR DECIMAL INTEGER F0D08310
EVAL5 CAL ELMEQ SET VALUE OF ELEMENT F0D08320
REM REENTRY FOR COMMON OR RELOCATABLE SYMBOL F0D08330
SLW ELMUN AS COEFFICIENT OF ELEMENT F0D08340
REM REENTRY FOR BOOLEAN SYMBOL OR OCTAL INTEGER F0D08350
LXD OPSW1,4 LOAD TRANSFER FOR OP PRECEDING ELEMENT F0D08360
CAL OPSW2 RESET TRANSFER TO OP PRECEDING F0D08370
STD OPSW1 FOLLOWING ELEMENT F0D08380
ZET BOLMD IS EXPRESSION BOOLEAN F0D08390
TRA 1,4 YES, TAKE BOOLEAN RETURN F0D08400
TRA 2,4 NO F0D08410
REM F0D08420
REM CONVERT UP TO 12 DIGIT SIGNED OCTAL INTEGER TO BINARY F0D08430
OCTCV SXA DECCX,4 SAVE CALLING LINKAGE F0D08440
STZ NERAS CLEAR WORKING CELL F0D08450
TSX C019A,4 *LOOK AT FIRST CHARACTER F0D08460
SUB PLUSS IS IT + F0D08470
TZE OCT01 YES, IGNORE IT F0D08480
SUB PLUSS NO, IS IT - F0D08490
TNZ OCT01+1 NO F0D08500
CAL P4 YES, SET P BIT F0D08510
SLW NERAS F0D08520
REM REENTRY TO DELETE SIGN F0D08530
OCT01 TSX C0190,4 *DELETE SIGN F0D08540
REM REENTRY FOR NO PRECEDING SIGN F0D08550
TSX SSCAN,4 *ASSEMBLE INTEGER F0D08560
TXI OCT02,,0 NULL INTEGER F0D08570
SLT EXPND DID INTEGER END WITH COMMA OR BLANK F0D08580
TRA OCTRR NO F0D08590
TSX OCTSV,4 *YES, CONVERT TO BINARY F0D08600
SLT EXPRR IS INTEGER IN ERROR F0D08610
ORA NERAS NO, APPEND SIGN F0D08620
TRA DECCX F0D08630
REM NULL INTEGER F0D08640
OCT02 SLN FLDND SET END OF VARIABLE FIELD FLAG F0D08650
ORA NERAS APPEND SIGN F0D08660
TRA DECCX F0D08670
REM ERROR ON OCTAL NUMBER F0D08680
OCTRR STL ERRFB SET ERROR FLAG F0D08690
TSX SCEND,4 *SKIP TO END OF FIELD F0D08700
PXD ,0 DELETE INTEGER IN ERROR F0D08710
TRA DECCX F0D08720
REM F0D08730
REM CONVERT FOLLOWING DECIMAL FIELD TO BINARY F0D08740
DECCV SXA DECCX,4 SAVE CALLING LINKAGE F0D08750
STZ NERAS CLEAR INTEGER FIELD F0D08760
STZ XERAS CLEAR EXPONENT (E) FIELD F0D08770
STZ BERAS CLEAR BINARY (B) FIELD F0D08780
STZ DCNFG RESET FLAG FOR DECIMAL POINT F0D08790
STZ DCXFG RESET FLAG FOR DECIMAL EXPONENT F0D08800
STZ DCBFG RESET FLAG FOR BINARY EXPONENT F0D08810
AXT 0,4 RESET DECIMAL PLACE COUNT F0D08820
CAL DECCV+1 LOAD INTEGER FIELD ADDRESS F0D08830
TRA DCV15 $F0D08840
REM REENTRY AFTER DECIMAL POINT TO BEGIN SCAN ON FRACTION F0D08850
DCV01 NZT DCXFG HAS DECIMAL EXPONENT BEGUN F0D08860
ZET DCBFG NO, HAS BINARY EXPONENT BEGUN F0D08870
TRA DCVRR YES F0D08880
STL DCNFG NO, SET FRACTION FLAG F0D08890
CAL DCV05 INITIALIZE TRANSFER ADDRESS F0D08900
STA DCV07+1 TO COUNT DECIMAL PAACES F0D08910
TRA DCV05+2 F0D08920
REM REENTRY AFTER E TO BEGIN SCAN ON DECIMAL EXPONENT F0D08930
DCV02 STL DCXFG SET DECIMAL EXPONENT FLAG F0D08940
CAL DECCV+2 LOAD DECIMAL EXPONENT FIELD ADDRESS F0D08950
TRA DCV03+2 F0D08960
REM REENTRY AFTER B TO BEGIN SCAN ON BINARY EXPONENT F0D08970
DCV03 STL DCBFG SET BINARY EXPONENT FLAG F0D08980
CAL DECCV+3 LOAD BINARY EXPONENT FIELD FLAG F0D08990
STA DCV06 INITIALIZE FIELD CONVERSION ADDRESSES F0D09000
STA DCV06+2 F0D09010
STA DCV07 F0D09020
CAL DCV05+1 INITIALIZE TRANSFER ADDRESS F0D09030
STA DCV07+1 TO OMIT COUNTING DECIMAL PLACES F0D09040
CAL DCV06+2 INITIALIZE INSTRUCTION TO ADD F0D09050
TRA DCV04+3 F0D09060
REM REENTRY AFTER MINUS F0D09070
DCV04 CLS Q0 SET FIELD TO -0 F0D09080
STO* DCV06 F0D09090
SUB * INITIALIZE INSTRUCTION TO SUBTRACT F0D09100
STD DCV06+4 F0D09110
TOV *+1 F0D09120
TRA DCV05+2 F0D09130
REM CONVERT NEXT DIGIT IN FIELD F0D09140
DCV05 TRA *+1 (TRANSFER ADDRESS TO BUMP DECIMAL COUNTER F0D09150
TXI *+1,4,-1 (TRANSFER ADDRESS TO OMIT BUMP) F0D09160
SXA *+2,4 SAVE DECIMAL PLACE COUNT F0D09170
TSX C0190,4 *GET NEXT CHARACTER F0D09180
AXT **,4 RELOAD DECIMAL PLACE COUNT F0D09190
LAS Q10 IS IT DIGIT F0D09200
TRA DCV08 NO F0D09210
TSX MACERR,4 **CHARACTER IS BCD 10 F0D09220
DCV06 CLA ** YES, MULTIPLY PARTIAL FIELD BY 10 F0D09230
ALS 2 F0D09240
ADD ** F0D09250
ALS 1 F0D09260
*** CHRCTR (INITIALIZED TO ADD OR SUBTRACT) F0D09270
TNO *+2 DID AC OVERFLOW F0D09280
TXI *+2,4,1 YES, BUMP DECIMAL COUNTER BACK F0D09290
DCV07 STO ** SAVE PARTIAL FIELD F0D09300
TRA ** TRANSFER TO OMIT/BUMP DECIMAL COUNTER F0D09310
REM DETERMINE TYPE OF FOLLOWING FIELD F0D09320
DCV08 LAS COMMA IS CHARACTER , F0D09330
TRA DCVRR NO, ILLEGAL CHARACTER F0D09340
TRA DCV09+1 YES, END OF NUMERIC FIELD F0D09350
LAS BLANK NO, IS CHARACTER BLANK F0D09360
TRA DCVRR NO, ILLEGAL CHARACTER F0D09370
TRA DCV09 YES, END OF VARIABLE FIELD F0D09380
LAS MINUS NO, IS CHARACTER - F0D09390
TRA DCVRR NO, ILLEGAL CHARACTER F0D09400
TRA DCV04 YES, RESET OPERATION CODE F0D09410
LAS POINT NO, IS CHARACTER . F0D09420
TRA DCVRR NO, ILLEGAL CHARACTER F0D09430
TRA DCV16 $F0D09440
LAS QE NO, IS CHARACTER E F0D09450
TRA DCVRR NO, ILLEGAL CHARACTER F0D09460
TRA DCV17 $F0D09470
LAS QB NO, IS CHARACTER B F0D09480
TRA DCVRR NO, ILLEGAL CHARACTER F0D09490
TRA DCV18 $F0D09500
LAS PLUSS NO, IS CHARACTER + F0D09510
TRA DCVRR NO, ILLEGAL CHARACTER F0D09520
TRA DCV05+2 YES, IGNORE IT F0D09530
TRA DCVRR NO, ILLEGAL CHARACTER F0D09540
REM TEST FOR DECIMAL EXPONENT F0D09550
DCV09 SLN FLDND SET END OF VARIABLE FIELD (BLANK) FLAG F0D09560
CLA NERAS LOAD DIGIT F0D09570
TZE DECCX IS DIGIT ZERO F0D09580
NZT DCXFG NO, DOES DECIMAL EXPONENT EXIST F0D09590
TRA DCV10 NO, TEST FOR BINARY EXPONENT F0D09600
CAL P4 YES, COMPLEMENT NEGATIVE DECIMAL EXPONENT F0D09610
ADD XERAS F0D09620
ALS 18 COMPUTE EXPLICIT+IMPLICIT EXPONENT F0D09630
STD *+2 F0D09640
CLA NERAS RELOAD DIGIT F0D09650
TXI DCV11,4,** F0D09660
REM TEST FOR BINARY EXPONENT F0D09670
DCV10 NZT DCBFG DOES BINARY EXPONENT EXIST F0D09680
ZET DCNFG NO, DOES DECIMAL EXPONENT EXIST F0D09690
TRA DCV11 YES F0D09700
TRA DECCX NO, NUMBER IS BINARY INTEGER F0D09710
REM CONVERT TO FLOATING POINT NUMBER F0D09720
DCV11 STA FPCV1 SAVE LOW ORDER 15 BITS F0D09730
ARS 15 DELETE LOW ORDER 15 BITS F0D09740
ORA FPCV2 COMBINE WITH EXPONENT 2**52(8) F0D09750
FAD FPCV2 NORMALIZE LEADING 20 BITS EXP 2**43(8) F0D09760
TPL *+3 COMBINE NORMALIZED LEADING 20 BITS F0D09770
FSB FPCV1 WITH FOLLOWING I5 BITS UNNORMALIZED F0D09780
TRA *+2 EXPONENT 2**52(8)/2**15(8) = 2**33(8) F0D09790
FAD FPCV1 INTO DOUBLE PRECISION NUMBER EXP 2**35(10)F0D09800
STQ ERASE SAVE LEAST SIGNIFICANT PART F0D09810
TXL DCV13,4,0 IS DECIMAL EXPONENT ZERO F0D09820
TXH DCV12,4,38 NO, IS DECIMAL EXPONENT NEGATIVE F0D09830
TXI *+1,4,-1 NO, COMPLEMENT IT F0D09840
SXD *+2,4 F0D09850
AXT -1,4 F0D09860
TIX *+2,4,** F0D09870
TSX MACERR,4 **INDEX FAILURE F0D09880
XCA BRING MOST SIGNIFICANT PART INTO MQ F0D09890
FMP DECTAB,4 MULTIPLY BY POWER OF TEN (FACTOR IS SUCH F0D09900
REM THAT FPCV3 AND FPCV4 WILL CORRECT EXP) F0D09910
STO NERAS SAVE MOST SIGNIFICANT PART F0D09920
STQ XERAS SAVE LEAST SIGNIFICANT PART F0D09930
LDQ ERASE LOAD OLD LEAST SIGNIFICANT PART F0D09940
FMP DECTAB,4 MULTIPLY BY POWER OF TEN F0D09950
FAD XERAS COMBINE WITH DOUBLE PRECISION RESULTS F0D09960
FAD NERAS CONVERTED FROM OLD MOST SIGNIFICANT PART F0D09970
ACL FPCV4 BUMP EXPONENT TO CORRECT FOR TABLE FACTOR F0D09980
PBT DID AC OVERFLOW F0D09990
TRA DCV13 NO, PROCESS BINARY EXPONENT F0D10000
TRA DCVRR+1 YES F0D10010
DCV12 TXL DCVRR+1,4,-49 IS EXPONENT ILLEGAL F0D10020
FDP DECTAB,4 NO, DIVIDE BY POWER OF TEN F0D10030
STQ NERAS SAVE MOST SIGNIFICANT PART F0D10040
FAD ERASE COMBINE REMAINDER WITH LEAST SIGNIF PART F0D10050
FDP DECTAB,4 DIVIDE BY POWER OF TEN F0D10060
DCT DID DIVIDE FAIL F0D10070
TSX MACERR,4 **YES F0D10080
XCA RECALL MOST SIGNIFICANT PART F0D10090
FAD NERAS COMBINE WITH PRIOR MOST SIGNIFICANT PART F0D10100
ACL FPCV3 BUMP EXPONENT TO CORRECT FOR TABLE FACTOR F0D10110
PBT DID AC OVERFLOW F0D10120
TRA DCVRR+1 NO F0D10130
DCV13 NZT DCBFG DOES BINARY EXPONENT EXIST F0D10140
TRA DECCX NO, NUMBER IS FLOATING POINT F0D10150
STO NERAS YES, SAVE FLOATING POINT NUMBER F0D10160
ALS 2 DELETE P, Q, BITS F0D10170
SSM F0D10180
ARS 29 RIGHT ADJUST EXPONENT F0D10190
ADD Q128 COMPUTE ABSOLUTE EXPONENT F0D10200
ADD BERAS COMBINE WITH BINARY EXPONENT F0D10210
TPL *+2 IS EXPONENT TOO SMALL F0D10220
TNZ DCVRR+1 YES F0D10230
STA DCV14 NO, USE EXPONENT AS SHIFT COUNT F0D10240
CLA NERAS RELOAD FLOATING POINT NUMBER F0D10250
LLS 8 DELETE AC, MQ EXPONENTS F0D10260
ALS 2 DELETE P, Q BITS F0D10270
ARS 10 REPOSITION 27 BIT FRACTION F0D10280
LLS 8 APPEND 27 LOW ORDER BITS F0D10290
DCV14 LRS ** SHIFT BINARY INTEGER TO PROPER POWER OF 2 F0D10300
TRA DECCX F0D10310
DCVRR TSX SCEND,4 *SKIP TO END OF FIELD F0D10320
PXD ,0 DELETE INTEGER IN ERROR F0D10330
STL ERRFE SET ERROR FLAG F0D10340
DECCX AXT **,4 RELOAD CALLING LINKAGE F0D10350
TRA 1,4 F0D10360
FPCV1 OCT 233000000000 CONSTANT TO NORMALIZE LOW ORDER 15 BITS F0D10370
FPCV2 OCT 252000000000 CONSTANT TO NORMALIZE HIGH ORDER 20 BITS F0D10380
FPCV3 OCT 335000000000 CONSTANT TO CORRECT EXPONENT ON DIVIDE F0D10390
FPCV4 OCT 043000000000 CONSTANT TO CORRECT EXPONENT ON MULTIPLY F0D10400
REM F0D10410
REM CONVERT ONE FIELD OF VFD TO BINARY F0D10420
VFDCV SXA VFDCX,4 SAVE CALLING LINKAGE F0D10430
STZ VFDFL RESET LOW ORDER HALF OF FIELD F0D10440
STZ VFDFL+1 RESET HIGH ORDER HALF OF FIELD F0D10450
STZ VFDHF RESET HOLLERITH FIELD FLAG F0D10460
STZ VFDOF RESET OCTAL FIELD FLAG F0D10470
STZ VFDFB RESET FIELD WIDTH F0D10480
TSX C0190,4 *GET FIRST CHARACTER OF NEXT FIELD F0D10490
LAS COMMA IS IT COMMA F0D10500
TRA VCV07 NO, ILLEGAL CHARACTER F0D10510
TRA VCV06+1 YES, END OF FIELD F0D10520
LAS BLANK IS IT BLANK F0D10530
TRA VCV07 NO, ILLEGAL CHARACTER F0D10540
TRA VCV06 YES, END OF VARIABLE FIELD F0D10550
LAS QO NO, IS IT O F0D10560
TRA VCV07 NO, ILLEGAL CHARACTER F0D10570
TRA VCV01 YES OCTAL FIELD FOLLOWS F0D10580
LAS QH NO, IS IT H F0D10590
TRA VCV07 NO, ILLEGAL CHARACTER F0D10600
TRA VCV01+2 YES HOLLERITH FIELD FOLLOWS F0D10610
TRA VCV02+1 NO, FIELD MUST BE SYMBOLIC F0D10620
REM FIELD IS OCTAL F0D10630
VCV01 STL VFDOF SET OCTAL FIELD FLAG F0D10640
TRA VCV02 F0D10650
REM FIELD IS HOLLERITH F0D10660
STL VFDHF SET HOLLERITH FIELD FLAG F0D10670
REM REENTRY TO COLLECT SECOND DIGIT OF FIELD WIDTH F0D10680
VCV02 TSX C0190,4 *GET NEXT CHARACTER F0D10690
REM REENTRY FOR SYMBOLIC FIELD F0D10700
LAS SLASH IS CHARACTER / F0D10710
TRA VCV07 NO, ILLEGAL CHARACTER F0D10720
TRA VCV03 YES, FIELD FOLLOWS F0D10730
LAS Q10 NO, IS CHARACTER NUMERIC F0D10740
TRA VCV07 NO, ILLEGAL CHARACTER F0D10750
TSX MACERR,4 **CHARACTER IS BCD 10 F0D10760
CLA VFDFB YES, MULTIPLY PARTIAL FIELD WIDTH BY 10 F0D10770
ALS 2 F0D10780
ADD VFDFB F0D10790
ALS 1 F0D10800
ADD CHRCTR ADD NEXT DIGIT F0D10810
STO VFDFB SAVE NEW PARTIAL FIELD WIDTH F0D10820
TRA VCV02 F0D10830
REM REENTRY AFTER / FIELD FOLLOWS F0D10840
VCV03 LXA VFDFB,4 LOAD FIELD WIDTH F0D10850
TXL *+4,4,63 IS FIELD TOO LONG F0D10860
STL ERRFE YES, SET ERROR FLAG F0D10870
AXT 63,4 RESET LENGTH OF FIELD F0D10880
SXA VFDFB,4 F0D10890
ZET VFDHF IS FIELD HOLLERITH F0D10900
TRA VCV05 YES F0D10910
NZT VFDOF NO, IS FIELD OCTAL F0D10920
TRA *+3 NO, FIELD IS SYMBOLIC F0D10930
TXH VCV04,4,36 YES, IS OCTAL FIELD GREATER THAN ONE WORD F0D10940
STL BOLMD NO, SET BOOLEAN SCAN FLAG F0D10950
REM FIELD IS SYMBOLIC OR BOOLEAN NOT LONGER THAN ONE WORD F0D10960
TSX SCANF,4 *EVALUATE SYMBOLIC OR BOOLEAN EXPRESSION F0D10970
TXI VCV06,,0 NULL FIELD F0D10980
SLT EXPRR WAS FIELD IN ERROR F0D10990
TRA *+2 NO F0D11000
TRA VCV07+2 YES F0D11010
SLW VFDFL SAVE LOW ORDER PORTION F0D11020
TRA VCV06+1 F0D11030
REM FIELD IS OCTAL F0D11040
VCV04 TSX C0190,4 *GET NEXT CHARACTER F0D11050
LAS COMMA IS IT COMMA F0D11060
TRA VCV07+1 NO, ILLEGAL CHARACTER F0D11070
TRA VCV06+1 YES, END OF FIELD F0D11080
LAS BLANK IS IT BLANK F0D11090
TRA VCV07+1 NO, ILLEGAL CHARACTER F0D11100
TRA VCV06 YES, END OF VARIABLE FIELD F0D11110
LAS Q8 IS IT AN OCTAL DIGIT F0D11120
NOP NO F0D11130
TRA VCV07+1 ILLEGAL CHARACTER F0D11140
CAL VFDFL+1 LOAD HIGH ORDER PORTION OF WORD F0D11150
LDQ VFDFL LOAD LOW ORDER PORTION OF WORD F0D11160
LGL 3 BUMP WORD LEFT ONE OCTAL DIGIT F0D11170
SLW VFDFL+1 SAVE HIGH ORDER PORTION OF WORD F0D11180
XCL F0D11190
ORA CHRCTR APPEND DIGIT TO LOW ORDER PORTION OF WORD F0D11200
SLW VFDFL SAVE LOW ORDER PORTION OF WORD F0D11210
TRA VCV04 F0D11220
REM FIELD IS HOLLERITH F0D11230
VCV05 CAL BLANKS BLANK OUT HIGH AND LOW ORDER PORTION F0D11240
SLW VFDFL+1 WORD F0D11250
SLW VFDFL F0D11260
TSX C0190,4 *GET NEXT CHARACTER F0D11270
LAS COMMA IS IT , F0D11280
TRA *+2 NO F0D11290
TRA VCV06+1 YES, END OF FIELD F0D11300
LAS BLANK NO, IS IT BLANK F0D11310
TRA *+2 NO F0D11320
TRA VCV06 YES, END OF VARIABLE FIELD F0D11330
LDQ VFDFL NO, LOAD LOW ORDER PORTION OF WORD F0D11340
CAL VFDFL+1 LOAD HIGH ORDER PORTION OF WORD F0D11350
LGL 6 SHIFT LEFT ONE CHARACTER F0D11360
SLW VFDFL+1 SAVE HIGH ORDER PORTION OF WORD F0D11370
XCL F0D11380
ORA CHRCTR APPEND NEXT CHARACTER F0D11390
SLW VFDFL SAVE LOW ORDER PORTION OF WORD F0D11400
TRA VCV05+3 F0D11410
REM REENTRY AFTER BLANK, END OF VARIABLE FIELD F0D11420
VCV06 SLN FLDND SET END OF VARIABLE FIELD FLAG F0D11430
REM REENTRY AFTER COMMA, END OF FIELD F0D11440
LXA VFDFB,4 LOAD WIDTH OF FIELD F0D11450
CAL VFDFL+1 LOAD HIGH ORDER PORTION OF FIELD F0D11460
LDQ VFDFL LOAD LOW ORDER PORTION OF FIELD F0D11470
LGL 72,4 LEFT ADJUST FIELD CONTENTS F0D11480
SLW VFDFL+1 SAVE HIGH ORDER PORTION OF FIELD F0D11490
STQ VFDFL SAVE LOW ORDER PORTION OF FIELD F0D11500
TRA VFDCX F0D11510
REM ERROR ON FIELD DESIGNATION - SKIP OVER FIELD F0D11520
VCV07 STZ VFDFB RESET FIELD WIDTH F0D11530
TSX SCEND,4 *SKIP TO END OF FIELD F0D11540
REM FIELD IS IN ERROR F0D11550
STL ERRFE SET ERROR FLAG F0D11560
VFDCX AXT **,4 RELOAD CLALING LINKAGE F0D11570
TRA 1,4 F0D11580
REM F0D11590
REM CONVERT 12 DIGIT OCTAL FIELD TO BINARY F0D11600
OCTSV CAL SYMBL COMBINE LOW AND HIGH ORDER PORTIONS F0D11610
ORA SYMB2 OF 12 DIGIT OCTAL FIELD F0D11620
ANA YYMSK IS ELEMENT OCTAL F0D11630
TNZ OCTSR **NO F0D11640
LDQ SYMBL LOAD LOW ORDER DIGITS F0D11650
CAQ OCTALT,,6 CONVERT FROM OCTAL F0D11660
ARS 18 REPOSITION IN LOW ORDER F0D11670
SLW ELMEQ SAVE F0D11680
NZT SYMB2 DO HIGH ORDER DIGITS EXIST F0D11690
TRA OCTSX NO F0D11700
LDQ SYMB2 LOAD HIGH ORDER DIGITS F0D11710
PXD ,0 F0D11720
CAQ OCTALT,,6 CONVERT FROM OCTAL F0D11730
ANA PRDMK DELETE LOW ORDER GARBAGE F0D11740
ORA ELMEQ COMBINE WITH LOW ORDER DIGITS F0D11750
TRA OCTSX F0D11760
OCTSR SLN EXPRR SET ERROR FLAGS F0D11770
STL ERRFB F0D11780
PXD ,0 DELETE VALUE OF OCTAL INTEGER IN ERROR F0D11790
OCTSX TRA 1,4 F0D11800
PRDMK SVN ,,-1 MASK FOR PREFIX,DECREMENT FIELD BITS 0-17 F0D11810
YYMSK BCI 1,YYYYYY MASK FOR NON-OCTAL CHARACTERS F0D11820
REM F0D11830
REM CONVERT 12 DIGIT DECIMAL FIELD TO BINARY F0D11840
DECSV LDQ SYMBL LOAD LOW ORDER DIGITS F0D11850
PXD ,0 F0D11860
CAQ INTTAB,,6 CONVERT FROM DECIMAL F0D11870
ARS 16 REPOSITION IN LOW ORDER F0D11880
STO ELMEQ SAVE F0D11890
NZT SYMB2 DO HIGH ORDER DIGITS EXIST F0D11900
TRA DECSX NO F0D11910
LDQ SYMB2 YES, LOAD LOW ORDER DIGITS F0D11920
PXD ,0 F0D11930
CAQ INTTAB,,6 CONVERT FROM DECIMAL F0D11940
ARS 16 REPOSITION IN LOW ORDER F0D11950
XCA F0D11960
VLM MILLN,,20 MULTIPLY BY 10**6 F0D11970
TOV *+1 TURN OFF TRIGGER F0D11980
LLS 8 SCALE F0D11990
ADD ELMEQ COMBINE WITH LOW ORDER DIGITS F0D12000
TNO DECSX IS NUMBER LARGER THAN 2**35 F0D12010
SLN EXPRR YES, SET ERROR FLAGS F0D12020
STL ERRFE F0D12030
PXD ,0 DELETE NUMBER F0D12040
DECSX TRA 1,4 F0D12050
MILLN DEC 004096000000 F0D12060
REM F0D12070
REM CONVERT BINARY NUMBER RIGHT ADJUSTED IN AC TO BCD F0D12080
BCDCV LDQ Q0 PREPARE TO CONVERT NUMBER TO DECIMAL F0D12090
TRA BCDV1 HUNDRED THOUSAND PATCH (25)F0D12100
VDP Q10000,,4 TENS OF THOUSANDS F0D12110
RQL 6 F0D12120
LRS 4 F0D12130
VDP Q1000,,4 THOUSANDS F0D12140
RQL 6 F0D12150
LRS 4 F0D12160
VDP Q100,,4 HUNDREDS F0D12170
RQL 6 F0D12180
LRS 4 F0D12190
VDP Q10,,4 TENS F0D12200
RQL 6 F0D12210
STQ NERAS COMBINE WITH F0D12220
ORA NERAS ONES F0D12230
DCT TURN OFF TRIGGER F0D12240
NOP F0D12250
TRA 1,4 F0D12260
REM F0D12270
REM ASSEMBLE 12 CHARACTER ALPHAMERIC SYMBOL F0D12280
SSCAN STZ SYMB2 CLEAR HIGH ORDER SYMBOL F0D12290
STZ SYMBL CLEAR LOW ORDER SYMBOL F0D12300
CAL CHRCTR LOAD FIRST CHARACTER NEXT FIELD F0D12310
ERA BLANK IS IT BLANK F0D12320
TZE 1,4 YES, NULL EXPRESSION F0D12330
REM REENTRY TO CONTINUE SCAN OF FIELD F0D12340
SSCET SXA SSCNX,4 SAVE CALLING LINKAGE F0D12350
TOV *+1 TURN OFF TRIGGER F0D12360
TSX C0190,4 *GET NEXT CHARACTER F0D12370
PAX ,4 FOR TESTING F0D12380
TXL SSCN1,4,9 CHARACTER IS NUMERIC F0D12390
TXL SSCN0,4,12 CHARACTER IS = OR ' F0D12400
TXL SSCRR,4,15 CHARACTER IS ILLEGAL F0D12410
TXL SSCNX,4,16 CHARACTER IS + F0D12420
TXL SSCN1,4,25 CHARACTER IS ALPHABETIC F0D12430
TXL SSCRR,4,26 CHARACTER IS +0 F0D12440
TXL SSCN1,4,27 CHARACTER IS . F0D12450
TXL SSCN0,4,28 CHARACTER IS ) F0D12460
TXL SSCRR,4,31 CHARACTER IS ILLEGAL F0D12470
TXL SSCNX,4,32 CHARACTER IS - F0D12480
TXL SSCN1,4,41 CHARACTER IS ALPHABETIC F0D12490
TXL SSCRR,4,42 CHARACTER IS -0 F0D12500
TXL SSCNX,4,44 CHARACTER IS $ OR * F0D12510
TXL SSCRR,4,47 CHARACTER IS ILLEGAL F0D12520
TXL SSCN2,4,48 CHARACTER IS BLANK F0D12530
TXL SSCNX,4,49 CHARACTER IS / F0D12540
TXL SSCN1,4,57 CHARACTER IS ALPHABETIC F0D12550
TXL SSCRR,4,58 CHARACTER IS RM F0D12560
TXL SSCN2+1,4,59 CHARACTER IS , F0D12570
TXH SSCRR,4,60 CHARACTER IS ILLEGAL F0D12580
REM CHARACTER IS ( ) ' = F0D12590
SSCN0 TXL SSCNX,4,** IS THIS SCAN DURING MACRO DEFINITION F0D12600
TXL SSCRR,4,12 NO, IS CHARACTER = OR ' NOT LEGAL IN FAP F0D12610
REM CHARACTER IS VALID F0D12620
SSCN1 STZ SCNFC RESET FLAG FOR FIRST CHARACTER IN ELEMENT F0D12630
CAL SYMB2 LOAD HIGH ORDER PORTION F0D12640
LDQ SYMBL LOAD LOW ORDER PORTION F0D12650
LGL 6 SHIFT UP NEXT CHARACTER F0D12660
TOV SSCRR IS SYMBOL (OR INTEGER) TOO LONG F0D12670
SLW SYMB2 NO, SAVE HIGH ORDER PORTION F0D12680
XCL F0D12690
ADD CHRCTR APPEND NEXT CHARACTER TO LOW ORDER PART F0D12700
SLW SYMBL SAVE LOW ORDER PORTION F0D12710
TRA SSCET+2 F0D12720
REM CHARACTER IS ILLEGAL F0D12730
SSCRR STZ SYMB2 CLEAR SYMBOL F0D12740
STZ SYMBL F0D12750
SLN EXPRR SET ERROR FLAGS F0D12760
STL ERRFE F0D12770
TSX SCEND,4 *SKIP TO END OF INTEGER F0D12780
TRA FLAGB SET BOOLEAN ERROR FLAG $F0D12790
REM END OF FIELD F0D12800
SSCN2 SLN FLDND SET END OF VARIABLE FIELD (BLANK) FLAG F0D12810
SLN EXPND SET END OF EXPRESSION (, OR BLANK) FLAG F0D12820
SSCNX AXT **,4 RELOAD CALLING LINKAGE F0D12830
TRA 2,4 F0D12840
REM F0D12850
REM SKIP TO END OF EXPRESSION F0D12860
SCEND SXA SCENX,4 SAVE CALLING LINKAGE F0D12870
TSX C0190,4 *GET NEXT CHARACTER F0D12880
PAX ,4 FOR TESTING F0D12890
TXL SCEND+1,4,47 F0D12900
TXL *+4,4,48 CHARACTER IS BLANK F0D12910
TXL SCEND+1,4,58 F0D12920
TXL SCENX,4,59 CHARACTER IS COMMA F0D12930
TRA SCEND+1 F0D12940
SLN FLDND SET END OF VARIABLE FIELD (BLANK) FLAG F0D12950
SCENX AXT **,4 RELOAD CALLING LINKAGE F0D12960
TRA 1,4 F0D12970
REM F0D12980
REM LEFT ADJUST SYMBOL NAME F0D12990
LADJS NZT SYMB2 DOES LENGTH OF SYMBOL EXCEDE 6 CHARACTERS F0D13000
TRA *+3 NO F0D13010
SLN EXPRR YES, SET ERROR FLAGS F0D13020
STL ERRFE F0D13030
CAL SYMBL LOAD LOW ORDER SYMBOL NAME F0D13040
TZE *+5 DOES SYMBOL NAME EXIST F0D13050
LDQ BLANKS YES, LOAD FOLLOWING BLANKS F0D13060
LGR 6 SHIFT OUT NEXT CHARACTER F0D13070
TNZ *-1 IS SYMBOL LEFT ADJUSTED F0D13080
XCL YES, RECALL LEFT ADJUSTED SYMBOL NAME F0D13090
TRA 1,4 F0D13100
REM F0D13110
REM GOOD OLD C0190 - GET NEXT CHARACTER F0D13120
C0190 LDQ RESIDU RELOAD REMAINDER OF SOURCE CARD WORD F0D13130
C019Q BSS 0 ENTRY FOR RESIDUE IN MQ (24)F0D13135
TIX *+3,1,1 IS CHARACTER COUNT EXHAUSTED F0D13140
TSX C0200,1 *YES, GET NEXT SOURCE CARD WORD F0D13150
AXT 6,1 RESET CHARACTER COUNT F0D13160
PXD ,0 F0D13170
LGL 6 SHIFT IN NEXT CHARACTER F0D13180
STQ RESIDU SAVE REMAINDER OF SOURCE CARD F0D13190
SLW CHRCTR SAVE IT F0D13200
TRA 1,4 F0D13210
REM F0D13220
REM LOOK AT NEXT CHARACTER F0D13230
C019A LDQ RESIDU RELOAD REMAINDER OF SOURCE CARD WORD F0D13240
TXH *+4,1,1 IS CHARACTER COUNT EXHAUSTED F0D13250
TSX C0200,1 *YES, GET NEXT SOURCE CARD WORD F0D13260
STQ RESIDU SAVE REMAINDER OF SOURCE CARD F0D13270
AXT 7,1 RESET CHARACTER COUNT F0D13280
PXD ,0 F0D13290
LGL 6 SHIFT IN NEXT CHARACTER F0D13300
TRA 1,4 F0D13310
REM F0D13320
REM GET NEXT WORD F0D13330
C0200 TXI *+1,2,-1 BUMP CARD WORD COUNT F0D13340
LDQ BCDBF,2 LOAD NEXT SOURCE CARD WORD F0D13350
TXH *+2,2,-12 IS THIS CARD IMAGE WORD 13 F0D13360
LDQ BLANKS YES, SET STOP F0D13370
TRA 1,1 F0D13380
REM F0D13390
REM BUMP STORAGE COUNTERS F0D13400
BPCTR STO BERAS SAVE LENGTH OF BUMP F0D13410
ADD CDCTR BUMP CARD STORAGE COUNTER F0D13420
STA CDCTR F0D13430
CLA BERAS RECALL LENGTH OF BUMP F0D13440
ADD LOCTR BUMP PROGRAM COUNTER F0D13450
STA LOCTR F0D13460
TRA 1,4 F0D13470
REM F0D13480
REM ERROR ROUTINES F0D13490
SRCERR STI DIGM2+1 SET TABLE NAME F0D13500
TSX WRITT,4 *WRITE DIAGNOSTIC HEADING F0D13510
PZE DIGM1,,5 F0D13520
CAL DIGM1 SET DOUBLE SPACE F0D13530
SLW BCDBF-1 F0D13540
TSX WRITT,4 *WRITE OFFENDING CARD F0D13550
PZE BCDBF-1,,15 F0D13560
TSX WRITT,4 *WRITE TABLE NAME F0D13570
MZE DIGM2,,5 F0D13580
TSX WRFBK,4 *WRITE LAST PARTIAL LISTING BUFFER F0D13590
TSX (SECL),4 **TERMINATE ASSEMBLY F0D13600
PZE PATCH SPACE FOR POSSIBLE PARAMETER F0D13610
REM F0D13620
TAPERR STZ ORDRF SET TAPE ERROR FLAG $F0D13630
TRA MACERR+2 (RESET BY CLOSEOUT ROUTINES) $F0D13640
MACERR TXI *+1,,0 PARAMETER TO IDENTIFY MACHINE ERROR $F0D13650
STL ORDRF SET MACHINE ERROR FLAG $F0D13660
ZET ORDRF WAS THIS TAPE ERROR $F0D13670
TRA (DIAG) **NO,THIS WAS CORE ERROR $F0D13680
TSX (MECL),4 **YES,ERROR MESSAGE HAS BEEN PRINTED $F0D13690
STP00 CAL* (FGBX) $F0D13700
ANA Q4 IS THIS AN IBSFAP JOB $F0D13710
TZE STP01 NO, THIS IS FORTRAN MODE (24)F0D13720
STL COMCD YES, SET FLAG TO UNBLOCK (24)F0D13730
SSM CONTROL CARDS (24)F0D13740
TRA 1,4 (24)F0D13750
BCDV1 LRS 4 (25)F0D13760
VDP TEN5TH,,4 HUNDREDS OF THOUSANDS (25)F0D13770
RQL 6 (25)F0D13780
LRS 4 (25)F0D13790
TRA BCDCV+2 BACK TO BCDCV ROUTINE (25)F0D13800
DUP 1,6 PATCH SPACE (25)F0D13810
PZE (25)F0D13820
REM F0D13850
DIGM1 BCI 5,0 FAP DIAGNOSTIC RESULT F0D13860
DIGM2 BCI 5,0 TABLE OVERFLOWED F0D13870
HEDNM BCI 1,HEADNG F0D13880
VECNM BCI 1,VECTOR F0D13890
LITNM BCI 1,LITRAL F0D13900
SYMNM BCI 1,SYMBOL F0D13910
OPTNM BCI 1,OPRTN F0D13920
REM F0D13930
*CALL MONITOR SCAN AFTER UPDATE WITH ASSEMBLY DELETED OR END OF PASS 2.$F0D13940
LOADER TSX (LOAD),4,1 *CALL MONITOR SCAN $F0D13950
BCI 1,9F0600 REC. 7 PARAMETER . MONITOR SCAN $F0D13960
REM F0D13970
REM SPACE PAGE F0D13980
SPACP SXA *+5,1 F0D13990
AXT 7,1 F0D14000
TSX (PRNT),4 *PRINT 7 DOUBLE SPACED BLANK LINES F0D14010
PZE SPACE,,1 FOR THE NEARSIGHTED F0D14020
TIX *-2,1,1 F0D14030
AXT **,1 F0D14040
CLA ALONE LIGHT UP CONSOLE F0D14050
ALS 2 F0D14060
ORA ALONE F0D14070
LDQ ALONE F0D14080
HPR -1,7 PAUSE F0D14090
SPACS NOP SHOULD JOB BE TERMINATED F0D14100
TRA 1,2 NO F0D14110
TSX (PRNT),4 *YES, TELL THE WORLD F0D14120
PZE *+2,,6 F0D14130
TRA TAPERR **TERMINATE ASSEMBLY F0D14140
BCI 6,0 ASSEMBLY TERMINATED BY OPERATIONS. F0D14150
REM F0D14160
REM F0D14170
REM CONSTANTS F0D14180
Q0 PZE 0 F0D14190
Q1 PZE 1 9 BIT 0 ZONE F0D14200
Q2 PZE 2 8 BIT 11 ZONE F0D14210
Q4 PZE 4 7 BIT 12 ZONE F0D14220
ZONER SYN * F0D14230
Q8 PZE 8 6 BIT NO ZONE F0D14240
Q16 PZE 16 5 BIT F0D14250
Q32 PZE 32 4 BIT F0D14260
Q64 PZE 64 3 BIT F0D14270
Q128 PZE 128 2 BIT F0D14280
Q256 PZE 256 1 BIT F0D14290
DIGIT PZE 512 0 BIT F0D14300
Q3 PZE 3 F0D14310
DASTR BCI 1,**0000 SPECIAL OP CODE COMPARE WORD (24)F0D14320
Q6 PZE 6 F0D14330
Q7 PZE 7 MASK FOR OCTAL CHARACTER F0D14340
Q10 PZE 10 F0D14350
Q15 PZE 15 F0D14360
INP06 NUMBER - ADDEND OF NEXT CARD (25)F0D14370
Q36 PZE 36 F0D14380
Q62 PZE 62 F0D14390
Q63 PZE 63 MASK FOR BCD CHARACTER F0D14400
Q100 PZE 100 F0D14410
Q127 OCT 1777 MASK FOR LOW ORDER TEN BITS $F0D14420
Q1000 PZE 1000 F0D14430
Q4095 PZE 4095 MASK FOR TWO BCD CHARACTERS F0D14440
Q7680 PZE 7680 F0D14450
Q8192 PZE 8192 F0D14460
Q10000 PZE 10000 F0D14470
Q16384 PZE 16384 F0D14480
ADDMK PZE -1 MASK FOR ADDRESS FIELD BITS 21 - 35 F0D14490
T1 PZE ,1 F0D14500
T2 PZE ,2 F0D14510
T3 PZE ,3 F0D14520
T4 PZE ,4 F0D14530
NUM03 PZE -1,-1,3 MASK FOR LOW ORDER 20 BITS (25)F0D14540
ADTMK PZE -1,-1 MASK FOR ADDRESS,TAG FIELD BITS 18 - 35 F0D14550
D1 PZE ,,1 F0D14560
D2 PZE ,,2 FLAG FOR EXPLICIT ZERO IN MACRO LOC FIELD F0D14570
REM MASK FOR FLAG REQUIRING DECREMENT FIELD F0D14580
DELTF PZE FLAG FOR SYMBOLIC REF TABLE ENTRIES $F0D14590
D4 PZE ,,4 MASK FOR FLAG REQUIRING TAG FIELD F0D14600
D5 PZE ,,5 RELOCATION BITS FOR NAME IN TRANSFER VECTRF0D14610
D8 PZE ,,8 FLAG FOR DUPLICATELY-DEFINED SYMBOLS F0D14620
REM MASK FOR FLAG REQUIRING ADDRESS FIELD F0D14630
INP07 ADDEND FOR NUMBERING (25)F0D14640
D48 PZE ,,48 INSTRUCTION INDIRECT ADDRESS BITS F0D14650
IMASK PZE ,4,48 MASK FOR FLAGS PERMITTING INDIRECT ADDRS F0D14660
D63 PZE ,,63 MASK FOR THIRD CHARACTER IN WORD F0D14670
D320 PZE ,,320 COULUMN BINARY BITS F0D14680
D4032 PZE ,,4032 MACRO ARGUMENT FLAG F0D14690
D32512 PZE ,,32512 MASK FOR 8-BIT COUNT FIELD F0D14700
D32767 PZE ,,-1 F0D14710
P1 PON F0D14720
P4 FOR F0D14730
BLNK3 BCI 1, 000 BLANK FOR OP CODE (24)F0D14740
P7 SVN F0D14750
ALONE SVN -1,-1,-1 FULL WORD MASK F0D14760
OPMSK OCT 777700217777 MASK FOR VALID MACHINE OPERATION BITS F0D14770
P1MSK OCT 777700000000 MASK TO DELETE CC 81 - 84 F0D14780
P2MSK BCI 1,00 MASK TO BLANK OUT CC 81 - 84 F0D14790
QE BCI 1,00000E F0D14800
POINT BCI 1,00000. F0D14810
QO BCI 1,00000O F0D14820
SPACE BCI 1,0 PROGRAM CONTROL CHARACTER F0D14830
4FLAG BCI 1,4 MODE ERROR FLAG F0D14840
9FLAG BCI 1,9 MODE ERROR FLAG F0D14850
EFLAG BCI 1, E LISTING FLAG FOR ERROR F0D14860
MFLAG BCI 1, M F0D14870
RCOMA BCI 1,,00000 F0D14880
REM F0D14890
REM MODE SETTING CHARACTERS FOR TAPENO PSEUDOOPERATION F0D14900
TAPCH BCI 1,00000 (1) F0D14910
QL BCI 1,00000L (2) F0D14920
QH BCI 1,00000H (3) F0D14930
QD BCI 1,00000D (4) F0D14940
QB BCI 1,00000B (5) F0D14950
REM F0D14960
REM MACRO PROCESSOR PUNCTUATION TABLE F0D14970
BKTBM SYN * F0D14980
LPARN BCI 1,00000( F0D14990
COMMA BCI 1,00000, F0D15000
SLASH BCI 1,00000/ F0D15010
BLANK BCI 1,00000 F0D15020
ASTRK BCI 1,00000* F0D15030
DOLAR BCI 1,00000$ F0D15040
MINUS BCI 1,00000- F0D15050
BCI 1,00000) F0D15060
PLUSS BCI 1,00000+ F0D15070
PRIME BCI 1,00000' F0D15080
EQUAL BCI 1,00000= F0D15090
BKTBL PZE ,,BKTBL-BKTBM MACRO PUNCTUATION TABLE F0D15100
REM F0D15110
REM CONVERSION TABLES F0D15120
REM F0D15130
REM TO CONVERT DECIMAL TO BINARY INTEGER F0D15140
INTTAB PZE INTTAB+10 F0D15150
PZE INTTAB+10,,25000 F0D15160
PON INTTAB+10,,50000 F0D15170
PTW INTTAB+10,,75000 F0D15180
PTH INTTAB+10,,100000 F0D15190
PTH INTTAB+10,,125000 F0D15200
FOR INTTAB+10,,150000 F0D15210
FVE INTTAB+10,,175000 F0D15220
SIX INTTAB+10,,200000 F0D15230
SIX INTTAB+10,,225000 F0D15240
INTTAB+20 F0D15250
INTTAB+20,,2500 F0D15260
INTTAB+20,,5000 F0D15270
INTTAB+20,,7500 F0D15280
INTTAB+20,,10000 F0D15290
INTTAB+20,,12500 F0D15300
INTTAB+20,,15000 F0D15310
INTTAB+20,,17500 F0D15320
INTTAB+20,,20000 F0D15330
INTTAB+20,,22500 F0D15340
INTTAB+30 F0D15350
INTTAB+30,,250 F0D15360
INTTAB+30,,500 F0D15370
INTTAB+30,,750 F0D15380
INTTAB+30,,1000 F0D15390
INTTAB+30,,1250 F0D15400
INTTAB+30,,1500 F0D15410
INTTAB+30,,1750 F0D15420
INTTAB+30,,2000 F0D15430
INTTAB+30,,2250 F0D15440
INTTAB+40 F0D15450
INTTAB+40,,25 F0D15460
INTTAB+40,,50 F0D15470
INTTAB+40,,75 F0D15480
INTTAB+40,,100 F0D15490
INTTAB+40,,125 F0D15500
INTTAB+40,,150 F0D15510
INTTAB+40,,175 F0D15520
INTTAB+40,,200 F0D15530
INTTAB+40,,225 F0D15540
INTTAB+50 F0D15550
INTTAB+50,4,2 F0D15560
INTTAB+50,0,5 F0D15570
INTTAB+50,4,7 F0D15580
INTTAB+50,0,10 F0D15590
INTTAB+50,4,12 F0D15600
INTTAB+50,0,15 F0D15610
INTTAB+50,4,17 F0D15620
INTTAB+50,0,20 F0D15630
INTTAB+50,4,22 F0D15640
0 F0D15650
0,2 F0D15660
0,4 F0D15670
0,6 F0D15680
0,0,1 F0D15690
0,2,1 F0D15700
0,4,1 F0D15710
0,6,1 F0D15720
0,0,2 F0D15730
0,2,2 F0D15740
REM F0D15750
REM F0D15760
REM TO CONVERT OCTAL TO BINARY INTEGER F0D15770
OCTALT PZE OCTALT+8 F0D15780
PON OCTALT+8 F0D15790
PTW OCTALT+8 F0D15800
PTH OCTALT+8 F0D15810
FOR OCTALT+8 F0D15820
FVE OCTALT+8 F0D15830
SIX OCTALT+8 F0D15840
SVN OCTALT+8 F0D15850
OCTALT+16 F0D15860
OCTALT+16,,4096 F0D15870
OCTALT+16,,2*4096 F0D15880
OCTALT+16,,3*4096 F0D15890
OCTALT+16,,4*4096 F0D15900
OCTALT+16,,5*4096 F0D15910
OCTALT+16,,6*4096 F0D15920
OCTALT+16,,7*4096 F0D15930
OCTALT+24 F0D15940
OCTALT+24,,512 F0D15950
OCTALT+24,,2*512 F0D15960
OCTALT+24,,3*512 F0D15970
OCTALT+24,,4*512 F0D15980
OCTALT+24,,5*512 F0D15990
OCTALT+24,,6*512 F0D16000
OCTALT+24,,7*512 F0D16010
OCTALT+32 F0D16020
OCTALT+32,,64 F0D16030
OCTALT+32,,2*64 F0D16040
OCTALT+32,,3*64 F0D16050
OCTALT+32,,4*64 F0D16060
OCTALT+32,,5*64 F0D16070
OCTALT+32,,6*64 F0D16080
OCTALT+32,,7*64 F0D16090
OCTALT+40 F0D16100
OCTALT+40,,8 F0D16110
OCTALT+40,,16 F0D16120
OCTALT+40,,24 F0D16130
OCTALT+40,,32 F0D16140
OCTALT+40,,40 F0D16150
OCTALT+40,,48 F0D16160
OCTALT+40,,56 F0D16170
0 F0D16180
,,1 F0D16190
,,2 F0D16200
,,3 F0D16210
,,4 F0D16220
,,5 F0D16230
,,6 F0D16240
,,7 F0D16250
REM F0D16260
REM F0D16270
REM TO CONVERT DECIMAL TO FLOATING POINT BINARY F0D16280
DECTAB SYN *-1 F0D16290
OCT 141500000000,144620000000,147764000000,153470400000 F0D16300
OCT 156606500000,161750220000,165461132000,170575360400 F0D16310
OCT 173734654500,177452013710,202564416672,205721522451 F0D16320
OCT 211443023471,214553630410,217706576512,223434157116 F0D16330
OCT 226543212741,231674055532,235425434430,240532743536 F0D16340
OCT 243661534466,247417031702,252522640262,255647410336 F0D16350
OCT 261410545213,264512676456,267635456171,273402374714 F0D16360
OCT 276503074077,301623713116,304770675742,310473426555 F0D16370
OCT 313612334311,316755023373,322464114135,325601137164 F0D16380
OCT 330741367021,334454732313,337570120775,342726145174 F0D16390
OCT 346445677216,351557257061,354713132676,360436770626 F0D16400
OCT 363546566774,366700324573,372430204755,375536246150 F0D16410
REM F0D16420
REM I/O COMMANDS F0D16430
BSREC MZE 1,,0 COMMAND TO BACKSPACE ONE RECORD F0D16440
BS2RC MZE 2,,0 I/O COMMAND TO BACKSPACE TWO RECORDS F0D16450
REWND PZE ,,-1 COMMAND TO REWIND TAPE F0D16460
UNLOD MZE ,,-1 COMMAND TO REWIND-UNLOAD TAPE F0D16470
INTAP PZE ILABL,,FINTAP PARAM TO READ/WRITE FIRST INTERMED TAPE F0D16480
PZE ILABL,,SINTAP PARAM TO READ/WRITE SECOND INTERMED TAPE F0D16490
INTCK PZE FINTAP,,(CHKU) COMMAND TO CHECK TRANSMISSION INT TAPE 1 F0D16500
PZE SINTAP,,(CHKU) COMMAND TO CHECK TRANSMISSION INT TAPE 2 F0D16510
ITSCH PZE (SCHU)+FINTAP INTERMEDIATE TAPE 1 HISTORY CELL F0D16520
PZE (SCHU)+SINTAP INTERMEDIATE TAPE 2 HISTORY CELL F0D16530
BLABL BCI 1,FAPBIN INTERMEDIATE PUNCH TAPE RECORD LABEL F0D16540
ILABL BCI 1,FAPBCD INTERMEDIATE PRINT TAPE RECORD LABEL F0D16550
REM F0D16560
IORT BBUF11,,** I/O COMMAND TO WRITE LISTING TAPE F0D16570
BCD14 PZE BBUF11,1 ORIGIN OF LISTING OUTPUT BUFFER F0D16580
IORT BBUF12,,** F0D16590
PZE BBUF12,1 F0D16600
REM F0D16610
IORT BBUF21,,UPDBKL I/O COMMAND TO READ UPDATE INPUT TAPE F0D16620
BCD24 PZE BBUF22,1 ORIGIN OF UPDATE INPUT BUFFER F0D16630
IORT BBUF22,,UPDBKL F0D16640
PZE BBUF21,1 F0D16650
REM F0D16660
IORT BBUF31,,UPDBKL I/O COMMAND TO READ SOURCE INPUT TAPE F0D16670
BCD34 PZE BBUF32,1 ORIGIN OF SOURCE INPUT BUFFER F0D16680
IORT BBUF32,,UPDBKL F0D16690
PZE BBUF31,1 F0D16700
REM F0D16710
IORT BBUF41,,** I/O COMMAND TO WRITE UPDATE OUTPUT TAPE F0D16720
BCD44 PZE BBUF41,1 ORIGIN OF UPDATE OUTPUT BUFFER F0D16730
IORT BBUF42,,** F0D16740
PZE BBUF42,1 F0D16750
REM F0D16760
IORT BBUF51,,** I/O COMMAND TO WRITE INTERMEDIATE TAPE F0D16770
BCD54 PZE BBUF51,1 ORIGIN OF INTERMEDIATE OUTPUT BUFFER F0D16780
IORT BBUF52,,** F0D16790
PZE BBUF52,1 F0D16800
REM F0D16810
IORT BBUF51,,INPBKL I/O COMMAND TO READ INTERMEDIATE TAPE F0D16820
BCD55 PZE BBUF52,1 ORIGIN OF INTERMEDIATE INPUT BUFFER F0D16830
IORT BBUF52,,INPBKL F0D16840
PZE BBUF51,1 F0D16850
REM F0D16860
IOCP PBUFF2,,24 I/O COMMAND TO WRITE BINARY OUTPUT RECORD F0D16870
BOTIO IOCT PBUFF2+24,,3 AND CARD SERIALIZATION FROM PROPER BUFFER F0D16880
IOCP PBUFF3,,24 F0D16890
IOCT PBUFF3+24,,3 F0D16900
REM F0D16910
PZE PBUFF2+27,4 ORIGIN OF BINARY OUTPUT RECORD BUFFER F0D16920
BOTBF PZE PBUFF2+1 BINARY OUTPUT BUFFER CHECKSUM F0D16930
PZE PBUFF3+27,4 F0D16940
PZE PBUFF3+1 F0D16950
REM F0D16960
PZE PBUFF4+27,4 ORIGIN OF BINARY INTERMED RECORD BUFFER F0D16970
BINBF PZE PBUFF4+1 BINARY INTERMEDIATE BUFFER CHECKSUM F0D16980
PZE PBUFF5+27,4 F0D16990
PZE PBUFF5+1 F0D17000
REM F0D17010
IOCT PBUFF4,,24 I/O COMMAND TO WRITE BINARY INTER RECORD F0D17020
BINIO PZE F0D17030
IOCT PBUFF5,,24 F0D17040
REM F0D17050
REM F0D17060
DCV15 STZ DCPFG RESET EXCESS DECIMAL POINT FLAG $F0D17070
STZ DCEFG RESET EXCESS EXPONENT (E) FLAG $F0D17071
STZ DC2FG RESET EXCESS EXPONENT (B) FLAG $F0D17072
TRA DCV03+2 $F0D17073
DCV16 ZET DCPFG IS THERE AN EXCESS DECIMAL POINT $F0D17074
TRA DCVRR YES, SET ERROR FLAG $F0D17075
STO DCPFG NO $F0D17076
TRA DCV01 $F0D17077
DCV17 ZET DCEFG IS THERE AN EXCESS EXPONENT (E) $F0D17078
TRA DCVRR YES, SET ERROR FLAG $F0D17079
STO DCEFG NO $F0D1707A
TRA DCV02 $F0D1707B
DCV18 ZET DC2FG IS THERE AN EXCESS EXPONENT (B) $F0D1707C
TRA DCVRR YES, SET ERROR FLAG $F0D1707D
STO DC2FG NO $F0D1707E
TRA DCV03 $F0D1707F
REM CONVERT BINARY NUMBER TO DECIMAL $F0D1707G
OCTDV VLM Q8,,3 $F0D1707H
STO NERAS $F0D1707I
VLM Q80,,3 $F0D1707J
ADD NERAS $F0D1707K
STO NERAS $F0D1707L
VLM Q800,,3 $F0D1707M
ADD NERAS $F0D1707N
STO NERAS $F0D1707O
VLM Q8000,,3 $F0D1707P
ADD NERAS $F0D1707Q
STO NERAS $F0D1707R
VLM Q80000,,3 $F0D1707S
ADD NERAS $F0D1707T
TRA 1,4 $F0D1707U
Q80 PZE 80 $F0D1707V
Q800 PZE 800 $F0D1707W
Q8000 PZE 8000 $F0D1707X
Q80000 DEC 80000 $F0D1707Y
FPRNA CAL* FPRN2 PICK UP FIRST WORD OF LINE $F0D1707Z
ARS 30 ISOLATE FIRST CHARACTER $F0D17080
TNZ WRITT NOT DOUBLE-SPACE, WRITE LINE $F0D17081
TIX WRITT,1,1 YES, BUMP LINE COUNT ONE EXTRA $F0D17082
TRA PAGENO PAGE IS FULL $F0D17083
DLRUT TSX C019A,4 GET NEXT CHARACTER FOR TEST $F0D17084
PAX ,4 $F0D17085
TXL HDTST,4,9 CHARACTER IS NUMERIC $F0D17086
TXL DLERR,4,16 CHARACTER IS ILLEGAL OR PLUS $F0D17087
TXL HDTST,4,25 CHARACTER IS ALPHABETIC $F0D17088
TXL DLERR,4,26 CHARACTER IS ILLEGAL $F0D17089
TXL HDTST,4,28 CHARACTER IS PERIOD OR RIGHT PARENTHESIS$F0D1708A
TXL DLERR,4,32 CHARACTER IS ILLEGAL OR MINUS $F0D1708B
TXL HDTST,4,41 CHARACTER IS ALPHABETIC $F0D1708C
TXL DLERR,4,49 CHARACTER IS BLANK OR EQUALS $F0D1708D
TXL HDTST,4,57 CHARACTER IS ALPHABETIC $F0D1708E
TXL DLERR,4,59 CHARACTER IS ILLEGAL OR COMMA $F0D1708F
TXL HDTST,4,60 CHARACTER IS LEFT PARENTHESIS $F0D1708G
REM REENTRY FOR IMPROPER DOLLAR SIGN $F0D1708H
DLERR SLN EXPRR SET ERROR FLAGS $F0D1708I
STL ERFDL $F0D1708J
TRA SCN02+2 RETURN $F0D1708K
REM REENTRY TO TEST FOR MORE THAN ONE CHARACTER PRECEEDING $F0D1708L
HDTST CAL SYMBL GET PRECEEDING CHARACTERS $F0D1708M
LGR 6 $F0D1708N
TNZ DLERR MORE THAN ONE BEFORE DOLLAR SIGN $F0D1708O
LGL 6 OK $F0D1708P
TRA SCN02+1 RETURN $F0D1708Q
PATCH TXH FPRN1,2,0 IS LINE AT TOP OF PAGE BLANK $F0D1708R
TXI FPRN1,1,-1 YES, BUMP PAGE LINE COUNT DOWN ONE $F0D1708S
FLAGB STL ERRFB INDICATE BOOLEAN ERROR $F0D1708T
TRA SSCN2+1 RETURN $F0D1708U
TTL PASS ONE SUBROUTINES F0D17090
PASSLP SYN * $F0D17093
REM PASS ONE F0D17100
REM F0D17110
REM COPY INPUT TAPE TO INTERMEDIATE TAPE F0D17120
REM PREPARE TABLE OF SYMBOLS APPEARING IN SOURCE PROGRAM F0D17130
REM PARTIALLY PROCESS PSEUDOOPS AND LITERALS F0D17140
REM PREPARE TRANSFER VECTOR F0D17150
REM F0D17160
HEAD 4 PASS ONE F0D17170
ORG PASSLP F0D17180
REM F0D17190
REM SSYMT SUBROUTINE MUST ORIGIN AT SAME LOCATN PASS 1 AND 2 F0D17200
REM LINEAR SEARCH OF SYMBOL TABLE F0D17210
SSYMT SXA SRCHX,4 SAVE CALLING LINKAGE F0D17220
CAL SYMSIZ COMPUTE LENGTH OF SYMBOL TABLE F0D17230
COM F0D17240
ARS 18 F0D17250
ADD Q3 F0D17260
PAX ,4 F0D17270
ADM ESYM3 COMPUTE ORIGIN AT END OF SYMBOL TABLE F0D17280
STA SRCH1 FOR SYMBOL NAMES F0D17290
ADD Q1 F0D17300
STA SRCH2 FOR LOCATIONS F0D17310
CAL SYMBL LOAD SYMBOL NAME F0D17320
SRCH1 LAS **,4 IS IT IN SYMBOL TABLE F0D17330
TIX SRCH1,4,2 NOT YET F0D17340
TXH SRCH2,4,2 YES F0D17350
TIX SRCH1,4,2 NOT YET, IS SYMBOL TABLE EXHAUSTED F0D17360
SLN EXPRR YES, PHASE ERROR F0D17370
PXD ,0 F0D17380
TRA SRCHX F0D17390
SRCH2 CLA **,4 LOAD LOCATION OF SYMBOL F0D17400
PAI LOAD FLAGS F0D17410
LFT 4 IS THIS NAME IN TRANSFER VECTOR F0D17420
SLN EXPRR YES, PHASE ERROR (CANNOT DEFINE PSEUDOOP) F0D17430
ZET ABSFLG IS ASSEMBLY ABSOLUTE F0D17440
ANA ADTMK YES, DELETE EXTRANEOUS FLAGS F0D17450
SXA SET01,4 SAVE LOCATION OF SYMBOL F0D17460
SRCHX AXT **,4 RELOAD CALLING LINKAGE F0D17470
TRA 1,4 F0D17480
REM F0D17490
REM ENTER NAME IN AC, DEFINITION IN SI, IN COMBINED OP TABLE F0D17500
REM SEE REQUIRED FLAGS UNDER COMBINED OP TABLE F0D17510
EOPTB CAL BCDBF LOAD LOCATION FIELD F0D17520
EOPTT SXA EOPTX,4 SAVE CALLING LINKAGE F0D17530
STI BERAS SAVE OP DEFINITION F0D17540
TSX LOCFL,4 *ASSEMBLE OP NAME F0D17550
TZE FIELD **DOES OP NAME EXIST F0D17560
LGR 6 YES, LEFT ADJUST NAME F0D17570
TNZ *-1 F0D17580
XCL F0D17590
SLW SYMBL SAVE LEFT ADJUSTED OP NAME F0D17600
TSX SOPTB,4 *FIND LOCATION IN OP TABLE F0D17610
TRA *+2 NOT IN F0D17620
TRA EOPT1+3 IN TABLE, REDEFINE F0D17630
LAS OPTTBL-2,1 PINPOINT LOCATION OF ENTRY F0D17640
TXI *+2,1,-2 F0D17650
TSX MACERR,4 **IMPOSSIBLE PATH OF FLOW F0D17660
SXD EOPT1,1 MARK LOWEST NAME TO BE MOVED UP F0D17670
LXD OPTSIZ,6 LOAD CURRENT TABLE LENGTH F0D17680
TXI *+1,4,-2 BUMP F0D17690
TXH *+3,4,-LOPTBM DID OP TABLE OVERFLOW F0D17700
LDI OPTNM YES, SET OP TABLE OVERFLOW F0D17710
TRA SRCERR **TERMINATE ASSEMBLY F0D17720
SXD OPTSIZ,4 NO, SET NEW TABLE LENGTH F0D17730
TXI *+1,4,-1 F0D17740
SXD SOPT1,4 SET UPPER LIMIT FOR TABLE SEARCH F0D17750
CAL OPTTBL-2,2 MOVE TABLE UP OFF THE TOP F0D17760
LDQ OPTTBL-1,2 TO MAKE ROOM FOR NEW ENTRY F0D17770
SLW OPTTBL,2 F0D17780
STQ OPTTBL+1,2 F0D17790
TXI *+1,2,2 BUMP TO NEXT PAIR F0D17800
TXL *+2,2,0 IS ENTRY AT BOTTOM OF TABLE F0D17810
EOPT1 TXL *-6,2,** NO, IS TABLE MOVED F0D17820
CAL SYMBL YES, INSERT OP NAME F0D17830
SLW OPTTBL-2,1 INTO TABLE F0D17840
LDI BERAS INSERT OP DEFINITION F0D17850
STI OPTTBL-1,1 INTO TABLE F0D17860
EOPT2 TXH EOPTX,4,-2048 IS TABLE NOW LONGER THAN 1024 OPCODES F0D17870
LXD EOPT2,4 YES, LOAD CURRENT TABLE LENGTH F0D17880
TXI *+1,4,-2048 DOUBLE F0D17890
SXD *-1,4 RESET BUMP F0D17900
SXD EOPT2,4 RESET TEST F0D17910
CAL OPTSIZ BUMP LOGARITHM F0D17920
ADD Q2 FOR TABLE OF DOUBLE SIZE F0D17930
STA OPTSIZ F0D17940
EOPTX AXT **,4 RELOAD CALLING LINKAGE F0D17950
TRA 1,4 F0D17960
REM F0D17970
REM ASSEMBLE SUBPROGRAM NAME AND ENTER INTO TRANSFER VECTOR F0D17980
CALNM SXA CALNX,4 SAVE CALLING LINKAGE F0D17990
STZ SYMBL CLEAR SUBPROGRAM NAME F0D18000
TRA CALN1 TEST FOR ABSOLUTE ASSEMBLY $F0D18010
TSX SCANF,4 *ASSEMBLE SUBPROGRAM NAME F0D18020
TXI AFLAG,,0 NULL SUBPROGRAM NAME F0D18030
SLT EXPRR TURN OFF ERROR FLAG F0D18040
NOP PERMIT MULTIPLE DEFINITION F0D18050
ZET ABSFLG IS ASSEMBLY ABSOLUTE F0D18060
TRA CALNX YES F0D18070
TSX LADJS,4 *LEFT ADJUST SUBPROGRAM NAME F0D18080
TZE *+3 DOES SUBPROGRAM NAME EXIST F0D18090
SLT EXPRR YES, IS SUBPROGRAM NAME FLAGGED AS ERROR F0D18100
TSX TRVCR,4 *NO, ENTER NAME IN TRANSFER VECTOR TABLE F0D18110
STZ TVFLG RESET TRANSFER VECTOR NAME FLAG F0D18120
CALNX AXT **,4 RELOAD CALLING LINKAGE F0D18130
TRA 1,4 F0D18140
REM F0D18150
REM ENTER NAMES IN TRANSFER VECTOR TABLE F0D18160
TRVCR SXA TRVCX,4 SAVE CALLING LINKAGE F0D18170
AXT LTVTBL,4 LOAD TRANSFER VECTOR TABLE LENGTH F0D18180
TXL TRVC1,4,LTVTBL IS VECTOR EXHAUSTED F0D18190
LAS VECTOR+LTVTBL,4 NO, IS IT THIS WORD IN VECTOR F0D18200
TXI *-2,4,-1 NO F0D18210
TRA TRVCX YES F0D18220
TXI *-4,4,-1 NO F0D18230
TRVC1 TXH *+3,4,0 DID TRANSFER VECTOR TABLE OVERFLOW F0D18240
LDI VECNM YES, SET TRANSFER VECTOR OVERFLOW F0D18250
TRA SRCERR **TERMINATE ASSEMBLY F0D18260
SLW VECTOR+LTVTBL,4 ADD NAME TO END OF TABLE F0D18270
PAI HOLD SYMBOL NAME F0D18280
TXI *+1,4,-1 BUMP VECTOR COUNT F0D18290
SXD TRVCR+2,4 RESET END OF TRANSFER VECTOR TABLE TEST F0D18300
LDC TRVCR+2,4 COMPUTE CURRENT LENGTH OF TRANSFER VECTOR F0D18310
TXI *+1,4,LTVTBL F0D18320
SXD PBUFF1+2,4 INSERT IN PROGRAM CARD 8L DECREMENT F0D18330
SXA PBUFF1+5,4 INSERT ENTRY POINT IN PC 7R ADDRESS F0D18340
TXI *+1,4,-1 COMPUTE RELATIVE LOCATION OF VECTOR NAME F0D18350
PXA ,4 F0D18360
ORA D5 AND VECTOR RELOCATION BITS F0D18370
STO ADDRS F0D18380
PIA RECALL SYMBOL NAME F0D18390
TSX ESYMT,4 *DEFINE SYMBOL F0D18400
TRVCX AXT **,4 RELOAD CALLING LINKAGE F0D18410
TRA 1,4 F0D18420
REM F0D18430
REM ENTER NAME, DEFINITION IN ADDRS, INTO SYMBOL TABLE F0D18440
REM ENTRY WORD 1 CONTAINS SYMBOL NAME RIGHT ADJUSTED F0D18450
REM HEADING CHARACTER LEFT ADJUSTED F0D18460
REM FILLED WITH ZEROES F0D18470
REM ENTRY WORD 2 CONTAINS ASSIGNED LOCATION BITS 18-35 F0D18480
REM FLAGS BITS 3 - 17 F0D18490
REM BIT 13 SET SYMBOL F0D18500
REM 14 MULTIPLY DEFINED F0D18510
REM 15 TRANSFER VECTOR NAME F0D18520
REM 16 COMMON VARIABLE F0D18530
REM 17 RELOCATABLE SYMBOL F0D18540
ESYML CAL BCDBF ENTRY POINT TO DEFINE LOCATION FIELD F0D18550
ESYMT SXA ESYMX,4 SAVE CALLING LINKAGE F0D18560
SXA ESYMX+1,2 SAVE WORD COUNT F0D18570
TXH ESYM0,4,-1 IS SYSTEM SYMBOL TABLE PRESERVED F0D18580
SXD *-1,0 NO, RESET SWITCH F0D18590
LDC SYMSIZ,6 LOAD LENGTH OF SYMBOL TABLE F0D18600
TXI *+1,2,SYMTBL COMPUTE ORIGIN AT END OF SYMBOL TABLE F0D18610
SXA *+1,2 INITIALIZE CLEAR LOOP F0D18620
STZ **,4 CLEAR SYMBOL TABLE F0D18630
TIX *-1,4,1 F0D18640
STZ SYMSIZ RESET SYMBOL TABLE COUNT F0D18650
ESYM0 STL FCFLG SET FLAG TO PREVENT ABS OR ENTRY CARDS F0D18660
REM FROM SETTING MODE OF ASSEMBLY F0D18670
TSX LOCFL,4 *ASSEMBLE UNIFORM SYMBOL F0D18680
TZE ESYMX IS THERE A SYMBOL F0D18690
LXD SYMSIZ,4 YES, LOAD CURRENT SYMBOL TABLE SIZE F0D18700
AXT 0,2 LOAD SINGLE HEAD COUNT F0D18710
XCL F0D18720
LGL 6 SHIFT IN FIRST CHARACTER F0D18730
ZET TVFLG IS THIS NAME IN TRANSFER VECTOR F0D18740
TRA *+4 YES, FORCE UNHEADING F0D18750
TNZ *+3 NO, IS SYMBOL SHORTER THAN SIX CHARACTERS F0D18760
HEDCT AXT **,2 NO, LOAD MULTIPLE HEADING COUNT F0D18770
ESYM2 CAL BHEAD,2 APPEND HEADING CHARACTER F0D18780
LGL 30 SHIFT IN HEADED SYMBOL F0D18790
ESYM3 SLW SYMTBL,4 ADD SYMBOL TO END OF TABLE F0D18800
LGR 30 HOLD UNHEADED SYMBOL F0D18810
CLA ADDRS DEFINE SYMBOL AS CURRENT CONTENTS OF F0D18820
STO SYMTBL+1,4 PROGRAM COUNTER F0D18830
TXI *+1,4,-2 BUMP SYMBOL TABLE COUNTER F0D18840
TXH *+3,4,-LSMTBM DID SYMBOL TABLE OVERFLOW F0D18850
LDI SYMNM YES, SET SYMBOL TABLE OVERFLOW F0D18860
TRA SRCERR **TERMINATE ASSEMBLY F0D18870
TXL *+2,2,0 IS MULTIPLE HEADING LIST EXHAUSTED F0D18880
TXI ESYM2,2,-1 NO, BUMP LIST COUNT TO NEXT HEAD CHARACTERF0D18890
SXD SYMSIZ,4 SAVE SYMBOL TABLE LENGTH F0D18900
ESYMS TXI ESYMZ,4,-SYMTBL TO TEST FOR OVERLAP OF MACRO TABLE $F0D18910
SXD STPTR,4 SAVE CURRENT SYMBOL TABLE END $F0D18920
ESYMX AXT **,4 RELOAD CALLING LINKAGE F0D18930
AXT **,2 RELOAD WORD COUNT F0D18940
TRA 1,4 F0D18950
REM F0D18960
REM SCAN PSEUDOOP VARIABLE FIELD F0D18970
SCANP SXA SCNPX,4 SAVE CALLING LINKAGE F0D18980
TSX SCANF,4 *EVALUATE VARIABLE FIELD F0D18990
TXI SCNPX+2,,0 NULL VARIABLE FIELD F0D19000
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D19010
TRA *+2 NO F0D19020
TRA FIELX **YES F0D19030
LDI Q0 PRESET ABSOLUTE SYMBOL F0D19040
ZET VARUR IS VARIABLE FIELD RELOCATABLE F0D19050
SIL 1 YES, SET RELOCATION BIT F0D19060
ZET VARUC IS VARIABLE FIELD COMMON F0D19070
SIL 2 YES, SET COMMON BIT (CANNOT BE BOTH) F0D19080
SCNPX AXT **,4 RELOAD CALLING LINKAGE F0D19090
TRA 2,4 F0D19100
LXA SCNPX,4 RELOAD CALLING LINKAGE F0D19110
LDI Q0 SET NULL FIELD ABSOLUTE ZERO F0D19120
TRA 1,4 F0D19130
REM F0D19140
REM SET FLAG FOR MISSING PSEUDOOP VARIABLE FIELD F0D19150
AFLAG CAL Q64 FLAG MISSING VARIABLE FIELD F0D19160
ORS P1FLG F0D19170
SLN FLDND DELETE F FLAG F0D19180
PXD ,0 F0D19190
TRA 2,4 F0D19200
REM F0D19210
REM LOOK AHEAD FOR ETC CARD F0D19220
PEEKS SXA PEEKX,4 SAVE CALLING LINKAGE F0D19230
SXA PEEKX+1,2 SAVE WORD COUNT F0D19240
SXA PEEKX+2,1 SAVE CHARACTER COUNT F0D19250
PKMSW TXH *+3,4,** IS NEXT CARD TO BE MACRO COMPILED F0D19260
TXH PEEKX,4,** YES, WILL NEXT CARD BE AN ETC F0D19270
TRA PEEK1 YES F0D19280
LXA DUPCD,4 LOAD COUNT OF REMAINING CARDS IN DUP F0D19290
ZET DUPMD IS THIS CARD WITHIN RANGE OF DUP F0D19300
TXL PEEKX,4,0 YES, IS THIS LAST CARD IN DUP F0D19310
LXD SRCSW,4 NO, LOAD SOURCE BUFFER SWITCH F0D19320
TXL *+3,4,0 IS SOURCE BUFFER EMPTY F0D19330
SXD SRCSW,0 YES, RESET SWITCH F0D19340
TSX SRCIN,4 *READ NEXT SOURCE CARD F0D19350
LXD UPDSW,4 LOAD UPDATE BUFFER SWITCH F0D19360
TXL *+3,4,0 IS UPDATE BUFFER EMPTY F0D19370
SXD UPDSW,0 YES, RESET SWITCH F0D19380
TSX UPDIN,4 *READ NEXT UPDATE CARD F0D19390
LDQ INSBF+2 PRELOAD SOURCE WORD 2 F0D19400
REM THIS HAD BETTER NOT BE A 'DELETE' F0D19410
REM FOLLOWED BY AN 'ETC' CARD F0D19420
CAL SRCID+1 LOAD SOURCE ID LEADING CHARACTERS F0D19430
LAS UPDID+1 IS IT SMALLER THAN UPDATE ID F0D19440
TRA *+5 NO, USE UPDATE OPFIELD F0D19450
TRA *+2 EQUAL, CHECK FURTHER F0D19460
TRA *+5 YES, USE SOURCE OPFIELD F0D19470
CAL SRCID LOAD SOURCE ID F0D19480
LAS UPDID IS IT SMALLER THAN UPDATE ID F0D19490
LDQ DELBF+2 NO, USE UPDATE WORD 2 F0D19500
NOP EQUAL, USE SOURCE OPFIELD F0D19510
XCA F0D19520
ANA PKMSK MASK IN CC 8 - 11 F0D19530
ERA ETCMK IS OPCODE ETC F0D19540
TNZ PEEKX NO F0D19550
PEEK1 CAL Q2 YES, SET ETC FLAG IN CARD WORD 14 (CC 84) F0D19560
ORS P1FLG F0D19570
STL ETCMD SET ETC FLAG F0D19580
LXA PEEKX,4 RELOAD CALLING LINKAGE F0D19590
LXA PEEKX+1,2 RELOAD WORD COUNT F0D19600
LXA PEEKX+2,1 RELOAD CHARACTER COUNT F0D19610
TRA 1,4 ETC RETURN F0D19620
PEEKX AXT **,4 RELOAD CALLING LINKAGE F0D19630
AXT **,2 RELOAD WORD COUNT F0D19640
AXT **,1 RELOAD CHARACTER COUNT F0D19650
TRA 2,4 NO ETC RETURN F0D19660
PKMSK OCT 007777777700 MASK FOR OP FIELD CC 8 - 11 F0D19670
ETCMK BCI 1,0ETC 0 MASK FOR ETC PSEUDOOPERATION F0D19680
REM F0D19690
REM F0D19700
REM INPUT/OUTPUT SUBROUTINES F0D19710
REM F0D19720
REM READ CARD FROM SOURCE/UPDATE TAPES F0D19730
INPUT SXA INPTX,4 SAVE CALLING LINKAGE F0D19740
SRCSW TXH *+3,4,-1 IS SOURCE BUFFER EMPTY F0D19750
SXD *-1,0 YES, RESET SWITCH F0D19760
TSX SRCIN,4 *READ NEXT SOURCE CARD F0D19770
TRA SRCS1 $F0D19780
ORA SRCID+1 CC 73 - 80 F0D19790
TZE INP03+1 IS SOURCE ID BLANK F0D19800
NZT IPTFLG NO, IS UPDATE INPUT TAPE PROVIDED F0D19810
TRA INP03+1 NO F0D19820
UPDSW TXH *+3,4,0 YES, IS UPDATE BUFFER EMPTY F0D19830
SXD *-1,0 YES, RESET SWITCH F0D19840
TSX UPDIN,4 *READ NEXT UPDATE CARD F0D19850
TRA INP02+7 F0D19860
REM LAST CARD READ WAS SKIP TO F0D19870
INP00 ZSD SKPFG SET SKIP-TO SWITCH F0D19880
REM LAST CARD READ WAS IGNORE F0D19890
AXT -1,4 SET IGNORE SWITCH F0D19900
SXD DELUP+2,4 F0D19910
REM LAST CARD READ WAS DELETE F0D19920
CAL BCDBF+2 LOAD CARD WORD 3 F0D19930
LAS EBTHR IS CARD DELETE/IGNORE THRU F0D19940
TRA *+2 NO F0D19950
TRA *+6 YES $F0D19960
ERA ETHRU IS CARD DELETE/IGNORE THRU $F0D19970
TZE *+4 YES F0D19980
CAL BCDBF+1 IS CARD F0D19990
ERA SKIPC SKIPTO F0D20000
TNZ INP02 NO F0D20010
STZ SEQID YES, AVOID ERRORS ON DELETE F0D20020
STZ SEQID+1 F0D20030
INP01 CAL UPDID+1 LOAD UPDATE ID LEADING CHARACTERS F0D20040
LAS SRCID+1 IS IT SMALLER THAN SOURCE ID F0D20050
TRA INP02 NO, ALL DONE F0D20060
TRA *+2 EQUAL, CHECK FURTHER F0D20070
TRA *+5 YES, DELETE ANOTHER UPDATE CARD F0D20080
CAL UPDID LOAD UPDATE ID F0D20090
LAS SRCID IS IT SMALLER THAN SOURCE ID F0D20100
TRA INP02 NO, ALL DONE F0D20110
TRA *+4 EQUAL, ONE MORE TO GO F0D20120
SKP01 TSX DELUP+2,4 *YES, LIST UPDATE CARD DELETED F0D20130
TSX UPDIN,4 *GET NEXT UPDATE CARD F0D20140
TRA INP01 F0D20150
SKPFG TXH *+2,4,-1 SKIP SWITCH, DECR IS ZERO IF SKIP-TO F0D20160
TSX DELUP,4 *DELETE MATCHING UPDATE CARD F0D20170
AXT -1,4 RESET SKIP SWITCH F0D20180
SXD *-3,4 FOR ANOTHER USE F0D20190
REM DELETE IS COMPLETE F0D20200
INP02 CAL SKPFG IS SKIP-TO IN EFFECT F0D20210
ANA D32767 IF YES, CONSINUE SEARCHING FOR F0D20220
TZE SKP01 MATCHING SERIALIZATION F0D20230
TSX SRCIN,4 *NO, GET CARD FOLLOWING CONTROL CARD F0D20240
TSX FPRINT,4 *PRINT BLANK LINE F0D20250
PZE F0D20260
TRA INPUT+1 F0D20270
REM MOVE NEXT CARD F0D20280
TRA INP2A $F0D20290
CAL INSBF+3 LOAD SOURCE WORD 3 F0D20300
LAS EBTHR IS CARD DELETE/IGNORE THRU F0D20310
TRA *+2 NO F0D20320
TRA INP03+1 YES, USE IT F0D20330
ERA ETHRU IS CARD DELETE/IGNORE THRU F0D20340
TZE INP03+1 YES, USE IT F0D20350
CAL INSBF+2 IS CARD F0D20360
ERA SKIPC SKIPTO F0D20370
TZE INP03+1 YES, FA LA LA LA F0D20380
CAL UPDID+1 NO, LOAD UPDATE ID LEADING CHARACTERS F0D20390
LAS SRCID+1 IS IT SMALLER THAN SOURCE ID F0D20400
TRA INP03+1 NO, USE SOURCE CARD F0D20410
TRA *+2 EQUAL, CHECK FURTHER F0D20420
TRA *+5 YES, USE UPDATE CARD F0D20430
CAL UPDID LOAD UPDATE ID F0D20440
LAS SRCID IS IT SMALLER THAN SOURCE ID F0D20450
TRA INP03+1 NO, USE SOURCE CARD F0D20460
TRA INPCH EQUAL ,DELETE UPDATE CARD $F0D20470
AXT 14,4 YES, MOVE UPDATE CARD F0D20480
CAL DELBF+15,4 FROM UPDATE INPUT BUFFER F0D20490
SLW BCDBF+14,4 TO WORKING BUFFER F0D20500
TIX *-2,4,1 F0D20510
AXT -1,4 SET SWITCH FOR EMPTY UPDATE BUFFER F0D20520
SXD UPDSW,4 F0D20530
CAL UPDID+1 LOAD ID FOR THIS CARD F0D20540
LDQ UPDID F0D20550
TRA INP04 F0D20560
REM USE NEXT SOURCE CARD F0D20570
INP03 TSX DELUP,4 *DELETE MATCHING UPDATE CARD F0D20580
AXT 14,4 MOVE SOURCE CARD F0D20590
CAL INSBF+15,4 FROM SOURCE INPUT BUFFER F0D20600
SLW BCDBF+14,4 TO WORKING BUFFER F0D20610
TIX *-2,4,1 F0D20620
TRA INP3A $F0D20630
LDQ BCDBF+2 LOAD CARD WORD 3 F0D20640
LGL 6 ASSEMBLE OPCODE (CC 8 - 13) F0D20650
ZET IPTFLG IS AN UPDATE INPUT TAPE PROVIDED F0D20660
LAS IGNOR YES, IS CARD IGNORE F0D20670
TRA *+2 NO F0D20680
TRA INP00+1 YES F0D20690
ERA DELET IS CARD DELETE F0D20700
ZET IPTFLG AND IS AN UPDATE INPUT TAPE PROVIDED F0D20710
TZE INP00+3 YES F0D20720
CAL BCDBF+1 IS CARD F0D20730
ERA SKIPC SKIPTO F0D20740
ZET IPTFLG AND IS UPDATE INPUT TAPE PROVIDED F0D20750
TZE INP00 YES F0D20760
AXT -1,4 NO, SET SWITCH FOR EMPTY SOURCE BUFFER F0D20770
SXD SRCSW,4 F0D20780
NZT DELFLG IS ASSEMBLY DELETED F0D20790
ZET IPTFLG NO, IS AN UPDATE INPUT TAPE PROVIDED F0D20800
TSX INSUP,4 *YES, LIST INSERTED CARD F0D20810
CAL SRCID+1 LOAD ID FOR THIS CARD F0D20820
LDQ SRCID F0D20830
REM PROPER CARD IS IN WORKING BUFFER F0D20840
INP04 SLW SEQID+1 SAVE ID FOR SEQUENCE CHECKING F0D20850
STQ SEQID F0D20860
TXL INP05,4,-1 IS RESERIALIZATION REQUESTED F0D20870
CLA INP06 YES. BUMP SERIALIZATION (25)F0D20880
ADD INP07 (25)F0D20890
STO INP06 (25)F0D20900
ANA NUM03 TRUNCATE TO 19 BITS (25)F0D20910
TSX BCDCV,4 *CONVERT TO DECIMAL (25)F0D20920
LGR 12 RIGHT ADJUST TO COLUMN 80 (25)F0D20930
ACL PROID APPEND LEADING CHARACTERS (25)F0D20940
AXT 0,0 PATCH SPACE (25)F0D20950
SLW BCDBF+12 INSERT NEW ID F0D20960
STQ BCDBF+13 F0D20970
INP05 CAL BCDBF+13 BLANK CC 81 - 84 F0D20980
ANA P1MSK F0D20990
ORA P2MSK F0D21000
SLW BCDBF+13 F0D21010
INPTX AXT **,4 RELOAD CALLING LINKAGE F0D21020
TRA 1,4 F0D21030
DELET BCI 1,DELETE F0D21040
IGNOR BCI 1,IGNORE F0D21050
EBTHR BCI 1,E THR F0D21060
ETHRU BCI 1,E THRU F0D21070
SKIPC BCI 1, SKIPT MASK FOR SKIPTO F0D21080
PROID PZE LEADING CHARACTERS FOR RESERIALIZATION F0D21090
REM F0D21100
REM DELETE CARD FROM UPDATE TAPE F0D21110
DELUP AXT -1,1 SET SWITCH FOR EMPTY UPDATE BUFFER F0D21120
SXD UPDSW,1 F0D21130
TXL DELPX+1,4,** IS CARD IGNORE OR SKIP F0D21140
SXA DELPX,4 NO, SAVE CALLING LINKAGE F0D21150
TSX FPRINT,4 *LIST DELETED CARD (24)F0D21160
DELBF,,17 (24)F0D21170
DELPX AXT **,4 RELOAD CALLING LINKAGE (24)F0D21180
TRA 1,4 (24)F0D21190
REM (24)F0D21200
REM CHECK OPCODE FOR UPDATE PSEUDOOPERATION (24)F0D21205
CKUPD SXA CKPDX,4 SAVE LINKAGE (24)F0D21210
CAL OPCOD OBTAIN OP CODE (24)F0D21215
TSX SOPTB,4 *DEFINE IT (24)F0D21220
TRA CKPDX OPCODE IS UNDEFINED (24)F0D21225
RNT 100000 IS IT A MACHINE OPERATION (24)F0D21230
LNT 100000 NO, IS IT A NON-UPDATE OPERATION (24)F0D21235
TRA CKPDX YES (24)F0D21240
LXA CKPDX,4 RETURN FOR OPCODE (24)F0D21245
TRA 2,4 IS AN UPDATE PSEUDOOPERATION (24)F0D21250
CKPDX AXT **,4 RETURN FOR OPCODE (24)F0D21255
TRA 1,4 IS NOT AN UPDATE PSEUDOOPERATION (24)F0D21260
NUM02 STO INP06 RESET SERIALIZATION (25)F0D21261
TSX SCANP,4 *IS THERE A 2ND SUBFIELD (25)F0D21262
CLA Q10 NO. ADDEND = 10. (25)F0D21263
RFT 3 YES. IS IT ABSOLUTE (25)F0D21264
TRA FIELD **NO. (25)F0D21265
STO INP07 YES. INP07 = ADDEND (25)F0D21266
XCA INP06 = ADDEND * 1ST FIELD (25)F0D21267
TRA NUM04 (25)F0D21270
REM F0D21280
REM LIST CARD INSERTED INTO UPDATE TAPE F0D21290
INSUP SXA INSPX,4 SAVE CALLING LINKAGE F0D21300
TSX SETUP,4 *FIND OPCODE F0D21310
TRA INS01 CARD IS COMMENTS CARD F0D21320
TRA INS01 OPFIELD IS IN ERROR F0D21330
TSX CKUPD,4 SHOULD CARD BE LISTED AS INSERTED (24)F0D21340
TRA INS01 YES F0D21380
CAL INSBF+2 NO, LOAD SOURCE CARD WORD 2 F0D21390
ANA PKMSK MASK IN CC 8 - 10 F0D21400
ERA ENDMK IS IT END F0D21410
TNZ INSPX NO, OMIT LISTING UPDATE CARD F0D21420
INS01 TSX FPRINT,4 *LIST INSERTED CARD (24)F0D21430
INSBF,,17 (24)F0D21440
TSX FPRINT,4 *PRINT BLANK LINE F0D21530
PZE F0D21540
INSPX AXT **,4 RELOAD CALLING LINKAGE F0D21550
TRA 1,4 F0D21560
REM F0D21570
REM READ NEXT CARD ON UPDATE TAPE F0D21580
UPDIN SXA UPDNX,4 SAVE CALLING LINKAGE F0D21590
AXT **,1 LOAD BLOCK WORD COUNT F0D21600
TXH *+2,1,** IS BLOCK EXHAUSTED F0D21610
TSX RDUPD,4 *YES, READ NEXT BLOCK F0D21620
LXA RDUPD+1,2 LOAD BUFFER INDEX F0D21630
AXT 14,4 LOAD CARD LENGTH F0D21640
LDQ* BCD24+1,2 MOVE NEXT WORD F0D21650
STQ DELBF+15,4 INTO UPDATE INPUT BUFFER F0D21660
TXI *+1,1,-1 BUMP BLOCK COUNT TO NEXT WORD F0D21670
TIX *-3,4,1 IS RECORD COMPLETE F0D21680
TXI *+1,1,14-UPDRCL YES, BUMP COUNT PAST EXTRANEOUS WORDS F0D21690
SXA UPDIN+1,1 SAVE NEW BLOCK COUNT F0D21700
CAL DELBF+13 LOAD WORD 13 (CC 73 - 78) F0D21710
SLW UPDID+1 SAVE LEADING CHARACTERS F0D21720
STZ ORDRF RESET SOURCE CARD FLAG F0D21730
TSX ORDER,4 *ASSEMBLE SERIALIZATION (CC 73 -80) F0D21740
SLW UPDID F0D21750
ERA BLANKS IS SERIALIZATION BLANK F0D21760
TNZ UPDNX NO F0D21770
STZ UPDID YES, SET ID TO ZERO F0D21780
STZ UPDID+1 F0D21790
UPDNX AXT **,4 RELOAD CALLING LINKAGE F0D21800
TRA 1,4 F0D21810
UPDID SVN -1,-1,-1 ID (CC 75 - 80) FOR UPDATE CARD F0D21820
SVN -1,-1,-1 ID (CC 73 - 78) FOR UPDATE CARD F0D21830
REM F0D21840
REM READ UPDATE INPUT TAPE F0D21850
RDUPD SXA RDUPX,4 SAVE CALLING LINKAGE F0D21860
AXC 1,1 LOAD BUFFER INDEX F0D21870
SXA *-1,1 FLIP BUFFER INDEX F0D21880
TSX (TAPE),4 *LOAD NEXT BUFFER F0D21890
PZE BCD24,1,(RDEP) F0D21900
UPDTAP PZE ,,** F0D21910
MZE UPDRR F0D21920
CLA BCD24+1,1 LOAD BUFFER ORIGIN F0D21930
PAX ,4 F0D21940
SXD *+3,4 F0D21950
RDUP0 LAC **,4 LOAD LAST+1 WORD READ F0D21960
TXL RDUPD+1,4,0 WAS END FILE ON UPDATE INPUT TAPE SENSED F0D21970
TXI *+1,4,** NO, COMPUTE LENGTH OF RECORD F0D21980
SXD UPDIN+2,4 RESET TEST FOR END OF BUFFER F0D21990
CAL IPRECT BUMP UPDATE INPUT RECORD COUNT F0D22000
ADD Q1 F0D22010
STA IPRECT F0D22020
AXT 0,1 RESET BLOCK LENGTH F0D22030
SXA UPDIN+1,0 F0D22040
RDUPX AXT **,4 RELOAD CALLING LINKAGE F0D22050
TRA 1,4 F0D22060
REM F0D22070
REM ERROR ON UPDATE INPUT TAPE F0D22080
UPDRR TSX (TAPE),4 *SKIP OVER ERROR RECORD F0D22090
PZE Q1,,(SKDP) F0D22100
PZE UPDTAP,,-1 F0D22110
MZE *+1 $F0D22120
CAL IPRECT BUMP UPDATE INPUT TAPE RECORD COUNT $F0D22130
ADD Q1 $F0D22140
STA IPRECT $F0D22150
TRA *+2 $F0D22160
PZE UPDTAP,,-1 F0D22170
TSX FPRINT,4 *PRINT ERROR MESSAGE F0D22180
MZE UPDRM,,8 F0D22190
TSX FPRINT,4 *PRINT CARD PRECEDING CARD DELETED F0D22200
MZE DELBF,,17 F0D22210
TSX FPRINT,4 *PRINT BLANK LINE F0D22220
PZE F0D22230
UPDR1 AXT 5,4 LOAD ERROR COUNT F0D22240
TIX UPDR2,4,1 IS COUNT EXCESSIVE F0D22250
TSX (PRNT),4 *YES, TELL OPERATOR F0D22260
PZE XREDN,,11 F0D22270
TSX SPACP,2 *LET OPERATOR CHECK F0D22280
AXT 5,4 RESET ERROR COUNT F0D22290
UPDR2 SXA UPDR1,4 SAVE ERROR COUNT F0D22300
STZ* UPD00 FORCE FILL OF UPDATE INPUT BUFFERS F0D22310
TRA RDUPD+1 F0D22320
REM F0D22330
UPDCL SXA UPDCX,4 SAVE CALLING LINKAGE F0D22340
AXT UPDC1,4 RESET ERROR RETURN F0D22350
SXA UPDRR,4 TO AVOID HANGING ERROR MESSAGE F0D22360
TSX (TAPE),4 *BACKSPACE OVER FIRST LOOKAHEAD RECORD F0D22370
PZE BSREC,,(SKDP) F0D22380
PZE UPDTAP,,-1 F0D22390
CAL IPRECT UNBUMP UPDATE INPUT RECORD COUNT F0D22400
SUB Q1 F0D22410
STA IPRECT F0D22420
UPDC1 AXT (TAPE),4 RESET ERROR RETURN F0D22430
SXA UPDRR,4 TO CATCH FUTURE ERRORS F0D22440
LXD UPDSW,4 LOAD UPDATE INPUT TAPE SWITCH F0D22450
SXD UPDSW,0 RESET UPDATE INPUT TAPE SWITCH F0D22460
TXH UPDCX,4,0 WAS SECOND RECORD LOOKED AHEAD F0D22470
TSX (TAPE),4 *YES, BACKSPACE OVER SECOND LOOKAHEAD F0D22480
PZE BSREC,,(SKDP) F0D22490
PZE UPDTAP,,-1 F0D22500
CAL IPRECT UNBUMP UPDATE INPUT RECORD COUNT F0D22510
SUB Q1 F0D22520
STA IPRECT F0D22530
UPDCX AXT **,4 RELOAD CALLING LINKAGE F0D22540
TRA 1,4 F0D22550
REM F0D22560
REM READ NEXT CARD ON SOURCE TAPE F0D22570
SRCIN SXA SRCNX,4 SAVE CALLING LINKAGE F0D22580
AXT **,1 LOAD BLOCK WORD COUNT F0D22590
TXH *+2,1,** IS BLOCK EXHAUSTED F0D22600
TSX RDSRC,4 *YES, READ NEXT BLOCK F0D22610
LXA RDSRC+1,2 LOAD BUFFER INDEX F0D22620
AXT 14,4 LOAD CARD LENGTH F0D22630
LDQ* BCD34+1,2 MOVE NEXT WORD F0D22640
STQ INSBF+15,4 INTO SOURCE INPUT BUFFER F0D22650
TXI *+1,1,-1 BUMP BLOCK COUNT TO NEXT WORD F0D22660
TIX *-3,4,1 IS RECORD COMPLETE F0D22670
TXI *+1,1,14-UPDRCL YES, BUMP COUNT PAST EXTRANEOUS WORDS F0D22680
SXA SRCIN+1,1 SAVE NEW BLOCK COUNT F0D22690
CAL INSBF+13 LOAD WORD 13 (CC 73 - 78) F0D22700
SLW SRCID+1 SAVE LEADING CHARACTERS F0D22710
STL ORDRF SET SOURCE CARD FLAG F0D22720
TSX ORDER,4 *ASSEMBLE SERIALIZATION (CC 73 -80) F0D22730
SLW SRCID F0D22740
ERA BLANKS IS SERIALIZATION BLANK F0D22750
TNZ SRCNX NO F0D22760
STZ SRCID YES, SET ID TO ZERO F0D22770
STZ SRCID+1 F0D22780
SRCNX AXT **,4 RELOAD CALLING LINKAGE F0D22790
TRA 1,4 F0D22800
SRCID PZE ID (CC 75 - 80) FOR SOURCE CARD F0D22810
PZE ID (CC 73 - 78) FOR SOURCE CARD F0D22820
REM F0D22830
REM READ SOURCE INPUT TAPE F0D22840
RDSRC SXA RDSRX,4 SAVE CALLING LINKAGE F0D22850
AXC 1,1 LOAD BUFFER INDEX F0D22860
SXA *-1,1 FLIP BUFFER INDEX F0D22870
TSX (TAPE),4 *LOAD NEXT BUFFER F0D22880
PZE BCD34,1,(RDEP) F0D22890
PZE ,,MINTAP F0D22900
MZE SRCRR IS IT REDUNDANCY OR BINARY MODE $F0D22910
CLA BCD34+1,1 LOAD BUFFER ORIGIN F0D22920
PAX ,4 F0D22930
SXD *+3,4 F0D22940
LAC (SCHU)+MINTAP,4 LOAD LAST+1 WORD READ F0D22950
TXL EOFIN,4,0 ENDFIL DETECTED (26)F0D22960
TXI *+1,4,** NO, COMPUTE LENGTH OF RECORD F0D22970
SXD SRCIN+2,4 RESET TEST FOR END OF BUFFER F0D22980
CAL INRECT BUMP SOURCE INPUT RECORD COUNT F0D22990
ADD Q1 F0D23000
STA INRECT F0D23010
AXT 0,1 RESET BLOCK LENGTH F0D23020
SXA SRCIN+1,0 F0D23030
RDSRX AXT **,4 RELOAD CALLING LINKAGE F0D23040
TRA 1,4 F0D23050
REM F0D23060
REM ERROR ON SOURCE INPUT TAPE F0D23070
SRCRR STZ TTLFG KILL SUBTITLE (26)F0D23080
TRA ETEST $F0D23090
TSX (TAPE),4 PRINT ERROR MESSAGE $F0D23100
PZE *+4,,(TPER) FOR REDUNDANCY $F0D23110
MZE *+2,,MINTAP $F0D23120
TRA TAPERR $F0D23130
BCI 2,SOURCEREDUN $F0D23140
SRCRM BCI 4, INCOMPLETE MACRO DEF., (26)F0D23150
BCI 6,UNMATCHED RMT, OR MISSING END CARD (26)F0D23160
ECARD BCI 2,BINARY EOF (26)F0D23170
PZE (NOT USED) (26)F0D23180
REM F0D23190
REM LIST ORDER ERROR F0D23200
ORDER SXA ORDRX,4 SAVE CALLING LINKAGE F0D23210
SLW XERAS SAVE LEADING CHARACTERS (CC 73 - 78) F0D23220
LGL 12 ASSEMBLE ID F0D23230
SLW BERAS SAVE FOLLOWING CHARACTERS (CC 75 - 80) F0D23240
ERA BLANKS IS NEW ID BLANK F0D23250
TZE ORDR3+1 YES, OMIT ORDER CHECK F0D23260
CAL XERAS NO, LOAD NEW LEADING CHARACTERS F0D23270
LAS SEQID+1 IS CARD OUT OF ORDER F0D23280
TRA ORDR3+1 NO F0D23290
TRA *+2 MAYBE F0D23300
TRA ORDR1 YES F0D23310
CAL BERAS LOAD NEW FOLLOWING CHARACTERS F0D23320
LAS SEQID IS CARD OUT OF ORDER F0D23330
TRA ORDR3+1 NO F0D23340
TRA ORDR3+1 NO F0D23350
REM CARD IS OUT OF ORDER F0D23360
ORDR1 CAL INSBF+2 LOAD SOURCE WORD 2 F0D23370
ANA PKMSK MASK IN CC 8 - 10 F0D23380
ERA ENDMK IS IT END F0D23390
NZT ORDRF YES, IS ORDER ERROR ON UPDATE INPUT TAPE F0D23400
TZE ORDR3+1 YES, AVOID ORDER ERROR MESSAGE F0D23410
AXT 14,4 NO, PREPARE TO MOVE CARD OUT OF ORDER F0D23420
CAL INSBF+15,4 FROM SOURCE INPUT BUFFER F0D23430
NZT ORDRF IS SOURCE CARD IN ERROR F0D23440
CAL DELBF+15,4 NO, FROM UPDATE INPUT BUFFER F0D23450
SLW ORDBF+15,4 TO ORDER BUFFER F0D23460
TIX *-4,4,1 F0D23470
CAL SRCWD LOAD SOURCE LABEL F0D23480
NZT ORDRF IS SOURCE CARD IN ERROR F0D23490
CAL UPDWD NO, LOAD UPDATE LABEL F0D23500
SLW ORDBF+15 INSERT IN MESSAGE F0D23510
TSX FPRINT,4 *LIST CARD OUT OF ORDER F0D23520
ORDRS MZE ORDBF,,18 F0D23530
TSX FPRINT,4 *PRINT BLANK LINE F0D23540
PZE F0D23550
ORDR2 AXT 40,4 LOAD ORDER ERROR COUNT F0D23560
TIX ORDR3,4,1 IS COUNT EXCESSIVE F0D23570
TSX (PRNT),4 *YES, TELL OPERATOR F0D23580
PZE XORDR,,11 F0D23590
TSX SPACP,2 *LET OPERATOR CHECK F0D23600
AXT 40,4 RESET ORDER ERROR COUNT F0D23610
ORDR3 SXA ORDR2,4 SAVE ORDER ERROR COUNT F0D23620
REM REENTRY FOR CARD NOT OUT OF ORDER F0D23630
CAL BERAS RELOAD FOLLOWING CHARACTERS F0D23640
ORDRX AXT **,4 RELOAD CALLING LINKAGE F0D23650
TRA 1,4 F0D23660
SRCWD BCI 1,SOURCE F0D23670
UPDWD BCI 1,UPDATE F0D23680
ENDMK BCI 1,0END 0 MASK FOR END PSEUDOOPERATION F0D23690
SEQID PZE ID (CC 75 - 80) FOR LAST CARD USED F0D23700
PZE ID (CC 79 - 80) FOR LAST CARD USED F0D23710
REM F0D23720
REM PACK INTERMEDIATE, UPDATE BUFFERS F0D23730
OTPUT SXA OTPTX,4 SAVE CALLING LINKAGE F0D23740
AXT **,1 LOAD UPDATE OUTPUT TAPE BLOCK COUNT F0D23750
NZT OPTFLG IS UPDATE OUTPUT TAPE REQUESTED F0D23760
TRA OTPT1 NO F0D23770
MCREF TXH *+2,4,** YES, IS THIS MACRO EXPANSION F0D23780
REM (DECREMENT IS -1 FOR MACRO GENERATED CARD)F0D23790
TXL OTPT1,4,-1 YES, IS MACRO EXPANSION TO BE OUTPUT F0D23800
MCRDF TXH *+2,4,** NO, IS THIS MACRO DEFINITION OR CALL F0D23810
REM (DECREMENT IS -1 FOR MACRO CALL OR DEF) F0D23820
TXL OTPT1,4,** YES, IS MACRO CALL OR DEF TO BE OUTPUT F0D23830
REM (UMC FLIPS DECREMENTS MCREF+1, MCRDF+1) F0D23840
TXL *+4,1,0 YES, HAS THIS BLOCK BEEN STARTED F0D23850
NZT PAKFLG YES, IS UNBLOCKED OUTPUT TAPE REQUESTED F0D23860
UPBLK TXH *+2,1,-UPDBKL+UPDRCL-1 NO. IS BLOCK FULL (25)F0D23870
TSX WROPT,4 *YES, WRITE LAST BLOCK F0D23880
LAC WROP0,2 LOAD BUFFER INDEX F0D23890
AXT UPDRCL,4 LOAD RECORD LENGTH F0D23900
CAL BCDBF+UPDRCL,4 MOVE NEXT WORD F0D23910
SLW* BCD44+1,2 INTO UPDATE OUTPUT BUFFER F0D23920
TXI *+1,1,-1 BUMP BLOCK COUNT TO NEXT WORD F0D23930
TIX *-3,4,1 IS CARD COMPLETE F0D23940
SXA OTPUT+1,1 YES, SAVE NEW BLOCK COUNT F0D23950
ZET PAKFLG IS UNBLOCKED OUTPUT TAPE REQUESTED F0D23960
TSX WROPT,4 *YES, WRITE THIS BLOCK F0D23970
SXD PAKFLG,0 RESET FLAG F0D23980
TRA OTPT1 F0D23990
REM ENTRY TO WRITE INTERMEDIATE TAPE ONLY F0D24000
OTPT0 SXA OTPTX,4 SAVE CALLING LINKAGE F0D24010
OTPT1 AXT **,1 LOAD INTERMEDIATE TAPE BLOCK WORD COUNT F0D24020
ZET DELFLG HAS ASSEMBLY BEEN DELETED F0D24030
TRA OTPTX YES F0D24040
CAL P1FLG NO, INSERT PASS 1 FLAGS F0D24050
OTPT2 TRA OTPT3 AS RIGHT HALF OF WORD 14 $F0D24060
TXL *+4,1,0 HAS THIS BLOCK BEEN STARTED F0D24070
NZT DUPFG YES, IS UNBLOCKED INTERMED TAPE REQUESTED F0D24080
TXH *+2,1,-INPBKL+INPRCL+INPREM-1 NO, IS BLOCK FULL F0D24090
TSX WRINT,4 *YES, WRITE LAST BLOCK F0D24100
LAC WRIN0,2 LOAD BUFFER LENGTH F0D24110
AXT INPRCL,4 LOAD RECORD LENGTH F0D24120
CAL BCDBF+INPRCL,4 MOVE NEXT WORD F0D24130
SLW* BCD54+1,2 INTO INTERMEDIATE OUTPUT BUFFER F0D24140
TXI *+1,1,-1 BUMP BLOCK COUNT TO NEXT WORD F0D24150
TIX *-3,4,1 IS RECORD COMPLETE F0D24160
SXA OTPT1,1 YES, SAVE NEW BLOCK COUNT F0D24170
ZET DUPFG IS UNBLOCKED INTERMEDIATE TAPE REQUIRED F0D24180
TSX WRINT,4 *YES, WRITE THIS BLOCK F0D24190
STZ DUPFG RESET FLAG F0D24200
OTPTX AXT **,4 RELOAD CALLING LINKAGE F0D24210
ZSD MCREF RESET MACRO GENERATED CARD SWITCH F0D24220
TRA 1,4 F0D24230
REM F0D24240
REM WRITE UPDATE OUTPUT TAPE F0D24250
WROPT SXA WROPX,4 SAVE CALLING LINKAGE F0D24260
LAC OTPUT+1,1 LOAD UPDATE OUTPUT TAPE BLOCK WORD COUNT F0D24270
TXL WROPX,1,0 IS BLOCK EMPTY F0D24280
PXD ,1 NO, SET BLOCK LENGTH F0D24290
WROP0 AXC 1,1 LOAD BUFFER INDEX F0D24300
SXA *-1,1 FLIP BUFFER INDEX F0D24310
STD BCD44,1 INITIALIZE I/O COMMAND WORD COUNT F0D24320
TSX (TAPE),4 *WRITE UPDATE OUTPUT TAPE F0D24330
PZE BCD44,1,(WDNP) F0D24340
OPDTAP PZE ,,** F0D24350
PZE TAPERR F0D24360
CAL OPRECT BUMP UPDATE OUTPUT TAPE RECORD COUNT F0D24370
ADD Q1 F0D24380
STA OPRECT F0D24390
AXT 0,1 RESET BLOCK LENGTH F0D24400
SXA OTPUT+1,0 F0D24410
WROPX AXT **,4 RELOAD CALLING LINKAGE F0D24420
TRA 1,4 F0D24430
REM F0D24440
REM WRITE INTERMEDIATE TAPES F0D24450
WRINT SXA WRINX,4 SAVE CALLING LINKAGE F0D24460
LXA READ1,2 LOAD INTERMEDIATE TAPE INDEX F0D24470
LAC OTPT1,1 LOAD INTERMEDIATE TAPE BLOCK WORD COUNT F0D24480
TXL WRINX,1,0 IS BLOCK EMPTY F0D24490
PXD ,1 NO, SET BLOCK LENGTH F0D24500
WRIN0 AXC 1,1 LOAD BUFFER INDEX F0D24510
SXA *-1,1 FLIP BUFFER INDEX F0D24520
STD BCD54,1 INITIALIZE I/O COMMAND WORD COUNT F0D24530
TSX (TAPE),4 *WRITE INTERMEDIATE RECORD F0D24540
PZE BCD54,1,(WBNP) F0D24550
PZE INTAP,2,-1 F0D24560
PZE TAPERR F0D24570
AXT 0,1 RESET BLOCK LENGTH F0D24580
SXA OTPT1,0 F0D24590
WRINX AXT **,4 RELOAD CALLING LINKAGE F0D24600
TRA 1,4 F0D24610
TTL PASS ONE CONTROL F0D24620
START AXT 1,1 SET FLAG FOR ENTRY INTO $F0D24660
SXA (MSLN),1 ERROR RECORDS F0D24670
TSX (TAPE),4 *REWIND FIRST INTERMEDIATE TAPE F0D24680
PZE REWND,,(SKBP) F0D24690
PZE ,,FINTAP F0D24700
DCT TURN OFF TRIGGER F0D24710
NOP F0D24720
CAL (DATE) LOAD JOB DATE F0D24730
TZE NDATE IS THERE A PRESUMPTIVE DATE F0D24740
ANA BLANKS YES, MASK IN ZONE BITS F0D24750
TNZ NDATE IS DATE VALID F0D24760
LDQ (DATE) YES, RELOAD APPARENTLY VALID DATE F0D24770
LGL 6 F0D24780
TNZ *+2 IS IT A TWO-DIGIT MONTH F0D24790
CAL BLANK NO, BLANK OUT FIRST DIGIT F0D24800
LGL 6 LEFT ADJUST SECOND DIGIT IN MONTH F0D24810
ALS 6 F0D24820
ORA SLASH APPEND SLASH F0D24830
LGL 12 LEFT ADJUST TWO DIGIT DAY F0D24840
ALS 6 F0D24850
ORA SLASH APPEND SLASH F0D24860
SLW PGHDNG+14 INSERT IN WORD IS OF PAGE HEADING F0D24870
LGL 12 LEFT ADJUST TWO DIGIT YEAR F0D24880
LDQ BLANKS FOLLOWED BY BLANKS F0D24890
LGL 24 F0D24900
SLW PGHDNG+15 INSERT IN WORD 16 OF PAGE HEADING F0D24910
NDATE LXD SYMSIZ,4 LOAD LENGTH OF SYSTEM SYMBOL TABLE F0D24920
SXD *+2,4 INITIALIZE COMPUTATION TO SAVE SST F0D24930
AXT TOPTAB-BOTTAB,4 PREPARE TO CLEAR MEMORY F0D24940
TXI *+1,4,** SAVE SYSTEM SYMBOL TABLE F0D24950
STZ TOPTAB+1,4 CLEAR REST OF MEMORY F0D24960
TIX *-1,4,1 F0D24970
LXD OPTSIZ,4 INITIALIZE TEST F0D24980
TXI *+1,4,-1 F0D24990
SXD SOPT1,4 FOR END OF OPTABLE SEARCH F0D25000
LXD MOPTR,2 LOAD INITIAL BOTTOM OF MACRO TABLE F0D25010
SXD MAC07,2 SET MACRO EXPANSION TABLE OVERFLOW TEST F0D25020
SXD ESYMZ,2 AND SYMBOL TABLE OVERLAP TEST $F0D25030
AXT ,0 $F0D25040
TSX (TAPE),4 *REWIND SECOND INTERMEDIATE TAPE F0D25050
PZE REWND,,(SKDP) F0D25060
PZE ,,SINTAP F0D25070
LDI (ENDS) LOAD END CARD SETTINGS F0D25080
RNT 040000 IS END CARD SETTING 1 SPECIFIED F0D25090
STL CRDFLG NO, SET ONLINE CARDS FLAG F0D25100
RFT 010000 IS END CARD SETTING 3 SPECIFIED F0D25110
SXD WRIT1,0 YES, SET ONLINE PRINT SWITCH F0D25120
RFT 004000 IS END CARD SETTING 4 SPECIFIED F0D25130
STL ONLCFG YES, SET ONLINE COLUMN BINARY FLAG F0D25140
RFT 000400 IS END CARD SETTING 7 SPECIFIED F0D25150
STL LBLFLG YES, SET CARD LABEL FLAG F0D25160
RNT 000100 IS END CARD SETTING 9 SPECIFIED F0D25170
STL OFLCFG NO, SET OFFLINE COLUMN BINARY FLAG F0D25180
ENDC TRA FRPA1 YES, CHECK PACK/UNPACK OPTIONS $F0D25190
PZE $F0D25200
CAL BLANKS SET ID BLANK EX NEW C/T SIMULATOR F0D25210
SLW BBUF31+12 F0D25220
SLW BBUF31+13 F0D25230
SLW BBUF32+12 F0D25240
SLW BBUF32+13 F0D25250
STL (SCHU)+MINTAP RESET HANGING END OF FILE F0D25260
REM LEFT BY NONSTANDARD MONITOR F0D25270
REM VIOLATING RULES OF IOP F0D25280
REM TSK, TSK, TSK F0D25290
TSX RDSRC,4 *START LOOKAHEAD BUFFERING F0D25300
TRA SOURC F0D25310
REM F0D25320
REM CONTROL ROUTINE FOR DELETED ASSEMBLIES F0D25330
DPAS1 TSX SETUP,4 *FIND OPCODE F0D25340
TRA COMCD MAY BE * CONTROL CARD F0D25350
TRA READ3+1 IMPROPER OPCODE (24)F0D25360
ZSD READ2 GUARD AGAINST ACCIDENTAL REWIND (24)F0D25370
ZSA COMCD SET FLAG TO BLOCK COMMENTS CARD (24)F0D25380
TSX CKUPD,4 *IS OPCODE AN UPDATE PSEUDOOPERATION (24)F0D25390
TRA READ3+1 NO (24)F0D25400
TRA PSOPT YES, PROCESS IT (24)F0D25410
PZE (NOT USED) (24)F0D25420
PZE (NOT USED) (24)F0D25430
REM F0D25440
REM CARD IS COMMENTS CARD F0D25450
COMCD AXT -1,2 SET FLAG TO UNBLOCK UPDATE OUTPUT TAPE F0D25460
SXD PAKFLG,2 F0D25470
TXH READ1,4,-1 IS THIS FIRST COMMENTS CARD F0D25480
TRA STP0A YES, WHAT KIND $F0D25490
ZET FCFLG IS THIS FIRST CARD GROUP F0D25500
TRA READ1 NO F0D25510
CAL BLANK YES, DELETE ASTERISK F0D25520
LGR 6 F0D25530
AXT 12,4 F0D25540
STQ PGHDNG+13,4 INSERT CC 2 - 72 F0D25550
LDQ BCDBF+13,4 INTO WORDS 2 - 13 OF PAGE HEADING F0D25560
TIX *-2,4,1 F0D25570
NZT OPTFLG IS UPDATE OUTPUT TAPE REQUIRED F0D25580
TRA SOURC NO F0D25590
REM F0D25600
REM F0D25610
REM REENTRY TO WRITE CARD F0D25620
READ1 AXT 0,2 LOAD INTERMEDIATE TAPE INDEX F0D25630
AXT 1000,4 LOAD FIRST INTERMEDIATE TAPE RECORD LIMIT F0D25640
NZT DUPMD IS THIS RECORD IN RANGE OF A DUP CARD F0D25650
TRA READ2 NO F0D25660
REM F0D25670
REM CARD IS WITHIN RANGE OF DUP F0D25680
STL DUPFG SET FLAG TO UNBLOCK INTERMEDIATE TAPE F0D25690
DUPCD AXT **,4 LOAD COUNT OF CARDS REMAINING IN DUP F0D25700
TXL DUPC1,4,0 IS DUP EXHAUSTED F0D25710
TXI *+1,4,-1 NO, BUMP COUNT DOWN F0D25720
SXA DUPCD,4 RESET DUP CARD COUNT F0D25730
LXA READ1+1,4 RELOAD COUNT FOR FIRST INTERMEDIATE TAPE F0D25740
TIX READ3,4,1 IS FIRST INTERMEDIATE TAPE FULL F0D25750
TRA READ3+1 YES, BUT DO NOT SWITCH TAPES F0D25760
REM RANGE OF DUP IS EXHAUSTED F0D25770
DUPC1 CAL LOCTR COMPUTE NET LENGTH OF DUP F0D25780
SUB DUPCT+1 F0D25790
XCA F0D25800
VLM DUPCT,,18 COMPUTE GROSS LENGTH OF DUP F0D25810
STO BERAS SAVE LENGTH OF BUMP F0D25820
ADD DUPCT+1 F0D25830
STA LOCTR RESET PROGRAM COUNTER F0D25840
CLA BERAS RECALL LENGTH OF BUMP F0D25850
ADD DUPCT+2 RESET CARD STORAGE COUNTER F0D25860
STA CDCTR F0D25870
STZ DUPMD RESET FLAG F0D25880
TRA READ3+1 F0D25890
REM CARD IS NOT WITHIN RANGE OF DUP F0D25900
READ2 TIX READ3,4,1 IS FIRST INTERMEDIATE TAPE FULL F0D25910
TSX (TAPE),4 *YES, WRITE END FILE F0D25920
PZE ,,(WEFP) F0D25930
PZE INTAP,,-1 F0D25940
PZE TAPERR F0D25950
TSX (TAPE),4 *REWIND FIRST INTERMEDIATE TAPE F0D25960
PZE REWND,,(SKBP) F0D25970
PZE INTAP,,-1 F0D25980
AXT -1,2 SWITCH TO SECOND INTERMEDIATE TAPE $F0D25990
AXT -1,4 $F0D25995
SXA READ1,2 RESET INTERMEDIATE TAPE INDEX F0D26000
SXD READ2,0 DELETE INTERMEDIATE TAPE FULL TEST F0D26010
REM REENTRY FOR UNSWITCHED TAPES, CARD WITHIN RANGE OF DUP F0D26020
READ3 SXA READ1+1,4 SAVE INTERMEDIATE TAPE COUNT F0D26030
TSX OTPUT,4 *WRITE INTERMEDIATE/UPDATE RECORD F0D26040
REM REENTRY FOR CARDS NOT WRITTEN ON INTERMEDIATE TAPES F0D26050
REM INCLUDING PAGE HEADING, UPDATE PSEUDOOPERATIONS, F0D26060
REM OR AFTER CARDS OUTPUT INDEPENDENTLY BY MACRO PROCESSOR F0D26070
SOURC TXI *+1,,** IS NEXT CARD TO BE MACRO GENERATED F0D26080
REM (POINTER TO NEXT HIGHER LEVEL SWITCH) F0D26090
TSX INPUT,4 *NO, GET NEXT SOURCE/UPDATE CARD F0D26100
REM F0D26110
REM PROCESS CARD SUCCESSFULLY READ F0D26120
ZET DELFLG IS ASSEMBLY DELETED F0D26130
TRA DPAS1 YES F0D26140
STZ P1FLG NO, CLEAR PASS 1 FLAGS F0D26150
REM REENTRY FOR MACRO GENERATED CARDS F0D26160
CNTRL SLF TURN OFF FLAGS F0D26170
STZ SYMBL CLEAR SYMBOL F0D26180
STZ LITRL CLEAR VALUE OF LITERAL OR PSEUDOOPERATION F0D26190
STZ OPBIN CLEAR INSTRUCTION, PSEUDOOP TRANSFER F0D26200
CLA LOCTR UPDATE PROGRAM COUNTER F0D26210
STO ADDRS F0D26220
TSX SETUP,4 *SET UP VARIABLE FIELD F0D26230
TRA COMCD CARD IS COMMENTS CARD F0D26240
SLN EXPRR OP FIELD IS IN ERROR F0D26250
SXA COMCD,0 RESET FLAG TO BLOCK COMMENTS CARDS F0D26260
ROUTE TXI *+1,,** IS THIS CARD MACRO DEFINING F0D26270
REM (POINTER TO NEXT HIGHER LEVEL SWITCH) F0D26280
SLT EXPRR NO, IS OP FIELD IN ERROR F0D26290
TRA *+2 NO F0D26300
TRA INSTR YES F0D26310
ZET ETCMD DOES THIS CARD FOLLOW CALL OR VFD F0D26320
TRA ETCOP YES F0D26330
CAL OPCOD NO, RELOAD OPERATION CODE F0D26340
TSX SOPTB,4 *FIND OPERATION IN COMBINED OPERATION TABLEF0D26350
TRA INSTR NOT FOUND F0D26360
STI OPBIN SAVE FOR PASS TWO F0D26370
RNT 100000 IS THIS A PSEUDOOPERATION F0D26380
TRA PSOPT YES F0D26390
REM OPCODE IS MACHINE OPERATION F0D26400
REM REENTRY FOR IMPROPER USE OF PSEUDOOP, IMPROPER OP FIELD F0D26410
INSTR NZT CNTFG HAS CARD COUNT BEEN GIVEN F0D26420
TRA *+4 YES F0D26430
CNTFG TSX WRITT,4 *NO, WRITE NO COUNT MESSAGE F0D26440
IOCD NOCNT,,5 F0D26450
STZ CNTFG RESET SWITCH F0D26460
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D26470
CLA Q1 F0D26480
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D26490
CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD F0D26500
SUB EQUAL IS CHARACTER = F0D26510
TZE LITOP YES F0D26520
SUB MINUS IS CHARACTER $ F0D26530
NZT ABSFLG MAYBE, BUT IGNORE IT IN ABS ASSEMBLY F0D26540
TZE DOLOP YES F0D26550
TRA READ1 F0D26560
REM F0D26570
REM F0D26580
REM END OF INPUT TAPE F0D26590
ENDFA AXT ENDF1,4 RESET ERROR RETURN FOR BINARY INPUT F0D26600
SXA SRCRR+1,4 FOLLOWING END CARD F0D26610
TSX (TAPE),4 *BACKSPACE OVER END FILE OR LOOKAHEAD CARD F0D26620
PZE BSREC,,(SKDP) F0D26630
PZE ,,MINTAP F0D26640
CAL INRECT UNBUMP SOURCE INPUT RECORD COUNT F0D26650
SUB Q1 F0D26660
STA INRECT F0D26670
ENDF1 ZET IPTFLG IS UPDATE INPUT TAPE PROVIDED F0D26680
TSX UPDCL,4 *YES, BACKSPACE OVER LOOKAHEAD CARDS F0D26690
NZT OPTFLG IS AN UPDATE OUTPUT TAPE REQUESTED F0D26700
TRA *+4 NO F0D26710
TSX (TAPE),4 *YES, CLOSE OUT UPDATE OUTPUT TAPE F0D26720
PZE Q0,,(SKDP) F0D26730
PZE OPDTAP,,-1 F0D26740
NZT DELFLG IS ASSEMBLY DELETED F0D26750
TRA ENDFC NO F0D26760
TSX WRFBK,4 YES, WRITE LAST PARTIAL LISTING BUFFER F0D26770
AXT ENDFB,4 RESET ERROR RETURN F0D26780
SXA TAPERR+1,4 F0D26790
AXT 6,1 $F0D26800
TSX (TAPE),4 *CLOSE OUT ALL TAPES F0D26810
PZE 8,1,(CHKU) CLOSE OUT TAPES 2 THRU 7 $F0D26820
ENDFB TIX *-2,1,1 F0D26830
TSX (TAPE),4 *SPACE OVER PASS 2 F0D26840
PZE Q1,,(SKBP) F0D26850
PZE ,,SYSTAP F0D26860
TRA LOADER F0D26870
ENDFC LXD RMTEN+1,1 LOAD POINTER TO REMOTE SEQUENCES F0D26880
TXL ENDFD,1,0 ARE THERE ANY REMOTE SEQUENCES F0D26890
AXT 6,4 YES, MOVE COMMENT INTO CARD IMAGE F0D26900
CAL RMTCD+6,4 F0D26910
SLW BCDBF+6,4 F0D26920
TIX *-2,4,1 F0D26930
AXT 8,4 FILL CARD IMAGE WITH BLANKS F0D26940
CAL BLANKS F0D26950
SLW BCDBF+14,4 F0D26960
TIX *-1,4,1 F0D26970
SXA BCDBF+13,0 DELETE PASS 1 FLAGS F0D26980
AXT 5$REMOP,4 SET PASS TWO TRANSFER TO PRINT CARD F0D26990
SXD OPBIN,4 F0D27000
TSX OTPT0,4 *WRITE REMOTE HEADING $F0D27010
AXT ENDFD,4 PREVENT ANY FURTHER READING F0D27020
SXA SOURC,4 OF SOURCE INPUT TAPE F0D27030
TSX RMTSR,4 *EXPAND REMOTE SEQUENCES F0D27040
ENDFD TSX WRINT,4 *WRITE LAST PARTIAL INTERMEDIATE BLOCK F0D27050
TXH ENDFE,2,0 IS THIS FIRST INTERMEDIATE TAPE F0D27060
TSX (TAPE),4 *YES, WRITE END FILE ON FIRST INT TAPE F0D27070
PZE ,,(WEFP) F0D27080
PZE INTAP,,-1 F0D27090
PZE TAPERR F0D27100
TSX (TAPE),4 *REWIND FIRST INTERMEDIATE TAPE F0D27110
PZE REWND,,(SKBP) F0D27120
PZE INTAP,,-1 F0D27130
TSX (TAPE),4 *WRITE EMPTY RECORD ON SECOND INTERM TAPE F0D27140
PZE P7,,(WBNP) $F0D27150
PZE INTAP+1,,-1 F0D27160
PZE TAPERR F0D27170
ENDFE TSX (TAPE),4 *WRITE END FILE ON SECOND INTERM TAPE F0D27180
PZE ,,(WEFP) F0D27190
PZE INTAP+1,,-1 F0D27200
PZE TAPERR F0D27210
TSX (TAPE),4 *REWIND SECOND INTERMEDIATE TAPE F0D27220
PZE REWND,,(SKBP) F0D27230
PZE INTAP+1,,-1 F0D27240
REM PREPARE PROGRAM CARD F0D27250
ENDFF TRA ENDFP CHECK FOR EVEN OP WITH ODD PROLOGUE $F0D27260
ZET SEPFLG IS STANDARD ERROR PROCEDURE REQUESTED F0D27270
ZET MAINPF YES, IS THIS A SUBPROGRAM F0D27280
TRA *+2 NO, STORE PROLOGUE LENGTH $F0D27290
ADD Q2 YES, BUMP BY LENGTH OF LINKAGE DIRECTOR F0D27300
STA PBUFF1+5 SAVE ENTRY POINT PC 7R ADDRESS F0D27310
STA PROLG SAVE LENGTH OF RELOCATION F0D27320
CLA CDCTR COMPUTE PROGRAM BREAK F0D27330
CAS PRGBK IS THIS PORTION OF PROGRAM LONGER F0D27340
STA PRGBK YES F0D27350
NOP NO F0D27360
CLA PRGBK LOAD LENGTH OF PROGRAM F0D27370
ADD PBUFF1+5 ADD LENGTH OF TRANSFER VECTOR AND PROLOG F0D27380
STA PBUFF1+2 SAVE ACTUAL PROGRAM BREAK PC 8L ADDRESS F0D27390
LDC LSCH1,2 ADD LENGTH OF LITERAL TABLE F0D27400
TXI *+1,2,-2 F0D27410
PXA ,2 F0D27420
ADD PRGBK TO END OF PROGRAM F0D27430
STA ADDRS F0D27440
CAL ENDOP LOAD END CARD LOCATION SYMBOL F0D27450
TSX ESYMT,4 *DEFINE PROGRAM BREAK F0D27460
REM F0D27470
REM PREPARE FOR PASS TWO TABLE SEARCHES F0D27480
LDC LSCH1,2 COMPUTE LENGTH OF LITERAL TABLE F0D27490
TXI *+1,2,-1 F0D27500
SXD LITSIZ,2 F0D27510
PXA ,2 COMPUTE LOGARITHM OF TABLE LENGTH F0D27520
AXT 2,2 PREPARE FOR ONE-WORD ENTRIES F0D27530
ARS 1 DIVIDE TABLE IN HALF F0D27540
TZE *+2 HAS TABLE DISAPPPEARED F0D27550
TXI *-2,2,1 NO, BUMP LOGARATHM F0D27560
PXA ,2 F0D27570
ALS 1 F0D27580
STA LITSIZ F0D27590
LDC SYMSIZ,2 DITTO FOR SYMBOL TABLE F0D27600
SXD SYMSIZ,2 F0D27610
PXA ,2 F0D27620
AXT 1,2 BUT TABLE IS OF TWO WORD ENTRIES F0D27630
ARS 1 F0D27640
TZE *+2 F0D27650
TXI *-2,2,1 F0D27660
PXA ,2 F0D27670
ALS 1 F0D27680
STA SYMSIZ F0D27690
ZET ABSFLG IS THIS PROGRAM ABSOLUTE F0D27700
TRA REL02+1 YES F0D27710
CLA UPCTR NO, COMPUTE COMMON BREAK F0D27720
ENDCF TXL *+2,4,-1 IS THERE ANY COMMON F0D27730
STA PBUFF1+3 YES, SAVE COMMON BREAK PC 8R ADDRESS F0D27740
CLA PBUFF1+3 SET COMMON BREAK FLAG F0D27750
SLW UPCTR STORE IT WITHOUT SIGN $F0D27760
REM RELOCATE SYMBOL TABLE F0D27770
LDC SYMSIZ,4 LOAD LENGTH OF SYMBOL TABLE F0D27780
TXL SORT9,4,0 IS THERE A SYMBOL TABLE F0D27790
SXD REL02,4 YES, SET END OF SYMBOL TABLE TEST F0D27800
AXT 0,4 START WITH BOTTOM OF TABLE F0D27810
REL01 LDI SYMTBL+1,4 LOAD NEXT ADDRESS F0D27820
LFT 1 IS SYMBOL RELOCATABLE F0D27830
LFT 4 YES, IS IT ABOVE TRANSFER VECTOR F0D27840
TXI REL02,4,-2 NO, BUMP TO NEXT ENTRY F0D27850
PIA YES, RELOCATE SYMBOL UPWARD F0D27860
ADD PBUFF1+5 BY LENGTH OF TRANSFER VECTOR AND PROLOG F0D27870
STA SYMTBL+1,4 INSERT IN SYMBOL TABLE F0D27880
TXI REL02,4,-2 BUMP TO NEXT ENTRY F0D27890
REL02 TXH REL01,4,** IS TABLE FINISHED F0D27900
REM SORT SYMBOL TABLE F0D27910
REM THE ALGORITHM FOR THIS SORT HAS APPEARED IN AN ISSUE OF F0D27920
REM ACM AND WAS ADAPTED FOR 709 USE BY THE DEES CANTOR AND F0D27930
REM MOORE. IT IS A RADIX 2 SORT, AND SORTS ON BITS IN F0D27940
REM DESCENDING ORDER FROM 0 (SIGN) BIT TO BIT 35 F0D27950
REM SORTB CONTAINS (COMPLEMENT OF) LOCATION OF FIRST SYMBOL F0D27960
REM SORTA CONTAINS (COMPLEMENT OF) LOCATION OF LAST SYMBOL F0D27970
REM SORTA+N CONTAIN (COMPLEMENT OF) LOCATION OF BREAK F0D27980
REM BETWEEN 0 AND 1 BIT ON -N KEY (E.G. SORTA+35, F0D27990
REM KEY 0 (SIGN) BIT, SORTA+34 BIT 1). THIS IS TO F0D28000
REM DELIMIT SUBSORTS ON LOWER ORDER BITS. IF NO F0D28010
REM SUBSORT IS NECESSARY (LOWER ORDER BITS DO NOT F0D28020
REM EXIST, OR FALL RANDOMLY IN PROPER ORDER) EMPTY F0D28030
REM KEY CONDITION IS INDICATED BY SORTA+N = SORTA+N+1F0D28040
REM IF TWO SYMBOL NAMES FALL INTO SAME KEY GROUP DOWN TO BIT F0D28050
REM 35, THEY ARE IDENTICAL AND ENTERED INTO DUPICATELY F0D28060
REM DEFINED SYMBOL LIST WITH EVERY ADDRESS WITHIN KEY. F0D28070
REM AS SORT IS COMPLETED (EMPTY KEY GROUPS) AT THE UPPER AND F0D28080
REM LOWER EXTREMITIES OF THE SORT, SORTA AND SORTB ARE BUMPEDF0D28090
REM DOWN AND UP (COMPLEMENT) RESPECTIVELY. F0D28100
REM IF SORT FAILS, IE UNDEFINED SYMBOLS WHICH APPEAR IN F0D28110
REM LOCATION FIELDS, CHECK THE SENSE INDICATORS FOR MACHINE F0D28120
REM ERROR. THIS IS THE BEST KNOWN TEST OF SENSE INDICATORS F0D28130
LXD SYMSIZ,2 COMPUTE ACTUAL LENGTH OF SYMBOL TABLE F0D28140
TNX SORT9,2,2 HAS TABLE ONLY ONE ENTRY F0D28150
TXI *+1,2,SYMTBL NO, COMPUTE LOCATION OF LAST NAME IN TABLEF0D28160
PXA ,2 F0D28170
PAC ,2 F0D28180
SXA SORTA,2 SAVE COMPLEMENT OF LOCATION F0D28190
AXT 36,1 PREPARE TO SORT ON BIT 0 (SIGN BIT) F0D28200
REM REENTRY TO SORT ON NEXT BIT F0D28210
SORT1 LXA SORTB,4 LOAD POSITION OF CURRENT START OF SORT F0D28220
CLA SORTA+36,1 LOAD POSITION OF CURRENT END OF SORT BLOCKF0D28230
PAX ,2 F0D28240
CAL SRTBT+36,1 LOAD CURRENT SORTING BIT F0D28250
TXI SORT3,2,-2 BUMP TO ORG FOLLOWING LAST NAME IN BLOCK F0D28260
REM REENTRY FOR SYMBOL NAME EQUAL TO KEY (KEY BIT = 1) F0D28270
SORT2 TXI *+1,4,-2 BUMP CURRENT SYMBOL INDEX UP F0D28280
TXI *+1,2,2 BUMP ORIGIN DOWN ONE SYMBOL F0D28290
SXD *+1,4 INITIALIZE TEST FOR END OF MOVE LOOP F0D28300
TXH SORT5,2,** IS SYMBOL AT END OF SORT F0D28310
LDI 0,2 NO, LOAD NEXT SYMBOL F0D28320
TIF *+2 IS THIS SYMBOL LOCICALLY LOWER (KEY BIT=0)F0D28330
TXI *-3,2,2 NO, BUMP TO NEXT SYMBOL F0D28340
LDQ -2,4 YES, INTERCHANGE SYMBOL NAMES F0D28350
STI -2,4 F0D28360
STQ 0,2 F0D28370
LDI 1,2 INTERCHANGE LOCATIONS F0D28380
LDQ -1,4 F0D28390
STI -1,4 F0D28400
STQ 1,2 F0D28410
SORT3 SXD *+1,2 SET TEST FOR LOCATION OF LAST SYMBOL NAME F0D28420
TXL SORT5,4,** IS CURRENT SYMBOL AT END OF SORT F0D28430
LDI 0,4 NO, LOAD CURRENT SYMBOL NAME F0D28440
TIO SORT2 DOES CURRENT SYMBOL NAME CONTAIN KEY BIT=1F0D28450
TXI *-3,4,-2 NO, BUMP TO NEXT SYMBOL NAME F0D28460
REM KEY IS NOT EMPTY F0D28470
SORT4 CLA SORTA+36,1 LOAD END OF NEXT BLOCK F0D28480
TRA SORT5+2 F0D28490
REM SORT ON THIS BIT IN CURRENT BLOCK IS FINISHED F0D28500
SORT5 TXI *+1,2,2 BUMP ORIGIN DOWN ONE SYMBOL F0D28510
PXA ,2 F0D28520
STA SORTA+37,1 SAVE BREAK BETWEEN 0 AND 1 BITS THIS BLOCKF0D28530
CAS SORTB IS THIS BLOCK EMPTY F0D28540
TRA SORT4 NO, BUMP BREAK TO NEXT BLOCK F0D28550
TRA SORT7 YES, BUMP START OF SORT TO NEXT BLOCK F0D28560
SORT6 TIX SORT1,1,1 NO, ARE ALL KEYS EXHAUSTED F0D28570
REM SYMBOL IS MULTIPLY DEFINED F0D28580
CAL D8 LOAD DUPLICATELY-DEFINED SYMBOL FLAG F0D28590
LXA SORTA+36,2 LOAD BEGINNING OF DD SYMBOL BLOCK F0D28600
LXA SORTB,4 LOAD END OF DD SYMBOL BLOCK F0D28610
SXD *+3,4 SET TEST FOR END OF LOOP F0D28620
ORS 1,2 FLAG THIS SYMBOL F0D28630
TXI *+1,2,2 BUMP TO NEXT SYMBOL F0D28640
TXL *-2,2,** IS BLOCK COMPLETELY FLAGGED F0D28650
AXT 1,1 YES, RESET KEY INDEX TO BIT 35 F0D28660
CLA SORTA+36 DELETE BLOCK INCLUDING F0D28670
SUB Q2 DUPICATELY DEFINED SYMBOL F0D28680
STA SORTB F0D28690
CLA SORTA+35 BUMP BREAK UP TO NEXT BLOCK F0D28700
STA SORTA+36 F0D28710
CAS SORTB IS NEXT BLOCK EMPTY F0D28720
STA SORTB NO, DELETE NEXT BLOCK F0D28730
TRA SORT8 YES, GO TEST FOR END OF SORT F0D28740
TRA SORT6+1 NO, FLAG NEXT DD SYMBOL BLOCK F0D28750
REM REENTRY FOR EMPTY BLOCK F0D28760
SORT7 SUB Q2 BUMP START OF SORT UP TO NEXT BLOCK F0D28770
STA SORTB F0D28780
LDQ SORTA+36,1 BUMP BREAK UP TO NEXT BLOCK F0D28790
STQ SORTA+37,1 F0D28800
TLQ SORT6 IS THIS BLOCK EMPTY F0D28810
REM REENTRY AFTER FLAGGING MULTIPLY DEFINED SYMBOL F0D28820
SORT8 TXH SORT9,1,35 YES, IS SORT COMPLETE F0D28830
LDQ SORTA+35,1 NO, BUMP END OF SORT DOWN ONE BLOCK F0D28840
STQ SORTA+36,1 F0D28850
TLQ *+2 IS THIS BLOCK EMPTY F0D28860
TXI SORT8,1,1 YES, BUMP KEY INDEX UP TO NEXT KEY F0D28870
SUB Q2 BUMP START OF SORT UP TO NEXT SYMBOL F0D28880
STA SORTB F0D28890
TLQ SORT1 IS THIS BLOCK EMPTY F0D28900
TXI SORT8,1,1 YES, BUMP KEY INDEX TO NEXT KEY F0D28910
REM END OF SORT F0D28920
SORT9 TRA JPLCH *CALL PASS TWO. $F0D28930
TTL PASS ONE PSEUDOOPERATION PROCESSOR F0D28940
PSOPT ZET INDFG IS PSEUDOOPERATION INDIRECTLY ADDRESSED F0D28950
TRA OPERR **YES F0D28960
LXD VRFLD,2 NO, RELOAD WORD COUNT F0D28970
LXA VRFLD,1 RELOAD CHARACTER COUNT F0D28980
PIA RECALL TRANSFER ADDRESS F0D28990
STA *+1 INITIALIZE TRANSFER F0D29000
TRA ** F0D29010
REM F0D29020
704OP AXT 11,4 RESET NUMBER OF COLUMNS PRECEEDING F0D29030
SXA CMPVF,4 VARIABLE FIELD FOR MACRO GENERATED CARD F0D29040
TRA READ1 F0D29050
REM F0D29060
709OP AXT 15,4 RESET NUMBER OF COLUMNS PRECEEDING F0D29070
SXA CMPVF,4 VARIABLE FIELD FOR MACRO GENERATED CARD F0D29080
TRA READ1 F0D29090
REM F0D29100
ABSOP ZET ABSFLG IS ASSEMBLY ABSOLUTE F0D29110
TRA ABS01 YES F0D29120
ZET MAINPF MAYBE, WAS THERE A PRECEDING ENTRY CARD F0D29130
ZET FCFLG NO, IS THIS FIRST CARD GROUP F0D29140
TRA OPERR **NO, TOO LATE F0D29150
STL ABSFLG YES, SET ABSOLUTE ASSEMBLY FLAG F0D29160
STZ SEPFLG RESET STANDARD ERROR PROCEDURE FLAG F0D29170
STZ PBUFF1 DELETE PROGRAM CARD 9L PREFIX, WORD COUNT F0D29180
SXD LOCTR,0 DELETE RELOCATION BITS F0D29190
ABS01 TRA READ1 F0D29200
REM F0D29210
BCDOP CAL BCDBF+1 LOAD CARD WORD 2 F0D29220
ANA Q63 MASK IN CC 12 F0D29230
LAS BLANK IS IT BLANK F0D29240
TRA BCI02+3 NO, IT IS ILLEGAL F0D29250
TRA BCI01 YES (FULL CARD) F0D29260
TZE BCI01 NO, IS IT ZERO (FULL CARD) F0D29270
TRA BCI02+1 NO F0D29280
REM F0D29290
BCIOP CLA CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD F0D29300
TZE BCI03 $F0D29310
SUB COMMA NO, IS IT COMMA F0D29320
TNZ BCI02 NO F0D29330
TXH BCI02,1,2 YES, IS COMMA IN CC 12 F0D29340
TXL BCI02,1,1 MAYBE F0D29350
BCI01 CLA Q10 YES F0D29360
TRA BCI03 F0D29370
BCI02 ADD COMMA RESTORE FIRST CHARACTER F0D29380
CAS Q10 IS IT LEGAL F0D29390
NOP NO F0D29400
CLA Q1 NO, SET IT TO 1 F0D29410
REM (MACHINE ERROR WILL BE CAUGHT PASS 2) F0D29420
BCI03 TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D29430
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D29440
TRA READ1 F0D29450
REM F0D29460
BESOP SXD BSS01,0 SET BES SWITCH F0D29470
TRA BSSOP+1 F0D29480
REM F0D29490
BSSOP SXD BSS01,2 SET BSS SWITCH F0D29500
TSX SCANF,4 *EVALUATE LENGTH OF BLOCK F0D29510
TXI AFLAG,,0 NULL BLOCK LENGTH F0D29520
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D29530
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE F0D29540
TRA PHASE **YES F0D29550
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D29560
LDI Q0 PRESET SYMBOL LOC TO BEGINNING OF BLOCK F0D29570
BSS01 TXL *+3,1,** IS PSEUDOOP BES F0D29580
STA ADDRS YES, DEFINE SYMBOL AT END OF BLOCK F0D29590
LDI VAREQ F0D29600
PIA RECALL SYMBOL DEFINITION F0D29610
ALS 18 CONSTRUCT LENGTH,,DEFINITION FOR PASS 2 F0D29620
ADD VAREQ F0D29630
SLW LITRL F0D29640
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D29650
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D29660
TRA FIELD **NO F0D29670
TRA READ1 YES F0D29680
REM F0D29690
BOLOP STL BOLMD SET BOOL MODE FLAG F0D29700
TSX SCANF,4 *EVALUATE BOOLEAN EXPRESSION F0D29710
TXI AFLAG,,0 NULL BOOLEAN EXPRESSION F0D29720
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D29730
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE F0D29740
TRA FIELD **YES F0D29750
SLW ADDRS SAVE DEFINITION F0D29760
SLW LITRL SAVE FOR PASS 2 F0D29770
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D29780
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D29790
TRA FIELD **NO F0D29800
TRA READ1 YES F0D29810
REM F0D29820
ETCOP STZ ETCMD RESET ETC MODE FLAG F0D29830
ZET VFDMD IS THIS VFD ETC CARD F0D29840
TRA VFETC YES F0D29850
TRA CLETC NO, THIS MUST BE CALL ETC F0D29860
REM F0D29870
CALOP TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D29880
TSX CALNM,4 *ENTER NAME IN TRANSFER VECTOR F0D29890
TRA CAL01+1 F0D29900
REM REENTRY AFTER COMMA OR ETC CARD F0D29910
CLETC TSX C019A,4 *LOOK AT NEXT CHARACTER F0D29920
ERA BLANK IS IT BLANK FOLLOWING COMMA F0D29930
TNZ CAL01 NO F0D29940
TSX PEEKS,4 *YES, DOES ETC CARD FOLLOW F0D29950
TRA CAL03 YES F0D29960
CLA Q1 NO, LOAD LENGTH OF NULL FIELD F0D29970
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D29980
TRA CAL02 F0D29990
REM REENTRY TO COUNT NEXT ARGUMENT F0D30000
CAL01 TSX SCEND,4 *SKIP TO END OF ARGUMENT F0D30010
REM REENTRY AFTER SUBPROGRAM NAME F0D30020
CLA Q1 LOAD LENGTH OF SUBROUTINE NAME OR ARGUMENTF0D30030
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D30040
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D30050
TRA CLETC NO, PUNCTUATION WAS COMMA F0D30060
REM ETC MAY NOT FOLLOW F0D30070
CAL02 CLA Q2 LOAD LENGTH OF SEP PARAMETERS F0D30080
ZET SEPFLG IS STANDARD ERROR PROCEDURE REQUESTED F0D30090
TSX BPCTR,4 *YES, BUMP PROGRAM COUNTER F0D30100
CAL03 TRA READ1 F0D30110
REM F0D30120
COMOP ZET ABSFLG IS THIS AN ABSOLUTE ASSEMBLY F0D30130
TRA OPERR **YES, OPERATION IS UNDEFINED F0D30140
ZET DUPMD NO, IS THIS WITHIN RANGE OF DUP F0D30150
TRA PHASE **YES F0D30160
SXD ENDCF,0 NO, SET COMMON FLAG F0D30170
TSX SCANF,4 *EVALUATE LENGTH OF BLOCK F0D30180
TXI AFLAG,,0 NULL BLOCK LENGTH F0D30190
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D30200
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE F0D30210
TRA PHASE **YES F0D30220
CLA UPCTR NO, DEFINE COMMON VARIABLE AS CURRENT F0D30230
STO ADDRS LOCATION OF UPPER STORAGE COUNTER F0D30240
STA LITRL CONSTRUCT ADDRS,,UPCTR FOR PASS 2 F0D30250
SUB VAREQ BUMP COUNTER F0D30260
STA UPCTR F0D30270
ALS 18 F0D30280
STD LITRL F0D30290
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D30300
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D30310
TRA FIELD **NO F0D30320
TRA READ1 YES F0D30330
REM F0D30340
CNTOP NZT FCFLG IS THIS FIRST CARD GROUP F0D30350
NZT CNTFG YES, IS CARD COUNT MISSING F0D30360
TRA FIELD **NO, TOO LATE F0D30370
STZ CNTFG YES, RESET FLAG F0D30380
TSX SCANF,4 *EVALUATE VARIABLE FIELD F0D30390
TXI AFLAG,,0 NULL COUNT F0D30400
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D30410
ZET RBITS NO, IS COUNT RELOCATABLE F0D30420
TRA FIELD **YES F0D30430
ARS 1 DIVIDE BY TWO F0D30440
CAS Q36 IS COUNT LESS THAN ONE BLOCK F0D30450
STA READ1+1 NO, RESET INTERMEDIATE TAPE RECORD LIMIT F0D30460
NOP YES F0D30470
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D30480
TRA FIELD **NO F0D30490
TRA READ1 YES F0D30500
REM F0D30510
DECOP TSX SCEND,4 *SKIP TO END OF INTEGER F0D30520
CLA Q1 F0D30530
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D30540
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D30550
TRA DECOP NO F0D30560
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D30570
TRA READ1 F0D30580
REM F0D30590
DOLOP LXD VRFLD,2 RELOAD WORD COUNT F0D30600
LXA VRFLD,1 RELOAD CHARACTER COUNT F0D30610
TSX C0190,4 *DELETE DOLLAR SIGN F0D30620
TSX CALNM,4 *ENTER SUBPROGRAM NAME INTO TRANSFER VECTORF0D30630
TRA READ1 F0D30640
REM F0D30650
DUPOP TSX SCANF,4 *EVALUATE RANGE OF DUP F0D30660
TXI AFLAG,,0 NULL RANGE F0D30670
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D30680
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE F0D30690
TRA PHASE **YES F0D30700
TZE DUP01 DOES DUP CONTAIN CARDS F0D30710
STA LITRL YES, CONSTRUCT RANGE,,ITERATNS FOR PASS 2 F0D30720
TSX SCANF,4 *EVALUATE ITERATIONS OF DUP F0D30730
TXI DUP01,,0 NULL ITERATIONS F0D30740
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D30750
ZET RBITS NO, IS VARIABLE FIELD RELOCATABLE F0D30760
TRA PHASE **YES F0D30770
TZE *+3 IS DUP ITERATIVE F0D30780
SUB Q1 YES, IS ITERATIONS GREATER THAN 1 F0D30790
TNZ *+3 YES F0D30800
SLF NO, SET FIELD ERROR FLAG F0D30810
TRA DUP01 F0D30820
ZET DUPMD YES, IS DUP WITHIN RANGE OF DUP F0D30830
TRA PHASE **YES F0D30840
ALS 18 NO, REPOSITION ITERATIONS F0D30850
STD LITRL SAVE FOR PASS 2 F0D30860
ADD D1 BUMP BACK TO ITERATION COUNT F0D30870
STD DUPCT INITIALIZE COUNTER F0D30880
CLA LITRL RELOAD RANGE OF DUP F0D30890
STA DUPCD SET CARD COUNTER F0D30900
CLA LOCTR SAVE PROGRAM COUNTER AT BEGINNING OF DUP F0D30910
STA DUPCT+1 F0D30920
CLA CDCTR SAVE CARD STORAGE COUNTER F0D30930
STA DUPCT+2 F0D30940
STL DUPMD SET DUP MODE FLAG F0D30950
DUP01 TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D30960
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D30970
TRA FIELD **NO F0D30980
TRA READ1 YES F0D30990
REM F0D31000
ENDOP SXD PAKFLG,4 SET FLAG TO UNBLOCK END CARD F0D31010
STL COMCD SET FLAG TO UNBLOCK CONTROL CARDS F0D31020
ZET DELFLG IS ASSEMBLY DELETED F0D31030
TRA READ3+1 YES F0D31040
CAL BCDBF NO, HOLD LOCATION FIELD F0D31050
SLW ENDOP TO BE DEFINED AFTER REMOTE SEQUENCES F0D31060
TSX OTPUT,4 *WRITE END CARD F0D31070
TRA ENDFA F0D31080
REM F0D31090
ENFOP CAL READ2+2 PREPARE TO WRITE END FILE F0D31100
TSX UPTOP,4 *WRITE END FILE F0D31110
TRA SOURC F0D31120
REM F0D31130
ENPOP TSX UPDLS,4 LIST CARD (25)F0D31140
STL DELFLG (26)F0D31150
TRA ENDFA (26)F0D31160
PZE (NOT USED) (26)F0D31170
PZE (NOT USED) (26)F0D31180
REM F0D31190
ENTOP ZET ABSFLG IS ASSEMBLY ABSOLUTE F0D31200
TRA OPERR **YES, OPERATION IS UNDEFINED F0D31210
ZET FCFLG NO, IS THIS FIRST CARD GROUP F0D31220
TRA PHASE **NO, TOO LATE F0D31230
SXD MAINPF,0 YES, RESET MAIN PROGRAM FLAG F0D31240
TRA READ1 F0D31250
REM F0D31260
EXTOP ZET ABSFLG IS THIS ASSEMBLY ABSOLUTE F0D31270
TRA OPERR **YES, OPERATION IS UNDEFINED F0D31280
TSX CALNM,4 *NO, ENTER SUBPROGRAM NAME IN VECTOR F0D31290
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D31300
TRA *-2 NO, GET NEXT TRANSFER VECTOR NAME F0D31310
TRA READ1 YES F0D31320
REM F0D31330
HADOP TSX SSCAN,4 *ASSEMBLE HEADING CHARACTER F0D31340
TXI HED01,,0 NULL HEADING CHARACTER F0D31350
CAL SYMBL LOAD HEADING CHARACTER F0D31360
TRA HED01 F0D31370
REM F0D31380
HEDOP PXD ,0 LOAD CARD COLUMN 1 F0D31390
LDQ BCDBF F0D31400
LGL 6 F0D31410
HED01 LAS BLANK IS HEADING CHARACTER BLANK F0D31420
TRA *+2 NO F0D31430
PXD ,0 YES, DELETE IT F0D31440
SLW BHEAD SAVE HEADING CHARACTER F0D31450
SLW LITRL SAVE FOR PASS 2 F0D31460
SXA HEDCT,0 RESET MULTIPLE HEADING COUNT F0D31470
HED02 TSX SSCAN,4 *ASSEMBLE NEXT SYMBOL F0D31480
TXI READ1,,0 END OF VARIABLE FIELD RETURN F0D31490
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D31500
SLT EXPND NO, WAS SYMBOL FOLLOWED BY AN OPERATION F0D31510
TRA FIELD **YES, OMIT HEADING CHARACTERS F0D31520
LXA HEDCT,4 NO, BUMP MULTIPLE HEADING COUNT F0D31530
TXI *+1,4,1 F0D31540
TXL *+3,4,11 DID BHEAD TABLE OVERFLOW F0D31550
LDI HEDNM YES, SET MULTIHEADING TABLE OVERFLOW F0D31560
TRA SRCERR **TERMINATE ASSEMBLY F0D31570
SXA HEDCT,4 NO, SAVE CURRENT MULTIPLE HEADING COUNT F0D31580
CAL SYMBL ADD HEADING CHARACTER F0D31590
SLW BHEAD,4 TO MULTIPLE HEADING LIST F0D31600
TRA HED02 F0D31610
REM F0D31620
IFEOP ZET ABSFLG IS THIS ASSEMBLY ABSOLUTE F0D31630
TRA OPERR **YES, OPERATION IS UNDEFINED F0D31640
TSX ESYML,4 *NO, DEFINE POSSIBLE LOCATION FIELD F0D31650
CAL L(EOF LOAD ENTRY POINT NAME F0D31660
TSX TRVCR,4 *MAKE ENTRY IN TV TABLE AND SYMBOL TABLE F0D31670
CLA Q2 LOAD LENGTH OF TWO INSTRUCTION MACRO F0D31680
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D31690
TRA READ1 F0D31700
L(EOF BCI 1,(EOF) F0D31710
REM F0D31720
REM EVALUATE LITERALS F0D31730
LITOP LXD VRFLD,2 LOAD WORD COUNT F0D31740
LXA VRFLD,1 LOAD CHARACTER COUNT F0D31750
TSX C0190,4 *DELETE = CHARACTER F0D31760
TSX C0190,4 *GET CHARACTER FOLLOWING EQUAL SIGN F0D31770
LAS QO IS CHARACTER O F0D31780
TXI LITDC,1,1 NO, IT IS DECIMAL F0D31790
TRA LITCL YES, IT IS OCTAL F0D31800
LAS QH NO, IS CHARACTER H F0D31810
TXI LITDC,1,1 NO, IT IS DECIMAL F0D31820
TRA LITHL YES, IT IS HOLLERITH F0D31830
TXI LITDC,1,1 NO, BUMP COUNTER LEFT ONE CHARACTER F0D31840
REM EVALUATE DECIMAL LITERALS F0D31850
LITDC LGR 6 RESTORE FIRST CHARACTER (SIGN OR DIGIT) F0D31860
STQ RESIDU F0D31870
STZ ERRFE RESET ERROR FLAG F0D31880
TSX DECCV,4 *CONVERT DECIMAL FIELD TO BINARY F0D31890
STO LITRL F0D31900
NZT ERRFE WAS FIELD IN ERROR F0D31910
TRA LITDF NO F0D31920
TRA LITRR **YES F0D31930
REM EVALUATE OCTAL LITERALS F0D31940
LITCL STZ ERRFB RESET ERROR FLAG F0D31950
TSX OCTCV,4 *CONVERT OCTAL FIELD TO BINARY F0D31960
SLW LITRL F0D31970
NZT ERRFB WAS FIELD IN ERROR F0D31980
TRA LITDF NO F0D31990
TRA LITRR **YES F0D32000
REM EVALUATE HOLLERITH LITERALS F0D32010
LITHL TSX C0190,4 *GET NEXT CHARACTER F0D32020
AXT **,4 LOAD CHARACTER COUNT F0D32030
TXI *+1,4,1 BUMP CHARACTER COUNT F0D32040
TXH LITH1,4,6 HAVE SIX CHARACTERS BEEN COLLECTED F0D32050
SXA LITHL+1,4 NO, SAVE CHARACTER COUNT F0D32060
LGR 6 APPEND NEXT CHARACTER F0D32070
CAL LITRL TO PARTIAL LITERAL F0D32080
LGL 6 F0D32090
SLW LITRL SAVE PARTIAL LITERAL F0D32100
TRA LITHL F0D32110
LITH1 SXA LITHL+1,0 RESET CHARACTER COUNT F0D32120
SUB BLANK IS IT BLANK F0D32130
TZE LITDF YES, END OF VARIABLE FIELD F0D32140
SUB EQUAL NO, IS IT COMMA F0D32150
TZE LITDF YES, END OF LITERAL FIELD F0D32160
STZ LITRL NO, ILLEGAL CHARACTER F0D32170
TRA LITRR **SET ERROR FLAGS F0D32180
REM F0D32190
REM ENTER LITERAL INTO TABLE F0D32200
LITDF CAL LITRL LOAD LITERAL F0D32210
LXA LITSIZ,2 LOAD LOGARITHM OF TABLE LENGTH F0D32220
AXT 0,1 LOAD POSITION OF FIRST LITERAL IN TABLE F0D32230
XEC LSCH2+1,2 BUMP SEARCH TO MIDDLE OF TABLE F0D32240
REM REENTRY AFTER BINARY HOP F0D32250
LSCH1 TXL *+4,1,-1 IS CURRENT POSITION ABOVE TABLE ENTRIES F0D32260
LAS LITTBL-1,1 NO, IS NEW ENTRY IN TABLE F0D32270
TXI LSCH2+1,2,-2 NO, LARGER - GO LOOK HIGHER F0D32280
TRA LSCH3 YES, IGNORE IT F0D32290
TXI LSCH2,2,-2 NO, SMALLER - GO LOOK LOWER F0D32300
REM F0D32310
TXI LSCH1,1,-512 (MAXIMUM TABLE SIZE = 1024 LITERALS) F0D32320
TXI LSCH1,1,+256 F0D32330
TXI LSCH1,1,-256 F0D32340
TXI LSCH1,1,+128 F0D32350
TXI LSCH1,1,-128 F0D32360
TXI LSCH1,1,+64 F0D32370
TXI LSCH1,1,-64 F0D32380
TXI LSCH1,1,+32 F0D32390
TXI LSCH1,1,-32 F0D32400
TXI LSCH1,1,+16 F0D32410
TXI LSCH1,1,-16 F0D32420
TXI LSCH1,1,+8 F0D32430
TXI LSCH1,1,-8 F0D32440
TXI LSCH1,1,+4 F0D32450
TXI LSCH1,1,-4 F0D32460
TXI LSCH1,1,+2 F0D32470
TXI LSCH1,1,-2 F0D32480
TXI LSCH1,1,+1 F0D32490
TXI LSCH1,1,-1 F0D32500
TXI LITNT,1,-1 F0D32510
TXI LITNT,1,-2 F0D32520
REM F0D32530
LSCH2 XEC *,2 F0D32540
XEC *,2 F0D32550
REM F0D32560
REM LITERAL IS NEW, ENTER IT INTO TABLE INCREASING UPWARD F0D32570
LITNT LXD LSCH1,2 LOAD CURRENT LENGTH OF LITERAL TABLE $F0D32580
LXD LSCH1,4 $F0D32585
TXI *+1,2,-1 BUMP COUNT F0D32590
SXD LSCH1,2 F0D32600
TXH *+3,2,-LLITBL DID LITERAL TABLE OVERFLOW F0D32610
LDI LITNM YES, SET LITERAL TABLE OVERFLOW F0D32620
TRA SRCERR **TERMINATE ASSEMBLY F0D32630
SXD *+1,1 NO, INITIALIZE POSITION TEST F0D32640
TXH *+4,4,** IS THIS ORDERED POSITION OF NEW ENTRY F0D32650
LDQ LITTBL-2,4 NO, MOVE NEXT ENTRY UP ONE F0D32660
STQ LITTBL-1,4 TO MAKE ROOM FOR NEW ENTRY F0D32670
TXI *-3,4,1 BUMP TABLE COUNT UP ONE POSITION F0D32680
SLW LITTBL-1,4 INSERT NEW ENTRY IN PROPER ORDER F0D32690
LSCH3 TRA READ1 F0D32700
REM F0D32710
LOCOP AXT -1,4 SET LOC SWITCH F0D32720
SXD ORG02+3,4 F0D32730
CAL CHRCTR LOAD FIRST CHARACTER IN VARIABLE FIELD F0D32740
ERA BLANK IS IT BLANK F0D32750
TNZ ORG01 NO F0D32760
CAL CDCTR YES, DISCONTINUE LOC F0D32770
SLN FLDND SET END OF VARIABLE FIELD FLAG F0D32780
TRA ORG02 F0D32790
REM F0D32800
MAXOP SXD MIN03,0 SET MAX SWITCHES F0D32810
SXD MIN03+2,0 F0D32820
TRA MIN01 F0D32830
REM F0D32840
MINOP AXT -1,4 SET MIN SWITCHES F0D32850
SXD MIN03,4 F0D32860
SXD MIN03+2,4 F0D32870
REM REENTRY FOR MAX F0D32880
MIN01 TSX SCANP,4 *EVALUATE FIRST FIELD F0D32890
TXI AFLAG,,0 NULL FIELD F0D32900
STI ADDRS SAVE RELOCATION BITS F0D32910
IIL 3 INITIALIZE TEST FOR CONSISTENT BITS F0D32920
STI ERASE F0D32930
MIN02 STO LITRL SAVE CURRENT GREATEST/LEAST FIELD F0D32940
TSX SCANP,4 *EVALUATE NEXT FIELD F0D32950
TXI MIN04,,0 NULL FIELD F0D32960
OFT ERASE IS SYMBOL CONSISTENT F0D32970
TRA FIELX **NO F0D32980
LAS LITRL YES, IS THIS SYMBOL GREATER/LESSER F0D32990
MIN03 TXH MIN02,4,** SYMBOL IS GREATER - IS THIS MAX F0D33000
TRA MIN02+1 NO F0D33010
TXL MIN02,4,** SYMBOL IS LESSER - IS THIS MIN F0D33020
TRA MIN02+1 NO F0D33030
REM END OF VARIABLE FIELD F0D33040
MIN04 CAL LITRL DEFINE SYMBOL AS MAX/MIN F0D33050
ORA ADDRS COMBINE WITH RELOCATION BITS F0D33060
SLW LITRL SAVE FOR PASS 2 F0D33070
SLW ADDRS F0D33080
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D33090
SLT FLDND WAS VARIABLE FIELD NULL F0D33100
TRA FIELD **YES F0D33110
TRA READ1 NO F0D33120
REM F0D33130
NUMOP SXD INP04+2,0 SET SWITCH TO RESERIALIZE BCD CARDS F0D33140
CAL BCDBF LOAD LEADING CHARACTERS F0D33150
TSX LOCFL,4 *ASSEMBLE LEADING CHARACTERS F0D33160
LGR 6 LEFT ADJUST F0D33170
TNZ *-1 F0D33180
STQ PROID SAVE LEADING CHARACTERS F0D33190
TSX SCANP,4 *ASSEMBLE NEW SERIALIZATION F0D33200
TXI NUM01,,0 NULL SERIALIZATION F0D33210
RFT 3 IS SERIALIZATION ABSOLUTE F0D33220
TRA FIELD **NO F0D33230
TRA NUM02 *YES. RESET SERIALIZATION (25)F0D33240
UPD03 SLT FLDND WAS END OF VARIABLE FIELD SENSED (25)F0D33250
TRA FIELD **NO F0D33260
TSX UPDLS,4 *YES, LIST THIS CARD F0D33270
TRA SOURC F0D33280
REM TURN OFF BCD CARD RESERIALIZATION F0D33290
NUM01 AXT -1,4 RESET SWITCH TO RESERIALIZE BCD CARDS F0D33300
SXD INP04+2,4 F0D33310
TSX UPDLS,4 *LIST CARD F0D33320
TRA SOURC F0D33330
REM F0D33340
OPDOP CAL CHRCTR LOAD FIRST CHARACTER F0D33350
ERA BLANK IS VARIABLE FIELD BLANK F0D33360
TZE FIELD **YES F0D33370
STZ ERRFE NO, CLEAR HANGING FLAGS F0D33380
STZ ERRFB F0D33390
TSX OCTCV,4 *ASSEMBLE OCTAL EQUIVALENT F0D33400
NZT ERRFE IS OCTAL EQUIVALENT IN ERROR F0D33410
ZET ERRFB F0D33420
TRA FIELD **YES F0D33430
ORA T1 NO, APPEND MACHINE OPERATION FLAG F0D33440
SLW LITRL SAVE FOR PASS TWO F0D33450
PAI F0D33460
TSX EOPTB,4 *ENTER INTO OP TABLE F0D33470
TRA READ1 F0D33480
REM F0D33490
OPSOP TSX SSCAN,4 *ASSEMBLE EQUIVALENT NAME F0D33500
TXI FIELD,,0 **NULL EQUIVALENT NAME F0D33510
SLT EXPRR IS SYMBOL IN ERROR F0D33520
ZET SYMB2 NO, IS SYMBOL TOO LONG F0D33530
TRA FIELD **YES F0D33540
CAL SYMBL NO, LOAD EQUIVALENT NAME F0D33550
LDQ Q0 F0D33560
LGR 6 LEFT ADJUST F0D33570
TNZ *-1 F0D33580
XCL F0D33590
TSX SOPTB,4 *FIND CORRESPONDING OCTAL OPCODE F0D33600
TRA FIELD **NOT IN TABLE F0D33610
STI LITRL SAVE FOR PASS TWO F0D33620
TSX EOPTB,4 *ENTER INTO OP TABLE F0D33630
TRA READ1 F0D33640
REM F0D33650
OPVOP CAL CHRCTR LOAD FIRST CHARACTER F0D33660
ERA BLANK IS VARIABLE FIELD BLANK F0D33670
TZE FIELD **YES F0D33680
STZ ERASE NO, CLEAR WORKING STORAGE F0D33690
STZ ERRFE RESET POSSIBLE HANGING ERROR FLAG F0D33700
STL VFDMD SET VFD MODE FLAG FOR SCAN F0D33710
AXT 36,4 SET UNUSED BIT COUNT TO FULL WORD F0D33720
SXA VFDRB,4 F0D33730
OPV01 TSX VFDCV,4 *ASSEMBLE NEXT FIELD F0D33740
CLA VFDFB LOAD FIELD LENGTH F0D33750
STA OPV02 INITIALIZE SHIFT F0D33760
SUB VFDRB COMPUTE COUNT OF REMAINING BITS F0D33770
STA VFDRB F0D33780
CAL ERASE LOAD PARTIAL WORD F0D33790
LDQ VFDFL+1 LOAD NEW FIELD F0D33800
OPV02 LGL ** PACK IT IN F0D33810
SLW ERASE SAVE NEW PARTIAL WORD F0D33820
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D33830
TRA OPV01 NO F0D33840
STZ VFDMD YES, RESET VFD FLAG F0D33850
NZT ERRFE IS WORD IN ERROR F0D33860
ZET RBITS NO, IS WORD RELOCATABLE F0D33870
TRA FIELD **YES F0D33880
ZET VFDRB NO, IS WORD EXACTLY 36 BITS F0D33890
TRA FIELD **NO F0D33900
LDI ERASE YES, LOAD OCTAL OPCODE F0D33910
SIR 100000 APPEND MACHINE OPERATION FLAG F0D33920
STI LITRL SAVE FOR PASS TWO F0D33930
TSX EOPTB,4 *ENTER INTO OP TABLE F0D33940
TRA READ1 F0D33950
REM F0D33960
ORDOP CAL OPBIN LOAD OPCODE F0D33970
SLW LITRL SAVE FOR PASS TWO F0D33980
AXT 5$ORDOP,4 SET PASS TWO TRANSFER ADDRESS F0D33990
SXD OPBIN,4 F0D34000
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D34010
CLA Q2 ORDER TAKES TWO WORDS F0D34020
TSX BPCTR,4 *BUMP LOCATION COUNTER F0D34030
TRA READ1 F0D34040
REM F0D34050
ORGOP ZSD ORG02+3 SET ORG SWITCH F0D34060
CLA CDCTR LOAD CARD STORAGE COUNTER F0D34070
CAS PRGBK IS IT GREATER THAN GREATEST TO DATE F0D34080
STO PRGBK YES, RESET PROGRAM BREAK F0D34090
NOP F0D34100
ORG01 TSX SCANF,4 *EVALUATE NEW ORIGIN F0D34110
TXI AFLAG,,0 NULL ORIGIN F0D34120
SLT EXPRR WAS VARIABLE FIELD IN ERROR F0D34130
ZET VARUC NO, IS VARIABLE FIELD IN COMMON F0D34140
TRA PHASE **YES F0D34150
NZT ABSFLG IS ASSEMBLY ABSOLUTE F0D34160
ORA D1 NO, SET RELOCATION BIT F0D34170
ORG02 ZET DUPMD IS CARD IN RANGE OF DUP F0D34180
TRA PHASE **YES F0D34190
STA LOCTR NO, UPDATE PROGRAM COUNTER F0D34200
TXL *+2,4,** IS CARD LOC F0D34210
STA CDCTR NO, UPDATE CARD ORIGIN COUNTER F0D34220
SLW ADDRS DEFINE SYMBOL F0D34230
SLW LITRL SAVE FOR PASS TWO F0D34240
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D34250
SLT FLDND WAS END OF VARIABLE FIELD SENSED F0D34260
TRA FIELD **NO F0D34270
TRA READ1 YES F0D34280
REM F0D34290
PRTOP TSX (PRNT),4 *PRINT CC 13 - 72 ON LINE F0D34300
PZE BCDBF+2,,10 F0D34310
TSX SPACP,2 *SPACE PAGE F0D34320
TSX UPDLS,4 *LIST CARD F0D34330
TRA SOURC F0D34340
REM F0D34350
REWOP CAL *+4 PREPARE TO REWIND F0D34360
TSX UPTOP,4 *REWIND F0D34370
TSX UPDSC,4 *LOGICALLY DISCONNECT THIS TAPE F0D34380
TRA SOURC F0D34390
PZE REWND,,(SKDP) F0D34400
REM F0D34410
SKFOP CAL *+3 PREPARE TO SKIP FILE F0D34420
TSX UPTIP,4 *SKIP FILE F0D34430
TRA SKF01 INITIALIZE BUFFERS AND PROCESS NEXT $F0D34440
REM UPDATE CARD. $F0D34441
PZE D1,,(SKDP) F0D34450
REM F0D34460
SSTOP TRA FRPA2 $F0D34470
TRA READ1 F0D34480
REM F0D34490
SYNOP TSX SCANP,4 *EVALUATE SYN DEFINITION F0D34500
TXI AFLAG,,0 NULL DEFINITION F0D34510
OAI COMBINE BITS WITH DEFINITION F0D34520
STI ADDRS DEFINE SYMBOL F0D34530
STI LITRL SAVE FOR PASS 2 F0D34540
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D34550
SLT FLDND WAS VARIABLE FIELD NULL F0D34560
TRA FIELD **YES F0D34570
TRA READ1 NO F0D34580
REM F0D34590
TAPOP CAL Q128 SET DEFINITION TO 0200 F0D34600
SLW ADDRS F0D34610
TSX C0190,4 *LOAD CHANNEL CHARACTER F0D34620
LAS BLANK IS FIELD NULL F0D34630
TRA FIELD **NO, ILLEGAL CHARACTER F0D34640
TRA TAP01 YES F0D34650
LAS QH NO, IS IT GREATER THAN H F0D34660
TRA FIELD **YES, TOO MANY CHANNELS F0D34670
NOP NO F0D34680
LAS PLUSS IS IT GREATER THAN + F0D34690
TRA *+3 YES F0D34700
TRA FIELD **NO, ILLEGAL CHARACTER F0D34710
TRA TAP01+3 NO CHANNEL DESIGNATED F0D34720
ANA Q15 MASK OUT ZONE BITS (CHANNEL NUMBER) F0D34730
ALS 9 POSITION CHANNEL NUMBER F0D34740
ORS ADDRS INSERT IN DEFINITION F0D34750
TRA TAP01+2 F0D34760
REM REENTRY FOR NULL FIELD F0D34770
TAP01 STZ CHRCTR DELETE BLANK F0D34780
TSX AFLAG,4 *FLAG OMITTED FIELD F0D34790
REM REENTRY TO EVALUATE NEXT DIGIT IN TAPE NUMBER F0D34800
TSX C0190,4 *GET NEXT DIGIT F0D34810
REM REENTRY FOR NO CHANNEL DESIGNATED F0D34820
LAS Q10 IS IT GREATER THAN 10 F0D34830
TRA TAP02 YES, THIS MAY BE MODE CHARACTER F0D34840
TSX MACERR,4 **CHARACTER IS BCD 10 F0D34850
LDQ ADDRS PICK UP CHANNEL AND PARTIAL TAPE ADDRESS F0D34860
VLM Q10,,6 MULTIPLY CURRENT DIGIT BY 10 F0D34870
VLM Q1,,8 AND CHANNEL BY 1 F0D34880
LLS 14 REPOSITION CONVERTED PARTIAL ADDRESS F0D34890
ADD CHRCTR ADD IN THIS DIGIT OF TAPE ADDRESS F0D34900
SLW ADDRS SAVE CHANNEL AND PARTIAL TAPE ADDRESS F0D34910
ANA BLANK WAS TAPE NUMBER VALID F0D34920
TZE TAP01+2 YES, GET NEXT DIGIT F0D34930
TRA FIELD **NO F0D34940
REM REENTRY FOR CHARACTER FOLLOWING TAPE ADDRESS F0D34950
TAP02 AXT 5,4 LOAD LENGTH OF TAPE CHARACTER LIST F0D34960
LAS TAPCH+5,4 IS CHARACTER THIS TAPE CHARACTER F0D34970
TRA FIELD **NO F0D34980
TRA TAP03+5,4 YES F0D34990
TIX *-3,4,1 IS LIST EXHAUSTED F0D35000
TRA FIELD **YES F0D35010
REM F0D35020
TAP03 TRA TAP04 CHARACTER IS BLANK F0D35030
TRA *+5 CHARACTER IS L $F0D35040
TRA *+2 CHARACTER IS H $F0D35050
TRA *+3 CHARACTER IS D F0D35060
CAL PLUSS CHARACTER IS B F0D35070
ORS ADDRS INSERT BINARY/HIGH DENSITY MODE BIT $F0D35080
TSX C0190,4 *GET NEXT CHARACTER F0D35090
ERA BLANK IS IT BLANK F0D35100
TNZ FIELD **NO F0D35110
TAP04 CAL ADDRS SAVE DEFINITION FOR PASS TWO F0D35120
SLW LITRL F0D35130
TSX ESYML,4 *DEFINE TAPE ADDRESS F0D35140
TRA READ1 F0D35150
REM F0D35160
TCDOP NZT ABSFLG IS ASSEMBLY ABSOLUTE F0D35170
TRA OPERR **NO, OPERATION IS UNDEFINED F0D35180
TRA READ1 F0D35190
REM F0D35200
ULDOP CAL *+4 PREPARE TO UNLOAD F0D35210
TSX UPTOP,4 *UNLOAD F0D35220
TSX UPDSC,4 *LOGICALLY DISCONNECT THIS TAPE F0D35230
TRA SOURC F0D35240
PZE UNLOD,,(SKDP) F0D35250
REM F0D35260
UMCOP NZT OPTFLG IS AN UPDATE OUTPUT TAPE REQUESTED F0D35270
TRA OPERR **NO, OPERATION IS UNDEFINED F0D35280
CAL MCREF+1 YES, FLIP SWITCHES TO OUTPUT F0D35290
LDQ MCRDF+1 MACRO EXPANSIONS OR MACRO DEFINITIONS AND F0D35300
STQ MCREF+1 CALLS ON UPDATE OUTPUT TAPE F0D35310
SLW MCRDF+1 F0D35320
TSX UPDLS,4 *LIST CARD F0D35330
TRA SOURC F0D35340
REM F0D35350
UPDOP TSX WROPT,4 *WRITE LAST PARTIAL UPDATE OUTPUT BLOCK F0D35360
LXD VRFLD,2 RELOAD WORD COUNT F0D35370
LXA VRFLD,1 RELOAD CHARACTER COUNT F0D35380
TSX UPSCN,4 *ASSEMBLE UPDATE INPUT TAPE NUMBER F0D35390
LAS IPTFLG IS THIS NEW UPDATE INPUT TAPE F0D35400
TRA *+2 YES F0D35410
TRA UPD01 NO F0D35420
STA IPTFLG RESET UPDATE INPUT TAPE FLAG F0D35430
LXD IPRECT,4 LOAD OLD UPDATE INPUT TAPE NUMBER F0D35440
TXL *+3,4,0 DOES OLD UPDATE INPUT TAPE EXIST F0D35450
TSX UPDCL,4 *YES, BACKSPACE OVER LOOKAHEAD CARDS F0D35460
SXA IPRECT,0 RESET UPDATE INPUT RECORD COUNT F0D35470
LXA IPTFLG,4 RELOAD NEW UPDATE INPUT TAPE NUMBER F0D35480
SXD IPRECT,4 SET NEW UPDATE INPUT TAPE NUMBER F0D35490
SXD UPDTAP,4 F0D35500
TXI *+1,4,(SCHU) COMPUTE (SCHU)+MIPTAP F0D35510
SXA RDUP0,4 SET NEW END FILE TEST F0D35520
TXL UPD01,4,(SCHU) IS THERE A NEW UPDATE INPUT TAPE F0D35530
SXA *+1,4 YES, INITIALIZE LOCATION OF (SCHU)+MIPTAP F0D35540
UPD00 STL ** RESET HANGING END FILE F0D35550
SXA *+2,1 SAVE CHARACTER COUNT F0D35560
TSX RDUPD,4 *START LOOKAHEAD BUFFERING F0D35570
AXT **,1 RELOAD CHARACTER COUNT F0D35580
AXT -1,4 SET SWITCH FOR EMPTY UPDATE BUFFER F0D35590
SXD UPDSW,4 F0D35600
UPD01 TSX UPSCN,4 *ASSEMBLE UPDATE OUTPUT TAPE NUMBER F0D35610
LAS IPTFLG IS OUTPUT TAPE INPUT TAPE F0D35620
TRA *+2 NO F0D35630
TNZ FIELD IF BLANK OR ZERO DISCONTINUE UPDATING $F0D35640
LAS OPTFLG IS THIS NEW UPDATE OUTPUT TAPE F0D35650
TRA *+2 YES F0D35660
TRA UPD02 NO F0D35670
STA OPTFLG RESET UPDATE OUTPUT TAPE FLAG F0D35680
LXD OPRECT,4 LOAD OLD UPDATE OUTPUT TAPE NUMBER F0D35690
TXL *+5,4,0 DOES OLD UPDATE OUTPUT TAPE EXIST F0D35700
TSX (TAPE),4 *YES, CLOSE OUT OLD UPDATE OUTPUT TAPE F0D35710
PZE Q0,,(SKDP) F0D35720
PZE OPDTAP,,-1 F0D35730
SXA OPRECT,0 RESET UPDATE OUTPUT RECORD COUNT F0D35740
LXA OPTFLG,4 RELOAD NEW UPDATE OUTPUT TAPE NUMBER F0D35750
SXD OPRECT,4 SET NEW UPDATE OUTPUT TAPE NUMBER F0D35760
SXD OPDTAP,4 F0D35770
UPD02 TSX SCANF,4 *ASSEMBLE BLOCKING FACTOR (25)F0D35780
TRA UPD05-1 NO 3RD FIELD. TURN ON BLOCKING (25)F0D35790
STL PAKFLG INITIALIZE BLOCKING OFF. (25)F0D35800
TZE UPD05-2 IS VALUE ZERO (25)F0D35810
SUB Q10 NO. IS TI TEN (25)F0D35820
TNZ UPD05 (25)F0D35830
AXT -1-10*UPDRCL+UPDRCL,4 YES. SET BLOCKING FACTOR TO 10.(25)F0D35840
SXD UPBLK,4 (25)F0D35850
SLT EXPRR IS EXPRESSION UNDEFINED (25)F0D35860
ZSA PAKFLG NO. 0 OR 10. TURN ON BLOCKING. (25)F0D35870
UPD05 TSX SSCAN,4 *ASSEMBLE 4TH SUBFIELD (25)F0D35880
TRA UPD03 **THERE ISNT ANY (25)F0D35890
CAL SYMBL (25)F0D35900
TRA UPSSC (25)F0D35910
REM F0D35920
UPTIP LDQ IPTFLG LOAD INPUT TAPE NUMBER F0D35930
TRA UPTOP+1 F0D35940
REM F0D35950
UPTOP LDQ OPTFLG LOAD OUTPUT TAPE NUMBER F0D35960
SXA UPTPX,4 SAVE CALLING LINKAGE F0D35970
STQ BERAS HOLD UPDATE TAPE NUMBER F0D35980
SLW UPT02 SET OPERATION PARAMETER F0D35990
TSX UPSCN,4 *EVALUATE LOGICAL TAPE NUMBER F0D36000
TNZ UPT01 IS A LOGICAL TAPE NUMBER SPECIFIED F0D36010
CAL BERAS NO, RELOAD UPDATE TAPE NUMBER F0D36020
TZE OPERR **IS AN UPDATE TAPE NUMBER SPECIFIED F0D36030
REM REENTRY FOR LOGICAL TAPE NUMBER SPECIFIED F0D36040
UPT01 ALS 18 POSITION LOGICAL TAPE NUMBER F0D36050
STD UPT02+1 INITIALIZE TAPE NUMBER PARAMETER F0D36060
CAS OPDTAP IS UPDATE OUTPUT TAPE SELECTED F0D36070
TRA *+2 NO F0D36080
TSX WROPT,4 YES, WRITE LAST UPDATE OUTPUT TAPE BLOCK F0D36090
TSX (TAPE),4 *PERFORM TAPE OPERATION F0D36100
UPT02 *** **,,** F0D36110
PZE ,,** F0D36120
PZE TAPERR F0D36130
TSX UPDLS,4 *LIST CARD F0D36140
UPTPX AXT **,4 RELOAD CALLING LINKAGE F0D36150
TRA 1,4 F0D36160
REM F0D36170
UPSCN SXA UPSCX,4 SAVE CALLING LINKAGE F0D36180
TSX SCANP,4 *ASSEMBLE UPDATE TAPE NUMBER F0D36190
TRA PATCHA BLANK UPDATE TAPE NUMBER $F0D36200
RFT 3 IS TAPE NUMBER ABSOLUTE F0D36210
TRA FIELD **NO F0D36220
TZE UPSCX IS UPDATE TAPE DELETED F0D36230
PAX ,4 NO. TEST FOR LEGAL ASSIGNMENT (25)F0D36240
TXH FIELD,4,T **IS TAPE ASSIGNED TO SYSTEM (25)F0D36250
TXL FIELD,4,7 **YES IS IT RESERVED TO MONITOR (25)F0D36260
UPSCX AXT **,4 NO. RETURN (25)F0D36270
TRA 1,4 (25)F0D36280
REM (25)F0D36290
UPSSC SLT EXPRR DOES 4TH FIELD CONTAIN ILLEGAL CHAR (25)F0D36300
TRA *+2 NO (25)F0D36310
TRA FIELD **YES (25)F0D36320
ZET DELFLG IS ASSEMBLY ALREADY DELETED (25)F0D36330
TRA UPD03 **YES (25)F0D36340
TZE UPD03 NO. IS ASSEMBLY DELETED NOW (25)F0D36350
STL DELFLG YES. SET ASSEMBLY DELETED FLAG (25)F0D36360
TSX (PRNT),4 PRINT UPDATE ONLY MSG ONLINE (25)F0D36370
PZE DELMS,,5 (25)F0D36380
TRA UPD03 **CHECK FOR TOO MANY FIELDS (25)F0D36390
... PATCH SPACE (25)F0D36400
REM F0D36410
UPDLS SXA UPDLX,4 SAVE CALLING LINKAGE F0D36420
TRA UPFIX WHICH BUFFER DO WE PRINT FROM (25)F0D36430
PZE (NOT USED) (25)F0D36440
TSX FPRINT,4 *PRINT BLANK LINE F0D36450
PZE F0D36460
CLA INP06 UNBUMP SERIAL FOR UPDATE PSEUDOOP (25)F0D36470
SUB INP07 NOT APPEARING ON UPDATE OUTPUT TAPE (25)F0D36480
STO INP06 (25)F0D36490
STL COMCD SET FLAG TO UNBLOCK MONITOR CONTROL CARDS F0D36500
UPDLX AXT **,4 RELOAD CALLING LINKAGE F0D36510
TRA 1,4 F0D36520
REM F0D36530
REM LOGICALLY DISCONNECT FINISHED UPDATE TAPE F0D36540
UPDSC CAL UPT02+1 RELOAD LOGICAL TAPE NUMBER F0D36550
CAS OPDTAP IS THIS UPDATE OUTPUT TAPE F0D36560
TRA *+2 NO F0D36570
STZ OPTFLG YES, DISCONNECT UPDATE OUTPUT TAPE F0D36580
CAS UPDTAP IS THIS UPDATE INPUT TAPE F0D36590
TRA *+2 NO F0D36600
STZ IPTFLG YES, DISCONNECT UPDATE INPUT TAPE F0D36610
TRA 1,4 F0D36620
REM F0D36630
VFDOP STL VFDMD SET VFD FLAG F0D36640
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D36650
STZ VFDTB CLEAR TOTAL BIT COUNT F0D36660
VFETC STZ VFDFB CLEAR FIELD WIDTH F0D36670
TSX C0190,4 *GET NEXT CHARACTER F0D36680
LAS COMMA IS CHARACTER COMMA F0D36690
TRA VFD04 NO F0D36700
TRA VFETC+1 YES, NULL FIELD F0D36710
LAS BLANK IS CHARACTER BLANK F0D36720
TRA VFD04 NO F0D36730
TRA VFD06 YES, END OF VARIABLE FIELD F0D36740
LAS QO IS CHARACTER O F0D36750
TRA VFD04 NO F0D36760
TRA VFD02 YES, OCTAL FIELD F0D36770
LAS QH IS CHARACTER H F0D36780
TRA VFD04 NO F0D36790
TRA VFD02 YES, HOLLERITH FIELD F0D36800
REM REENTRY TO COMPUTE PARTIAL FIELD WIDTH F0D36810
VFD01 LAS SLASH IS CHARACTER / F0D36820
TRA VFD05 NO F0D36830
TRA VFD03 YES, FIELD FOLLOWS F0D36840
LAS Q10 IS CHARACTER NUMERIC F0D36850
TRA VFD05 NO F0D36860
TSX MACERR,4 **CHARACTER IS BCD 10 F0D36870
CLA VFDFB YES, OLD PARTIAL FIELD WIDTH F0D36880
ALS 2 F0D36890
ADD VFDFB TIMES TEN F0D36900
ALS 1 F0D36910
ADD CHRCTR PLUS NEXT DIGIT F0D36920
STO VFDFB IS NEW PARTIAL FIELD WIDTH F0D36930
REM FIELD WIDTH FOLLOWS F0D36940
VFD02 TSX C0190,4 *GET NEXT CHARACTER F0D36950
TRA VFD01 F0D36960
REM FIELD FOLLOWS F0D36970
VFD03 CLA VFDFB LOAD FIELD WIDTH F0D36980
CAS Q63 IS SUBFIELD TOO LONG F0D36990
CLA Q63 YES, TRUNCATE IT F0D37000
NOP F0D37010
ADD VFDTB ADD TO TOTAL BIT COUNT F0D37020
SLW VFDTB AND SAVE F0D37030
REM LOOK FOR END OF FIELD F0D37040
VFD04 TSX C0190,4 *GET NEXT CHARACTER F0D37050
VFD05 LAS COMMA IS IT COMMA AT END OF FIELD F0D37060
TRA VFD04 NO F0D37070
TRA VFETC YES, GET NEXT FIELD F0D37080
ERA BLANK IS IT BLANK F0D37090
TNZ VFD04 NO F0D37100
TRA VFD06+2 YES, ETC MAY NOT FOLLOW F0D37110
REM END OF VARIABLE FIELD F0D37120
VFD06 TSX PEEKS,4 *IS NEXT CARD AN ETC CARD F0D37130
TRA VFD07 YES F0D37140
REM END OF VFD STATEMENT F0D37150
LDQ VFDTB LOAD TOTAL BIT COUNT F0D37160
PXD ,0 F0D37170
DVP Q36 COMPUTE NUMBER OF WORDS F0D37180
DCT DID DIVIDE FAIL F0D37190
TSX MACERR,4 **YES F0D37200
TZE *+2 IS THERE A PARTIAL WORD F0D37210
CLA Q1 YES, RESERVE SPACE FOR IT F0D37220
STQ VFDTB COMBINE FULL WORDS F0D37230
ADD VFDTB WITH PARTIAL WORD F0D37240
TNZ *+2 HAVE ANY BITS BEEN GENERATED F0D37250
CLA Q1 NO, RESERVE WORD OF ZEROES F0D37260
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D37270
STZ VFDMD RESET VFD FLAG F0D37280
VFD07 TRA READ1 F0D37290
REM F0D37300
REM ERROR IN PROCESSING PSEUDOOPERATIONS F0D37310
LITRR CAL Q8 SET ERROR FLAG F0D37320
TRA PHASE+2 F0D37330
FIELX STZ LITRL DELETE PARTIAL DEFINITION F0D37340
FIELD CAL Q4 FLAG FIELD ERROR F0D37350
TRA PHASE+2 F0D37360
PHASE STZ LITRL DELETE DEFINITION IN ERROR F0D37370
CAL Q1 FLAG PHASE ERROR F0D37380
ORS P1FLG F0D37390
TRA READ1 F0D37400
REM F0D37410
OPERR CAL Q16 SET UNDEFINED OPERATION FLAG F0D37420
ORS P1FLG F0D37430
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD F0D37440
CLA Q1 F0D37450
TSX BPCTR,4 *BUMP PROGRAM COUNTER F0D37460
TRA READ1 F0D37470
REM F0D37480
REM F0D37490
DELMS BCI 5,+ ...UPDATE ONLY... F0D37500
UPDRM BCI 8, NON-BCD CARD(S) ON UPDATE INPUT TAPE FOLLOWING F0D37510
XREDN BCI 9,0 EXCESSIVE REDUNDANCY ERRORS. VERIFY INPUT TAPES AND F0D37520
BCI 2,PUSH START. F0D37530
XORDR BCI 9,0 EXCESSIVE CARD ORDER ERRORS. VERIFY INPUT TAPES AND F0D37540
BCI 2,PUSH START. F0D37550
NOCNT BCI 5, CARD-COUNT ESTIMATE MISSING. F0D37560
CHANG BCI 5,0 CHANGE TAPE AND PUSH START. F0D37570
REM F0D37580
REM SORT TABLES F0D37590
SRTBT DEC -0,1B1,1B2,1B3,1B4,1B5,1B6,1B7,1B8,1B9,1B10,1B11,1B12 F0D37600
DEC 1B13,1B14,1B15,1B16,1B17,1B18,1B19,1B20,1B21,1B22,1B23 F0D37610
OCT 4000,2000,1000,400,200,100,40,20,10,4,2,1 F0D37620
REM F0D37630
SORTB PZE -SYMTBL LOCATION (COMPLEMENT) OF BOTTOM OF TABLE F0D37640
SORTA PZE ** LOCATION (COMPLEMENT) OF TOP OF TABLE F0D37650
DEC ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, F0D37660
TTL PASS ONE MACRO PROCESSOR F0D37670
REM ROUTINES TO DEFINE MACROS F0D37680
REM MACRO, MOP, RMT F0D37690
REM F0D37700
MOPSW SLT EXPRR IS OPFIELD IN ERROR F0D37710
TTR ** NO F0D37720
TRA INSTR YES F0D37730
REM F0D37740
MCROP CAL BCDBF LOAD LOCATION FIELD F0D37750
TSX LOCFL,4 *ASSEMBLE MACRO NAME F0D37760
TNZ MOP00+1 HAS NAME BEEN GIVEN F0D37770
CAL CHRCTR NO, IS VARIABLE FIELD BLANK F0D37780
ERA BLANK F0D37790
TNZ MOP00 NO, IMPROPER CARD F0D37800
AXT MCR01,4 SET VECTOR TO AVOID INITIALIZATION F0D37810
SXA MOPSW+1,4 F0D37820
TSX SETTP,4 *SET UP MACRO ROUTING F0D37830
PZE ROUTE,,MOPSW F0D37840
TSX MACERR,4 **ALREADY SET UP F0D37850
AXT -1,4 SET MACRO DEFINITION CARD SWITCH F0D37860
SXD MCRDF,4 F0D37870
TRA READ1 GET NEXT CARD WITH MACRO NAME IN OPFIELD F0D37880
REM REENTRY FOR CARD FOLLOWING BLANK MACRO CARD F0D37890
MCR01 CAL BCDBF LOAD LOCATION FIELD F0D37900
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL F0D37910
SLW LCARG SAVE POSSIBLE LOCATION ARGUMENT F0D37920
LDQ OPCOD LOAD OPCODE F0D37930
TRA MOP01 F0D37940
REM F0D37950
MOPOP TSX SSCAN,4 *ASSEMBLE MACRO NAME F0D37960
TXI MOP00,,0 NO MACRO NAME, IMPROPER CARD F0D37970
SLT EXPRR WAS MACRO NAME IN ERROR F0D37980
SLT EXPND NO, DID NAME END WITH OPERATOR F0D37990
STZ SYMBL YES, IMPROPER CARD F0D38000
ZET SYMB2 NO, IS MACRO NAME TOO LONG F0D38010
MOP00 STZ SYMBL YES, IMPROPER CARD F0D38020
REM REENTRY FOR MACRO F0D38030
TSX SETTP,4 *SET UP MACRO ROUTING F0D38040
PZE ROUTE,,MOPSW F0D38050
TSX MACERR,4 **ALREADY SET UP F0D38060
AXT -1,4 SET MACRO DEFINITION CARD SWITCH F0D38070
SXD MCRDF,4 F0D38080
CAL SYMBL LOAD RIGHT ADJUSTED SYMBOL NAME F0D38090
LDQ Q0 (NAME WILL BE ZERO FOR IMPROPER CARD) F0D38100
LGR 6 LEFT ADJUST F0D38110
TNZ *-1 F0D38120
REM REENTRY FOR CARD FOLLOWING BLANK MACRO CARD F0D38130
MOP01 AXT MOP03,4 SET VECTOR UNTIL FIRST NON-ETC CARD F0D38140
SXA MOPSW+1,4 F0D38150
SXA MOP02,2 SAVE WORD COUNT F0D38160
SXA MOP02+1,1 SAVE CHARACTER COUNT F0D38170
CAL MOPP2 SET PASS TWO TRANSFER F0D38180
SLW OPBIN TO PRINT CARD F0D38190
XCL RECALL LEFT ADJUSTED MACRO NAME F0D38200
SLW MOPNM SAVE FOR END TEST F0D38210
TNZ *+3 IS NAME NULL F0D38220
CAL UNDFL YES, LOAD UNDEFINED MACRO FLAG F0D38230
TRA *+4 F0D38240
TSX SOPTB,4 *IS MACRO NAME IN OPERATIONS TABLE F0D38250
TRA *+5 NO F0D38260
CAL MFLAG YES, SET MULTIPLE DEFINITION FLAG F0D38270
SLW LITRL SAVE FOR PASS TWO F0D38280
AXT 5$MCERR,4 SET PASS TWO TRANSFER F0D38290
SXD OPBIN,4 TO PRINT FLAG AND CARD IN ERROR F0D38300
CAL MOPNM RELOAD MACRO NAME F0D38310
LDI MOPTR LOAD POINTER TO MACRO DEFINITION TABLE F0D38320
TZE *+2 WAS NAME NULL F0D38330
TSX EOPTT,4 *NO, ENTER IN COMBINED OPERATIONS TABLE F0D38340
LXD MOPTR,1 RELOAD POINTER TO MACRO DEFINITION TABLE F0D38350
TXI *+1,1,1 BUMP POINTER BY LENGTH OF HEADING F0D38360
AXT 1,2 SET SWITCH TO STUFF BACKWARD F0D38370
CAL * LOAD CALLING LINKAGE F0D38380
TRA STUFY *INIT SUBROUTINE TO STUFF MACRO DEF TABLE F0D38390
ZSA MPCNT RESET MACRO ARGUMENT COUNT F0D38400
TSX SARGT,4 *INITIALIZE LOCATION OF ARGUMENT TABLE F0D38410
MOP02 AXT **,2 RELOAD WORD COUNT F0D38420
AXT **,1 RELOAD CHARACTER COUNT F0D38430
TRA MOP04 F0D38440
REM REENTRY FOR MACRO ETC CARD F0D38450
MOP03 NZT ETCMD IS ETC CARD EXPECTED F0D38460
TSX MACERR,4 **NO F0D38470
STZ ETCMD YES, RESET FLAG F0D38480
TSX RESTF,4 *RESTORE STUFF CONDITIONS F0D38490
CAL PSYMB LOAD PARTIAL ARGUMENT F0D38500
TZE MOP04 IS THERE A PARTIAL ARGUMENT F0D38510
SLW SYMBL YES, PRESET PARTIAL ARGUMENT F0D38520
STZ SYMB2 CLEAR HIGH ORDER PORTION F0D38530
TSX SSCET,4 *ASSEMBLE REST OF ARGUMENT F0D38540
TXI MOP06,,0 NO MORE ARGUMENT F0D38550
CAL SYMBL LOAD ARGUMENT F0D38560
LXA MPCNT,4 LOAD COUNT OF PARTIAL ARGUMENT F0D38570
TRA MOP05 F0D38580
REM REENTRY TO ASSEMBLE NEXT ARGUMENT F0D38590
MOP04 TSX SSCAN,4 *ASSEMBLE NEXT ARGUMENT F0D38600
TXI MOP06,,0 NO MORE ARGUMENT F0D38610
CAL SYMBL LOAD ARGUMENT F0D38620
TZE MOP05+1 IS ARGUMENT ZERO F0D38630
LXA MPCNT,4 NO, BUMP ARGUMENT COUNT F0D38640
TXI *+1,4,1 F0D38650
TXH MOP05+1,4,63 DID ARGUMENT TABLE OVERFLOW F0D38660
SXA MPCNT,4 NO F0D38670
REM REENTRY FOR ARGUMENT LIST ETC CARD F0D38680
MOP05 SLW DARGS,4 INSERT ARGUMENT IN TABLE F0D38690
REM REENTRY FOR TRUNCATED ARGUMENT LIST F0D38700
SLW PSYMB SAVE POSSIBLE PARTIAL ARGUMENT F0D38710
LXA CHRCTR,4 LOAD PUNCTUATION CHARACTER F0D38720
TXL MOP04,4,27 F0D38730
TXL MOP08,4,28 PUNCTUATION IS ) F0D38740
TXL MOP04,4,42 F0D38750
TXL MOP07,4,43 PUNCTUATION IS $ F0D38760
TXL MOP04,4,47 F0D38770
TXL MOP06,4,48 PUNCTUATION IS BLANK F0D38780
TXL MOP04,4,59 F0D38790
TXL *+2,4,60 PUNCTUATION IS ( F0D38800
TSX MACERR,4 **CHARACTER IS ILLEGAL F0D38810
REM PUNCTUATION IS ( F0D38820
CLA PARNC BUMP PARENTHESES COUNT F0D38830
ADD Q1 F0D38840
STO PARNC F0D38850
TRA MOP04 F0D38860
REM PUNCTUATION IS BLANK F0D38870
MOP06 ZET PARNC ARE PARENTHESES BALANCED F0D38880
TRA *+3 NO F0D38890
TXL MOP07+3,2,-12 YES, IS VARIABLE FIELD EXHAUSTED F0D38900
TRA MOP10 NO F0D38910
TSX PEEKS,4 *DOES ETC CARD FOLLOW F0D38920
TRA GSC32 YES F0D38930
TRA MOP10-1 **NO, FLAG ERROR (23)F0D38940
REM PUNCTUATION IS $ F0D38950
MOP07 TSX C019A,4 *LOOK AT NEXT CHARACTER F0D38960
ERA BLANK IS IT BLANK F0D38970
TNZ MOP04 NO, $ IS HEADING CHARACTER F0D38980
REM REENTRY FOR VARIABLE FIELD EXHAUSTED F0D38990
TSX PEEKS,4 *DOES ETC CARD FOLLOW F0D39000
TRA GSC32 YES F0D39010
TRA MOP10 NO F0D39020
REM PUNCTUATION IS ) F0D39030
MOP08 CLA PARNC BUMP PARENTHESES COUNT F0D39040
SUB Q1 F0D39050
STO PARNC F0D39060
TPL MOP04 ARE THERE TOO MANY RIGHT PARENTHESES F0D39070
TSX MCER1,4 *YES, SET ERROR FLAG (23)F0D39080
REM NO ETC CARD FOLLOWS F0D39090
MOP10 AXT MOP11,4 RESET TRANSFER UNTIL END CARD F0D39100
SXA MOPSW+1,4 F0D39110
LXD MOPTR,1 LOAD POINTER TO THIS MACRO F0D39120
LXA MPCNT,4 LOAD ARGUMENT COUNT F0D39130
PXD ,4 F0D39140
STO 0,1 INSERT ARGUMENT COUNT IN HEADING F0D39150
CAL LCARG LOAD POSSIBLE LOCATION ARGUMENT F0D39160
TZE GSC32 DOES IT EXIST F0D39170
STZ LCARG YES, RESET IT F0D39180
TXI *+1,4,1 BUMP ARGUMENT COUNT F0D39190
SXA MPCNT,4 F0D39200
SLW DARGS,4 ADD LAST ARGUMENT F0D39210
PXD ,4 F0D39220
SSM SET FLAG FOR LOCATION TYPE ARGUMENT F0D39230
STO 0,1 INSERT REVISED ARGUMENT COUNT IN HEADING F0D39240
TRA GSC32 F0D39250
REM REENTRY FOR MACRO INSTRUCTION CARDS F0D39260
MOP11 TSX RESTF,4 *RESTORE STUFF CONDITIONS F0D39270
ZET ETCMD IS AN ETC CARD EXPECTED F0D39280
TRA MSC10 YES F0D39290
CAL OPCOD NO, LOAD OPCODE F0D39300
ERA ENDMM IS OPCODE END F0D39310
TNZ MSC01 NO F0D39320
REM OPCODE IS END F0D39330
CAL BCDBF LOAD LOCATION FIELD F0D39340
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL F0D39350
TNZ MOP12 IS THERE A SYMBOL F0D39360
LDQ RESIDU NO, SAVE BEGINNING OF VARIABLE FIELD F0D39370
STQ MOPMQ WHILE FINDING MACRO NAME F0D39380
CAL CHRCTR F0D39390
SLW MOPCH F0D39400
LXD VRFLD,2 LOAD WORD COUNT F0D39410
LXA VRFLD,1 LOAD CHARACTER COUNT F0D39420
TSX SSCAN,4 *ASSEMBLE VARIABLE FIELD SYMBOL F0D39430
TXI RMT02,,0 NO VARIABLE FIELD SYMBOL F0D39440
LDQ MOPMQ RESTORE BEGINNING OF VARIABLE FIELD F0D39450
STQ RESIDU F0D39460
CAL MOPCH F0D39470
SLW CHRCTR F0D39480
CAL SYMBL LOAD SYMBOL F0D39490
MOP12 LDQ Q0 LEFT ADJUST F0D39500
LGR 6 F0D39510
TNZ *-1 F0D39520
XCL F0D39530
ERA MOPNM IS THIS END OF MACRO F0D39540
TZE RMT02 YES F0D39550
TRA MSC01 NO F0D39560
REM F0D39570
RMTOP AXT -1,4 SET MACRO DEFINITION CARD SWITCH F0D39580
SXD MCRDF,4 (CALL CARD SWITCH FOR RMT * ) F0D39590
CAL CHRCTR LOAD FIRST CHARACTER F0D39600
ERA ASTRK IS IT * F0D39610
TNZ RMT00 NO F0D39620
AXT 5$BES01+4,4 YES, SET PASS TWO TRANSFER ADDRESS $F0D39630
REM TO LIST LOCATION LEFT ADJUSTED F0D39640
SXD OPBIN,4 F0D39650
TSX OTPUT,4 *WRITE RMT * CARD F0D39660
TSX RMTSR,4 *OUTPUT WAITING SEQUENCES F0D39670
TRA SOURC F0D39680
RMT00 TSX SETTP,4 *SET UP REMOTE ROUTING F0D39690
PZE ROUTE,,MOPSW F0D39700
TSX MACERR,4 **ALREADY SET UP F0D39710
AXT RMT01,4 SET TRANSFER UNTIL NEXT RMT CARD F0D39720
SXA MOPSW+1,4 F0D39730
CAL MOPTR LOAD POINTER TO MACRO DEFINITION TABLE F0D39740
LXD RMTEN,1 LOAD POINTER TO LAST REMOTE F0D39750
STD 0,1 INSERT POINTER IN HEADING DECREMENT F0D39760
STD RMTEN RESET POINTER F0D39770
PDX ,1 F0D39780
CAL BHEAD INSERT CURRENT HEADING CHARACTER F0D39790
ANA Q63 WITH EXTRANEOUS CHARACTERS DELETED F0D39800
SLW 0,1 AS HEADING ADDRESS F0D39810
TXI *+1,1,1 BUMP POINTER BY LENGTH OF HEADING F0D39820
ZSA MPCNT RESET REMOTE ARGUMENT COUNT F0D39830
AXT 1,2 SET SWITCH TO STUFF BACKWARD F0D39840
CAL * LOAD CALLING LINKAGE F0D39850
TRA STUFY *INITIALIZE SUBROUTINE TO STUFF MACRO DEF F0D39860
TSX SARGT,4 *INITIALIZE LOCATION OF ARGUMENT TABLE F0D39870
TRA GSC32 F0D39880
REM F0D39890
REM REENTRY FOR REMOTE INSTRUCTION CARD F0D39900
RMT01 TSX RESTF,4 *RESTORE STUFF CONDITIONS F0D39910
ZET ETCMD IS AN ETC CARD EXPECTED F0D39920
TRA MSC10 YES F0D39930
CAL OPCOD NO, LOAD OPCODE F0D39940
ERA RMTMM IS OPCODE RMT F0D39950
TNZ MSC01 NO F0D39960
REM OPCODE IS RMT, END OF REMOTE SEQUENCE F0D39970
REM REENTRY AFTER END OF MACRO DEFINITION F0D39980
REM CLOSE OUT MACRO DEFINITION TABLE F0D39990
RMT02 TSX SFZRO,4 *STUFF TERMINATING ZEROS F0D40000
TRA RMT03 TO CHECK FOR UNNESTED MACRO $F0D40010
SXD MOPTR,2 NO, SET POINTER TO NEXT HEADING F0D40020
SXD MAC07,2 RESET MACRO EXPANSION TABLE OVERFLOW TEST F0D40030
TSX OTPUT,4 *WRITE RMT/END CARD F0D40040
ZSD SSCN0 RESET MACRO DEFINITION SCAN SWITCH F0D40050
ZSD MCRDF RESET MACRO DEFINITION CARD SWITCH F0D40060
TSX RESTP,4 *RESET ASSEMBLER ROUTING F0D40070
PZE ROUTE,,MOPSW F0D40080
TRA SOURC F0D40090
REM F0D40100
REM ANALYSE CARD IN RANGE OF MACRO OR RMT F0D40110
REM DEFINE CARD LOCATION FIELD F0D40120
MSC01 CAL BCDBF LOAD LOCATION FIELD F0D40130
LAS BLANKS DOES LOCATION FIELD EXIST F0D40140
TRA *+2 YES F0D40150
TRA MSC02 NO F0D40160
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL (OR EXPLICIT 0) F0D40170
TSX SMART,4 *LOOK UP LOCATION IN ARGUMENT TABLE F0D40180
TSX SFARN,4 *STUFF ARGUMENT NUMBER F0D40190
TSX SFARS,4 *STUFF LOCATION SYMBOL F0D40200
REM DEFINE CARD OPCODE F0D40210
MSC02 AXC Q1,1 PREPARE TO STUFF OP TAG F0D40220
TSX SFFLG,4 *STUFF FLAG F0D40230
LDQ RESIDU SAVE BEGINNING OF VARIABLE FIELD F0D40240
STQ MOPMQ DURING OPCODE ANALYSIS F0D40250
LDQ CHRCTR F0D40260
STQ MOPCH F0D40270
LDQ BCDBF+1 LOAD OPCODE F0D40280
LGL 6 INITIALIZE VARIABLE FIELD SCAN F0D40290
STQ RESIDU TO SCAN OPCODE F0D40300
ZAC INITIALIZE FIRST CHARACTER IN OPCODE F0D40310
LGL 6 F0D40320
SLW CHRCTR F0D40330
AXT -1,2 SET COUNT TO WORD 2 F0D40340
AXT 6,1 SET COUNT TO CHARACTER 2 F0D40350
REM REENTRY AFTER ' OR * F0D40360
MSC03 TSX SSCAN,4 *ASSEMBLE (PARTIAL) OP FIELD F0D40370
TXI MSC05,,0 NULL OP FIELD F0D40380
CAL SYMBL LOAD PARTIAL OP CODE F0D40390
TZE MSC04+2 IS THERE AN OP CODE F0D40400
SXA MSC04,2 YES, SAVE WORD COUNT F0D40410
SXA MSC04+1,1 SAVE CHARACTER COUNT F0D40420
TSX SMART,4 *LOOK UP OP CODE IN ARGUMENT TABLE F0D40430
TSX SFARN,4 *STUFF ARGUMENT NUMBER F0D40440
TSX SFARS,4 *STUFF OPCODE F0D40450
MSC04 AXT **,2 RELOAD WORD COUNT F0D40460
AXT **,1 RELOAD CHARACTER COUNT F0D40470
CAL CHRCTR RELOAD PUNCTUATION F0D40480
LAS PRIME IS PUNCTUATION ' F0D40490
TRA *+2 NO F0D40500
TRA MSC03 YES, GET NEXT SUBFIELD F0D40510
ERA ASTRK IS PUNCTUATION * F0D40520
TNZ MSC07 NO, CHECK FURTHER (24)F0D40530
MSC06 CAL CHRCTR YES, SET SUBFIELD TO PUNCTUATION (24)F0D40540
SLW SYMBL F0D40550
TSX SFARS,4 *STUFF * F0D40560
TRA MSC03 GET NEXT SUBFIELD F0D40570
REM BEGINNING OF VARIABLE FIELD SENSED F0D40580
MSC05 AXC Q62,1 PREPARE TO STUFF FIELD TAG F0D40590
TSX SFFLG,4 *STUFF FLAG F0D40600
TRA MSC09 COMPUTE VARIABLE FIELD POSITION (24)F0D40610
SXA ERASE,1 STORE IT FOR STUFF ROUTINE (24)F0D40620
AXC ERASE,1 STUFF INTO MACRO DEFINITION (24)F0D40630
TSX SFFLG,4 (24)F0D40640
REM F0D40650
REM BEGIN TESTS FOR OPCODES REQUIRING SPECIAL HANDLING F0D40660
MSC10 LXD VRFLD,2 LOAD WORD COUNT (24)F0D40670
LXA VRFLD,1 LOAD CHARACTER COUNT (24)F0D40680
AXT -1,4 PRESET FIRST FIELD SWITCH F0D40690
SXD GSCSA+1,4 F0D40700
STZ COUNT RESET FIELD COUNT F0D40710
STZ SYMBL RESET FIELD F0D40720
AXT 1,4 PRESET LENGTH OF FIELD TO BE STUFFED (24)F0D40730
SXD TOTAL,4 (24)F0D40740
CAL OPCOD LOAD OPCODE F0D40750
REM COMPARE FOR OP CODE OF BCD, BCI, TTL, OR REM (23)F0D40760
AXT 4,4 LOAD LENGTH OF TABLE (23)F0D40770
LAS BCDMM+4,4 COMPARE SUCCESSIVE ENTRIES (23)F0D40780
TRA *+2 AND IF MATCH IS FOUND, GO INITIALIZE (23)F0D40790
TRA MSC11 FOR FULL CARD SCAN (23)F0D40800
TIX *-3,4,1 IS LIST EXHAUSTED (23)F0D40810
TRA MSC1A YES, GO CHECK FOR LITERAL (23)F0D40820
REM PATCH TO MACRO INSTRUCTION ARGUMENT SCAN (23)F0D40830
MCERP TSX MCER1,4 SET FLAG AND PASS TWO ADDRESS (23)F0D40840
TRA SSN04+4 (23)F0D40850
REM ERROR ROUTINE FOR UNDEFINED MACRO NAME (23)F0D40860
MCER3 CAL UNDFL LOAD UNDEFINED FLAG (23)F0D40870
TSX MCERR,4 *SET FOR PASS TWO (23)F0D40880
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD (23)F0D40890
TRA READ1 (23)F0D40900
REM PATCH TO IFF PSEUDO-OPERATION PROCESSOR (23)F0D40910
IFF06 TXH IFF02,2,0 DO ARGUMENT LENGTHS DIFFER.. (23)F0D40920
LXA MARGS,4 NO, LOAD POINTER TO FIRST ARGUMENT (23)F0D40930
LXA MARGS-1,2 LOAD POINTER TO SECOND ARGUMENT (23)F0D40940
SXD IFF08,2 AND INITIALIZE TEST FOR END (23)F0D40950
IFF07 CAL 0,4 COMPARE CORRESPONDING WORDS (23)F0D40960
ERA 0,2 OF ARGUMENT STRINGS (23)F0D40970
TNZ IFF02 THROUGH IF DIFFERENT (23)F0D40980
TXI IFF08,4,-1 BUMP FIRST ARGUMENT POINTER (23)F0D40990
IFF08 TXL IFF02+1,4,** HAVE WE COMPARED ALL OF IT (23)F0D41000
TXI IFF07,2,-1 NO, KEEP CHECKING (23)F0D41010
REM TEST FOR LITERAL $F0D41020
MSC1A CAL CHRCTR $F0D41030
ERA EQUAL IF EQUAL TREAT AS $F0D41040
TNZ MSC20 HOLLERITH FIELD $F0D41050
REM REENTRY FOR TTL,REM, BCI, BCD WITH SYMBOLIC COUNT $F0D41060
MSC11 SXA GSAV1,1 SAVE VARIABLE FIELD CHARACTER COUNT $F0D41070
TXI MSC14,1,-1 $F0D41080
REM PATCH TO MACRO-INSTRUCTION PROCESSOR (23)F0D41090
MACIF TXL IFF01,4,** IS THIS IFF PSEUDO OPERATION (23)F0D41100
TRA MAC02 NO, CONTINUE TO ARGUMENT SCAN (23)F0D41110
REM PATCH TO GENERAL SCAN ROUTINE TO PREVENT LOSS OF (23)F0D41120
REM LAST PUNCTUATION CHARACTER OF ALPHANUMERIC FIELD (23)F0D41130
GSCBP AXC MSC22,4 UPDATE RETURN ADDRESS FROM GSCET (23)F0D41140
SXA SMARX,4 SUBROUTINE IN CASE NON-BLANK (23)F0D41150
TRA MSC22+2 PUNCTUATION OCCURS LATER ON CARD (23)F0D41160
REM RE-ENTRY FOR VARIABLE FIELD TO BE SCANNED IN FULL (23)F0D41161
MSC14 AXC 12,4 SET LENGTH OF CARD TO SCAN $F0D41170
SXD GSC11+1,4 SET END OF HOLLERITH FIELD SCAN TEST $F0D41180
AXT -1,4 SET HOLLERITH FIELD SWITCHES F0D41190
SXD GSC07,4 F0D41200
SXD GSC09,4 F0D41210
TRA MSC22 F0D41220
REM REENTRY FOR NONHOLLERITH OPCODES F0D41230
MSC20 SXA GSAV1,1 SAVE VARIABLE FIELD CHARACTER COUNT F0D41240
TXI *+1,1,-1 F0D41250
NZT ETCMD IS ETC CARD EXPECTED F0D41260
TRA MSC22 NO $F0D41270
STZ ETCMD YES, RESET FLAG F0D41280
LXD PCONT,4 PRESET PARTIAL FIELD COUNT F0D41290
SXD COUNT,4 F0D41300
CAL PSYMB PRESET PARTIAL SYMBOL F0D41310
SLW SYMBL F0D41320
ZSD GSC02+1 SET SWITCH TO PROCESS FIRST FIELD F0D41330
REM F0D41340
REM REENTRY FOR HOLLERITH OPCODES F0D41350
REM BEGIN VARIABLE FIELD SCAN F0D41360
MSC22 TSX GSCET,4 *ASSEMBLE NEXT FIELD F0D41370
TRA MSC23 FIELD IS AN ARGUMENT F0D41380
REM REENTRY FOR HOLLERITH FIELD NOT AN ARGUMENT F0D41390
ZSD GSCSA+1 RESET FIRST FIELD SWITCH F0D41400
CLA COUNT ADD FIELD COUNT F0D41410
ADD TOTAL INTO STUFF COUNT F0D41420
STO TOTAL F0D41430
STZ COUNT RESET FIELD COUNT F0D41440
STZ SYMBL DELETE FIELD NOT AN ARGUMENT F0D41450
LXA GSAV2,2 LOAD VARIABLE FIELD WORD COUNT F0D41460
TRA GSC01 F0D41470
REM FIELD IS AN ARGUMENT F0D41480
REM REENTRY AFTER FIRST BLANK IN HOLLERITH FIELD F0D41490
MSC23 TSX GSCSA,4 *STUFF ARGUMENT F0D41500
STZ COUNT RESET FIELD COUNT F0D41510
STZ SYMBL RESET FIELD F0D41520
AXT 2,2 SET STUFF COUNT TO INCLUDE F0D41530
SXD TOTAL,2 PRECEDING PUNCTUATION F0D41540
GSAV2 AXT **,2 LOAD VARIABLE FIELD WORD COUNT F0D41550
GSAV1 AXT **,1 LOAD VARIABLE FIELD CHARACTER COUNT F0D41560
TRA MSC22 ENSURE CORRECT RETURN ADDRESS (23)F0D41570
REM F0D41580
REM ASSEMBLE NEXT FIELD F0D41590
GSCET SXA SMARX,4 SAVE CALLING LINKAGE F0D41600
SXA GSCX1,2 SAVE STUFF WORD COUNT F0D41610
SXA GSCX2,1 SAVE STUFF CHARACTER COUNT F0D41620
GSC01 LXA GSAV1,1 LOAD VARIABLE FIELD CHARACTER COUNT F0D41630
TSX C0190,4 *GET NEXT CHARACTER F0D41640
SXA GSAV1,1 SAVE VARIABLE FIELD CHARACTER COUNT F0D41650
LXD COUNT,1 BUMP FIELD COUNT F0D41660
TXI *+1,1,1 F0D41670
SXD COUNT,1 F0D41680
LXD BKTBL,4 LOAD SPECIAL CHARACTER COUNT F0D41690
LAS BKTBL,4 IS THIS A SPECIAL CHARACTER F0D41700
TRA *+3 NO F0D41710
TRA GSC02 YES F0D41720
TIX *-3,4,1 IS SPECIAL CHARACTER COUNT EXHAUSTED F0D41730
CAL SYMBL YES, APPEND THIS CHARACTER F0D41740
ALS 6 TO PARTIAL SYMBOL F0D41750
ORA CHRCTR F0D41760
SLW SYMBL F0D41770
TRA GSC01 F0D41780
REM F0D41790
REM SYMBOL HAS BEEN ASSEMBLED, TRANSFER ON PUNCTUATION F0D41800
GSC02 SXA GSAV2,2 SAVE VARIABLE FIELD WORD COUNT F0D41810
TXH GSC16,2,-1 IS THIS FIRST FIELD ON ETC CARD F0D41820
TRA GSC04+1,4 NO, PROCESS FIELD ON PUNCTUATION F0D41830
REM F0D41840
TRA GSC15 PUNCTUATION IS ( F0D41850
TRA GSC34 PUNCTUATION IS , F0D41860
TRA GSC34 PUNCTUATION IS / F0D41870
TRA GSC09 PUNCTUATION IS BLANK F0D41880
TRA GSC34 PUNCTUATION IS * F0D41890
TRA GSC08 PUNCTUATION IS $ F0D41900
TRA GSC34 PUNCTUATION IS - F0D41910
TRA GSC07 PUNCTUATION IS ) F0D41920
TRA GSC34 PUNCTUATION IS + F0D41930
TRA GSC05 PUNCTUATION IS ' F0D41940
GSC04 TRA GSC34 PUNCTUATION IS = $F0D41950
REM F0D41960
REM PUNCTUATION IS ' F0D41970
GSC05 TSX GSC33,4 *CHECK PRECEDING FIELD FOR ARGUMENT F0D41980
TRA GSC06 FIELD IS AN ARGUMENT F0D41990
CLA COUNT ADD FIELD COUNT F0D42000
SUB D1 LESS PUNCTUATION CHARACTER F0D42010
ADD TOTAL INTO STUFF COUNT F0D42020
STO TOTAL F0D42030
TSX GSCSF,4 *STUFF FIELD PRECEDING ' F0D42040
ZSD GSCSA+1 RESET FIRST FIELD SWITCH F0D42050
TRA GSC06+1 F0D42060
REM ' FOLLOWS ARGUMENT F0D42070
GSC06 TSX GSCSA,4 *STUFF ARGUMENT PRECEDING ' F0D42080
AXC MSC22,4 SIMULATE CALL TO ASSEMBLE NEXT FIELD F0D42090
SXA SMARX,4 F0D42100
STZ COUNT RESET FIELD COUNT F0D42110
STZ SYMBL RESET FIELD F0D42120
AXT 1,2 SET STUFF COUNT TO OMIT PRECEDING ' F0D42130
SXD TOTAL,2 F0D42140
LXA GSAV2,2 LOAD VARIABLE FIELD WORD COUNT F0D42150
LXA GSAV1,1 LOAD VARIABLE FIELD CHARACTER COUNT F0D42160
TIX *+3,1,1 DELETE ' FROM STUFF COUNT F0D42170
TXI *+1,2,-1 F0D42180
AXT 6,1 F0D42190
SXA GSCX2,1 SAVE STUFF CHARACTER COUNT F0D42200
SXA GSCX1,2 SAVE STUFF WORD COUNT F0D42210
LXA GSAV2,2 RELOAD VARIABLE FIELD WORD COUNT F0D42220
TRA GSC01 F0D42230
REM F0D42240
REM PUNCTUATION IS ) F0D42250
GSC07 TXL GSC34,4,** IS ) WITHIN HOLLERITH FIELD F0D42260
CLA PARNC NO, BUMP PARENTHESES COUNT F0D42270
SUB Q1 F0D42280
STO PARNC F0D42290
TPL GSC34 ARE THERE TOO MANY RIGHT PARENTHESES F0D42300
TSX SFZRO,4 *YES, END THIS RECORD F0D42310
TRA GSCPE **SET ERROR FLAG (23)F0D42320
REM F0D42330
REM PUNCTUATION IS $ F0D42340
GSC08 LXA GSAV1,1 LOAD VARIABLE FIELD CHARACTER COUNT F0D42350
TSX C019A,4 *LOOK AT NEXT CHARACTER F0D42360
ERA BLANK IS IT BLANK F0D42370
TNZ GSC34 NO, $ IS HEADING CHARACTER F0D42380
TSX PEEKS,4 *YES, DOES ETC CARD FOLLOW F0D42390
TRA GSC20 YES F0D42400
NZT PARNC NO, ARE PARENTHESES BALANCED F0D42410
TRA GSC34 YES F0D42420
TRA GSCPE **NO, SET FLAG (23)F0D42430
REM F0D42440
REM PUNCTUATION IS BLANK F0D42450
GSC09 TXH GSC12,4,** IS BLANK WITHIN HOLLERITH FIELD F0D42460
TXH GSC10,1,1 YES,HAS A FIELD BEEN COLLECTED $F0D42470
AXT ,0 NO OPERATION $F0D42480
TXL GSC11,4,** NO, IS THIS FIRST BLANK F0D42490
AXT -1,4 YES, RESET SWITCH F0D42500
SXD GSC09+3,4 F0D42510
CLA TOTAL SAVE STUFF COUNT F0D42520
STO PCONT TO OMIT TERMINATING BLANKS F0D42530
TRA GSC11 F0D42540
REM FIELD HAS BEEN COLLECTED F0D42550
GSC10 TSX GSC33,4 *CHECK FIELD FOR ARGUMENT F0D42560
TXI G10P1,4,GSC10-1 *AXT -1,4 FIELD IS AN ARGUMENT. $F0D42570
CLA COUNT ADD FIELD COUNT F0D42580
ADD TOTAL INTO HOLLERITH FIELD COUNT F0D42590
TXI G10PA,4,GSC10-2 *AXT -2,4 STUFF UP TO BLANK. $F0D42600
GSC11 LXA GSAV2,4 LOAD VARIABLE FIELD WORD COUNT F0D42610
TXH GSCBP,4,** IS HOLLERITH FIELD COMPLETE (23)F0D42620
ZSD GSC09+3 YES, SET FIRST BLANK SWITCH F0D42630
CLA PCONT SET STUFF COUNT F0D42640
STO TOTAL TO HOLLERITH FIELD COUNT F0D42650
TSX GSCSF,4 *STUFF FIELD PRECEDING BLANK F0D42660
TRA GSC31 F0D42670
REM CARD IS STANDARD FORMAT F0D42680
GSC12 NZT PARNC ARE PARENTHESES BALANCED F0D42690
TRA *+5 YES F0D42700
TXH GSC34,2,-12 NO, IS VARIABLE FIELD EXHAUSTED F0D42710
TSX PEEKS,4 *YES, DOES AN ETC CARD FOLLOW F0D42720
TRA GSC20 YES F0D42730
GSCPE TSX MCER1,4 *NO, SET ERROR FLAG (23)F0D42740
REM END OF VARIABLE FIELD - BLANK DOES NOT FOLLOW ( OR $ F0D42750
TXH *+4,2,-12 IS VARIABLE FIELD EXHAUSTED F0D42760
TSX PEEKS,4 *YES, DOES AN ETC CARD FOLLOW F0D42770
TRA GSC20 YES F0D42780
TRA GSC13 NO F0D42790
TSX PEEKS,4 *DOES A PROGRAMMERS ETC FOLLOW F0D42800
TRA *+2 YES F0D42810
TRA GSC13 NO F0D42820
STZ ETCMD RESET ETC FLAG F0D42830
STZ ARGNO DELETE ARGUMENT NUMBER F0D42840
TSX SFARN+1,4 STUFF 7700 FLAG FOR FOLLOWING CARD ETC F0D42850
REM REENTRY FOR NO ETC CARD TO FOLLOW F0D42860
GSC13 TSX GSC33,4 *CHECK FIELD FOR ARGUMENT F0D42870
TRA GSC14 FIELD IS AN ARGUMENT F0D42880
CLA COUNT ADD FIELD COUNT F0D42890
SUB D1 LESS PUNCTUATION CHARACTER F0D42900
ADD TOTAL INTO STUFF COUNT F0D42910
STO TOTAL F0D42920
TSX GSCSF,4 *STUFF FIELD PRECEDING BLANK F0D42930
TRA GSC31 F0D42940
GSC14 TSX GSCSA,4 *STUFF ARGUMENT PRECEDING FINAL BLANK F0D42950
TRA GSC31 F0D42960
REM F0D42970
REM PUNCTUATION IS ( F0D42980
GSC15 CLA PARNC BUMP PARENTHESES COUNT F0D42990
ADD Q1 F0D43000
STO PARNC F0D43010
TRA GSC34 F0D43020
REM F0D43030
REM REENTRY FOR FIRST FIELD ON ETC CARD F0D43040
GSC16 SXA GSC19,4 SAVE PUNCTUATION CHARACTER F0D43050
CLA COUNT COMPUTE LENGTH OF ADDED SYMBOL F0D43060
SUB PCONT F0D43070
STD COUNT F0D43080
GSC17 TXL *+4,1,** IS THIS TAIL END OF A FIELD F0D43090
REM WHICH WAS TOO LONG TO BE AN ARGUMENT F0D43100
TXH *+3,1,7 NO, IS FIELD TOO LONG TO BE AN ARGUMENT F0D43110
TSX GSC33,4 *NO, CHECK FIELD FOR ARGUMENT F0D43120
TRA GSC18+2 FIELD IS AN ARGUMENT F0D43130
ZSD GSC17 RESET TAIL END SWITCH F0D43140
LXD PCONT,1 LOAD LENGTH OF PARTIAL FIELD F0D43150
TXL GSC18,1,0 IS THERE A PARTIAL FIELD F0D43160
TXI *+1,1,1 YES, COMPUTE LENGTH+1 OF PARTIAL FIELD F0D43170
SXA ERASE,1 F0D43180
AXC ERASE,1 F0D43190
TSX SFFLG,4 *STUFF COUNT+1 F0D43200
LXD PCONT,4 LOAD LENGTH OF PARTIAL FIELD F0D43210
LDC PCONT,2 COMPUTE LOCATION OF FIRST CHARACTER F0D43220
TXI *+1,2,6 F0D43230
AXC PSYMB,1 PREPARE TO STUFF PARTIAL FIELD F0D43240
CAL * LOAD CALLING LINKAGE F0D43250
TRA STUFF *STUFF PARTIAL FIELD F0D43260
TSX MACERR,4 **IMPOSSIBLE RETURN F0D43270
TRA ETCPC TRANSFER TO PATCH $F0D43280
GSC18 AXT -1,4 SET PARTIAL FIELD SWITCH F0D43290
SXD SMART+1,4 F0D43300
AXT -1,4 RESET FIRST FIELD SWITCH F0D43310
SXD GSC02+1,4 F0D43320
AXC MSC22,4 SIMULATE CALL TO ASSEMBLE NEXT FIELD F0D43330
SXA SMARX,4 F0D43340
LXD COUNT,1 LOAD LENGTH OF ADDED FIELD F0D43350
GSC19 AXT **,4 RELOAD PUNCTUATION CHARACTER F0D43360
TRA GSC02+2 F0D43370
REM F0D43380
REM ETC CARD WILL FOLLOW (BLANK, $BLANK, OR CARD COLUMN 72 F0D43390
GSC20 LXD COUNT,4 LOAD FIELD COUNT F0D43400
TXI *+1,4,-1 DELETE TERMINAL $ OR BLANK F0D43410
TXH GSC21,4,6 IS FIELD TOO LONG TO BE AN ARGUMENT F0D43420
SXD PCONT,4 NO, SAVE PARTIAL FIELD COUNT F0D43430
CAL SYMBL SAVE PARTIAL FIELD F0D43440
SLW PSYMB F0D43450
TSX GSCSF,4 *STUFF FIELD PRECEDING PARTIAL FIELD F0D43460
TRA GSC32 F0D43470
REM LAST FIELD IS NOT AN ARGUMENT F0D43480
GSC21 STZ PCONT RESET LENGTH OF PARTIAL FIELD F0D43490
STZ PSYMB DELETE PARTIAL FIELD F0D43500
PXD ,4 RECALL LENGTH OF PARTIAL FIELD F0D43510
ADD TOTAL ADD INTO STUFF COUNT F0D43520
STO TOTAL F0D43530
AXT -1,4 SET SWITCH THAT FIRST FIELD ON NEXT CARD F0D43540
SXD GSC17,4 IS TAIL END OF A FIELD NOT AN ARGUMENT F0D43550
TSX GSCSF,4 *STUFF TERMINAL FIELD F0D43560
TRA GSC32 F0D43570
REM F0D43580
REM REENTRY AFTER END OF SCAN F0D43590
GSC31 TSX SFZRO,4 *STUFF END OF RECORD MARK F0D43600
STZ PARNC RESET PAREN COUNT F0D43610
ZSD GSC07 RESET HOLLERITH FIELD SWITCHES F0D43620
ZSD GSC09 F0D43630
REM REENTRY AFTER END OF SCAN, ETC FOLLOWS F0D43640
REM REENTRY AFTER END OF MACRO DEFINING ARGUMENTS F0D43650
GSC32 LXD STUFI,4 SAVE STUFF CONDITIONS F0D43660
SXA RSTF1,4 IN CASE MAC ALTERS THEM F0D43670
LXD STUM2,4 F0D43680
SXA RSTF1+2,4 F0D43690
TRA READ1 F0D43700
REM F0D43710
REM REENTRY AFTER ' OR BLANK, OR FIRST FIELD ON ETC CARD F0D43720
GSC33 SXA SMARX,4 SAVE CALLING LINKAGE F0D43730
REM REENTRY AFTER OTHER PUNCTUATION F0D43740
GSC34 ZSD GSC09+3 SET FIRST BLANK SWITCH F0D43750
LXD COUNT,4 LOAD FIELD WIDTH F0D43760
TXH SMARX,4,7 IS FIELD TOO LONG TO BE AN ARGUMENT F0D43770
CAL SYMBL NO, LOAD FIELD F0D43780
TRA SMART+1 CHECK FOR ARGUMENT F0D43790
REM RETURN IS TO 1,4 FOR ARGUMENT F0D43800
REM 2,4 FOR OTHER FIELD F0D43810
REM F0D43820
REM STUFF ARGUMENT INTO MACRO DEFINITION F0D43830
GSCSA SXA GSCAX,4 SAVE CALLING LINKAGE F0D43840
TXL *+2,4,** IS THIS FIRST FIELD F0D43850
TSX GSCSF,4 *NO, STUFF FIELD PRECEDING ARGUMENT F0D43860
TSX SFARN+1,4 *STUFF ARGUMENT F0D43870
ZSD GSCSA+1 RESET FIRST FIELD SWITCH F0D43880
GSCAX AXT **,4 RELOAD CALLING LINKAGE F0D43890
TRA 1,4 F0D43900
REM F0D43910
REM STUFF FIELD INTO MACRO DEFINITION F0D43920
GSCSF SXA GSFP1,4 SAVE CALLING LINKAGE. $F0D43930
LXD TOTAL,1 LOAD LENGTH OF VARIABLE FIELD F0D43940
TXL GSCFX+1,1,1 DOES A VARIABLE FIELD EXIST... $F0D43950
TXL *+3,1,61 YES. IS FIELD COUNT TOO LONG... $F0D43960
TXI GSFPA,1,-14 *YES. BREAK IT UP AND STUFF TWICE. $F0D43970
SXD TOTAL,1 *TELL GS0X1+1 HOW MUCH TO STUFF. $F0D43980
SXA GSCFX,4 SET RETURN TO PATCH OR CALLER. $F0D43990
GSCS1 SXA ERASE,1 SET LENGTH+1 OF FIELD F0D44000
AXC ERASE,1 F0D44010
TSX SFFLG,4 *STUFF COUNT+1 F0D44020
GSCX2 AXC **,2 LOAD COUNT OF FIRST CHAR TO BE STUFFED F0D44030
GSCX1 AXT **,1 LOAD COUNT OF FIRST WORD TO BE STUFFED F0D44040
LXD TOTAL,4 LOAD LENGTH OF FIELD TO BE STUFFED F0D44050
TXI *+1,2,6 COMPUTE LOCATION OF FIRST CHARACTER F0D44060
TXI *+1,1,-BCDBF COMPUTE LOCATION OF FIRST WORD F0D44070
CAL * LOAD CALLING LINKAGE F0D44080
TXI STUFF,4,-1 STUFF FIELD F0D44090
TSX MACERR,4 **IMPOSSIBLE RETURN F0D44100
GSCFX AXT **,4 RELOAD CALLING LINKAGE F0D44110
TRA 1,4 F0D44120
REM F0D44130
REM FLOAT MACRO ARGUMENT TABLE ABOVE SYMBOL TABLE F0D44140
SARGT LXD STPTR,1 GET SYMBOL TABLE END $F0D44150
TRA SARGP AND CHECK FOR NESTING $F0D44160
SXD MP1,1 INITIALIZE MAC DEF OVERFLOW TEST $F0D44170
AXT -1,1 SET MACRO DEFINITION SCAN SWITCH F0D44180
SXD SSCN0,1 F0D44190
TRA 1,4 F0D44200
REM F0D44210
REM F0D44220
REM RESTORE STUFF CONDITIONS F0D44230
RESTF SXA RSTFX,4 SAVE CALLING LINKAGE F0D44240
RSTF1 AXT **,4 RESTORE STUFF F0D44250
TRA MP1 TEST FOR OVERFLOW OF MACRO DEF TABLE $F0D44260
AXT **,4 BY AN INTERVENING MAC CARD F0D44270
SXD STUM2,4 F0D44280
SXD STF01,4 F0D44290
ZSD STF03+1 DELETE OVERFLOW TEST F0D44300
ZSD STF08+2 F0D44310
AXT 1,4 F0D44320
SXD STF08+1,4 SET DIRECTION OF STUFF BACKWARD F0D44330
SXD STF10+2,4 F0D44340
AXT ,0 (23)F0D44350
CAL MOPP2 SET PASS 2 TRANSFER ADDRESS F0D44360
SLW OPBIN TO PRINT CARD F0D44370
RSTFX AXT **,4 RELOAD CALLING LINKAGE F0D44380
TRA 1,4 F0D44390
REM F0D44400
REM LOOK UP SYMBOL IN ARG TABLE F0D44410
SMARS CAL SYMBL F0D44420
SMART SXA SMARX,4 SAVE CALLING LINKAGE F0D44430
TXL SMARX,4,** IS THIS PARTIAL FIELD ON ETC CARD F0D44440
TZE SMARX NO, DOES ARGUMENT EXIST F0D44450
MPCNT AXT **,4 YES, LOAD COUNT OF ARGUMENTS IN TABLE F0D44460
TXL SMARX,4,0 DO ARGUMENTS EXIST F0D44470
LAS DARGS,4 YES, IS IT THIS ARGUMENT F0D44480
TRA *+2 NO F0D44490
TRA *+3 YES F0D44500
TIX *-3,4,1 IS ARGUMENT TABLE EXHAUSTED F0D44510
TRA SMARX YES F0D44520
REM ARGUMENT HAS BEEN LOCATED IN TABLE F0D44530
SXD ARGNO,4 SAVE ARGUMENT NUMBER F0D44540
LXA SMARX,4 RELOAD CALLING LINKAGE F0D44550
TRA 1,4 F0D44560
REM SYMBOL IS NOT AN ARGUMENT F0D44570
SMARX AXT **,4 RELOAD CALLING LINKAGE F0D44580
ZSD SMART+1 RESET PARTIAL FIELD SWITCH F0D44590
TRA 2,4 F0D44600
REM F0D44610
REM STUFF ARGUMENT NUMBER F0D44620
SFARN TXI *+1,4,-1 BUMP CALLING LINKAGE TO RETURN TO 2,4 F0D44630
SXA SFARX,4 SAVE CALLING LINKAGE F0D44640
CAL ARGNO LOAD ARGUMENT NUMBER F0D44650
ORA D4032 FORM 0077NN000000 F0D44660
SLW ERASE F0D44670
AXC ERASE,1 PREPARE TO STUFF FROM ERASE F0D44680
AXT 1,6 BEGINNING WITH SECOND CHARACTER F0D44690
TXI SFS04,4,1 USING TWO CHARACTERS F0D44700
REM STUFF ARGUMENT SYMBOL F0D44710
SFARS SXA SFARX,4 SAVE CALLING LINKAGE F0D44720
AXT 7,4 PREPARE TO COUNT CHARACTERS F0D44730
AXT 0,2 F0D44740
ZAC F0D44750
LDQ SYMBL LOAD SYMBOL F0D44760
LGL 6 NEXT CHARACTER F0D44770
TNZ *+3 IS THIS IT F0D44780
TXI *+1,2,1 NO, BUMP CHARACTER COUNT F0D44790
TIX *-3,4,1 IS SYMBOL ALL SCANNED F0D44800
SXA SFS03,4 SAVE LENGTH OF SYMBOL F0D44810
SXA SFS03+1,2 SAVE STARTING CHARACTER F0D44820
TXH SFS02,4,1 WAS FIELD BLANK OR ZERO F0D44830
AXC D2,1 YES, PREPARE TO STUFF EXPLICIT ZERO F0D44840
AXT 2,2 BEGINNING WITH THIRD CHARACTER F0D44850
TXI SFS04,4,1 USING TWO CHARACTERS F0D44860
REM ARGUMENT SYMBOL EXISTS F0D44870
SFS02 SXA ERASE,4 SET LENGTH+1 OF SYMBOL F0D44880
AXC ERASE,1 F0D44890
TSX SFFLG,4 *STUFF COUNT+1 F0D44900
SFS03 AXT **,4 RELOAD LENGTH+1 OF SYMBOL F0D44910
AXT **,2 RELOAD POSITION OF FIRST CHARACTER F0D44920
AXC SYMBL,1 PREPARE TO STUFF ARGUMENT SYMBOL F0D44930
TXI *+1,4,-1 USING LENGTH OF SYMBOL F0D44940
SFS04 CAL * LOAD CALLING LINKAGE F0D44950
TRA STUFF *STUFF SYMBOL OR COUNT AND FLAG F0D44960
TSX MACERR,4 **IMPOSSIBLE RETURN F0D44970
SFARX AXT **,4 RELOAD CALLING LINKAGE F0D44980
TRA 1,4 F0D44990
REM F0D45000
REM STUFF TERMINATING ZEROS F0D45010
SFZRO AXC Q0,1 PREPARE TO STUFF FROM ZEROS F0D45020
REM STUFF COUNT OR FLAG F0D45030
SFFLG SXA SFZRX,4 SAVE CALLING LINKAGE F0D45040
AXT 5,2 PREPARE TO STUFF FROM LAST CHARACTER F0D45050
AXT 1,4 USING ONE CHARACTER F0D45060
CAL * F0D45070
TRA STUFF F0D45080
TSX MACERR,4 **IMPOSSIBLE RETURN F0D45090
SFZRX AXT **,4 RELOAD CALLING LINKAGE F0D45100
TRA 1,4 F0D45110
EJECT F0D45120
REM ROUTINES TO EXPAND MACROS F0D45130
REM IFF, IRP, MAC, RMT * F0D45140
REM F0D45150
IFFOP TSX SCANF,4 *EVALUATE SWITCH F0D45160
TXI AFLAG+2,,0 NULL SWITCH F0D45170
SLT EXPRR IS SWITCH IN ERROR F0D45180
NZT RBITS NO, IS SWITCH ABSOLUTE F0D45190
TZE *+2 YES, IS SWITCH ZERO F0D45200
CAL Q1 NO, SET ABSOLUTE NONZERO, OR RELOCATABLE, F0D45210
REM SWITCH NOT IN ERROR TO 1 F0D45220
SLW VAREQ F0D45230
AXT -1,4 SET INTERCEPT IN MACRO PROCESSOR (23)F0D45240
SXD MACIF,4 TO RETURN AFTER SCAN INITIALIZATION (23)F0D45250
SXD SSN33,4 SET SWITCH FOR POSSIBLE ETC (23)F0D45260
SXA VRFLD,1 UPDATE CHARACTER POSITION (23)F0D45265
TRA MACOP+3 *INITIALIZE FOR ARGUMENT SCAN (23)F0D45270
REM REENTRY FROM MACRO ARGUMENT SCAN INITIALIZATION (23)F0D45275
IFF01 ZSD MACIF RESET SWITCH (23)F0D45280
SLT FLDND WAS END OF VARIABLE FIELD SENSED (33)F0D45290
TRA IFFIX NO (33)F0D45300
TRA IFFIX+1 YES (33)F0D45310
LXD MARGS,2 OBTAIN LENGTH OF FIRST ARGUMENT (23)F0D45320
TXH *+2,2,0 IS IT NULL (23)F0D45330
TXL IFF02+1,4,1 YES,TRANSFER IF NO SECOND ARGUMENT (23)F0D45340
LDC MARGS-1,4 INITIALIZE COMPUTATION OF (23)F0D45350
SXD *+1,4 DIFFERENCE IN ARGUMENT LENGTHS (23)F0D45360
TXI IFF06,2,** *COMPUTE DIFFERENCE IN LENGTH (23)F0D45370
REM REENTRY FROM COMPARISON OF ARGUMENTS (23)F0D45380
IFF02 CAL Q1 LOAD FLAG FOR UNEQUAL ARGUMENTS (23)F0D45390
ERA VAREQ COMBINE WITH SWITCH F0D45400
TNZ *+6 SHOULD FOLLOWING CARD BE OMITTED F0D45410
AXT -1,4 YES, SET FIRST CARD SWITCH F0D45420
SXD IFF04,4 F0D45430
TSX SETTP,4 *PLANT IFF INTERCEPT F0D45440
PZE ROUTE,,IFF03 F0D45450
TSX MACERR,4 **ALREADY SET UP F0D45460
TSX PMCS3,4 RESTORE MACRO STATUS (23)F0D45470
ZSD SSN33 RESET FOR NORMAL ETC PRINTING (23)F0D45480
TRA READ1 YES F0D45490
REM RETURN FROM MACRO COMPILER FOR SUBSEQUENT CARD F0D45500
IFF03 CAL BCDBF+1 LOAD OPCODE F0D45510
ANA PKMSK MASK IN CC 8 - 11 F0D45520
ERA ETCMK IS CARD ETC F0D45530
TZE IFF04+2 YES, CONTINUE DELETING GENERATED CARDS F0D45540
IFF04 TXH IFF05,4,** HAS A NON ETC CARD BEEN DELETED F0D45550
ZSD IFF04 NOT YET, RESTORE SWITCH F0D45560
AXT 5$TTL03+1,4 SET PASS TWO TRANSFER ADDRESS TO LIST $F0D45570
SXD OPBIN,4 THIS CARD UNDER CONTROL OF PCC $F0D45580
TRA READ1 F0D45590
REM DELETION IS COMPLETE F0D45600
IFF05 TSX RESTP,4 *REMOVE INTERCEPT F0D45610
PZE ROUTE,,IFF03 F0D45620
TRA ROUTE F0D45630
REM F0D45640
IRPOP LXA CLEVL,4 LOAD MACRO LEVEL F0D45650
TXL OPERR,4,0 **IS IRP WITHIN A MACRO F0D45660
AXT -1,4 YES, SET SWITCH TO INTERCEPT F0D45670
SXD CMP22,4 SUBSEQUENT IRP CARD F0D45680
TSX OTPT0,4 *LIST FIRST IRP F0D45690
TSX IRP10,4 *SUPPRESS FOLLOWING ETC F0D45700
LXA CHRCTR,1 LOAD FIRST CHARACTER IN VARIABLE FIELD F0D45710
TXI *+1,1,-48 IS IT BLANK F0D45720
TXL IRP01+1,1,0 YES F0D45730
IRP01 AXT **,1 NO, LOAD ARGUMENT NUMBER F0D45740
SXD IRPNO,1 F0D45750
TXL IRP06+1,1,0 IS IRP ON AN ARGUMENT F0D45760
CAL MDFCT YES, SAVE MACRO DEFINITION WORD,,CHAR F0D45770
SLW IRPPW COUNT OF BEGINNING OF IRP F0D45780
CLA MARGS+1,1 LOAD POINTER TO IRP ARGUMENT F0D45790
STO IRPAR SAVE IT FOR END OF IRP F0D45800
ADD Q1 F0D45810
STA IRPSD SET WORD COUNT OF BEGINNING OF ARGUMENT F0D45820
AXT 5,4 F0D45830
SXD IRPSD,4 SET CHAR COUNT OF BEGINNING OF ARGUMENT F0D45840
CAL COMMA PRESET LAST PUNCTUATION TO , F0D45850
STA IRPNO TO SCAN ARGUMENTS ON GENERATED IRP CARD F0D45860
STA LCHAR F0D45870
TXI IRP03,1,-1 F0D45880
REM REENTRY FROM COMPILER FOR NEXT CARD IN RANGE OF IRP F0D45890
IRP02 CAL BCDBF+1 LOAD OP FIELD F0D45900
ANA PKMSK MASK IN CARD COLUMNS 8 - 11 F0D45910
ERA IRPMK IS OPCODE IRP F0D45920
TZE *+4 YES F0D45930
LXD IRPNO,4 NO, LOAD IRP ARGUMENT COUNT F0D45940
TXL IRP06+1,4,0 IS IRP ON AN ARGUMENT F0D45950
TRA CMP22+1 YES F0D45960
REM SUBSEQUENT CARD IS IRP MARKING END OF RANGE F0D45970
TSX IRP10,4 *SUPPRESS FOLLOWING ETC F0D45980
LXD IRPNO,1 LOAD ARGUMENT NUMBER F0D45990
TXL IRP06,1,0 WAS IRP ON AN ARGUMENT F0D46000
CAL IRPNO YES, PRESET PUNCTUATION F0D46010
STA LCHAR AT BEGINNING OF NEXT STRING F0D46020
ANA ADDMK F0D46030
ERA BLANK IS IT BLANK F0D46040
TZE IRP05 YES, IRP ARGUMENTS ARE EXHAUSTED F0D46050
TXI *+1,1,-1 NO, BUMP ARGUMENT COUNT F0D46060
CLA MARGS,1 LOAD REFERENCE TO THIS ARGUMENT F0D46070
STA MEPTR OVERLAP ARGUMENTS F0D46080
REM REENTRY FOR FIRST IRP CARD F0D46090
IRP03 STZ MARGS,1 DELETE REFERENCE TO THIS ARGUMENT F0D46100
SXD ARGJL,1 SET ARGUMENT INDEX F0D46110
AXT -1,1 F0D46120
SXD SSN17,1 SET SWITCH TO AVOID BUMPING ARG INDEX F0D46130
CAL PRNLS SET PAREN LEVEL TO 0, ENABLE SCAN FOR , F0D46140
LXA LCHAR,4 LOAD LAST PUNCTUATION F0D46150
TXL *+3,4,59 WAS IT ( F0D46160
TXH *+2,4,60 NO F0D46170
CAL PRNLT YES, SET PAREN LEVEL TO 1, DISABLE , SCAN F0D46180
SLW PLEVL F0D46190
CAL IRPSD SET BEGINNING OF STRING F0D46200
STD SSNBC CHARACTER COUNT F0D46210
STA SSNBW WORD COUNT F0D46220
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE F0D46230
TXL SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D46240
TXL SSN01,,4 PUNCTUATION RETURN,,LENGTH OF TABLE F0D46250
TXL ,1,0 NULLIFY OVERFLOW TEST F0D46260
TSX SSINS,4 *ASSEMBLE NEXT STRING F0D46270
LXD IRPNO,4 LOAD ARGUMENT COUNT F0D46280
CAL MARGS+1,4 LOAD REFERENCE TO THIS ARGUMENT F0D46290
TNZ *+5 IS THIS FINAL NULL STRING F0D46300
CAL IRPNO F0D46310
ANA ADDMK F0D46320
ERA COMMA WAS PUNCTUATION COMMA F0D46330
TNZ IRP05+1 F0D46340
LXD SSNBC,2 NO, HOLD COUNTS OF START OF FOLLOWING STRNF0D46350
LXA SSNBW,1 F0D46360
SXD IRPSD,2 F0D46370
SXA IRPSD,1 F0D46380
CAL CCHAR HOLD CURRENT PUNCTUATION CHARACTER F0D46390
STA IRPNO FOR BEGINNING OF FOLLOWING STRING F0D46400
CAL IRPPW RESTORE MACRO DEFINITION WORD,,CHAR COUNT F0D46410
SLW MDFCT FOR NEXT ITERATION OVER RANGE OF IRP F0D46420
TRA IRP06+1 F0D46430
REM ARGUMENT LIST IS EXHAUSTED F0D46440
IRP05 LXD IRPNO,4 LOAD ARGUMENT COUNT F0D46450
CAL IRPAR RESTORE REFERENCE TO THIS ARGUMENT F0D46460
SLW MARGS+1,4 F0D46470
IRP06 ZSD CMP22 RESET IRP INTERCEPT F0D46480
TRA SOURC F0D46490
REM F0D46500
REM PREPARE FOR FOLLOWING ETC F0D46510
IRP10 SXA IRP1X,4 SAVE CALLING LINKAGE F0D46520
TSX PEEKS,4 *WILL FOLLOWING CARD BE AN ETC F0D46530
TRA *+2 YES F0D46540
TRA IRP1X NO F0D46550
LXD MDFCT,1 BUMP MACRO DEFINITION CHARACTER COUNT F0D46560
TXI *+1,1,1 F0D46570
SXD MDFCT,1 F0D46580
STZ ETCMD SUPPRESS ETC CARD F0D46590
ZSD CMP01 AS SCAN WAS IN MACRO EXPANSION TABLE F0D46600
IRP1X AXT **,4 RELOAD CALLING LINKAGE F0D46610
TRA 1,4 F0D46620
REM F0D46630
MACOP SLN 1 SET FLAG FOR MAC CALL F0D46640
REM ENTRY FOR MACRO NAME IN OPFIELD F0D46650
AXT -1,4 SET MACRO DEFINITION CARD SWITCH F0D46660
SXD MCRDF,4 F0D46670
TXI *+1,2,-BCDBF COMPUTE VARIABLE FIELD WORD COUNT F0D46680
LAC VRFLD,1 COMPUTE COUNT OF FIRST CHARACTER F0D46690
TXI *+1,1,6 IN VARIABLE FIELD F0D46700
SXA SSNBW,2 SAVE COUNTS OF BEGINNING OF STRING F0D46710
SXD SSNBC,1 F0D46720
TSX PMCS1,4 *PUSH MACRO STATUS DOWN F0D46730
CAL INDFG SET INDIRECTLY ADDRESSED MACRO FLAG F0D46740
STA MCIND F0D46750
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE F0D46760
TXL SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D46770
TXL SSN01,,4 PUNCTUATION RETURN,,LENGTH OF TABLE F0D46780
TXL SSN03,1,-BCDBF-12 OVERFLOW TEST F0D46790
CAL PRNLS ENABLE SCAN FOR , F0D46800
SLW PLEVL SET PAREN LEVEL TO 0 F0D46810
CAL COMMA PRESET LAST PUNCTUATION TO , F0D46820
STA LCHAR F0D46830
STZ MARGS RESET REFERENCE TO THIS ARGUMENT F0D46840
ZSD ARGJL RESET ARGUMENT INDEX F0D46850
SLT 1 IS THIS MAC CALL F0D46860
TRA MACIF NO, TEST FOR IFF (23)F0D46870
TSX SSING,4 *YES, LOCATE MACRO NAME IN STRING F0D46880
LXD MARGS,4 LOAD NUMBER OF CHARACTERS IN NAME F0D46890
TXL MCER3,4,0 **IS NAME NULL F0D46900
LXD MARGS,2 NO, LOAD LENGTH OF MACRO NAME F0D46910
LXA MARGS,1 LOAD POINTER TO NAME IN MACEXP F0D46920
CAL 0,1 LOAD MACRO NAME F0D46930
ANA MARMK,2 MASK OUT FOLLOWING GARBAGE F0D46940
TSX SOPTB,4 *EVALUATE MACRO NAME F0D46950
TRA MCER3 **NOT FOUND F0D46960
RNT 100000 IS THIS MACHINE OPERATION F0D46970
LNT 200000 NO, IS THIS PSEUDOOPERATION F0D46980
TRA MCER3 **YES F0D46990
STZ MARGS NO, IT IS MACRO, DELETE MACRO NAME F0D47000
ZSD ARGJL RESET ARGUMENT INDEX F0D47010
PIA RECALL SYMBOL DEFINITION F0D47020
PDX ,1 LOAD POINTER TO MACRO SKELETON F0D47030
TXI MAC02+2,1,1 BUMP PAST DEFINITION HEAD F0D47040
REM REENTRY FOR MACRO NAME IN OPFIELD F0D47050
MAC02 LXD OPBIN,1 LOAD POINTER FROM OP TABLE F0D47060
TXI *+1,1,1 BUMP PAST DEFINITION HEAD F0D47070
SXA MDFCT,1 SET FIRST WORD OF MACRO SKELETON F0D47080
ZSD MDFCT SET MACRO DEFINITION CHARACTER COUNT F0D47090
REM TO FIRST CHARACTER IN WORD F0D47100
CAL MOPP2 SET PASS TWO TRANSFER ADDRESS F0D47110
STO OPBIN IN CASE OF EMPTY MACRO $F0D47120
CAL 0,1 LOAD FIRST WORD OF MACRO DEFINITION F0D47130
TNZ *+3 IS MACRO EMPTY F0D47140
TSX PMCS3,4 *YES, PUSH MACRO STATUS UP F0D47150
TRA MAC2A $F0D47160
CLA 1,1 NO, LOAD MACRO ARGUMENT COUNT F0D47170
STD ARGIL SET ARGUMENT COUNT F0D47180
AXT 5$BES01+3,1 SET PASS TWO TRANSFER ADDRESS TO OMIT $F0D47190
TPL MAC03 IS THERE A LOCATION ARGUMENT F0D47200
AXT 5$UNLOP+1,1 YES, RESET PASS 2 TRANSFER ADDRESS TO OMITF0D47210
REM LISTING OCTAL LOCATION F0D47220
CAL BCDBF LOAD LOCATION FIELD F0D47230
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL F0D47240
SLW ARGWD HOLD TO END OF ETC CARDS F0D47250
TRA MAC03+1 PREVENT MULTIPLY DEFINED LOCATION FIELDS F0D47260
REM ASSEMBLE ARGUMENTS F0D47270
MAC03 TSX ESYML,4 *DEFINE LOCATION FIELD F0D47280
SXD OPBIN,1 SET PASS TWO TRANSFER ADDRESS F0D47290
TSX SSINS,4 *ASSEMBLE ARGUMENT STRINGS F0D47300
MEPTR AXT **,1 LOAD POINTER TO NEXT ENTRY F0D47310
REM IN MACRO EXPANSION TABLE F0D47320
TRA MAC06 F0D47330
REM REENTRY TO CREATE NEXT SYMBOL F0D47340
MAC04 NZT CRSNO ARE CREATED SYMBOLS PERMITTED F0D47350
TRA MAC05 NO F0D47360
CRSCT AXT **,4 YES, LOAD CREATED SYMBOL COUNT F0D47370
TXI *+1,4,1 BUMP TO NEXT SYMBOL F0D47380
SXA CRSCT,4 F0D47390
TXL *+3,4,9999 ARE THERE TOO MANY CREATED SYMBOLS F0D47400
LDI CRSNM YES, LOAD CREATED SYMBOL NAME F0D47410
TRA SRCERR **TERMINATE ASSEMBLY F0D47420
PXA ,4 NO, LOAD SYMBOL F0D47430
TSX BCDCV,4 *CONVERT TO BCD F0D47440
LAS ADTMK IS CREATED SYMBOL GREATER THAN 3 DIGITS F0D47450
TRA *+3 YES F0D47460
NOP NO F0D47470
ORA CRPT1 APPEND . AS SECOND CHARACTER F0D47480
ALS 6 LEFT ADJUST F0D47490
ORA CRPT2 APPEND . AS FIRST CHARACTER F0D47500
SLW 0,1 INSERT CREATED SYMBOL F0D47510
SXA CRSNO,1 SAVE POINTER TO THIS SYMBOL F0D47520
TXI *+1,1,-1 BUMP POINTER TO NEXT ENTRY F0D47530
REM REENTRY FOR CREATED SYMBOLS SUPPRESSED F0D47540
MAC05 CAL CRSNO LOAD CREATED SYMBOL POINTER,,COUNT F0D47550
LXD ARGJL,2 LOAD ARGUMENT TABLE INDEX F0D47560
TXI *+1,2,1 BUMP ARGUMENT TABLE INDEX F0D47570
SXD ARGJL,2 F0D47580
SLW MARGS+1,2 INSERT REFERENCE F0D47590
REM REENTRY AFTER ASSEMBLING STRING F0D47600
MAC06 LXD ARGIL,4 LOAD LENGTH OF ARGUMENT LIST F0D47610
ARGJL TXH MAC04,4,** ARE ANY TERMINAL ARGUMENTS MISSING F0D47620
REM (DECREMENT IS CURRENT ARGUMENT NUMBER) F0D47630
CAL ARGWD NO, LOAD SUBSTITUTABLE LOCATION FIELD F0D47640
TZE MAC07 IS THERE ANY F0D47650
LDQ BLANKS YES, LOAD FOLLOWING BLANKS F0D47660
AXT 1,2 PREPARE TO COUNT CHARACTERS F0D47670
LGR 6 LEFT ADJUST SYMBOL F0D47680
TZE *+2 F0D47690
TXI *-2,2,1 F0D47700
STQ 0,1 INSERT LOCATION ARGUMENT IN MACEXP TABLE F0D47710
PXA ,1 F0D47720
TXI *+1,1,-1 BUMP POINTER TO NEXT ENTRY F0D47730
SLW MARGS+1,4 OVERWRITE PREVIOUS POINTER WORD F0D47740
PXD ,2 RECALL CHARACTER COUNT F0D47750
STD MARGS+1,4 INSERT IN REFERENCE F0D47760
STZ ARGWD DELETE SUBSTITUTABLE LOCATION FIELD F0D47770
REM REENTRY FOR CREATED ARGUMENTS SUPPRESSED F0D47780
MAC07 TXL OVRLP,1,** IS MACRO EXPANSION TABLE FULL F0D47790
SXA MEPTR,1 NO, SAVE POINTER TO NEXT ENTRY F0D47800
TSX PMCL1,4 *BUMP MACRO LEVEL F0D47810
TSX OTPUT,4 *WRITE MACRO CALL CARD F0D47820
ZSD MCRDF RESET MACRO CALL CARD SWITCH F0D47830
TRA SOURC F0D47840
REM F0D47850
REM OUTPUT REMOTE SEQUENCES F0D47860
RMTSR SXA RMTSX,4 SAVE CALLING LINKAGE F0D47870
TSX SETTP,4 *SET UP REMOTE ROUTING F0D47880
PZE SOURC,,RMTS1 F0D47890
TSX MACERR,4 **ALREADY SET UP F0D47900
CAL BHEAD SAVE CURRENT HEADING CHARACTER F0D47910
STA RMTS2 F0D47920
ZSD MCRDF RESET MACRO CALL CARD SWITCH F0D47930
REM REENTRY AFTER OUTPUTTING REMOTE SEQUENCE F0D47940
RMTS1 LXD RMTEN+1,1 LOAD POINTER TO NEXT SEQUENCE F0D47950
TXL RMTS2,1,0 IS TABLE EXHAUSTED F0D47960
TSX PMCS1,4 *NO, PUSH MACRO STATUS DOWN F0D47970
ZSD ARGIL RESET NUMBER OF ARGUMENTS F0D47980
ZSD MDFCT SET MACRO DEFINITION CHARACTER COUNT F0D47990
REM TO FIRST CHARACTER IN WORD F0D48000
LXD RMTEN+1,1 LOAD POINTER TO NEXT SEQUENCE F0D48010
CAL 0,1 LOAD HEADING F0D48020
STA BHEAD SET REMOTE HEADING CHARACTER F0D48030
STA LITRL SAVE FOR PASS TWO F0D48040
ANA D32767 MOVE POINTER TO NEXT SEQUENCE F0D48050
STD RMTEN+1 TO CURRENT POINTER F0D48060
TNZ *+3 IS THERE ANOTHER SEQUENCE F0D48070
AXC RMTEN+1,4 NO, RESTORE POINTER FOR FIRST SEQUENCE F0D48080
SXD RMTEN,4 F0D48090
TXI *+1,1,1 BUMP COUNT PAST HEADING F0D48100
SXA MDFCT,1 F0D48110
TSX PMCL1,4 *BUMP MACRO LEVEL F0D48120
CAL RMTP2 SET PASS TWO TRANSFER ADDRESS F0D48130
SLW OPBIN F0D48140
TSX OTPT0,4 *WRITE INTERMEDIATE TAPE ONLY F0D48150
TRA SOURC F0D48160
REM REMOTE SEQUENCES EXHAUSTED F0D48170
RMTS2 AXT **,4 RESTORE CURRENT HEADING CHARACTER F0D48180
SXA BHEAD,4 F0D48190
SXA LITRL,4 SAVE FOR PASS TWO F0D48200
CAL RMTP2 SET PASS TWO TRANSFER ADDRESS F0D48210
SLW OPBIN F0D48220
TSX OTPT0,4 *WRITE INTERMEDIATE TAPE ONLY F0D48230
TSX RESTP,4 *RESTORE ASSEMBLER ROUTING F0D48240
PZE SOURC,,RMTS1 F0D48250
RMTSX AXT **,4 RELOAD CALLING LINKAGE F0D48260
TRA 1,4 F0D48270
REM F0D48280
REM ASSEMBLE MACRO NAME F0D48290
SSING AXT -1,1 SET INTERCEPT TO RETURN WITH MACRO NAME F0D48300
SXD SSN18,1 F0D48310
REM REENTRY TO ASSEMBLE STRING F0D48320
SSINS SXA SSINX,4 SAVE CALLING LINKAGE F0D48330
LXD SSNBC,2 LOAD BEGINNING OF STRING CHARACTER COUNT F0D48340
LXA SSNBW,1 LOAD BEGINNING OF STRING WORD COUNT F0D48350
TXI SCANT,2,1 F0D48360
REM F0D48370
REM CHARACTER IS PUNCTUATION F0D48380
SSN01 STA CCHAR SAVE CURRENT CHARACTER F0D48390
TRA *+5,4 F0D48400
TRA SSN08 CHARACTER IS ( F0D48410
PLEVL TXI SSN07,,** CHARACTER IS , F0D48420
REM (RESET TO SSN10 IF WITHIN PARENS) F0D48430
TRA SSN02 PUNCTUATION IS BLANK F0D48440
REM PUNCTUATION IS ) F0D48450
LXD PLEVL,4 LOAD PAREN COUNT F0D48460
TXL MCERP,4,0 **IS ) EXCESSIVE (23)F0D48470
TXI *+1,4,-1 NO, BUMP PAREN COUNT F0D48480
SXD PLEVL,4 F0D48490
TXH SSN10,4,0 IS THIS OUTERMOST ) F0D48500
AXT SSN07,4 YES, REENABLE SCAN FOR , F0D48510
SXA PLEVL,4 F0D48520
TRA SSN11 F0D48530
REM PUNCTUATION IS BLANK F0D48540
SSN02 LXD PLEVL,4 LOAD PAREN LEVEL F0D48550
TXL *+5,4,0 IS BLANK BETWEEN PARENTHESES F0D48560
LXA LCHAR,4 YES, LOAD PRECEDING CHARACTER F0D48570
TXL SSN10,4,42 IS IT $ F0D48580
TXH SSN10,4,43 NO F0D48590
TRA SSN03+3 YES F0D48600
REM BLANK IS NOT WITHIN PARENTHESES F0D48610
LXA LCHAR,4 LOAD PRECEDING CHARACTER F0D48620
TXL SSN04+4,4,42 IS CHARACTER $ F0D48630
TXH SSN04+4,4,43 NO F0D48640
TRA SSN03+3 YES F0D48650
REM REENTRY AFTER INPUT CARD COLUMN 72 F0D48660
SSN03 LXA LCHAR,4 LOAD PRECEDING CHARACTER F0D48670
TXL SSN04,4,42 IS IT $ F0D48680
TXH SSN04,4,43 NO F0D48690
REM REENTRY FOR $BLANK F0D48700
TXH *+3,2,0 DELETE $ F0D48710
TXI *+1,1,1 F0D48720
TXI *+2,2,5 F0D48730
TXI *+1,2,-1 F0D48740
REM REENTRY AFTER CARD COLUMN 72 WITH NO PRECEDING $ F0D48750
SSN04 TSX PEEKS,4 *DOES ETC CARD FOLLOW F0D48760
TRA SSN05 YES F0D48770
LXD PLEVL,4 NO, LOAD PAREN LEVEL F0D48780
TXH MCERP,4,0 **ARE PARENTHESES UNBALANCED (23)F0D48790
REM REENTRY FOR BLANK NOT WITHIN PARENTHESES F0D48800
AXT -1,4 NO F0D48810
SXD SSN18,4 SET SWITCH TO RETURN WITH STRING F0D48820
SXD SSN12,4 SET SWITCH TO SUPPRESS NULL STRING STUFF F0D48830
TRA SSN11 F0D48840
REM REENTRY FOR ETC CARD TO FOLLOW F0D48850
SSN05 PXD ,2 LOAD INPUT CARD CHAR COUNT (CLEAR AC) F0D48860
TXL SSN06,2,0 IS INPUT WORD EXHAUSTED F0D48870
LDQ 0,1 NO, LOAD INPUT WORD F0D48880
PDX ,4 LOAD CHARACTER COUNT F0D48890
TNX SSN06+2,4,1 LEFT ADJUST PRECEDING CHARACTER F0D48900
RQL 6 F0D48910
TRA *-2 F0D48920
SSN06 LDQ -1,1 LOAD NEXT INPUT WORD F0D48930
RQL 30 LEFT ADJUST PRECEDING CHARACTER F0D48940
LGL 6 LOAD PRECEDING CHARACTER F0D48950
STA CCHAR F0D48960
AXT -1,4 F0D48970
SXD SSN17,4 SET SWITCH TO AVOID BUMPING ARGUMENT COUNTF0D48980
TRA SSN11 F0D48990
REM PUNCTUATION IS , F0D49000
SSN07 LXA LCHAR,4 LOAD PRECEDING CHARACTER F0D49010
TXH SSN11,4,28 IS PRECEDING CHARACTER ) F0D49020
TXL SSN11,4,27 NO F0D49030
TRA SSN09 YES, , NOT CONSIDERED PUNCTUATION F0D49040
REM PUNCTUATION IS ( F0D49050
SSN08 LXD PLEVL,4 BUMP PAREN COUNT F0D49060
TXI *+1,4,1 F0D49070
SXD PLEVL,4 F0D49080
TXH SSN10,4,1 IS THIS FIRST ( F0D49090
AXT SSN10,4 YES, DISABLE SCAN FOR , F0D49100
SXA PLEVL,4 F0D49110
LCHAR AXT **,4 LOAD PRECEDING CHARACTER F0D49120
TXH SSN11,4,59 IS IT , F0D49130
TXH SSN09,4,58 YES F0D49140
TXH SSN11,4,28 NO, IS IT ( F0D49150
TXL SSN11,4,27 NO F0D49160
REM REENTRY FOR ), OR ,( F0D49170
SSN09 SXD SSNBC,2 RESET BEGINNING OF STRING F0D49180
SXA SSNBW,1 TO COUNT OF PUNCTUATION CHARACTER F0D49190
CAL CCHAR RELOAD CURRENT CHARACTER F0D49200
REM CHARACTER IS NOT PUNCTUATION, OR PUNCTUATION NOT BREAK F0D49210
SSN10 STA LCHAR SAVE LAST CHARACTER F0D49220
TXI SCANU+1,2,1 F0D49230
REM F0D49240
REM PUNCTUATION IS BREAK CHARACTER F0D49250
SSN11 SXA SSNEC,2 SAVE POSITION OF PUNCTUATION F0D49260
SXD SSNEW,1 AT END OF STRING F0D49270
SSNBW AXT **,1 LOAD COUNT OF WORD INCLUDING PUNCTUATION F0D49280
REM AT BEGINNING OF STRING F0D49290
SSNEW TXL *+3,1,** IS THIS WORD AT END OF STRING F0D49300
TXI *+1,2,6 NO, BUMP CHARACTER COUNT BY ONE WORD F0D49310
TXI *-2,1,-1 BUMP WORD COUNT BY ONE WORD F0D49320
SSNBC TIX *+2,2,** REDUCE STRING LENGTH BY CHARACTER COUNT F0D49330
REM OF PUNCTUATION AT BEGINNING OF STRING F0D49340
TRA *+2 IT WAS -1, OMIT NEXT STEP (24)F0D49350
TXI *+1,2,-1 DELETE PUNCTUATION CHARACTER FROM COUNT F0D49360
SXD COUNT,2 SAVE LENGTH OF STRING (23)F0D49370
SSN13 TXL SSN14,1,** IS THIS FIRST ON ETC CARD (23)F0D49380
SSN12 TXH *+2,1,** NO, IS THIS FINAL STRING (23)F0D49390
TXL SSN22,2,0 YES, IS IT NULL (23)F0D49400
LXA MEPTR,1 NO, LOAD POINTER TO MACRO EXPANSION TABLE F0D49410
AXT -1,2 SET DIRECTION OF STUFF FORWARD F0D49420
LXD MAC07,4 LOAD LOWER END OF MACRO DEFINITION TABLE F0D49430
CAL * LOAD CALLING LINKAGE F0D49440
TRA STUFY *INITIALIZE ROUTINE TO STUFF MACEXP F0D49450
SSN14 ZSD SSN13 RESET ETC SWITCH F0D49460
LXD SSNBC,2 RELOAD COUNTS OF BEGINNING OF STRING F0D49470
LXA SSNBW,1 F0D49480
TXI *+1,2,1 NUMBER OF LEADING CHARACTERS (24)F0D49490
TXL *+3,2,5 IN FIRST WORD, IS IT SIX (24)F0D49500
TXI *+1,1,-1 YES, BUMP TO NEXT WORD (24)F0D49510
TXI *+1,2,-6 AND ADJUST CHARACTER COUNT (24)F0D49520
LXD COUNT,4 LOAD LENGTH OF STRING F0D49530
CAL * LOAD CALLING LINKAGE F0D49540
TRA STUFF *ADD STRING TO EXPANSION F0D49550
TRA OVRLP **EXPANSION TABLE FULL F0D49560
ZET ETCMD WILL AN ETC CARD FOLLOW F0D49570
TRA SSN16 YES F0D49580
AXT 1,7 NO, PREPARE TO STUFF ONE CHARACTER F0D49590
CAL * LOAD CALLING LINKAGE F0D49600
TXI STUFF,1,-BLANKS-1 *STUFF TERMINATING BLANK F0D49610
TRA OVRLP **EXPANSION TABLE FULL F0D49620
SSN16 LDQ MEPTR LOAD POINTER TO THIS ARGUMENT F0D49630
SXA MEPTR,2 SET POINTER TO NEXT ARGUMENT F0D49640
LXD ARGJL,4 LOAD ARGUMENT LIST COUNT F0D49650
CLA MARGS,4 LOAD REFERENCE TO THIS ARGUMENT F0D49660
PAX ,2 LOAD POINTER TO THIS ARGUMENT F0D49670
ADD COUNT BUMP BY LENGTH OF STRING F0D49680
STD MARGS,4 SET REFERENCE TO NEXT ARGUMENT F0D49690
TXH *+3,2,0 IS THIS REMAINDER OF ARGUMENT F0D49700
REM ON FOLLOWING ETC CARD F0D49710
XCL NO, RECALL POINTER TO THIS ARGUMENT F0D49720
STA MARGS,4 SET POINTER TO THIS ARGUMENT F0D49730
CCHAR AXT **,1 SET BREAK PUNCTUATION F0D49740
SXA LCHAR,1 AS NEW PRECEDING CHARACTER F0D49750
SSNEC AXT **,2 SET BEGINNING OF NEXT STRING F0D49760
LXD SSNEW,1 TO PUNCTUATION AT END OF LAST STRING F0D49770
SXD SSNBC,2 F0D49780
SXA SSNBW,1 F0D49790
SSN17 TXL SSN18+2,1,** IS THIS PARTIAL ARGUMENT OR IRP F0D49800
TXI *+1,4,1 NO, BUMP ARGUMENT COUNT F0D49810
TXH SSN18,4,63 DID ARGUMENT TABLE OVERFLOW F0D49820
SXD ARGJL,4 NO, SET ARGUMENT COUNT F0D49830
STZ MARGS,4 CLEAR REFERENCE F0D49840
REM REENTRY FOR TRUNCATED ARGUMENT LIST F0D49850
SSN18 TXL SSN22,1,** IS IMMEDIATE RETURN REQUESTED F0D49860
TXI SCANT,2,1 NO, ASSEMBLE NEXT STRING F0D49870
REM F0D49880
REM END OF CARD F0D49890
ZSD SSN18 RESET IMMEDIATE RETURN SWITCH F0D49900
ZSD SSN17 RESET END OF CARD SWITCH F0D49910
NZT ETCMD WILL AN ETC CARD FOLLOW F0D49920
TRA SSN22+2 NO F0D49930
LXA CLEVL,1 YES, LOAD MACRO LEVEL F0D49940
TXL SSN21,1,0 IS THIS FIRST LEVEL MACRO F0D49950
LXA MEPTR,1 NO, PREPARE TO PUSH TO MACRO EXP TABLE F0D49960
LXA MCIND,4 PUSH DOWN INDIRECT ADDRESS FLAG F0D49970
SXA SSLOC,4 F0D49980
CLA P7 PREPARE TO PUSH F0D49990
TSX PUPOP,4 *PUSH DOWN INCOMPLETE ARGUMENT INDEX F0D50000
LXD SSLOC,1 LOAD LOCATION OF PREVIOUS STATUS F0D50010
CAL P7 PREPARE TO POP F0D50020
TSX PUPOP,4 *POP UP PREVIOUS COMPILER STATUS F0D50030
REM TO GENERATE ETC CARD F0D50040
CAL SSLOC RESTORE INDIRECT ADDRESS FLAG F0D50050
STA MCIND F0D50060
SSN21 LXD STUFI,4 SAVE STUFF STATUS F0D50070
SXA SSN32,4 F0D50080
LXD STUM2,4 F0D50090
SXA SSN32+2,4 F0D50100
NOP $F0D50110
TSX SETTP,4 *SET UP MACRO ROUTING F0D50120
PZE ROUTE,,SSN30 F0D50130
TSX MACERR,4 **ALREADY SET UP F0D50140
TRA READ1 F0D50150
REM REENTRY TO RETURN WITH STRING, OR AFTER FINAL NULL STRINGF0D50160
SSN22 ZSD SSN18 RESET IMMEDIATE RETURN SWITCH F0D50170
ZSD SSN17 RESET PARTIAL ARGUMENT SWITCH F0D50180
REM REENTRY AFTER END OF CARD, NO ETC CARD TO BE GENERATED F0D50190
ZSD SSN12 RESET FINAL STRING SWITCH (23)F0D50200
SSINX AXT **,4 RELOAD CALLING LINKAGE F0D50210
TRA 1,4 F0D50220
REM F0D50230
REM REENTRY FOR ARGUMENT LIST ETC CARD F0D50240
SSN30 TSX RESTP,4 *RESET ASSEMBLER ROUTING F0D50250
PZE ROUTE,,SSN30 F0D50260
SLT EXPRR WAS OP FIELD IN ERROR F0D50270
TRA *+2 NO F0D50280
TSX MACERR,4 **YES, BUT IT MUST BE ETC F0D50290
STZ ETCMD RESET ETC FLAG F0D50300
CAL MOPP2 SET PASS TWO TRANSFER F0D50310
SSN31 TRA SSN33 *TO PRINT CARD, PROVISIONALLY (23)F0D50320
LXA CLEVL,1 LOAD MACRO LEVEL F0D50330
TXL SSN32,1,0 IS THIS FIRST LEVEL MACRO F0D50340
LXA MEPTR,1 LOAD POINTER TO MACRO EXPANSION TABLE F0D50350
CAL 2,1 GET LOCATION OF OUTER SCAN STATUS F0D50360
PDX ,2 F0D50370
CAL MDFCT INSERT MACRODEFINITION WORD,,CHAR COUNT F0D50380
SLW 0,2 SO THAT IT MAY BE POPPED BACK F0D50390
CAL P7 PREPARE TO POP F0D50400
TSX PUPOP,4 *POP UP INCOMPLETE ARGUMENT INDEX F0D50410
CAL SSLOC RESTORE INDIRECT ADDRESS FLAG F0D50420
STA MCIND F0D50430
SSN32 AXT **,4 RESTORE STUFF COUNTS F0D50440
SXD STUFI,4 F0D50450
AXT **,4 F0D50460
SXD STF01,4 F0D50470
SXD STUM2,4 F0D50480
LXD MAC07,4 RESTORE STUFF OVERFLOW TESTS F0D50490
SXD STF03+1,4 F0D50500
SXD STF08+2,4 F0D50510
AXT -1,4 RESTORE DIRECTION OF STUFF F0D50520
SXD STF08+1,4 F0D50530
SXD STF10+2,4 F0D50540
SXD SSN13,4 SET ETC SWITCH F0D50550
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE F0D50560
TXL SSN10,,MCTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D50570
TXL SSN01,,4 PUNCTUATION RETURN,,LENGTH OF TABLE F0D50580
TXL SSN03,1,-BCDBF-12 OVERFLOW TEST F0D50590
LAC VRFLD,2 COMPUTE CHARACTER COUNT F0D50600
TXI *+1,2,6 F0D50610
LXD VRFLD,1 COMPUTE WORD COUNT F0D50620
TXI *+1,1,-BCDBF F0D50630
SXD SSNBC,2 SET COUNTS OF BEGINNING OF STRING F0D50640
SXA SSNBW,1 F0D50650
TXI SCANT,2,1 F0D50660
REM F0D50670
REM COMPILE MACRO EXPANSION F0D50680
CMPIL AXC BCDBF,1 PREPARE TO STUFF INTO CARD IMAGE $F0D50690
AXC BCDBF,4 BUFFER $F0D50695
AXT -1,2 SET SWITCH TO STUFF FORWARD F0D50700
SXD MCREF,2 SET MACRO GENERATED CARD SWITCH F0D50710
SXD CMP11,2 PRESET END OF MACRO EXPANSION SWITCH F0D50720
SXD PKMSW,2 SET LOOKAHEAD SWITCH FOR ETC CARD F0D50730
CAL * LOAD CALLING LINKAGE F0D50740
TXI STUFY,4,-12 *INITIALIZE STUFF ROUTINE F0D50750
CMP01 TXH CMP04,2,** IS AN ETC CARD TO BE CREATED F0D50760
ZSD CMP01 YES, RESET SWITCH F0D50770
ZSD CMP11 RESET END OF MACRO EXPANSION SWITCH F0D50780
CMPVF AXT 15,4 LOAD NUMBER OF CHARACTERS TO BE STUFFED F0D50790
REM (RESET TO 11 FOR 704 MODE) F0D50800
AXT 0,1 PREPARE TO STUFF FROM $F0D50805
AXT 0,2 FIRST CHARACTER $F0D50810
CAL * LOAD CALLING LINKAGE F0D50820
TXI STUFF,1,-ETCCD *STUFF ETC OPCODE F0D50830
TSX MACERR,4 **IMPOSSIBLE RETURN F0D50840
CMP02 AXT **,4 RESTORE DIRECTION OF STUFF F0D50850
SXD STF06+1,4 F0D50860
AXT **,4 RELOAD NUMBER OF REMAINING CHARACTERS F0D50870
AXT **,2 RELOAD CARD IMAGE CHARACTER COUNT F0D50880
AXT **,1 RELOAD CARD IMAGE WORD COUNT F0D50890
CAL * LOAD CALLING LINKAGE F0D50900
TRA STUFF *STUFF REMAINDER OF FIELD F0D50910
TRA CMP20 CARD IMAGE FULL F0D50920
REM REENTRY IF NO ETC CARD IS TO BE CREATED F0D50930
CMP04 ZSD PKMSW+1 RESET ETC SWITCH F0D50940
AXT 1,4 PREPARE TO STUFF FROM BACKWARD DATA F0D50950
SXD STF06+1,4 F0D50960
TSX SCANS,4 *INITIALIZE CHARACTER SCAN ROUTINE F0D50970
TXL CMP05,,MDTBL+4 SINGLE CHARACTER RETURN,,PUNCTUATION TABLEF0D50980
TXL CMP10,,4 PUNCTUATION RETURN,,LENGTH OF TABLE F0D50990
TXH ,1,-1 NULLIFY OVERFLOW TEST F0D51000
ZSD CMPFC RESET FIELD LENGTH F0D51010
ZSD CMPCT RESET COUNT OF COLUMNS STUFFED F0D51020
TRA CMP16 F0D51030
REM F0D51040
REM CHARACTER IS NOT PUNCTUATION, IT IS FIELD LENGTH+1 F0D51050
CMP05 SXA MDFCT,1 SAVE MACRO DEFINITION WORD COUNT F0D51060
PAX ,4 LOAD FIELD LENGTH+1 F0D51070
TXI *+1,4,-1 BUMP TO FIELD LENGTH F0D51080
SXD CMPFC,4 SET FIELD LENGTH F0D51090
TXI *+1,2,1 BUMP CHARACTER COUNT PAST FIELD LENGTH F0D51100
PXD ,2 COMPUTE END OF FIELD IN SKELETON F0D51110
ACL CMPFC F0D51120
STD MDFCT SAVE MACRO DEFINITION CHARACTER COUNT F0D51130
PXD ,4 F0D51140
ADD CMPCT BUMP COUNT OF COLUMNS STUFFED F0D51150
STD CMPCT F0D51160
TXL *+3,2,5 IS WORD EXHAUSTED F0D51170
TXI *+1,1,1 YES, BUMP COUNT TO NEXT WORD F0D51180
TXI *-2,2,-6 RESET CHARACTER COUNT F0D51190
CAL * LOAD CALLING LINKAGE F0D51200
TRA STUFF *STUFF VARIABLE INTO CARD IMAGE F0D51210
TRA CMP20 CARD IMAGE FULL F0D51220
TRA CMP16 F0D51230
REM F0D51240
REM CHARACTER IS PUNCTUATION F0D51250
CMP10 TXI *+1,2,1 DELETE PUNCTUATION CHARACTER F0D51260
SXD MDFCT,2 SAVE MACRO DEFINITION CHARACTER COUNT F0D51270
SXA MDFCT,1 SAVE MACRO DEFINITION WORD COUNT F0D51280
TRA *+5,4 F0D51290
TRA CMP15 PUNCTUATION IS ARGUMENT MARK F0D51300
TRA CMP13 PUNCTUATION IS VARIABLE FIELD MARK F0D51310
TRA CMP12 PUNCTUATION IS OPCODE MARK F0D51320
REM END OF RECORD F0D51330
AXC BLANKS+1,1 PREPARE TO STUFF FROM BLANK WORDS F0D51340
AXT 0,6 PREPARE TO STUFF FROM FIRST CHARACTER F0D51350
CAL * LOAD CALLING LINKAGE F0D51360
TXI STUFF,4,6 *STUFF TWO WORDS OF BLANKS F0D51370
NOP F0D51380
CMP11 TXH CMP21,2,** IS THIS DOUBLE END OF RECORD MARK F0D51390
REM (END OF MACRO EXPANSION) F0D51400
TSX PMCL2,4 *YES, PUSH UP MACRO LEVEL F0D51410
TXH *+3,1,0 WAS THIS ZERO LEVEL MACRO F0D51420
ZSD PKMSW YES, RESET LOOKAHEAD SWITCH F0D51430
ZSD MCREF RESET MACRO EXPANSION CARD SWITCH F0D51440
TRA SOURC F0D51450
REM PUNCTUATION IS 01, OPCODE FOLLOWS F0D51460
CMP12 ZSD CMP11 RESET END OF MACRO EXPANSION SWITCH F0D51470
AXT 7,4 COMPUTE LENGTH OF LOCATION FIELD F0D51480
CMPFC TNX CMP16,4,** IS COLUMN 7 FULL F0D51490
TRA CMP14 NO F0D51500
REM PUNCTUATION IS 76, VARIABLE FIELD FOLLOWS F0D51510
CMP13 ZSA IRP01 RESET ARGUMENT NUMBER F0D51520
REM DETERMINE NUMBER OF BLANKS TO STUFF (24)F0D51530
TXL *+2,2,5 IS DEFINITION WORD EXHAUSTED (24)F0D51540
LDQ -1,1 YES, LOAD NEXT ONE (24)F0D51550
TXI *+1,2,1 BUMP SKELETON CHARACTER COUNT (24)F0D51560
SXD MDFCT,2 PAST COUNT OF CHARACTERS (24)F0D51570
ZAC WHICH SHOULD PRECEDE VARIABLE FIELD (24)F0D51580
LGL 6 ROLL UP SAID COUNT (24)F0D51590
PAX ,4 (24)F0D51600
AXT ,0 MARK TIME (24)F0D51610
CMPCT TIX *+2,4,** REDUCE BY COUNT OF CHARACTERS STUFFED F0D51620
AXT 1,4 PREPARE TO STUFF ONE BLANK IF TOO MANY F0D51630
REM REENTRY TO STUFF BLANKS FOLLOWING LOCATION FIELD F0D51640
CMP14 PXD ,4 SET NUMBER OF BLANKS TO STUFF F0D51650
ADD CMPCT BUMP COUNT OF COLUMNS STUFFED F0D51660
STD CMPCT F0D51670
AXC BLANKS+1,1 PREPARE TO STUFF FROM BLANKS F0D51680
AXT 0,2 STARTING WITH FIRST CHARACTER F0D51690
CAL * LOAD CALLING LINKAGE F0D51700
TRA STUFF *FILL OUT OPFIELD WITH BLANKS F0D51710
TRA CMP20 CARD IMAGE FULL F0D51720
TRA CMP16 F0D51730
REM PUNCTUATION IS 77, ARGUMENT FOLLOWS F0D51740
CMP15 TXL *+2,2,5 IS WORD EXHAUSTED F0D51750
LDQ -1,1 YES, LOAD NEXT WORD F0D51760
TXI *+1,2,1 BUMP CHARACTER COUNT PAST ARGUMENT NUMBER F0D51770
SXD MDFCT,2 SAVE MACRO DEFINITION CHARACTER COUNT F0D51780
ZAC F0D51790
LGL 6 LOAD ARGUMENT NUMBER F0D51800
TNZ *+4 IS FOLLOWING CARD PROGRAMMERS ETC F0D51810
AXT -1,4 YES, SET ETC SWITCH F0D51820
SXD PKMSW+1,4 F0D51830
TRA SCANT F0D51840
STA IRP01 INITIALIZE IRP ARGUMENT NUMBER F0D51850
PAX ,1 F0D51860
CAL MARGS+1,1 LOAD ARGUMENT REFERENCE F0D51870
PAX ,1 LOAD ARGUMENT LOCATION F0D51880
PDX ,4 LOAD ARGUMENT LENGTH F0D51890
STD CMPFC SET FIELD LENGTH F0D51900
ADD CMPCT BUMP COUNT OF COLUMNS STUFFED F0D51910
STD CMPCT F0D51920
AXT -1,2 PREPARE TO STUFF FROM FORWARD DATA F0D51930
SXD STF06+1,2 F0D51940
AXT 0,2 PREPARE TO STUFF FROM FIRST CHARACTER F0D51950
CAL * LOAD CALLING LINKAGE F0D51960
TRA STUFF *STUFF ARGUMENT INTO CARD IMAGE F0D51970
TRA CMP20 CARD IMAGE FULL F0D51980
AXT 1,2 PREPARE TO STUFF FROM BACKWARD DATA F0D51990
SXD STF06+1,2 F0D52000
REM REENTRY TO CONTINUE SCAN F0D52010
CMP16 LXD MDFCT,2 LOAD MACRO DEFINITION CHARACTER COUNT F0D52020
LXA MDFCT,1 LOAD MACRO DEFINITION WORD COUNT F0D52030
TRA SCANT F0D52040
REM GENERATED CARD IMAGE IS FULL F0D52050
CMP20 LXD STF06+1,2 SAVE DIRECTION OF STUFF F0D52060
SXA CMP02,2 F0D52070
AXT -1,2 SET SWITCH TO CREATE ETC CARD F0D52080
SXD CMP01,2 F0D52090
SXD PKMSW+1,2 F0D52100
SXA CMP02+2,4 SAVE COUNT OF REMAINING CHARACTERS F0D52110
LXA STF07,4 LOAD CHARACTER BIT COUNT F0D52120
TXI *+1,4,6 F0D52130
TXI *+1,2,1 F0D52140
TIX *-1,4,6 DIVIDE BY 6 F0D52150
SXA CMP02+3,2 SAVE CARD IMAGE CHARACTER COUNT F0D52160
SXA CMP02+4,1 SAVE CARD IMAGE WORD COUNT F0D52170
REM REENTRY TO FINISH CARD F0D52180
CMP21 AXT -1,4 PREPARE TO STUFF FROM FORWARD DATA F0D52190
SXD STF06+1,4 F0D52200
CMP22 TXL IRP02,4,** IS THIS CARD IN RANGE OF IRP F0D52210
CAL BLANKS NO, FILL OUT GENERATED CARD IMAGE F0D52220
LXD STUFI,1 F0D52230
TXL *+3,1,-BCDBF-12 F0D52240
SLW 0,1 F0D52250
TXI *-2,1,-1 F0D52260
CAL Q32 SET MACRO GENERATED CARD FLAG F0D52270
SLW P1FLG FOR PASS 2 LISTING PURPOSES F0D52280
LXA CLEVL,4 LOAD MACRO LEVEL F0D52290
PXA ,4 F0D52300
ALS 8 SHIFT INTO BIT POSITIONS 21 THRU 27 F0D52310
ORS P1FLG HOLD FOR PASS TWO F0D52320
TRA CNTRL F0D52330
EJECT F0D52340
REM ROUTINES PECULIAR TO MACROS F0D52350
REM NOCRS, ORGCRS, PMC, SET F0D52360
REM F0D52370
CRSOP AXT 5,4 SET CREATED SYMBOL COUNT F0D52380
SXD CRSNO,4 F0D52390
TSX SSCAN,4 *ASSEMBLE PROGRAMMER'S SYMBOL F0D52400
TXI CRS01,,0 NULL SYMBOL F0D52410
SLT EXPRR IS SYMBOL IN ERROR F0D52420
ZET SYMB2 NO, IS SYMBOL TOO LONG F0D52430
TRA FIELD **YES F0D52440
SLT EXPND NO, DID SYMBOL END WITH OPERATION F0D52450
TRA FIELD **YES F0D52460
CAL SYMBL NO, LOAD SYMBOL F0D52470
ANA D63 MASK IN THIRD CHARACTER F0D52480
SLW CRPT1 PROGRAMMER MAY VARY THIRD CHARACTER F0D52490
CAL SYMBL RELOAD SYMBOL F0D52500
ANA ADTMK MASK IN THREE DIGITS F0D52510
XCL F0D52520
TSX DECSV+1,4 *CONVERT TO BINARY F0D52530
STA CRSCT RESET ORIGIN F0D52540
STA LITRL SAVE FOR PASS TWO F0D52550
SLT FLDND WAS THIS END OF VARIABLE FIELD F0D52560
TRA FIELD **NO F0D52570
CRS01 TRA READ1 YES F0D52580
REM F0D52590
NOCOP STZ CRSNO RESET CREATED SYMBOL COUNT F0D52600
TRA READ1 F0D52610
REM F0D52620
SETOP TSX SCANP,4 *EVALUATE SET DEFINITION F0D52630
TXI AFLAG,,0 NULL DEFINITION F0D52640
OAI COMBINE BITS WITH DEFINITION F0D52650
SIL 20 AND SET FLAG F0D52660
STI ADDRS DEFINE SYMBOL F0D52670
STI LITRL SAVE FOR PASS TWO F0D52680
CAL BCDBF LOAD LOCATION FIELD F0D52690
TSX LOCFL,4 *ASSEMBLE LOCATION SYMBOL F0D52700
TZE FIELD **IS THERE A LOCATION SYMBOL F0D52710
XCL YES, ISOLATE FIRST CHARACTER F0D52720
LGL 6 F0D52730
TNZ *+2 IS SYMBOL SHORTER THAN 6 CHARACTERS F0D52740
CAL BHEAD YES, APPEND HEADING CHARACTER F0D52750
LGR 6 F0D52760
STQ SYMBL HOLD FOR SYMBOL TABLE SEARCH F0D52770
ZSA SET01 RESET LOCATION OF SYMBOL TO BE REDEFINED F0D52780
TSX SSYMT,4 *FIND SYMBOL IN SYMBOL TABLE F0D52790
SET01 AXT **,4 LOAD LOCATION OF SYMBOL F0D52800
TXH *+3,4,0 IS SYMBOL ALREADY IN TABLE F0D52810
TSX ESYML,4 *NO, DEFINE IT F0D52820
TRA SET02 F0D52830
CAL ADDRS YES, LOAD NEW DEFINITION F0D52840
LDI* SRCH2 HOLD OLD DEFINITION F0D52850
SLW* SRCH2 REDEFINE SYMBOL F0D52860
SLT EXPRR WAS SYMBOL IN TRANSFER VECTOR F0D52870
LNT 20 NO, WAS OLD DEFINITION SET F0D52880
TRA FIELD **NO F0D52890
SET02 TRA READ1 F0D52900
EJECT F0D52910
REM MACRO PROCESSOR SUBROUTINES F0D52920
REM F0D52930
REM SUBROUTINES TO PRINT MACRO ERROR MESSAGES F0D52940
REM F0D52950
REM UNMATCHED PARENTHESES F0D52960
MCER1 ZSD SSN13 RESET SWITCH TO AVOID INITIALIZATION F0D52970
REM IN CASE THIS IS FIRST ARGUMENT ON ETC CARDF0D52980
STZ PARNC RESET PARENTHESES COUNT F0D52990
CAL PARFL LOAD UNMATCHED PAREN FLAG F0D53000
REM ENTRY FOR OTHER MACRO ERROR (23)F0D53010
MCERR SLW LITRL SAVE FLAG FOR PASS TWO (23)F0D53020
SXA MCERX,4 (23)F0D53030
AXT 5$MCERR,4 SET PASS TWO TRANSFER (23)F0D53040
SXD OPBIN,4 ADDRESS TO PRINT FLAG (23)F0D53050
MCERX AXT **,4 AND CARD IN ERROR (23)F0D53060
TRA 1,4 (23)F0D53070
PCCP2 MZE ,,5$TTL03+1 (23)F0D53080
REM F0D53090
REM MACRO DEFINITION OR COMPILE TABLE FULL F0D53100
OVRLP LDI MDFNM LOAD MACRO DEFINITION NAME F0D53110
TRA SRCERR **TERMINATE ASSEMBLY F0D53120
REM MACRO LEVEL TABLE FULL F0D53130
LKTOV LDI LVLNM LOAD LEVEL TABLE NAME F0D53140
TRA SRCERR **TERMINATE ASSEMBLY F0D53150
REM F0D53160
REM PUSH MACRO LEVEL DOWN F0D53170
PMCL1 SXA PMC1X,4 SAVE CALLING LINKAGE F0D53180
LXA CLEVL,1 LOAD MACRO LEVEL F0D53190
TSX SETTP,4 *SET UP MACRO COMPILER ROUTING F0D53200
PZE SOURC,,CMPIL F0D53210
TXI PMC11,1,1 BUMP MACRO LEVEL IF NO INTERRUPTION F0D53220
LXD PMC21,4 HOLD OLD INTERRUPT LEVEL F0D53230
SXA MACNO,4 F0D53240
SXD PMC21,1 SET NEW INTERRUPT LEVEL F0D53250
TSX PDOWN,4 *PUSH DOWN MACRO LEVEL F0D53260
PZE MACNO F0D53270
TXI *+1,1,1 BUMP MACRO LEVEL F0D53280
PMC11 SXA CLEVL,1 RESET MACRO LEVEL F0D53290
PMC1X AXT **,4 RELOAD CALLING LINKAGE F0D53300
TRA 1,4 F0D53310
REM F0D53320
REM PUSH MACRO LEVEL UP F0D53330
PMCL2 SXA PMC2X,4 SAVE CALLING LINKAGE F0D53340
CLEVL AXT **,1 LOAD MACRO LEVEL F0D53350
TXL PMC21,1,0 IS THIS FIRST LEVEL MACRO F0D53360
TXI *+1,1,-1 BUMP MACRO LEVEL F0D53370
SXA CLEVL,1 F0D53380
PMC21 TXH PMC23,1,** WAS MACRO EXPANSION INTERRUPTED F0D53390
TSX RESTP,4 *NO, RESTORE OLD SWITCH F0D53400
PZE SOURC,,CMPIL F0D53410
TSX PUPUP,4 *PUSH UP MACRO LEVEL F0D53420
PZE MACNO F0D53430
LXA MACNO,1 RESET INTERRUPTION TEST F0D53440
SXD PMC21,1 TO CURRENT MACRO LEVEL F0D53450
PMC23 ZSD CMP22 RESET IRP INTERCEPT PENDING POP OF STATUS F0D53460
TSX PMCS3,4 *BUMP MACRO STATUS UP F0D53470
AXT -1,4 RESET DIRECTION OF STUFF F0D53480
SXD STF06+1,4 F0D53490
PMC2X AXT **,4 RELOAD CALLING LINKAGE F0D53500
TRA 1,4 F0D53510
REM F0D53520
REM PUSH MACRO STATUS DOWN F0D53530
PMCS1 SXA PMCSX,4 SAVE CALLING LINKAGE F0D53540
LXA CLEVL,1 LOAD MACRO LEVEL F0D53550
TXL PMCS2,1,0 IS THIS FIRST LEVEL MACRO F0D53560
CAL MCIND NO, PUSH DOWN INDIRECT ADDRESS FLAG F0D53570
STA SSLOC F0D53580
CLA P7 PREPARE TO PUSH F0D53590
LXA MEPTR,1 TO MACRO EXPANSION TABLE F0D53600
TSX PUPOP,4 *PUSH DOWN OUTER MACRO STATUS F0D53610
ZSD CMP22 RESET IRP INTERCEPT F0D53620
LXA MEPTR,4 LOAD POINTER TO THIS PUSH F0D53630
SXD SSLOC,4 SAVE IN CASE OF ANOTHER PUSH F0D53640
TRA PMCS2+1 F0D53650
REM MACRO IS FIRST LEVEL F0D53660
PMCS2 TRA PMC2P $F0D53670
SXA MEPTR,1 SET POINTER TO NEXT ENTRY IN TABLE F0D53680
PMCSX AXT **,4 RELOAD CALLING LINKAGE F0D53690
TRA 1,4 F0D53700
REM F0D53710
REM PUSH MACRO STATUS UP F0D53720
PMCS3 SXA PMC3X,4 SAVE CALLING LINKAGE F0D53730
LXA CLEVL,1 LOAD MACRO LEVEL F0D53740
TXL PMC3P,1,0 IS THIS FIRST LEVEL MACRO $F0D53750
CAL P7 NO PREPARE TO POP F0D53760
LXD SSLOC,1 FROM MACRO EXPANSION TABLE F0D53770
SXA MEPTR,1 RESET POINTER TO OVERWRITE OLD PUSH F0D53780
TSX PUPOP,4 *PUSH UP OUTER MACRO F0D53790
CAL SSLOC RESTORE INDIRECT ADDRESS FLAG F0D53800
STA MCIND F0D53810
PMC3X AXT **,4 RELOAD CALLING LINKAGE F0D53820
TRA 1,4 F0D53830
REM F0D53840
REM SET UP ROUTING FOR MACRO PROCESSOR F0D53850
SETTP SXA SETPX,4 SAVE CALLING LINKAGE F0D53860
CAL* 1,4 LOAD OLD SWITCH F0D53870
STA ORDRF SAVE TRANSFER ADDRESS FOR COMPARE F0D53880
XCL HOLD SWITCH F0D53890
CAL 1,4 LOAD SWITCH ADDRESS,,TRANSFER ADDRESS F0D53900
ARS 18 RIGHT ADJUST TRANSFER ADDRESS F0D53910
LAS ORDRF IS SWITCH ALREADY INITIALIZED F0D53920
TRA *+2 NO F0D53930
TRA 2,4 YES F0D53940
STA* 1,4 RESET SWITCH F0D53950
CLA LKTBP LOAD POINTER TO NEXT SWITCH F0D53960
TNZ *+2 WAS TABLE ENTRY MADE F0D53970
TSX MACERR,4 **NO F0D53980
STD* 1,4 YES, SAVE POINTER TO HIGHER LEVEL SWITCH F0D53990
PDC ,4 COMPUTE LOCATION OF NEXT TABLE ENTRY F0D54000
CAL 0,4 LOAD POINTER TO NEXT LINK F0D54010
STQ 0,4 SAVE OLD SWITCH F0D54020
TZE LKTOV **IS TABLE EXHAUSTED F0D54030
STD LKTBP NO, RESET POINTER TO FOLLOWING LINK F0D54040
SETPX AXT **,4 RELOAD CALLING LINKAGE F0D54050
TRA 3,4 F0D54060
REM F0D54070
REM RESTORE LOWER LEVEL ROUTING F0D54080
RESTP SXA RESTX,4 SAVE CALLING LINKAGE F0D54090
SXA RESTX+1,1 SAVE CHARACTER COUNT F0D54100
CAL 1,4 LOAD SWITCH ADDRESS,,TRANSFER ADDRESS F0D54110
STA REST3 SAVE SWITCH ADDRESS F0D54120
ARS 18 F0D54130
STA LKTBB SAVE OLD TRANSFER ADDRESS FOR COMPARE F0D54140
CAL* 1,4 LOAD OLD SWITCH F0D54150
STD LKTBB ESTABLISH DUPLICATE DECREMENTS F0D54160
LAS LKTBB DOES SWITCH COMPARE WITH REQUEST F0D54170
TRA *+2 NO F0D54180
TRA REST2 YES F0D54190
TSX (PRNT),4 *INVITE CORRESPONDENCE F0D54200
PZE QUERY,,14 F0D54210
SXA *+2,2 F0D54220
TSX SPACP,2 *LET THEM ANSWER F0D54230
AXT **,2 F0D54240
TRA REST1 F0D54250
QUERY BCI , PLEASE SEND SOURCE PROGRAM TO APPLIED PROGRAMMING ATTN. F0D54260
BCI 4,H.MELTZER. PUSH START. F0D54270
REM REQUEST IS NOT CURRENT SWITCH F0D54280
REST1 PDC ,1 LOAD POINTER TO NEXT SWITCH F0D54290
TXH *+2,1,0 WAS TABLE ENTRY MADE F0D54300
TSX MACERR,4 **NO F0D54310
CAL 0,1 YES, LOAD LAST LINK F0D54320
STD LKTBB SET UP DECREMENT AGAIN F0D54330
LAS LKTBB DOES THIS LINK COMPARE WITH REQUEST F0D54340
TRA *+2 NO F0D54350
TRA REST3 YES F0D54360
SXA *+1,1 COMPLEMENT THIS POINTER F0D54370
AXC **,1 F0D54380
SXA REST3,1 SAVE POINTER F0D54390
TRA REST1 F0D54400
REM REQUEST IS CURRENT SWITCH F0D54410
REST2 PDC ,1 COMPLEMENT POINTER F0D54420
CAL 0,1 PICK UP LINK F0D54430
SLW* 1,4 RESET SWITCH F0D54440
TRA REST3+2 F0D54450
REM REQUEST WAS FOUND IN TABLE F0D54460
REST3 AXC **,4 LOAD POINTER F0D54470
STD 0,4 INSERT LOWER POINTER IN SWITCH F0D54480
CAL LKTBP LOAD POINTER TO NEXT LINK F0D54490
SLW 0,1 RESTORE TABLE F0D54500
SXA *+1,1 COMPUTE TRUE POINTER ADRESS F0D54510
AXC **,1 F0D54520
SXD LKTBP,1 RESET POINTER TO NEXT LEVEL LINK F0D54530
RESTX AXT **,4 RELOAD CALLING LINKAGE F0D54540
AXT **,1 RELOAD CHARACTER COUNT F0D54550
TRA 2,4 F0D54560
REM F0D54570
REM PUSH DOWN PARAMETER F0D54580
PDOWN SXA PDWNX,4 SAVE CALLING LINKAGE F0D54590
LDQ* 1,4 LOAD VALUE OF PARAMETER F0D54600
CAL LKTBP LOAD POINTER TO NEXT LEVEL F0D54610
TNZ *+2 WAS TABLE ENTRY MADE F0D54620
TSX MACERR,4 **NO F0D54630
STD* 1,4 YES, SAVE POINTER TO HIGHER LEVEL PARAM F0D54640
PDC ,4 COMPUTE LOCATION OF NEXT TABLE ENTRY F0D54650
CAL 0,4 LOAD POINTER TO NEXT LEVEL F0D54660
STQ 0,4 SAVE OLD PARAMETER F0D54670
TZE LKTOV **IS TABLE EXHAUSTED F0D54680
STD LKTBP NO, RESET POINTER TO FOLLOWING LINK F0D54690
PDWNX AXT **,4 RELOAD CALLING LINKAGE F0D54700
TRA 2,4 F0D54710
REM F0D54720
REM PUSH UP PARAMETER F0D54730
PUPUP SXA PUPPX,4 SAVE CALLING LINKAGE F0D54740
CAL 1,4 LOAD PARAMETER F0D54750
STA *+1 INITIALIZE PARAMETER ADDRESS F0D54760
LDC **,4 LOAD POINTER TO CURRENT LEVEL F0D54770
TXH *+2,4,0 WAS TABLE ENTRY MADE F0D54780
TSX MACERR,4 **NO F0D54790
LDQ 0,4 YES, LOAD FORMER LEVEL F0D54800
CAL LKTBP LOAD POINTER TO NEXT LEVEL F0D54810
SLW 0,4 RESTORE TABLE F0D54820
SXA *+1,4 COMPUTE TRUE POINTER ADDRESS F0D54830
AXC **,4 F0D54840
SXD LKTBP,4 RESET POINTER TO NEXT LINK F0D54850
PUPPX AXT **,4 RELOAD CALLING LINKAGE F0D54860
STQ* 1,4 RESET FORMER LEVEL F0D54870
TRA 2,4 F0D54880
REM F0D54890
REM PUSH / POP STATUS F0D54900
PUPOP SXA POPPX,4 SAVE CALLING LINKAGE F0D54910
STP PUP01+1 SET PUSH / POP SWITCH F0D54920
AXT 3,2 LOAD LENGTH OF SCAN STATUS WORDS F0D54930
TSX PUP01,4 *PUSH / POP SCAN STATUS F0D54940
PZE SSLOC+1 F0D54950
LXD ARGIL,2 LOAD LENGTH OF ARGUMENT TABLE F0D54960
TXL *+3,2,0 ARE THERE ANY ARGUMENTS F0D54970
TSX PUP01,4 *YES, PUSH / POP ARGUMENTS F0D54980
PZE MARGS+1 F0D54990
AXT 1,2 LOAD LENGTH OF IRP SWITCH F0D55000
TSX PUP01,4 *PUSH/POP IRP INTERCEPT F0D55010
PZE CMP22+1 F0D55020
PDX ,4 LOAD IRP SWITCH F0D55030
TXL POPPX,4,0 IS CARD IN RANGE OF IRP F0D55040
AXT 4,2 YES, LOAD LENGTH OF IRP STATUS WORDS F0D55050
TSX PUP01,4 *PUSH / POP IRP STATUS F0D55060
PZE IRPAR+1 F0D55070
POPPX AXT **,4 RELOAD CALLING LINKAGE F0D55080
TRA 1,4 F0D55090
REM F0D55100
PUP01 CAL 1,4 LOAD ORIGIN OF LIST TO BE PUSHED / POPPED F0D55110
*** PUP02 (TXH IF PUSH, TXL IF POP) F0D55120
STA *+1 INITIALIZE PUSH ADDRESS F0D55130
CLA **,2 PUSH FROM F0D55140
STO 0,1 TO F0D55150
TXI *+1,1,-1 BUMP TO COUNT F0D55160
TIX *-3,2,1 IS LIST EXHAUSTED F0D55170
TRA 2,4 YES F0D55180
PUP02 STA *+2 INITIALIZE POP ADDRESS F0D55190
CLA 0,1 POP FROM F0D55200
STO **,2 TO F0D55210
TXI *+1,1,-1 BUMP FROM COUNT F0D55220
TIX *-3,2,1 IS LIST EXHAUSTED F0D55230
TRA 2,4 YES F0D55240
REM F0D55250
REM STUFF MACRO DEFINITION INTO MACDEF F0D55260
REM STUFF MACRO CALL ARGUMENTS INTO MACEXP F0D55270
REM STUFF MACRO EXPANSION INTO BCDBF F0D55280
REM F0D55290
REM TO INITIALIZE CAL * F0D55300
REM TRA STUFY F0D55310
REM *** RETURN F0D55320
REM XR1 = -(FIRST LOC TO BE STUFFED INTO) F0D55330
REM XR2 = -1/+1 TO STUFF FORWARD/BACKWARD F0D55340
REM XR4 = -(FIRST FORBIDDEN LOCATION) OVERFLOWF0D55350
REM NO TEST FOR STUFFING BACKWARD F0D55360
REM F0D55370
REM TO CALL CAL * F0D55380
REM TRA STUFF F0D55390
REM *** OVERFLOW RETURN (STUFFING FORWARD) F0D55400
REM *** NORMAL RETURN F0D55410
REM XR1 = -(FIRST WORD TO BE STUFFED FROM) F0D55420
REM XR2 = NUMBER OF CHARS PRECEDING CHAR F0D55430
REM TO BE STUFFED (0 - 5) F0D55440
REM XR4 = NUMBER OF CHARACTERS TO STUFF F0D55450
REM F0D55460
REM INITIALIZE STUFF ROUTINE F0D55470
STUFY ACL Q2 COMPUTE RETURN TO CALL+1 F0D55480
STA STUFX INITIALIZE RETURN F0D55490
ZSD STUM2 RESET HANGING OUTPUT CHARACTER COUNT F0D55500
ZSD STF01 F0D55510
SXD STUFI,1 SET FIRST LOCATION TO BE STUFFED INTO F0D55520
SXD STF08+1,2 SET DIRECTION OF STUFF F0D55530
SXD STF10+2,2 F0D55540
AXT ,0 (23)F0D55550
TXH *+2,2,1 IS STUFF BACKWARD F0D55560
AXT 0,4 YES, DELETE OVERFLOW TEST F0D55570
SXD STF03+1,4 INITIALIZE OVERFLOW TESTS F0D55580
SXD STF08+2,4 F0D55590
STUFX TRA ** F0D55600
REM F0D55610
REM ENTER MACRO INFORMATION INTO MACRO TABLES F0D55620
STUFF ACL Q2 COMPUTE CALL+1 F0D55630
STA STF09 INITIALIZE OVERFLOW RETURN F0D55640
ACL Q1 COMPUTE CALL+2 F0D55650
STA STF11+1 INITIALIZE NORMAL RETURN F0D55660
TXH STF01,4,0 ANY CHARACTERS TO BE STUFFED F0D55670
STF12 LXD STF08+1,2 PREPARE TO BUMP STUFF POINTER (23)F0D55680
STUFI TXI STF11+1,2,** ,,LOCATION TO BE STUFFED INTO (23)F0D55690
STF01 TXI *+1,4,** BUMP COUNT TO INCLUDE PARTIAL STUFFED WORDF0D55700
CLA STUM2 COMPUTE PARTIAL STUFFED BIT COUNT F0D55710
ARS 1 (6* CHARACTER COUNT) F0D55720
ADD STUM2 F0D55730
ARS 16 F0D55740
STO STUM2 F0D55750
STA STF04 SET SHIFT TO RIGHT ADJUST F0D55760
REM PARTIAL STUFFED WORD F0D55770
PXD ,2 COMPUTE INPUT BIT COUNT F0D55780
ARS 16 (6*(N-1) FOR NTH CHARACTER) F0D55790
STO NERAS F0D55800
ARS 1 F0D55810
ADD NERAS F0D55820
STO NERAS F0D55830
STA STF05 SET SHIFT TO LEFT ADJUST INPUT CHARACTER F0D55840
SUB STUM2 COMPUTE LEAD OF INPUT CHARACTER F0D55850
TMI STF02 DOES INPUT CHARACTER LEAD OUTPUT CHARACTERF0D55860
STA STF07 NO, SET SHIFT TO APPEND LEADING F0D55870
REM CHARACTERS IN NEXT INPUT WORD F0D55880
SUB Q36 F0D55890
STA STF08 SET SHIFT TO RIGHT ADJUST FOLLOWING F0D55900
REM CHARACTERS IN NEXT INPUT WORD F0D55910
ADD STUM2 F0D55920
STA STF05+1 SET SHIFT TO APPEND LEADING F0D55930
REM CHARACTERS IN FIRST INPUT WORD F0D55940
CLA P7 SET SWITCH TO LOAD NEXT INPUT WORD F0D55950
STP STF06 FOR BALANCE OF FIRST STUFFED WORD F0D55960
TRA STF03 F0D55970
REM FIRST INPUT CHARACTER LEADS LAST OUTPUT CHARACTER F0D55980
STF02 STA STF08 SET SHIFT TO RIGHT ADJUST FOLLOWING F0D55990
REM CHARACTERS IN NEXT INPUT WORD F0D56000
ADD Q36 F0D56010
STA STF07 SET SHIFT TO APPEND LEADING F0D56020
REM CHARACTERS IN NEXT INPUT WORD F0D56030
SUB NERAS F0D56040
STA STF05+1 SET SHIFT TO APPEND LEADING F0D56050
REM CHARACTERS IN FIRST INPUT WORD F0D56060
CAL P7 SET SWITCH TO RETAIN FIRST INPUT WORD F0D56070
STP STF06 FOR BALANCE OF FIRST STUFFED WORD F0D56080
REM STUFF ROUTINE IS INITIALIZED. STUFF OUTPUT WORDS F0D56090
STF03 LXD STUFI,2 LOAD LOCATION OF FIRST WORD TO BE STUFFED F0D56100
TXL STF09,2,** WILL STUFFED WORD OVERFLOW F0D56110
LDQ 0,2 NO, LOAD PARTIAL STUFFED WORD F0D56120
STF04 LGL ** RIGHT ADJUST PARTIAL STUFFED WORD F0D56130
LDQ 0,1 LOAD FIRST INPUT WORD F0D56140
STF05 RQL ** LEFT ADJUST FIRST INPUT CHARACTER F0D56150
LGL ** APPEND INPUT CHARACTERS TO PARTIAL WORD F0D56160
STF06 *** STF07+1,,0 DOES INPUT CHARACTER LEAD OUTPUT CHARACTERF0D56170
TXI *+1,1,-1 NO, BUMP INPUT WORD COUNT TO NEXT WORD F0D56180
LDQ 0,1 LOAD NEXT INPUT WORD F0D56190
STF07 LGL ** APPEND LEADING CHARACTERS NEXT INPUT WORD F0D56200
SLW 0,2 ADD TO TABLE F0D56210
TNX STF10,4,6 IS ENTRY COMPLETE F0D56220
STF08 LGL ** NO, RIGHT ADJUST FOLLOWING CHARACTERS F0D56230
REM NEXT INPUT WORD F0D56240
TXI *+1,2,** BUMP STUFFED WORD COUNT F0D56250
TXH STF06+1,2,** WILL STUFFED WORD OVERFLOW F0D56260
SXD STUFI,2 YES, SAVE LAST WORD STUFFED F0D56270
STF09 TRA ** RETURN TO CALL+1 F0D56280
REM ENTRY IS COMPLETE F0D56290
STF10 TXL *+3,4,5 WAS LAST WORD COMPLETE F0D56300
AXT 0,4 YES, RESET HANGING CHARACTER COUNT F0D56310
TXI *+1,2,** BUMP STUFFED WORD COUNT FOR FINAL WORD F0D56320
SXD STUFI,2 SAVE LOCATION OF LAST (PART) WORD STUFFED F0D56330
SXD STUM2,4 SAVE PARTIAL WORD CHARACTER COUNT F0D56340
SXD STF01,4 F0D56350
STF11 TXH STF12,4,0 BUMP COUNT IF PARTIAL WORD EXISTS (23)F0D56360
TRA ** RETURN TO CALL+2 F0D56370
REM F0D56380
REM GENERALIZED SCAN ROUTINE F0D56390
REM F0D56400
REM SCANS FOR SELECTED CHARACTER IN LOW ORDER POSITION F0D56410
REM IN TABLE AT LOCATION C OF LENGTH N F0D56420
REM TABLE IN DECREASING SORT ORDER F0D56430
REM F0D56440
REM TO INITIALIZE TSX SCANS,4 F0D56450
REM TXL K,,C+N RETURN TO K AFTER EACH CH F0D56460
REM (TXH ,,C+N NO RETURN) F0D56470
REM TXL L,,N RETURN TO L AFTER SEL CH F0D56480
REM TXL M,1,-J-1 RETURN TO M AFTER J EXHST F0D56490
REM (TXH M,1,-J SCAN BACKWARD) F0D56500
REM F0D56510
REM TO CALL, REGISTERS UPDATED F0D56520
REM TRA SCANT F0D56530
REM TO CALL, REGISTERS UNDISTURBED F0D56540
REM TRA SCANU F0D56550
REM OR TXI SCANU+1,2,1 F0D56560
REM F0D56570
REM ON RETURN XR1, XR2 AT LAST CHARACTER SCANNED F0D56580
REM CURRENT CHARACTER IN AC F0D56590
REM SELECTED CHARACTER POSITION IN XR4 F0D56600
REM F0D56610
SCANS CAL 1,4 LOAD RETURN1,,ORIGIN AT END OF TABLE F0D56620
SLW SCAN6 INITIALIZE SINGLE CHARACTER RETURN F0D56630
ARS 18 F0D56640
STA SCAN4 INITIALIZE ORIGIN OF SELECTED CHAR TABLE F0D56650
CAL 2,4 LOAD RETURN2,,LENGTH OF TABLE F0D56660
SLW SCAN5 INITIALIZE SELECTED CHARACTER RETURN F0D56670
LDQ 3,4 LOAD RETURN3,,END OF SCAN TEST F0D56680
STQ SCAN2 INITIALIZE TEST FOR END OF SCAN F0D56690
CAL D1 PRELOAD BUMPER BACKWARD F0D56700
TQP *+2 IS SCAN BACKWARD F0D56710
CAL D32767 NO, LOAD BUMPER FORWARD F0D56720
STD SCAN1 SET DIRECTION OF SCAN F0D56730
TRA 4,4 F0D56740
REM F0D56750
SCANT TXL SCAN2,2,5 IS WORD EXHAUSTED F0D56760
SCAN1 TXI *+1,1,** YES, BUMP TO NEXT WORD F0D56770
TXI SCANT,2,-6 RESET CHARACTER COUNT F0D56780
SCAN2 *** **,,** IS SCAN EXHAUSTED F0D56790
LDQ 0,1 NO, LOAD CURRENT WORD F0D56800
TXL SCAN3,2,0 IS FIRST CHARACTER NEXT F0D56810
PXD ,2 NO, COMPUTE LENGTH OF SHIFT F0D56820
PDX ,4 F0D56830
RQL 6 ROLL UP NEXT CHARACTER F0D56840
TIX *-1,4,1 IS THIS IT F0D56850
SCAN3 ZAC YES, LOAD NEXT CHARACTER F0D56860
LGL 6 F0D56870
LXD SCAN5,4 LOAD LENGTH OF SPECIAL CHARACTER TABLE F0D56880
SCAN4 LAS **,4 IS IT THIS CHARACTER F0D56890
TRA SCAN6 NO, NOT IN TABLE F0D56900
SCAN5 *** **,,** YES, RETURN F0D56910
TIX SCAN4,4,1 IS TABLE EXHAUSTED F0D56920
SCAN6 *** **,,** YES, IS SINGLE CHARACTER RETURN REQUESTED F0D56930
SCANU TXI *+1,2,1 NO, BUMP TO NEXT CHARACTER F0D56940
TXL SCAN3,2,5 IS WORD EXHAUSTED F0D56950
TRA SCAN1 YES F0D56960
EJECT F0D56970
REM MACRO PROCESSOR ERASABLE STORAGE AND CONSTANTS F0D56980
REM F0D56990
ARGNO PZE ,,** MACRO ARGUMENT NUMBER F0D57000
ARGWD PZE MACRO LOCATION ARGUMENT F0D57010
COUNT PZE ,,** MACRO FIELD COUNT F0D57020
CRSNO PZE **,,5 POINTER TO LAST CREATED SYMBOL,,COUNT F0D57030
LCARG PZE MACRO LOCATION ARGUMENT F0D57040
MACNO PZE **,,** MACRO LEVEL,,POINTER TO NEXT LEVEL F0D57050
MCIND PZE ** FLAG FOR INDIRECTLY ADDRESSED MACRO F0D57060
MOPCH PZE NEXT CHARACTER IN MACRO VARIABLE FIELD F0D57070
MOPMQ PZE RESIDUE OF WORD IN MACRO VARIABLE FIELD F0D57080
MOPNM PZE NAME OF MACRO BEING DEFINED F0D57090
MOPTR PTW MACOP+1,,-VECTOR+1 SECOND WORD IN COMBINED OPERATN TABLE F0D57100
REM DECREMENT IS POINTER TO NEXT AVAILABLE F0D57110
REM SPACE FOR HEADING IN MACRO DEF TABLE F0D57120
REM TABLE EXTENDS DOWN TOWARDS MACEXP F0D57130
REM PASS 2 TRANSFER ADDRESS WILL REPLACE THIS F0D57140
REM WHEN PASSED FORWARD ON INTERMEDIATE TAPE F0D57150
PARNC PZE ** MACRO PARENTHESES COUNT F0D57160
PCONT PZE ,,** MACRO PARTIAL FIELD OR HOLLERITH COUNT F0D57170
PSYMB PZE MACRO PARTIAL FIELD F0D57180
RMTEN PZE ,,-*-1 (1) POINTER TO MOST RECENTLY DEFINED SEQUENCE F0D57190
PZE ,,** (2) POINTER TO FIRST REMOTE SEQUENCE F0D57200
STUM2 PZE **,,** PARTIAL STUFFED WORD BIT COUNT,,CHAR COUNTF0D57210
TOTAL PZE ,,** MACRO VARIABLE FIELD COUNT F0D57220
MDFCT PZE **,,** (1) MACRO DEFINITION WORD,,CHARACTER COUNTS F0D57230
ARGIL PZE ,,** (2) ,,NUMBER OF ARGUMENTS F0D57240
SSLOC PZE **,,** (3) IND ADD FLAG,,POINTER TO LAST SAVED SCAN F0D57250
REM FOLLOWING PARAMS DESCRIBE IRP CARD WITHIN MACRO DEF TABLEF0D57260
IRPNO PZE **,,** (1) PUNCTUATION CHARACTER,,ARGUMENT COUNT F0D57270
IRPPW PZE **,,** (2) MACRO SKELETON WORD,,CHARACTER COUNTS F0D57280
IRPSD PZE **,,** (3) BEGINNING OF STRING WORD,,CHARACTER COUNT F0D57290
IRPAR PZE **,,** (4) REF TO THIS ARG,,POINTER TO NEXT ARG F0D57300
DARGS BES 64 BCD MACRO DEFINITION ARGUMENTS F0D57310
BSS 63 (1) POINTERS TO ARGS IN MACRO EXPANSION TABLE F0D57320
MARGS PZE **,,** (2) -(LOC OF STRING),,(LENGTH OF STRING) F0D57330
LKTBB TXI **,,** OLD TRANSFER ADDRESS,,POINTER F0D57340
LKTBP DUP 1,112 F0D57350
PZE ,,*+1 ,,POINTER TO NEXT LINK F0D57360
PZE LINK TABLE END F0D57370
REM F0D57380
MOPP2 MZE ,,5$UNLOP+1 PASS 2 TRANSFER TO PRINT MACRO CARD F0D57390
RMTP2 PZE ,,5$RMTOP PASS TWO ADDRESS TO RESET HEADING CHAR F0D57400
PRNLT TXI SSN10,,1 TRANSFER TO DISABLE SCAN ON , F0D57410
PRNLS TXI SSN07,,0 TRANSFER TO ENABLE SCAN ON , F0D57420
REM F0D57430
MDTBL PZE 63 (1) ARGUMENT MARK F0D57440
PZE 62 (2) VARIABLE FIELD MARK F0D57450
PZE 01 (3) OPCODE MARK F0D57460
PZE 00 (4) END OF RECORD MARK F0D57470
REM F0D57480
MPKMK OCT 007777770000 MASK FOR CARD COLUMNS 8 - 10 F0D57490
OCT 777777777777 (1) F0D57500
OCT 777777777700 (2) F0D57510
OCT 777777770000 (3) F0D57520
OCT 777777000000 (4) F0D57530
OCT 777700000000 (5) F0D57540
OCT 770000000000 (6) F0D57550
MARMK OCT 000000000000 (7) F0D57560
REM F0D57570
IRPMK BCI 1,0IRP 0 F0D57580
BCDMM BCI 1,BCD000 F0D57590
BCIMM BCI 1,BCI000 F0D57600
TTLMM BCI 1,TTL000 THIRD OF FOUR ENTRIES IN TABLE (23)F0D57610
REMMM BCI 1,REM000 F0D57620
RMTMM BCI 1,RMT000 F0D57630
ENDMM BCI 1,END000 (23)F0D57640
CRSNM BCI 1,CRSYMB F0D57650
LVLNM BCI 1,LEVEL F0D57660
MDFNM BCI 1,MACRO F0D57670
PARFL BCI 1, () F0D57680
UNDFL BCI 1, U F0D57690
CRPT1 BCI 1,00.000 DECIMAL POINT FOR CREATED SYMBOL CHAR 3 F0D57700
CRPT2 BCI 1,.0000 DECIMAL POINT FOR CREATED SYMBOL CHAR 2 F0D57710
REM F0D57720
NUM04 MPY INP06 (25)F0D57730
STQ INP06 (25)F0D57740
TRA UPD03 RETURN (25)F0D57750
PZE (NOT USED) (25)F0D57760
REM F0D57770
MCTBL BCI 1,00000( (1) F0D57780
BCI 1,00000, (2) F0D57790
BCI 1,00000 (3) F0D57800
BCI 1,00000) (4) F0D57810
REM F0D57820
ETCCD BCI 3, ETC F0D57830
RMTCD BCI 6, REM REMOTE SEQUENCES F0D57840
REM F0D57850
REM FORM OF ENTRY IN MACRO DEFINITION TABLE F0D57860
REM HEADING, MACRO DEF PZE ,,ARGUMENT COUNT F0D57870
REM (MZE IF LAST ARG IS SYMBOLIC LOC) F0D57880
REM RMT SEQ PZE HEAD CHAR,,PTR TO NEXT SEQUENCE F0D57890
REM CARD IMAGE SKELETONS FOLLOW F0D57900
REM F0D57910
REM STRUCTURE OF SKELETONIZED CARD IMAGE F0D57920
REM FIELD MARKS (OCTAL) 01 OPCODE FOLLOWS F0D57930
REM 76NN VARIABLE FIELD FOLLOWS (24)F0D57940
REM (PRECEDED BY NN CARD CHARACTERS) (24)F0D57945
REM 00 END OF RECORD F0D57950
REM (END MARK IS DOUBLE END OF RECORD) F0D57960
REM FORM OF FIELD, ARG 77NN WHERE NN IS ARGUMENT NUMBER F0D57970
REM OR 7700 FLAG FOR PROGRAMMERS ETC F0D57980
REM OR NNXX WHERE NN IS CHARACTER COUNT+1 F0D57990
REM F0D58000
REM F0D58010
ETCPC STZ SYMBL DELETE ADDED FIELD $F0D58020
LXA GSAV2,2 RESTORE X2 $F0D58021
TRA GSC18 $F0D58022
HYPOP CAL OPBIN LOAD OPCODE $F0D58023
SLW LITRL SAVE FOR PASS TWO $F0D58024
AXT 5$HYPOP,4 SET PASS TWO TRANSFER ADDRESS $F0D58025
SXD OPBIN,4 $F0D58026
TSX ESYML,4 *DEFINE POSSIBLE LOCATION FIELD $F0D58027
CLA Q1 ORDER TAKES ONE WORD $F0D58028
TSX BPCTR,4 *BUMP LOCATION COUNTER $F0D58029
TRA READ1 $F0D58030
REM $F0D58031
SRCS1 LDQ INSBF+1 LOAD SOURCE CARD LOCATION FIELD $F0D58032
ZAC $F0D58033
LGL 6 $F0D58034
ERA ASTRK IS IT *REMARK CARD $F0D58035
TZE *+4 YES $F0D58036
ERA Q7 IS IT $REMARK CARD $F0D58037
TZE *+2 YES $F0D58038
CAL D32767 NO,PUT OCTAL 77777 IN DECREMENT $F0D58039
STD INP2A+1 SET REMARK CARD SWITCHES $F0D5803A
STD INP3A $F0D5803B
STD INPCH $F0D5803C
CAL SRCID COMBINE SOURCE SERIALIZATION $F0D5803D
TRA SRCSW+4 $F0D5803E
INP2A ZSD DELUP+2 RESET HANGING INGORE SWITCH $F0D5803F
TXH INP02+17,4,-1 TRANSFER IF REMARKS CARD $F0D5803G
TRA INP02+8 $F0D5803H
INP3A TXH INP04-7,4,-1 TRANSFER IF REMARKS CARD $F0D5803I
CAL BCDBF+1 LOAD SOURCE WORD 2 $F0D5803J
TRA INP03+6 $F0D5803K
INPCH TXH INP03,4,-1 IF REMARKS CARD-DELETE AND PRINT $F0D5803L
CAL INSBF+2 LOAD SOURCE WORD 2 $F0D5803M
ERA IGNR IS IT IGNORE $F0D5803N
TNZ INP03 NO,DELETE AND PRINT CARD $F0D5803O
AXT -1,4 YES,SET IGNORE SWITCH $F0D5803P
SXD DELUP+2,4 $F0D5803Q
TRA INP03 DELETE,DO NOT PRINT $F0D5803R
IGNR BCI 1, IGNOR $F0D5803S
CALN1 NZT ABSFLG IS IT ABSOLUTE ASSEMBLY $F0D5803T
STL TVFLG NO,SET TRANSFER VECTOR NAME FLAG $F0D5803U
TRA CALNM+3 $F0D5803V
MAC2A TSX ESYML,4 *DEFINE LOCATION FIELD $F0D5803W
TRA MAC07+3 $F0D5803X
ESYMZ TXH ESYMS+1,4,** DID WE OVERLAP MACRO TABLE $F0D5803Y
TRA ESYMS-5 YES, CALL SOURCE ERROR $F0D5803Z
EOFIN STZ TTLFG KILL SUBTITLE (26)F0D58040
TRA EOFER (26)F0D58041
ETEST AXT 0,2 $F0D58042
LDI (SCHU)+MINTAP $F0D58043
RNT 100 IS IT REDUNDANCY ERROR $F0D58044
TRA SRCRR+2 YES-MACHINE ERRROR $F0D58045
TRA *+2 NO - BINARY CARD $F0D58046
EOFER AXT -1,2 END OF FILE CARD $F0D58047
TSX FPRINT,4 PRINT POSSIBLE REASON FOR ERROR $F0D58048
PZE SRCRM,,10 $F0D58049
AECRD CAL ECARD,2 SET UP ERROR MESSAGE $F0D5804A
SLW ENDER+4 (26)F0D5804B
TSX FPRINT,4 PRINT ERROR MESSAGE $F0D5804C
PZE ENDER,,6 OFF LINE (26)F0D5804D
TSX (TAPE),4 BACKSPACE OVER EOF (26)F0D5804E
PZE BSREC,,(SKDP) OR BINARY (26)F0D5804F
PZE ,,MINTAP (26)F0D5804G
TSX WRFBK,4 WRITE LAST PARTIAL LISTING BUFFER (26)F0D5804H
TSX (SECL),4 CALL SOURCE ERROR RECORD (26)F0D5804I
ENDER BCI 6, HAS CAUSED FAP TO READ CARD (26)F0D5804.
DUP 1,4 PATCH SPACE (26)F0D5804)
PZE (26)F0D5804J
OTPT3 STA BCDBF+13 AS LOW ORDER 18 BITS $F0D5804M
STT BCDBF+13 OF WORD 14 $F0D5804N
TRA OTPT2+1 $F0D5804O
RMT03 LXA CLEVL,4 GET MACRO NESTING LEVEL $F0D5804P
TXH RMT02+2,4,0 WAS THIS NESTED DEFINITION $F0D5804Q
SXD ESYMZ,2 NO,INITIALIZE TEST $F0D5804R
TRA RMT02+2 $F0D5804S
PMC2P CLA STPTR FLOAT MACRO EXPANSION TABLE $F0D5804T
ADM MOPTR BETWEEN SYMBOL TABLE AND $F0D5804U
ARS 1 MACRO DEFINITION TABLE $F0D5804V
PDX ,1 $F0D5804W
SXD ESYMZ,1 INITIALIZE SYMBOL TABLE OVERFLOW TEST $F0D5804X
TRA PMCS2+1 $F0D5804Y
STP0A TMI READ1 TRANSFER IF CC7 * COMMENTS CARD $F0D5804Z
ZSD COMCD+2 OTHERWISE RESET SWITCH $F0D58050
TRA COMCD+4 $F0D58051
FRPA1 CAL* (FGBX) $F0D58052
ANA Q4 IS THIS AN IBSFAP JOB $F0D58053
TNZ ENDC+2 YES $F0D58054
RNT 000040 NO,IS END CARD SETTING 10 SPECIFIED $F0D58055
ZSD WRIT0+3 NO,SET SWITCH TO UNBUFFER LISTING OUTPUT $F0D58056
TRA ENDC+2 $F0D58058
FRPA2 ZET FCFLG IS THIS FIRST CARD GROUP $F0D58059
TRA FIELD **NO $F0D58060
GO TSX SSCAN,4 *FIND VARIABLE FIELD $F0D58064
TRA TEST VARIABLE FIELD BLANK $F0D58065
CAL SYMBL IS VARIABLE FIELD $F0D58066
ERA TROF FORTRAN $F0D58067
TZE FORT YES $F0D58068
CAL SYMBL NO, IS VARIABLE FIELD $F0D58069
ERA SISBI IBSYS $F0D58070
TZE TBLE YES $F0D58071
TEST LDI* (FGBX) $F0D58072
RNT 4 IS THIS AN IBSFAP JOB $F0D58073
TRA FORT NO, THIS IS A FORTRAN JOB $F0D58074
TBLE CLA SIZE $F0D58075
STD SYMSIZ CHANGE SST SIZE $F0D58076
AXT LIBTBL,1 $F0D58077
LOOP CLA SYSTBL+LIBTBL,1 $F0D58078
STO SYMTBL+LIBTBL,1 $F0D58079
TIX LOOP,1,1 $F0D58080
FORT ZSD ESYMT+2 SET SWITCH TO SAVE SST $F0D58081
TRA READ1 $F0D58082
TROF BCI 1,ORTRAN $F0D58083
SISBI BCI 1,0IBSYS $F0D58084
SIZE PZE **,,-LIBTBL $F0D58085
PATCHA SLN FLDND SENSE LIGHT INDICATES END OF VAR. FIELD $F0D58092
TRA UPSCX RETURN TO RELOAD CALLING SEQUENCE $F0D58093
JPLCH TSX (LOAD),4,1 *AFTER PASS ONE, CALL PASS TWO. $F0D58094
BCI 1,9F0500 REC. 6 PARAMETER. PASS 2. $F0D58095
MSC07 ERA BLANK IS PUNCTUATION ) (24)F0D58096
TZE MSC06 YES, STUFF AS PART OF OP CODE (24)F0D58097
ERA MINUS NO, IS PUNCTUATION ( (24)F0D58098
TXL MSC08,2,-2 (MAKE THE CHECK ONLY IF IT WAS (24)F0D58099
TXL MSC08,1,5 FOUND IN CARD COLUMN EIGHT) (24)F0D58100
TZE MSC06 YES, STUFF AS PART OF OP CODE (24)F0D58101
MSC08 ERA PRIME IS PUNCTUATION BLANK (24)F0D58102
TZE MSC05 IF YES, STUFF VARIABLE FIELD FLAG (24)F0D58103
LDQ RESIDU NO, RESET SCAN POSITION TO INCLUDE (24)F0D58104
CAL CHRCTR CURRENT PUNCTUATION CHARACTER (24)F0D58105
LGR 6 (24)F0D58106
STQ RESIDU (24)F0D58107
TXI MSC10+2,1,1 GO TO VARIABLE FIELD SCAN (24)F0D58108
MSC09 LDQ MOPMQ RESTORE BEGINNING OF VARIABLE (24)F0D58109
STQ RESIDU FIELD FOR SCAN ROUTINES (24)F0D58110
CAL MOPCH (24)F0D58111
SLW CHRCTR (24)F0D58112
LAC VRFLD,1 LOAD CHARACTER AND WORD POSITIONS (24)F0D58113
LDC VRFLD,2 OF VARIABLE FIELD SCAN (24)F0D58114
TXH *+2,2,1 COMPUTE NUMBER OF CHARACTERS (24)F0D58115
TXI MSC05+3,1,13 PRECEDING VARIABLE FIELD (24)F0D58116
TXI MSC05+3,1,19 (24)F0D58117
G10PA SUB D1 *OMIT BLANK PUNCTUATION CHARACTER $F0D58118
STO PCONT FROM STUFF COUNT. $F0D58119
REM REENTRY FOR FIELD IS AN ARGUMENT WITH BLANK PUNCTUATION.$F0D58120
G10P1 SXD GSC09+3,4 *SET FIRST BLANK SWITCH TO AVOID $F0D58121
REM UPDATING PCONT TO INCLUDE $F0D58122
REM BLANK PUNCTUATION ONLY. $F0D58123
TXL GSC11,4,-2 *IS FIELD AN ARGUMENT... $F0D58124
STZ PCONT YES.ZERO PARTIAL STUFF COUNT IN CASE $F0D58125
REM GSC11+3 IS REACHED BEFORE GSC10+2. $F0D58126
TRA MSC23 *ENTRY WAS FROM GSC10+1. $F0D58127
GSFPA SXD GSFP2,1 *STORE NO.+5 TO STUFF 2ND TIME. $F0D58128
AXT 19,1 STUFF 18 CHARACTERS FIRST TIME. $F0D58129
TSX GSCS1-2,4 *SET GSCFX TO RETURN TO PATCH. $F0D58130
GSFP1 AXT **,4 *SET GSCFX TO RETURN TO CALLER. $F0D58131
AXT -4,1 UPDATE GSCX1 WITH LOCATION $F0D58132
SXA GSCX1,1 TO STUFF FROM NEXT. $F0D58133
GSFP2 TXI GSCS1-2,1,** *STUFF REMAINDER OF FIELD. $F0D58134
MP1 TXH OVRLP,4,** DID TABLE OVERFLOW $F0D58135
SXD STUFI,4 NO, PICK UP LAST LOCATION USED $F0D58136
TRA RESTF+3 $F0D58137
REM $F0D58138
SKF01 CLA UPT02+1 WAS SKPFIL TAPE $F0D58139
SUB UPDTAP SAME AS UPDATE INPUT $F0D58140
TNZ SOURC **NO $F0D58141
ZSA IPRECT YES,ZERO MEANINGLESS COUNT $F0D58142
TSX RDUPD,4 *REINITIATE BUFFER READING $F0D58143
AXT -1,4 SET EMPTY BUFFER SWITCH $F0D58144
SXD UPDSW,4 $F0D58145
TRA SOURC $F0D58146
EVNOP STL EVNFLG SET FLAG FOR EVEN PROLOGUE, ETC. $F0D58147
LDI LOCTR GET PROGRAM COUNTER $F0D58148
CAL Q1 $F0D58149
RFT 1 IS IT ODD.. $F0D58150
TSX BPCTR,4 *YES, BUMP IT $F0D58151
TRA READ1 $F0D58152
REM $F0D58153
REM PATCH TO ADJUST PROGRAM CARD FOR EVEN $F0D58154
ENDFP