1 'Encode/Decode
2 'By Matthew Davey
3 'Amstrad Action September 1988
10 MODE 2:CAT:INPUT"name";name$
20 INPUT"0) code or 1) decode";choice
30 IF choice<0 OR choice>1 THEN GOTO 20
40 CODEPOS=0:codekey$="QWERTY":REM codekey$ can be anything of any length
50 OPENIN name$:OPENOUT name$
60 WHILE NOT EOF
70 LINE INPUT#9,A$:PRINT "READ--->";A$
80 FOR T=1 TO LEN(A$):B$=MID$(A$,T,1)
90 V=ASC(B$)
100 CODEPOS=CODEPOS+1:IF CODEPOS>LEN(CODEKEY$) THEN CODEPOS=1
110 IF choice THEN GOSUB 180 ELSE GOSUB 200
120 C$=C$+CHR$(V):NEXT
130 PRINT#9,C$:PRINT "WRITE-->";C$
140 C$=""
150 WEND
160 CLOSEIN:CLOSEOUT
170 PRINT"OK!":WHILE INKEY$="":WEND:RUN
180 IF V>32 AND V-(ASC(MID$(CODEKEY$,CODEPOS,1))-32)>32 THEN V=V-(ASC(MID$(CODEKEY$,CODEPOS,1))-32)
190 RETURN
200 IF V>32 AND V+(ASC(MID$(CODEKEY$,CODEPOS,1))-32)>32 THEN V=V+(ASC(MID$(CODEKEY$,CODEPOS,1))-32)
210 RETURN