1
0
mirror of https://github.com/PDP-10/its.git synced 2026-05-22 21:49:27 +00:00
Files
PDP-10.its/src/moon/failsa.9
2019-06-16 17:45:21 +02:00

120 lines
1.6 KiB
Groff
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.
TITLE FAILSAFE READER
.MLLIT==1
A=1
B=2
C=3
D=4
E=5
T=6
TT=7
I=10
J=11
Q=12
P=17
MTIC=13
DKOC=14
TYOC=15
PDL: -40,,.
BLOCK 40
SNM: SIXBIT/REV.7/ ;SNAME TO READ INTO
MTO: .BII,,'MT0
DKO: .BIO,,'DSK
FN1: 0
FN2: 0
GO: MOVE P,PDL
.OPEN TYOC,[.UAO,,'TTY]
.VALUE
MOVE TT,[.FNAM1]
PUSHJ P,SIXTYO
.IOT TYOC,[".]
MOVE TT,[.FNAM2]
PUSHJ P,SIXTYO
PUSHJ P,CRLF
.SUSET [.SSNAME,,SNM]
.OPEN MTIC,MTO ;SKIP FIRST TWO FILES
.VALUE
HRROI TT,BUF
.IOT MTIC,TT
.OPEN MTIC,MTO
.VALUE
HRROI TT,BUF
.IOT MTIC,TT
.OPEN MTIC,MTO ;THIRD FILE IS WHOLE TAPE
.VALUE
NXF: MOVE TT,[-43,,BUF] ;READ HEADER
.IOT MTIC,TT
JUMPL TT,EOT
SKIPL Q,BUF
.VALUE
MOVEI Q,-42(Q) ;NUMBER OF DATA WORDS IN THIS RECORD
MOVE TT,BUF+4
MOVEM TT,FN1
PUSHJ P,SIXTYO
.IOT TYOC,[" ]
HLLZ TT,BUF+5
MOVEM TT,FN2
PUSHJ P,SIXTYO
MOVE E,BUF+7 ;LENGTH
CAMGE E,Q
.VALUE ;SCREWED UP
.OPEN DKOC,DKO
.VALUE
.CALL [ SETZ ;DON'T BOTHER IDUMPING
'SDMPBT
MOVEI DKOC
SETZI 1 ]
JFCL
RFL: JUMPN Q,EOR
HRROI TT,Q ;GOBBLE HEADER OF NEXT RECORD
.IOT MTIC,TT
JUMPGE Q,EOR
.VALUE ;UNEXPECTED HEADER
EOR: MOVEI D,LBUF
CAIGE E,LBUF
MOVE D,E ;D HAS NUMBER OF WORDS TO READ FROM FILE
CAMGE Q,D ;DON'T TAKE MORE THAN IN RECORD
MOVE D,Q
SUB E,D
SUB Q,D
MOVNS D,D
MOVSS D,D
HRRI D,BUF
MOVE C,D
.IOT MTIC,D
SKIPGE D
.VALUE
.IOT DKOC,C
JUMPN E,RFL
.CLOSE DKOC,
PUSHJ P,CRLF
JRST NXF
EOT: MOVE TT,[SIXBIT/E-O-T/]
PUSHJ P,SIXTYO
.BREAK 16,160000
CRLF: .IOT TYOC,[15]
CPOPJ: POPJ P,
SIXTYO: MOVEI T,0
LSHC T,6
ADDI T,40
.IOT TYOC,T
JUMPN TT,SIXTYO
POPJ P,
LBUF==200
BUF: BLOCK LBUF
BUFP: -LBUF,,BUF
END GO