$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 CAL PBUFF1+5 LOAD LENGTH OF PROLOGUE $F0D58155 NZT EVNFLG DID EVEN OPS OCCUR.. $F0D58156 TRA ENDFF+1 **NO, PROGRAM CARD IS O.K. $F0D58157 LDQ P4 YES, SET SIGN OF FOURTH $F0D58158 SLQ PBUFF1+3 WORD OF PROGRAM CARD MINUS $F0D58159 LBT IS TRANSFER VECTOR EVEN.. $F0D58160 TRA ENDFF+1 **YES $F0D58161 ADD Q1 NO, ADD ONE TO PROLOGUE LENGTH $F0D58162 TRA ENDFF+1 **RETURN $F0D58163 REM $F0D58164 SARGP LXA CLEVL,2 GET CURRENT NESTING LEVEL $F0D58165 TXL SARGT+2,2,0 DOES EXPANSION TABLE EXIST $F0D58166 LXA MEPTR,1 YES, USE ITS END INSTEAD $F0D58167 TRA SARGT+2 $F0D58168 PMC3P LXD MOPTR,4 RESET SYMBOL TABLE OVERLAP TEST $F0D58169 SXD ESYMZ,4 WHEN LEAVING MACRO NEST $F0D5816A TRA PMC3X $F0D5816B STPTR PZE ,,-SYMTBL-LSMTBL POINTER TO NEXT SYMBOL TABLE LOCATION $F0D5816C REM $F0D5816D REM PATCH TO ARGUMENT LIST ETC PROCESSING (23)F0D5816E SSN33 TXH *+2,4,** IS THIS ETC CONTINUING IFF (23)F0D5816F CAL PCCP2 YES,PUT UNDER PCC CONTROL (23)F0D5816G SLW OPBIN SAVE PASS TWO ADDRESS (23)F0D5816H TRA SSN31+1 (23)F0D5816I REM PATCH TO PRINT UPDATE PSEUDO-OPS (25)F0D5816J UPFIX LXD SRCSW,4 (25)F0D5816K TXL PUPIN,4,0 TEST SWITCH (25)F0D5816L PSOIN TSX FPRINT,4 PRINT FROM SOURCE INPUT BUFFER (25)F0D5816M PZE INSBF,,15 (25)F0D5816N TRA UPDLS+3 (25)F0D5816O PUPIN TSX FPRINT,4 PRINT FROM UPDATE INPUT BUFFER (25)F0D5816P PZE DELBF,,15 (25)F0D5816Q TRA UPDLS+3 (25)F0D5816R REM PATCH TO CORRECT IFF OUTSIDE OF MACRO (33)F0D5816S IFFIX TSX SSINS,4 *ASSEMBLE ARGUMENTS (33)F0D5816T LXD ARGJL,4 OBTAIN NUMBER COLLECTED (33)F0D5816U ZAC (33)F0D5816V TRA IFF01+4 (33)F0D5816W REM ***************PATCH SPACE******************************$F0D58199 ORG BOTTAB-LOPTBM-5 $F0D58200 OPRECT MZE **,,** UPDATE OUTPUT TAPE RECORD COUNT $F0D58300 IPRECT MZE **,,** UPDATE INPUT TAPE RECORD COUNT $F0D58400 BNRECT MZE **,,MBNTAP BINARY OUTPUT TAPE RECORD COUNT $F0D58500 INRECT MZE **,,MINTAP SOURCE INPUT TAPE RECORD COUNT $F0D58600 TTL COMBINED OPERATION TABLE F0D70000 LBL 9F04OP,X F0D70010 REM FORM OF TRANSFER WORD FOR PSEUDOOPERATION F0D70020 REM PFX P1TFR,,P2TFR F0D70030 REM PASS 1 F0D70040 REM PTW NAME OF MACRO DEFINITION F0D70050 REM PON UPDATE PSEUDOOPERATION F0D70060 REM PZE IGNORED DURING DELETED ASSEMBLY F0D70070 REM PASS 2 F0D70080 REM MZE MAY PRECEDE ENTRY CARD F0D70090 REM PZE MAY NOT PRECEDE ENTRY CARD F0D70100 REM (DATA GENERATING, PROGRAM LINKING, F0D70110 REM STORAGE ASSIGNING, SYMBOL DEFINING) F0D70120 REM F0D70130 REM FORM OF TRANSFER WORD FOR DISK ORDER $F0D70140 REM PZE 4$ORDOP,T,OP F0D70150 REM T IS 6 FOR NO ACCESS MODULE, TRACK, RECORD REQUIRED $F0D70151 REM T IS 4 FOR NO TRACK, RECORD REQUIRED $F0D70160 REM T IS 2 FOR NO RECORD REQUIRED $F0D70170 REM T IS 0 FOR ALL ABOVE REQUIRED $F0D70171 REM OP IS TWO-DIGIT OPCODE F0D70180 REM F0D70190 REM FORM OF TRANSFER WORD FOR HYPERTAPE ORDER $F0D70191 REM PZE 4$HYPOP,T,OP $F0D70192 REM T IS 2 IF ADDRESS IS REQUIRED $F0D70193 REM OP IS TWO-DIGIT OPCODE $F0D70194 REM $F0D70195 REM FORM OF INSTRUCTION WORD FOR MACHINE OPERATION F0D70200 REM 400000 000000 SIGN FOR TYPE A, B, C, D, E, INSTRUCTION F0D70210 REM 300000 000000 TYPE A F0D70220 REM 077700 000000 TYPE B, C, D, E F0D70230 REM 000060 000000 IA OK FOR TYPE B F0D70240 REM 000010 000000 A REQ F0D70250 REM 000004 000000 T REQ F0D70260 REM 000002 000000 D REQ F0D70270 REM 000001 000000 ADDRESS CONTAINS FLAGS F0D70280 REM NOT TYPE B I/O ADDRESS, TYPE E PSE OR MSE F0D70290 REM 000000 400000 IA OK FOR TYPE A F0D70300 REM 000000 200000 NONXMIT FOR TYPE A (IOXY) COMMANDS F0D70310 REM 000000 100000 MACHINE OP F0D70320 REM 000000 040000 OK FOR 704 F0D70330 REM 000000 020000 OK FOR 7090 F0D70340 REM 000000 000004 TYPE K DISK COMMAND F0D70350 REM 000000 000002 TYPE C VARIABLE LENGTH (DECREMENT) F0D70360 REM OR TYPE K WITH HIGH ORDER COUNT FIELD F0D70370 REM 000000 000001 TYPE D SENSE INSTRUCTION F0D70380 REM F0D70390 ORG BOTTAB-LOPTBM-1 F0D70400 OPTSIZ PZE 22,,-LOPTBL LOG LOPTBL,,OPERATION TABLE LENGTH F0D70410 OPTTBL SYN * F0D70420 BCD 1704000 MACHINE MODE PSEUDOOPERATION F0D70430 MZE 4$704OP,,5$704OP 704 F0D70440 BCD 1709000 MACHINE MODE PSEUDOOPERATION F0D70450 MZE 4$709OP,,5$709OP 709/7090 F0D70460 BCD 19LP000 CARD FORMAT PSEUDOOPERATION F0D70470 MZE 4$ABSOP,,5$9LPOP 9LP F0D70480 BCD 1ABS000 CARD FORMAT PSEUDOOPERATION F0D70490 MZE 4$ABSOP,,5$ABSOP ABS F0D70500 BCD 1ACL000 ADD AND CARRY LOGICAL WORD F0D70510 OCT +036171160000 ACL F0D70520 BCD 1ADD000 ADD F0D70530 OCT +040071160000 ADD F0D70540 BCD 1ADM000 ADD MAGNITUDE F0D70550 OCT +040171160000 ADM F0D70560 BCD 1ALS000 ACCUMULATOR LEFT SHIFT F0D70570 OCT +076711160000 ALS F0D70580 BCD 1ANA000 AND TO ACCUMULATOR F0D70590 OCT -032071160000 ANA F0D70600 BCD 1ANS000 AND TO STORAGE F0D70610 OCT +032071160000 ANS F0D70620 BCD 1ARS000 ACCUMULATOR RIGHT SHIFT F0D70630 OCT +077111160000 ARS F0D70640 BCD 1AXC000 ADDRESS TO INDEX, COMPLEMENTED F0D70650 OCT -077415120000 AXC F0D70660 BCD 1AXT000 ADDRESS TO INDEX, TRUE F0D70670 OCT +077415120000 AXT F0D70680 BCD 1BCD000 DATA GENERATING PSEUDOOPERATION F0D70690 PZE 4$BCDOP,,5$BCDOP BCD F0D70700 BCD 1BCI000 DATA GENERATING PSEUDOOPERATION F0D70710 PZE 4$BCIOP,,5$BCIOP BCI F0D70720 BCD 1BES000 STORAGE ALLOCATING PSEUDOOPERATION F0D70730 PZE 4$BESOP,,5$BESOP BES F0D70740 BCD 1BOOL00 SYMBOL DEFINING PSEUDOOPERATION F0D70750 PZE 4$BOLOP,,5$BOLOP BOOL F0D70760 BCD 1BRA000 BRANCH (TXL WITHOUT TAG) F0D70770 OCT -300011160000 BRA F0D70780 BCD 1BRN000 BRANCH NOP (TXH WITHOUT TAG) F0D70790 OCT +300011160000 BRN F0D70800 BCD 1BSF000 BACKSPACE FILE F0D70810 OCT -076410120200 BSF F0D70820 BCD 1BSFA00 BACKSPACE FILE, CHANNEL A F0D70830 OCT -076410121200 BSFA F0D70840 BCD 1BSFB00 BACKSPACE FILE, CHANNEL B F0D70850 OCT -076410122200 BSFB F0D70860 BCD 1BSFC00 BACKSPACE FILE, CHANNEL C F0D70870 OCT -076410123200 BSFC F0D70880 BCD 1BSFD00 BACKSPACE FILE, CHANNEL D F0D70890 OCT -076410124200 BSFD F0D70900 BCD 1BSFE00 BACKSPACE FILE, CHANNEL E F0D70910 OCT -076410125200 BSFE F0D70920 BCD 1BSFF00 BACKSPACE FILE, CHANNEL F F0D70930 OCT -076410126200 BSFF F0D70940 BCD 1BSFG00 BACKSPACE FILE, CHANNEL G F0D70950 OCT -076410127200 BSFG F0D70960 BCD 1BSFH00 BACKSPACE FILE, CHANNEL H F0D70970 OCT -076410130200 BSFH F0D70980 BCD 1BSR000 BACKSPACE RECORD F0D70990 OCT +076410120200 BSR F0D71000 BCD 1BSRA00 BACKSPACE RECORD, CHANNEL A F0D71010 OCT +076410121200 BSRA F0D71020 BCD 1BSRB00 BACKSPACE RECORD, CHANNEL B F0D71030 OCT +076410122200 BSRB F0D71040 BCD 1BSRC00 BACKSPACE RECORD, CHANNEL C F0D71050 OCT +076410123200 BSRC F0D71060 BCD 1BSRD00 BACKSPACE RECORD, CHANNEL D F0D71070 OCT +076410124200 BSRD F0D71080 BCD 1BSRE00 BACKSPACE RECORD, CHANNEL E F0D71090 OCT +076410125200 BSRE F0D71100 BCD 1BSRF00 BACKSPACE RECORD, CHANNEL F F0D71110 OCT +076410126200 BSRF F0D71120 BCD 1BSRG00 BACKSPACE RECORD, CHANNEL G F0D71130 OCT +076410127200 BSRG F0D71140 BCD 1BSRH00 BACKSPACE RECORD, CHANNEL H F0D71150 OCT +076410130200 BSRH F0D71160 BCD 1BSS000 STORAGE ALLOCATING PSEUDOOPERATION F0D71170 PZE 4$BSSOP,,5$BESOP BSS F0D71180 BCD 1BST000 BACKSPACE TAPE F0D71190 OCT +076410140200 BST F0D71200 BCD 1BTT000 BEGINNING OF TAPE TEST F0D71210 OCT +076010120000 BTT F0D71220 BCD 1BTTA00 BEGINNING OF TAPE TEST, CHANNEL A F0D71230 OCT +076000121000 BTTA F0D71240 BCD 1BTTB00 BEGINNING OF TAPE TEST, CHANNEL B F0D71250 OCT +076000122000 BTTB F0D71260 BCD 1BTTC00 BEGINNING OF TAPE TEST, CHANNEL C F0D71270 OCT +076000123000 BTTC F0D71280 BCD 1BTTD00 BEGINNING OF TAPE TEST, CHANNEL D F0D71290 OCT +076000124000 BTTD F0D71300 BCD 1BTTE00 BEGINNING OF TAPE TEST, CHANNEL E F0D71310 OCT +076000125000 BTTE F0D71320 BCD 1BTTF00 BEGINNING OF TAPE TEST, CHANNEL F F0D71330 OCT +076000126000 BTTF F0D71340 BCD 1BTTG00 BEGINNING OF TAPE TEST, CHANNEL G F0D71350 OCT +076000127000 BTTG F0D71360 BCD 1BTTH00 BEGINNING OF TAPE TEST, CHANNEL H F0D71370 OCT +076000130000 BTTH F0D71380 BCD 1CAD000 COPY, ADD AND CARRY F0D71390 OCT -070011140000 CAD F0D71400 BCD 1CAL000 CLEAR AND ADD LOGICAL F0D71410 OCT -050071160000 CAL F0D71420 BCD 1CALL00 PROGRAM LINKING PSEUDOOPERATION F0D71430 PZE 4$CALOP,,5$CALOP CALL F0D71440 BCD 1CAQ000 CONVERT BY ADDITION FROM MQ F0D71450 OCT -011413120002 CAQ F0D71460 BCD 1CAS000 COMPARE ACCUMULATOR WITH STORAGE F0D71470 OCT +034071160000 CAS F0D71480 BCD 1CFF000 CHANGE FILM FRAME F0D71490 OCT +076000160030 CFF F0D71500 BCD 1CHS000 CHANGE SIGN F0D71510 OCT +076000160002 CHS F0D71520 BCD 1CLA000 CLEAR AND ADD F0D71530 OCT +050071160000 CLA F0D71540 BCD 1CLM000 CLEAR MAGNITUDE F0D71550 OCT +076000160000 CLM F0D71560 BCD 1CLS000 CLEAR AND SUBTRACT F0D71570 OCT +050271160000 CLS F0D71580 BCD 1COM000 COMPLEMENT MAGNITUDE F0D71590 OCT +076000160006 COM F0D71600 BCD 1COMMON STORAGE ALLOCATING PSEUDOOPERATION F0D71610 PZE 4$COMOP,,5$COMOP COMMON F0D71620 BCD 1COUNT0 ASSEMBLER INFORMATION PSEUDOOPERATION F0D71630 MZE 4$CNTOP,,5$TTL03+1 COUNT F0D71640 BCD 1CPY000 COPY OR SKIP F0D71650 OCT +070011140000 CPY F0D71660 BCD 1CPYD00 COPY AND DISCONNECT DISK F0D71670 OCT 500013520000 CPYD DISK F0D71680 BCD 1CPYP00 COPY AND PROCEED DISK F0D71690 OCT 400013520000 CPYP DISK F0D71700 BCD 1CRQ000 CONVERT BY REPLACEMENT FROM MQ F0D71710 OCT -015413120002 CRQ F0D71720 BCD 1CTL000 CONTROL DISK F0D71730 OCT 200011520004 CTL DISK F0D71740 BCI 1,CTLN00 CONTROL NONTRANSMIT DISK$F0D71741 OCT 220011520004 CTLN DISK$F0D71742 BCD 1CTLR00 CONTROL AND READ DISK F0D71750 OCT 200011720004 CTLR DISK F0D71760 BCI 1,CTLRN0 CONTROL AND READ NONTRANSMIT DISK$F0D71761 OCT 220011720004 CTLRN DISK$F0D71762 BCD 1CTLW00 CONTROL AND WRITE DISK F0D71770 OCT 240011520004 CTLW DISK F0D71780 BCI 1,CTLWN0 CONTROL AND WRITE NONTRANSMIT DISK$F0D71781 OCT 260011520004 CTLWN DISK$F0D71782 BCD 1CVR000 CONVERT BY REPLACEMENT FROM AC F0D71790 OCT +011413120002 CVR F0D71800 BCD 1DCT000 DIVIDE CHECK TEST F0D71810 OCT +076000160012 DCT F0D71820 BCD 1DEBM00 EIGHT BIT MODE DISK$F0D71830 PZE 4$ORDOP,6,08 DEBM DISK$F0D71840 BCD 1DEC000 DATA GENERATING PSEUDOOPERATION F0D71850 PZE 4$DECOP,,5$DECOP DEC F0D71860 BCD 1DETAIL LIST CONTROL PSEUDOOPERATION F0D71870 MZE 4$READ1,,5$DETOP DETAIL F0D71880 BCD 1DFAD00 DBL-PREC FLOAT ADD $F0D71881 OCT +030171120000 DFAD $F0D71882 BCD 1DFAM00 DBL-PREC FLOAT ADD MAGNITUDE $F0D71883 OCT +030571120000 DFAM $F0D71884 BCD 1DFDH00 DBL-PREC FLOAT DIVIDE AND HALT $F0D71885 OCT -024071120000 DFDH $F0D71886 BCD 1DFDP00 DBL-PREC FLOAT DIVIDE AND PROCEED $F0D71887 OCT -024171120000 DFDP $F0D71888 BCD 1DFMP00 DBL-PREC FLOAT MULTIPLY $F0D71889 OCT +026171120000 DFMP $F0D71890 BCD 1DFSB00 DBL-PREC FLOAT SUBTRACT $F0D71891 OCT +030371120000 DFSB $F0D71892 BCD 1DFSM00 DBL-PREC FLOAT SUBTRACT MAGNITUDE $F0D71893 OCT +030771120000 DFSM $F0D71894 BCD 1DLD000 DBL-PREC LOAD $F0D71895 OCT +044371120000 DLD $F0D71896 BCD 1DNOP00 NO OPERATION DISK$F0D71897 PZE 4$ORDOP,6,00 DNOP DISK$F0D71898 BCD 1DREL00 RELEASE DISK$F0D71899 PZE 4$ORDOP,6,04 DREL DISK$F0D71900 BCD 1DRS000 DROP READY STATUS $F0D71901 OCT +077510120000 DRS $F0D71902 BCD 1DSAI00 SET ACESS INOPERATIVE DISK$F0D71903 PZE 4$ORDOP,4,87 DSAI DISK$F0D71904 BCD 1DSBM00 SIX BIT MODE DISK$F0D71905 PZE 4$ORDOP,6,09 DSBM DISK$F0D71906 BCD 1DSEK00 SEEK DISK$F0D71907 PZE 4$ORDOP,2,80 DSEK DISK$F0D71908 BCD 1DST000 DBL-PREC STORE $F0D71909 OCT -060371120000 DST $F0D71910 BCD 1DUAM00 DBL-PREC UNNORM FLOAT ADD MAGNITUDE $F0D71911 OCT -030571120000 DUAM $F0D71912 BCD 1DUFA00 DBL-PREC UNNORM FLOAT ADD $F0D71913 OCT -030171120000 DUFA $F0D71914 BCD 1DUFM00 DBL-PREC UNNORM FLOAT MULTIPLY $F0D71915 OCT -026171120000 DUFM $F0D71916 BCD 1DUFS00 DBL-PREC UNNORM FLOAT SUBTRACT $F0D71917 OCT -030371120000 DUFS $F0D71918 BCD 1DUP000 DATA GENERATING PSEUDOOPERATION $F0D71919 PZE 4$DUPOP,,5$DUPOP DUP $F0D71920 BCD 1DUSM00 DBL-PREC UNNORM FLOAT SUBTRACT MAGNITUDE $F0D71921 OCT -030771120000 DUSM $F0D71922 BCD 1DVCY00 PREPARE TO VERIFY CYLINDER OPERATION DISK F0D72030 PZE 4$ORDOP,0,85 DVCY DISK F0D72040 BCD 1DVH000 DIVIDE OR HALT F0D72050 OCT +022071160000 DVH F0D72060 BCD 1DVHA00 PREPARE TO VERIFY HOME ADDRESS DISK F0D72070 PZE 4$ORDOP,2,89 DVHA DISK$F0D72080 BCD 1DVP000 DIVIDE OR PROCEED F0D72090 OCT +022171160000 DVP F0D72100 BCD 1DVSR00 PREPARE TO VERIFY SINGLE RECORD DISK F0D72110 PZE 4$ORDOP,0,82 DVSR DISK$F0D72120 BCD 1DVTA00 PREPARE TO VERIFY TRACK WITH ADDRESS DISK F0D72130 PZE 4$ORDOP,0,88 DVTA DISK$F0D72140 BCD 1DVTN00 PREPARE TO VERIFY TRACK WITHOUT ADDRESS DISK F0D72150 PZE 4$ORDOP,0,84 DVTN DISK$F0D72160 BCD 1DWRC00 PREPARE TO WRITE CHECK DISK F0D72170 PZE 4$ORDOP,0,86 DWRC DISK$F0D72180 BCD 1DWRF00 PREPARE TO WRITE FORMAT TRACK DISK F0D72190 PZE 4$ORDOP,2,83 DWRF DISK$F0D72200 BCD 1EAD000 EXTENDED ADD F0D72210 OCT +067171160000 EAD F0D72220 BCD 1EAXM00 ENTER ADDITIONAL INDEX MODE F0D72230 OCT +076000120016 EAXM F0D72240 BCD 1ECA000 EXCHANGE LOGICAL ACCUMULATOR WITH STORAGE F0D72250 OCT +056171160000 ECA F0D72260 BCD 1ECQ000 EXCHANGE MQ WITH STORAGE F0D72270 OCT -056171160000 ECQ F0D72280 BCD 1ECTM00 ENTER COPY TRAP MODE F0D72290 OCT -076000120006 ECTM F0D72300 BCD 1EDP000 EXTENDED DIVIDE OR PROCEED F0D72310 OCT +067271160000 EDP F0D72320 BCD 1EFTM00 ENTER FLOATING TRAP MODE F0D72330 OCT -076000120002 EFTM F0D72340 BCD 1EJECT0 LIST CONTROL PSEUDOOPERATION F0D72350 MZE 4$READ1,,5$EJCOP EJECT F0D72360 BCD 1ELD000 EXTENDED LOAD F0D72370 OCT +067071160000 ELD F0D72380 BCD 1EMP000 EXTENDED MULTIPLY F0D72390 OCT +067371160000 EMP F0D72400 BCD 1EMTM00 ENTER MULTIPLE TAG MODE $F0D72401 OCT -076000120016 EMTM $F0D72402 BCD 1ENB000 ENABLE FROM STORAGE F0D72410 OCT +056471120000 ENB F0D72420 BCD 1END000 ASSEMBLER INFORMATION PSEUDOOPERATION F0D72430 PON 4$ENDOP,,5$ENDOP END F0D72440 BCD 1ENDFIL UPDATE INFORMATION PSEUDOOPERATION F0D72450 MON 4$ENFOP,,5$TTL03+1 ENDFIL F0D72460 BCD 1ENDUP0 UPDATE INFORMATION PSEUDOOPERATION F0D72470 MON 4$ENPOP,,5$TTL03+1 ENDUP F0D72480 BCD 1ENK000 ENTER KEYS F0D72490 OCT +076000120004 ENK F0D72500 BCD 1ENTRY0 PROGRAM LINKING PSEUDOOPERATION F0D72510 MZE 4$ENTOP,,5$ENTOP ENTRY F0D72520 BCD 1EQU000 SYMBOL DEFINING PSEUDOOPERATION F0D72530 PZE 4$SYNOP,,5$MAXOP EQU F0D72540 BCD 1ERA000 EXCLUSIVE OR TO ACCUMULATOR F0D72550 OCT +032271120000 ERA F0D72560 BCD 1ESB000 EXTENDED SUBTRACT F0D72570 OCT -067171160000 ESB F0D72580 BCD 1ESM000 ENTER SIGNIFICANCE MODE F0D72590 OCT -076100120140 ESM F0D72600 BCD 1ESNT00 ENTER STORAGE NULLIFICATION MODE AND TRANSFER F0D72610 OCT -002171120000 ESNT F0D72620 BCD 1EST000 EXTENDED STORE F0D72630 OCT -067371160000 EST F0D72640 BCD 1ESTM00 ENTER SELECT TRAP MODE F0D72650 OCT -076000120005 ESTM F0D72660 BCD 1ETM000 ENTER TRAPPING MODE F0D72670 OCT +076000160007 ETM F0D72680 BCD 1ETT000 END OF TAPE TEST F0D72690 OCT -076000140011 ETT F0D72700 BCD 1ETTA00 END OF TAPE TEST, CHANNEL A F0D72710 OCT -076000121000 ETTA F0D72720 BCD 1ETTB00 END OF TAPE TEST, CHANNEL B F0D72730 OCT -076000122000 ETTB F0D72740 BCD 1ETTC00 END OF TAPE TEST, CHANNEL C F0D72750 OCT -076000123000 ETTC F0D72760 BCD 1ETTD00 END OF TAPE TEST, CHANNEL D F0D72770 OCT -076000124000 ETTD F0D72780 BCD 1ETTE00 END OF TAPE TEST, CHANNEL E F0D72790 OCT -076000125000 ETTE F0D72800 BCD 1ETTF00 END OF TAPE TEST, CHANNEL F F0D72810 OCT -076000126000 ETTF F0D72820 BCD 1ETTG00 END OF TAPE TEST, CHANNEL G F0D72830 OCT -076000127000 ETTG F0D72840 BCD 1ETTH00 END OF TAPE TEST, CHANNEL H F0D72850 OCT -076000130000 ETTH F0D72860 BCD 1EUA000 EXTENDED UNNORMALIZED ADD F0D72870 OCT -067271160000 EUA F0D72880 BCI 1,EVEN00 STORAGE ALLOCATING PSUEDOOPERATION $F0D72881 PZE 4$EVNOP,,5$EVNOP EVEN $F0D72882 BCD 1EXTERN PROGRAM LINKING PSEUDOOPERATION F0D72890 MZE 4$EXTOP,,5$UNLOP+1 EXTERN F0D72900 BCD 1FAD000 FLOATING ADD F0D72910 OCT +030071160000 FAD F0D72920 BCD 1FAM000 FLOATING ADD MAGNITUDE F0D72930 OCT +030471120000 FAM F0D72940 BCD 1FDH000 FLOATING DIVIDE OR HALT F0D72950 OCT +024071160000 FDH F0D72960 BCD 1FDP000 FLOATING DIVIDE OR PROCEED F0D72970 OCT +024171160000 FDP F0D72980 BCD 1FIVE00 FIVE (PREFIX) F0D72990 OCT +500001120000 FIVE F0D73000 BCD 1FMP000 FLOATING MULTIPLY F0D73010 OCT +026071160000 FMP F0D73020 BCD 1FOR000 FOUR (PREFIX) F0D73030 OCT +400001160000 FOR F0D73040 BCD 1FOUR00 FOUR (PREFIX) F0D73050 OCT +400001120000 FOUR F0D73060 BCD 1FRN000 FLOATING ROUND