目次

ソースコード

 モールス符号によるメッセージを送信する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


目次

inserted by FC2 system