1 !  *********************************************************************
2 !  *   Decode.bas implemented by Trygve Lode  (7/25/85)                *
3 !  *     Lode Data Corporation                                         *
4 !  *     6450 E. Hampden Ave.            (303) 781-6309                *
5 !  *     Denver, CO  80222                                             *
6 !  *                                                                   *
7 !  *  Decodes sequential text files encoded by ENCODE                  *
8 !  *  Use numerical key:  5.1551, 1023.6612, or similar                *
9 !  *********************************************************************
10 STRSIZ 250
15 MAP1 FLOAT,F,6
20 MAP1 BIN(6),B,1,@FLOAT
30 J = 2^19 + 3 : M = 2^39
40 INPUT "Encoded source:  ";FILE1$
50 LOOKUP FILE1$,BLOCKS1
60 IF BLOCKS1=0 THEN ? "File not found." : END
70 IF BLOCKS1<0 THEN ? "File is of wrong type." : END
80 INPUT "Decoded destination:  ";FILE2$
90 LOOKUP FILE2$,BLOCKS2
100 IF BLOCKS2=0 THEN 110
105 INPUT "File exists.  Delete it?";Z$:IF Z$[1,1]<>"Y" THEN END
110 OPEN #1,FILE1$,INPUT
120 OPEN #2,FILE2$,OUTPUT
130 INPUT "Key:  ";FLOAT : FLOAT = LOG(FLOAT)
140 FOR K=1 TO 47:FLOAT=(J*FLOAT)-M*INT(J*FLOAT/M):NEXT K
150 N=2
160 ? "Processing file."
170 INPUT LINE #1,Z$ : IF EOF(1) THEN 240 ELSE IF LEN(Z$) = 0 THEN 220
180 FOR K = 1 TO LEN(Z$)
190 N=N+1:IF N>4 THEN FLOAT=(J*FLOAT)-M*INT(J*FLOAT/M):N=3
200 Z = ASC(Z$[K,K]) - BIN(N) + 288 : Z$[K,K]=CHR$(Z-96*INT((Z-32)/96))
210 NEXT K
220 PRINT #2,Z$
230 GOTO 170
240 CLOSE #1 : CLOSE #2
250 ? "Done." : END