home *** CD-ROM | disk | FTP | other *** search
- 10 GOTO 20010:' to initialization of program
- 11 '
- 12 '
- 13 '
- 14 ' ***********************************************************************
- 15 ' * CW Tutor - 11 Feb 1986 - Ver 4.0 * I used B-SIMPLE 1.1 9-82 *
- 16 ' * Gene Brigman * by Glickstein 8-662-4202 *
- 17 ' ***********************************************************************
- 18 '
- 19 '
- 100 '
- 101 ' intro
- 110 GOSUB 900
- 115 PRINT"Generic CW - Tutor - By -.-/-.-./....-/.../.-"
- 120 PRINT:PRINT:PRINT:PRINT:PRINT
- 125 PRINT"The CW TUTOR is arranged "
- 130 PRINT"in such a way that there are"
- 135 PRINT"42 characters ranging from simple"
- 140 PRINT"to more difficult. For instance"
- 145 PRINT"the first group contains the"
- 150 PRINT"letters E,T,I,M,A,N. Each"
- 155 PRINT"additonal level includes these"
- 160 PRINT"but adds the next (slightly"
- 165 PRINT"more difficult) chars. Therefore"
- 170 PRINT"you can select levels 1 thru 42"
- 175 PRINT"and learn all the chars in"
- 180 PRINT"groupings that are more logical"
- 185 PRINT"and easier.......(Hopefully)"
- 190 PRINT
- 195 PRINT"Press a LETTER then 'RETURN' to continue...";:INPUT L$
- 199 RETURN : 'from intro
- 200 '
- 201 ' LEVEL SELECT
- 210 GOSUB 900
- 215 PRINT"Select your learning level."
- 220 PRINT"Remember that each level"
- 225 PRINT"up adds a new"
- 230 PRINT"character in addition to"
- 235 PRINT"those you have previously"
- 240 PRINT"heard...."
- 245 PRINT:PRINT
- 250 PRINT"Make your selection now (5 - 42)...";
- 255 INPUT L$
- 260 L= VAL(L$)
- 265 IF L < 5 THEN L=5:GOTO 299
- 270 IF L > 42 THEN GOTO 280
- 275 GOTO 299
- 280 PRINT:PRINT:PRINT"Numbers 5 thru 42 only..."
- 285 PRINT CHR$(7):PRINT:PRINT:PRINT
- 290 PRINT"Press a LETTER then 'RETURN'....";
- 295 INPUT L$:GOTO 200
- 299 RETURN : 'from LEVEL SELECT
- 300 '
- 301 ' SPEED SET
- 310 GOSUB 900
- 315 PRINT"You must select the speed"
- 320 PRINT"at which you want to practice."
- 325 PRINT"The default speed in 25."
- 330 PRINT"Smaller numbers make the"
- 335 PRINT"code faster and larger"
- 340 PRINT"numbers make the code"
- 345 PRINT"slower...."
- 350 PRINT:PRINT:PRINT:PRINT
- 355 PRINT"Make your selection...";
- 360 INPUT U$
- 365 UNIT = VAL(U$)
- 370 IF UNIT > 2 THEN GOTO 390
- 375 PRINT:PRINT"That is much to fast..."
- 380 PRINT"Enter a LETTER then 'RETURN'.....
- 385 INPUT U$:GOTO 300
- 390 DOT=UNIT:DASH = DOT*3.5:CSPACE = DOT:WSPACE = DASH
- 399 RETURN : 'from SPEED SET
- 400 '
- 401 ' SET ARRAYS
- 410 DIM A$(42):DIM C$(42):RESTORE
- 415 FOR I= 1 TO 42:READ A$(I):NEXT I
- 420 DATA 1,3,11,13,31,33
- 425 DATA 111,131,333,313,113,331
- 430 DATA 311,133,3131,3313,1333,3311
- 435 DATA 1331,3113,3111,1113,3133,1131
- 440 DATA 1111,1311,13333,31111,11333,33111
- 445 DATA 11133,33311,11113,33331,11111,33333
- 450 DATA 131313,331133,113311,13111,13131,111313
- 455 FOR I=1 TO 42:READ C$(I):NEXT I
- 460 DATA E,T,I,A,N,M,S,R,O,K,U,G,D,W,C,Q,J,Z
- 465 DATA P,X,B,V,Y,F,H,L,1,6,2,7,3,8,4,9,5,0
- 470 DATA .,",",?,#,$,%
- 499 RETURN : 'from set array
- 500 '
- 501 ' NUMBER OF CHARACTERS
- 510 GOSUB 900
- 515 PRINT"Enter the number of characters"
- 520 PRINT"you want to hear. If you want"
- 525 PRINT"to quit before the session is"
- 530 PRINT"finished, then press CNTL C."
- 535 PRINT:PRINT:PRINT:PRINT
- 540 PRINT"How many characters to send...";
- 545 INPUT NCHAR$
- 550 NCHAR = VAL(NCHAR$)
- 555 IF NCHAR > 0 THEN GOTO 599
- 560 PRINT:PRINT:PRINT:PRINT
- 565 PRINT"I don't understand ";NCHAR$
- 570 PRINT:PRINT:PRINT
- 575 PRINT"Enter a LETTER then 'RETURN'....";
- 580 INPUT NCHAR$
- 585 GOTO 500
- 599 RETURN : 'from number of characters
- 600 '
- 601 ' GET RANDOM CHARACTER
- 610 GOSUB 900
- 615 PRINT"Enter a number between -32768"
- 620 PRINT"and 32767 to initialize the"
- 625 PRINT"random number generator...."
- 630 PRINT:PRINT:PRINT:PRINT
- 635 PRINT"Enter the number now....";
- 640 INPUT R$
- 645 R=VAL(R$)
- 650 RANDOMIZE R
- 655 GOSUB 900
- 660 PRINT"Enter a LETTER and press 'RETURN' to start.";
- 665 INPUT I$
- 670 GOSUB 900
- 699 RETURN : 'from GET RANDOM CHARACTER
- 700 '
- 701 ' SOUND ROUTINE
- 710 SOUND 880,1000
- 715 FOR SI = 1 TO SLEN:NEXT SI
- 720 SOUND 880,0
- 799 RETURN : 'from SOUND ROUTINE
- 800 '
- 801 ' SILENCE
- 810 SOUND 32767,1000
- 815 FOR QI = 1 TO QSPACE:NEXT QI
- 820 SOUND 32767,0
- 899 RETURN : 'from SILENCE
- 900 '
- 901 ' SCREEN CLEAR
- 910 FOR M = 1 TO 26
- 915 PRINT
- 920 NEXT M
- 999 RETURN : 'from SCREEN CLEAR
- 1000 '
- 20010 ' (start code here)
- 20099 ' end Init #200
- 20999 ' end of INIT
- 21000 '
- 21001 'MAIN LINE PROGRAM Main #210
- 21010 ' (start code here)
- 21015 GOSUB 100
- 21020 GOSUB 200
- 21025 GOSUB 300
- 21030 GOSUB 400
- 21035 GOSUB 500
- 21040 GOSUB 600
- 21045 FOR I = 1 TO NCHAR
- 21050 RCHAR = INT((RND*L)+1)
- 21055 MCHAR$ = A$(RCHAR):PRINT C$(RCHAR);
- 21065 FOR B = 1 TO LEN(MCHAR$)
- 21075 V = VAL(MID$(MCHAR$,B,1))
- 21080 REM SEPARATE DOTS & DASHES
- 21085 IF V<2 THEN SLEN = DOT :GOSUB 700
- 21095 IF V>2 THEN SLEN = DASH :GOSUB 700
- 21100 REM
- 21105 QSPACE = CSPACE :GOSUB 800
- 21110 REM
- 21115 NEXT B
- 21120 REM
- 21125 QSPACE = WSPACE :GOSUB 800
- 21130 REM BLOCK AND LINE SPACE
- 21135 K=K+1:IF K=5 THEN K=0:PRINT" ";
- 21140 J=J+1:IF J=25 THEN J=0:PRINT
- 21145 NEXT I
- 21999 END
- 22000 '
- 40000 ' ******************************************************************** * MODULE # | NAME OF MODULE * B-SIMPLE DIRECTORY * ********************************************************************
- 40001 ' * 1 | INTRO *
- 40002 ' * 2 | LEVEL SELECT *
- 40003 ' * 3 | SPEED SET *
- 40004 ' * 4 | SET ARRAYS *
- 40005 ' * 5 | NUMBER OF CHARACTERS *
- 40006 ' * 6 | GET RANDOM CHARACTER *
- 40007 ' * 7 | SOUND ROUTINE *
- 40008 ' * 8 | SILENCE *
- 40009 ' * 9 | SCREEN CLEAR *
- 40010 ' * | *
- 40100 ' * | *
- 40199 ' ********************************************************************
- 40200 ' * 200-209 | INITIALIZATION <STARTS HERE *
- 40210 ' * 210-219 | MAIN LINE PROGRAM <STARTS HERE *
- 40220 ' ********************************************************************
-