目次
前
次
ソースコード
モールス符号によるメッセージを送信するIchigoJamの
Basicソースコードは、以下。
1 'CW sender
10 GOSUB 200:GOSUB 300
20 FOR I=1 TO 32
30 LET X,[I]
40 IF X<>0 AND I<33 GOSUB 400
50 IF BTN() END
60 NEXT
70 GOTO 20
200 FOR J=1 TO 32:LET [J],0:NEXT
210 LET [1],67,81,32,67,81,32,55,72,90
220 LET [10],90,68,69,32,74,65,56,74,80,79
230 RETURN
300 LET [#41],#0D,#57,#77,#17,#01,#75
310 LET [#47],#1F,#55,#05,#FD,#37,#5D
320 LET [#4D],#0F,#07,#3F
330 LET [#50],#7D,#DF,#1D,#15,#03,#35
340 LET [#56],#D5,#3D,#D7,#F7,#5F
350 LET [#30],#3FF,#3FD,#3F5,#3D5,#355
360 LET [#35],#155,#157,#15F,#17F,#1FF
370 RETURN
400 IF X=32 RETURN
410 GOSUB 610
420 LET P,[X]:LET K,4:IF X>=#30 AND X<=#39 LET K,5
430 FOR J=1 TO K
440 LET A,P&3:GOSUB 500:LET P,P>>2
450 NEXT
460 WAIT 100
470 RETURN
500 IF A=0 RETURN
510 IF A=1 LET L,15 ELSE LET L,45
530 OUT 4,1:BEEP 15,L:OUT 4,0:WAIT 70
540 RETURN
610 LET U,X/16:LET V,X%16:IF V<10 ? U;V
620 IF V=10 ? U;"A":IF V=11 ? U;"B":IF V=12 ? U;"C"
630 IF V=13 ? U;"D":IF V=14 ? U;"E":IF V=15 ? U;"F"
640 RETURN
モニタ音のトーンを変更した場合は、270行の変数Fに
設定値を変えます。上のソースコードでは、800Hzに
してあります。実際は、800Hzより少し低い周波数に
なります。
短点の長さを変えたり場合、280行の変数Bの設定値を
変えます。短点の長さを変えると、長点はその3倍に
自動設定されます。
メッセージは、最大32文字にできます。
メッセージは、230行から入力します。
メッセージは16進数で記述しますが、Windowsのアプリ
ケーションプログラムで、メッセージを入力すると
対応する16進数を生成できます。
このアプリケーションは、別ページで紹介します。
ラベルを利用できるVersionでは、次のように
ソースコードを記述できます。
1 'CW sender
10 GSB @INIT:GSB @INITX
20 @LOOP
30 FOR I=1 TO 32
40 LET X,[I]
50 IF X<>0 AND I<33 GSB @SENDX
60 IF BTN() GOTO @EXIT
70 NEXT
80 GOTO @LOOP
90 @EXIT
92 END
200 @INIT
210 FOR J=1 TO 32:LET [J],0:NEXT
220 LET [1],67,81,32,67,81,32,55,72,90
230 LET [10],90,68,69,32,74,65,56,74,80,79
240 RETURN
300 @INITX
310 LET [#41],#0D,#57,#77,#17,#01,#75
320 LET [#47],#1F,#55,#05,#FD,#37,#5D
330 LET [#4D],#0F,#07,#3F
340 LET [#50],#7D,#DF,#1D,#15,#03,#35
350 LET [#56],#D5,#3D,#D7,#F7,#5F
360 LET [#30],#3FF,#3FD,#3F5,#3D5,#355
370 LET [#35],#155,#157,#15F,#17F,#1FF
380 RETURN
400 @SENDX
410 IF X=32 RETURN
420 GSB @MONITOR
430 LET P,[X]:LET K,4:IF X>=#30 AND X<=#39 LET K,5
440 FOR J=1 TO K
450 LET A,P&3:GSB @XCODE:LET P,P>>2
460 NEXT
470 WAIT 100
480 RETURN
500 @XCODE
510 IF A=0 RETURN
520 IF A=1 LET L,15 ELSE LET L,45
530 OUT 4,1:BEEP 15,L:OUT 4,0:WAIT 70
540 RETURN
600 @MONITOR
610 LET U,X/16:LET V,X%16:IF V<10 ? U;V
620 IF V=10 ? U;"A":IF V=11 ? U;"B":IF V=12 ? U;"C"
630 IF V=13 ? U;"D":IF V=14 ? U;"E":IF V=15 ? U;"F"
640 RETURN
目次
前
次