1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-08 09:21:17 +00:00

Reconstructed TAA; INP.

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.
This commit is contained in:
Lars Brinkhoff
2018-06-14 17:52:54 +02:00
parent 0325b57ed9
commit b99988823f

735
src/taa/inp.100 Normal file
View File

@@ -0,0 +1,735 @@
; 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