100 'Morse code generator program 105 'for the TRS-80 Model 100. 110 'This program will read in data 115 'from a document file 'CODE.DO' 120 'and sound out the Morse code 125 'for the UPPER-CASE characters, 130 'numbers and some punctuation. 135 'T= value for tone (pitch) of 140 'the code. If more characters 145 'are added, change W. 150 ' -BOB B. [70030,137] 155 ' 160 DEFINT A-Z 165 CLS:PRINT @10,"MORSE CODE GENERATOR" 170 W=42:T=1174 175 INPUT"WPM(0-12)";S:S=14-S 180 IF S<2 OR S>14 THEN 165 185 ON ERROR GOTO 485 190 CLS:OPEN "CODE.DO" FOR INPUT AS 1 195 IF EOF(1) THEN 525 200 LINE INPUT #1,S$ 205 PRINT:A$="":S$=S$+" " 210 L1=LEN(S$):IF L1=0 THEN 195 215 PRINT A$; 220 A$=LEFT$(S$,1):L1=L1-1:IF L1=0 THEN 235 225 IF L1<0 THEN 195 230 S$=RIGHT$(S$,L1) 235 RESTORE 350 240 ' 245 FOR J=1 TO W 250 READ C$,R1,R2,R3,R4,R5,R6 255 IF A$=C$ THEN 275 260 NEXT J 265 GOTO 215 270 ' 275 FOR K=1 TO INT(S*1.5)*(X+1-J):NEXT K 280 ' 285 R=R1:GOSUB 350 290 IF R2<1 THEN 215 295 R=R2:GOSUB 350 300 IF R3<1 THEN 215 305 R=R3:GOSUB 350 310 IF R4<1 THEN 215 315 R=R4:GOSUB 350 320 IF R5<1 THEN 215 325 R=R5:GOSUB 350 330 IF R6<1 THEN 215 335 R=R6:GOSUB 350 340 GOTO 215 345 ' 350 IF S>4 THEN X=S ELSE X=4 355 FOR I=1 TO X*S:NEXT I 360 SOUND T,2*R*S 365 RETURN 370 ' 375 DATA"A",1,3,0,0,0,0,"B",3,1,1,1,0,0 380 DATA"C",3,1,3,1,0,0,"D",3,1,1,0,0,0 385 DATA"E",1,0,0,0,0,0,"F",1,1,3,1,0,0 390 DATA"G",3,3,1,0,0,0,"H",1,1,1,1,0,0 395 DATA"I",1,1,0,0,0,0,"J",1,3,3,3,0,0 400 DATA"K",3,1,3,0,0,0,"L",1,3,1,1,0,0 405 DATA"M",3,3,0,0,0,0,"N",3,1,0,0,0,0 410 DATA"O",3,3,3,0,0,0,"P",1,3,3,1,0,0 415 DATA"Q",3,3,1,3,0,0,"R",1,3,1,0,0,0 420 DATA"S",1,1,1,0,0,0,"T",3,0,0,0,0,0 425 DATA"U",1,1,3,0,0,0,"V",1,1,1,3,0,0 430 DATA"W",1,3,3,0,0,0,"X",3,1,1,3,0,0 435 DATA"Y",3,1,3,3,0,0,"Z",3,3,1,1,0,0 440 DATA"1",1,3,3,3,3,0,"2",1,1,3,3,3,0 445 DATA"3",1,1,1,3,3,0,"4",1,1,1,1,3,0 450 DATA"5",1,1,1,1,1,0,"6",3,1,1,1,1,0 455 DATA"7",3,3,1,1,1,0,"8",3,3,3,1,1,0 460 DATA"9",3,3,3,3,1,0,"0",3,3,3,3,3,0 465 DATA".",1,3,1,3,1,3,"?",1,1,3,3,1,1 470 DATA",",3,3,1,1,3,3,":",3,3,3,1,1,1 475 DATA"/",3,1,1,3,1,0,"-",3,1,1,1,1,3 480 ' 485 IF ERR=52 THEN PRINT"File CODE.DO does not exist." ELSE 515 490 PRINT"Hit 'M' to exit to MENU and create" 495 PRINT"CODE.DO with the TEXT program."; 500 BEEP 505 X$=INKEY$:IF X$="M" THEN MENU ELSE 505 510 ' 515 PRINT"Error";ERR;" in line";ERL:STOP 520 ' 525 PRINT:PRINT:PRINT @251,"***END OF FILE***" 530 R=1:GOSUB 350 535 R=3:GOSUB 350 540 R=1:GOSUB 350 545 R=3:GOSUB 350 550 R=1:GOSUB 350 555 CLOSE 1 560 PRINT "Hit 'M' to return to MENU:";:GOTO 505