;*************************** AMUS Program Label ****************************** ; Filename: UUENCO.M68 Date: 9/25/90 ; Category: UTIL Hash Code: 051-640-161-456 Version: 1.0(100) ; Initials: ROBB/AM Name: Erik Petrich ; Company: Microlink Computing Systems, Inc. Telephone #: 4053218333 ; Related Files: UUDECO.M68 ; Min. Op. Sys.: Expertise Level: ADV ; Special: Requires the 2.0 assembler to reassemble. ; Description: This is uuencode ported to AMOS/L. It encodes binary files to ; an ascii file that uudecode and UUDECO can decode. ;***************************************************************************** ; ; UUENCO - Copyright 1990 Microlink Computing Systems, Inc. ; ; Usage: ; UUENCO {DestinationFile=}SourceFile {DecodedFilename} ; ; Notes: ; The DecodedFilename is the default destination file that uudecode or ; UUDECO will use when decoding the file. ; If not specified, the DecodedFilename will default to the SourceFile's ; filename. ; ;Edit History: ;[100] 07 September 1990 23:15 Edited by Erik Petrich ; ; SEARCH SYS SEARCH SYSSYM VMAJOR = 1. VMINOR = 0. VEDIT = 100. .OFINI .OFDEF infil,D.DDB .OFDEF inbuf,512. .OFDEF outfil,D.DDB .OFDEF outbuf,512. .OFDEF linbuf,46. .OFDEF linsiz,2 .OFDEF CheckSum,2 .OFDEF FileSize,4 .OFSIZ impsiz PHDR -1,0,PH$REE!PH$REU GETIMP impsiz,a5 BYP LIN jeq Usage mov a2,a1 orb #D$ERC,D.FLG+outfil(a5) clr d6 FSPEC outfil(a5) jne Abort byp movb (a2)+,d1 cmpb d1,#'= bne 20$ lea a6,outbuf(a5) mov a6,D.BUF+outfil(a5) orb #D$INI,D.FLG+outfil(a5) clr D.DVR+outfil(a5) LOOKUP outfil(a5) bne 10$ DSKDEL outfil(a5) jne Abort 10$: OPENO outfil(a5) jne Abort br 30$ 20$: mov a1,a2 30$: StartFile: BYP LIN jeq Usage clr d6 orb #D$ERC,D.FLG+infil(a5) FSPEC infil(a5) jne Abort lea a6,inbuf(a5) mov a6,D.BUF+infil(a5) orb #D$INI,D.FLG+infil(a5) OPENI infil(a5) jne Abort lea a0,BeginTxt call StringOut byp lin beq 10$ mov a2,a0 br 20$ 10$: lea a2,linbuf(a5) ofile infil(a5),ot$mem clrb @a2 lea a0,linbuf(a5) 20$: call StringOut call CRLFout ReadLine: CTRLC Abort lea a0,linbuf(a5) clrw linsiz(a5) 10$: FILINB infil(a5) jne Abort tst D.SIZ+infil(a5) beq 20$ movb d1,(a0)+ inc FileSize(a5) rorw CheckSum(a5) addw d1,CheckSum(a5) incw linsiz(a5) cmpw linsiz(a5),#45. blo 10$ 20$: tstw linsiz(a5) jeq WriteEOF WriteLine: movw linsiz(a5),d1 call ByteOutBumped lea a0,linbuf(a5) 10$: CTRLC Abort movb @a0,d1 lsrb d1,#2 call ByteOutBumped movb @a0,d7 lslb d7,#4 movb 1(a0),d1 lsrb d1,#4 orb d7,d1 call ByteOutBumped movb 1(a0),d7 lslb d7,#2 movb 2(a0),d1 lsrb d1,#6 orb d7,d1 call ByteOutBumped movb 2(a0),d1 call ByteOutBumped add #3,a0 subw #3,linsiz(a5) bhi 10$ 20$: call CRLFout tst D.SIZ+infil(a5) jne ReadLine WriteEOF: clrb d1 call ByteOutBumped call CRLFout lea a0,EndTxt call StringOut call CRLFout CLOSE infil(a5) jne Abort type <File size : > mov FileSize(a5),d1 dcvt 0,ot$trm crlf type < Sum : > clr d1 movw CheckSum(a5),d1 dcvt 0,ot$trm crlf jmp Done StringOut: 10$: movb (a0)+,d1 cmpb d1,#32. blo 20$ lcs call ByteOut br 10$ 20$: rtn CRLFout: movb #13.,d1 call ByteOut movb #10.,d1 call ByteOut rtn ByteOutBumped: andb #^H03f,d1 bne 10$ movb #64.,d1 10$: addb #32.,d1 ByteOut: tstb D.OPN+outfil(a5) bne 10$ TTY rtn 10$: FILOTB outfil(a5) jne Abort rtn Abort: CRLF Done: tstb D.OPN+outfil(a5) beq 10$ CLOSE outfil(a5) 10$: tstb D.OPN+infil(a5) beq 20$ CLOSE outfil(a5) 20$: EXIT BeginTxt: asciz /begin 600 / EndTxt: asciz /end/ even Usage: TYPECR <UUENCO - Copyright 1990 Microlink Computing Systems, Inc.> CRLF TYPECR <Usage:> TYPECR < UUENCO {DestinationFile=}SourceFile {DecodedFilename}> CRLF EXIT end