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