.TITLE TRUNCATE .ENABL LC ; ; THIS PROGRAM IS TO REMOVE CREATE A NEW FILE WITN NO DUPLICATES ; FOR A GIVEN INPUT FILE ; .SBTTL MCALLS ; .MCALL ALUN$C,QIOW$C,QIO$C,EXIT$S .MCALL FSRSZ$,FDBDF$,FDBK$A,FDOP$R,FDAT$A .MCALL OPEN$R,OPEN$W .MCALL GET$,PUT$,CLOSE$ ; .NLIST BEX ; .SBTTL FILES ; ; FSRSZ$ 2 INFILE: FDBDF$ ;MY INPUT INFILE FDBK$A ,,,,FILEIO ; OUTFLE: FDBDF$ ;THE OUTPUT FILE FDAT$A R.VAR,FD.CR ; ; .SBTTL SOURCE ; START: NOP TI==1 ALUN$C TI,TI,0 QIO$C IO.ATT,TI ; ; LETS GET THIS SHOW ON THE ROAD!!! ; MOV #1,HITEOF QIOW$C IO.RPR,TI,1,,TISTAT,, MOV TISTAT+2,LEN1 FDOP$R #INFILE,#2,#FLEIN,,#FO.RD OPEN$R #INFILE,,,,#BUFFER,#132.,OPERR TST HITEOF BLE NOPROB ; ; MOV #1,HITEOF QIOW$C IO.RPR,TI,1,,TISTAT,, MOV TISTAT+2,LEN2 MOV #OUTFLE,R0 FDOP$R R0,#3,#FLEOUT,,#FO.WRT ; MOV #INFILE,R1 MOVB F.RATT(R1),F.RATT(R0) ;Copy the file characteristics ; OPEN$W R0,,,,#BUFFER,#132.,OPERR TST HITEOF BLE NOPROB ; MOVB #' ,R3 ; ANOREC: NOP GET$ #INFILE,,,OPERR TST HITEOF BLE NOPROB MOV F.BKST(R0),R2 BEQ ANOREC ; 10$: DEC R2 ;Takes care of the offset BLT ANOREC ;Found no line, try again CMPB BUFFER(R2),R3 BEQ 10$ ; INC R2 PUT$ #OUTFLE,,R2,OPERR TST HITEOF BLE NOPROB BR ANOREC ; NOPROB: NOP ; ; CLOSE THE FILES ; QIOW$C IO.DET,TI,1,,TISTAT CLOSE$ #INFILE CLOSE$ #OUTFLE ; ; EXIT$S ; ; .SBTTL DATA ; BUFFER STRUCTURE ; ; BUFFER: .BLKB 132. ; INPMSG: .ASCII /Name of input file:/ INPLEN=.-INPMSG .EVEN OUTMSG: .ASCII /Name of output file:/ OUTLEN=.-OUTMSG .EVEN ; TISTAT: .BLKW 2 FILEIO: .BLKW 2 ;FILE I/O STATUS BLOCK ; ; FILE AREAS ; FLEIN: .WORD 0,0,0,0 LEN1: .WORD 2 .WORD NAME1 NAME1: .BLKB 16. .EVEN FLEOUT: .WORD 0,0,0,0 LEN2: .WORD 3 .WORD NAME2 NAME2: .BLKB 16. .EVEN ; ; ; ANYTHING ELSE I MIGHT THINK I NEED .END START