1
0
mirror of https://github.com/PDP-10/its.git synced 2026-05-22 13:30:12 +00:00
Files
PDP-10.its/tmp/teco.x65
2023-03-08 07:53:37 +01:00

2789 lines
37 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
RELOCA
TITLE TECO6
FF=0
P"=1
A"=2
AA=3
B=4
E=5
C=6
D=7
F=10
T=11
TT=12
TT1=13
IN=14
OUT=15
CH=16
PF=17
SYM=T
;RIGHT HALF FLAGS
ALTF==1
ARG2==2
ARG==4
ITERF==10
SLSL==20
PCHFLG==40
COLONF==100
SYLF==200
VIEWF==400
FINF==1000
FINDR==2000
QMFLG==4000
NOTF==10000
TRACEF==20000
LET=40000
;LEFT HALF FLAGS
LPTF==20
UREAD==200 ;READING FROM UTAPE
UWRITE==400 ;WRITING ON UTAPE
PNSTOP==1000 ;STOP PUNCH
TYPR1==(30000)
MACDMP==37400
MACCR==37777
LPDL==75
GCTBL==100
LPF==40
INIT":
LOC 41
JSR ETYPER
LOC INIT
CONO 633550+APRCHN
MOVE P,[(,-LPDL)PDL-1]
CONO PTR,20
CONO PTR,0
CONO PI,12237
SETOM CTLBF'
CLEARM SFINDF
MOVEI A,<CBUF+200>*5
MOVEM A,BEG
MOVEM A,PT
MOVEM A,Z
MOVEM A,QRBUF
MOVEI A,CBUF"+77
MOVEM A,CBUFH
MOVEI FF,0
GOZ": SETOM .COAST"
MOVE P,[(,-LPDL)PDL-1]
CONO PI,2237
SETOM .LSTP"
MOVE PF,[(,-LPF)PFL-1]
GOX: SETOM FSHFLG
CLEARM STOPF
CONO TTY,10+TTYCHN
SKIPG TICC
JRST .+3
PUSHJ P,TYI
JRST .-3
CLEARM FSHFLG
PUSHJ P,CRR
GO: MOVE P,[-LPDL,,PDL-1]
SKIPL FSHFLG
SKIPGE STOPF
JRST GOX
TRZN FF,VIEWF
JRST VIEW2
CONO PI,4002
CONO 433550+APRCHN
GO1: CLEARM,LEV
TRZ FF,777777#QMFLG
JRST LIS
TYI: ILDB CH,MACCR
JUMPN CH,CPOPJ
SETZM MACCR
SKIPGE STOPF
JRST GOX
SKIPG TICC
JRST .-3
MOVE A,TIOP
CAMN A,[(10700)TIBE-1]
MOVEI A,TIBO-1
HRRM A,TIOP
ILDB A,TIOP
SOS TICC
MOVE CH,A
POPJ P,
TYO: CAIN CH,11
JRST TYO2
CAIN CH,15
SETOM TABCNR
CAIE CH,12
AOS TABCNR
SKIPG TORM
JRST .-1
IDPB CH,TOIP
SOS TORM
EXCH CH,TOIP
CAMN CH,[(10700)TOBE-1]
HRRI CH,TOBO-1
EXCH CH,TOIP
STYO: CONSO TTY,30
CONO TTY,10+TTYCHN
POPJ P,
TYO2: MOVEI CH,40
PUSHJ P,TYO
MOVE CH,TABCNR
TRNE CH,7
JRST TYO2
MOVEI CH,11
POPJ P,
PITELE: CONSZ TTY,10
JRST TYP1
CONSO TTY,40
JRST TTYRET
DATAI TTY,A
TRZ A,200
FSC A,@ECHOCC
FSC A,@TICC
TLNE A,200000
JRST DING
IDPB A,TIIP
ORCMI A,177
AOJE A,PITEL1
CLEARM STOPF
PITEL2: MOVE A,TIIP
CAMN A,[(10700)TIBE-1]
MOVEI A,TIBO-1
HRRM A,TIIP
AOSA ECHOCC
DING: SETOM DINGF
PUSHJ P,STYO
JRST TTYRET
PITEL1: MOVE A,TIME
SKIPN STOPF
MOVEM A,TSTPTM
AOS A,STOPF
CAIE A,3
JRST PITEL2
MOVE A,TIME
SUB A,TSTPTM
CAIL A,20.
JRST PITEL2-1
HRROS STOPF
SETOM FSHFLG
JRST PITEL2
TYP1: MOVEI A,12
AOSN LIF
JRST TYP3
MOVEI A,7
AOSN DINGF
JRST TYP3
MOVEI A,40
AOSG SPCCC
JRST TYP3
MOVE A,TORM
CAIL A,TOBS
JRST TYP4
MOVE A,TOOP
CAMN A,[(10700)TOBE-1]
MOVEI A,TOBO-1
HRRM A,TOOP
ILDB A,TOOP
AOS TORM
TYP3: CAIN A,10
JRST TYO1
CAILE A,6
CAIL A,16
JRST TYO1
TYP31A: CAIE A,11
JRST TYP31
MOVNI A,3
MOVEM A,SPCCC
JRST TTYRET
TYP31: CAIN A,175
MOVEI A,"$
CAIN A,177
JRST TTYRET
SKIPL FSHFLG
DATAO TTY,A
JRST TTYRET
TYP4: SKIPG ECHOCC
JRST TYP5
MOVE A,ECHOP
CAMN A,[(10700)TIBE-1]
MOVEI A,TIBO-1
HRRM A,ECHOP
MOVEI A,12
HRRM A,TYP1
ILDB A,ECHOP
SOS ECHOCC
AOS TICC
CAIN A,15
SETOM LIF
JRST TYP3
TYP5: CONO TTY,200+TTYCHN
JRST POPRET
TYO1: CAIL A,40
JRST TYP31A
ADDI A,100
HRRM A,TYP1
SETOM LIF
MOVEI A,"^
JRST TYP31
STOPF: 0
FSHFLG: 0
TOIP: (10700)TOBO-1
TOOP: (10700)TOBO-1
TORM: TOBS
TIIP: (10700)TIBO-1
TIOP: (10700)TIBO-1
TICC: 0
ECHOP: (10700)TIBO-1
ECHOCC: 0
TIBO: BLOCK 26.
TIBE:
TOBO: BLOCK 40
TOBE:
TOBS=<TOBE-TOBO>*5
LIF: 0
DINGF: 0
SPCCC: 0
TSTPTM: 0
PPA: TLNE FF,LPTF
PUSHJ P,APILPT
PPA2: TLNE FF,UWRITE
PUSHJ P,UTYO
TLNE FF,PNSTOP
POPJ P,
IORI CH,200
CAIN CH,214
JRST PPA1
PPA3: PUSH P,CH
PUSHJ P,PIPUN
POP P,CH
CAIE CH,211
POPJ P,
MOVEI CH,377
PUSHJ P,PPA2+2
JRST PPA2+2
UTYO: EXCH A,CH
PUSHJ P,UWR"
TYPR1 [ASCII ?TAPE FULL!?]
EXCH A,CH
POPJ P,
PPA1: PUSH P,B
MOVEI B,12
PUSHJ P,FEED1
MOVEI CH,214
PUSHJ P,PIPUN
MOVEI CH,377
MOVEI B,4
PUSHJ P,FEED1+1
MOVEI B,30
PUSHJ P,FEED1
POP P,B
POPJ P,
CRR: MOVEI CH,TYO
HRRM CH,LISTF5
CRR1: MOVEI CH,15
PUSHJ P,@LISTF5
MOVEI CH,12
JRST @LISTF5
SKRCH: SKIPN COMCNT
JSR ERR
RCH: SOSGE COMCNT
JRST RCH2
ILDB CH,CPTR
TRACS: POPJ P, ;OR JRST TYO IN TRACE MODE
RCH2: POP P,CH
POP P,COMCNT
POP P,CPTR
POP P,COMAX
PUSH P,CH
JRST RCH
SKRCH1: SOSGE COMCNT
JSR ERR
ILDB CH,CPTR
POPJ P,
CLIS: PUSHJ P,CRR
LIS: CLEARM COMCNT
CLEARM INTDPH
CLEARM SYMS
MOVE T,[SYMS,,SYMS+1]
BLT T,SYMEND-1
MOVE AA,[(700)CBUF-1]
MOVE B,CBUFH
LI1: TRZ FF,ALTF
LI2: CAILE B,(AA)
JRST LI3
CLEARM BARPNT
ADDI B,100
MOVE C,Z
IDIVI C,5
MOVE D,QRBUF
IDIVI D,5
SUBM C,D
MOVE CH,(C)
MOVEM CH,100(C)
SOS C
SOJGE D,.-3
MOVEI C,500
ADDM C,BEG
ADDM C,PT
ADDM C,Z
ADDM C,QRBUF
LI3: MOVEM B,CBUFH
MOVEI CH,TT
AOSE LIFF
PUSHJ P,TYI
CAIN CH,^M
SETOM LIFF
TRZE FF,QMFLG
CAIE CH,77
AOSA COMCNT
JRST ERRTYP
IDPB CH,AA
CAIE CH,177
JRST LI4
IBP AA
IBP AA
IBP AA
SOS D,AA
CAMN AA,[100700,,CBUF-1]
JRST CLIS
ILDB CH,D
PUSHJ P,TYO
SOS COMCNT
SOS COMCNT
JRST LI1
LI4: CAIE CH,175
JRST LI1
TRON FF,ALTF
JRST LI2
MOVEI CH,141
AOS A,COMCNT
IDPB CH,AA
MOVE AA,[(700)CBUF-1]
MOVEM AA,CPTR
PUSHJ P,CRR
MOVEM A,COMAX
CONO DIS,0
JRST CD
ERRTYP: MOVE AA,ERR2
MOVEI B,12
SUBI AA,2
ILDB CH,AA
CAMG B,ERR1
PUSHJ P,TYO
CAME AA,ERR2
SOJA B,.-4
INI: JSR ERR
CD:
RET: SKIPGE STOPF
JRST GOX
TRZ FF,ARG2+ARG+FINDR
CD1: CLEARM NUM
CD2: MOVSI A,(ADD B,)
CD3: HLLM A,DLIM
CD4: CLEARM SYL
CD5: PUSHJ P,RCH
TRZ FF,FINF
XCT DTB(CH)
CD6: MOVE B,NUM
TRZE FF,SYLF
DLIM: ADD B,SYL
MOVEM B,NUM
MOVE C,SARG
TRZ FF,VIEWF+NOTF+PCHFLG+FINDR
JUMPGE A,(A)
PUSHJ P,(A)
JRST RET
CDNUM: MOVE A,SYL
IMULI A,12
ADDI A,-60(CH)
VALRET: MOVEM A,SYL
CD7: TRO FF,ARG+SYLF
JRST CD5
COMMA: MOVEM B,SARG
TRZE FF,ARG
TROE FF,ARG2
JSR ERR
JRST CD1
CAND: MOVSI A,(AND B,)
JRST CD3
COR: MOVSI A,(IOR B,)
JRST CD3
MINUS: MOVSI A,(SUB B,)
JRST CD3
TIMES: MOVSI A,(IMUL B,)
JRST CD3
SLASH: MOVSI A,(IDIV B,)
JRST CD3
HOLE: CLEARM SARG
TROA FF,ARG2
PNT: SKIPA A,PT
END1: MOVE A,Z
SUB A,BEG
JRST VALRET
OPEN: PUSH P,NUM
HLLZ A,DLIM
TRZE FF,ITERF
IORI A,1
PUSH P,A
AOS LEV
JRST RET
CLOSE: SOSGE LEV
JSR ERR
MOVEM B,SYL
POP P,CH
HLLM CH,DLIM
TRZ FF,ITERF
TRNE CH,1
TRO FF,ITERF
POP P,NUM
JRST CD7
CHK: CAMG B,Z
CAMGE B,BEG
JSR ERR
POPJ P,
CHK1: CAMG C,BEG
MOVE C,BEG
CAML B,Z
MOVE B,Z
CAMLE C,B
JSR ERR
POPJ P,
APPEND: TRNE FF,ARG
JRST APPND1
MOVE OUT,Z
PUSHJ P,YANK2
JRST RET
APPND1: MOVE IN,PT
PUSHJ P,GET
MOVE A,CH
APPND2: CLEARM NUM
JRST VALRET
YANK:YANK1: MOVE OUT,BEG
MOVEM OUT,PT
YANK2:
YANK3: TLNN FF,UREAD
PUSHJ P,PIRPA
TLNE FF,UREAD
YANK4: PUSHJ P,UTYI
PUSHJ P,PUT
CAIE CH,14
AOJA OUT,YANK3
MOVEM OUT,Z
TLNN FF,UREAD
CAME OUT,BEG
POPJ P,
MOVN OUT,RCC
CAIN OUT,10
TRO FF,FINF
POPJ P,
UTYI: PUSHJ P,URED"
TRO FF,FINF
MOVE CH,A
POPJ P,
DEFINE DBP7 A
ADD A,[70000,,]
SKIPGE A
SUB A,[430000,,1]
TERMIN
REVERS: PUSHJ P,CHK2
MOVNS B
CHARAC: PUSHJ P,CHK2
ADD B,PT
JMP1: PUSHJ P,CHK
MOVEM B,PT
JRST RET
JMP: ADD B,BEG
JRST JMP1
CHK2: TROE FF,ARG
POPJ P,
LDB B,[(340200)DLIM]
MOVNS B
AOJA B,CPOPJ
KILL: PUSHJ P,GETARG
PUSHJ P,CHK1
MOVEM C,PT
SUB B,C
JUMPE B,RET
DELETE: PUSHJ P,CHK2
MOVM C,B
MOVNS C
ADD B,PT
PUSHJ P,CHK
CAMGE B,PT
MOVEM B,PT
PUSHJ P,NROOM
DEL2:
JRET: JRST RET
FEED:
FEED1: MOVEI CH,0
PUSHJ P,PPA3
SOJG B,.-1
POPJ P,
TAB: PUSHJ P,TAB2
INSERT: TRNE FF,ARG
JRST INS1A
MOVEI CH,175
TRZE FF,SLSL
PUSHJ P,RCH
MOVEM CH,A
MOVE B,CPTR
MOVEI C,0
PUSHJ P,SKRCH
CAME CH,A
AOJA C,.-2
PUSHJ P,NROOM
ADD B,CRREL
INS1B: MOVE OUT,PT
ILDB CH,B
CAMN CH,A
POPJ P,
PUSHJ P,PUT
AOS CH,PT
JRST INS1B
INS1A:
TAB1: MOVE CH,NUM
TAB2: MOVEI C,1
PUSHJ P,NROOM
AOS OUT,PT
SOJA OUT,PUT
UAR: TROA FF,SLSL
COLON: TRO FF,COLONF
JRST RET
TYOM: PUSH P,C
PUSH P,OUT
PUSH P,TT
PUSH P,TT1
PUSHJ P,TAB2
POP P,TT1
POP P,TT
POP P,OUT
POP P,C
POPJ P,
LARR: TROA FF,FINDR
SERCHP: TRO FF,PCHFLG
SERCH: MOVE E,B
CLEARM NUM
MOVEI CH,175
TRZE FF,SLSL
PUSHJ P,RCH
MOVEM CH,B
; MOVEI F,GCTAB ;SEARCH TABLE FORMAT
;SRCH1: HRRZS TT,F ;.+4,,.
HRLZI F,-40
SERCH2: PUSHJ P,RCH ;CAIN CH,"F
; CAMN CH,SBRK ;CAIE CH,"O
; JRST SRLP1 ;CAIN CH,"O
; CAIN CH,^O ;.+6,,.
; JRST SRLP2 ;CAIN CH," ;SPACE
cain ch,(b)
JRST SERCH1
CAIN CH,^X ;CAIE CH,"S
JRST CNTRX ;CAIN CH,"P
CAIN CH,^N ;PUSHJ P,CNTRB1
JRST CNTRN ;CAIA CH,^X
CAIN CH,^B ;CAIN CH,")
JRST CNTRB ;MEANS SF^NOO^O ^NSP^N^B^X)$$
CAIN CH,^Q
PUSHJ P,RCH
HRLI CH,(CAIN CH,)
SERCH4: TRZE FF,NOTF
TLC CH,(CAIE#CAIN)
MOVEM CH,STAB(F)
AOBJN F,SERCH2
JSR ERR
SERCH1: MOVE IN,PT
TRNE FF,ARG
JUMPLE E,FND
CAML IN,Z
JRST NOFND
MOVEI D,STAB
SERCH3: CAIN D,STAB(F)
JRST FND
PUSHJ P,GETINC
XCT (D)
SERCH5: AOJA D,SERCH3
SRCH5A: AOS PT
JRST SERCH1
FND: CAMLE IN,Z
JRST NOFND
SETOM SFINDF
MOVEM IN,PT
SOJG E,SERCH1
TRZN FF,COLONF
JRST RET
MOVNI A,1
JRST VALRET
NOFND: MOVE IN,BEG
MOVEM IN,PT
CLEARM SFINDF
TRNE FF,PCHFLG+FINDR
JRST NOFND1
BEGIN1: TRZN FF,COLONF
JRST NOFND2
BEGIN2: TRZ FF,PCHFLG+FINDR
BEGIN: MOVEI A,0
JRST VALRET
NOFND1: TRNE FF,FINF
JRST BEGIN1
PUSH P,E
MOVEI B,1
TRNE FF,PCHFLG
PUSHJ P,PUNCHA
TRNE FF,FINDR
PUSHJ P,YANK1
POP P,E
JRST SERCH1
FND1: SOJG E,SERCH1
JRST RET
NOFND2: TRNE FF,ITERF
JRST BEGIN2
JSR ERR
CNTRB: SKIPA CH,[JSR P,CNTRB1]
CNTRX: MOVSI CH,(CAI)
JRST serch4
CNTRB1: JRST DQT2
MOVE A,[JRST DQT2]
MOVEM A,CNTRB1
PUSHJ P,DQT2
JRST SRCH5A
JRST SERCH5
CNTRN: TRO FF,NOTF
JRST SERCH2
TYPE:
TYPE4: MOVEI D,TYO
PUSHJ P,GETARG
TYPE1: PUSHJ P,CHK1
MOVE IN,C
TYPE3: CAML IN,B
JRST TYPE5
PUSHJ P,GETINC
PUSHJ P,(D)
JRST TYPE3
TYPE5: MOVEI A,PPA
MOVEI CH,14
CAIE A,(D)
POPJ P,
CPPA: JRST PPA
USE: TRNN FF,ARG
JSR ERR
USEA: PUSHJ P,QREGA
MOVEM B,QTAB-60(CH)
JRST RET
QREG: PUSH P,USE1
QREGA: PUSHJ P,RCH
CAIL CH,"0
CAILE CH,"Z
JSR ERR
CAIL CH,"9+1
SUBI CH,"A-"9-1
MOVE A,QTAB-"0(CH)
USE1: POPJ P,VALRET
PUNCH:
PUNCHA: MOVEI D,CPPA
TRNE FF,ARG2
JRST TYPE1-1
MOVE E,B
MOVE B,CPTR
ILDB T,B
JUMPL E,CPOPJ
PUN1: PUSHJ P,PUNCHR
SKIPE COMCNT
CAIE T,"W
PUSHJ P,YANK1
MOVE C,Z
CAMN C,BEG
TRNN FF,FINF
SOJG E,PUN1
CPOPJ: POPJ P,VIEW1
PUNCHR: SKIPGE STOPF
JRST GOX
MOVE C,BEG
MOVE B,Z
MOVEI D,PPA
JRST TYPE1
DPT: JUMPGE B,.+3
MOVEI CH,"-+200
PUSHJ P,@LISTF5
IDIVI B,10.
MOVMS E
HRLM E,(P)
JUMPE B,SLDP1
PUSHJ P,.-4
SLDP1: HLRZ CH,(P)
ADDI CH,"0
JRST @LISTF5
PRNT: TRNN FF,ARG
JSR ERR
MOVEI A,TYO
HRRM A,LISTF5
PUSHJ P,DPT
JRST CRR
DD: ANDI B,3
ROT B,4
MOVEM B,CHSIZ
JRST RET
DQUOTE: TRNN FF,ARG
JSR ERR
PUSHJ P,RCH
MOVSI A,0
IRPC Z,,[GLNE]
CAIN CH,"Z
MOVSI A,(JUMP!Z B,)
TERMIN
CAIN CH,"C
JRST DQT1
JUMPE A,ERR+1
HRRI A,RET
XCT A
NOGO: MOVEI A,0
PUSHJ P,SKRCH1
CAIN CH,42
AOJA A,.-2
CAIN CH,47
SOJL A,RET
JRST .-5
EXCLAM: PUSHJ P,SKRCH
CAIE CH,"!
JRST .-2
JRST RET
DQT1: PUSHJ P,DQT3
JRST RET
JRST NOGO
DQT2: MOVE B,CH
;SKIP IF CH HAS A BREAK CHARACTER
DQT3: CAIE B,"$
CAIN B,"%
POPJ P,
CAIN B,".
POPJ P,
CAIGE B,"0
JRST POPJ1
CAIG B,"9
POPJ P,
CAIGE B,"A
JRST POPJ1
CAIG B,"Z
POPJ P,
JRST POPJ1
OG: MOVE A,CPTR
MOVE AA,A
IDIVI AA,17
CAMN A,SYMS(B)
JRST OGFND
SKIPN SYMS(B)
JRST OGNF
CAMN A,SYMS+1(B)
ES1: AOJA B,OGFND
SKIPN SYMS+1(B)
ES2: AOJA B,OGNF
CAMN A,SYMS+2(B)
AOJA B,ES1
SKIPN SYMS+2(B)
ADDI B,2
OGNF: PUSH P,CPTR
PUSH P,B
MOVEI D,STAB+1
MOVEI A,41
MOVEM A,-1(D)
PUSHJ P,SKRCH
MOVEM CH,(D)
CAIE CH,175
AOJA D,.-3
MOVEM A,(D)
MOVE B,COMCNT
SUB B,COMAX
IDIVI B,5
ADD B,CPTR
JUMPE E,OG2
SOS B
MOVMS E
JRST .(E)
IBP B
IBP B
IBP B
IBP B
OG2: MOVE AA,COMAX
OG4: MOVEM B,CPTR
MOVEM AA,COMCNT
MOVEI E,STAB
OG5: CAIN E,1(D)
JRST OG3
PUSHJ P,SKRCH1
CAMN CH,(E)
AOJA E,OG5
IBP B
SOJA AA,OG4
OG3: POP P,A
POP P,SYMS(A)
MOVEM AA,CNTS(A)
MOVEM B,VALS(A)
JRST RET
PCNT: PUSHJ P,QREGA
AOS A,QTAB-60(CH)
JRST VALRET
OGFND: MOVE A,VALS(B)
MOVEM A,CPTR
MOVE A,CNTS(B)
MOVEM A,COMCNT
JRST RET
CHSIZ: 20
VIEW: TRO FF,VIEWF
PUSHJ P,DISINI
PUSH P,CPOPJ ;POPJ P,VIEW1
MOVEI D,DISAD
TRNE FF,VIEWF
JRST TYPE4+1
JRST TYPE1
VIEW1: PUSHJ P,DISCLG
MOVE T,CPTR
ILDB B,T
TRNN FF,VIEWF
JRST GO1
SKIPE COMCNT
CAIE B,"W
JRST RET
PUSHJ P,TYI
CONO DIS,0
PUSHJ P,RCH
JRST APPND2
VIEW2: CONO DIS,0
MOVE B,NLINES
PUSHJ P,GETAG7
PUSH P,B
MOVN B,NLINES
PUSHJ P,GETAG7
POP P,B
JRST VIEW+1
NLINES: 20.
ERR: 0
PUSHJ P,UWAIT"
MOVEI CH,277
PUSHJ P,TYO
PUSHJ P,CRR
TRO FF,QMFLG
MOVE A,COMAX
SUB A,COMCNT
MOVEM A,ERR1
MOVE A,CPTR
MOVEM A,ERR2
JRST GO
CNTRUP: PUSHJ P,RCH
MOVE A,CH
JRST VALRET
QUESTN: MOVE A,[JRST TYO]
TRCE FF,TRACEF
MOVSI A,(POPJ P,)
MOVEM A,TRACS
JRST RET
BAKSL: TRZE FF,ARG
JRST BAKSL1
SKIPA IN,PT
BAKSLM: TRO FF,ARG
BAKSLA: CAML IN,Z
JRST BAKSL3
PUSHJ P,GETINC
CAIN CH,"-
JRST BAKSLM
CAIG CH,"9
CAIGE CH,"0
SOJA IN,BAKSL2
SUBI CH,"0
EXCH CH,SYL
IMULI CH,10.
ADDM CH,SYL
JRST BAKSLA
BAKSL3: MOVE IN,Z
BAKSL2: TRZE FF,ARG
MOVNS SYL
MOVEM IN,PT
JRST CD7
BAKSL1: MOVE T,[(700)BAKTAB]
MOVEI C,0
MOVEI CH,BAKSL4
HRRM CH,LISTF5
PUSHJ P,dpt
MOVEI A,141
IDPB A,T
MOVE B,[(700)BAKTAB]
PUSHJ P,NROOM
PUSHJ P,INS1B
JRST RET
BAKSL4: IDPB CH,T
AOJA C,CPOPJ
CLOSEB: SKIPA C,[POP PF,]
OPENB: MOVSI C,(PUSH PF,)
PUSHJ P,QREGA
HRRI C,QTAB-"0(CH)
XCT C
JRST CD5
SEMICL: TRNN FF,ITERF
JSR ERR
TRNN FF,ARG
MOVE B,SFINDF
INCMA: JUMPL B,CD
MOVEI A,0
INCMA1: PUSHJ P,SKRCH1
CAIN CH,74
AOJA A,INCMA1
CAIE CH,76
JRST INCMA1
SOJGE A,INCMA1
INCMA2: SOS INTDPH
SUB P,[3,,3]
POP P,ITERCT
JRST RET
GRTH: SKIPG INTDPH
JSR ERR
TRZ FF,ITERF
SOSN ITERCT
JRST INCMA2
MOVE A,-1(P)
MOVEM A,CPTR
MOVE A,(P)
MOVEM A,COMCNT
TRNE FF,TRACEF
PUSHJ P,CRR
LSSTH1: TROA FF,ITERF
FLDSZ: MOVEM B,NLINES
JRST RET
LSSTH: AOS INTDPH
PUSH P,ITERCT
PUSH P,COMAX
PUSH P,CPTR
PUSH P,COMCNT
SETOM ITERCT
TRZE FF,ARG
MOVEM B,ITERCT
JRST LSSTH1
LINE: TRNE FF,ARG2
JSR ERR
PUSHJ P,GETARG
XOR B,C
XORM B,PT
JRST RET
GTIME: SKIPA A,TIME
LAT: DATAI A
JRST VALRET
DECDMP:
PUSHJ P,LPTWAT"
PUSHJ P,UWAIT"
CONSZ PTP,7
JRST .-2
CONSO TTY,30
CONSZ TTY,30
JRST DECDMP
CONO 435550
MOVE A,CPTR
ILDB CH,A
CAIN CH,175
JRST MACDMP
MOVE T,[(700)37760-1
MOVEM T,MACCR
DCDMP2: PUSHJ P,RCH
CAIN CH,"$
MOVEI CH,375
IDPB CH,T
CAIE CH,175
JRST DCDMP2
MOVEI CH,15
DPB CH,T
MOVEI CH,0
IDPB CH,T
JRST MACDMP+1
MAC: PUSHJ P,QREGA
PUSH P,COMAX
PUSH P,CPTR
PUSH P,COMCNT
TLZE A,400000
TLZE A,377777
JSR ERR
ADD A,QRBUF
MOVE IN,A
PUSHJ P,GETINC
CAIE CH,141
JSR ERR
PUSHJ P,GETINC
MOVE A,CH
PUSHJ P,GET
ROT CH,7
IOR A,CH
SUBI A,3
MOVEM A,COMCNT
MOVEM A,COMAX
IDIVI IN,5
MOVE OUT,BTAB(OUT)
HRR OUT,IN
TLZ OUT,17
MOVEM OUT,CPTR
JRST CD5
X: PUSHJ P,GETARG
CAMLE C,B
JSR ERR
EXCH B,C
SUBI C,-3(B) ;C HAS NO. CHARS TO X AWAY + 3
ADD B,C ;1ST THREE CHARS ARE GLITCH, REMAINDER, LENGTH STRING/7
PUSH P,PT
ADDM C,(P)
MOVE D,BEG
MOVEM D,PT
PUSHJ P,NROOM
MOVE OUT,RREL
ADDM OUT,(P)
ADD B,OUT
MOVE OUT,BEG
ADDM C,BEG
MOVEI CH,141
PUSHJ P,PUT
AOS OUT
MOVE CH,C
PUSHJ P,PUT
ROT CH,-7
MOVE IN,B
AOS OUT
X1: PUSHJ P,PUT
AOS OUT
CAIN C,3
JRST X2
PUSHJ P,GETINC
SOJA C,X1
X2: MOVE B,PT
SUB B,QRBUF
TLO B,400000
POP P,PT
JRST USEA
QGET: PUSHJ P,QREG+1
MOVE B,A
TLZN B,377777
TLZN B,400000
JSR ERR
ADD B,QRBUF
MOVE IN,B
MOVE B,CH
PUSHJ P,GETINC
CAIE CH,141
JSR ERR
PUSHJ P,GETINC
MOVEM CH,C
PUSHJ P,GETINC
ROT CH,7
IORM CH,C
SUBI C,3
PUSHJ P,NROOM
MOVE OUT,PT
HRRZ IN,QTAB-"0(B)
ADD IN,QRBUF
ADDI IN,3
QGET1: JUMPE C,RET
PUSHJ P,GETINC
PUSHJ P,PUT
AOS OUT,PT
SOJA C,QGET1
CLRBF: PUSHJ P,PIBUFC
CONO PTR,0
JRST RET
GETARG: TRNE FF,ARG2
JRST GETAG6
TRON FF,ARG
PUSHJ P,CHK2+2
GETAG7: MOVE IN,PT
GETAG4: JUMPLE B,GETAG2
CAMN IN,Z
JRST GETAG5
PUSHJ P,GETINC
CAIE CH,12
JRST GETAG4
SOJG B,GETAG4
GETAG1: MOVE B,IN
MOVE C,PT
POPJ P,
GETAG5: MOVE B,IN
JRST GETAG1+1
GETAG6: ADD B,BEG
ADD C,BEG
POPJ P,
GETAG2: SOS IN
CAMG IN,BEG
JRST GETAG3
PUSHJ P,GETINC
CAIE CH,12
SOJA IN,GETAG2
AOJLE B,.-1
GETAG3: CAMGE IN,BEG
MOVE IN,BEG
MOVE C,IN
MOVE B,PT
POPJ P,
ECMD: PUSHJ P,.OPNTP
ECMD1: PUSHJ P,RCH
CAIN CH,"L
JRST LISTF
CAIN CH,"R
JRST .OPNRD
CAIN CH,"C
JRST CLSTP
CAIN CH,"F
JRST .FILE
CAIN CH,"D
JRST DELE
CAIN CH,"N
JRST RENAM
CAIN CH,"I
JRST WINIT
CAIN CH,"K
JRST TAPKIL"
CAIN CH,"S
JRST MTNAM
CAIN CH,"T
POPJ P,
CAIN CH,"M
JRST LISTFM
JSR ERR
.OPNTP: MOVE A,B
TRNN FF,ARG
MOVE A,UFPNTR+2
.OPN1: PUSHJ P,FILEST"
JRST UTERR
POPJ P,
UTERR: JRST .+3(A)
TYPR1 [ASCII /UNIT UNABLE
!/]
TYPR1 [ASCII /BAD DIRECTORY
!/]
TYPR1 [ASCII /TOO MANY DIRECTORIES
!/]
XON: TLOA FF,UREAD
XOFF: TLZ FF,UREAD
JRST RET
TAPE: TLZA FF,PNSTOP
NTAPE: TLO FF,PNSTOP
JRST RET
CNTRLB:
MOVEI CH,14
AOSN CTLBF'
PUSHJ P,APILPT
TLO FF,PNSTOP
TLOA FF,LPTF
CNTRLE: TLZ FF,LPTF
JRST RET
CNTRLW: TLOA FF,UWRITE
CNTRLV: TLZ FF,UWRITE
JRST RET
PATCH: BLOCK 100
ZZ==.
RDCHN==3<>
PCHCHN==UTCCHN"
FLGCHN==6
DATCHN==7
APRCHN==5
TPCHN==2
TPCHNA==40
LPTCHN==PCHCHN
TTYCHN==PCHCHN
LOC 40+APRCHN+APRCHN
JSR IAPRBRK
LOC 40+RDCHN+RDCHN
JSR RBRK
LOC 40+FLGCHN+FLGCHN
JSR RECYC
LOC 40+DATCHN+DATCHN
BLKO DIS,BLKOP
JRST 4,.
LOC 40+PCHCHN+PCHCHN
JSR PBRK
LOC ZZ
RECYC: 0
EXCH A,BLKOPR
MOVEM A,BLKOP
EXCH A,BLKOPR
CONO DIS,100+FLGCHN*10+DATCHN
JRST 12,@RECYC
DISINI: MOVE T,Z
IDIVI T,5
ADDI T,A
MOVEM T,DISBUF
MOVEI TT,20115
IOR TT,CHSIZ
PUSH T,TT
PUSH T,[221700060000
HRLI T,600
MOVEM T,DISPNR
LDB TT,[(40200)CHSIZ
MOVNS TT
MOVEI T,170.
LSH T,(TT)
TRZ T,7
MOVEM T,CHCNTS
MOVNM T,CHCNT
MOVEI T,100.
MOVEM T,LINES
CLEARM BARPNT
POPJ P,
DEFINE LC A
A,,DISLC
TERMIN
DEFINE UC A
DISUC,,A
TERMIN
DEFINE AC A
A,,A
TERMIN
DISAD: SKIPN LINES
POPJ P,
MOVE A,PT
CAIN IN,1(A)
JRST DISBAR
DISAD7: CAIL CH,"
CAILE CH,"Z
JRST DISAD1
DISAD5: AOSG CHCNT
DISAD6: IDPB CH,DISPNR
POPJ P,
DISAD1: CAIN CH,^M
JRST DISAD2
CAIN CH,^J
JRST DISAD3
CAIN CH,^G
JRST DISAD8
CAIE CH,^I
JRST DISAD4
MOVEI CH,40
PUSHJ P,DISAD5
LDB CH,[300,,CHCNT]
JUMPN CH,.-3
POPJ P,
DISAD2: MOVE CH,CHCNTS
MOVNM CH,CHCNT
MOVEI CH,34
JRST DISAD6
DISAD4: CAIL CH,40
CAIL CH,140
JRST DISBLB
MOVS CH,BLOBS-"[(CH)
DISAD9: HRRI CH,36
IDPB CH,DISPNR
MOVSS CH
IDPB CH,DISPNR
MOVEI CH,35
JRST DISAD5
DISAD3: SOS LINES
MOVEI CH,33
JRST DISAD6
DISAD8: MOVSI CH,63
JRST DISAD9
DISBAR: MOVEI A,36
IDPB A,DISPNR
MOVEI A,62
IDPB A,DISPNR
MOVE A,DISPNR
MOVEM A,BARPNT
MOVEI A,35
IDPB A,DISPNR
JRST DISAD7
BLOBS: 53 ? 52 ? 54 ? 46 ? 51 ? 50
LINES: 0
DISBLB: PUSH P,CH
MOVEI CH,36
IDPB CH,DISPNR
MOVEI CH,50
IDPB CH,DISPNR
MOVEI CH,73
IDPB 16,DISPNR
MOVEI CH,35
IDPB 16,DISPNR
MOVE CH,(P)
CAIGE CH,100
JRST DISBB1
MOVEI 16,61
PUSHJ P,DISAD5
DISBB1: MOVE CH,(P)
ANDI CH,70
JUMPE CH,DISBB2
LSH CH,-3
ADDI CH,"0
PUSHJ P,DISAD5
DISBB2: POP P,CH
ANDI CH,7
ADDI CH,"0
PUSHJ P,DISAD5
MOVSI CH,77
JRST DISAD9
DISCLG: MOVE A,DISPNR
MOVEI CH,37
IDPB CH,A
TLNE A,550000
JRST .-2
TLC A,2400
MOVEI CH,3000
IDPB CH,A
HRRZ B,DISBUF
MOVEM B,BLKOPR
MOVEI CH,6
CAIL B,-20.(A)
XORM CH,1(B)
CONO PI,2237
CONO PI,4002
CONO APR,2000+APRCHN
POPJ P,
GET: MOVE TT,IN
IDIVI TT,5
LDB CH,BTAB(TT1)
POPJ P,
PUT: MOVE TT,OUT
IDIVI TT,5
DPB CH,BTAB(TT1)
POPJ P,
GETINC: PUSHJ P,GET
AOJA IN,GETINC-1
BTAB: 350700+TT,,
260700+TT,,
170700+TT,,
100700+TT,,
10700+TT,,
NROOM: MOVEM 17,AC2+15
MOVE 17,PT
CAMN 17,Z
JRST NROOM1
MOVE 17,[(2)AC2]
BLT 17,AC2+14
JUMPL C,NROOM6
SETOM GCFLG
CLEARM CRREL
CLEARM RREL
NROOM9: MOVE 17,Z
ADD 17,C
CAML 17,MEMSIZ
JRST GC
MOVE 14,C
IDIVI 14,5
IMULI 15,7
MOVN 13,15
MOVEI 15,-43(15)
MOVE 11,PT
IDIVI 11,5
MOVNI 16,-5(12)
IMULI 16,7
DPB 16,[(300600)NROOM2]
ADDI 14,1(11)
MOVE 16,Z
IDIVI 16,5
MOVEI B,1(16)
SUB B,11
HRLI 11,(MOVE A,(B))
HRLOI 12,(ROT A,)
HRLI 13,(ROTC A,)
HRLI 14,(MOVEM AA,(B))
HRLI 15,(ROTC A,)
MOVE 17,[JRST,.+3]
MOVE 16,.+1
SOJGE B,11
ROTC A,43(13)
DPB A,NROOM2
ADDM C,Z
NROOM5: MOVS 17,[(2)AC2]
BLT 17,17
POPJ P,
NROOM2: (10000),-1(14)
NROOM1: ADDM C,Z
MOVE 17,AC2+15
POPJ P,
NROOM6: MOVE 14,PT
IDIVI 14,5
MOVEM 14,B
HRRM 14,NROOM4
IMULI 15,7
DPB 15,[(300600)NROOM4
MOVNI 15,-44(15)
DPB 15,[(360600)NROOM4
MOVE 11,Z
IDIVI 11,5
ADDI 11,1
MOVE 13,C
IDIVI 13,5
ADDI 13,-1(11)
MOVNM 14,12
IMULI 12,7
MOVNI 15,-43(12)
SUBI B,1(13)
NROOM8: HRLI 11,(MOVE AA,(B))
HRLI 12,(ROTC A,)
HRLI 13,(MOVEM A,(B))
MOVE 14,[ADDM A,@13
HRLI 15,(ROTC A,)
MOVE 17,[JRST NROOM3
ADDM C,Z
LDB C,NROOM4
MOVE A,@11
ROT A,-1
MOVE 16,.+1
AOJLE B,11
NROOM3: DPB C,NROOM4
JRST NROOM5
NROOM4: 0
GC: AOSE GCFLG
TYPR1 [ASCII /STORAGE CAPACITY EXCEEDED
!/]
SETOM GCPTR
CLEARM SYMS
MOVE T,[SYMS,,SYMS+1
BLT T,SYMEND-1 ;CLEAR O SYM TAB
MOVEI T,CPTR ;MARK CPTR
PUSHJ P,GCMA
HRRZ T,P
CAIL T,PDL
PUSHJ P,GCMA
CAILE T,PDL
SOJA T,.-2 ;MARK PDL
HRRZ T,AC2+PF-2 ;SAVED PF
CAIL T,PFL
PUSHJ P,GCM
CAILE T,PFL
SOJA T,.-2
MOVE T,[(,-36.)QTAB]
PUSHJ P,GCM
AOBJN T,.-1
SKIPGE GCPTR
JRST NROOM9
GCS: MOVE IN,QRBUF
GCS1A: MOVSI TT,1*5
MOVE OUT,GCPTR
GCS1: HRRZ A,GCTAB(OUT)
ADD A,QRBUF
CAMGE A,IN
JRST GCS2
CAMGE A,TT
MOVE TT,A
GCS2: SOJGE OUT,GCS1
TRNN TT,-1
JRST NROOM9
MOVE F,TT
IDIVI IN,5
IDIVI F,5
AOS IN
MOVS OUT,F
MOVE T,F
SUB T,IN
JUMPLE T,GCS4A
HRR OUT,IN
MOVE B,Z
IDIVI B,5
SUB B,T
BLT OUT,(B)
MOVNS OUT,T
IMULI OUT,5
ADDM OUT,BEG
ADDM OUT,PT
ADDM OUT,Z
ADDM OUT,RREL
MOVE CH,GCPTR
GCS3: HRRZ A,GCTAB(CH)
ADD A,QRBUF
CAMGE A,TT
JRST GCS4
ADDM OUT,GCTAB(CH)
HLRZ A,GCTAB(CH)
CAIN A,CPTR
ADDM OUT,CRREL
SKIPL (A)
ADDM T,(A)
SKIPGE (A)
ADDM OUT,(A)
GCS4: SOJGE CH,GCS3
ADD TT,OUT
GCS4A: MOVE IN,TT
PUSHJ P,GETINC
CAIE CH,141
GCERR: TYPR1 [ASCII /GC ERROR
!/]
PUSHJ P,GETINC
MOVE A,CH
PUSHJ P,GETINC
ROT CH,7
IOR A,CH
ADDI IN,-3(A)
JRST GCS1A
GCM: MOVE IN,(T)
TLZE IN,400000
TLZE IN,377777
POPJ P,
ADD IN,QRBUF
GCM2: CAML IN,BEG
POPJ P,
PUSHJ P,GET
CAIE CH,141
POPJ P,
SUB IN,QRBUF
JUMPL IN,CPOPJ
AOS TT,GCPTR
CAIL TT,GCTBL
JRST GCERR
HRL IN,T
MOVEM IN,GCTAB(TT)
POPJ P,
GCMA: LDB TT,[(221400+T)] ;PTR IN T
CAIE TT,700
POPJ P,
MOVE IN,-1(T) ;GET COMAX
SUB IN,1(T) ;SUB COMCNT
LDB TT,[(360600+T)]
IDIVI TT,7
MOVEI TT1,2
SUB TT1,TT
HRRZ TT,(T)
IMULI TT,5
ADD TT,TT1
SUBM TT,IN
JRST GCM2
IAPRBRK: 0
PUSH P,A
CONSO 1200
JRST ILMEM
CONO 1440+APRCHN
JSR APRBRK"
SOSG BARFL1
JRST BARFL2
APRBK7: SKIPGE OFTAPE
CONSZ PTR,400
JRST APRB69
SETOM PWOWOT
APRB69: SKIPGE RBRK+1
AOSG RDRUN
JRST APRBK3
MOVEI A,(JSR)
HRLM A,RBRK+1
SETOM OFTAPE
CONO PTR,400
APRBK3: CONSO DIS,77
JRST APRBA
MOVE A,BLKOP
HRRZS BLKOP
CAMN A,BLKOP
CONO PI,4002
APRBA: AOS TIME
POP P,A
JRST 12,@IAPRBRK
BARFL2: CONSO DIS,77
JRST APRBK7
MOVEI A,30.
MOVEM A,BARFL1
LDB A,BARPNT
TRC A,22
DPB A,BARPNT
JRST APRBK7
ILMEM: MOVEI B,0
CONSO 200000
MOVEI B,10
CONO 433550+APRCHN
MOVE P,[(,-LPDL)PDL]
MOVEI CH,7
PUSHJ P,TYO
SOJG B,.-1
JRST 10,ERR+1
APILPT: EXCH A,CH
PUSHJ P,PILPT"
EXCH A,CH
POPJ P,
PIPUN: SKIPG PUNCC
JRST .-1
IDPB CH,PUNIP
HRRZ CH,PUNIP
CAIN CH,PUNBE-1
MOVEI CH,PUNBO
HRRM CH,PUNIP
SOS CH,PUNCC
CONSO PTP,7
CONO PTP,10+PCHCHN
POPJ P,
PBRK: 0
JSR UTCBRK"
PUSH P,A
PBRK1:
JRST LPTBRK"
LPTRTN":
CONSO PTP,10
JRST PITELE
MOVEI A,+<PUNBE-PUNBO>*4-4
CAMG A,PUNCC
JRST PUNSTP
ILDB A,PUNOP
DATAO PTP,A
HRRZ A,PUNOP
CAIN A,PUNBE-1
MOVEI A,PUNBO
HRRM A,PUNOP
AOSA PUNCC
PUNSTP: CONO PTP,0
POPRET": POP P,A
JRST 12,@PBRK
PUNCC: +<PUNBE-PUNBO>*4-4
PUNIP: (1000)PUNBO-1
PUNOP: (1000)PUNBO-1
TTYRET=POPRET
RBRK: 0
JSR RDTEM
EXCH B,RDTEM
PUSH P,A
MOVNI A,10
MOVEM A,RDRUN
IDPB B,RDIP
HRRZ A,RDIP
CAIN A,RBEND-1
MOVEI A,RBUF
HRRM A,RDIP
AOS A,RCC
CAILE A,RDCHAR/4
CAIE B,214
CAIL A,RBEND*5-RBUF*5-30
JRST RBRK2
RBRK3: POP P,A
MOVE B,RDTEM
JRST 12,@RBRK
RBRK2: MOVEI A,(JSR)
HRLM A,RBRK+1
JRST RBRK3
RDTEM: 0
CONO PTR,RDCHN
JRST 12,@RBRK
PIRPA3: AOSN PWOWOT
PUSHJ P,PIBUF1
AOSG OFTAPE
JRST PIBUFX
MOVEI CH,20
SKIPL RBRK+1
PUSHJ P,RDST+1
PIRPA: SKIPG RCC
JRST PIRPA3
HRRZ CH,RDOP
CAIN CH,RBEND-1
MOVEI CH,RBUF
HRRM CH,RDOP
SOS CH,RCC
SKIPL OFTAPE
CAIL CH,RDCHAR*3/4
JRST PIRPA4
SKIPL RBRK+1
PUSHJ P,RDST
PIRPA4: ILDB CH,RDOP
CAIN CH,177
JRST PIRPA
JUMPE CH,PIRPA
POPJ P,
PIBUFX: CONO PTR,400
JRST PIBUFD
PIBUF1: CLEARM OFTAPE
PIBUFC: CONO PTR,0
PIBUFD: MOVNI CH,10
MOVEM CH,RCC
MOVE CH,RDIP
MOVEM CH,RDOP
MOVEI CH,(JSR)
HRLM CH,RBRK+1
MOVEI CH,14
POPJ P,
RDST: MOVEI CH,10
MOVNM CH,RDRUN
CONSZ PTR,20
JRST .-1
HRLI CH,(DATAI PTR,)
HLLM CH,RBRK+1
CONO PTR,RDCHN(CH)
POPJ P,
RDOP: (700)RBUF
RDIP: (700)RBUF
RCC: 0
OFTAPE: 0
RDRUN: 0
LOOK: HRLZI A,-27
SKIPA TT,UFPNTR"
ADDI TT,2
CAMN B,(TT)
CAME C,1(TT)
AOBJN A,LOOK+2
TLZN A,-1
POPJ P, ;NOT FOUND
AOJA A,WR2
POPJ1:
WR2: AOS (P)
POPJ P,
FRD2: SKIPA A,AA
FRD: MOVSI A,(SIXBIT /@/)
MOVSI AA,(SIXBIT /@/)
MOVE T,[(600)A
FRD1: PUSHJ P,RCH
CAIN CH,175
POPJ P,
TRC CH,40
JUMPE CH,FRD-1
CAIN CH,77
MOVEI CH,0
CAME T,[(600)AA
IDPB CH,T
JRST FRD1
RRED: MOVE A,LFRED1
MOVE AA,LFRED2
JRST .OPNR1
.OPNRD: PUSHJ P,FRD
MOVEM A,LFRED1
MOVEM AA,LFRED2
.OPNR1: PUSHJ P,OPNRD"
TYPR1 [ASCII /FILE NOT FOUND
!/]
TLO FF,UREAD
POPJ 1,
LFRED1: 0
LFRED2: 0
DELE: PUSHJ P,FRD
JRST UDELE"
.FILE: PUSHJ P,FRD
MOVEM A,LFRED1
MOVEM AA,LFRED2
PUSHJ P,FILE"
TPFUL: TYPR1 [ASCII /TAPE FULL!/]
POPJ P,
CLSTP: TRNN FF,ARG2
JRST UCLSTP"
PUSH P,UFPNTR+2
PUSH P,UFPNTR
MOVE A,C
PUSHJ P,.OPN1
POP P,UFPNTR
PUSHJ P,UCLSTP
POP P,A
JRST .OPN1
MTNAM: MOVE OUT,[220600+IN,,177]
MOVE IN,UFPNTR
HLLZS 177(IN)
MTN1: PUSHJ P,RCH
SUBI CH,40
JUMPE CH,MTN1
CAIE CH,175-40
TLNN OUT,770000
POPJ P,
IDPB CH,OUT
JRST MTN1
LISTFM: SKIPA OUT,[TYOM]
LISTF: MOVEI OUT,TYO
CLEARM LISFLG
HRRM OUT,LISTF5
CNTRU5: PUSHJ P,CRR1
MOVE C,UFPNTR
MOVE C,177(C)
CAMN C,[-1]
JRST LSTF1A
LSH C,18.
PUSHJ P,TYPR
PUSHJ P,CRR1
LSTF1A: SKIPN LISFLG
JRST LISTF9
MOVE OUT,[(600)[SIXBIT /TAPE/]-1]
PUSHJ P,TYPR+1
MOVE B,UFPNTR+2
PUSHJ P,DPT
PUSHJ P,LISTF4
LISTF9: MOVEI B,0
MOVE A,UFPNTR
HRLI A,-23.
SKIPN (A)
SKIPE 1(A)
AOJA A,.+2
AOJA B,.-1
AOBJN A,.-4
JUMPN B,.+4
MOVE OUT,[(600)[SIXBIT /NO/]-1]
MOVEI IN,3
PUSHJ P,TYPR+2
MOVE OUT,[(600)[SIXBIT /FREE FILES/]-1]
PUSHJ P,LISTFA
JUMPE B,.+3
PUSHJ P,DPT
PUSHJ P,LISTF4
MOVE OUT,[(600) [SIXBIT /FREE BLOCKS/]-1]
PUSHJ P,LISTFA
HRLZI TT1,-30
MOVEI A,0
MOVE D,UFPNTR
SUBI D,2
JRST LISTF1
ADDI D,2
SKIPN C,(D)
LISTF3: AOBJN TT1,.-2
TLNN TT1,-1
POPJ P,
HRRZ B,TT1
SKIPN LISFLG
JRST .+4
PUSHJ P,DPT
MOVEI CH,40
PUSHJ P,@LISTF5
ADD TT1,UFPNTR
MOVE B,55(TT1)
LDB CH,[(100)104(TT1)]
DPB B,[(10100)CH]
SUB TT1,UFPNTR
ADDI CH,40
PUSHJ P,@LISTF5
PUSHJ P,LISTF4
TLNN C,770000
PUSHJ P,LISTF4
TLNE C,770000
PUSHJ P,TYPR-1
MOVE C,1(D)
PUSHJ P,TYPR-1
HRRZ A,TT1
LISTF1: SETZB B,E
MOVE OUT,UFPNTR+1
ILDB CH,OUT
CAIN CH,(A)
AOS E
CAIE CH,37
JRST .-4
SKIPE C,A
PUSHJ P,LOOK
SKIPA B,E
JRST LISTF1+1
PUSHJ P,DPT
MOVNS LISFLG
SKIPGE LISFLG
PUSHJ P,LISTF4
SKIPGE LISFLG
PUSHJ P,LISTF4
SKIPL LISFLG
PUSHJ P,CRR1
JRST LISTF3
PUSH P,TYPR2
TYPR: MOVE OUT,[(600)C-1]
MOVEI IN,6
ILDB CH,OUT
ADDI CH,40
LISTF5: PUSHJ P,.
SOJG IN,.-3
TYPR2: POPJ P,LISTF4
LISTFA: PUSHJ P,TYPR+1
PUSHJ P,TYPR+1
SLTAB:
LISTF4: MOVEI CH,11
JRST @LISTF5
LISFLG: 0
RENAM: PUSH P,C
PUSHJ P,FRD
PUSHJ P,.LOOK"
TYPR1 [ASCII /NOT FOUND
!/]
PUSH P,A+2 ;FILE NO
PUSH P,A+3 ;PNTR TO FIRST WD OF NAME
PUSHJ P,FRD
PUSHJ P,.LOOK
JRST RNAM1
CAME A+3,(P)
TYPR1 [ASCII /ALREADY EXISTS
!/]
RNAM1: POP P,TT
MOVEM A,(TT)
MOVEM A+1,1(TT)
POP P,A
POP P,C
TRNN FF,ARG2
POPJ P,
ADD A,UFPNTR"
DPB C,[(100)104(A)]
LSH C,-1
DPB C,[(100)55(A)]
POPJ P,
WINIT: TLO FF,PNSTOP+UWRITE
PUSHJ P,OPNWR"
JSR ERR
POPJ P,
ETYPER: 0
HRLZI B,440700
HRR 4,40
ILDB CH,B
CAIN CH,"!
JRST ETYP1
PUSHJ P,TYO
JRST .-4
ETYP1: MOVEI A,TOBS
CAME A,TORM
JRST ETYP1
JRST GOZ
CNTRLU: PUSHJ P,.OPNTP
SETOM LISFLG ;MAKE SURE DISAD TEST FOR DISBAR FAILS
PUSH P,CHSIZ
MOVEI A,20
MOVEM A,CHSIZ
MOVEI A,DISAD
HRRM A,LISTF5
PUSHJ P,DISINI
MOVE OUT,UFPNTR"+1
CNTRU4: MOVEI C,25.
MOVEI T,0
CNTRU2: ILDB B,OUT
CAIN B,37
JRST CNTRU3
SKIPN B
AOJA T,.+2
PUSHJ P,CNTRUA
SOJG C,CNTRU2
PUSHJ P,CRR1
JRST CNTRU4
CNTRU3: PUSHJ P,CNTRU5
PUSHJ P,DISCLG
TRO FF,VIEWF
POP P,CHSIZ
JRST RET
CNTRU6: MOVEI IN,3
MOVEI CH,40
PUSHJ P,DISAD
SOJG IN,.-2
SOS T
CNTRUA: JUMPG T,CNTRU6
MOVEI IN,3
TRO FF,VIEWF
IDIVI B,10.
HRLM E,(P)
SOSLE IN
PUSHJ P,CNTRUA+2
HLRZ CH,(P)
ADDI CH,40
CAIG CH,40
TRNN FF,VIEWF
ADDI CH,20
CAIL CH,60
TRZ FF,VIEWF
JRST DISAD
LIGHTS: TRNE FF,ARG
JRST LIGT1
CONI 760,A
LSH A,-9.
JRST VALRET
LIGT1: LSH B,9
CONO 760,(B)
JRST RET
SFINDF: 0
TABCNT: 0
BEG: 0
PT: 0
Z: 0
QRBUF: 0
LEV: 0
COMAX: 0
CPTR: 0
COMCNT: 0
NUM: 0
SYL: 0
SARG: 0
LIFF: 0
ERR1: 0
ERR2: 0
BLKOP: 0
BLKOPR: 0
DISPNR: 0
CBUFH: 0
BARFL1: 0
TIME: 0
TABCNR: 0
BARPNT: 0
PWOWOT: 0
CHCNT: 0
DISBUF: 0
CHCNTS: 0
ITERCT: 0
MEMSIZ: 37000*5
GCPTR: 0
CRREL: 0
GCFLG: 0
RREL: 0
INTDPH: 0
GETSYL: TRZ FF,LET
MOVE B,[440600,,T]
MOVEI T,0
GETS1: PUSHJ P,PRCH1
CAIE CH,""
CAIN CH,"!
JRST GETS1
CAIG CH,"Z
CAIGE CH,"A
JRST GETS3
GETS4: TRO FF,LET
GETS2: TRC CH,40
TLNE B,770000
IDPB CH,B
JRST GETS1
GETS3: CAIG CH,"9
CAIGE CH,"0
CAIN CH,".
JRST GETS2
CAIE CH,"%
CAIN CH,"$
JRST GETS4
POPJ P,
P1FF: MOVEI CH,1
MOVEM CH,LNCNT
AOS PGCNT
JRST MNLP
SYMLST: PUSHJ P,RRED
MOVE CH,Z
IDIVI CH,5
ADDI CH,10
MOVEM CH,STPNR
MOVEM CH,STB
MOVEI CH,1
MOVEM CH,LNCNT
MOVEM CH,PGCNT
CLEARM PASS
CLEARM LBFCC
MOVEI CH,PPA
HRRM CH,LISTF5
MNLP: PUSHJ P,GETSYL
CAIN CH,";
JRST P1SC
TRNN FF,LET
JRST MNLP1
CAIE CH,"=
CAIN CH,":
JRST DEFSM
MNLP1: CAIN CH,14
JRST P1FF
CAIN CH,12
AOS LNCNT
JRST MNLP
DEFSM: PUSHJ P,ES
JUMPN D,MNLP
MOVEM T,@STPNR
AOS STPNR
HRR CH,LNCNT
HRL CH,PGCNT
MOVNM CH,@STPNR
AOS STPNR
JRST MNLP
P1SC: PUSHJ P,GETSYL
CAIE CH,^M
JRST P1SC
JRST MNLP
PRCH1: SKIPE PASS
JRST P2RCH
PUSHJ P,UTYI
TRZN FF,FINF
POPJ P,
MOVEI CH,1
MOVEM CH,LNCNT
MOVEM CH,PGCNT
MOVE CH,[440700,,LBF]
MOVEM CH,LBFIP
SETOM PASS
SETOM TPGF
PUSHJ P,RRED
PUSHJ P,.FNPNT
CLEARM LSYL
P2MLP: PUSHJ P,GETSYL
TRNN FF,LET
JRST P2A
CAIE CH,"=
CAIN CH,":
JRST P2A
CAIE CH,")
MOVEM T,LSYL
P2A: CAIN CH,";
JRST P2SC
CAIN CH,^L
JRST P2FF
CAIE CH,^J
JRST P2MLP
PUSHJ P,P2LFA
JRST P2MLP
P2LFA: MOVE B,LNCNT
PUSHJ P,SLDPT
P2FFA: PUSHJ P,SLTAB
SKIPN T,LSYL
JRST P2LF1
PUSHJ P,ES
JUMPE D,P2LF1
MOVMS FF,1(D)
HLRZ B,1(D)
PUSHJ P,SLDPT
PUSHJ P,SPSP
HRRZ B,1(D)
PUSHJ P,SLDPT
P2LF1: PUSHJ P,SLTAB
CLEARM SYLCPS
MOVE B,[440700,,STAB]
MOVEM B,LBFIP
P2LF2: SOSGE LBFCC
JRST P2LF3
ILDB CH,B
CAIN CH,SYM
JRST P2LFT
AOS SYLCPS
P2LFT1: PUSHJ P,PPA
JRST P2LF2
P2LF3: CLEARM LSYL
SKIPL TPGF
JRST P2LF5
P2LF6: MOVEI A,105
SUB A,SYLCPS
PUSHJ P,SPSP
SOJG A,.-1
MOVEI CH,"P
PUSHJ P,PPA
MOVEI CH,"A
PUSHJ P,PPA
MOVEI CH,"G
PUSHJ P,PPA
MOVEI CH,"E
PUSHJ P,PPA
MOVEI CH,"
PUSHJ P,PPA
MOVE B,PGCNT
PUSHJ P,SLDPT
AOSN TPGF
JRST P2LF4
MOVEI CH,".
PUSHJ P,PPA
MOVEI CH,"0(T)
PUSHJ P,PPA
JRST P2LF4
P2LF5A: IDIVI T,60.
JUMPN TT,P2LF4
JRST P2LF6
P2LF5: SKIPE T,LNCNT
SOJA T,P2LF5A
P2LF4: PUSHJ P,CRR1
CLEARM LBFCC
AOS LNCNT
POPJ P,
P2LFT: AOS A,SYLCPS
ANDI A,777770
ADDI A,8.
MOVEM A,SYLCPS
JRST P2LFT1
P2SC: PUSHJ P,GETSYL
CAIN CH,^M
JRST P2MLP
JRST P2SC
P2RCH: PUSHJ P,UTYI
TRZE FF,FINF
JRST SYME
CAIE A,^M
CAIN A,^J
POPJ P,
IDPB CH,LBFIP
AOS LBFCC
POPJ P,
P2FF: CLEARM LNCNT
PUSHJ P,P2FFA
AOS PGCNT
SETOM TPGF
JRST P2MLP
SPSP: MOVEI CH,40
JRST PPA
ES: MOVE D,STB
AES2: CAML D,STPNR
JRST AES1
CAMN SYM,(D)
POPJ P,
AOS D
AOJA D,AES2
AES1: MOVEI D,0
POPJ P,
SLDPT: IDIVI B,10.
HRLM E,(P)
PUSH P,[SLDP1]
IDIVI B,10.
HRLM E,(P)
PUSH P,[SLDP1]
IDIVI B,10.
HRLM E,(P)
JRST SLDP1
LBFCC: 0
LBFIP: 0
LNCNT: 0
PGCNT: 0
STB: 0
STPNR: 0
PASS: 0
LSYL: 0
TPGF: 0
SYLCPS: 0
.FNPNT: MOVEI A,PPA
HRRM A,LISTF5
PUSHJ P,.+1
MOVE A,LFRED1
PUSHJ P,.FNPT2
MOVE A,LFRED2
PUSHJ P,.FNPT2
MOVEI CH,14
JRST PPA
.FNPT2: PUSH P,A
PUSHJ P,CRR1
MOVE A,UFPNTR
MOVE A,177(A)
CAMN A,[-1]
JRST .FN69
MOVEI IN,AA
MOVE OUT,[220600,,A]
PUSHJ P,TYPR+2
.FN69: PUSHJ P,CRR1
MOVE A,(P)
MOVEI B,4
PUSHJ P,CRR1
SOJN B,.-1
MOVEI TT1,7
.FN239: MOVEI D,3
.FN249: SETZM AA
ROTC A,6
MOVEI T,3
.FN259: XCT LDBT1-1(T)
IMULI AA,10101
SETZM C
TRNE TT,2
HRLM AA,C
CAIG T,1
JRST .FN269
TRNE TT,1
HRRM AA,C
.FN269: PUSHJ P,TYPR
IDIVI AA,10101
SOJN T,.FN259
JUMPE A,.FN279
MOVEI CH,40
REPEAT 3,PUSHJ P,PPA
JRST .FN249
.FN279: MOVE A,(P)
PUSHJ P,CRR1
SOJN D,.FN249
SOJN TT1,.FN239
POP P,A
POPJ P,
LDBT1: REPEAT 3,LDB TT,LDBT2-1+.RPCNT*7(TT1)
LDBT2: REPEAT 21.,[%T1==.RPCNT/7
%T2==.RPCNT-%T1*7
CH5.7T(AA+200+<2*%T1+5*%T2>_12.)
]
CH5.7T: 0 ;SP
DEFINE .. A,B,C,D,E,F,G,H
IFSN H,,[PRINTX /CH5.7T LOSE!
/]
A_31.+B_26.+C_21.+D_16.+E_11.+F_6+G_1
TERMIN
.. 4,4,4,4,4,0,4,, ;!
.. 12,12,12,0,0,0,0,, ;"
.. 12,12,37,12,37,12,12,, ;#
.. 4,37,24,37,5,37,4,, ;$
.. 36,31,2,4,10,23,3,, ;%
.. 4,12,4,10,25,22,15,, ;&
.. 4,4,4,0,0,0,0,, ;'
.. 2,4,10,10,10,4,2,, ;(
.. 10,4,2,2,2,4,10,, ;)
.. 0,25,16,37,16,25,0,, ;*
.. 0,4,4,37,4,4,0,, ;+
.. 0,0,0,0,14,4,10,, ;,
.. 0,0,0,37,0,0,0,, ;-
.. 0,0,0,0,0,14,14,, ;.
.. 0,1,2,4,10,20,0,, ;/
.. 16,21,23,25,31,21,16,, ;0
.. 4,14,4,4,4,4,16,, ;1
.. 16,21,1,2,4,10,37,, ;2
.. 6,11,1,6,1,11,6,, ;3
.. 24,24,24,37,4,4,4,, ;4
.. 37,20,36,1,1,21,16,, ;5
.. 16,20,20,36,21,21,16,, ;6
.. 37,1,2,4,10,20,20,, ;7
.. 16,21,16,21,21,21,16,, ;8
.. 16,21,21,17,1,1,16,, ;9
.. 0,14,14,0,14,14,0,, ;:
.. 0,14,14,0,14,4,10,, ;;
.. 2,4,10,20,10,4,2,, ;<
.. 0,0,37,0,37,0,0,, ;=
.. 10,4,2,1,2,4,10,, ;>
.. 16,21,2,4,4,0,4,, ;?
.. 16,21,26,26,20,21,16,, ;@
.. 16,21,21,37,21,21,21,, ;A
.. 36,21,21,36,21,21,36,, ;B
.. 16,21,20,20,20,21,16,, ;C
.. 36,21,21,21,21,21,36,, ;D
.. 37,20,20,36,20,20,37,, ;E
.. 37,20,20,36,20,20,20,, ;F
.. 16,21,20,27,25,21,16,, ;G
.. 21,21,21,37,21,21,21,, ;H
.. 16,4,4,4,4,4,16,, ;I
.. 17,2,2,2,2,22,14,, ;J
.. 21,22,24,30,24,22,21,, ;K
.. 20,20,20,20,20,20,37,, ;L
.. 21,33,25,21,21,21,21,, ;M
.. 21,21,31,25,23,21,21,, ;N
.. 16,21,21,21,21,21,16,, ;O
.. 36,21,21,36,20,20,20,, ;P
.. 16,21,21,21,25,23,17,, ;Q
.. 34,22,22,34,24,22,21,, ;R
.. 16,21,20,16,1,21,16,, ;S
.. 37,4,4,4,4,4,4,, ;T
.. 21,21,21,21,21,21,16,, ;U
.. 21,21,21,12,12,4,4,, ;V
.. 21,21,21,25,25,33,21,, ;W
.. 21,12,4,4,4,12,21,, ;X
.. 21,21,12,4,4,4,4,, ;Y
.. 37,2,4,16,4,10,37,, ;Z
.. 16,10,10,10,10,10,16,, ;[
.. 0,20,10,4,2,1,0,, ;\
.. 16,2,2,2,2,2,16,, ;]
.. 4,16,25,4,4,4,4,, ;^
.. 0,4,10,37,10,4,0,, ;_
IFN .-CH5.7T-64.,.. ,,,,,,,69
SYME: MOVE A,STB
MOVE B,STPNR
CAMN A,B
JRST CSLR1
PUSHJ P,SORT
MOVE A,STPNR
SUB A,STB
IDIVI A,1304
MOVEM A,PGCNT
ASH AA,-2
IDIVI AA,3
MOVEM AA,LNCNT
JUMPE A,CSLSD
MOVE A,STB
CSPP: MOVEI B,73
MOVEM B,LBFCC
CSPLN: MOVEI B,6
MOVEM B,PASS
CSPLN1: PUSHJ P,CSPNE
SOSN PASS
JRST CSNLN
MOVEI C,0
PUSHJ P,TYPR
ADDI A,166
JRST CSPLN1
CSNLN: SUBI A,1114
PUSHJ P,CRR1
SOSE LBFCC
JRST CSPLN
ADDI A,1116
SOSE PGCNT
JRST CSPP
CSLSP: AOS B,LNCNT
IMULI B,2
MOVEM B,LBFCC
MOVEM A,LSYL
CSLSN: PUSHJ P,CSPNE
ADD A,LBFCC
CAML A,STPNR
JRST CSLNN
MOVEI C,0
PUSHJ P,TYPR
JRST CSLSN
CSLNN: PUSHJ P,CRR1
MOVE A,LSYL
ADDI A,2
MOVEM A,LSYL
SOSE LNCNT
JRST CSLSN
MOVEI CH,^L
PUSHJ P,PPA
CSLR1: SUB P,[2,,2]
JRST RET
CSLSD: MOVE A,STB
JRST CSLSP
CSPNE: CLEARM TPGF
MOVE C,(A)
PUSHJ P,TYPR
PUSHJ P,SPSP
SKIPG 1(A)
SETOM TPGF
MOVMS 1(A)
HLRZ B,1(A)
PUSHJ P,SLDPT
MOVEI CH,"
SKIPE TPGF
MOVEI CH,"*
PUSHJ P,PPA
HRRZ B,1(A)
JRST SLDPT
SORT: MOVSI C,400000
SORT1: HRLM B,(P)
CAIL A,-2(B)
JRST SORT7
PUSH P,A
SORT3: TDNN C,(A)
JRST SORT4
SUBI B,2
TDNE C,(B)
JRST SORT2
EXCH C,(A)
EXCH C,(B)
EXCH C,(A)
EXCH C,1(A)
EXCH C,1(B)
EXCH C,1(A)
SORT4: ADDI A,2
SORT2: CAME A,B
JRST SORT3
ROT C,-1
POP P,A
JUMPL C,SORT6
PUSHJ P,SORT1
HLRZ B,(P)
PUSHJ P,SORT1
SORT6: ROT C,1
SORT7: HLRZ A,(P)
POPJ P,
DTB:
MOVEI A,GTIME ;^@
HRROI A,TAB ;^A
MOVEI A,CNTRLB ;^B
MOVEI A,CLRBF ;^C
MOVEI A,DD ;^D
MOVEI A,CNTRLE ;^E
MOVEI A,LAT ;^F
MOVEI A,DECDMP ;^G
HRROI A,TAB ;^H
HRROI A,TAB ;^I - TAB
MOVEI A,RET ;^J - LINE FEED
HRROI A,TAB ;^K - VERT TAB
HRROI A,TAB ;^L - FORM FEED
MOVEI A,RET ;^M - CARR RET
MOVEI A,FLDSZ ;^N
MOVEI A,SYMLST ;^O
HRROI A,TAB ;^P
MOVEI A,XON ;^Q
MOVEI A,TAPE ;^R
MOVEI A,XOFF ;^S
MOVEI A,NTAPE ;^T
MOVEI A,CNTRLU ;^U
MOVEI A,CNTRLV ;^V
MOVEI A,CNTRLW ;^W
HRROI A,TAB ;^X
HRROI A,TAB ;^Y
HRROI A,TAB ;^Z
HRROI A,TAB ;^[
MOVEI A,LIGHTS ;^\
HRROI A,TAB ;^]
MOVEI A,CNTRUP ;^^
HRROI A,TAB ;^_
MOVEI A,CD2 ;
MOVEI A,EXCLAM ;!
MOVEI A,DQUOTE ;"
MOVEI A,COR ;#
HRROI A,TAB ;$
MOVEI A,PCNT ;%
MOVEI A,CAND ;&
MOVEI A,RET ;'
MOVEI A,OPEN ;(
MOVEI A,CLOSE ;)
MOVEI A,TIMES ;*
MOVEI A,CD2 ;+
MOVEI A,COMMA ;,
MOVEI A,MINUS ;-
MOVEI A,PNT ;.
MOVEI A,SLASH ;/
JRST CDNUM ;0
JRST CDNUM ;1
JRST CDNUM ;2
JRST CDNUM ;3
JRST CDNUM ;4
JRST CDNUM ;5
JRST CDNUM ;6
JRST CDNUM ;7
JRST CDNUM ;8
JRST CDNUM ;9
MOVEI A,COLON ;:
MOVEI A,SEMICL ;;
MOVEI A,LSSTH ;<
HRROI A,PRNT ;=
MOVEI A,GRTH ;>
MOVEI A,QUESTN ;?
HRROI A,TAB ;@
MOVEI A,APPEND ;A
MOVEI A,BEGIN ;B
MOVEI A,CHARAC ;C
MOVEI A,DELETE ;D
HRROI A,ECMD ;E
HRROI A,FEED ;F
MOVEI A,QGET ;G
MOVEI A,HOLE ;H
HRROI A,INSERT ;I
MOVEI A,JMP ;J
MOVEI A,KILL ;K
MOVEI A,LINE ;L
JRST MAC ;M
MOVEI A,SERCHP ;N
MOVEI A,OG ;O
HRROI A,PUNCH ;P
MOVEI A,QREG ;Q
MOVEI A,REVERS ;R
MOVEI A,SERCH ;S
HRROI A,TYPE4 ;T
MOVEI A,USE ;U
MOVEI A,VIEW ;V
MOVEI A,RET ;W
MOVEI A,X ;X
HRROI A,YANK ;Y
MOVEI A,END1 ;Z
MOVEI A,OPENB ;[
MOVEI A,BAKSL ;\
MOVEI A,CLOSEB ;]
MOVEI A,UAR ;^
MOVEI A,LARR ;_
REPEAT 29.,[HRROI A,TAB
]
JRST GO ;ALTMODE
JRST GO ;ALTMODE
HRROI A,TAB ;^?
IFN .-DTB-200,[PRINTX \DTB LOSS
\]
STAB:
LBF:
AC2:
CFIL1: 0
CFIL2: BLOCK 14
BAKTAB: BLOCK 3
LOC STAB+40
STABP:
SYMS: BLOCK 22
VALS: BLOCK 22
CNTS: BLOCK 22
SYMEND:
PFL: BLOCK LPF
GCTAB: BLOCK GCTBL
QTAB: BLOCK 37.
PDL: BLOCK LPDL
PUNBO: BLOCK 500
PUNBE: 0
RBUF: BLOCK 250
RBEND: 0
RDCHAR=<RBEND-RBUF>*5
CONSTANTS
printx /=========================== TEMPORARY LOC
/
loc 6677
VARIABLES
CBUF:
END INIT