mirror of
https://github.com/PDP-10/its.git
synced 2026-02-08 09:21:17 +00:00
Reconstructed 2018 from SYS2; TS MSEND dated 1984-01-14, which is a PDUMP binary assembled from DM: SYSENG; MSEND 140 on 1980-07-28.
736 lines
9.7 KiB
Plaintext
736 lines
9.7 KiB
Plaintext
; Reconstructed 2018 from SYS2; TS MSEND dated 1984-01-14, which is
|
||
; a PDUMP binary assembled from DM: SYSENG; MSEND 140 on 1980-07-28.
|
||
|
||
SUBTTL READER
|
||
|
||
DEFINE BUFMAKE NAME,LEN,HLP,TXT
|
||
ZZ==LEN/5
|
||
ZZZ==.
|
||
BLOCK ZZ
|
||
NAME: [ASCIZ /TXT/]
|
||
440700,,ZZZ
|
||
440700,,ZZZ
|
||
440700,,ZZZ
|
||
5*ZZ
|
||
5*ZZ
|
||
0
|
||
0
|
||
HLP
|
||
TERMIN
|
||
|
||
.BEGIN READER
|
||
|
||
CBUF=16
|
||
FINBLN==240
|
||
|
||
BUFMAKE FILBUF,175,HLPFIL,[File: ]
|
||
|
||
FINBUF: BLOCK 40
|
||
|
||
FILBLK:
|
||
FILDEV: SIXBIT /DSK/
|
||
FILSNM: 0
|
||
FILFN1: 0
|
||
FILFN2: SIXBIT />/
|
||
|
||
DSKI: 0
|
||
ENDFIL: 0
|
||
PRMPT2: 0
|
||
.U"INREAD: 0
|
||
.U"RQUOTE: 0
|
||
.U"XCTRUB: 0
|
||
.U"TOFCI: 0
|
||
.U"TOERS: 0
|
||
CHPOS: 0
|
||
CVPOS: 0
|
||
.U"KEEPQT: 0
|
||
.U"CRBRK: 0
|
||
CTRLYQ: -1
|
||
.U"LSTBRK: 0
|
||
|
||
.U"BUFPRM==0
|
||
.U"BUFBEG==1
|
||
.U"BUFFCH==2
|
||
.U"BUFNCH==3
|
||
.U"BUFLEN==4
|
||
.U"BUFVLN==5
|
||
.U"BUFCCT==6
|
||
.U"BUFVCT==7
|
||
.U"BUFHLP==10
|
||
|
||
RCMDNX: MOVEM B,BUFNCH(CBUF)
|
||
SKIPGE C
|
||
MOVEI C,0
|
||
MOVEM C,BUFVCT(CBUF)
|
||
JRST RCMD
|
||
|
||
.U"GETBUF:
|
||
PUSH P,CBUF
|
||
MOVE CBUF,B
|
||
PUSH P,C
|
||
PUSH P,D
|
||
RCMDXX:
|
||
RCMD: MOVE B,BUFNCH(CBUF)
|
||
MOVE C,BUFVCT(CBUF)
|
||
SKIPE TOERS
|
||
JUMPN C,[PUSHJ P,REPPER ? JRST RCMD0]
|
||
PUSHJ P,PPRMPT
|
||
RCMD0: SETOM INREAD
|
||
RCMD1: .IOT TTYI,A
|
||
SKIPE RQUOTE
|
||
JRST [SETZM RQUOTE
|
||
SKIPE KEEPQT
|
||
JRST RCMDL
|
||
SKIPN TOERS
|
||
JRST RCMDL
|
||
PUSH P,A
|
||
MOVEI A,^Q
|
||
PUSHJ P,RUBFLS
|
||
POP P,A
|
||
JRST RCMDL]
|
||
CAIG A,^[
|
||
JRST @CHRTAB(A)
|
||
CAIN A,177
|
||
JRST RUB
|
||
CAIN A,"?
|
||
JRST [JUMPN C,RCMDL
|
||
SKIPN BUFHLP(CBUF)
|
||
JRST RCMDL
|
||
.IOT TTYO,A
|
||
PUSHJ P,@BUFHLP(CBUF)
|
||
JRST RCMDNX]
|
||
RCMDL: .IOT TTYO,A
|
||
RCMDLN: PUSHJ P,ADDCHR
|
||
CAIE A,^M
|
||
JRST RCMD1
|
||
MOVEI A,^J
|
||
JRST RCMDL
|
||
|
||
RADDCH: .IOT TTYO,A
|
||
PUSHJ P,ADDCHR
|
||
CAIE A,^M
|
||
JRST CPOPJ
|
||
MOVEI A,^J
|
||
.IOT TTYO,A
|
||
PUSHJ P,ADDCHR
|
||
POPJ P,
|
||
|
||
ADDCHR: ADDI C,1
|
||
CAML C,BUFVLN(CBUF)
|
||
JRST [MOVEM C,BUFVCT(CBUF)
|
||
MOVEM B,BUFNCH(CBUF)
|
||
PUSHJ P,BUFGRO
|
||
MOVE B,BUFNCH(CBUF)
|
||
JRST .+1]
|
||
IDPB A,B
|
||
POPJ P,
|
||
|
||
CHRTAB: RSTBUF
|
||
RCMDL
|
||
RCMDL
|
||
RCMDXE
|
||
[PUSHJ P,RREPEA ? JRST RCMD1]
|
||
RCMDL
|
||
RCMDL
|
||
QUIT
|
||
RCMDL
|
||
RCMDL
|
||
RCMDL
|
||
RCMDL
|
||
[PUSHJ P,RCLEAR ? JRST RCMD1]
|
||
[SKIPN CRBRK ? JRST RCMDL ? JRST RCMDXE]
|
||
RCMDL
|
||
RCMDL
|
||
RCMDL
|
||
[SETOM RQUOTE
|
||
.IOT TTYO,A
|
||
SKIPN KEEPQT
|
||
JRST RCMD1
|
||
JRST RCMDLN]
|
||
RCMDL
|
||
RCMDL
|
||
CHRSWP
|
||
LNFLUS
|
||
RCMDL
|
||
WDFLUS
|
||
LNFLUS
|
||
[SKIPN CTRLYQ
|
||
JRST RCMDL
|
||
PUSHJ P,RDFILE
|
||
JRST RCMD1]
|
||
RCMDL
|
||
RCMDXE
|
||
|
||
RCMDXE: .IOT TTYO,A
|
||
RCMDX1: MOVEM A,LSTBRK
|
||
MOVEI A,0
|
||
IDPB A,B
|
||
DBP B
|
||
MOVEM C,BUFVCT(CBUF)
|
||
MOVEM B,BUFNCH(CBUF)
|
||
MOVE B,BUFLEN(CBUF)
|
||
SUB B,BUFVLN(CBUF)
|
||
ADDI B,(C)
|
||
MOVEM B,BUFCCT(CBUF)
|
||
SETZM INREAD
|
||
SKIPE C
|
||
AOS -3(P)
|
||
POP P,D
|
||
POP P,C
|
||
POP P,CBUF
|
||
POPJ P,
|
||
|
||
RSTBUF: .IOT TTYO,A
|
||
RSTBF1: OASCR TTYO,[0]
|
||
SETZ C,
|
||
PUSHJ P,CLINBI
|
||
MOVE B,BUFFCH(CBUF)
|
||
PUSHJ P,REPPER
|
||
JRST RCMD1
|
||
|
||
PPRMPT: OCTLP TTYO,"A
|
||
OASC TTYO,@BUFPRM(CBUF)
|
||
SKIPE PRMPT2
|
||
OASC TTYO,@PRMPT2
|
||
POPJ P,
|
||
|
||
RREPEA: .IOT TTYO,A
|
||
OASCR TTYO,[0]
|
||
JRST REPPER
|
||
|
||
.U"RCLEAR:
|
||
OCTLP TTYO,"C
|
||
.U"REPPER:
|
||
PUSHJ P,PPRMPT
|
||
OBPTR TTYO,BUFFCH(CBUF)
|
||
POPJ P,
|
||
|
||
.U"CLINBF:
|
||
PUSH P,CBUF
|
||
MOVE CBUF,B
|
||
PUSHJ P,CLINBI
|
||
POP P,CBUF
|
||
POPJ P,
|
||
|
||
CLINBI: PUSH P,A
|
||
PUSH P,B
|
||
PUSH P,C
|
||
MOVE A,BUFFCH(CBUF)
|
||
MOVE B,BUFVLN(CBUF)
|
||
JUMPL A,CLINB1
|
||
MOVEI C,0
|
||
CLINBL: TLNE A,760000
|
||
CAIA
|
||
AOJA A,CLINB1
|
||
IDPB C,A
|
||
SOJA B,CLINBL
|
||
CLINB1: SETZM (A)
|
||
IDIVI B,5
|
||
ADDI B,-1(A)
|
||
HRLS A
|
||
ADDI A,1
|
||
BLT A,(B)
|
||
MOVE A,BUFFCH(CBUF)
|
||
MOVEM A,BUFNCH(CBUF)
|
||
SETZM BUFVCT(CBUF)
|
||
MOVE A,BUFLEN(CBUF)
|
||
SUB A,BUFVLN(CBUF)
|
||
MOVEM A,BUFCCT(CBUF)
|
||
POP P,C
|
||
POP P,B
|
||
POP P,A
|
||
POPJ P,
|
||
|
||
BUFGRO: PUSH P,A
|
||
PUSH P,B
|
||
PUSH P,C
|
||
MOVE A,BUFLEN(CBUF)
|
||
IDIVI A,5
|
||
LSH A,1
|
||
IBLOCK CLIO,(A)
|
||
PUSH P,C
|
||
MOVE A,BUFLEN(CBUF)
|
||
ADDM A,BUFLEN(CBUF)
|
||
ADDM A,BUFVLN(CBUF)
|
||
HRL C,BUFBEG(CBUF)
|
||
IDIVI A,5
|
||
ADDI A,-1(C)
|
||
BLT C,(A)
|
||
POP P,C
|
||
HRRZ B,BUFBEG(CBUF)
|
||
SUB C,B
|
||
ADDM C,BUFBEG(CBUF)
|
||
ADDM C,BUFFCH(CBUF)
|
||
ADDM C,BUFNCH(CBUF)
|
||
POP P,C
|
||
POP P,B
|
||
POP P,A
|
||
POPJ P,
|
||
|
||
RDFILE: PUSH P,KEEPQT
|
||
PUSH P,CRBRK
|
||
PUSH P,CTRLYQ
|
||
PUSH P,INREAD
|
||
PUSH P,D
|
||
PUSH P,E
|
||
PUSH P,F
|
||
PUSH P,A
|
||
PUSH P,B
|
||
PUSH P,C
|
||
SKIPE FILSNM
|
||
JRST NODEF
|
||
.SUSET [.RXUNAME,,A]
|
||
MOVEM A,FILSNM
|
||
MOVEM A,FILFN1
|
||
NODEF: SETOM KEEPQT
|
||
SETOM CRBRK
|
||
SETZM CTRLYQ
|
||
MOVEI B,FILBUF
|
||
PUSHJ P,CLINBF
|
||
PUSHJ P,GETBUF
|
||
JRST [MOVE B,LSTBRK
|
||
CAIE B,^M
|
||
OASCR TTYO,[0]
|
||
OASCR TTYO,[ASCIZ /Aborted./]
|
||
POP P,C
|
||
POP P,B
|
||
POP P,A
|
||
JRST RDFILX]
|
||
MOVE B,LSTBRK
|
||
CAIE B,^M
|
||
OASCR TTYO,[0]
|
||
MOVEI B,FILBUF
|
||
MOVE A,BUFFCH(B)
|
||
MOVE B,BUFVCT(B)
|
||
PUSHJ P,FILPRS
|
||
PUSHJ P,CHNFND
|
||
.CALL [SETZ
|
||
SIXBIT /OPEN/
|
||
MOVSI .UAI
|
||
DSKI
|
||
FILDEV
|
||
FILFN1
|
||
FILFN2
|
||
SETZ FILSNM]
|
||
JRST FILERR
|
||
POP P,C
|
||
POP P,B
|
||
POP P,A
|
||
SETZM ENDFIL
|
||
FRDLOP: MOVEI D,FINBLN
|
||
MOVE E,[440700,,FINBUF]
|
||
.CALL [SETZ
|
||
SIXBIT /SIOT/
|
||
DSKI
|
||
E
|
||
SETZ D]
|
||
.LOSE %LSSYS
|
||
SUBI D,FINBLN
|
||
JUMPE D,FILDON
|
||
MOVNS D
|
||
CAIL D,FINBLN
|
||
JRST FINSTR
|
||
SETOM ENDFIL
|
||
MOVEI F,D
|
||
PDLOOP: LDB O,E
|
||
CAIE O,^C
|
||
CAIN O,0
|
||
JRST PDFLS
|
||
JRST FINSTR
|
||
PDFLS: MOVEI O,0
|
||
DPB O,E
|
||
DBP E
|
||
SOJLE D,FILDON
|
||
SOJG F,PDLOOP
|
||
FINSTR: MOVE E,[440700,,FINBUF]
|
||
FINLOP: ILDB A,E
|
||
PUSHJ P,ADDCHR
|
||
SOJG D,FINLOP
|
||
SKIPN ENDFIL
|
||
JRST FRDLOP
|
||
FILDON: OASCR TTYO,[ASCIZ /"DONE"/]
|
||
.CALL [SETZ
|
||
SIXBIT /CLOSE/
|
||
SETZ DSKI]
|
||
.LOSE %LSSYS
|
||
RDFILX: POP P,F
|
||
POP P,E
|
||
POP P,D
|
||
POP P,INREAD
|
||
POP P,CTRLYQ
|
||
POP P,CRBRK
|
||
POP P,KEEPQT
|
||
POPJ P,
|
||
|
||
CHNFND: PUSH P,A
|
||
PUSH P,B
|
||
MOVEI A,17
|
||
CHNFNL: .CALL [SETZ
|
||
SIXBIT /STATUS/
|
||
A
|
||
SETZM B]
|
||
.LOSE %LSSYS
|
||
JUMPE B,CHNFNW
|
||
SOJGE A,CHNFNL
|
||
.VALUE [ASCIZ /:No channels??
|
||
/]
|
||
CHNFNW: MOVEM A,DSKI
|
||
POP P,B
|
||
POP P,A
|
||
POPJ P,
|
||
|
||
HLPFIL: OASC TTYO,[ASCIZ /Default is: /]
|
||
OSIX TTYO,FILDEV
|
||
OASCI TTYO,":
|
||
OSIX TTYO,FILSNM
|
||
OASCI TTYO,";
|
||
OSIX TTYO,FILFN1
|
||
OASCI TTYO,"
|
||
OSIX TTYO,FILFN2
|
||
OASCR TTYO,[0]
|
||
POPJ P,
|
||
|
||
FILERR: OASC TTYO,[ASCIZ /Open of /]
|
||
OSIX TTYO,FILDEV
|
||
OASCI TTYO,":
|
||
OSIX TTYO,FILSNM
|
||
OASCI TTYO,";
|
||
OSIX TTYO,FILFN1
|
||
OASCI TTYO,"
|
||
OSIX TTYO,FILFN2
|
||
OASC TTYO,[ASCIZ / failed: /]
|
||
.CALL [SETZ
|
||
SIXBIT /STATUS/
|
||
DSKI
|
||
SETZM A]
|
||
.LOSE %LSSYS
|
||
.CALL [SETZ
|
||
SIXBIT /OPEN/
|
||
MOVSI .UAI
|
||
DSKI
|
||
[SIXBIT /ERR/]
|
||
MOVEI 3
|
||
SETZ A]
|
||
.LOSE %LSFIL
|
||
MOVE A,[440700,,FINBUF]
|
||
MOVEI B,FINBLN
|
||
.CALL [SETZ
|
||
SIXBIT /SIOT/
|
||
DSKI
|
||
A
|
||
SETZ B]
|
||
.LOSE %LSSYS
|
||
.CALL [SETZ
|
||
SIXBIT /CLOSE/
|
||
SETZ DSKI]
|
||
.LOSE %LSSYS
|
||
MOVEI B,0
|
||
DPB B,A
|
||
OASCR TTYO,FINBUF
|
||
POP P,C
|
||
POP P,B
|
||
POP P,A
|
||
JRST RDFILX
|
||
|
||
FILPRS: PUSH P,C
|
||
PUSH P,D
|
||
PUSH P,E
|
||
PUSH P,F
|
||
MOVEI E,0
|
||
FILPRL: PUSHJ P,GETSYL
|
||
JUMPE F,FILPRQ
|
||
JUMPE C,FILPRL
|
||
CAIN F,":
|
||
JRST [MOVEM C,FILDEV ? JRST FILPRL]
|
||
CAIN F,";
|
||
JRST [MOVEM C,FILSNM ? JRST FILPRL]
|
||
FILPRQ: JUMPE C,FILPQ1
|
||
JUMPE E,[MOVNI E,1 ? MOVEM C,FILFN1 ? JRST FILPQ1]
|
||
MOVEM C,FILFN2
|
||
FILPQ1: JUMPN F,FILPRL
|
||
POP P,F
|
||
POP P,E
|
||
POP P,D
|
||
POP P,C
|
||
POPJ P,
|
||
|
||
GETSYL: MOVEI C,0
|
||
MOVE B,[440600,,C]
|
||
GETSY1: ILDB F,A
|
||
JUMPE F,GETSYX
|
||
CAIE F,":
|
||
CAIN F,";
|
||
JRST GETSYX
|
||
CAIE F,"
|
||
CAIN F,^I
|
||
JRST GETSX1
|
||
CAIN F,^Q
|
||
ILDB F,A
|
||
SUBI F,"
|
||
CAIL F,"@
|
||
SUBI F,"
|
||
TLNE B,770000
|
||
IDPB F,B
|
||
JRST GETSY1
|
||
GETSX1: JUMPE C,GETSY1
|
||
GETSYX: POPJ P,
|
||
|
||
RUB: PUSHJ P,RUBBER
|
||
JRST RCMDNX
|
||
JRST RCMD1
|
||
|
||
RUBBER: SOJL C,CPOPJ
|
||
LDB A,B
|
||
MOVEI D,0
|
||
DPB D,B
|
||
XCT XCTRUB
|
||
DBP B
|
||
CAIE A,^J
|
||
JRST RUBOUT
|
||
JUMPLE C,RUBOUT
|
||
PUSH P,A
|
||
LDB A,B
|
||
CAIE A,^M
|
||
JRST [POP P,A ? JRST RUBOUT]
|
||
SUB P,[1,,1]
|
||
MOVEI D,0
|
||
DPB D,B
|
||
SUBI C,1
|
||
XCT XCTRUB
|
||
DBP B
|
||
RUBOUT: AOS (P)
|
||
POPJ P,
|
||
|
||
.U"RUBECH:
|
||
OASCI TTYO,(A)
|
||
POPJ P,
|
||
|
||
.U"RUBFLS:
|
||
PUSH P,B
|
||
PUSH P,C
|
||
PUSHJ P,RCPOS
|
||
PUSHJ P,CHRTYP
|
||
SKIPGE C,FIXIM2(C)
|
||
JRST (C)
|
||
OCTLP TTYO,"X
|
||
SOJG C,.-1
|
||
RUBDON: POP P,C
|
||
POP P,B
|
||
POPJ P,
|
||
|
||
CHRTYP: MOVEI C,0
|
||
CAIG A,^_
|
||
JRST CHRTY1
|
||
CAIN A,177
|
||
AOJA C,CPOPJ
|
||
POPJ P,
|
||
|
||
CHRTY1: PUSH P,A
|
||
IDIVI A,14
|
||
MOVE A,FIXIML(A)
|
||
IMULI B,3
|
||
ROTC A,3(B)
|
||
ANDI B,7
|
||
MOVEI C,(B)
|
||
POP P,A
|
||
POPJ P,
|
||
|
||
FOURQ: OCTLP TTYO,"X
|
||
OCTLP TTYO,"X
|
||
SKIPE TOFCI
|
||
JRST RUBDON
|
||
OCTLP TTYO,"X
|
||
OCTLP TTYO,"X
|
||
JRST RUBDON
|
||
BSKILL: AOS CHPOS
|
||
OHPOS TTYO,@CHPOS
|
||
JRST RUBDON
|
||
|
||
CGKILL: JRST RUBDON
|
||
|
||
TBKILL: PUSHJ P,GHPOS
|
||
OHPOS TTYO,@CHPOS
|
||
OCTLP TTYO,"L
|
||
JRST RUBDON
|
||
|
||
CRKILL: PUSHJ P,GHPOS
|
||
OHPOS TTYO,@CHPOS
|
||
JRST RUBDON
|
||
|
||
LFKILL: PUSH P,A
|
||
MOVEI A,1
|
||
PUSHJ P,LNSTRV
|
||
POP P,A
|
||
JRST RUBDON
|
||
|
||
LNSTRV: CAMLE A,CVPOS
|
||
JRST LNREDO
|
||
SOJE A,LNONE
|
||
OCTLP TTYO,"H
|
||
OASCI TTYO,^H
|
||
LNSLOP: OCTLP TTYO,"L
|
||
OCTLP TTYO,"U
|
||
SOS CVPOS
|
||
SOJGE A,LNSLOP
|
||
PUSHJ P,GHPOS
|
||
OHPOS TTYO,@CHPOS
|
||
OCTLP TTYO,"L
|
||
POPJ P,
|
||
|
||
LNONE: OCTLP TTYO,"U
|
||
POPJ P,
|
||
|
||
LNREDO: OCTLP TTYO,"T
|
||
OCTLP TTYO,"L
|
||
PUSHJ P,PPRMPT
|
||
OBPTR TTYO,BUFFCH(CBUF)
|
||
PUSHJ P,RCPOS
|
||
POPJ P,
|
||
|
||
FIXIM2: 1
|
||
2
|
||
SETZ FOURQ
|
||
SETZ CRKILL
|
||
SETZ LFKILL
|
||
SETZ BSKILL
|
||
SETZ TBKILL
|
||
SETZ CGKILL
|
||
|
||
FIXIM3: MOVEI C,1
|
||
MOVEI C,2
|
||
PUSHJ P,CNTCTZ
|
||
MOVEI C,0
|
||
MOVEI C,0
|
||
MOVNI C,1
|
||
PUSHJ P,CNTTAB
|
||
MOVEI C,0
|
||
|
||
CNTCTZ: MOVEI C,2
|
||
SKIPN TOFCI
|
||
MOVEI C,4
|
||
POPJ P,
|
||
|
||
CNTTAB: ANDCMI O,7
|
||
ADDI O,10
|
||
MOVEI C,0
|
||
POPJ P,
|
||
|
||
FIXIML: 111111175641
|
||
131111111111
|
||
112011120000
|
||
|
||
RCPOS: PUSH P,A
|
||
.CALL [SETZ
|
||
SIXBIT /RCPOS/
|
||
MOVEI TTYI
|
||
SETZM A]
|
||
.LOSE %LSSYS
|
||
HLRM A,CVPOS
|
||
HRRM A,CHPOS
|
||
POP P,A
|
||
POPJ P,
|
||
|
||
GHPOS: PUSH P,O
|
||
PUSH P,A
|
||
PUSH P,B
|
||
PUSH P,C
|
||
PUSH P,D
|
||
MOVEI O,0
|
||
MOVE D,BUFPRM(CBUF)
|
||
PUSHJ P,CNTSTR
|
||
SKIPE D,PRMPT2
|
||
PUSHJ P,CNTSTR
|
||
GHPOS1: MOVE D,BUFFCH(CBUF)
|
||
PUSHJ P,CNTSTR
|
||
MOVEM O,CHPOS
|
||
POP P,D
|
||
POP P,C
|
||
POP P,B
|
||
POP P,A
|
||
POP P,O
|
||
POPJ P,
|
||
|
||
CNTSTR: TLNN D,777777
|
||
HRLI D,440700
|
||
CNTST1: ILDB A,D
|
||
JUMPE A,CPOPJ
|
||
CAIN A,^M
|
||
JRST [MOVEI O,0 ? JRST CNTST1]
|
||
PUSHJ P,CHRTYP
|
||
XCT FIXIM3(C)
|
||
ADD O,C
|
||
JRST CNTST1
|
||
|
||
CHRSWP: CAIG C,1
|
||
JRST RCMD1
|
||
PUSHJ P,RUBBER
|
||
.VALUE
|
||
CAIGE C,1
|
||
JRST [PUSHJ P,RADDCH ? JRST RCMD1]
|
||
PUSH P,A
|
||
PUSHJ P,RUBBER
|
||
.VALUE
|
||
EXCH A,(P)
|
||
PUSHJ P,RADDCH
|
||
POP P,A
|
||
PUSHJ P,RADDCH
|
||
JRST RCMD1
|
||
|
||
WDFLUS: PUSHJ P,RUBBER
|
||
JRST RCMDNX
|
||
PUSHJ P,BREAK
|
||
JRST WDFLU1
|
||
JRST WDFLUS
|
||
WDFLU1: JUMPE C,RCMD1
|
||
LDB A,B
|
||
PUSHJ P,BREAK
|
||
JRST WDFLU2
|
||
JRST RCMD1
|
||
WDFLU2: PUSHJ P,RUBBER
|
||
JRST RCMDNX
|
||
JRST WDFLU1
|
||
|
||
BREAK: CAIE A,^I
|
||
CAIN A,^J
|
||
JRST POPJ1
|
||
CAIE A,^M
|
||
CAIN A,"
|
||
JRST POPJ1
|
||
CAIE A,";
|
||
CAIN A,",
|
||
JRST POPJ1
|
||
CAIE A,".
|
||
CAIN A,":
|
||
JRST POPJ1
|
||
POPJ P,
|
||
|
||
LNFLUS: PUSHJ P,RUBBER
|
||
JRST RCMDNX
|
||
LNFLUL: LDB A,B
|
||
CAIN A,^J
|
||
JRST LNFLUD
|
||
MOVEI O,0
|
||
DPB O,B
|
||
DBP B
|
||
SOJLE C,LNLEAV
|
||
JRST LNFLUL
|
||
|
||
LNFLUD: PUSH P,B
|
||
DBP B
|
||
LDB A,B
|
||
POP P,B
|
||
CAIN A,^M
|
||
JRST LNFLKL
|
||
|
||
LNLEAV: PUSHJ P,GHPOS
|
||
LNLEV1: SKIPN TOERS
|
||
JRST [OASCR TTYO,[ASCIZ / XXX?/] ? JRST RCMD1]
|
||
OHPOS TTYO,@CHPOS
|
||
OCTLP TTYO,"L
|
||
JRST RCMD1
|
||
|
||
LNFLKL: SETZM CHPOS
|
||
JRST LNLEV1
|
||
|
||
.END READER
|