****************************** * ALGOL * * 910/920 60-4 * * 012016 * ****************************** AORG 1 WIM 2 OBJTY EQU 016000 ALGOL OBJECT CODE TYPER NLIT EQU 0176 NUMBER OF LITERALS STL EQU 67 NIMF EQU 16 NUMBER OF IMPLICIT FUNCTIONS LIMF EQU 20 LENGTH OF IMPLICIT DECS ZZA EQU 014000000 APOSTROPHE ZZD EQU 061000000 DIVIDE ZZI EQU 076000000 INVERSE DIVIDE ZZP EQU 020000000 PLUS ZZL EQU 035000000 LEFT BRACKET ZZR EQU 055000000 RIGHT BRACKET ZZSC EQU 056000000 SEMICOLON IMAGE RES 20 BUF DATA 050000 CONTROL WORD DATA 02100000 LOAD ADDR WORD RES 24 DATA 0,0,0,0,0,0,0,0 RAST RES 1 CHAR RES 1 LEN RES 1 NAME RES 2 CNT RES 1 OP RES 1 CC DATA 80 AORG 0100 TYY OPD 010000000 TYPW 1,1 MIW *0 TOPW 1 BRTW BRU $-1 BRR 0 SKMA OPD 010600000 SKMA SKM *0 MIN 0 BRR 0 SKGA OPD 011100000 SKGA SKG *0 MIN 0 BRR 0 SKNA OPD 011400000 SKNA SKN *0 MIN 0 BRR 0 CXA OPD 011700000 STX TT LDA TT BRR 0 STZ OPD 012200000 STZ CLR STA *0 BRR 0 SS DATA 0 COP OPD 012600000 COP LDA 0 STA RECUR LDA *0 BRM COA BRR RECUR RECUR DATA 0 CAX OPD 013400000 STA TT LDX TT BRR 0 CNA OPD 013700000 EOR =-1 ADD =1 BRR 0 XMA OPD 014200000 STA TT+1 LDA *0 STA TT LDA TT+1 XMA1 STA *0 LDA TT BRR 0 ADM OPD 015100000 STA TT ADD *0 BRU XMA1 SKE OPD 015400000 STB TT LDB =-1 SKM *0 BRU SKEA2 BRU SKEA1 SKEA OPD 016100000 STB TT LDB =-1 SKM *0 SKEA1 MIN 0 SKEA2 LDB TT BRR 0 SKR OPD 016700000 MDE OPD 06000000 MDE *0 NOP FOR 920 TESTING SKN *0 BRR 0 MIN 0 BRR 0 CLA OPD 07600175 CLB OPD 07500175 DATA 0 ERR OPD 017600000 STX ERRX LDX 0 STX RECUR TYY =052000000 LDA 0,IX2 LSH 18 STA ERRT TYY ERRT TYY =054000000 LDA CC STA ERRT STZ CC BRM GETC TYY CHAR MIN CC SKR ERRT BRU $-4 SKR CC LDX ERRX BRR RECUR ERRT RES 1 ERRX RES 1 TT RES 2 GETC PZE LDA CC RSH 2 CAX LDB IMAGE,IX2 LDA CC SKA =2 LSH 12 LDA CC SKA =1 LSH 6 XAB ETR =077000000 SKEA =074000000 LDA =035000000 SKEA =034000000 LDA =055000000 SKEA =060000000 LDA =012000000 STA CHAR BRR GETC * GETS NEXT CHAR FROM INPUT SOURCE FETCH SKN STOPSW BRU ENDPO MIN CC LDA CC SKG HICOL MAXIMUM SIGNIFICANT CHARACTERS BRU FETCH1 FETCHR BRM CARD CLR STA SS STA CC FETCH1 BRM GETC SKN KSW BRU FETCH5 SKEA =012000000 BRU FETCH2 BPT 3 BRU $+3 BRU FETCH3 TYY =012000000 SKR SS BRU $-2 TYY CHAR FETCH2 MIN SS FETCH3 ABC LDA =4 SKGA TMIN BRU FETCH4 ERR 'K' MINOR SYNTAX OVERFLOW FETCH6 STZ KSW STZ NOCOD BRU FETCH FETCH4 LDA =0 LSH 6 LD INDEX LDB A8 LD BASE PZE CVERT,IX2 BRM LDCON STA T SKEA =BOUND STA STOPSW LDA TMIN LDB A4 BRM LDSNG SKE =APOST2 BRU PREC2 LDA T SKE =APOST BRU SN25 BRU PREC1 FETCH5 SKE =ZZSC BRU FETCH LDA =-1 STA KSW STZ TMIN STZ RMIN BRU SYN2 KSW DATA -1 PREC2 SKE =APOST BRU PREC3 LDA TMIN SUB =1 LDB A4 BRM LDSNG SKE =APOST2 BRU PREC5 LDA T SKEA =APOST BRU SN21 SKR TMIN SKR RMIN LDA =ZZA XMA CHAR STA T+1 BRM STRWD LDA T+1 STA CHAR BRM STRWD BRU FETCH PREC3 SKE =COMENT BRU PREC4 LDA T SKE =SEMCOL BRU FETCH BRU PREC1 PREC4 SKE =END BRU PREC5 LDA T SKEA =SEMCOL BRU PREC1 SKEA =APOST BRU PREC1 SKE =BOUND BRU FETCH BRU PREC1 PREC5 LDA T SKEA =BLANK BRU FETCH PREC1 LDB T BRU LW10 STOPSW DATA -1 * * LD CONSTRUCT FROM BASE AND INDEX TO ACC,RJE ZRSH LSH 8 LSH 16 XAB LDCON PZE STB T+22 LDX =040000 SKG =2 BRU $+3 SUB =3 BRX $-3 LDB *T+22 CAX EXU OPD 02300000 EXU ZRSH,IX2 ETR =0377 LDX MODE BRR LDCON * ST CONSTRUCT INTO BASE AND INDEX FROM ACC,RJE STCON PZE STA T+22 LDA P+8 RSH 1 CAX LDA T+22 STB T+22 LDB =07777 SKN T+22 LSH 12 STB T+22 EOR *P+9 ETR T+22 EOR *P+9 STA *P+9 LDX MODE BRR STCON LDSNG PZE STB T+22 RSH 1 CAX LDA *T+22 STB T+22 SKN T+22 RSH 12 ETR =0377 LDX MODE BRR LDSNG * COMPARES RULE IMPLIERS WITH CONSTRUCT STRING CPARE PZE LDX MODE LDA RMIN,IX2 ADD T+10 R+Q LD INDEX STA T+12 CP2 LDB A4,IX2 BRM LDSNG STA T+11 LDA T+1 ADD =020000000 XAB LDA T+9 X LD INDEX BRM LDCON SKE T+11 BRR CPARE MIN T+9 EQ MIN T+12 LDA T+12 SKR T+13 BRU CP2 CP1 MIN CPARE BRR CPARE * INSERTS IMPLICAND STRING INTO CONSTRUCT STRING MASAGE PZE SUB =1 STA T+2 NO. IMPLAND CONSTR -1 IS CNTR SUB P+1 ADD P+2 STA DELTA P5-P2+P3-1 SKN T+2 BRU MS6 LDA =-1 ADM RAST BRU MS5 MS6 LDA DELTA SKE =0 BRU MS2 MS3 LDA P+2 STA P+8 ST INDEX LDA A4,IX2 STA P+9 ST BASE MS1 LDA P+5 LDB P+3 LD BASE BRM LDCON BRM STCON MIN P+5 MIN T+4 MIN P+8 SKR T+2 BRU MS1 MS5 LDA DELTA ADD TMIN,IX2 STA TMIN,IX2 BRR MASAGE MS2 LDA P+1 SKEA P BRU MS3 P1 EQ P2 ADD =1 STA T+4 LD INDEX ADD DELTA STA P+8 ST INDEX LDA P SUB T+4 STA T+5 CNTR P1-(P2+1) LDB A4,IX2 STB P+9 MS4 LDB P+9 LDA T+4 BRM LDSNG BRM STCON MIN T+4 MIN P+8 SKR T+5 BRU MS4 BRU MS3 * FINDS MATE DEF WITHIN A RULE RULER LDA T+1 IMPLY DICT WD ETR =07777 STA T+1 LDX =-3 LDB *T+1 RL1 CLA LSH 2 STA T+9,IX2 F,G,H ARE T+6,7,8 RESPECT BRX RL1 LDA =2 STA T+9 LDA T+7 SKG =0 BRU RL2 G EQ 0 CLR G GT 0 SUB T+7 STA T+10 Q ADD =1 CNA STA T+13 BRM CPARE BRU RL3 RL2 LDA T+6 SUB T+7 SKEA =0 BRU RL4 F EQ G SUB =1 STA T+13 LDA =1 STA T+10 Q BRM CPARE BRU RL3 NO GOOD RL4 LDX MODE LDA TMIN,IX2 T STA P LDA RMIN,IX2 ADD T+6 SUB T+7 STA P+1 R+F-G SUB T+6 STA P+2 R-G LDA T+6 ADD =2 STA P+5 LDA T+1 ADD A3 STA P+3 LDA A1,IX2 STA P+4 LDA T+8 BRM MASAGE LDA RMIN,IX2 SUB T+7 STA RMIN,IX2 R=R-G RL5 LDA *T+1 RSH 8 ETR =01777 ADD SEM,IX2 STA T+1 CLR LDA =-1 BRU *T+1 RCVRY PT RL3 LDA T+6 ADD T+8 MIN T+1 RL6 MIN T+1 SUB =3 SKG =1 BRU RULER+3 BRU RL6 * CORRESPONDENCE BETWEEN PRIMITIVES AND CONSTRUCTS CON FORM 8,8,8 CVERT CON DGT,DGT,DGT CON DGT,DGT,DGT CON DGT,DGT,DGT CON DGT,BLANK,EQUAL CON APOST,COLON,RPT CON ILLEG,AOP,LTR CON LTR,LTR,LTR CON LTR,LTR,LTR CON LTR,LTR,BLANK CON PT,ILLEG,LPAREN CON LPT,BOUND,AOP CON LTR,LTR,LTR CON LTR,LTR,LTR CON LTR,LTR,LTR CON BLANK,ILLEG,AST CON RPAREN,SEMCOL,TEN CON ILLEG,MOP,LTR CON LTR,LTR,LTR CON LTR,LTR,LTR CON LTR,BLANK,COMMA CON ILLEG,ILLEG,MOP CON BLANK,0,0 M EQU $ SM LDX MODE LW102 EQU SM DEF LDA A1,IX2 STA D LDA RMIN,IX2 STA RAST LDB A4,IX2 BRM LDSNG SUB =3 SUB MODE SKG =-1 BRU DF8 SKGA SIZE,IX2 BRU DF8 CAX LDA *D BRU DF2 DF4 STA RAST LDB A4,IX2 BRM LDSNG CLB LSH 12 STA T+1 CONSTR IN B2-9 LDX =0 LDB =07770000 DF1 LDA *D SKM T+1 BRU $+2 BRU DF2 MIN D SKG =-1 BRU $+2 BRU DF1 LDX MODE DF8 MIN RMIN,IX2 LDA RMIN,IX2 SKG TMIN,IX2 BRU DEF R LE T DF7 BRU $+1,IX2 BRU FETCH LDX =0 STX MODE BRU DEF DF2 STA T+1 IMPLY DICT WD RSH 21 ETR =3 ADD A2 STA $+2 LDX MODE BRU DF6 BRU DF3 BRU DF5 1 - IMPLAND ADDR BRU RULER 2 - RULE LDA TMIN,IX2 3 - RULEF SKG RMIN,IX2 BRU DF7 BRU RULER DF3 LDA T+1 ETR =07777 STA D LDA RAST SUB =1 BRU DF4 DF5 LDA TMIN,IX2 STA P LDA RMIN,IX2 STA P+1 LDA RAST STA P+2 LDA T+1 ETR =07777 STA T+1 STA P+3 LDA A1,IX2 STA P+4 LDB *P+3 LDA =020000000 ADM P+3 LDA =2 STA P+5 LDA =0 LSH 6 BRM MASAGE LDA RAST STA RMIN,IX2 BRU RL5 SM1 LDA =2 STA TYPES BRU SM SM2 LDA =3 BRU SM1+1 SM3 LDA =1 BRU SM1+1 SM17 LDA =01600 OPARY STA *SK BRU SM SM64 STZ NDIM SKN STYPE MIN NDIM LDA =1 STA TOT BRU SM SM68 CLR STA DECST STA STYPE STA NDIM LDA =1 STA TOT BRU SM SM133 LDA =8 BRU R2D2+1 SM134 LDA =9 BRU R2D2+1 SM135 LDA *BCTAB RSH 9 ETR =0777 CAX LDA BASEA-1,IX2 LDB =00600000 SKMA =0 BRU SM135A ETR =077777 ADD =060100000 STA WORDS ABC BRM MOVE SM135A MIN NDB6 BRU ENDBLK SM22 STZ PARA BRU SM SM117 CLR STA STYPE BRU SM1+1 SM137 LDA *SK SKE CW+14 - CW BRU $+4 LDA CW+28 STA *SK BRU SM SKNA NOCOD SKR SK BRU SM R1D1 ADD RMIN+1 LDB A4+1 BRM LDSNG CLB SKEA =BLKHD STB TEMPT BRU SM R1D2 STB DECSW BRU SM SIGN DATA 0 FRACP PZE LDA NUMB STA FRAC LDA ND STA EXP BRR FRACP R2D2 LDA =1 STA KIND BRU SM R2D4 STA DECST LDA TYPES STA SWIND R2D5 STB NENT LDA =2 R2D5A STA KIND BRM DUP LDA KIND BRM ADST BRU SM R2D6A MIN NENT BRU R2D5+1 R2D6 LDA =3 BRU R2D2+1 R2D8 STB TYPES R2D7 STZ LA LDA =5 BRU R2D5A XNAM PZE STB T+10 LDB =060606060 STB BUF+2 LDB =BUF+1 BRM MOVNAM LDA =010450000 STA BUF LDA T+10 ETR =077777 ADD =020100000 BRR XNAM R2D9A LDA =4 BRM ADST LDA *A15B LDB BASEA,IX2 BRM XNAM ADD =020000000 STA BUF+3 BRM SEND BRU R2D9B R2D9 LDA MAD STA LA LDA =4 BRM ADST R2D9B LDA =-1 STA DECSW STA PROCSW STA NENT CLR LDA =3 SUB TYPES LSH 21 ADD =04100000 STA WORDS CLR BRM MOVE BRU BEGBLK+1 R2D10 CLR STA NENT ADD =WORDS STA T+20 BRM BLKAD ADD =020000000 STA *T+20 LDA MAD ADD NENT STA LA LDA =1 STA PARA STA TYPES MIN TYPES BRM ADST MIN NDAD BRU SM R2D11 LDA NENT ADD =1 BRU R2D10+1 R2D12 BRM STSCH SKA =040000000 BRU R2D12A LDA =01000000 ADD BASEA,IX2 STA BASEA,IX2 ETR =077777 SUB MAD CAX LDA =020000000 ADM WORDS,IX2 BRU SM R2D12A ERR 'C' VALUE BUT NO PARAMETER BRU SM R2D1 LDA =1 STA KIND R2D14 BRM STSCH SKA =040000000 BRU R2D12A CLR LDA KIND LSH 4 ADD TYPES LSH 16 STA T+21 LDA BASEA,IX2 ETR =03177777 ADD T+21 STA BASEA,IX2 LDB =077000000 SKMA =012000000 KIND=ARIDT,PARA=CBV MIN NDAD ETR =077777 SUB MAD CAX CLR LDA =3 SUB TYPES LSH 4 ADD KIND LSH 15 ADM WORDS,IX2 BRU SM R4D1 STB TYPES R4D2 LDA =4 BRU R2D2+1 R4D4 STB TYPES BRU SM R5D1 LDA =2 STA TYPES R5D3 LDA =2 BRU R2D2+1 R5D2 STA STYPE BRU SM R5D5 STA STYPE LDA =2 STA TYPES BRU SM R5D6 LDA =2 STA TYPES R5D4 MIN NDIM BRU SM R7D2 STA STYPE BRU VAR R7D4 LDA =9 BRU MODB R11D14 LDA =11 BRU MODB R26D4 LDA CW LBRACK STA *SK LDA =13 BRU MODB R8D2 LDB CW+37 LDA *SJ SKEA IO BRU R8D2A COP BCJM0 LDB CW+30 PROC OP R8D2A STB *SK LDB RAND SKNA NEST STB INDEX MIN NEST BRU SM NEST DATA -1 INDEX DATA 0 R10D2 LDA SJ SUB A12 STA PTR BRU SM SYND ERR 'D' 'DO' SYNTAX ERROR BRU SYN1 SYNS ERR 'E' STATEMENT SYNTAX ERROR BRU SYN1 SYN ERR 'M' SEMICOLON SYNTAX ERROR SYN1 SKR RMIN+1 SYN2 LDA RMIN+1 STA TMIN+1 LDB A4+1 BRM LDSNG SKGA =SPECAL BRU SYN1 LDA A12 ADD =7 STA SJ LDA A11 STA SK STZ NOCOD BRU SM R29D1 STZ RSULT BRU SM R39D1 STA SCSW R39D2 BRU ENDPRG R40D1 SKNA NOCOD SKR SJ BRU SM * PROC CALL CODE GENERATOR OPPROC BRM SAVE COP PJM0 LDA *SJ LDB =074000000 SKMA =020000000 BRU OPPR3 SKM =024000000 OPPR2 SKR SJ OPPR3 LDA OP SKE CW+12 RPAREN OP BRU TSEX LDA *SJ SKE IO COP ECJM0 LDB INDEX LDA =-1 ADM NEST SKNA NEST STB RAND ADM SK LDA *SJ LDB =00600000 SKMA =0 BRU OPPR1 BRM RST BRU TSEX OPPR1 SKR SJ BRU TSEX OPIO BRM SAVE COP IOJM0 BRU OPPR2 * STATIC ARRAY DECLARATION OPERATOR OPARY MIN NDIM LDX NDIM LDA NUMB STA WORDS,IX2 LDA OP SKEA CW+27 BRU TSEX LDA WORDS-1,IX2 SKGA WORDS,IX2 ERR 'F' ILLEGAL ARRAY BOUND LDA WORDS-1,IX2 SUB WORDS,IX2 SUB =1 CAX CLR ADD TOT BRX $-1 STA TOT LDA OP SKE CW+12 BRU TSEX CLR LDA SWIND HAS TYPES SKE =1 BRU OPAR6 XMA TOT BOOLEAN OPAR7 SUB =24 SKG =0 BRU OPAR2 MIN TOT BRU OPAR7 OPAR6 SKE =2 BRU OPAR2 OPAR1 LDA TOT LSH 1 OPAR3 STA TOT OPAR2 LDA NABADD SUB NENT SUB =1 CAX LDA BASEA,IX2 ETR =077700000 ADD MAD STA BASEA,IX2 CLR LDA =3 SUB SWIND LSH 5 ADD NDIM LSH 14 ETR =077700000 SKN STYPE BRU OPAR4 ADD MAD ADD =1 STA WORDS LDA NDIM LDB =040000000 BRM MOVE BRM CODOUT LDA TOT ADM MAD OPAR5 SKR NENT BRU OPAR2 SKR SK BRU TSEX OPAR4 ADD NDAD ADD =010000000 STA WORDS BRM BLKAD STA WORDS+1 LDA TOT ADM NDAD LDA NDIM LDB =020000000 BRM MOVE BRU OPAR5 TOT DATA 1 DUP PZE LDA =-1 BRM STSCH SKE =-1 ERR 'G' DUPLICATE USE OF IDENTIFIER BRR DUP * CHANGES CONSTRUCT FROM KIND -LAST DEF OF IDT RULE MODA CLR BRM STSCH SKA =040000000 BRU LABREF STA RAND LDA BASEA,IX2 LDB =074000000 SKMA =024000000 XPRIDT BRU MODA2 SKM =034000000 BRU MODA1 LDA RAND ADD =1 BRU LBRF1 MODA2 ETR =077700000 ADD =BASEA ADD RAND MODA1 SKNA NOCOD MIN SJ STA *SJ SKA =01000000 BRM FFDZ LDA *SJ SKA =020000000 PRIDT BRU MODA4 MODA5 LDX RAND CLR LDB BASEA,IX2 LSH 4 MODA3 CAX LDB TAB1,IX2 LDX MODE LDA RMIN+1 BRU LW14+1 MODA4 LDA TMIN+1 LDB A4+1 BRM LDSNG SKEA =ASSIGN BRU MODA5 BRM FFDZ LDA TMIN LDB A4 BRM LDSNG SKEA =LPAREN BRU MODA5 COP BCJM0 COP ECJM0 LDA *SJ SKA =00600000 BRU MODA6 SKNA NOCOD SKR SJ BRU MODA5 MODA6 BRM RST BRU MODA5 * CHANGES CONSTRUCT FROM TYPE MODB LDX RAND LDB BASEA,IX2 STA T+1 LSH 7 GET MSB OF TYPE ETR =1 ADD T+1 BRU MODA3 * ENTERS VARIABLES INTO S-T,BUILDS DESCRIPTORS VAR LDA MAD STA LA BRM DUP LDA =1 SIMP VAR IDT BRM ADST CLR SKN STYPE BRU VAR4 NON-OWN LDX TYPES BRU $,IX2 BRU VAR1 BOOLEAN BRU VAR2 REAL LDB =060000000 INTEGER VAR3 STB WORDS CLB BRM MOVE BRU SM VAR1 LDB =010000000 BRU VAR3 VAR2 ADD =1 BRU VAR3 VAR4 LDA =7 SUB TYPES LSH 19 ADD NDAD STA WORDS MIN NDAD LDB =06000000 SKMA =02000000 MIN NDAD BRM BLKAD LDB =020000000 STA WORDS+1 LDA =1 BRU VAR3+2 * GETS ADDRESS OF BB COMMAND FOR DESCRIPTORS BLKAD PZE LDA BLKPAR SUB =5 STA $+1 LDA ETR =077777 BRR BLKAD N EQU $ * LABEL DEFINITION POINTS LABDEF BRM ADBLNK SKN PROCSW BRU LBDF3 LDA NENT STA PROCSW LDB =-1 BRM MOVE LBDF3 LDA =-1 BRM STSCH SRCH THIS BLOCK ONLY SKG =-1 BRU LBDF1 LDA BASEA,IX2 ETR =074000000 SKE =034000000 UNCLAB ERR 'G' DUPLICATE USE OF IDENTIFIER LDA MAD LA=MAD ADD =040000000 KIND=LABEL XMA BASEA,IX2 BRM INTOUT LBDF2 LDB =LBLSL BRU LW9 LBDF1 LDA MAD STA LA LDA =8 BRM ADST BRU LBDF2 LABREF STZ LA LDA =7 BRM ADST LDA NABADD LBRF1 ADD =BASEA-1+034000000 SKNA NOCOD MIN SJ STA *SJ BRU SM SWIT LDA MAD STA POSADD STZ LA STZ NENT LDA =0400 STA *SK LDA =-1 STA DECSW LDA NABADD STA SWIND BRM DUP LDA =3 BRM ADST BRU SM * PUTS NEW ENTRY INTO SYMBOL TABLE ADST PZE CLB LSH 2 ADD PARA LSH 2 ADD TYPES LSH 1 SKNA STYPE ADD =1 LSH 15 ADD LA ADS1 LDX NABADD STA BASEA,IX2 A PART LDA LEN LSH 15 ADD A16 BASEC-1 ADD NCADD STA *A15B B PART MIN NABADD ADD =1 STA T+17 LDB T+17 ETR =077700000 ADD =NAME-1 BRM MOVNAM LDA LEN RSH 2 ADD =1 ADM NCADD LDA NABADD SKG A15L BRR ADST ERR 'H' SYMBOL TABLE OVERFLOW BRU WAIT * NAME MOVER: A=LEN,'FROM' ADDR.-1; B='TO' ADDR. MOVNAM PZE STA T+17 STB T+18 RSH 17 STA T+19 MVN1 MIN T+17 LDA *T+17 STA *T+18 MIN T+18 SKR T+19 BRU MVN1 BRR MOVNAM * S-T SEARCH A=0 IS ALL ON INPUT STSCH PZE CLB SKA =-1 LDB *BCTAB THIS BLOCK ONLY LSH 15 ETR =00000777 STA T END ENTRY LDA NABADD SUB =1 STS1 CAX ADD =1 SKG T BRU STS4 DONE - NON-EXIST CLR LDB *A15B LSH 9 SKE LEN BRU STS3 RSH 2 STA T+1 LDA *A15B ETR =077777 ADD =1 STA T+23 LDA A10 SKE NAME STA STS2+1 STS2 LDA *T+23 SKE NAME BRU STS3 MIN T+23 MIN STS2+1 SKR T+1 BRU STS2 CXA BRR STSCH EXIT WITH ENTRY NO. STS3 CXA SUB =1 BRU STS1 STS4 LDA =-1 EXIT WITH NON-EXIST FLAG BRR STSCH * BLOCK PUSH-DOWN MAINTENANCE BEGBLK COP BBNA CLR STA WORDS STA WORDS+1 STA WORDS+2 LDA =2 BRM MOVE MIN BCTAB CLR ADD NABADD NEXT AVAIL ABADD LSH 9 ADD NCADD NEXT AVAIL CADD STA *BCTAB MIN BLKPAR LDA MAD ADD =020100000 SUB =4 LDB =2 LDX =-2 STA *BLKPAR BEGB1 ADD =1 XAB ADM BLKPAR XAB STA *BLKPAR BRX BEGB1 MIN BLKPAR MIN MTEMP MIN DNSP LDA NDAD STA *DNSP STZ *MTEMP CLEAR MAX TEMP USAGE, THIS BLOCK STZ NDAD BRU SM * PERFORM END-OF-BLOCK OPERATIONS ENDBLK LDA =040000000 ADD NDAD STA *BLKPAR LDA *DNSP STA NDAD LDA BLKPAR SUB =2 STA T+22 LDA MAD ADD =040100000 STA *T+22 LDA *MTEMP LSH 16 ETR =077600000 NDB6 ADD EBNA BRM COA SKR MTEMP BRM CODOUT LDA BLKPAR ETR =077777 ADD =02677772 LDB =040750000 STB BUF LDB =BUF+1 BRM MOVNAM BRM SEND LDA =-6 ADM BLKPAR LDA NABADD ADD A15 LDA BASEA,IX2 STA T+15 ADD A15L STA T+16 LDA *BCTAB RSH 9 ETR =0777 XMA NABADD SUB NABADD CNA CAX LDA *BCTAB ETR =0777 STA NCADD SKR BCTAB SKR DNSP NDB2 LDB =074000000 LDA *T+15 SKMA =034000000 UNENCLAB BRU NDB3 SKM =024000000 XPRIDT BRU NDB5 LDB =077777 SKMA =0 BRU NDB5 LDA *T+16 LDB *T+15 BRM XNAM STA BUF+3 BRM SEND NDB5 BRX NDB2 LDA NDB7 STA NDB6 BRU SM NDB7 ADD EBNA NDB3 LDA *T+16 LDB =NAME BRM MOVNAM LDA *T+16 RSH 15 STA LEN STX T+20 LDA =-1 BRM STSCH SKA =040000000 BRU NDB4 NONE FOUND LDA BASEA,IX2 LDB =074000000 SKM =040000000 LABEL BRU NDB4 ETR =077777 STA T+19 BRM CODOUT LDX T+20 LDB *T+15 STB T+18 LDB =NDB8-1 STB INTOUT LDA T+19 BRU INT1 NDB4 LDA =NDB8-1 STA ADST LDX T+20 CLR LDA *T+15 BRU ADS1 NDB8 LDX T+20 BRU NDB5 * SWITCH DECLARATION OPERATOR OPSW MIN NENT LDA NENT ADD =2 CAX LDA POSADD STA WORDS,IX2 BRM GOSW LDA OP SKE CW+8 SEMCOL BRU OPSW1 LDA MAD ADD =0100001 DESCR 0, T=0,N=1,ADDR=MAD STA WORDS LDA =1 LOB STA WORDS+1 LDA NENT UPB STA WORDS+2 LDX SWIND LDA MAD ADM BASEA,IX2 LDA NENT ADD =2 LDB =047777777 RELOC INFO BRM MOVE SKR SK STZ DECSW BRU TSEX OPSW1 LDA MAD STA POSADD BRU TSEX OPGO BRM GOSW SKR SK BRU TS2 * GOTO,SWITCH COMMON GENERATION GOSW PZE CLR LDA ITESW STB ITESW SKA =-1 BRR GOSW LDA *SJ ETR =074000000 SKEA =040000000 LABEL BRU GOSW1 SKEA =034000000 UNCLAB BRU GOSW1 BRM GOSS GOSW2 ADM SJ BRR GOSW GOSW1 COP UJJM0 LDA =-1 BRU GOSW2 * ELSE OPERATOR OPELS LDA *SJ SKEA SJ BRU OPELS7 ETR =074000000 SKEA =060000000 FR BRU OPELS5 SKEA =040000000 BRU OPELS3 LABEL SKEA =034000000 BRU OPELS3 UNENCLAB LDA SJ SUB =1 STA $+1 LDA ETR =074000000 SKEA =014000000 BRU OPELS1 SWIDT LDA RSULT SKEA =0 COP LDJM0 LDA =-1 BRM RECFR LDB *SJ SKR SJ STB *SJ BRM RST BRU OPELS2 OPELS1 BRM GOSS SJ-1 = SWIDT OPELS4 LDA =-1 ADD SK STA $+1 LDA SKEA CW+6 SW OPERATOR BRU $+3 SKE CW+7 GOTO OPERATOR BRU $+3 LDA =1 STA ITESW OPELS6 SKR SJ OPELS2 SKR SK BRU TS2 OPELS3 COP UJJM0 BRU OPELS4 OPELS5 CLR BRM RECFR BRU OPELS6 OPELS7 MIN SJ BRU OPELS4 * OUTPUTS GO SJ-1,SSSJ-0 GOSS PZE BRM SAVE COP UJJM1 COP SSJM0 LDA =-1 ADM SJ BRR GOSS * THEN OPERATOR OPTH LDA *SJ ETR =074000000 SKEA =060000000 BRU OPTH3 FR SKEA =040000000 BRU OPTH8 LABEL SKEA =034000000 BRU OPTH8 UNENCLAB LDA SJ SUB =1 STA $+1 LDA ETR =074000000 SKEA =014000000 BRU OPTH6 SWIDT BRM FINDR SKA =040000000 BRU OPTH1 NO RESULT STZ RSULT BRU OPTH2 OPTH1 COP LDJM0 OPTH2 CLR BRM SETFR SJ-0 COP UJJM0 LDA =-1 BRM RECFR SJ-1 LDA SJ SUB =1 STA T+18 LDA *SJ STA *T+18 OPTH7 LDA OP SKE CW+5 ELSE (OP) OPERATOR BRU OPTH5 LDA CW+4 ELSE (STACK) OPERATOR STA *SK LDA =-1 OPTH4 ADM SJ BRU TSEX OPTH3 LDA OP SKE CW+5 ELSE BRU $+3 MIN SJ BRU OPTH2 CLR BRM RECFR OPTH5 SKR SK SKR SJ BRU TS2 OPTH6 BRM GOSS SJ-1 = SWIDT OPTH9 BRM RECFR SJ-1 SKR SJ BRU OPTH7 OPTH8 COP UJJM0 LDA =-1 BRU OPTH9 * IF OPERATOR OPIF LDA RSULT SKEA =0 COP LDJM0 CLR STA RSULT BRM SETFR COP JFJM0 LDA CW+2 THEN STA *SK BRU TSEX * ASSIGNMENT OPERATOR CODE GENERATOR OPASS LDA RSULT SKEA =0 COP LDJM0 SKR SJ LDA *SJ LDB =074000000 SKM =020000000 INT PRIDT BRU OPAS3 ETR =077777 ADD =060400000 STA WORDS ABC BRM MOVE BRU $+2 OPAS3 COP STJM0 SKR SK LDA *SK SKE CW+1 ASSIGN BRU OPAS1 LDA SJ SUB A12 LDA SJ OPAS2 STA RSULT BRU TS2 OPAS1 SKE CW+31 PHI OP SKR SJ CLR BRU OPAS2 * GETS INCREMENT OF RESULT,IF ANY,RELATIVE TO NORMAL SJ FINDR PZE LDA SJ SUB RSULT SKEA SJ CLR SUB A12 LDA SJ BRR FINDR SAVE PZE LDA RSULT SKGA =0 COP STT BRR SAVE XCH PZE LDA SJ ADD =-1 STA T+18 LDA *T+18 XMA *SJ STA *T+18 BRR XCH * FOR STMT CODE GENERATOR OPFOR LDA OP SKE CW+33 WHILE OP BRU OPF1 LDA =1 OPF3 STA TELE BRU TSEX OPF1 SKE CW+34 UNTIL OP BRU OPF2 BRM SAVE BRU TSEX OPF2 SKE CW+35 STEP OP BRU OPF4 LDA MAD STA BR LDA =2 BRU OPF3 OPF4 LDA TELE SKE =1 WH BRU OPF5 BRM SAVE COP WHJM0 BRU OPF6 OPF5 SKE =2 STEP-UNTIL BRU OPF13 BRM SAVE COP SUJM0 SKR SJ COP PZJMO OPF6 SKN FEFSW BRU OPF7 SKR SJ BRM XCH BRU OPF8 OPF7 LDA =-1 STA FEFSW LDA =0 BRM SETFR OPF8 LDA TELE SKEA =0 BRU OPF9 COP JPJM0 LDA BR ADD =04000000 STA WORDS CLR LDB =-1 BRM MOVE BRU OPF11 OPF9 COP SPLJM0 COP DEALNA OPF11 STZ TELE LDA OP SKE CW+36 DO BRU OPF12 LDA =-1 BRM SETFR COP JPJM1 LDA =0 BRM RECFR SKR SJ LDA CW+32 PHI R OP OPF14 STA *SK BRU TSEX OPF12 COP ALJM2 BRM XCH LDA MAD STA BR MIN SK LDA CW+1 ASSIGN BRU OPF14 OPF13 MIN SJ BRU OPF6 OPFRR SKN NOCOD BRU TS2 LDA =-1 BRM RECFR COP EFBNA LDA =0 BRM RECFR LDA =-2 ADM SJ SKR SK BRU TS2 * UNARY OPERATOR CODE GENERATOR OPUN SKN DECST BRU OPU4 CLR NEG ARRAY BOUND SUB NUMB STA NUMB BRU OPU3 OPU4 BRM FINDR SKA =040000000 BRU OPU1 NO RESULT LEFT SKG =0 BRU OPU2 COP STT OPU1 COP LDNJM0 BRM RST OPU3 SKR SK BRU TS2 OPU2 COP NEG BRU OPU3 * BINARY OPERATOR CODE GENERATOR OPBIN LDA *SK SKE CW+26 ** BRU OPB6 BRM SAVE LDA =XPON+024400000 MIN SJ STA *SJ COP BCJM0 COP PJM2 COP PJM1 COP ECJM0 SKR SJ BRU OPB3 OPB6 BRM FINDR SKA =040000000 BRU OPB4 NO RESULT LEFT SKG =1 BRU OPB1 COP STT BRU OPB4 OPB1 SKG =0 BRU OPB2 OPB5 COP OPJM0 BRU OPB3 OPB2 COP OPIJM1 OPB3 SKR SJ BRM RST SKR SK BRU TS2 OPB4 COP LDJM1 BRU OPB5 * CHECK NAME WITH LEXICON - INT FCNS LWCHK LDA A7 STA T+13 STZ CNT LW3 CAX LDB *T+13 LSH 4 STA T+15 RSH 2 ADD =1 STA T+14 NO. NAME WDS LDA T+15 LEX WD LEN SKE LEN BRU LW2 LDA T+14 LW1 CAX LDA *T+13 SKE NAME-1,IX2 BRU LW4 CXA SUB =1 SKEA =0 BRU LW5 BRU LW1 LW2 SKGA LEN LW6 BRU LW16 NON-LEXICON IN QUOTES LW4 MIN CNT LDA =29 SKG CNT BRU LW6 LDA T+14 ADD =1 ADM T+13 CLR BRU LW3 LW5 CAX LDB *T+13 LSH 7 ETR =7 ADD A24 BRU LW7 STA LW7-1 CLA LSH 5 CAX LSH 12 ETR =07777 XAB BRU LW7 BRU LW8 BRU LW9 BRU LW10 BRU LW11 BRU LW12 TRUE BRU LW13 FALSE SKNA NOCOD MIN SJ CLR STA FEFSW BRM SETFR COP ALJM0 LDA MAD STA BR LDX =3 LDB =FOR BRU LW11 LW8 LDA OPTAB,IX2 STA OP STB T+13 BRM TS LW15 LDB T+13 LW9 LDX =1 STX MODE MIN TMIN,IX2 LW14 LDA TMIN,IX2 STA P+8 LDA A4,IX2 STA P+9 XAB BRM STCON SN BRU LW102 LW10 LDX =0 BRU LW9+1 LW11 LDA OPTAB,IX2 SKNA NOCOD MIN SK STA *SK BRU LW9 LW12 LDA =1 STB T+13 STA LA LDA =1 STA TYPES BRM SETK BRU LW9-1 LW13 LDA =0 BRU LW12+1 LW16 ERR 'J' NON-LEXICON IN QUOTES BRU FETCH6 ADNM PZE STX T+10 LDA LEN SKEA =7 BRR ADNM ADD =1 STA LEN RSH 2 CAX CLA LSH 2 ADD =ADNMT STA T+21 LDA CHAR CLB EXU *T+21 ADD NAME,IX2 ADN1 STA NAME,IX2 LDX MODE BRR ADNM ADNMT BRU ADN1 RCY 6 RCY 12 RCY 18 SN1 LDA =-1 STA LEN BRM ADNM BRU FETCH SN2 LDA =1 STA ND CLR LDB CHAR LSH 6 STA NUMB BRU FETCH SN3 LDB =APRI BRU LW9 SN4 LDB =IDT BRU LW9 SN5 LDA CW+8 LDB =SEMCOL BRU LW8+1 SN6 LDA CW+9 LDB =END BRU LW8+1 SN7 LDA CW+10 LDB =COMMA BRU LW8+1 SN8 LDA CW+11 LDB =LPAREN BRU LW11+1 SN9 LDA CW+12 LDB =RPAREN BRU LW8+1 SN12 LDB CW+13 LDA CHAR SKE =ZZP LDB CW+14 - CW XAB LDB =AOP BRU LW8+1 SN13 LDA CW+27 LDB =COLONE BRU LW8+1 SN14 LDB =ROPE BRU LW8+2 SN15 LDB CW+15 LDA CHAR SKEA =ZZD BRU SN15A LDB CW+16 \ CW SKE =ZZI LDB CW+17 * CW SN15A XAB LDB =MOPE BRU LW8+1 SN16 LDA CW+5 LDB =ELSE BRU LW8+1 SN27 BRM ADBLNK LDA =IDT MIN TMIN+1 LDB TMIN+1 STB P+8 LDB A4+1 STB P+9 BRM STCON SN27A LDA CW+1 LDB =ASSIGN BRU LW11+1 SN28 LDA CW+18 LDB =EQUIV BRU LW8+1 SN29 LDA CW+19 STA OP BRU LW102 SN30 LDA CW+20 BRU SN29+1 SN31 LDA CW+21 BRU SN29+1 SN32 LDA CW+22 BRU SN29+1 SN34 LDA CW+23 BRU SN29+1 SN35 LDA CW+25 LDB =IMPLIC BRU LW8+1 SN38 LDA CW+24 BRU SN29+1 SN39 LDA CW+26 LDB =EOP BRU LW8+1 SN24 BRM ADNM SN24B BRU FETCH SN25 BRM STRWD BRU FETCH SN24A LDA CHAR LDB =1 SKE =020000000 STB SIGN BRU LW102 SN26 MIN ND CLR LDB CHAR LSH 6 STA CHAR LDA NUMB LSH 2 ADD NUMB LSH 1 ADD CHAR STA NUMB BRU FETCH SN22 MIN TMIN+1 LDA TMIN+1 STA P+8 LDA A4+1 STA P+9 LDA =END BRM STCON LDA CW+9 END CW LDB =BOUND BRU LW8+1 SN40 BRM ADBLNK BRU SM ADBLNK PZE LDA LEN RSH 2 STA T CLA LSH 2 CAX LDA BLKTAB,IX2 LDX T ADM NAME,IX2 BRR ADBLNK BLKTAB DATA 0606060 DATA 06060 DATA 060 DATA 0 SN19 LDA MAD STA SAD COP BSNA LDA =ZZL LPAREN STA CHAR BRU SN1 SN21 STZ RMIN STZ TMIN LDA =ZZR RPAREN STA CHAR BRM ADNM LDA =SN21A STA STRWD SN21A BRU STRW1 LDA =044000000 ADD SAD SKNA NOCOD MIN SJ STA *SJ LDA SAD BRM INTOUT LDB =STRX BRU LW9 SAD DATA 0 R9D1 LDA NUMB STA INT BRU SM R9D2 BRM FRACP BRU SM R9D3 BRM FRACP BRU R9D41 R9D6 LDA =1 STA INT R9D4 LDA NUMB SKR SIGN CNA CLB LSH 12 ADM EXP R9D41 BRM NTSCH CLR STA INT STA FRAC STA EXP LDA =2 BRU R9D5A R9D5 SKNA DECST BRU SM LDA NUMB SKGA =077777 ERR 'L' INTEGER LITERAL GT 15 BITS STA LA LDA =3 R9D5A STA TYPES BRM SETK BRU SM * OUTPUTS CONSTANTS AND REF-DEFS ENDPO ERR 'A' ENDPRG LDA =NIMF NDPR1 SKEA NABADD BRU NDPR2 CAX LDA BASEA,IX2 SKA =04000000 BRU NDPR3 NDPR5 CXA ADD =1 BRU NDPR1 NDPR3 LDA *A15B STA T RSH 17 STA T+1 TYY =052000000 NDPR4 MIN T TYPW 1,4 MIW *T TOPW 1 BRTW BRU $-1 SKR T+1 BRU NDPR4 BRU NDPR5 NDPR2 BRM RELOUT LDX =-NIMF+1 LDA A15B SUB =-NIMF+1 STA T+16 NDPR6 LDA BASEA+NIMF-1,IX2 LDB =077777 SKMA =0 BRU NDPR7 XAB LDA *T+16 BRM XNAM STA BUF+3 BRM SEND NDPR7 BRX NDPR6 LDA =02000000 ADD MAD STA BUF+1 LDA =00100000 STA BUF+2 LDA =040000000 STA BUF+3 LDA =030250000 SKN SCSW ADD =00200000 STA BUF BRM SEND TYPW 1,4 MIW =052224645 TOPW 1 WAIT HLT BRU RESTRT $OLODE LDX =-7 EOM 03604 LDA NDPR9 STA 1 BRU 1 NDPR9 WIM 2 * SEARCHES NUMBER TABLE -ADD TO TABLE IF FIRST TIME NTSCH PZE SKN NOCOD BRR NTSCH STX T+7 LDA NN NTS6 ADD A19 NTS4 SKG A19 BRU NTS1 STA T+6 LDX =-3 NTS2 LDA EXP+1,IX2 SKE *T+6 BRU NTS3 BRX NTS2 NTS8 LDA T+6 ETR =077777 STA LA LDX T+7 BRR NTSCH NTS3 LDA T+6 SUB =4 BRU NTS4 NTS1 LDA NN SKGA =24 BRU NTS5 ADD =4 STA NN ADD A19 STA T+6 LDX =-3 NTS7 LDA EXP+1,IX2 STA *T+6 BRX NTS7 STZ *T+6 BRU NTS8 NTS5 LDA MAD ADD =040000017 MIN SJ STA *SJ COP UJJM0 BRM RELOUT LDA =-1 STA NN ADM SJ BRU NTS6 RELOUT PZE BRM CODOUT SKNA NN BRR RELOUT CLR LDA NN LSH 15 STA BUF ADD =060250000 XMA BUF LSH 2 ADD =NUMTAB-1 LDB =BUF+1 BRM MOVNAM BRM SEND LDA NN ADD =1 RSH 1 ADM MAD BRR RELOUT * BUILDS STACK WORD FOR A CONSTANT SETK PZE CLR LDA =0260 ADD TYPES LSH 16 ADD LA SKNA NOCOD MIN SJ STA *SJ BRR SETK * SAVE SIMP VAR,IF ANY -FDZ FOUND FFDZ PZE SKN NOCOD BRR FFDZ BRM SAVE LDA SJ SUB A12 LDA SJ FF1 SUB =1 STA T+6 SKG PTR BRR FFDZ CAX LDB =074000000 LDA SJ,IX2 SKM =04000000 BRU FF2 LDA T+6 STA RSULT CNA ADD SJ SUB A12 CLB LSH 10 ADD LDJM0 BRM COA COP STT FF2 LDA T+6 BRU FF1 * BUILD EXECUTION LANGUAGE WORD COA PZE SKN NOCOD BRR COA STA P+6 SKN PROCSW BRU CO15 LDA NENT LDB =-1 BRM MOVE LDA P+6 STA PROCSW STA DECSW CO15 ETR =077 SKA =-1 BRU CO1 LDA *SK OP-BIN BRU CO2 CO1 SKE =077 BRU CO2 LDA *SK OP-BIN INVERSE RSH 12 CO2 LSH 15 ETR =07700000 STA WORDS OP PART SET SKN DECSW SKNA *BCTAB BRU CO16 LDA BLKPAR SUB =4 STA T+10 LDA MAD ADD =040100000 STA *T+10 LDA =040000000 ADM *BCTAB CO16 LDA P+6 RSH 6 ETR =017 STX T+10 CAX BRU $+1,IX2 BRU CO3 LIT ADDR BRU CO4 STACK REF BRU CO5 TEMP CO3 CLR LDB P+6 LSH 9 CO6 ADM WORDS BRU CO21 CO22 ADM WORDS CO23 LDA *CO19 ETR =03000000 SKEA =0 BRU CO21 LDA =040000000 MRG WORDS STA WORDS CO21 CLA BRM MOVE LDX T+10 BRR COA CO5 LDX RSULT LDA TEMPT ADD =050000000 KIND=TEMP STA SJ,IX2 MIN TEMPT LDA TEMPT SKGA *MTEMP MAX TEMP USAGE IN BLOCK STA *MTEMP SUB =1 ADD =030000000 CLB STB RSULT BRU CO6 CO4 LDA P+6 RSH 10 ETR =017 CNA ADD SJ SKG A12 BRU CO77 STA $+1 CO19 LDA STACK WORD STA T+11 LDB =074000000 SKM =054000000 CONSTANT BRU CO7 LDB =00600000 SKM =00400000 BRU CO9 LDA =020000000 FLAG BIT=CONSTANT REF ADM WORDS LDA T+11 CO8 ETR =077777 STA T+11 LDA *T+11 CO18 ETR =077777 ADM WORDS CLB SKA =-1 LDB =040000000 LDA *T+11 ETR =077700000 ADD MAD STA *T+11 BRU CO23 CO7 SKMA =060000000 FR BRU CO17 SKMA =034000000 UNCLAB BRU CO8 SKMA =024000000 EXT PROC BRU CO8 SKMA =010000000 ARIDT BRU CO12 SKMA =014000000 SWIDT BRU CO12 SKMA =064000000 ADDRESS BRU CO14 SKM =050000000 BRU CO13 LDA =030000000 ADM WORDS CLB BRU CO11+3 CO13 SKM =04000000 BRU CO11+1 ETR =00100000 SKE =0 BRU $+3 CO12 LDA =040000000 NON-OWN BRU $+2 LDA =020000000 CO11 ADM WORDS LDB P+6 LSH 9 LDA T+11 ETR =077777 BRU CO22 CO9 SKM =00200000 BRU CO11+3 LDA =010000000 ADM WORDS BRU CO11+3 CO14 LDA =050000000 BRU CO11 CO17 LDB CO19 STB T+11 BRU CO18 CO77 STZ NOCOD BRU CO21+2 * SETS REFERENCE TO FORWARD REF SETFR PZE ADD SJ STA T+18 LDA =060000000 STA *T+18 BRR SETFR * SATISFIES DEFINITION OF FRWRD REF RECFR PZE ADD SJ STA T+18 LDA *T+18 BRM INTOUT BRR RECFR * MOVES CODE INTO OUTPUT BUFFER MOVE PZE SKN NOCOD BRR MOVE SKG =-1 BRR MOVE STB T+19 LDB A13 LDA WORDS STB MV1 STX T+17 STA T+18 NO. WDS TO GO -1 LDX NWDS MV1 LDA WORDS STA BUF+26,IX2 BPT 4 OBJT NOP BRM OBJTY OVERLAYS THIS MIN MAD MIN MV1 SKNA T+19 BRM RELO LDB T+19 LSH 1 STB T+19 BRX MV2 STX NWDS BRM CODOUT BUFFER FULL LDX =-24 MV2 SKR T+18 BRU MV1 STX NWDS ALL WDS OUT LDX T+17 BRR MOVE * OUTPUTS A REF-DEF INTOUT PZE STA T+18 BRM CODOUT LDA MAD INT1 ADD =040100000 STA BUF+2 LDA T+18 ETR =077777 ADD =020100000 STA BUF+1 LDA =040350000 STA BUF BRM SEND BRR INTOUT * BUILDS CW,LAW,FCHSM,MOVES LRW,BIN CARDS OUT CODOUT PZE CLR LDA =24 ADD NWDS SKG =0 BRR CODOUT STA T+2 NO. DATA WDS STX T+4 ADD =3 CAX TOT. WDS IN REC LSH 15 ADD =050000 STA BUF CW LDA =02100000 ADD MAD SUB T+2 STA BUF+1 LAW LDA BUF+26 STA BUF-1,IX2 POSITION LRW BRM SEND LDX T+4 BRR CODOUT * FORM FOLDED CHECKSUM,STORE IN RH OF BUF FCHK PZE LDA A22 EOR BUF STA FCHK1 LDA BUF RSH 15 ETR =037 CNA CAX LDA =07777 FCHK1 EOR BUF MIN FCHK1 BRX FCHK1 STA T+2 RSH 12 EOR T+2 ETR =07777 ADM BUF BRR FCHK * PAPER TAPE READ CARD PZE LDA SPACES LDX =-20 STA IMAGE+20,IX2 BRX $-1 BRTW BRU $-1 RPTW 1,4 LDX =-20 WIM IMAGE+20,IX2 BRTW BRX $-2 BETW BRU ERRB DISW BRR CARD **EXIT** ERRB ERR 'B' HLT BRU CARD+1 SPACES DATA 012121212 RES 5 HICOL DATA 79 READ RES 0 * PUNCH A BINARY CARD -40 WORDS ONLY PUNCH PZE LDA =-12 SKS 014046 SKIP IF PUNCH 1,CHANNEL 0 IS READY BRU $-1 PUNCH1 SKS 021000 SKIP IF CHANNEL 0 IS READY BRU $-1 EOM 003646 START PUNCH LDX =-40 MIW BUF+40,IX2 BRX $-1 EOM 014000 TERMINATE OUTPUT ADD =1 ROW COUNTER SKG =-1 SKIP IF 12TH ROW PUNCHED BRU PUNCH1 NEXT ROW STA BUF+26 CLR LD RELOC WD SKS 021000 BRU $-1 CLR LDX =-31 STA BUF+31,IX2 BRX $-1 BRR PUNCH RES 4 WRITE RES 0 SEND PZE SKN NOCOD BRR SEND STX T BRM FCHK BRM PUNCH LDA =-24 STA NWDS LDX T BRR SEND STRWD PZE BRM ADNM LDA LEN SKE =3 BRR STRWD STRW1 LDA NAME STA WORDS LDA =-1 STA LEN CLR BRM MOVE BRR STRWD * SET RELOC BIT =1 RELO PZE STX T+7 CXA CNA CAX CLR LDB =040000000 LSH 0,IX2 ADM BUF+26 LOAD RELOC WD. LDX T+7 BRR RELO * STACK CONTROL BASED ON PRECEDENCE TS PZE SKN NOCOD BRR TS TS2 LDA *SK ETR =037000000 STA T+15 LDA OP ETR =037000000 SKG T+15 BRU TS1 MIN SK LDA OP STA *SK TSEX BRR TS TS1 LDA *SK RSH 6 ETR =077 CAX BRU $+1,IX2 BRU OPBIN BRU OPUN BRU OPASS BRU OPBRK BRU OPSW BRU OPIF BRU OPTH BRU OPELS BRU OPGO BRU OPBEG BRU OPLPAR BRU OPFOR BRU OPPROC BRU OPFRR BRU OPARY BRU OPIO * SUBSCRIPT OPERATOR CODE GENERATOR OPBRK BRM SAVE LDA *SJ ETR =074000000 SKE =054000000 CONSTANT BRU OPBR5 OPBR6 LDA OP SKE CW+12 RPAREN BRU TSEX LDA =-1 ADD SJ OPBR2 STA T+1 LDA *T+1 ETR =074000000 SKE =010000000 BRU OPBR1 CLR LDA SJ SUB T+1 STA T+1 LSH 10 STA T+3 LDA PZJMO BRU $+2 OPBR4 LDA SSJM0 ADD T+3 BRM COA LDA =077776000 ADM T+3 SKN T+3 BRU OPBR4 CLR SUB T+1 ADM SJ LDA =064000000 ADDRESS ADD MAD SUB T+1 SUB =1 STA *SJ SKR SK BRU TSEX OPBR5 SKEA =050000000 TEMP BRU OPBR6 COP LDJM0 BRM RST COP STT BRU OPBR6 OPBR1 LDA T+1 SUB =1 BRU OPBR2 * BEGIN BLOCK AND COMP ST MARKER OPBEG LDA OP SKE CW+9 END OP BRU TSEX SKR SK LDA CW+8 SEMCOL STA OP LDA *SK SKE CW+32 PHI R BRU TSEX BRU OPFRR * LPAREN OPERATOR OPLPAR LDA OP SKE CW+12 RPAREN OP BRU TSEX SKR SK BRU TSEX RST PZE LDA SJ SUB A12 STA RSULT BRR RST RESTRT CLR LDX =-NZER STA ZERS+NZER,IX2 BRX $-1 STA BUF+26 LDA =-1 STA KSW STA STOPSW STA NEST STA NN STA NOCOD LDA =1 STA TOT STA RMIN STA RMIN+1 LDA A12 STA SJ LDA A11 STA SK LDA =NIMF STA NABADD LDA =LIMF STA NCADD LDA I1 STA BCTAB LDA I3 STA DNSP LDA I4 STA BLKPAR LDA I5 STA MTEMP LDA =040000000 STA BCTAB+1 LDA =-24 STA NWDS LDA =2 STA FEFSW LDA I6 STA STRMIN STA STRMAJ LDA OPTAB+11 STA SK+1 LDX =-NIMF+1 REST1 LDA BASEA+NIMF-1,IX2 ETR =077700000 STA BASEA+NIMF-1,IX2 BRX REST1 BRU FETCHR I1 LDA BCTAB+1 I3 LDA DNSP I4 LDA BLKPAR I5 LDA MTEMP SNG FORM 12,12 I6 SNG BOUND,0 A1 LDA MMIN,IX2 MAIN DICT BASE (MINOR) LDA MMAJ,IX2 (MAJOR) D DATA 0 ACCESS DICT BASE RMIN DATA 1 DATA 1 ZERS EQU $ TMIN DATA 0 DATA 0 INT DATA 0 FRAC DATA 0 EXP DATA 0 PTR DATA 0 SCSW DATA 0 NDIM DATA 0 MODE DATA 0 RSULT DATA 0 ITESW DATA 0 NENT DATA 0 LA DATA 0 $MAD DATA 0 DECST DATA 0 DECSW DATA 0 TELE DATA 0 RAND DATA 0 NDAD DATA 0 PROCSW DATA 0 TEMPT DATA 0 SWIND DATA 0 POSADD DATA 0 KIND DATA 0 PARA DATA 0 TYPES DATA 0 STYPE DATA 0 NZER EQU $-ZERS A4 PZE STRMIN,IX2 PZE STRMAJ,IX2 SEM PZE N PZE M SIZE DATA LDICTN-1 DATA LDICTJ-1 A2 BRU DF6 A3 LDA 0,IX2 P RES 10 MASAGE PARA STORE T RES 25 WORDS RES 15 A7 PZE LWTAB,IX2 A8 PZE CVERT,IX2 NABADD DATA NIMF NCADD DATA LIMF BCTAB LDA $+1 DATA 040000000 RES 5 A9 STA 0,IX2 A10 SKE NAME A11 LDA SK+1 A12 LDA SJ A13 LDA WORDS A15 LDA BASEA,IX2 A15B LDA BASEB,IX2 A15L PZE BASEB-BASEA A16 PZE BASEC-1 A19 LDA NUMTAB,IX2 A22 EOR BUF SJ LDA $ RES 15 SK LDA $+1 DATA 0771100 BEGIN RES 20 DELTA DATA 0 STRMIN SNG BOUND,0 RES 2 STRMAJ SNG BOUND,0 RES 24 FEFSW RES 1 A23 STA BASEA A24 BRU LW7 ND DATA 0 NUMB DATA 0 NUM1 DATA 0 NUM2 DATA 0 NN DATA -1 NUMTAB RES 28 NWDS DATA -24 NOCOD DATA -1 MTEMP LDA $ RES 6 BLKPAR LDA $ RES 31 DNSP LDA $ RES 6 CW DATA 0300 LBRACK DATA 002000200 ASSIGN DATA 001000600 THEN (STACK) DATA 000000600 THEN (OP) DATA 002000700 ELSE (STACK) DATA 001000700 ELSE (OP) DATA 0400 SWITCH DATA 001001000 GOTO DATA 07600 SEMCOL DATA 01177 END DATA 07500 COMMA DATA 0771200 LPAREN DATA 01277 RPAREN DATA 011060006 + DATA 011110010 - DATA 012140013 / DATA 012160015 \ DATA 012120012 * DATA 03250025 EQUIV DATA 010320031 GE DATA 010310032 LE DATA 010300030 EQ DATA 010330033 NE DATA 010260027 LS DATA 010270026 GT DATA 04240023 IMPLIC DATA 013200017 EOP DATA 07400 COLON DATA 011000100 UOP DATA 07700 BOUND DATA 01401 PROC DATA 01300 PHI DATA 01501 PHI R DATA 01400 WHILE DATA 01600 UNTIL DATA 01500 STEP DATA 01700 DO DATA 01701 STT DATA 000204 PZJMO DATA 040145 LDJM1 DATA 042101 LDJM0 DATA 040101 SSJM0 DATA 040150 STJM0 DATA 040104 WHJM0 DATA 040120 LDNJM0 DATA 040102 NEG DATA 000003 OPJM0 DATA 040100 OPIJM1 DATA 042177 JFJM0 DATA 040136 UJNA DATA 000034 UJJM1 DATA 042134 UJJM0 DATA 040134 BSNA DATA 054 BBNA DATA 043 BPNA DATA 041 EBNA DATA 044 EPNA DATA 042 IOJM0 DATA 040152 PJM0 DATA 040155 PJM1 DATA 042155 PJM2 DATA 044155 BCJM0 DATA 040137 ECJM0 DATA 040153 SUJM0 DATA 040117 JPJM0 DATA 040140 SPLJM0 DATA 040157 DEALNA DATA 7 JPJM1 DATA 042140 ALJM2 DATA 044105 EFBNA DATA 060 ALJM0 DATA 040105 STFA FORM 4,5,15 BR RES 1 TAB1 DATA UNKIDT DATA VRIDT DATA ARIDT DATA SWIDT DATA PRIDT DATA PRIDT DATA PRIDT DATA SDX DATA SDX DATA BVAR DATA AVAR DATA BPRI DATA APRI DATA BVARP DATA AVARP IX2 EQU 2 SPECAL EQU 6 EMP EQU 0 PRHED EQU SPECAL-5 BLKHD EQU SPECAL-4 BOUND EQU SPECAL-3 MOP EQU 4 BEGINB EQU SPECAL-2 USI EQU 5 BEGINC EQU SPECAL-1 RPAR EQU 6 STMTSQ EQU SPECAL ASN EQU 7 COLON EQU 7 EQUAL EQU 8 ULBLK EQU 8 LPT EQU 9 BLOCK EQU 9 RPT EQU 10 CMPD EQU 10 AST EQU 11 UCS EQU 11 AOP EQU 12 IDT EQU 13 APRI EQU 14 COMMA EQU 15 END EQU 16 SEMCOL EQU 17 RPAREN EQU 18 LPAREN EQU 19 ELSE EQU 20 APOST EQU 21 UBS EQU 21 ROP EQU 22 STRING EQU 22 DGT EQU 23 UFORS EQU 23 LTR EQU 24 ULCOMP EQU 24 IDTP EQU 25 SWDES EQU 25 USIP EQU 26 SWIDT EQU 26 IDTPA EQU 27 FL EQU 27 ARIDT EQU 28 APL EQU 29 REAL EQU 30 INTGER EQU 31 BOOL EQU 32 FORS EQU 33 BEGIN EQU 34 SDX EQU 35 IFS EQU 36 CS EQU 37 SUBX EQU 38 PROCED EQU 39 ARRAY EQU 40 VRIDT EQU 41 PRIDT EQU 42 ALPL EQU 43 DO EQU 44 FPL EQU 45 AX EQU 46 ARLIS EQU 47 PRHDB EQU 48 BPL EQU 49 BOX EQU 50 STRX EQU 51 THEN EQU 52 BLPL EQU 53 DEX EQU 54 LBLSL EQU 55 AVAR EQU 56 FDZ EQU 57 STMT EQU 58 AFCT EQU 59 ATRM EQU 60 SAX EQU 61 BVAR EQU 62 BPRI EQU 63 BSEC EQU 64 BFCT EQU 65 BTRM EQU 66 IMP EQU 67 SBX EQU 68 PRODEC EQU 69 LABEL EQU 70 IFC EQU 71 SWITCH EQU 72 FPLPD EQU 73 PRHDA EQU 74 STEP EQU 76 ELA EQU 77 UNTIL EQU 78 ELB EQU 79 ELC EQU 80 WHILE EQU 81 ELD EQU 82 FCP EQU 83 LBROCK EQU 86 FDZP EQU 89 VUL EQU 90 USNA EQU 95 ARSEG EQU 97 LBRACK EQU 98 PRHDCP EQU 99 LPD EQU 100 AVARP EQU 101 SUBL EQU 102 BVARP EQU 103 DECLAR EQU 104 LOB EQU 105 XPRIDT EQU 106 BXP EQU 109 IF EQU 110 PRHDEP EQU 111 APLPD EQU 112 SPECLS EQU 113 ERROR EQU 114 DXP EQU 116 ASSIGN EQU 117 SWL EQU 118 GOTO EQU 119 TEN EQU 121 FORC EQU 124 PT EQU 125 USN EQU 127 SWDP EQU 131 VRLIS EQU 132 USNB EQU 133 IFSP EQU 134 XTRNAL EQU 135 PIFS EQU 136 UNKIDT EQU 137 LBL EQU 139 XPRLIS EQU 141 AXP EQU 142 ARY EQU 145 EXT EQU 146 PROC EQU 147 OWN EQU 148 SWDESP EQU 149 FOR EQU 150 AFCTP EQU 151 ATRMP EQU 152 SAXP EQU 153 EOP EQU 154 RELP EQU 156 NOT EQU 157 BFCTP EQU 158 AND EQU 159 BTRMP EQU 160 OR EQU 161 IMPP EQU 162 IMPLIC EQU 163 SBXP EQU 164 EQUIV EQU 165 VALUE EQU 166 UNDEF EQU 167 PRGRAM EQU 168 TRUE EQU 169 FALSE EQU 170 FORMAT EQU 171 COMENT EQU 172 ILLEG EQU 173 IGNOR EQU 174 UOP EQU 175 DOTDOT EQU 176 BLANK EQU 177 APOST2 EQU 180 TYPE EQU 181 COMST EQU 182 USNC EQU 184 USND EQU 185 PRHDC EQU 187 ROPE EQU 188 MOPE EQU 189 COLONE EQU 190 SUBD EQU 0 IMPA EQU 1 RULE EQU 2 RULEF EQU 3 ICON FORM 6,10,8 CON FORM 8,8,8 RL FORM 2,2,2,10,8 DICT FORM 3,9,12 MMIN RES 0 DICT SUBD,BOUND,BND1 DICT SUBD,MOP,MOP1 DICT RULEF,USI,RR9 DICT SUBD,RPAR,RPAR1 DICT RULEF,COLON,RR3 DICT RULEF,EQUAL,RR4 DICT RULEF,LPT,RR5 DICT RULEF,RPT,RR6 DICT RULEF,AST,RR7 DICT SUBD,AOP,AOP1 DICT SUBD,IDT,IDT1 DICT SUBD,APRI,APR1 DICT SUBD,COMMA,COM1 DICT SUBD,END,END1 DICT SUBD,SEMCOL,SEM1 DICT RULEF,RPAREN,RR8 DICT SUBD,LPAREN,LPAR1 DICT SUBD,ELSE,ELS1 DICT SUBD,APOST,APST1 DICT SUBD,ROP,ROP1 DICT IMPA,DGT,X2 DICT IMPA,LTR,X1 DICT RULEF,IDTP,RR1 DICT RULEF,USIP,RR2 DICT RULEF,IDTPA,RR10 LDICTN EQU $-MMIN USI1 RES 0 DICT 4+IMPA,BOUND,X3 IDT1 RES 0 DICT 4+IMPA,BOUND,X4 SEM1 RES 0 DICT IMPA,BOUND,X5 DICT IMPA,END,X6 DICT 4+SUBD,COMENT,SEM11 COM1 RES 0 DICT 4+IMPA,BOUND,X7 LPAR1 RES 0 DICT 4+IMPA,BOUND,X8 RPAR1 RES 0 DICT 4+IMPA,BOUND,X9 AOP1 RES 0 DICT IMPA,TEN,X24 DICT IMPA,USNB,X26 DICT 4+IMPA,BOUND,X12 ROP1 RES 0 DICT 4+IMPA,BOUND,X14 MOP1 RES 0 DICT 4+IMPA,BOUND,X15 ELS1 RES 0 DICT IMPA,BOUND,X16 DICT 4+IMPA,END,X17 END1 DICT 4+IMPA,END,X18 BND1 DICT 4+SUBD,END,BND11 APST1 DICT SUBD,IDT,APST12 DICT 4+IMPA,APOST,X19 SEM11 DICT 4+IMPA,BOUND,X20 BND11 DICT 4+IMPA,BOUND,X22 APST12 DICT 4+IMPA,APOST,X23 APR1 DICT 4+IMPA,BOUND,X3 X1 ICON 1,SN1-N,IDTP X2 ICON 1,SN2-N,USIP X3 ICON 1,SN3-N,BOUND X4 ICON 1,SN4-N,BOUND X5 ICON 1,SN5-N,BOUND X6 ICON 1,SN6-N,SEMCOL X7 ICON 1,SN7-N,BOUND X8 ICON 1,SN8-N,BOUND X9 ICON 1,SN9-N,BOUND X12 ICON 1,SN12-N,BOUND X14 ICON 1,SN14-N,BOUND X15 ICON 1,SN15-N,BOUND X16 ICON 1,SN16-N,BOUND X17 ICON 1,SN6-N,ELSE X18 ICON 1,SN6-N,END X19 ICON 1,SN19-N,APOST2 X20 ICON 1,SN24B-N,BOUND X22 ICON 1,SN22-N,BOUND X23 ICON 0,LWCHK-N,0 X24 ICON 1,SN24A-N,TEN X26 ICON 1,SN24A-N,USNB RR1 RL 1,1,1,SN-N,LPD CON LPD,0,0 RL 1,0,1,SN24-N,LTR CON IDTP,0,0 RL 1,0,1,SN24-N,DGT CON IDTP,0,0 RL 1,0,1,SN-N,COLON CON IDTPA,0,0 RL 0,0,1,SN40-N,IDT RR2 RL 1,0,1,SN26-N,DGT CON USIP,0,0 RL 0,0,1,SN-N,USI RR3 RL 2,1,1,SN-N,LPD CON LPAREN,COMMA,0 RL 2,1,1,SN27A-N,BOUND CON EQUAL,BOUND,0 RL 1,1,1,SN13-N,BOUND CON BOUND,0,0 RR4 RL 2,1,1,SN28-N,BOUND CON EQUAL,BOUND,0 RL 1,0,1,SN29-N,RPT CON ROP,0,0 RL 1,0,1,SN30-N,LPT CON ROP,0,0 RL 0,0,1,SN31-N,ROP RR5 RL 1,0,1,SN32-N,RPT CON ROP,0,0 RL 1,0,1,SN30-N,EQUAL CON ROP,0,0 RL 0,0,1,SN34-N,ROP RR6 RL 2,1,1,SN35-N,BOUND CON RPT,BOUND,0 RL 1,0,1,SN32-N,LPT CON ROP,0,0 RL 1,0,1,SN29-N,EQUAL CON ROP,0,0 RL 0,0,1,SN38-N,ROP RR7 RL 2,1,1,SN39-N,BOUND CON AST,BOUND,0 RL 0,0,1,SN-N,MOP RR8 RL 1,0,1,SN-N,LTR CON LPD,0,0 RL 0,0,1,SN-N,RPAR RR9 RL 1,0,1,R9D1-N,PT CON USNA,0,0 RL 2,1,2,R9D2-N,USNA CON TEN,USNB,TEN RL 1,1,1,R9D3-N,USNA CON APRI,0,0 RL 2,1,2,R9D2-N,PT CON TEN,USNB,TEN RL 1,1,1,R9D3-N,PT CON APRI,0,0 RL 1,0,2,R9D1-N,TEN CON USNB,TEN,0 RL 2,2,1,R9D4-N,USNB CON TEN,APRI,0 RL 1,1,1,R9D6-N,TEN CON APRI,0,0 RL 0,0,1,R9D5-N,APRI RR10 RL 2,1,1,SN27-N,BOUND CON EQUAL,BOUND,0 RL 1,1,1,LABDEF-N,BOUND CON BOUND,0,0 LEX FORM 4,3,5,12 LWTAB LEX 1,3,0,IF TEXT 4,IF LEX 1,0,1,DO TEXT 4,DO LEX 1,0,2,OR TEXT 4,OR LEX 2,6,3,FOR TEXT 4,FOR LEX 2,2,0,END TEXT 4,END LEX 2,1,0,OWN TEXT 4,OWN LEX 2,0,5,AND TEXT 4,AND LEX 2,0,6,NOT TEXT 4,NOT LEX 3,0,7,THEN TEXT 4,THEN LEX 3,2,0,ELSE TEXT 4,ELSE LEX 3,1,0,REAL TEXT 4,REAL LEX 3,0,9,STEP TEXT 4,STEP LEX 3,3,10,GOTO TEXT 4,GOTO LEX 3,4,0,BPRI TEXT 4,TRUE LEX 4,3,11,BEGIN TEXT 8,BEGIN LEX 4,1,0,ARRAY TEXT 8,ARRAY LEX 4,0,12,UNTIL TEXT 8,UNTIL LEX 4,0,13,WHILE TEXT 8,WHILE LEX 4,5,0,BPRI TEXT 8,FALSE LEX 4,1,0,VALUE TEXT 8,VALUE LEX 4,1,0,LABEL TEXT 8,LABEL LEX 5,1,0,FORMAT TEXT 8,FORMAT LEX 5,1,0,SWITCH TEXT 8,SWITCH LEX 5,1,0,STRING TEXT 8,STRING LEX 6,1,0,INTGER TEXT 8,INTEGER LEX 6,2,0,COMENT TEXT 8,COMMENT LEX 6,1,0,BOOL TEXT 8,BOOLEAN LEX 7,1,0,XTRNAL TEXT 8,EXTERNAL LEX 7,1,8,PROCED TEXT 8,PROCEDUR OPTAB DATA 0500 IF DATA 01700 DO DATA 05210021 OR DATA 01300 FOR DATA 0400 SWITCH DATA 06220022 AND DATA 07000100 NOT DATA 0600 THEN(OP) DATA 0 PROCEDURE DATA 01500 STEP DATA 01001000 GO TO DATA 0771100 BEGIN DATA 01600 UNTIL DATA 01400 WHILE MMAJ RES 0 DICT SUBD,BEGINB,BGB1 DICT SUBD,BEGINC,BGC1 DICT SUBD,STMTSQ,DEC1 DICT IMPA,ASN,Y93 DICT RULE,ULBLK,R34 DICT RULEF,BLOCK,R38 DICT RULEF,CMPD,R38 DICT RULE,UCS,R29 DICT IMPA,AOP,Y137 DICT RULE,IDT,R2 DICT RULE,APRI,R12 DICT SUBD,COMMA,CM1 DICT SUBD,END,END2 DICT RULE,SEMCOL,R1 DICT SUBD,RPAREN,RPR1 DICT SUBD,LPAREN,LPR1 DICT RULE,ELSE,R44 DICT RULE,UBS,R31 DICT SUBD,STRING,STRG1 DICT RULE,UFORS,R32 DICT RULE,ULCOMP,R33 DICT IMPA,SWDES,Y62 DICT RULEF,SWIDT,R36 DICT SUBD,FL,FL1 DICT RULEF,ARIDT,R26 DICT SUBD,APL,APL1 DICT IMPA,REAL,Y1 DICT IMPA,INTGER,Y2 DICT IMPA,BOOL,Y3 DICT RULE,FORS,R35 DICT RULEF,BEGIN,R6 DICT RULEF,SDX,R27 DICT RULEF,IFS,R30 DICT IMPA,CS,R35Z DICT RULEF,SUBX,R3 DICT RULE,PROCED,R4 DICT RULE,ARRAY,R5 DICT RULE,VRIDT,R7 DICT RULEF,PRIDT,R8 DICT SUBD,ALPL,ALPL1 DICT RULE,DO,R16 DICT SUBD,FPL,FPL1 DICT SUBD,AX,AX1 DICT SUBD,ARLIS,ARL1 DICT RULEF,PRHDB,R37 DICT SUBD,BPL,BPL1 DICT SUBD,BOX,BX1 DICT RULE,STRX,R40 DICT RULE,THEN,R42 DICT SUBD,BLPL,BLPL1 DICT SUBD,DEX,DEX1 DICT SUBD,LBLSL,LBLS1 DICT RULEF,AVAR,R10 DICT RULE,FDZ,R11 DICT RULEF,STMT,R18 DICT RULEF,AFCT,R13 DICT RULEF,ATRM,R14 DICT RULEF,SAX,R15 DICT RULEF,BVAR,R17 DICT RULE,BPRI,R19 DICT RULE,BSEC,R20 DICT RULEF,BFCT,R21 DICT RULEF,BTRM,R22 DICT RULEF,IMP,R23 DICT RULEF,SBX,R24 DICT RULEF,PRODEC,R39 DICT SUBD,LABEL,LAB1 DICT SUBD,IFC,IFC1 DICT SUBD,SWITCH,SWCH1 LDICTJ EQU $-MMAJ DEC1 DICT 4+IMPA,STMTSQ,Y112 IFC1 RES 0 DICT IMPA,LBLSL,Y124 DICT IMPA,FORC,Y123 DICT IMPA,BEGINC,Y121 DICT IMPA,STMTSQ,Y122 DICT IMPA,BLKHD,Y120 DICT IMPA,IFSP,Y125 DICT 4+IMPA,PIFS,Y126 SWCH1 DICT 4+IMPA,PRHDC,Y132 LAB1 DICT 4+IMPA,PRHDC,Y133 STRG1 DICT 4+IMPA,PRHDC,Y134 CM1 DICT IMPA,FPL,Y15 DICT IMPA,APL,Y39 DICT 4+SUBD,AX,CM12 CM12 DICT IMPA,FCP,Y48 DICT 4+SUBD,COMMA,CM121 CM121 DICT 4+IMPA,FL,Y50 BGB1 DICT 4+SUBD,PRHDC,BGB11 BGB11 DICT 4+IMPA,PRHDA,Y22 FPL1 DICT 4+IMPA,FPLPD,Y16 LPR1 DICT 4+IMPA,ARSEG,Y17 BGC1 DICT 4+SUBD,PRHDC,BGC11 BGC11 DICT 4+IMPA,PRHDA,Y23 APL1 DICT 4+IMPA,APLPD,R36Z ALPL1 DICT 4+IMPA,ALPL,Y42 FL1 DICT 4+SUBD,COMMA,FL11 FL11 DICT 4+IMPA,FL,Y103 AX1 DICT IMPA,AXP,R15Z DICT IMPA,ALPL,Y43 DICT IMPA,FDZP,Y52 DICT IMPA,LBRACK,Y74 DICT SUBD,UNTIL,ELC1 DICT IMPA,APLPD,Y95 DICT SUBD,COLONE,AX11 DICT 4+SUBD,COMMA,AX12 AX11 DICT 4+IMPA,AX,Y71 AX12 DICT 4+IMPA,SUBL,R3Z ARL1 DICT 4+SUBD,COMMA,ARL11 ARL11 DICT 4+IMPA,ARLIS,Y67 BPL1 DICT 4+SUBD,COMMA,BPL11 BPL11 DICT 4+IMPA,BPL,Y71 RPR1 DICT SUBD,SUBL,RPR11 DICT SUBD,BPL,RPR12 DICT SUBD,DEX,RPR13 DICT SUBD,BOX,RPR14 DICT SUBD,AX,RPR15 DICT 4+SUBD,APL,RPR161 RPR11 DICT 4+SUBD,LBRACK,RPR111 RPR111 DICT IMPA,BVARP,Y66 DICT 4+IMPA,AVARP,Y65 RPR12 DICT 4+SUBD,LBROCK,RPR121 RPR121 DICT 4+IMPA,ARSEG,Y64 RPR13 DICT 4+IMPA,LPAREN,Y62 RPR14 DICT 4+IMPA,LPAREN,R17Z RPR15 DICT 4+IMPA,LPAREN,R10Z RPR161 DICT 4+IMPA,FDZP,R8Z BX1 DICT IMPA,APLPD,Y95 DICT SUBD,WHILE,ELC3 DICT IMPA,FDZP,Y52 DICT IMPA,BXP,R24Z DICT 4+IMPA,BLPL,Y43 BLPL1 DICT 4+IMPA,BLPL,Y83 DEX1 DICT IMPA,GOTO,Y93 DICT IMPA,APLPD,Y95 DICT IMPA,FDZP,Y52 DICT IMPA,DXP,R27Z DICT IMPA,ASSIGN,Y91 DICT 4+SUBD,COMMA,DEX11 DEX11 DICT 4+IMPA,SWL,Y92 LBLS1 DICT 4+IMPA,LBLSL,Y97 END2 DICT IMPA,LBLSL,Y98 DICT 4+SUBD,STMTSQ,SQ1 ELC1 DICT 4+SUBD,AX,ELC2 ELC2 DICT 4+SUBD,STEP,ELC3 ELC3 DICT 4+IMPA,AX,Y103 SQ1 DICT IMPA,BLKHD,Y114 DICT 4+IMPA,BEGINC,Y110 Y1 ICON 1,SM1-M,TYPE Y2 ICON 1,SM2-M,TYPE Y3 ICON 1,SM3-M,TYPE Y15 ICON 1,SM-M,FPLPD Y16 ICON 1,SM-M,FPL Y17 ICON 2,SM17-M,ARSEG CON LBROCK,0,0 Y22 ICON 2,SM22-M,PRHED CON BEGINB,0,0 Y23 ICON 2,SM22-M,PRHED CON BEGINC,0,0 Y39 ICON 1,SM-M,APLPD Y42 ICON 1,SM-M,ALPL Y43 ICON 1,SM-M,ASN Y48 ICON 3,SM-M,FCP CON FL,COMMA,0 Y50 ICON 2,SM-M,FL CON COMMA,0,0 Y52 ICON 2,SM-M,FDZP CON APL,0,0 Y62 ICON 1,SM-M,SDX Y64 ICON 1,SM64-M,ARLIS Y65 ICON 1,SM-M,AVAR Y66 ICON 1,SM-M,BVAR Y67 ICON 1,SM-M,ARLIS Y71 ICON 1,SM-M,BPL Y74 ICON 2,SM-M,LBRACK CON SUBX,0,0 Y83 ICON 1,SM-M,BLPL Y91 ICON 2,SM-M,ASSIGN CON SWL,0,0 Y92 ICON 1,SM-M,SWL Y93 ICON 1,SM-M,UBS Y95 ICON 2,SM-M,APLPD CON APL,0,0 Y97 ICON 1,SM-M,LBLSL Y98 ICON 2,SM-M,UCS CON END,0,0 Y103 ICON 1,SM-M,FL Y110 ICON 1,SM-M,ULCOMP Y112 ICON 1,SM-M,STMTSQ Y114 ICON 1,SM-M,ULBLK Y120 ICON 2,SM-M,BLKHD CON PIFS,0,0 Y121 ICON 2,SM-M,BEGINC CON PIFS,0,0 Y122 ICON 2,SM-M,STMTSQ CON PIFS,0,0 Y123 ICON 2,SM-M,FORC CON PIFS,0,0 Y124 ICON 1,SM-M,PIFS Y125 ICON 2,SM-M,IFSP CON PIFS,0,0 Y126 ICON 2,SM-M,PIFS CON PIFS,0,0 Y137 ICON 1,SM137-M,UOP Y132 ICON 1,R2D6-M,PRHDEP Y133 ICON 1,SM133-M,PRHDEP Y134 ICON 1,SM134-M,PRHDEP R40 RL 2,2,1,R40D1-M,LBLSL CON FORMAT,STMT,0 RL 0,0,1,SM-M,APL R35 RL 1,1,1,SM-M,PIFS CON STMT,0,0 R35Z RL 0,0,1,SM-M,STMT R6 RL 1,0,2,BEGBLK-M,REAL CON BEGINB,REAL,0 RL 1,0,2,BEGBLK-M,INTGER CON BEGINB,INTGER,0 RL 1,0,2,BEGBLK-M,BOOL CON BEGINB,BOOL,0 RL 1,0,2,BEGBLK-M,OWN CON BEGINB,OWN,0 RL 1,0,2,BEGBLK-M,PROCED CON BEGINB,PROCED,0 RL 1,0,2,BEGBLK-M,ARRAY CON BEGINB,ARRAY,0 RL 1,0,2,BEGBLK-M,SWITCH CON BEGINB,SWITCH,0 RL 1,0,2,BEGBLK-M,XTRNAL CON BEGINB,XTRNAL,0 RL 0,0,1,SM-M,BEGINC R4 RL 1,1,1,R4D1-M,PRHDC CON PRHDEP,0,0 RL 2,2,1,R4D2-M,PRHDC CON TYPE,PRHDEP,0 RL 1,1,1,SM-M,TYPE CON PROC,0,0 RL 0,0,1,R4D4-M,PROC R5 RL 1,1,1,R5D1-M,PRHDC CON PRHDEP,0,0 RL 2,2,1,R5D2-M,OWN CON TYPE,ARY,0 RL 2,2,1,R5D3-M,PRHDC CON TYPE,PRHDEP,0 RL 1,1,1,R5D4-M,TYPE CON ARY,0,0 RL 1,1,1,R5D5-M,OWN CON ARY,0,0 RL 0,0,1,R5D6-M,ARY R7 RL 2,2,1,VAR-M,VRLIS CON COMMA,VRLIS,0 RL 2,2,1,R7D2-M,OWN CON TYPE,VRLIS,0 RL 1,1,1,VAR-M,TYPE CON VRLIS,0,0 RL 0,0,1,R7D4-M,AVAR R8 RL 1,0,1,R8D2-M,LPAREN CON FDZP,0,0 RL 1,0,2,R7D4-M,ASSIGN CON AVAR,ASSIGN,0 R8Z RL 0,0,1,SM-M,FDZ R11 RL 1,1,2,SM-M,STMTSQ CON STMTSQ,UBS,0 RL 1,1,2,SM-M,BEGINC CON BEGINC,UBS,0 RL 1,1,2,SM-M,BLKHD CON BLKHD,UBS,0 RL 1,1,2,SM-M,FORC CON FORC,UBS,0 RL 1,1,2,SM-M,LBLSL CON LBLSL,UBS,0 RL 1,1,2,SM-M,IFSP CON IFSP,UBS,0 RL 1,1,2,SM-M,PIFS CON PIFS,UBS,0 RL 0,0,1,R11D14-M,APRI R3 RL 3,2,1,SM-M,SWDESP CON LBRACK,RPAREN,SWDES R3Z RL 0,0,1,SM-M,SUBL R10 RL 2,1,1,R10D2-M,FOR CON ASSIGN,FCP,0 RL 1,0,1,R10D2-M,ASSIGN CON ALPL,0,0 R10Z RL 0,0,1,SM-M,APRI R12 RL 1,1,1,SM-M,AFCTP CON AFCT,0,0 RL 0,0,1,SM-M,AFCT R13 RL 1,0,1,SM-M,EOP CON AFCTP,0,0 RL 1,1,1,SM-M,ATRMP CON ATRM,0,0 RL 0,0,1,SM-M,ATRM R14 RL 1,0,1,SM-M,MOPE CON ATRMP,0,0 RL 1,1,1,SM-M,SAXP CON SAX,0,0 RL 1,1,1,SM-M,UOP CON SAX,0,0 RL 0,0,1,SM-M,SAX R15 RL 1,0,1,SM-M,AOP CON SAXP,0,0 RL 1,0,1,SM-M,ROPE CON RELP,0,0 RL 2,1,1,SM-M,IFC CON ELSE,AXP,0 RL 1,1,1,SM-M,RELP CON BPRI,0,0 R15Z RL 0,0,1,SM-M,AX R16 RL 2,2,1,SM-M,FCP CON FL,FORC,0 RL 1,1,2,SM-M,AX CON FL,DO,0 RL 0,0,1,SYND-M,ERROR R18 RL 2,1,1,R1D1-M,STMTSQ CON SEMCOL,STMTSQ,0 RL 1,1,1,SM-M,FORC CON UFORS,0,0 RL 1,1,1,SM-M,IFSP CON STMT,0,0 RL 1,0,2,SM-M,END CON STMTSQ,END,0 RL 3,2,2,SM135-M,PRHDA CON PRHDC,SEMCOL,PRODEC CON SEMCOL,0,0 RL 2,1,2,SM135-M,PRHED CON SEMCOL,PRODEC,SEMCOL RL 1,0,1,R1D1-M,SEMCOL CON STMTSQ,0,0 RL 0,0,1,SYNS-M,ERROR R17 RL 1,0,1,R10D2-M,ASSIGN CON BLPL,0,0 R17Z RL 0,0,1,SM-M,BPRI R19 RL 1,1,1,SM-M,NOT CON BSEC,0,0 RL 0,0,1,SM-M,BSEC R20 RL 1,1,1,SM-M,BFCTP CON BFCT,0,0 RL 0,0,1,SM-M,BFCT R21 RL 1,0,1,SM-M,AND CON BFCTP,0,0 RL 1,1,1,SM-M,BTRMP CON BTRM,0,0 RL 0,0,1,SM-M,BTRM R22 RL 1,0,1,SM-M,OR CON BTRMP,0,0 RL 1,1,1,SM-M,IMPP CON IMP,0,0 RL 0,0,1,SM-M,IMP R23 RL 1,0,1,SM-M,IMPLIC CON IMPP,0,0 RL 1,1,1,SM-M,SBXP CON SBX,0,0 RL 0,0,1,SM-M,SBX R24 RL 1,0,1,SM-M,EQUIV CON SBXP,0,0 RL 2,1,1,SM-M,IFC CON ELSE,BXP,0 R24Z RL 0,0,1,SM-M,BOX R37 RL 1,0,1,SM-M,VALUE CON PRHDCP,0,0 RL 0,0,1,SM-M,PRHDC R36 RL 1,1,1,SWIT-M,SWITCH CON SWDP,0,0 RL 1,0,2,SM-M,LPAREN CON SWDESP,LBRACK,0 R36Z RL 0,0,1,SM-M,APL R34 RL 1,1,1,ENDBLK-M,LBLSL CON BLOCK,0,0 RL 0,0,1,ENDBLK-M,BLOCK R38 RL 2,1,1,R39D2-M,BOUND CON BOUND,PRGRAM,0 RL 0,0,1,SM-M,UCS R26 RL 1,0,2,R26D4-M,LPAREN CON AVARP,LBRACK,0 RL 0,0,1,SM-M,APL R27 RL 2,1,1,SM-M,IFC CON ELSE,DXP,0 R27Z RL 0,0,1,SM-M,DEX R29 RL 1,1,1,SM-M,PIFS CON IFS,0,0 RL 0,0,1,R29D1-M,STMT R30 RL 1,0,1,SM-M,ELSE CON IFSP,0,0 RL 0,0,1,SM-M,STMT R31 RL 1,1,1,SM-M,LBLSL CON UCS,0,0 RL 0,0,1,SM-M,UCS R32 RL 1,1,1,SM-M,LBLSL CON FORS,0,0 RL 0,0,1,SM-M,FORS R33 RL 1,1,1,SM-M,LBLSL CON CMPD,0,0 RL 0,0,1,SM-M,CMPD R39 RL 2,1,1,R39D1-M,BOUND CON SEMCOL,PRGRAM,0 RL 0,0,1,SM22-M,DECLAR R2 RL 2,2,2,R2D1-M,PRHDC CON TYPE,PRHDEP,SPECLS RL 1,1,2,R2D2-M,TYPE CON TYPE,VRIDT,0 RL 2,2,3,SM-M,VRLIS CON COMMA,VRLIS,COMMA CON VRIDT,0,0 RL 1,1,1,R2D4-M,ARY CON ARSEG,0,0 RL 2,2,3,R2D5-M,ARLIS CON COMMA,ARLIS,COMMA CON ARSEG,0,0 RL 2,2,1,R2D6A-M,ARSEG CON COMMA,ARSEG,0 RL 1,1,2,R2D6-M,SWITCH CON SWITCH,SWIDT,0 RL 2,2,1,R2D7-M,TYPE CON XTRNAL,XPRLIS,0 RL 1,1,1,R2D8-M,XTRNAL CON XPRLIS,0,0 RL 2,2,1,R2D7-M,XPRLIS CON COMMA,XPRLIS,0 RL 2,2,2,R2D9A-M,BOUND CON PROC,BOUND,PRHDA RL 1,1,1,R2D9-M,PROC CON PRHDA,0,0 RL 2,2,3,R2D10-M,PRHDA CON LPAREN,PRHDA,LPAREN CON FPL,0,0 RL 1,1,1,R2D11-M,FPLPD CON FPL,0,0 RL 1,1,2,R2D12-M,PRHDCP CON PRHDCP,VUL,0 RL 2,2,1,R2D12-M,VUL CON COMMA,VUL,0 RL 1,1,2,R2D14-M,PRHDEP CON PRHDEP,SPECLS,0 RL 2,2,1,R2D14-M,SPECLS CON COMMA,SPECLS,0 RL 0,0,1,MODA-M,SDX R1 RL 2,2,1,R1D2-M,BLKHD CON DECLAR,BLKHD,0 RL 1,1,2,SM117-M,VRLIS CON DECLAR,SEMCOL,0 RL 1,1,2,SM68-M,ARLIS CON DECLAR,SEMCOL,0 RL 1,1,1,SM-M,PRHDA CON PRHED,0,0 RL 3,3,1,SM-M,LPAREN CON FPL,RPAREN,PRHDB RL 2,2,1,SM-M,PRHDCP CON VUL,PRHDC,0 RL 2,2,1,SM-M,PRHDEP CON SPECLS,PRHDC,0 RL 1,1,2,SM-M,XPRLIS CON DECLAR,SEMCOL,0 RL 2,2,1,R1D2-M,BEGINB CON DECLAR,BLKHD,0 RL 3,3,2,SM-M,SWDP CON ASSIGN,SWL,DECLAR CON SEMCOL,0,0 RL 1,1,2,SM-M,LBLSL CON UCS,SEMCOL,0 RL 1,1,1,SM-M,STMTSQ CON STMTSQ,0,0 RL 1,1,1,SM-M,BLKHD CON BLKHD,0,0 RL 0,0,1,SYN-M,ERROR R42 RL 2,2,1,SM-M,IF CON BOX,IFC,0 RL 0,0,1,SYND-M,ERROR R44 RL 1,1,2,SM-M,LBLSL CON UCS,ELSE,0 RL 0,0,1,SYND-M,ERROR LITERA RES NLIT STFA FORM 4,5,15 STFB FORM 9,15 BASEA STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 XPON STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 STFA 5,4,0 STFA 5,0,0 STFA 5,0,0 STFA 5,0,0 IO DATA $+024000000 START HLT LDA =1 STA 017777 SKE 017777 BRU STRT0 LDX STRTN LDA BASEB+NIMF,IX2 ADD STRTK STA BASSB+NIMF,IX2 BRX $-3 LDA STRTB ADD A3 STA A15B LDA STRTL STA A15L LDA STRTC STA A16 LDX STRTM LDA BASEC+LIMF,IX2 STA BASSC+LIMF,IX2 BRX $-2 LDA OBJ4 SKE OBJTY BRM OBJTY BRU STRT0 STA OBJT BRU STRT0 OBJ4 BRM OBJTY BASSB EQU BASEA+1000 BASSC EQU BASSB+1000 STRTB PZE BASSB STRTC PZE BASSC-1 STRTK DATA BASSC-BASEC STRTL PZE BASSB-BASEA STRTM DATA -LIMF STRTN DATA -NIMF AORG BASEA+NIMF+STL BASEB STFB 2,BASEC-1 STFB 3,BASEC STFB 2,BASEC+1 STFB 2,BASEC+2 STFB 2,BASEC+3 STFB 5,BASEC+4 STFB 3,BASEC+6 STFB 1,BASEC+7 STFB 2,BASEC+8 STFB 3,BASEC+9 STFB 2,BASEC+10 STFB 2,BASEC+11 STFB 4,BASEC+12 STFB 4,BASEC+14 STFB 5,BASEC+16 STFB 1,BASEC+18 STRT0 BPT 1 BRU $+2 BRU STRT1 LDX STRT5 LDA STRT3,IX2 STA READ,IX2 BRX $-2 STRT1 BPT 2 BRU FETCH LDX STRT6 LDA STRT4,IX2 STA WRITE,IX2 BRX $-2 BRU FETCH STRT5 DATA STRT2-STRT3 STRT6 DATA STRT3-STRT4 AORG BASEB+NIMF+STL BASEC TEXT 4,ABS TEXT 4,SIGN TEXT 4,MOD TEXT 4,MIN TEXT 4,MAX TEXT 8,ARCTAN TEXT 4,1EXP TEXT 4,LN TEXT 4,EXP TEXT 4,SQRT TEXT 4,COS TEXT 4,SIN TEXT 8,ENDIO TEXT 8,INPUT TEXT 8,OUTPUT TEXT 4,IO * READ ONE HOLLERITH CODED CARD,UNIT 1,W BUFFER STRT2 PZE READ CARD BPT 3 TYY =052000000 CARRIAGE RETURN CARD1 BRM CARD+20 CLEAR W AND DISCONNECT SKS 012006 SKIP IF READER IS READY BRU CARD+4 EOM 02606 START CARD READER LDX =-20 WIM IMAGE+20,IX2 READ 4 CHARACTERS SKS 021000 SKIP IF BUFFER READY BEFORE LAST WORD BRU CARD+12 BRU CARD+17 READ ERROR-CARD FEED BRX CARD+8 SKS 020010 SKIP IF NO BUFFER ERROR BRU CARD+17 READ ERROR-DATA TRANSMISSION BRM CARD+20 CLEAR W AND DISCONNECT BRR CARD **EXIT** ERR 'B' INPUT ERROR. RE-READ LAST CARD HLT BRU CARD+3 PZE *ENTRY* EOM DISCONNECT SKS 021000 SKIP IF BUFFER IS READY BRU CARD+22 BRR CARD+20 *EXIT* DATA 71 HICOL. HIGHEST CARD COLUMN * PUNCH TAPE STRT3 PZE PNCHT LDA =BUF STA PUNCH+24 LDA BUF RSH 15 ETR =037 SUB =1 STA PUNCH+25 BRTW BRU PUNCH+7 EOM 01644 PUNCH TAPE WITH LEADER PNCHT1 MIW *PUNCH+24 MIN PUNCH+24 SKR PUNCH+25 BRU PUNCH+11 SKS 020010 HLT BAD PAPER PUNCH EOM 014000 SKS 021000 BRU PUNCH+18 EOM 0 CLR STA BUF+26 BRR PUNCH PNCHTA PZE 0 PNCHTB PZE 0 STRT4 RES 0 AORG BASEC+LIMF+2*STL AORG LITERA END *EOF*