' {$STAMP BS2} ' SM6BGP 2007-11-13, 2007-11-27, 2008-05-21 swtc DATA 0 spec DATA 0,87,141,54,149 leta DATA 66,132,164,131,1,36,195,4,2,116,163,68,194 letn DATA 130,227,100,212,67,3,129,35,20,99,148,180,196 nums DATA 253,125,61,29,13,5,133,197,229,245 msg1 DATA " VVV QRPP BEACON DE SK6RUD , QTH JO67KI , PSE RPRT TO WWW.RADIORUD.SE ," msc1 CON 71 tabl CON 41 tone CON 1200 spc CON 380 dit CON 70 dah CON 210 chr VAR B0 ele VAR B1 x1 VAR B2 x2 VAR B3 x3 VAR B4 x4 VAR B5 READ 0,chr IF chr <> 0 THEN loop '---- jump to loop if not first time (ipl) to save the eeprom WRITE 0,255 ' ' cvt_msgs: ' x2 = tabl + 1 ' x2 = 42 x3 = tabl + msc1 ' x3 = 112 ' FOR x1 = x2 TO x3 ' from 42 to 112 READ x1,chr ' read 42,86(V) first sign in cw-string is V = ascii 86 LOOKDOWN chr,[32,46,44,63,47],chr ' look in matris [SP . , ? /] 0 - 4 IF chr > 4 THEN nspec ' if no hit, 86 was not in matris... chr = chr + 1 ' chr = 5 GOTO find ' ' nspec: ' IF chr > 90 THEN sml ' small sign a-z chr -91 IF chr > 57 THEN cap ' big sign A-Z chr -57 chr = chr - 16 ' others chr -16 GOTO find ' ' sml: ' chr = chr - 91 ' GOTO find ' ' cap: ' chr = chr - 59 ' ' find: ' READ chr,chr ' WRITE x1,chr ' NEXT ' ' ' ' ' ' loop: '<------------------------' msg1_o: x3 = tabl + 1 x4 = msc1 + tabl HIGH 0 : HIGH 1 : HIGH 2 : PAUSE 2000 'long daah in 2 seconds - port 0 & 1 LOW 0 : LOW 1 : LOW 2 : PAUSE 500 'pause 0,5 seconds - port 0 & 1 HIGH 0 : HIGH 1 : HIGH 2 : PAUSE 2000 'long daah in 2 seconds - port 0 & 1 LOW 0 : LOW 1 : LOW 2 : PAUSE 500 'pause 0,5 seconds - port 0 & 1 HIGH 0 : HIGH 1 : HIGH 2 : PAUSE 2000 'long daah in 2 seconds - port 0 & 1 LOW 0 : LOW 1 : LOW 2 : PAUSE 500 'pause 0,5 seconds - port 0 & 1 FOR x1 = x3 TO x4 'main GOSUB code 'main NEXT 'main GOTO loop 'main code: READ x1,chr IF chr <> 0 THEN sendit PAUSE spc 'pause between signs RETURN sendit: GOSUB Morse RETURN morse: ele = chr & %00000111 IF ele = 7 THEN Adj1 IF ele = 6 THEN Adj2 key: FOR x2 = 1 TO ele IF chr >= 128 THEN dah_o GOTO dit_o shift: chr = chr * 2 NEXT PAUSE dah RETURN Adj1: ele = 6 GOTO key Adj2: chr = chr & %11111011 GOTO key dit_o: HIGH 0 : HIGH 1 : HIGH 2 FREQOUT 1,dit,tone LOW 0 : LOW 1 : LOW 2 PAUSE dit GOTO shift dah_o: HIGH 0 : HIGH 1 : HIGH 2 FREQOUT 1,dah,tone LOW 0 : LOW 1 : LOW 2 PAUSE dit GOTO shift