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