0 'CRYPTO.BA (author unknown) Club 100 Library - 415/939-1246 BBS 937-5039 NEWSLETTER, 932-8856 VOICE 1 '19-Mar-84 2 ' 10 MAXFILES=2:CLEAR5:DEFINTA-Z:S$="'-?., ABCDEFGHIJKLMNOPQRSTUVWXYZ":H$="0123456789ABCDEF" 20 DIMKS(11),A(316) 30 X=0:CLS:PRINT"key:";CHR$(27);"V"; 40 IFX<0THENX=0:PRINT@4,; 50 X$=INPUT$(1):IFX$=CHR$(8)THENX=X-1:PRINTX$;:GOTO40 60 IFX$=CHR$(13)THENNC=X:GOTO100 70 IFINSTR(1,S$,X$)=0THENGOTO40 80 PRINTX$;:IFX<316THENX=X+1 90 A(X)=INSTR(1,S$,X$)-1:GOTO40 100 PRINTCHR$(27);"W";CHR$(27);"P";:NB=NC/8*5:NK=-1:K=0:RESTORE500 110 READ N:K=K+N:IFK<=NBTHENNK=NK+1:KS(NK)=N:GOTO110 120 IFNK=-1THENPRINT:PRINT"Key too short. Hit any key to continue":X$=INPUT$(1):GOTO30 130 PRINT:PRINT"NK=";NK 140 DIM KI(NK),KO(NK),KB(NK),KE(NK,KS(NK)) 150 RESTORE510:FORX=0TONK:READKB(X):NEXT 160 CD=1:CB=1 170 FORKD=0TONK:FORKL=0TOKS(KD)-1:FORBIT=0TO7 180 IF(A(CD)ANDCB)THENKE(KD,KL)=(KE(KD,KL)OR2^BIT) 190 CD=CD+1:IFCD>NCTHENCD=1:CB=CB*2:IFCB>16THENPRINT"Too few chars!":STOP 200 NEXT:NEXT:NEXT 500 DATA 2,3,5,7,11,13,17,19,23,29,31,37 510 DATA1,2,3,4,5,6,7,8,9,10,11,12 1000 CLS 1010 OPEN"MDM:7E1D"FORINPUTAS1 1020 OPEN"MDM:7E1D"FOROUTPUTAS2 1030 ONMDMGOSUB2000 1040 ONERRORGOTO10000 1090 FORX=0TONK:KI(X)=KB(X):KO(X)=KB(X):NEXT:DF=-1 1100 MDMON:I$=INKEY$:IFI$=""THEN1100ELSEIFDFTHENPRINTI$; 1110 P=ASC(I$):IFP=18THENGOTO1090ELSEIFP=4THENDF=-1-DF 1120 FORX=0TONK:O=KO(X):P=(PXORKE(X,O)):KO(X)=(O+1)MODKS(X):NEXT 1130 PRINT#2,MID$(H$,INT(P/16)+1,1);MID$(H$,(PAND15)+1,1); 1140 GOTO1100 2000 A$=INPUT$(1,1):A=INSTR(H$,A$)-1:A1$=INPUT$(1,1):A1=INSTR(H$,A1$)-1:C=A*16+A1:IFC=-17THENRETURN 2010 REMPRINTCHR$(C);:RETURN 2020 FORX=0TONK:I=KI(X):C=(C XOR KE(X,I)):KI(X)=(I+1)MODKS(X):NEXT:PRINTCHR$(C);:RETURN 10000 PRINT"!ERR";:RESUME1100 20000 FORX=0TONK:FORY=0TOKS(X)-1 20010 PRINTMID$(H$,INT(KE(X,Y)/16)+1,1);MID$(H$,(KE(X,Y)AND15)+1,1);" ";:NEXT 20020 PRINT:NEXT 30000 SUBROUTINE 20000 DISPLAYS KEYS IN USE; 2010 DISPLAYS INBOUND GARBAGE 30010 FOR DEBUGGING...