2021-02-15 21:10:40 -08:00

3888 lines
307 KiB
Plaintext

******************************
* 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*