10 REM MORSE CODE RECEIVER PROGRAM 20 DIM V(153):Z=0:REM Z=-1 TO PRINT DOTS & DASHES 30 INPUT "SPEED";S 40 P=98:REM INPUT PORT 62H 50 B=32:REM PORT BIT 60 V=32:REM VALUE WHEN PRESSED 70 PRINT "INITIALIZING.."; 99 GOTO 10000 100 C=0 105 C=C+1:IF C>3*S THEN PRINT " ";:GOTO 100 110 IF (INP(P) AND B)<>V THEN 105 120 X=1 130 C=0 140 C=C+1:IF (INP(P) AND B)=V THEN 140 150 X=2*X+1+(C>S):IF Z THEN PRINT MID$("_./",2+(C>S),1); 160 C=0 170 C=C+1:IF C>3*S THEN 190 175 IF (INP(P) AND B)<>V THEN 170 180 IF C<2*S THEN 130 190 IF X>153 THEN 199 195 IF V(X)=0 THEN 199 196 PRINT CHR$(V(X));:GOTO 100 199 PRINT "(??)";:GOTO 100 1000 DATA .-,A,-...,B,-.-.,C,-..,D 1010 DATA .,E,..-.,F,--.,G,....,H 1020 DATA ..,I,.---,J,-.-,K,.-..,L 1030 DATA --,M,-.,N,---,O,.--.,P 1040 DATA --.-,Q,.-.,R,...,S,-,T 1050 DATA ..-,U,...-,V,.--,W 1060 DATA -..-,X,-.--,Y,--..,Z 1070 DATA .----,1,..---,2,...--,3,....-,4,.....,5 1080 DATA -....,6,--...,7,---..,8,----.,9,-----,0 1090 DATA .-.-.-,.,--..--.,",",..--..,"?" 1100 DATA -...-,*,.-.-.,/,END,E 10000 REM TABLE INIT 10020 READ X$,Y$:IF X$="END" THEN PRINT:GOTO 100 10030 X=1:FOR I=1 TO LEN(X$):X=X*2 10040 IF MID$(X$,I,1)="." THEN X=X+1 10050 NEXT 10060 V(X)=ASC(Y$):PRINT "."; 10070 GOTO 10020 10100 REM INITIALIZE TABLE