;*************************** AMUS Program Label ****************************** ; Filename: ADCRLF.M68 Date: 12/17/91 ; Category: UTIL Hash Code: 064-214-014-152 Version: 1.0(100) ; Initials: ULTR/US Name: DAVID PALLMANN ; Company: ULTRASOFT CORPORATION Telephone #: 5163484848 ; Related Files: ; Min. Op. Sys.: AMOSL 1.3B/AMOS32 1.0 Expertise Level: INT ; Special: Okay for all versions of AMOS, both traditional & extended disks. ; Description: Copies a file, inserting CRLF pairs every N bytes. ;***************************************************************************** ;**************************************************************************** ;* * ;* ADCRLF * ;* Adds CR/LF pairs to a file * ;* * ;**************************************************************************** ;[100] 17 December 1991 17:12 Edited by David Pallmann ; Created. ;version number VMAJOR =1 VMINOR =0 VSUB =0 VEDIT =100. VWHO =0 ;universals SEARCH SYS SEARCH SYSSYM ;variables .OFINI .OFDEF INFIL, D.DDB ; input file .OFDEF OUTFIL, D.DDB ; output file .OFSIZ MEMSIZ ;*********** ;* START * ;*********** ;initialization START: PHDR -1,0,PH$REE!PH$REU ; program header GETIMP MEMSIZ,A5 ; allocate local memory for variables ;************ ;* CMDLIN * ;************ ;command line processing CMDLIN: BYP ; bypass spaces/tabs LIN ; end of line? JEQ USAGE ; yes - explain command usage FSPEC INFIL(A5),DAT ; INIT INFIL(A5) ; BYP ; CMPB @A2,#<',> ; BNE 10$ ; INC A2 ; BYP ; 10$: LIN ; JEQ USAGE ; FSPEC OUTFIL(A5),NEW ; INIT OUTFIL(A5) ; BYP ; NUM ; JNE USAGE ; GTDEC ; MOV D1,D5 ; JEQ USAGE ; OPEN: OPENI INFIL(A5) ; OPENO OUTFIL(A5) ; CONFRM: TYPE ; PFILE INFIL(A5) ; TYPE <, Creating file > ; PFILE OUTFIL(A5) ; CRLF ; CLR D4 ; clear record count LOOP: CTRLC CLOSE ; branch on ^C MOV D5,D0 ; copy record size 10$: FILINB INFIL(A5) ; get byte TST INFIL+D.SIZ(A5) ; end of file? JEQ CLOSE ; yes FILOTB OUTFIL(A5) ; output byte SOB D0,10$ ; loop until full record copied MOVB #13.,D1 ; write out FILOTB OUTFIL(A5) ; CR MOVB #10.,D1 ; write out FILOTB OUTFIL(A5) ; LF INC D4 ; update record count BR LOOP ; loop CLOSE: CLOSE INFIL(A5) ; CLOSE OUTFIL(A5) ; MOV D4,D1 ; DCVT 0,OT$TRM!OT$TSP ; TYPECR records processed CRLF ; EXIT ; ;*********** ;* USAGE * ;*********** ;explain command usage USAGE: TYPECR CRLF ; TYPECR Usage: .ADCRLF infile outfile recordsize CRLF ; EXIT ; END .