1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-08 09:21:17 +00:00
Files
PDP-10.its/src/taa/inp.100
Lars Brinkhoff b99988823f 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.
2018-06-16 08:41:52 +02:00

736 lines
9.7 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.
; 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