1: DECLARE SUB Help () 2: DECLARE FUNCTION ExistFile! (f$) 3: DECLARE FUNCTION Str2DBL! (t$) 4: DECLARE SUB Convert (D#, Nb#) 5: DEFDBL A-Z 6: s$ = COMMAND$ 7: IF s$ = "" OR ExistFile(s$) <> -1 THEN Help: END 8: OPEN s$ FOR BINARY AS #1 9: OPEN "OUT.T64" FOR OUTPUT AS #2 10: DIM TwoBytes AS STRING * 2 11: n1 = 2 12: n2 = 3 13: PRINT "Creating OUT.T64 from " + UCASE$(s$) + ". Est. Size of OUT.T64:"; (LOF(1) * (n2 / n1) + LEN(s$)) + INT(LOF(1) / 78) * 2 14: PRINT "OUT.T64: BEGIN" 15: PRINT #2, s$ 16: PRINT s$ 17: 'FOR q = 1 TO LOF(1) STEP n1 18: DO UNTIL q = LOF(1) + 1 19: q = LOC(1) + 1 20: GET #1, q, TwoBytes 21: Decimal = Str2DBL(TwoBytes) 22: n$ = "" 23: DO WHILE Decimal > 0 24: CALL Convert(Decimal, 64) 25: Decimal = Decimal \ 64 26: LOOP 27: n$ = STRING$((n2) - LEN(n$), "0") + n$ 28: ttl = ttl + LEN(n$) 29: IF LEN(Stord$) >= 77 THEN PRINT Stord$: PRINT #2, Stord$: Stord$ = "" ELSE Stord$ = Stord$ + n$ 30: LOOP 31: 'NEXT q 32: PRINT #2, Stord$ 33: PRINT Stord$ 34: CLOSE 1, 2 35: PRINT "OUT.T64: EOF" 36: PRINT "Size of OUT.T64:"; 37: OPEN "OUT.T64" FOR RANDOM AS #2 38: PRINT LOF(2) 39: CLOSE 1, 2, 3, 4, 5, 6, 7, 8, 9 40: 41: SUB Convert (D, Nb) STATIC 42: SHARED n$ 43: ' Take the remainder to find the value of the current 44: ' digit. 45: R = D MOD Nb 46: ' If the digit is less than ten, return a digit (0...9). 47: ' Otherwise, return a letter (A...Z). 48: IF R < 10 THEN Digit$ = CHR$(R + 48) ELSE Digit$ = CHR$(R + 55) 49: n$ = RIGHT$(Digit$, 1) + n$ 50: END SUB 51: 52: DEFSNG A-Z 53: FUNCTION ExistFile (f$) 54: IF f$ = "" THEN ExistFile = 1: EXIT FUNCTION 55: X = FREEFILE 56: OPEN f$ FOR RANDOM AS #X 57: IF LOF(X) = 0 THEN CLOSE X: KILL f$: ExistFile = 1 ELSE CLOSE X: ExistFile = -1 58: END FUNCTION 59: 60: SUB Help 61: PRINT "Base64 - By DDE SoftWare, Inc." 62: PRINT "Syntax: BASE64 {binary file}" 63: PRINT "" 64: PRINT "binary file - A binary file to be converted to ASCII" 65: END SUB 66: 67: FUNCTION Str2DBL (t$) 68: FOR q = 1 TO LEN(t$) 69: ff$ = RTRIM$(LTRIM$(STR$(ASC(MID$(t$, q, 1))))) 70: m$ = m$ + STRING$(3 - LEN(ff$), "0") + ff$ 71: NEXT q 72: Str2DBL = VAL(m$) 73: END FUNCTION 74: |