home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.cs.arizona.edu
/
ftp.cs.arizona.edu.tar
/
ftp.cs.arizona.edu
/
snobol
/
subrs.360
< prev
next >
Wrap
Text File
|
1988-10-19
|
59KB
|
1,798 lines
TITLE 'E33.13 (February 1, 1971)'
SUBR START
ENTRY APDSP
ENTRY BDSPEC
ENTRY BIOPTB
ENTRY CARDTB
ENTRY COMPLG
ENTRY COPL
ENTRY DECBIN
ENTRY ELEMTB
ENTRY EOSTB
ENTRY EXREAL
ENTRY FINIS
ENTRY FRWDTB
ENTRY GOTOTB
ENTRY IBLKTB
ENTRY LBLTB
ENTRY LBLXTB
ENTRY LINKER
ENTRY LOADER
ENTRY LVAL
ENTRY MOVTST
ENTRY NUMBTB
ENTRY REALST
ENTRY SNABTB
ENTRY SPECEQ
ENTRY SPIECUT
ENTRY SPIECUT2
ENTRY SPIECUTF
ENTRY SPIESAVE
ENTRY SPREAL
ENTRY STPRNT
ENTRY STREAD
ENTRY STREAM
ENTRY UNLOADER
ENTRY UNOPTB
ENTRY VARATB
EXTRN ADDFN
EXTRN AROWFN
EXTRN ATFN
EXTRN BARFN
EXTRN BIAMFN
EXTRN BIATFN
EXTRN BINGFN
EXTRN BIPDFN
EXTRN BIPRFN
EXTRN BIQSFN
EXTRN COMMON
EXTRN DIVFN
EXTRN DOLFN
EXTRN DOTFN
EXTRN EXPFN
EXTRN IBCOM#
EXTRN INDFN
EXTRN INTR10
EXTRN KEYFN
EXTRN MNSFN
EXTRN MPYFN
EXTRN NAMFN
EXTRN NEGFN
EXTRN OBLIST
EXTRN ORFN
EXTRN PDFN
EXTRN PLSFN
EXTRN PRFN
EXTRN QUESFN
EXTRN RETCOD
EXTRN SAVESAVE
EXTRN SAVE13
EXTRN SLHFN
EXTRN STRFN
EXTRN STYPE
EXTRN SUBFN
EXTRN SYSCUT
TITLE 'CONSTANTS'
DWDTH EQU 8
S EQU 1
I EQU 6
R EQU 7
L EQU 12
ARGSZ EQU 20
LSTARG EQU 128
BCDFLD EQU 4*DWDTH
LNKFLD EQU 3*DWDTH
OBSIZ EQU 256
TITLE 'APDSP'
USING APDSP,15
APDSP CR 0,3
BE 0(14)
AR 4,5
LM 5,7,0(2)
AR 6,7
AR 6,5
AR 5,3
ST 5,0(2)
MOVLOP LA 2,256
CR 3,2
BNH MOVSHORT
MVC 0(256,6),0(4)
AR 6,2
AR 4,2
SR 3,2
B MOVLOP
MOVSHORT BCTR 3,0
EX 3,MOVEX
BR 14
USING *,15
MOVTST LA 2,256
CR 3,2
BNH MVVSHORT
MVC 0(256,6),0(4)
AR 6,2
AR 4,2
SR 3,2
B MOVTST
MVVSHORT BCTR 3,0
EX 3,MOVEX
BR 14
MOVEX MVC 0(0,6),0(4)
LTORG
TITLE 'BDSPEC'
USING BDSPEC,15
BDSPEC L 2,0(2)
CR 2,0
BE BDSZ
BH BDPLUS
LA 6,1
LCR 2,2
BDCNV CVD 2,BDPBUF
UNPK BDBUF(12),BDPBUF(8)
OI BDBUF+11,X'F0'
L 3,=A(BDBUF)
LA 4,1
LA 5,BDBUF+11
BDLOOP CLI 0(3),X'F0'
BNE BDA
BXLE 3,4,BDLOOP
BDA CR 6,0
BE BDB
SR 3,4
MVI 0(3),C'-'
BDB LR 5,3
L 4,=A(BDBUF)
LA 4,12(4)
SR 4,3
LR 3,4
BDC SR 4,4
LR 6,0
STM 3,6,0(1)
BR 14
BDSZ MVI BDBUF,C'0'
LA 5,BDBUF
LA 3,1
B BDC
BDPLUS SR 6,6
B BDCNV
DS 0D
BDBUF DS CL12
DS 0D
BDPBUF DS CL8
LTORG
TITLE 'COPL'
USING COPL,15
COPL ST 4,RESID
LR 1,2
L 2,0(2)
ST 5,THSORG
ST 6,NXTORG
COPL1 LM 4,5,8(3)
STM 4,5,8(2)
LR 4,5
L 5,16(3)
CR 0,5
BE COPL2
A 5,THSORG
COPL2 L 6,20(3)
CR 0,6
BE COPL3
A 6,THSORG
B COPL4
COPL3 L 6,NXTORG
COPL4 STM 5,6,16(2)
LM 5,6,24(3)
A 5,RESID
A 6,RESID
STM 5,6,24(2)
LA 4,0(4)
S 4,=F'2'
BZ COPL5
LM 5,6,32(3)
STM 5,6,32(2)
LA 4,32
B COPL6
COPL5 LA 4,24
COPL6 AR 2,4
AR 3,4
SR 7,4
BH COPL1
ST 2,0(1)
BR 14
RESID DS F
THSORG DS F
NXTORG DS F
LTORG
TITLE 'DECBIN'
USING DECBIN,15
DECBIN LM 2,4,0(2)
CR 0,2
BNE DBCA
DBCAA ST 0,0(1)
B DBCRET
DBCA AR 3,4
LA 4,1
LR 5,2
SR 5,4
AR 5,3
CLI 0(3),C'-'
BNE DBCB
BXH 3,4,0(14)
SR 2,4
LR 6,4
B DBCD
DBCB CLI 0(3),C'+'
BNE DBCC
BXH 3,4,0(14)
SR 2,4
DBCC LR 6,0
DBCD CLI 0(3),C'0'
BNE DBCDA
BXH 3,4,DBCAA
BCTR 2,0
B DBCD
DBCDA C 2,=F'10'
BH 0(14)
LR 7,3
DBCE CLI 0(3),X'F0'
BL 0(14)
CLI 0(3),C'9'
BH 0(14)
BXLE 3,4,DBCE
BCTR 2,0
CR 0,6
BE DBCEA
NI 0(5),X'BF'
DBCEA EX 2,DBCPACK
OI 0(5),X'F0'
CP DBCBUF(8),=P'2147483647'
BH 0(14)
CP DBCBUF(8),=P'-2147483648'
BL 0(14)
CVB 5,DBCBUF
ST 5,0(1)
DBCRET LA 2,I
ST 2,4(1)
B 4(14)
DS 0D
DBCBUF DS CL8
DBCPACK PACK DBCBUF(8),0(0,7)
LTORG
TITLE 'EXREAL'
USING *,15
EXREAL STM 14,2,EXSAVE
LTER 0,0
BE EXFAIL
LTER 2,2
BE LOAD1
STE 0,BASE
STE 2,EXP
BAL 14,LOG
LE 2,EXP
MER 0,2
BAL 14,CEXP
EGRESS LM 14,2,EXSAVE
B 4(14)
LOAD1 LE 0,ONER
B EGRESS
EXFAIL LM 14,2,EXSAVE
BR 14
LOG L 0,BASE
LTR 0,0
BNH EXFAIL
SRDL 0,24
SRL 1,8
ST 1,ARGR
OI ARGR,X'40'
SLL 0,2
STH 0,IPART+2
SR 2,2
SRL 1,21
IC 2,TABLE(1)
LE 0,ARGR
LER 2,0
SE 0,ONER(2)
AE 2,ONER(2)
DER 0,2
STE 0,ARGR
MER 0,0
LE 2,C4
MER 2,0
AE 2,C3
MER 2,0
AE 2,C2
MER 2,0
AE 2,C1
MER 2,0
LE 0,ARGR
MER 2,0
AER 2,0
AER 2,0
LE 0,IPART
SRL 2,1
LA 2,256(2)
STH 2,IPART+2
SE 0,IPART
ME 0,LOGE2
ADR 0,2
BR 14
CEXP CE 0,MAX
STE 0,BASE
BH EXFAIL
CE 0,MIN
BH OK1
SER 0,0
B EGRESS
OK1 STE 0,BASE
L 1,BASE
SLDL 0,8
N 0,=X'0000007F'
CH 0,SMALL
BH OK2
LE 0,ONER
BR 14
OK2 SRL 1,1
SLL 0,2
LCR 2,0
M 0,LOG2E
SRDL 0,287(2)
LTER 0,0
BNH OK3
X 0,ALLF
X 1,ALLF
OK3 SLL 0,24
LR 2,0
SLDL 0,2
LR 3,0
SRL 1,4
LR 6,1
MR 0,1
LR 5,0
M 4,C
A 0,A
LR 5,0
L 0,B
DR 0,5
SR 1,6
SRL 1,1
A 1,D
AR 1,4
LR 4,6
SRL 4,2
DR 4,1
A 5,FXONE
SRL 5,0(3)
A 5,FUDGE
C 5,FXONE
BL OK4
L 5,ONER
B JOIN
OK4 SRL 5,6
O 5,FXONE
JOIN SR 5,2
ST 5,ARGR
LE 0,ARGR
BR 14
BASE DS F
EXP DS F
EXSAVE DS 5F
ARGR DS F
IPART DC X'46000000'
TABLE DC X'0804040400000000'
ONER DC X'41100000'
DC X'40400000'
DC X'40100000'
C4 DC E'0.28157778'
C3 DC E'0.27965158'
C2 DC E'0.40024595'
C1 DC E'0.66666322'
MAX DC E'174.673'
MIN DC E'-180.218'
ALLF DC X'FFFFFFFF'
LOGE2 DC X'40B17219'
LOG2E DC X'5C551D95'
A DC X'576AE119'
B DC X'269F8E6B'
C DC X'B9059003'
D DC X'B05CFCE3'
FXONE DC X'40000000'
FUDGE DC X'00000020'
DS 0H
SMALL DC X'0039'
LTORG
TITLE 'FINIS'
FINIS LR 12,15
USING FINIS,12
L 10,=A(RETCOD)
L 10,0(10)
STH 10,FINISRET
L 15,=A(IBCOM#)
BAL 14,68(15)
FINISRET DC AL2(0)
LTORG
USING *,15
COMPLG AR 6,7
AR 3,4
LR 1,2
CR 2,5
BNH COMPARE
LR 2,5
COMPARE C 2,=F'256'
BNH COMPDOWN
CLC 0(256,3),0(6)
BL 8(14)
BH 0(14)
S 2,=F'256'
BZ 4(14)
LA 3,256(3)
LA 6,256(6)
B COMPARE
COMPDOWN BCTR 2,0
EX 2,COMPOM
BL 8(14)
BH 0(14)
CR 1,5
BL 8(14)
BE 4(14)
BR 14
COMPOM CLC 0(0,3),0(6)
TITLE 'LVAL'
USING LVAL,15
LVAL LR 3,2
LVAL1 L 4,24(3)
LVAL2 C 0,16(3)
BE LVAL3
L 3,16(3)
AR 3,2
C 4,24(3)
BNH LVAL2
B LVAL1
LVAL3 LR 5,0
STM 4,5,0(1)
BR 14
TITLE 'LINKER'
USING *,15
LINKER STM 0,15,SAVE
SR 5,5
LA 7,SPEC
CL 2,=A(ARGSZ)
BNH NXTARG
L 2,=A(ARGSZ)
NXTARG LH 6,6(1)
C 6,=A(S)
BE STRARG
ST 1,ARG(5)
NXTONE LA 1,8(1)
LA 5,4(5)
BCT 2,NXTARG
LA 5,ARG-4(5)
MVI 0(5),LSTARG
LM 0,12,SAVE
LA 1,ARG
LA 13,DSAVE
LR 15,4
BALR 14,15
LA 14,0
BALR 15,0
USING *,15
L 15,=A(LINKER)
USING LINKER,15
CL 14,=A(0)
BNE ERET
LM 1,15,SAVE+4
LH 5,6(3)
ST 0,0(3)
C 5,=A(I)
BE GOBACK
C 5,=A(R)
BE REAL
C 5,=A(S)
BE STRRTN
B USERDEF
ERET LM 0,15,SAVE
BR 14
REAL STE 0,0(3)
GOBACK LM 0,15,SAVE
B 4(14)
STRARG L 6,0(1)
CL 6,=A(0)
BE NULSTR
L 8,4(6)
LA 8,0(8)
ST 8,4(7)
LA 6,32(6)
STRNUL ST 6,0(7)
ST 7,ARG(5)
LA 7,8(7)
B NXTONE
NULSTR SR 6,6
ST 6,4(7)
B STRNUL
STRRTN LR 11,0
L 6,0(11)
ST 6,SPEC+8
L 6,4(11)
ST 6,SPEC
L 6,=A(0)
ST 6,SPEC+4
ST 6,SPEC+12
LA 6,SPEC
ST 6,0(3)
L 6,=A(L)
ST 6,4(3)
B GOBACK
USERDEF LR 11,0
LD 4,0(11)
STD 4,0(3)
B GOBACK
DS 0D
SAVE DC 18F'0'
DSAVE DC 40F'0'
ARG DC 20F'0'
SPEC DC 40F'0'
LTORG
TITLE 'LOADER AND UNLOADER'
OFLGS EQU 48
DDNAME EQU 40
LOADER BALR 6,0
USING *,6
LOADOR STM 8,0,SAVEX
L 3,0(1)
BCTR 3,0
CL 3,FULL
BNH LE8
L 3,FULL
LE8 L 4,4(1)
A 4,8(1)
LD 4,BLANKS
STD 4,LOADAX
EX 3,MOVE
L 3,0(2)
CR 0,3
BE DSRNZ
BCTR 3,0
CL 3,FULL
BNH LEE8
L 3,FULL
LEE8 L 4,4(2)
A 4,8(2)
LD 4,BLANKS
STD 4,NEWDDN
EX 3,MOVEE
B OPENTST
DSRNZ MVC NEWDDN(8),SNOLIB
OPENTST TM LIBE+OFLGS,X'10'
BZ NOTOPEN
CLC PRDDN(8),NEWDDN
BE DOLOAD
CLOSE (LIBE,DISP)
NOTOPEN MVC LIBE+DDNAME(8),NEWDDN
OPEN (LIBE,(INPUT))
MVC PRDDN(8),NEWDDN
DOLOAD LOAD EPLOC=LOADAX,DCB=LIBE
LR 2,0
LM 8,0,SAVEX
BR 14
USING *,15
UNLOADER L 6,=A(LOADOR)
DROP 15
USING LOADOR,6
STM 8,0,SAVEX
L 2,0(1)
BCTR 2,0
CL 2,FULL
BNH LT8
L 2,FULL
LT8 L 4,4(1)
A 4,8(1)
LD 4,BLANKS
STD 4,LOADAX
EX 2,MOVE
* WHERE THERE WAS GARBAGE
LR 7,15
DELETE EPLOC=LOADAX
LR 15,7
LM 8,0,SAVEX
BR 14
DS 0D
BLANKS DC CL8' '
LOADAX DS D
SAVEX DC 18F'0'
FULL DC F'7'
DS D
NEWDDN DC CL8' '
PRDDN DC CL8' '
SNOLIB DC CL8'SNOLIB'
LIBE DCB DSORG=PO,MACRF=(R),DEVD=DA
MOVE MVC LOADAX(0),0(4)
MOVEE MVC NEWDDN(0),0(4)
TITLE 'REALST'
USING REALST,15
REALST EQU *
SR 1,1
SR 4,4
CE 2,=E'0'
BE REALZERO
BH REALPL
MVI SIGN,C'-'
LCER 2,2
B REAL1
REALPL MVI SIGN,C'+'
REAL1 CE 2,=X'46100000'
BNL DLOOPA
MLOOP CE 2,=E'15'
BNL MLOOPA
ME 2,=E'1.E+6'
LA 4,6(4)
B MLOOP
MLOOPA CE 2,=E'15000'
BNL MLOOPB
ME 2,=E'1000'
LA 4,3(4)
MLOOPB CE 2,=X'46100000'
BNL MLOOPEND
ME 2,=E'10'
LA 4,1(4)
B MLOOPB
MLOOPEND EQU *
STE 2,X
L 2,X
SRDL 2,24
SRL 3,8
CVD 3,XP
LA 3,RBUF+LPAT-1
SR 3,4
C 4,=F'15'
BNL REALSM
MVC RBUF(17),PAT
MVI 0(3),C'.'
EDMK RBUF(17),XP
REALSIG CR 3,1
BH REAL2
MVI 0(3),C'.'
BCTR 3,0
LR 1,3
REAL2 CLI SIGN,C'-'
BNE REALDONE
BCTR 1,0
MVI 0(1),C'-'
REALDONE ST 1,8(5)
LA 2,RBUF+LPAT
SR 2,1
SR 3,3
STM 2,3,0(5)
ST 3,12(5)
BR 14
REALSM MVI MBUF,C'0'
MVC MBUF+1(80),MBUF
MVC RBUF+1(16),PAT
EDMK RBUF+1(16),XP
B REALSIG
REALZERO LA 1,3
SR 2,2
LA 3,REALZIP
SR 4,4
STM 1,4,0(5)
BR 14
DLOOP DE 2,=E'10'
LA 4,1(4)
DLOOPA CE 2,=X'47100000'
BNL DLOOP
STE 2,X
L 2,X
SRDL 2,24
SRL 3,8
CVD 3,XP
MVC LBUF(16),PAT
EDMK LBUF(16),XP
L 3,=A(MBUF)
AR 3,4
MVI MBUF,C'0'
MVC MBUF+1(80),MBUF
MVI 0(3),C'.'
CLI SIGN,C'-'
BNE REAL3
BCTR 1,0
MVI 0(1),C'-'
REAL3 ST 1,8(5)
SR 3,1
LA 3,1(3)
SR 4,4
STM 3,4,0(5)
ST 4,12(5)
BR 14
REALZIP DC C'0.0'
LPAT EQU 17
LBUF DC 16C'0'
MBUF DC 80C'0'
RBUF DC 17C'0'
PAT DC C'0',16X'20'
SIGN DC C'0'
XP DC D'0'
X DC F'0'
LTORG
TITLE 'SPECEQ'
USING SPECEQ,15
SPECEQ CR 0,2
BE 4(14)
AR 6,7
AR 3,4
SPECDOWN C 2,=F'256'
BNH SPECSHRT
CLC 0(256,3),0(6)
BNE 0(14)
S 2,=F'256'
BZ 4(14)
LA 3,256(3)
LA 6,256(6)
B SPECDOWN
SPECSHRT BCTR 2,0
EX 2,SPECOM
BE 4(14)
BR 14
SPECOM CLC 0(0,3),0(6)
TITLE 'SPIECUT'
SPIECUT BALR 15,0
USING *,15
CLI SPIECUTF,X'00'
BE SPIECUT1
ABEND 0,DUMP
SPIECUT1 MVI SPIECUTF,X'FF'
STM 3,14,SPIE3
MVC SPIEPIE(32),0(1)
L 3,SIGRESET
SPM 3
L 11,=A(SYSCUT)
LA 0,0
LA 8,8
LM 9,10,SPIEREST
BR 11
SPIECUT2 EQU *
USING SPIECUT2,15
L 9,=A(RETCOD)
LA 10,16
ST 10,0(9)
LA 0,0
LA 8,8
LM 9,10,SPIEREST
L 11,=A(SYSCUT)
BR 11
CNOP 4,8
SPIEPIE DS 0F
SPIEPICA DC AL1(0),AL3(0)
SPIESAVE DC D'0'
SPIER14 DC 5F'0'
SPIE3 DC 10F'0'
SPIE13 DC F'0'
SPIE14 DC F'0'
SPIECUTF DC A(0)
SPIEREST DC A(COMMON,COMMON+4096)
SIGRESET DC X'36000000'
LTORG
TITLE 'SPREAL'
USING SPREAL,15
SPREAL AR 4,3
CR 2,0
BE SPZERO
MVI RSIGN,X'00'
AR 2,4
CLI 0(4),C'9'
BH 0(14)
CLI 0(4),X'F0'
BNL SPSTART
CLI 0(4),C'+'
BNE SPMINUS
SPCHECK LA 4,1(4)
CR 4,2
BNL 0(14)
CLI 0(4),X'F0'
BL 0(14)
CLI 0(4),C'9'
BH 0(14)
B SPSTART
SPMINUS CLI 0(4),C'-'
BNE 0(14)
MVI RSIGN,X'01'
B SPCHECK
SPSTART MVC CHAR(1),0(4)
NI CHAR,X'0F'
LE INT,DIGIT
SPILOOP LA 4,1(4)
CR 4,2
BE SPRETURN
CLI 0(4),C'.'
BE SPFRAC
CLI 0(4),X'F0'
BL 0(14)
CLI 0(4),C'9'
BH 0(14)
ME INT,=E'10'
MVC CHAR(1),0(4)
NI CHAR,X'0F'
AE INT,DIGIT
B SPILOOP
*
* FRACTION IS COMPUTED DIGIT BY
* DIGIT RIGHT TO LEFT.
SPFRAC LE FRAC,RZERO
SPFLOOP BCTR 2,0
CR 4,2
BE SPFIN
CLI 0(2),X'F0'
BL 0(14)
CLI 0(2),C'9'
BH 0(14)
MVC CHAR(1),0(2)
NI CHAR,X'0F'
AE FRAC,DIGIT
DE FRAC,TEN
B SPFLOOP
SPFIN AER INT,FRAC
SPRETURN CLI RSIGN,X'00'
BE SPOS
LCER INT,INT
SPOS STE INT,0(1)
B 4(14)
SPZERO LE INT,=E'0'
B SPRETURN
RSIGN DS 1C
DS 0F
TEN DC E'10'
RZERO DC E'0'
INT EQU 2
DIGIT DC X'42000000'
CHAR EQU DIGIT+1
FRAC EQU 4
LTORG
TITLE 'STPRNT'
USING STPRNT,7
STPRNT LR 7,15
STM 13,1,AISAVE
L 13,=A(SAVESAVE)
ST 0,0(1)
L 6,0(2)
LA 5,8(6)
STPRNT0 ST 5,STPRUNIT
L 6,2*8(6)
MVI STPRUNIT,X'01'
LA 6,BCDFLD(6)
ST 6,STPRFRMT
MVI STPRFRMT,X'01'
LM 2,4,0(3)
LTR 2,2
BNZ STPRNT1
LM 2,4,BLSP
STPRNT1 STH 2,STPRLENG
AR 4,3
ST 4,STPRADDR
L 15,=A(IBCOM#)
CNOP 0,4
BAL 14,4(15)
STPRUNIT DC X'01',AL3(0)
STPRFRMT DC X'01',AL3(0)
L 15,=A(IBCOM#)
BAL 14,12(15)
STPRADDR DC A(0)
DC XL2'0170'
STPRLENG DC H'0'
L 15,=A(IBCOM#)
BAL 14,16(15)
LM 13,1,AISAVE
BR 14
BLSP DC A(1)
DC A(0)
DC A(BLST)
DC A(0)
BLST DC C' '
TITLE 'STREAD'
USING STREAD,7
STREAD LR 7,15
STM 13,1,AISAVE
L 13,=A(SAVESAVE)
STREAD0 ST 2,STRDUNIT
MVI STRDUNIT,X'31'
LM 1,3,0(1)
STH 1,STRDLNTH+2
AR 2,3
ST 2,STRDBUF
L 15,=A(IBCOM#)
CNOP 0,4
BAL 14,0(15)
STRDUNIT DC X'31',AL3(0)
DC X'01',AL3(INFORMAT)
DC A(EOFADD)
DC A(ERRADD)
L 15,=A(IBCOM#)
BAL 14,12(15)
STRDBUF DC A(0)
STRDLNTH DC XL2'0170',AL2(0)
L 15,=A(IBCOM#)
BAL 14,16(15)
LM 13,1,AISAVE
B 8(14)
CNOP 0,4
EOFADD DC A(EOF)
ERRADD DC A(ERR)
EOF LM 13,1,AISAVE
BR 14
ERR LM 13,1,AISAVE
B 4(14)
INFORMAT DC C'(255(255A1))'
AISAVE DC 5F'0'
LTORG
TITLE 'STREAM'
ARYTYP EQU 7
CLNTYP EQU 5
CMATYP EQU 2
CMTTYP EQU 2
CNTTYP EQU 4
CTLTYP EQU 3
DIMTYP EQU 1
EOSTYP EQU 6
EQTYP EQU 4
FGOTYP EQU 3
FTOTYP EQU 6
FLITYP EQU 6
FNCTYP EQU 5
ILITYP EQU 2
LPTYP EQU 1
NBTYP EQU 1
NEWTYP EQU 1
NSTTYP EQU 4
QLITYP EQU 1
RBTYP EQU 7
RPTYP EQU 3
SGOTYP EQU 2
STOTYP EQU 5
UGOTYP EQU 1
UTOTYP EQU 4
VARTYP EQU 3
SPACE
USING STREAM,15
SPACE
DS 0D
* BIOPTB
* FOR(PLUS) PUT(ADDFN) GOTO(TBLKTB)
* FOR(MINUS) PUT(SUBFN) GOTO(TBLKTB)
* FOR(DOT) PUT(NAMFN) GOTO(TBLKTB)
* FOR(DOLLAR) PUT(DOLFN) GOTO(TBLKTB)
* FOR(STAR) PUT(MPYFN) GOTO(STARTB)
* FOR(SLASH) PUT(DIVFN) GOTO(TBLKTB)
* FOR(AT) PUT(BIATFN) GOTO(TBLKTB)
* FOR(POUND) PUT(BIPDFN) GOTO(TBLKTB)
* FOR(PERCENT) PUT(BIPRFN) GOTO(TBLKTB)
* FOR(RAISE) PUT(EXPFN) GOTO(TBLKTB)
* FOR(ORSYM) PUT(ORFN) GOTO(TBLKTB)
* FOR(KEYSYM) PUT(BIAMFN) GOTO(TBLKTB)
* FOR(NOTSYM) PUT(BINGFN) GOTO(TBLKTB)
* FOR(QUESYM) PUT(BIQSFN) GOTO(TBLKTB)
* ELSE ERROR
BIOPTB EQU *
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474741474740454'
DC X'5C7474747474747474744C1C24747464'
DC X'0C2C747474747474747474744474746C'
DC X'74747474747474747474743C34747474'
DC X'74747474747474747474747474747474'
DC X'7474747474747474747474747474744C'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
L 7,=A(ADDFN)
L 3,=A(TBLKTB)
L 7,=A(SUBFN)
L 3,=A(TBLKTB)
L 7,=A(NAMFN)
L 3,=A(TBLKTB)
L 7,=A(DOLFN)
L 3,=A(TBLKTB)
L 7,=A(MPYFN)
L 3,=A(STARTB)
L 7,=A(DIVFN)
L 3,=A(TBLKTB)
L 7,=A(BIATFN)
L 3,=A(TBLKTB)
L 7,=A(BIPDFN)
L 3,=A(TBLKTB)
L 7,=A(BIPRFN)
L 3,=A(TBLKTB)
L 7,=A(EXPFN)
L 3,=A(TBLKTB)
L 7,=A(ORFN)
L 3,=A(TBLKTB)
L 7,=A(BIAMFN)
L 3,=A(TBLKTB)
L 7,=A(BINGFN)
L 3,=A(TBLKTB)
L 7,=A(BIQSFN)
L 3,=A(TBLKTB)
BR 14
SPACE
DS 0D
* CARDTB
* FOR(CMT) PUT(CMTTYP) STOPSH
* FOR(CTL) PUT(CTLTYP) STOPSH
* FOR(CNT) PUT(CNTTYP) STOPSH
* ELSE PUT(NEWTYP) STOPSH
CARDTB EQU *
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C141C1C1404'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C041C1C1C'
DC X'0C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C0404041C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
L 7,=A(CMTTYP)
B STRMSHRT
L 7,=A(CTLTYP)
B STRMSHRT
L 7,=A(CNTTYP)
B STRMSHRT
L 7,=A(NEWTYP)
B STRMSHRT
SPACE
DS 0D
* DQLITB
* FOR(DQUOTE) STOP
* ELSE CONTIN
DQLITB EQU *
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000004'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
B STRMSTOP
SPACE
DS 0D
* ELEMTB
* FOR(NUMBER) PUT(ILITYP) GOTO(INTGTB)
* FOR(LETTER) PUT(VARTYP) GOTO(VARTB)
* FOR(SQUOTE) PUT(QLITYP) GOTO(SQLITB)
* FOR(DQUOTE) PUT(QLITYP) GOTO(DQLITB)
* FOR(LEFTPAREN) PUT(NSTTYP) STOP
* ELSE ERROR
ELEMTB EQU *
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C242C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C142C1C'
DC X'2C0C0C0C0C0C0C0C0C0C2C2C2C2C2C2C'
DC X'2C0C0C0C0C0C0C0C0C0C2C2C2C2C2C2C'
DC X'2C2C0C0C0C0C0C0C0C0C2C2C2C2C2C2C'
DC X'2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C'
DC X'2C0C0C0C0C0C0C0C0C0C2C2C2C2C2C2C'
DC X'2C0C0C0C0C0C0C0C0C0C2C2C2C2C2C2C'
DC X'2C2C0C0C0C0C0C0C0C0C2C2C2C2C2C2C'
DC X'040404040404040404042C2C2C2C2C2C'
L 7,=A(ILITYP)
L 3,=A(INTGTB)
L 7,=A(VARTYP)
L 3,=A(VARTB)
L 7,=A(QLITYP)
L 3,=A(SQLITB)
L 7,=A(QLITYP)
L 3,=A(DQLITB)
L 7,=A(NSTTYP)
B STRMSTOP
BR 14
SPACE
DS 0D
* EOSTB
* FOR(EOS) STOP
* ELSE CONTIN
EOSTB EQU *
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000400'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
B STRMSTOP
SPACE
DS 0D
* FLITB
* FOR(NUMBER) CONTIN
* FOR(TERMINATOR) STOPSH
* ELSE ERROR
FLITB EQU *
DC X'08080808080408080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'04080808080808080808080808080808'
DC X'08080808080808080808080808040408'
DC X'08080808080808080808080408080408'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808040808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'00000000000000000000080808080808'
B STRMSHRT
BR 14
SPACE
DS 0D
* FRWDTB
* FOR(BLANK) CONTIN
* FOR(EQUAL) PUT(EQTYP) STOP
* FOR(RIGHTPAREN) PUT(RPTYP) STOP
* FOR(RIGHTBR) PUT(RBTYP) STOP
* FOR(COMMA) PUT(CMATYP) STOP
* FOR(COLON) PUT(CLNTYP) STOP
* FOR(EOS) PUT(EOSTYP) STOP
* ELSE PUT(NBTYP) STOPSH
FRWDTB EQU *
DC X'34343434340034343434343434343434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434343434'
DC X'00343434343434343434043434343434'
DC X'343434343434343434343434340C2C34'
DC X'34343434343434343434341C34341434'
DC X'34343434343434343434243434340434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434143434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434343434'
DC X'34343434343434343434343434343434'
L 7,=A(EQTYP)
B STRMSTOP
L 7,=A(RPTYP)
B STRMSTOP
L 7,=A(RBTYP)
B STRMSTOP
L 7,=A(CMATYP)
B STRMSTOP
L 7,=A(CLNTYP)
B STRMSTOP
L 7,=A(EOSTYP)
B STRMSTOP
L 7,=A(NBTYP)
B STRMSHRT
SPACE
DS 0D
* GOTFTB
* FOR(LEFTPAREN) PUT(FGOTYP) STOP
* FOR(LEFTBR) PUT(FTOTYP) STOP
* ELSE ERROR
GOTFTB EQU *
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'1414141414141414141414140C041414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'141414141414141414141414140C1414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
L 7,=A(FGOTYP)
B STRMSTOP
L 7,=A(FTOTYP)
B STRMSTOP
BR 14
SPACE
DS 0D
* GOTOTB
* FOR(SGOSYM) GOTO(GOTSTB)
* FOR(FGOSYM) GOTO(GOTFTB)
* FOR(LEFTPAREN) PUT(UGOTYP) STOP
* FOR(LEFTBR) PUT(UTOTYP) STOP
* ELSE ERROR
GOTOTB EQU *
DC X'24242424242424242424242424242424'
DC X'24242424242424242424242424242424'
DC X'24242424242424242424242424242424'
DC X'24242424242424242424242424242424'
DC X'2424242424242424242424241C142424'
DC X'24242424242424242424242424242424'
DC X'24242424242424242424242424242424'
DC X'24242424242424242424242424242424'
DC X'2424242424240C242424242424242424'
DC X'24242424242424242424242424242424'
DC X'242404242424242424242424241C2424'
DC X'24242424242424242424242424242424'
DC X'2424242424240C242424242424242424'
DC X'24242424242424242424242424242424'
DC X'24240424242424242424242424242424'
DC X'24242424242424242424242424242424'
SR 0,0
SR 0,0
L 3,=A(GOTSTB)
SR 0,0
SR 0,0
L 3,=A(GOTFTB)
L 7,=A(UGOTYP)
B STRMSTOP
L 7,=A(UTOTYP)
B STRMSTOP
BR 14
SPACE
DS 0D
* GOTSTB
* FOR(LEFTPAREN) PUT(SGOTYP) STOP
* FOR(LEFTBR) PUT(STOTYP) STOP
* ELSE ERROR
GOTSTB EQU *
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'1414141414141414141414140C041414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'141414141414141414141414140C1414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
L 7,=A(SGOTYP)
B STRMSTOP
L 7,=A(STOTYP)
B STRMSTOP
BR 14
SPACE
DS 0D
* IBLKTB
* FOR(BLANK) GOTO(FRWDTB)
* FOR(EOS) PUT(EOSTYP) STOP
* ELSE ERROR
IBLKTB EQU *
DC X'14141414140414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'04141414141414141414141414141414'
DC X'14141414141414141414141414140C14'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
SR 0,0
SR 0,0
L 3,=A(FRWDTB)
L 7,=A(EOSTYP)
B STRMSTOP
BR 14
SPACE
DS 0D
* INTGTB
* FOR(NUMBER) CONTIN
* FOR(TERMINATOR) PUT(ILITYP) STOPSH
* FOR(DOT) PUT(FLITYP) GOTO(FLITB)
* ELSE ERROR
INTGTB EQU *
DC X'14141414140414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'04141414141414141414140C14141414'
DC X'14141414141414141414141414040414'
DC X'14141414141414141414140414140414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414041414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'00000000000000000000141414141414'
L 7,=A(ILITYP)
B STRMSHRT
L 7,=A(FLITYP)
L 3,=A(FLITB)
BR 14
SPACE
DS 0D
* LBLTB
* FOR(ALPHANUMERIC) GOTO(LBLXTB)
* FOR(BLANK,EOS) STOPSH
* ELSE ERROR
LBLTB EQU *
DC X'10101010100C10101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'0C101010101010101010101010101010'
DC X'10101010101010101010101010100C10'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10040404040404040404101010101010'
DC X'10040404040404040404101010101010'
DC X'10100404040404040404101010101010'
DC X'10101010101010101010101010101010'
DC X'10040404040404040404101010101010'
DC X'10040404040404040404101010101010'
DC X'10100404040404040404101010101010'
DC X'04040404040404040404101010101010'
SR 0,0
SR 0,0
L 3,=A(LBLXTB)
B STRMSHRT
BR 14
SPACE
DS 0D
* LBLXTB
* FOR(BLANK,EOS) STOPSH
* ELSE CONTIN
LBLXTB EQU *
DC X'00000000000400000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'04000000000000000000000000000000'
DC X'00000000000000000000000000000400'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
B STRMSHRT
SPACE
DS 0D
* NBLKTB
* FOR(TERMINATOR) ERROR
* ELSE STOPSH
NBLKTB EQU *
DC X'08080808080408080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'04080808080808080808080808080808'
DC X'08080808080808080808080808040408'
DC X'08080808080808080808080408080408'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808040808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
BR 14
SR 0,0
B STRMSHRT
SPACE
DS 0D
* NUMBTB
* FOR(NUMBER,PLUS,MINUS) GOTO(NUMCTB)
* FOR(COMMA) PUT(CMATYP) STOPSH
* FOR(COLON) PUT(DIMTYP) STOPSH
* ELSE ERROR
NUMBTB EQU *
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C041C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'041C1C1C1C1C1C1C1C1C1C0C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C141C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'040404040404040404041C1C1C1C1C1C'
SR 0,0
SR 0,0
L 3,=A(NUMCTB)
L 7,=A(CMATYP)
B STRMSHRT
L 7,=A(DIMTYP)
B STRMSHRT
BR 14
SPACE
DS 0D
* NUMCTB
* FOR(NUMBER) CONTIN
* FOR(COMMA) PUT(CMATYP) STOPSH
* FOR(COLON) PUT(DIMTYP) STOPSH
* ELSE ERROR
NUMCTB EQU *
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414140414141414'
DC X'141414141414141414140C1414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'14141414141414141414141414141414'
DC X'00000000000000000000141414141414'
L 7,=A(CMATYP)
B STRMSHRT
L 7,=A(DIMTYP)
B STRMSHRT
BR 14
SPACE
DS 0D
* SNABTB
* FOR(FGOSYM) STOP
* FOR(SGOSYM) STOPSH
* ELSE ERROR
SNABTB EQU *
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C040C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C080C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C040C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C080C0C0C0C0C0C0C0C0C0C0C0C0C'
DC X'0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C'
B STRMSTOP
B STRMSHRT
BR 14
SPACE
DS 0D
* SQLITB
* FOR(SQUOTE) STOP
* ELSE CONTIN
SQLITB EQU *
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000040000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
DC X'00000000000000000000000000000000'
B STRMSTOP
SPACE
DS 0D
* STARTB
* FOR(BLANK) STOP
* FOR(STAR) PUT(EXPFN) GOTO(TBLKTB)
* ELSE ERROR
STARTB EQU *
DC X'10101010100410101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'04101010101010101010101010101010'
DC X'10101010101010101010101008101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
DC X'10101010101010101010101010101010'
B STRMSTOP
L 7,=A(EXPFN)
L 3,=A(TBLKTB)
BR 14
SPACE
DS 0D
* TBLKTB
* FOR(BLANK) STOP
* ELSE ERROR
TBLKTB EQU *
DC X'08080808080408080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'04080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
DC X'08080808080808080808080808080808'
B STRMSTOP
BR 14
SPACE
DS 0D
* UNOPTB
* FOR(PLUS) PUT(PLSFN) GOTO(NBLKTB)
* FOR(MINUS) PUT(MNSFN) GOTO(NBLKTB)
* FOR(DOT) PUT(DOTFN) GOTO(NBLKTB)
* FOR(DOLLAR) PUT(INDFN) GOTO(NBLKTB)
* FOR(STAR) PUT(STRFN) GOTO(NBLKTB)
* FOR(SLASH) PUT(SLHFN) GOTO(NBLKTB)
* FOR(PERCENT) PUT(PRFN) GOTO(NBLKTB)
* FOR(AT) PUT(ATFN) GOTO(NBLKTB)
* FOR(POUND) PUT(PDFN) GOTO(NBLKTB)
* FOR(KEYSYM) PUT(KEYFN) GOTO(NBLKTB)
* FOR(NOTSYM) PUT(NEGFN) GOTO(NBLKTB)
* FOR(ORSYM) PUT(BARFN) GOTO(NBLKTB)
* FOR(QUESYM) PUT(QUESFN) GOTO(NBLKTB)
* FOR(RAISE) PUT(AROWFN) GOTO(NBLKTB)
* ELSE ERROR
UNOPTB EQU *
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'7474747474747474747474147474045C'
DC X'4C7474747474747474746C1C24747454'
DC X'0C2C7474747474747474747434747464'
DC X'7474747474747474747474443C747474'
DC X'74747474747474747474747474747474'
DC X'7474747474747474747474747474746C'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
DC X'74747474747474747474747474747474'
L 7,=A(PLSFN)
L 3,=A(NBLKTB)
L 7,=A(MNSFN)
L 3,=A(NBLKTB)
L 7,=A(DOTFN)
L 3,=A(NBLKTB)
L 7,=A(INDFN)
L 3,=A(NBLKTB)
L 7,=A(STRFN)
L 3,=A(NBLKTB)
L 7,=A(SLHFN)
L 3,=A(NBLKTB)
L 7,=A(PRFN)
L 3,=A(NBLKTB)
L 7,=A(ATFN)
L 3,=A(NBLKTB)
L 7,=A(PDFN)
L 3,=A(NBLKTB)
L 7,=A(KEYFN)
L 3,=A(NBLKTB)
L 7,=A(NEGFN)
L 3,=A(NBLKTB)
L 7,=A(BARFN)
L 3,=A(NBLKTB)
L 7,=A(QUESFN)
L 3,=A(NBLKTB)
L 7,=A(AROWFN)
L 3,=A(NBLKTB)
BR 14
SPACE
DS 0D
* VARATB
* FOR(LETTER) GOTO(VARBTB)
* FOR(COMMA) PUT(CMATYP) STOPSH
* FOR(RIGHTPAREN) PUT(RPTYP) STOPSH
* ELSE ERROR
VARATB EQU *
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C141C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C0C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C0404040404040404041C1C1C1C1C1C'
DC X'1C0404040404040404041C1C1C1C1C1C'
DC X'1C1C04040404040404041C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C0404040404040404041C1C1C1C1C1C'
DC X'1C0404040404040404041C1C1C1C1C1C'
DC X'1C1C04040404040404041C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
SR 0,0
SR 0,0
L 3,=A(VARBTB)
L 7,=A(CMATYP)
B STRMSHRT
L 7,=A(RPTYP)
B STRMSHRT
BR 14
SPACE
DS 0D
* VARBTB
* FOR(ALPHANUMERIC,BREAK) CONTIN
* FOR(LEFTPAREN) PUT(LPTYP) STOPSH
* FOR(COMMA) PUT(CMATYP) STOPSH
* FOR(RIGHTPAREN) PUT(RPTYP) STOPSH
* ELSE ERROR
VARBTB EQU *
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C001C041C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C141C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C0C1C001C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C1C00000000000000001C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C1C00000000000000001C1C1C1C1C1C'
DC X'000000000000000000001C1C1C1C1C1C'
L 7,=A(LPTYP)
B STRMSHRT
L 7,=A(CMATYP)
B STRMSHRT
L 7,=A(RPTYP)
B STRMSHRT
BR 14
SPACE
DS 0D
* VARTB
* FOR(ALPHANUMERIC,BREAK) CONTIN
* FOR(TERMINATOR) PUT(VARTYP) STOPSH
* FOR(LEFTPAREN) PUT(FNCTYP) STOP
* FOR(LEFTBR) PUT(ARYTYP) STOP
* ELSE ERROR
VARTB EQU *
DC X'1C1C1C1C1C041C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'041C1C1C1C1C1C1C1C1C1C00140C1C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C04041C'
DC X'1C1C1C1C1C1C1C1C1C1C1C041C00041C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C1C00000000000000001C1C1C141C1C'
DC X'1C1C1C1C1C1C1C1C1C1C1C1C1C041C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C0000000000000000001C1C1C1C1C1C'
DC X'1C1C00000000000000001C1C1C1C1C1C'
DC X'000000000000000000001C1C1C1C1C1C'
L 7,=A(VARTYP)
B STRMSHRT
L 7,=A(FNCTYP)
B STRMSTOP
L 7,=A(ARYTYP)
B STRMSTOP
BR 14
USING STREAM,15
STREAM LM 4,7,0(2)
STM 1,2,STTEMP
STM 4,7,0(1)
LTR 4,4
BZ 4(14)
LA 1,0(5,6)
BCTR 1,0
AR 4,1
BCTR 4,0
LR 7,0
B STRMTEST
STRMLOOP LR 2,0
C 5,=F'256'
BL STRMSMAL
TRT 1(256,1),0(3)
BNZ STRMJOIN
LA 1,256(1)
B STRMTEST
STRMSMAL EX 5,STRMTRT
BZ STRMOUT
STRMJOIN AR 2,3
EX 0,256-4(2)
EX 0,256(2)
STRMTEST LR 5,4
SR 5,1
BNM STRMLOOP
STRMOUT L 1,=A(STYPE)
ST 7,0(1)
L 2,STTEMP+4
ST 0,0(2)
B 4(14)
STRMSHRT BCTR 1,0
STRMSTOP SR 4,1
LA 4,1(4)
LA 5,1(1)
SR 5,6
LM 2,3,STTEMP
STM 4,5,0(3)
L 3,0(2)
SR 3,4
ST 3,0(2)
L 1,=A(STYPE)
ST 7,0(1)
B 8(14)
STRMTRT TRT 1(0,1),0(3)
STTEMP DC 2F'0'
LTORG
TITLE 'ARITH# AND ADJSWTCH'
ARITH# CSECT
DC F'0'
ADJSWTCH CSECT
DC F'0'
END