@8@d " NTERNATIONAL ORSE ODE REV EPT 25, 1988_@i " BY . AY ANNER - EWITT, e@n:@x:TM0:W1(238):W2(W179):W04: DEFAULT = 4 OPTIONS@z 15: ALPHA$(45): 2600@&: W179 %@ 5W2: 6W2,1: 4,1:SWW1:SFW2$AW0$(01)" NTER ESSAGE TO NCODE "PAW0$(02)" NTER SER ESTING ODE "|AW0$(03)" ROGRAM OCUMENTATION "AW0$(04)" ROGRAM "AW0$(05)" PTION # 5 "BW0$(06)" PTION # 6 ",BW0$(07)" PTION # 7 "XBW0$(08)" PTION # 8 "BW0$(09)" PTION # 9 "BW0$(10)" ROGRAM "B OPTION SELECT LOOPB 0,0,W1,24,1B 519W2,2,W1,24C ""DC" " NTERNATIONAL ORSE UTOR "kC, ""C6 " 1.B Y . AY ANNER"C@ ""CJ "";: I1 W0: "";W0$(I);"": I:W32DT ""8D^ ""cDh "ݟSE EYS TO ELECT"Dr " "D| "ݟRESS  TO XECUTE"D ""D ""E "";E W1$: W1$" " W1$"" W1$"" 430: 520]E 1,15000,1: W1$"" 550E 1,15000,1: W1$"" W1$" " 480E 420E::E MOVE SELECTION BAR DOWN ONE LINE USING CURSOR KEY OR SPACE BARF W3W0 W31: "";W0$(W0):"": 4808F "";W0$(W31): "";W0$(W3)JFW3W31: 420QF::qF W1$(13) 610: 420xF::F MOVE SELECTION BAR UP ONE LINE USING CURSOR KEYSF& W30 W31: 420F0 W3W0 W3W01F: W32 1 420GD "";W0$(W31): "";W0$(W32);GNW3W31: W311 W3W0EGX 420GbW3W31: W3 1040,3000,6000,1290,640,640,640,640,640,1290Gl 420Gv::G 1,15000,30G "PTION #";W3;"NOT DEFINED YET...": 2: 120G:G:G:;H " NTERNATIONAL ORSE ODE 3.B FOR 40/80 COLUMNS^H " BY . AY ANNER~H " EWITT, H " FOR THE -128 COMPUTERH :H 15: 1: INIT HIRES SCREEN FOR 4096 BYTE CHAR SET RAMI$&:SW(238):SF(SW79): SF1 %: ADJUST CPU SPEEDNI. 2130: 1990 : COPY & MODIFY CHARACTER SETI8 1610 : SET DATA POINTER TO MORSE ENCODING DATA TABLEIB 2604,((2604) 240)8 : TELL OS CHAR SET IS AT RAM ADDR 8192JG TM1 1210: ENTER SPECIAL USER TESTING MODE*JL ------------------------------eJV INITIALIZE MAIN PROGRAM AFTER CHARACTER SET MODIFIEDJj (142):&: SF1 %Jt 5SF : AUTOMATICALLY SET UP FOR 40/80 COLUMNSJ~ 1920: 1730J" TYPE ANY MESSAGE USING THE CHARACTERS"'K" BELOW AND PRESS  RETURN TO LISTEN TO"RK" IT IN INTERNATIONAL MORSE CODE"wK ------------------------------K SET UP DOT/DASH DATA ARRAY FOR ALLOWED CHARACTERSK I1 45 : ALPHA$(I):: TM1 3010L ------------------------------)L MAIN PROGRAM INPUT LOOP STARTHLIN$"160,ASC": 2310: ""dL IN$"" "": 1240L IN$"*" : 1330:: 1240L ------------------------------L PROGRAM EXIT POINT ( IF SINGLE * IS ENTERED )#M  0,0, SW,24, 1 : 1117(SW79));" PROGRAM ENDED"eM 2604,24: 52748: : RESTORE ROM CHAR SET AND EXIT PROGRAMM ------------------------------M( CONVERT KEYBOARD INPUT TO MORSE CODE DOT/DASH STRINGM2 I1 (IN$)N<A((IN$,I,1)): A65 AA64 : 1360BNF A48 A57 AA21: 1470 : ADJUST CODE VALUESSNPA$ALPHA$(A)eNZ J1 (A$)wNdCH$(A$,J,1)Nn (IN$,I,1)" " 1,00000,8: 1430 : MAKE SPACE PAUSENx CH$"@" 1680: 1420 : MAKE DOT TONE&O CH$"-" 1690: 1670: 1430 : MAKE DASH TONEZO 1,00000,07 : SILENCE PAUSE BETWEEN DOT TONESzO J: 1670:" ";: I: ""OO ------------------------------O ADJUST SOME CHAR CODES & CHECK FOR ERRORSO A32 O A44 A37 :P A46 A38 :)P A63 A39 :>P A59 A40 :SP A58 A41 :hP A39 A42 :}P A45 A43 :P A47 A44 :P A40 A45 :P" A41 A45 :P," ERROR ": 3,50000,15,1,20,20000: 1240Q6 ------------------------------IQ@ DATA TABLE FOR ASCII TO MORSE CODE CONVERSIONQJ @-,-@@@,-@-@,-@@,@,@@-@,--@,@@@@,@@,@---,-@-,@-@@,--,-@,---,@--@QT --@-,@-@,@@@,-,@@-,@@@-,@--,-@@-,-@--,--@@R^ -----,@----,@@---,@@@--,@@@@-,@@@@@,-@@@@,--@@@,---@@,----@GRh --@@--,@-@-@-,@@--@@,-@-@-@,---@@@,@----@,-@@@@-,-@@-@,-@--@-lRr ------------------------------R| SILENCE, DOT, DASH & ERROR SOUND GENERATORSR 1,00000,08 : ""; : : PAUSE BETWEEN LETTERSS 1,30000,01 : "@";: : DOT TONE+S 1,30000,10 : "-";: : DASH TONEYS" ERROR ": 3,50000,15,1,20,20000:~S ------------------------------S TITLE SCREEN DISPLAYS 20SF,0, SW,24: 6SF, 1: 4, 1S 3,50000,15,1,20,20000T""ET" BY "yT" INTERNATIONAL MORSE TUTOR S. JAY "T" TANNER "T""U""%U 20SF,18, SW,24WU" "U" DEFINED   A B C D E F G H I J K L M "U&" CHARACTER  N O P Q R S T U V W X Y Z "U0" SET  0 1 2 3 4 5 6 7 8 9 "/V:" TABLE  ' - , . ? ; : ( ) "aVD" "VN"  ENTER A SINGLE * TO EXIT TO MENU ";VX 20SF,6, SW20SF,17,1VbVl ------------------------------Wv EXTENSION FOR 80-COLUMN DISPLAYW SW39 *W 0,0, SW,24, 19W I1 25W " "W IWW ------------------------------W 15:CRAM8192: 1,1: (142) X I12288 12288 112 : X$X I, (X$): I?X 1: 12288: COPY ROM TO RAMdX ------------------------------X CREATE SPECIAL CHARACTERS ( RAISED DOT, SHORTENED DASH CHARACTER )X ICRAM CRAM 7 : I,0: : CLEAR OUT 'AT SYMBOL'/Y  CRAM 3, 24 : AND CREATE RAISED DOTtY CRAM 363, 124 : SHORTEN THE 'MINUS SIGN CHAR' BY ONE PIXELzY :Y* 12291: COPY MODIFIED CHAR SET FROM RAM AT $2000 INTO VDC RAMY4Y> ------------------------------YH ML JUMP TABLEZR 4C, 46, 30, 4C, 06, 30\ZW ML TO COPY CHAR RAM INTO VDC CALL: SYS 12291Z\ A9, 00, A0, 20, 85, DA, 84, DBZf A2, 12, A9, 20, 20, CC, CD, E8Zp A9, 00, 20, CC, CD, A0, 00, A2Zz 0F, A9, DA, 20, 74, FF, 20, CA[ CD, C8, C0, 08, 90, F1, A9, 00:[ 20, CA, CD, 88, D0, FA, 18, A5_[ DA, 69, 08, 85, DA, 90, E0, E6[ DB, A5, DB, C9, 30, 90, D8, 60[ ------------------------------[ ML TO COPY CHAR ROM INTO RAM CALL: SYS 12288 \ A2, 10, 86, FA, A2, 00, A0, 202\ 86, FB, 84, FC, A2, 00, A0, D0W\ 86, FD, 84, FE, A0, 00, A2, 0E|\ A9, FD, 20, 74, FF, 91, FB, C8\ D0, F4, E6, FC, E6, FE, C6, FA\ D0, EA, 60\ ------------------------------] IN(IN$):IP(IN$, ",")1:W0$(IN$,IP,3)!] IN$"":W1$"0":W2$"9"R]  15: (238)39 2599,0: 52684,96,10\]$ K$]. K$"" K$;:IN$"160,ASC": 2310]8 K$(13) 2550]B K$(20) (IN$)0 2340]L K$(20) K$;:IN$(IN$, (IN$)1): 2340^V (IN$) IN 25209^` W0$"ASC" W1$" ":W2$"_": 2500b^j W0$"INT" W1$"0":W2$"9": 2500p^t W0$"NUM"^~ (IN$, ".")0 W10^ K$"." (IN$, ".") 0 W11: 2540^ K$"." (IN$, ".") 0 2520_ K$"-" (IN$) 0 2540&_ K$"-" (IN$) 0 2520I_ K$"+" (IN$) 0 2540l_ K$"+" (IN$) 0 2520_ K$ W1$ K$ W2$ 2540_ W0$"ASC" K$ "" K$ "" 2540_ 1,8500,10: 2340_ :_ IN$IN$ K$: K$;: 2340+` (238)79 52684,32,10:IN(IN$):b` 2599,1:W01024(236)40(235): W0,(W0) 127r` IN(IN$):` ------------------------------` SPRING ERROR TRAP`( ER30 `2 3,50000,15,1,20,20000`< " ERROR ":A$" ": 1440aF :a MORSE CODE TEST MODE.a TM1: 1040oa 1920: 1730: 5SF: " SPECIAL USER TESTING MODE"a " "a " IN THIS MODE THE COMPUTER WILL BEEP A"a " SINGLE CHARACTER IN MORSE CODE AND LET"*b " YOU TRY TO GUESS WHAT CHARACTER THE"Zb " CODE REFERS TO. YOU WILL GET A TOTAL"b " OF FIVE GUESSES AND THEN THE COMPUTER"b " WILL TELL YOU THE ANSWER. "b " PRESS ANY KEY WHEN READY "c " "*c& N0: K$bc0 MC$"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'-,.?;:()"c: RC$(MC$,1((0)(MC$)),1): SELECT RANDOM CHARACTERcD cN "WHAT CHARACTER IS THIS ?"cX IN$RC$: 1330: BEEP & DISPLAY THE CODEdb K$:NN1: K$"*" *dl K0: JJ1 (MC$)Edv (MC$,JJ,1)K$ K1ed : K1 " ";K$;" ";d K0 " ERROR : CHARACTER NOT RECOGNIZED": 1,15000,15: 3250d K$RC$ " CORRECT!": "O5 CEA":N0: 3300d N5 3280e 1,15000,30: " WRONG!"Ke ""le 3,50000,15,1,20,20000: 1e N 5 "REPEAT : ";: 3150e " SORRY .... YOU'VE RUN OUT OF GUESSES"e 3,50000,15,1,20,20000: 1f " THAT CHARACTER WAS  ";RC$;" ";: 1330Lf ""|f " PRESS SPACE BAR TO CONTINUE "f " "f " OR PRESS * TO EXIT TO MENU "f K$f K$" " N0: 3130g* K$"*" g4 3350!g> NgH IN$RC$: 1330: BEEP & DISPLAY THE CODETgR go DOCUMENTATION ABOUT USING THIS PROGRAMgp 0,0,(238),24,1gz 20((238)79),0,(238),24g "h " NTERNATIONAL ORSE ODE UTOR Rh "ݖ h " HIS ORSE CODE TUTOR WILL ALLOW A h " USER TO ENTER A MESSAGE ON THE KEY- h " BOARD AND HEAR IT BEEPED BACK IN IN- i " NATIONAL ORSE CODE. Qi " i " HE PROGRAM ALSO HAS A USER TESTING i " MODE. N THIS MODE THE COMPUTER WILL i " BEEP THE CODE FOR A SINGLE CHARACTER j " AND ALLOW THE USER UP TO 5 GUESSES Pj " TO DETERMINE THE CORRESPONDING CHAR- j " ACTER TO WHICH IT REFERS. HEN ALL 5 j " GUESSES HAVE BEEN USED THE COMPUTER j " WILL THEN DISPLAY THE CORRECT CHAR- k$ " ACTER AND IT'S CODE. Ok. " k8 " HE PROGRAM SUPPORTS BOTH 40 AND 80 kB " COLUMN DISPLAY MODES AND IS WRITTEN kL " IN 7.0 WITH MANY S TO HELP lV " UNDERSTAND IT'S INNER WORKINGS. T Nl` " CAN BE EASILY MODIFIED IF REQUIRED. lt "l~ K$:l:l:l F$="MORSE CODE TUTOR":SCRATCH(F$):DSAVE(F$):DVERIFY(F$)