home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / HAMRADIO / MCODE.ZIP / CWTUTOR.BAS < prev    next >
Encoding:
BASIC Source File  |  1986-10-28  |  6.5 KB  |  191 lines

  1. 10 GOTO 20010:' to initialization of program
  2. 11 '
  3. 12 '
  4. 13 '
  5. 14 '  ***********************************************************************
  6. 15 '  * CW Tutor - 11 Feb 1986 - Ver 4.0         * I used B-SIMPLE 1.1 9-82 *
  7. 16 '  * Gene Brigman                             * by Glickstein 8-662-4202 *
  8. 17 '  ***********************************************************************
  9. 18 '
  10. 19 '
  11. 100 '
  12. 101 '   intro
  13. 110 GOSUB 900
  14. 115 PRINT"Generic CW - Tutor - By -.-/-.-./....-/.../.-"
  15. 120 PRINT:PRINT:PRINT:PRINT:PRINT
  16. 125 PRINT"The CW TUTOR is arranged "
  17. 130 PRINT"in such a way that there are"
  18. 135 PRINT"42 characters ranging from simple"
  19. 140 PRINT"to more difficult. For instance"
  20. 145 PRINT"the first group contains the"
  21. 150 PRINT"letters E,T,I,M,A,N. Each"
  22. 155 PRINT"additonal level includes these"
  23. 160 PRINT"but adds the next (slightly"
  24. 165 PRINT"more difficult) chars. Therefore"
  25. 170 PRINT"you can select levels 1 thru 42"
  26. 175 PRINT"and learn all the chars in"
  27. 180 PRINT"groupings that are more logical"
  28. 185 PRINT"and easier.......(Hopefully)"
  29. 190 PRINT
  30. 195 PRINT"Press a LETTER then 'RETURN' to continue...";:INPUT L$
  31. 199  RETURN : 'from intro
  32. 200 '
  33. 201 '   LEVEL SELECT
  34. 210 GOSUB 900
  35. 215 PRINT"Select your learning level."
  36. 220 PRINT"Remember that each level"
  37. 225 PRINT"up adds a  new"
  38. 230 PRINT"character in addition to"
  39. 235 PRINT"those you have previously"
  40. 240 PRINT"heard...."
  41. 245 PRINT:PRINT
  42. 250 PRINT"Make your selection now (5 - 42)...";
  43. 255 INPUT L$
  44. 260 L= VAL(L$)
  45. 265 IF L < 5 THEN L=5:GOTO 299
  46. 270 IF L > 42 THEN GOTO 280
  47. 275 GOTO 299
  48. 280 PRINT:PRINT:PRINT"Numbers 5 thru 42 only..."
  49. 285 PRINT CHR$(7):PRINT:PRINT:PRINT
  50. 290 PRINT"Press a LETTER then 'RETURN'....";
  51. 295 INPUT L$:GOTO 200
  52. 299  RETURN : 'from LEVEL SELECT
  53. 300 '
  54. 301 '   SPEED SET
  55. 310 GOSUB 900
  56. 315 PRINT"You must select the speed"
  57. 320 PRINT"at which you want to practice."
  58. 325 PRINT"The default speed in 25."
  59. 330 PRINT"Smaller numbers make the"
  60. 335 PRINT"code faster and larger"
  61. 340 PRINT"numbers make the code"
  62. 345 PRINT"slower...."
  63. 350 PRINT:PRINT:PRINT:PRINT
  64. 355 PRINT"Make your selection...";
  65. 360 INPUT U$
  66. 365 UNIT = VAL(U$)
  67. 370 IF UNIT > 2 THEN GOTO 390
  68. 375 PRINT:PRINT"That is much to fast..."
  69. 380 PRINT"Enter a LETTER then 'RETURN'.....
  70. 385 INPUT U$:GOTO 300
  71. 390 DOT=UNIT:DASH = DOT*3.5:CSPACE = DOT:WSPACE = DASH
  72. 399  RETURN : 'from SPEED SET
  73. 400 '
  74. 401 '   SET ARRAYS
  75. 410 DIM A$(42):DIM C$(42):RESTORE
  76. 415 FOR I= 1 TO 42:READ A$(I):NEXT I
  77. 420 DATA 1,3,11,13,31,33
  78. 425 DATA 111,131,333,313,113,331
  79. 430 DATA 311,133,3131,3313,1333,3311
  80. 435 DATA 1331,3113,3111,1113,3133,1131
  81. 440 DATA 1111,1311,13333,31111,11333,33111
  82. 445 DATA 11133,33311,11113,33331,11111,33333
  83. 450 DATA 131313,331133,113311,13111,13131,111313
  84. 455 FOR I=1 TO 42:READ C$(I):NEXT I
  85. 460 DATA E,T,I,A,N,M,S,R,O,K,U,G,D,W,C,Q,J,Z
  86. 465 DATA P,X,B,V,Y,F,H,L,1,6,2,7,3,8,4,9,5,0
  87. 470 DATA .,",",?,#,$,%
  88. 499  RETURN : 'from set array
  89. 500 '
  90. 501 '   NUMBER OF CHARACTERS
  91. 510 GOSUB 900
  92. 515 PRINT"Enter the number of characters"
  93. 520 PRINT"you want to hear. If you want"
  94. 525 PRINT"to quit before the session is"
  95. 530 PRINT"finished, then press CNTL C."
  96. 535 PRINT:PRINT:PRINT:PRINT
  97. 540 PRINT"How many characters to send...";
  98. 545 INPUT NCHAR$
  99. 550 NCHAR = VAL(NCHAR$)
  100. 555 IF NCHAR > 0 THEN GOTO 599
  101. 560 PRINT:PRINT:PRINT:PRINT
  102. 565 PRINT"I don't understand ";NCHAR$
  103. 570 PRINT:PRINT:PRINT
  104. 575 PRINT"Enter a LETTER then 'RETURN'....";
  105. 580 INPUT NCHAR$
  106. 585 GOTO 500
  107. 599  RETURN : 'from number of characters
  108. 600 '
  109. 601 '   GET RANDOM CHARACTER
  110. 610 GOSUB 900
  111. 615 PRINT"Enter a number between -32768"
  112. 620 PRINT"and 32767 to initialize the"
  113. 625 PRINT"random number generator...."
  114. 630 PRINT:PRINT:PRINT:PRINT
  115. 635 PRINT"Enter the number now....";
  116. 640 INPUT R$
  117. 645 R=VAL(R$)
  118. 650 RANDOMIZE R
  119. 655 GOSUB 900
  120. 660 PRINT"Enter a LETTER and press 'RETURN' to start.";
  121. 665 INPUT I$
  122. 670 GOSUB 900
  123. 699  RETURN : 'from GET RANDOM CHARACTER
  124. 700 '
  125. 701 '   SOUND ROUTINE
  126. 710 SOUND 880,1000
  127. 715 FOR SI = 1 TO SLEN:NEXT SI
  128. 720 SOUND 880,0
  129. 799  RETURN : 'from SOUND ROUTINE
  130. 800 '
  131. 801 '   SILENCE
  132. 810 SOUND 32767,1000
  133. 815 FOR QI = 1 TO QSPACE:NEXT QI
  134. 820 SOUND 32767,0
  135. 899  RETURN : 'from SILENCE
  136. 900 '
  137. 901 '   SCREEN CLEAR
  138. 910 FOR M = 1 TO 26
  139. 915 PRINT
  140. 920 NEXT M
  141. 999  RETURN : 'from SCREEN CLEAR
  142. 1000 '
  143. 20010 '     (start code here)
  144. 20099 '                              end Init #200
  145. 20999 '  end of INIT
  146. 21000 '
  147. 21001 'MAIN LINE PROGRAM                 Main #210
  148. 21010 '     (start code here)
  149. 21015 GOSUB 100
  150. 21020 GOSUB 200
  151. 21025 GOSUB 300
  152. 21030 GOSUB 400
  153. 21035 GOSUB 500
  154. 21040 GOSUB 600
  155. 21045 FOR I = 1 TO NCHAR
  156. 21050 RCHAR = INT((RND*L)+1)
  157. 21055 MCHAR$ = A$(RCHAR):PRINT C$(RCHAR);
  158. 21065 FOR B = 1 TO LEN(MCHAR$)
  159. 21075 V = VAL(MID$(MCHAR$,B,1))
  160. 21080 REM SEPARATE DOTS & DASHES
  161. 21085 IF V<2 THEN SLEN = DOT :GOSUB 700
  162. 21095 IF V>2 THEN SLEN = DASH :GOSUB 700
  163. 21100 REM
  164. 21105 QSPACE = CSPACE :GOSUB 800
  165. 21110 REM
  166. 21115 NEXT B
  167. 21120 REM
  168. 21125 QSPACE = WSPACE :GOSUB 800
  169. 21130 REM BLOCK AND LINE SPACE
  170. 21135 K=K+1:IF K=5 THEN K=0:PRINT"  ";
  171. 21140 J=J+1:IF J=25 THEN J=0:PRINT
  172. 21145 NEXT I
  173. 21999 END
  174. 22000 '
  175. 40000 ' ********************************************************************            *        MODULE # | NAME OF MODULE            * B-SIMPLE DIRECTORY *            ********************************************************************
  176. 40001 ' *              1  | INTRO                                          *
  177. 40002 ' *              2  | LEVEL SELECT                                   *
  178. 40003 ' *              3  | SPEED SET                                      *
  179. 40004 ' *              4  | SET ARRAYS                                     *
  180. 40005 ' *              5  | NUMBER OF CHARACTERS                           *
  181. 40006 ' *              6  | GET RANDOM CHARACTER                           *
  182. 40007 ' *              7  | SOUND ROUTINE                                  *
  183. 40008 ' *              8  | SILENCE                                        *
  184. 40009 ' *              9  | SCREEN CLEAR                                   *
  185. 40010 ' *                 |                                                *
  186. 40100 ' *                 |                                                *
  187. 40199 ' ********************************************************************
  188. 40200 ' *        200-209  | INITIALIZATION        <STARTS HERE             *
  189. 40210 ' *        210-219  | MAIN LINE PROGRAM     <STARTS HERE             *
  190. 40220 ' ********************************************************************
  191.