1 ' 2 ' CRYPTOBABY (VERSION 1) 3 ' 4 ' BY: Max Seim 5 ' Roseville, Minnesota 6 ' (71116,1347) 7 ' 8 ' ** MAKE SURE YOU HAVE A .DO FILE CREATED CALLED: CRYD.DO !!IMPORTANT!! 9 ' ** BEFORE TRYING A RECALL, SAVE AT LEAST ONE CRYPTO! USE KEYWORDS THAT ARE EASY TO REMEMBER! 10 CLS:CLEAR1000:DIMA$(4),B$(4),P(4) 11 LINE(80,40)-(146,80),1,B 12 PRINT@294,"CRYPTOBABY";:NF=0:RF=0 13 FORX=1TO500:NEXT:CLS 14 FORX=1TO4:B$(X)=SPACE$(40):NEXTX 20 PRINT:PRINT@14,"CryptoBaby":PRINT:PRINT 30 PRINT"1) CREATE cryptoquip":PRINT:PRINT"2) ENTER quip from newspaper":PRINT 40 PRINT"3) RECALL a quip from file":PRINT:PRINT"4) END PROGRAM":PRINT 50 PRINT:PRINT" Select NUMBER of choice" 60 A$=INKEY$:IFA$=""THEN60 70 ONVAL(A$)GOTO1000,2000,3000,4000 73 GOTO60 1000 CLS:PRINT:PRINT"* Enter up to 4 lines of TEXT.":PRINT"* PRESS CAPS LOCK KEY." 1005 PRINT"* Press ENTER KEY on blank line to quit.":PRINT 1010 FORX=1TO4:LINEINPUTA$(X):IFA$(X)=""THEN1015ELSENEXTX 1015 IFNF=1THENGOTO2100 1020 CLS:PRINT:PRINT:PRINT"...one moment please ...":PRINT 1025 PRINT"I must scramble alphabet / build crypto" 1030 S=VAL(RIGHT$(TIME$,2)):FORI=1TOS:DUMMY=RND(1):NEXTI 1040 C$="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 1042 D$="**************************" 1045 FORX=1TO26 1050 R=INT(RND(1)*26+1):IFMID$(C$,R,1)="*"THEN1050 1060 T=ASC(MID$(C$,X,1)):MID$(D$,X,1)=MID$(C$,R,1) 1075 T1=ASC(MID$(D$,X,1)):IFT=T1THEN1050 1080 MID$(C$,R,1)="*":NEXTX 1100 FORX=1TO4:IFA$(X)=""THEN5000 1105 FORY=1TOLEN(A$(X)):T$=MID$(A$(X),Y,1):T=ASC(T$):IFT<65 OR T>90THEN:MID$(B$(X),Y,1)=T$:GOTO1120 1110 T1$=MID$(D$,T-64,1):MID$(B$(X),Y,1)=T1$ 1120 NEXTY:NEXTX 1125 GOTO5000 2000 NF=1:GOTO1000 2100 FORX=1TO4:B$(X)=A$(X):NEXTX:GOTO5000 3000 CLS:PRINT:PRINT"* RECALL CRYPTO *":PRINT:PRINT 3002 OPEN "cryd.do" FOR INPUT AS 1 3013 PRINT:INPUT"Enter KEYWORD";K$ 3014 INPUT#1,T$:IFEOF(1)THEN3070 3015 IFT$=K$THEN3050 3020 GOTO3014 3050 LINEINPUT#1,A$(1):IFA$(1)=""THEN3100 3052 LINEINPUT#1,A$(2):IFA$(2)=""THEN3100 3054 LINEINPUT#1,A$(3):IFA$(3)=""THEN3100 3056 LINEINPUT#1,A$(4):IFA$(4)=""THEN3100 3058 GOTO3100 3070 PRINT:PRINT"Do DATA found":FORX=1TO500:NEXTX:RUN 3100 CLOSE:RF=1:GOTO5090 4000 CLS:END 5000 CLS:PRINT:PRINT"Enter KEYWORD for a SAVE of Crypto.":PRINT"No KEYWORD = No SAVE":PRINT:INPUT"KEYWORD";F$ 5005 IFF$=""THEN5090 5010 OPEN "cryd.do" FOR APPEND AS 1 5015 PRINT#1,F$:PRINT#1,B$(1):PRINT#1,B$(2):PRINT#1,B$(3):PRINT#1,B$(4) 5016 CLOSE 5090 CLS:IFRF=1THEN5100 5092 FORX=1TO4:A$(X)=B$(X):B$(X)=SPACE$(40):NEXTX 5100 FORX=1TO4:READA:PRINT@A,A$(X);:NEXTX 5110 PRINT@620,"* (CLEAR) + (QUIT)"; 5115 PRINT@600," "; 5120 C$=INKEY$:IFC$=""THEN5120 5122 IFC$="*"THEN6000 5124 IFC$="+"THEN7000 5130 IFC$=CHR$(13)THEN:C$="":GOTO5120 5140 PRINT@600,C$;" = "; 5150 D$=INKEY$:IFD$=""THEN5150 5160 IFD$=CHR$(13)THEN:D$="":GOTO5150 5165 PRINT@604,D$; 5170 FORX=1TO4 5175 FORY=1TOLEN(A$(X)):IFMID$(A$(X),Y,1)<>C$THEN5185 5180 MID$(B$(X),Y)=D$ 5185 NEXTY:NEXTX 5190 RESTORE:FORX=1TO4:READA:A=A-40:PRINT@A,B$(X);:NEXTX 5195 GOTO5115 6000 FORX=1TO4:B$(X)=SPACE$(40):NEXTX:GOTO5190 7000 PRINT@600,"QUIT?"; 7002 A$=INKEY$:IFA$=""THEN7002 7004 IFA$="Y" OR A$="y"THEN RUN 7006 GOTO5115 8000 DATA120,240,360,480