Listing of file='CRYPTOB' on disk='vmedia/games-droz01.wvd.zip'
# Sector 370, program filename = 'CRYPTOB' 0010 REM "CRYPTOB" T.OLSEN WANG LABS 2200 R&D 4/10/75 : F9$="CRYPTOGRAM GAME" 0020 DIM A1$64,A2$64,P$64,C1$64,X$1,A$64,B$64,C$64,E$26,F$26,Z$1 0030 DIM K$1,Q9$64 : INIT(09)Q9$ : STR(Q9$,1,1)=HEX(00) : M9=2000 0040 REM A$="SOURCE TEXT" : REM B$="ENCRYPTED TEXT" : REM C$="YOUR SOLUTION" 0050 SELECT PRINT 005(64) : PRINT HEX(03) 0060 % TRIES MADE=#### CORRECT=## CLUES=## SCORE=#### 0070 GOSUB 80 : STOP "KEY IN APPROPRIATE FUNCTION" 0080 PRINT HEX(010A0A0A0A0A0A0A) 0090 PRINT F9$;" FUNCTION KEYS ARE INPUT COMMANDS" 0100 PRINT "LETTERS CORRECT=";STR(F$,1,26) 0110 PRINT "POSITION CURSOR UNDER THE LETTER AND TYPE YOUR GUESS." 0120 PRINT "CURSOR CONTROL '11=5 RIGHT '12=1 RIGHT '13=1 LEFT '14=5 LEFT" 0130 PRINT "CLUES '0 ANY (=7 TRIES) '1 SPECIFIC (=10 TRIES)" 0140 PRINT : PRINT "FUNCTIONS BELOW ARE LOCKED OUT EXCEPT AFTER STOP OR RESET" 0150 PRINT "'1-14 AND 16-31 CANNED PHRASES '15=ENTER A NEW PHRASE";HEX(01) 0160 RETURN : %SOLUTION ENTRY 0170 SELECT PRINT 405 : PRINT HEX(010A0A);STR(Q9$,1,K); : SELECT PRINT 005 : IF STR(C$,K,1)<>" "THEN 210 : IF STR(B$,K,1)=" "THEN 210 0180 KEYIN K$,240,190 : M=M+1 : IF M<M9THEN 180 : SELECT PRINT 005 : RETURN 0190 ON VAL(K$)-10GOTO 200,210,230,220 : ON VAL(K$)+1GOTO 610,600 : GOTO 180 0200 K=K+4 0210 K=K+1 : IF K<=LTHEN 170 : K=1 : GOTO 170 0220 K=K-4 0230 K=K-1 : IF K>1THEN 260 : K=1 : GOTO 170 0240 IF K$=HEX(08)THEN 230 : IF K$=" "THEN 210 : IF K$<"A"THEN 180 : IF K$>"Z"THEN 270 0250 SELECT PRINT 005 : PRINT K$ : PRINT K$;" FOR ";STR(B$,K,1);" "; : RETURN 0260 PRINT HEX(010A0A);STR(Q9$,1,K); : IF STR(C$,K,1)<>" "THEN 230 : IF STR(B$,K,1)=" "THEN 230 : GOTO 180 0270 PRINT HEX(010A0A0A);"MAKE SURE YOUR KEYBOARD SWITCH IS UPPER CASE ENTRY"; TAB(63) : GOTO 170 0280 DEFFN'15 : PRINT HEX(03),F9$ 0290 PRINT "TYPE A PHRASE ON ONE LINE WHICH WILL BE ENCRYPTED" 0300 A$=" " : INPUT A$ : %PHRASE ENCODING 0310 L=LEN(A$) : B$,C$=" " : K=1 : X$=HEX(FF) 0320 PRINT HEX(03);"TO GET A BLOCKED CRYPTO KEY S.F.'00 BEFORE THE PHRASE APPE ARS" : PRINT "RANDOMIZING" 0330 FOR C=1 TO L : T=RND(1) : NEXT C 0340 PRINT "BUSY ENCRYPTING "; 0350 REM ENCRYPT ALPHABET : GOSUB 690 : REM ENCRYPT PHRASE : GOSUB 750 0360 KEYIN X$,370,370 : %--BLOCKING 0370 A2$=A$ : IF X$<>HEX(00)THEN 430 : PRINT "BLOCKING IN "; : S=2*S : W=1 : REM SQUEEZE OUT SPACES 0380 X=POS(STR(A$,1,LEN(A$))=" ") : IF X=0THEN 400 : C=LEN(A$)-X+1 0390 STR(A$,X,C)=STR(A$,X+1,C) : STR(B$,X,C)=STR(B$,X+1,C) : STR(C$,X,C)=STR(C$,X+1,C) : GOTO 380 : REM DETERMINE BLOCK 0400 L=LEN(A$) : A1$=A$ : P$=B$ : C1$=C$ : A$,B$,C$=" " : W=INT(64/(65-L)) : T=1 : IF W>4THEN 410 : W=4 0410 W=W+INT(4*RND(1)) : PRINT W : FOR X=1 TO L-WSTEP W : STR(A$,T,W)=STR(A1$,X) : STR(B$,T,W)=STR(P$,X) : STR(C$,T,W)=STR(C1$,X) : T=T+W+1 : NEXT X 0420 X=X+W : STR(A$,T)=STR(A1$,X) : STR(B$,T)=STR(P$,X) : STR(C$,T)=STR(C1$,X) : L=LEN(A$) 0430 PRINT HEX(03); : M,C,T,T1=0 : F$=" " : %CRYPTO DISPLAY 0440 DEFFN'0 : SELECT PRINT 005 : GOSUB 80 : PRINT HEX(01);"ENCRYPTED PHRASE=" : PRINT B$ : PRINT C$ 0450 GOSUB 170 : IF M>=M9THEN 485 : Z$=STR(B$,K,1) 0460 X=VAL(K$)-64 : IF X*(27-X)<1 THEN 440 0470 T=T+1 : IF Z$=STR(E$,X,1)THEN 490 0480 P$="YOU MISSED" : S=S-P : GOTO 530 0485 PRINT : P$="TIME OUT" : S=S-P : GOTO 530 0490 P$="CORRECT" : K=K+1 : T1=T1+1 0500 INIT(Z$)C1$ : XOR (C1$,B$) 0510 W=POS(C1$=00) : IF W=0 THEN 520 : STR(C1$,W,1),STR(C$,W,1)=K$ : GOTO 510 0520 STR(F$,VAL(K$)-64,1)=K$ 0530 PRINT P$;TAB(64) : M=0 0540 PRINTUSING 60,T,T1,C,S; : PRINT TAB(64) : PRINT TAB(63); : IF A$<>C$THEN 595 : IF X$<>HEX(00)THEN 550 : C$=A2$ 0550 SELECT PRINT 005 : PRINT HEX(01);"COMPLETED PHRASE=";TAB(64) : PRINT C$;TAB(64) 0560 PRINT "YOU FINISHED";TAB(63) 0570 PRINT TAB(63) : PRINT TAB(63) : PRINT TAB(63) : PRINT HEX(0C0C0C) 0580 PRINTUSING 60,T,T1,C,S; : PRINT TAB(64);HEX(0C); 0590 STOP "KEY A SPECIAL FUNCTION TO GET A NEW PHRASE" 0595 IF S>0THEN 440 : PRINT HEX(0C); : STOP "YOU ARE NOT SERIOUS ABOUT THIS -- GIVE SOMEONE ELSE A TRY" : %CLUE 0600 IF STR(C$,K,1)<>" "THEN 180 : IF STR(A$,K,1)=" "THEN 180 : C=C+1 : Y=K : S=S-(10*P) : GOTO 650 0610 C=C+1 : S=S-(7*P) 0620 Y=INT(L*RND(1))+1 0630 IF STR(C$,Y,1)<>" "THEN 620 0640 IF STR(A$,Y,1)=" "THEN 620 0650 K$=STR(A$,Y,1) : Z$=STR(B$,Y,1) 0660 PRINT HEX(010A0A0A); 0670 P$="CLUE-- FOR" : STR(P$,7,1)=K$ : STR(P$,13,1)=Z$ 0680 GOTO 500 : %ENCRYPT ALPHABET 0690 E$=" " : PRINT "THE ALPHABET"; 0700 FOR X=1 TO 26 0710 Y=INT(26*RND(1))+1 0720 IF STR(E$,Y,1)<>" " THEN 710 0730 BIN(STR(E$,Y))=X+64 0740 NEXT X : RETURN : %ENCRYPT PHRASE 0750 C$,B$=A$ : PRINT " THE PHRASE" : S=1000 : P=S/L 0760 FOR W=1 TO L 0770 X=VAL(STR(A$,W))-64 : IF X*(27-X)<1 THEN 790 0780 STR(B$,W,1)=STR(E$,X) : STR(C$,W,1)=" " 0790 NEXT W : RETURN : %CANNED PHRASES 0800 DEFFN'1 0810 A$="FORE-SCORE AND SEVEN SHOTS AGO. TEE TALKING" 0820 GOTO 310 0830 DEFFN'2 0840 A$="THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG'S BACK." 0850 GOTO 310 0860 DEFFN'3 0870 A$="THE WANG 2200-B IS ABLE TO PLAY CRYPTO GAMES." 0880 GOTO 310 0890 DEFFN'4 0900 A$="WE CAN ALSO DO PAYROLLS, INVENTORY, TEACHING AIDS, PLUS" 0910 GOTO 310 0920 DEFFN'5 0930 A$="USE AN ACE AXE TO RUN KIDS OFF OF YOUR BIKE PATH." 0940 GOTO 310 0950 DEFFN'6 0960 A$="NOBODY SHOOTS AT SANTA CLAUS. ALFRED E. SMITH" 0970 GOTO 310 0980 DEFFN'7 0990 A$="NO MATTER HOW THIN YOU SLICE IT, IT'S STILL BOLONEY." 1000 GOTO 310 1010 DEFFN'8 1020 A$="THOUGH IT BE HONEST, IT IS NEVER GOOD TO BRING BAD NEWS." 1030 GOTO 310 1040 DEFFN'9 1050 A$="GOOD WINE IS A GOOD FAMILIAR CREATURE IF IT BE WELL USED." 1060 GOTO 310 1070 DEFFN'10 1080 A$="FAULTILY FAULTLESS, ICILY REGULAR, SPLENDIDLY NULL. MAUD." 1090 GOTO 310 1100 DEFFN'11 1110 A$="POETS ARE THE HIEROPHANTS OF AN UNAPPREHENDED INSPIRATION." 1120 GOTO 310 1130 DEFFN'12 1140 A$="IS THERE SUCH A WORD AS ANTIDISESTABLISHMENTARIANISM?" 1150 GOTO 310 1160 DEFFN'13 1170 A$="THE LETTERS OF THE ALPHABET ARE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" 1180 GOTO 310 1190 DEFFN'14 1200 A$="A PRIVATE BUFFOON IS A LIGHT-HEARTED LOON. W.S. GILBERT" : GOTO 310 1210 DEFFN'17 1220 A$="LOUD LAMB BAAS SEND ECHO OVER THIS FIVE ACRE FARM UNIT." 1230 GOTO 310 1240 DEFFN'18 1250 A$="ABLE WAS I ERE I SAW ELBA. NAPOLEON BONAPARTE" 1260 GOTO 310 1270 DEFFN'19 1280 A$="SATOR, AREPO, TENET, OPERA, ROTAS. MAGIC SQUARE" 1290 GOTO 310 1300 DEFFN'20 1310 A$="ALASKAN USED IVORY OF WALRUS TUSK FOR NEW CARVED CURIOSITY." 1320 GOTO 310 1330 DEFFN'21 1340 A$="REALIZE THE IDEAL; IDEALIZE THE REAL." 1350 GOTO 310 1360 DEFFN'22 1370 A$="CORPULENT DERELICT COURTED OPULENT RELICT." 1380 GOTO 310 1390 DEFFN'23 1400 A$="RUMBA, SAMBA BOTH RIGHT MAD, BUT I DIG MOST THAT MAMBO." 1410 GOTO 310 1420 DEFFN'24 1430 A$="HIS FROZEN ASSETS CONSISTED OF FREEZER KEPT STACKS OF STEAKS." 1440 GOTO 310 1450 DEFFN'25 1460 A$="WE SHIRK IRKSOME HOMEWORK." 1470 GOTO 310 1480 DEFFN'26 1490 A$="CRISP CRYPTS STYMIE ME." 1500 GOTO 310 1510 DEFFN'27 1520 A$="BAGGY CLOTHES DECREED BY THE HAUTE COUTURE ARE GHASTLY." 1530 GOTO 310 1540 DEFFN'28 1550 A$="MEDIUM ABJURED OUIJA BOARD" 1560 GOTO 310 1570 DEFFN'29 1580 A$="OUR HEP JAVA FINCHES JUMP FIVE INCHES FROM PERCH." 1590 GOTO 310 1600 DEFFN'30 1610 A$="HORSESHOER QUIT QUOITS." 1620 GOTO 310 1630 DEFFN'31 1640 A$="QUAKING SKIN DIVER AVOIDS TAKING GROTESQUE SQUID." 1650 GOTO 310