1010 REM: AUTHOR. RANDY WONG 1 AUG 1975 1020 PRINT "LAST-REVISED. 25 AUG 1976" 1025 PRINT 1030 REM: EDP RESOURCE CENTER, 400 MANSELL ST, SAN FRANCISCO CA 94134 1040 REM: (415) 239-6460 1050 DIM A$[72],C$[72],L$[72],M$[72],X$[72],Z$[72] 1060 PRINT "INT'L MORSE CODE PRGM--TO QUIT A MODE ENTER A NULL RETURN"; 1065 PRINT "MODE '0' (ZERO) GIVES RUDEMENTARY DIRECTIONS"; 1070 REM: RANDOMIZE P 1080 ENTER #P 1090 LET C$="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/:-,?.'" 1100 LET M$=" #################" 1110 PRINT 1120 PRINT 1130 RESTORE 2440 1140 PRINT "MODE NO.: "; 1150 ENTER 255,R,M 1160 IF R<0 THEN 9999 1170 IF M>0 AND M<9 AND INT(M)=M THEN 1240 1180 PRINT LIN(2);"MODE DESCRIPTION";LIN(1);" 0 LISTS MODES" 1190 FOR Z9=1 TO 8 1200 READ X$ 1210 PRINT Z9;X$ 1220 NEXT Z9 1230 GOTO 1120 1240 FOR Z9=1 TO M 1250 READ X$ 1260 NEXT Z9 1270 PRINT TAB(15);X$;LIN(1) 1280 GOTO M OF 1400,1530,1550,1550,1640,1690,1750,1810 1290 PRINT 1300 LET Z8=1 1310 FOR Z9=1 TO LEN(X$) 1320 IF X$[Z9,Z9] <> " " THEN 1370 1330 LET Z$=X$[Z8,Z9-1+(Z9=LEN(X$))] 1340 GOSUB 2170 1350 PRINT L$[1,1]; 1360 LET Z8=Z9+1 1370 IF Z9=LEN(X$) AND Z8 <= Z9 THEN 1330 1380 NEXT Z9 1390 PRINT 1400 PRINT "CODE: "; 1410 GOTO 1880 1420 LET A$=" " 1430 PRINT 1440 FOR Z9=1 TO LEN(X$) 1450 LET Z$=X$[Z9,Z9] 1460 GOSUB 2230 1470 LET A$[1,1]=X$[Z9,Z9] 1480 LET A$[3]=L$[2] 1490 LET A$[LEN(A$)+1]=" " 1500 PRINT A$; 1510 NEXT Z9 1520 PRINT 1530 PRINT "TEXT: "; 1540 GOTO 1880 1550 PRINT "C/X:CHR:CODE" 1560 GOSUB 1980 1570 IF M <> 4 THEN 1600 1580 PRINT " : ";L$[1,1];" :"; 1590 LET A$=L$[2] 1600 IF M <> 3 THEN 1630 1610 PRINT " :";L$[2];LIN(0);" : "; 1620 LET A$=L$[1,1] 1630 GOTO 1880 1640 PRINT " DECIPHER:"; 1650 GOSUB 2080 1660 PRINT Z$ 1670 PRINT " TEXT: "; 1680 GOTO 1880 1690 PRINT " ENCIPHER: "; 1700 GOSUB 2080 1710 PRINT A$ 1720 LET A$=Z$[2] 1730 PRINT " CODE: "; 1740 GOTO 1880 1750 PRINT C$;LIN(0);M$;LIN(2);"OBSCURE THE CHARACTERS NOT DESIRED "; 1760 PRINT "IN D/P MODES.";LIN(2);C$;LIN(0); 1770 LET M$=" " 1780 GOTO 1880 1790 LET M$[1,LEN(X$)]=X$ 1800 GOTO 1110 1810 RESTORE 2290 1820 READ X$ 1830 IF X$[1,1]='92 THEN 1820 1840 IF X$="#NOT-FOUND" THEN 1820 1850 IF X$="#END-REFERENCE-MATERIAL" THEN 1110 1860 PRINT X$[1,1];" ";X$[2] 1870 GOTO 1820 1880 ENTER 255,R,X$ 1890 IF R<0 THEN 9999 1900 IF NOT LEN(X$) THEN 1110 1910 IF M=7 THEN 1790 1920 GOTO M OF 1290,1420 1930 IF X$ <> A$ THEN 1960 1940 PRINT " C" 1950 GOTO 1970 1960 PRINT " X" 1970 GOTO M-2 OF 1560,1560,1640,1690 1980 REM: LET L$=RANDOM-L$ .ST. L$::LOOK-UP 1990 RESTORE 2290 2000 LET Z9=LEN(M$) 2010 LET Z8=INT(RND(P)*Z9+1) 2020 LET Z8=Z8+13-(Z8+13>Z9)*Z9 2030 IF M$[Z8,Z8] <> " " THEN 2020 2040 FOR Z9=1 TO Z8 2050 READ L$ 2060 NEXT Z9 2070 RETURN 2080 REM: GENERATE-GROUP-PROBLEM 2090 LET Z$=Z$[2,1] 2100 FOR Z7=1 TO RND(P)+RND(P)+RND(P)+RND(P)+RND(P)+3 2110 GOSUB 1980 2120 LET A$[Z7]=L$[1,1] 2130 LET L$[1,1]=" " 2140 LET Z$[LEN(Z$)+1]=L$ 2150 NEXT Z7 2160 RETURN 2170 REM: LET L$=LOOK-UP(Z$) .ST. Z$::MORSE 2180 RESTORE 2290 2190 READ L$ 2200 IF L$[2]=Z$ THEN 2220 2210 IF L$ <> "#NOT-FOUND" THEN 2190 2220 RETURN 2230 REM: LET L$=LOOK-UP(Z$) .ST. Z$::ALPHAMERIC 2240 RESTORE 2290 2250 READ L$ 2260 IF L$[1,1]=Z$ THEN 2280 2270 IF L$ <> "#NOT-FOUND" THEN 2250 2280 RETURN 2290 DATA "A0-","B-000","C-0-0","D-00","E0" 2300 DATA "F00-0","G--0","H0000","I00","J0---" 2310 DATA "K-0-","L0-00","M--","N-0","0---" 2320 DATA "P0--0","Q--0-","R0-0","S000","T-" 2330 DATA "U00-","V000-","W0--","X-00-","Y-0--","Z--00" 2340 DATA "0-----","10----","200---","3000--","40000-" 2350 DATA "500000","6-0000","7--000","8---00","9----0" 2360 DATA "/-00-0",":-0-0-0","--0000-",",--00--","?00--00" 2370 DATA ".00--0-","'0----0",'92"-0--0-","(-0--0-",")-0--0-" 2380 DATA " ","#NOT-FOUND" 2390 DATA " SPECIAL CHARACTERS NOT SUPPORTED BY COMPUTER PROGRAM" 2400 DATA " "," 00000000 ERROR"," -000- DOUBLE-DASH"," 0-000 WAIT" 2410 DATA " -0- INVITATION TO TRANSMIT"," 000-0- END OF WORK" 2420 DATA " -0--0- PARENTHESIS (ONLY PARTIALLY SUPPORTED)" 2430 DATA "#END-REFERENCE-MATERIAL" 2440 DATA "DECIPHER CODED TEXT...DOT: '0' DASH: '-'" 2450 DATA "ENCIPHER TEXT","D/P DECIPHERING","D/P ENCIPHERING" 2460 DATA "D/P DECIPHERING GROUPS","D/P ENCIPHERING GROUPS" 2470 DATA "D/P PARAMETER ADJUSTMENTS" 2480 DATA "INT'L MORSE CODE REFERENCE INFORMATION" 9999 END