logajan@ns.UUCP (John Logajan x3118) (08/18/88)
This is a working but unfinished uudecode program in GFA Basic. I used it successful on a total of one out of one attempts. It does not (yet) handle line lengths other than "M" (45 undecoded chars.) uuencode format: The first character indicates the number of bytes encoded into the current line. (M=45 typical) Thereafter three 8-bit bytes are split into four 6-bit characters. So you have to unpack groups of four characters into three bytes. There are two end cases left to handle: 1.) Line lengths other than 45 but ending with a three byte group. 2.) Line lengths other that 45 ending with less than a three byte group. Good luck. Dim C(45),L(61) Input "Name of file to decode";F$ Open "I",#1,F$ Repeat Line Input #1,B$ Until Left$(B$,5)="begin" O$=Mid$(B$,11,12) Print O$ Open "O",#2,O$ While Left$(B$,3)<>"end" Exit If Eof(#1) Line Input #1,B$ For J=1 To 61 L(J-1)=(Asc(Mid$(B$,J,1))-32) And 63 Next J K=1 For J=1 To 45 Step 3 C(J)=L(K)*4+Int(L(K+1)/16) C(J+1)=(L(K+1)*16+Int(L(K+2)/4)) And 255 C(J+2)=(L(K+2)*64+L(K+3)) And 255 K=K+4 Print #2,Chr$(C(J));Chr$(C(J+1));Chr$(C(J+2)); Next J Wend End -- - John M. Logajan @ Network Systems; 7600 Boone Ave; Brooklyn Park, MN 55428 - - {...rutgers!dayton, ...amdahl!ems, ...uunet!rosevax!mmm} !viper!ns!logajan -