|
25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more... |
Home Projects Up Sitemap Search Blog Forum+Chat About Us Privacy Terms of Use Feedback FAQ Images Services Ads Donate Humor |
I think this was written while trying to solve a puzzle in a early 1980's puzzle book
called something like "The Puzzle Mountain".
1 REM ENCODE.BAS - ENCODES A GIVEN STRING INTO SEVERAL DIFFERENT MORSE-RELATED CODES. 5 'COPYRIGHT (C)1984 STEVEN WHITNEY. 6 'Published under GNU GPL (General Public License) Version 2, with ABSOLUTELY NO WARRANTY. 10 PRINT "THIS PROGRAM CODES A WORD OR PHRASE INTO MORSE CODE" 15 PRINT "TURN ON CAPS LOCK. INPUT MUST BE UPPER CASE." 20 INPUT "WHAT IS THE WORD OR PHRASE";A1$ 30 DEFSTR A,B,T 35 'COULD CONVERT TO UPPER CASE HERE, BUT I DON'T REMEMBER WHAT FUNCTIONS WERE AVAILABLE IN MBASIC. 40 FOR I=1 TO LEN(A1$) 50 A=MID$(A1$,I,1) 60 PRINT A 70 GOSUB 1280 80 T=T+B 90 IF I<>LEN(A1$) THEN T=T+"S" 100 NEXT I 104 PRINT 105 PRINT, "IN PLAIN MORSE" 106 PRINT 110 PRINT T 119 PRINT 120 PRINT, "IN BINARY MORSE -- DOT=1, DASH = 0 " 125 PRINT 130 FOR I=1 TO LEN(T) 140 IF MID$(T,I,1)="." THEN T1=T1+"1" 150 IF MID$(T,I,1)="-" THEN T1=T1+"0" 160 IF MID$(T,I,1)="S" THEN T1=T1+" " 170 NEXT I 180 PRINT T1 185 PRINT 190 PRINT, "IN DECIMAL CODED BINARY MORSE" 200 PRINT 205 DEFSTR N : DIM N(100),M(100) 206 J=0 210 FOR I=1 TO LEN(T1) 220 IF MID$(T1,I,1)=" " THEN J=J+1 ELSE N(J)=N(J)+MID$(T1,I,1) 230 NEXT I 240 FOR K=0 TO J 250 FOR L=1 TO LEN(N(K)) 260 M(K)=M(K)+VAL(MID$(N(K),L,1))*(2^(LEN(N(K))-L)) 270 NEXT L 280 NEXT K 290 FOR K=0 TO J 300 PRINT M(K); 310 NEXT K 320 END 1000 IF A=".-" THEN B="A":RETURN 1010 IF A="-..." THEN B="B":RETURN 1020 IF A="-.-." THEN B="C":RETURN 1030 IF A="-.." THEN B="D":RETURN 1040 IF A="." THEN B="E":RETURN 1050 IF A="..-." THEN B="F":RETURN 1060 IF A="--." THEN B="G":RETURN 1070 IF A="...." THEN B="H":RETURN 1080 IF A=".." THEN B="I":RETURN 1090 IF A=".---" THEN B="J":RETURN 1100 IF A="-.-" THEN B="K":RETURN 1110 IF A=".-.." THEN B="L":RETURN 1120 IF A="--" THEN B="M":RETURN 1130 IF A="-." THEN B="N":RETURN 1140 IF A="---" THEN B="O":RETURN 1150 IF A=".--." THEN B="P":RETURN 1160 IF A="--.-" THEN B="Q":RETURN 1170 IF A=".-." THEN B="R":RETURN 1180 IF A="..." THEN B="S":RETURN 1190 IF A="-" THEN B="T":RETURN 1200 IF A="..-"THEN B="U":RETURN 1210 IF A="...-"THEN B="V":RETURN 1220 IF A=".--" THEN B="W":RETURN 1230 IF A="-..-"THEN B="X":RETURN 1240 IF A="-.--" THEN B="Y":RETURN 1250 IF A="--.." THEN B="Z":RETURN 1260 B=" ":RETURN 1270 REM ABOVE LINE IS FOR WHEN UNDEFINED STRING SENT TO SUBROUTINE. 1280 IF A="A" THEN B=".-":RETURN 1290 IF A="B" THEN B="-...":RETURN 1300 IF A="C" THEN B="-.-.":RETURN 1310 IF A="D" THEN B="-..":RETURN 1320 IF A="E" THEN B=".":RETURN 1330 IF A="F" THEN B="..-.":RETURN 1340 IF A="G" THEN B="--.":RETURN 1350 IF A="H" THEN B="....":RETURN 1360 IF A="I" THEN B="..":RETURN 1370 IF A="J" THEN B=".---":RETURN 1380 IF A="K" THEN B="-.-":RETURN 1390 IF A="L" THEN B=".-..":RETURN 1400 IF A="M" THEN B="--":RETURN 1410 IF A="N" THEN B="-.":RETURN 1420 IF A="O" THEN B="---":RETURN 1430 IF A="P" THEN B=".--.":RETURN 1440 IF A="Q" THEN B="--.-":RETURN 1450 IF A="R" THEN B=".-.":RETURN 1460 IF A="S" THEN B="...":RETURN 1470 IF A="T" THEN B="-":RETURN 1480 IF A="U" THEN B="..-":RETURN 1490 IF A="V" THEN B="...-":RETURN 1500 IF A="W" THEN B=".--":RETURN 1510 IF A="X" THEN B="-..-":RETURN 1520 IF A="Y" THEN B="-.--":RETURN 1530 IF A="Z" THEN B="--..":RETURN 1540 B="":RETURN
|
|
|
|
|
|