1
0
mirror of https://github.com/PDP-10/its.git synced 2026-02-06 16:44:44 +00:00
Files
PDP-10.its/src/kcc/20xcsv.1
2017-02-15 19:27:00 +01:00

74 lines
1.0 KiB
Groff
Executable File

TITLE 20XCSV
;Reads a 20X CSAVE file and writes an ITS bin file.
A=1
B=2
C=3
D=4
E=5
T=6
TT=7
P=17
DKIC=10
DKOC=11
PDL: -20,,.
BLOCK 21
JCL: BLOCK 10
GO: MOVE P,PDL
.BREAK 12,[5,,JCL]
MOVE A,[440700,,JCL]
MOVE D,[440600,,B]
MOVEI B,0
FNR: ILDB C,A
CAIG C,40
JRST FNR2
CAIGE C,140
SUBI C,40
TLNE D,770000
IDPB C,D
JRST FNR
FNR2: .CALL [ SETZ ? SIXBIT/OPEN/ ? [.BII,,DKIC] ? [SIXBIT/DSK/] ? B ? SETZ ['20XBIN] ]
.LOSE %LSFIL
.CALL [ SETZ ? SIXBIT/OPEN/ ? [.BIO,,DKOC] ? [SIXBIT/DSK/] ? B ? SETZ ['BIN,,] ]
.LOSE %LSFIL
HRROI T,[JRST 1] ;F A D?
.IOT DKOC,T
LP: HRROI T,TT
.IOT DKIC,T ;Get IOWD
JUMPL T,EOFERR
JUMPGE TT,SADR
ADDI TT,1 ;AOBJN pointer
MOVE B,TT
MOVE D,TT ;Accumulate checksum in D
HRROI T,TT
.IOT DKOC,T
LP1: HRROI T,TT
.IOT DKIC,T
JUMPL T,EOFERR
ROT D,1
ADD D,TT
HRROI T,TT
.IOT DKOC,T
AOBJN B,LP1
HRROI T,D
.IOT DKOC,T
JRST LP
EOFERR: .VALUE
SADR: HRROI T,TT ;Output start address twice, no symbols
.IOT DKOC,T
HRROI T,TT
.IOT DKOC,T
.CLOSE DKOC,
.LOGOUT 1,
END GO