- タイトル
モールス デバッグ ツール - 開発環境
IchigojamBASIC1.3.1
外部メモリ(AT24C256) - 内容
BASICマガジンのプログラムを入力した時、必ずと言って良いほど入力間違いをしてしまいます。そんな時、「誰かがプログラムを読み上げてくれれば、読み合わせができるのに」と思ったことはありませんか?
このプログラムは、入力したプログラムをIchigoJamがモールス信号で読み上げくれます。
がんばってモールス信号を覚えれば、アマチュア無線の上級を目指したり、ジブリアニメのモールス信号のシーンも楽めるかも。 - 必要な機器
読み合わせするプログラムは外部記憶装置(EEPROM)から読み込みますので、外部記憶装置が必須になります。
通販ショップで購入することができます。(参考:https://ichigojam.net/get.html)
またサウンド出力用にIchigoJamキット付属の圧電ブザーを取り付けておいてください。 - 操作方法
実行すると「FileNo ?」と、プログラムの保存番号を聞いてくるので、読み合わせしたいプログラムの保存番号を入力してください。(100番以後) 最初の行からプログラムが1文字ずつとそれに該当するモールス符号が表示、モールス信号が発信されます。 英文モールスのみなので、それ以外の文字(カタカナや絵文字など)は低い音の長音1つが鳴って読み飛ばされます。 - モールス符号のコード化について
モールス符号は下記の規則で8bitにコード化してあります。
単音を0、長音を1として、8bitに右詰めで配置します。
次に左の空きbitを最下位bitを1、それ以外を0としたビット列で埋めます。
例えば、Aは・-なので、000001-01=#05、Zは--・・なので、0001-1100=#1Cとなります。(見やすくするため、モールス符号とビット埋めとの間にハイフンを配置しています。)
これの符号化により、上位bitから1bitずつ調べていき、bitが1になった以後のbit並びがモールス符号になります。
参考文献:FaceBook内IchigoJamグループより - プログラムのしくみ
各行の処理 10行 コメント 20行 短点長さ設定、モールス符号をメモリ上に配置 30行 読込むファイル場号 40行 外部メモリの読込アドレス計算 50行 外部メモリの読込アドレスを指定 60行 外部メモリから3byte読込(行番号、1行文字数) 70行 プログラムが行末になったら(1行文字数=0)終了 80行 行番号をモールス符号出力 90~110行 1行を1文字ずつモールス符号変換 120~140行 1行終了処理 150行 英小文字→大文字変換 160行 コード化されたモールス符号を読み込む 170~180行 英文モールス以外の文字の処理 190行 コード化符号からモールス符号を取り出す 200~260行 モールス信号の表示と発信 - プログラムの改造
モールス信号の単音は変数Sです。値を小さくすると早くなります。
本プログラムは和文モールスに対応していませんので、和文モールスも発信できるよう改造してみましょう。
モールス デバッグ ツール |
---|
10 'morseDeBug 20 S=10:POKE#700,107,82,0,0,0,40,94,54,109,34,42,115,97,85,50,63,47,39,35,33,32,48,56,60,62,120,0,0,49,0,76,90,5,24,26,12,2,18,14,16,4,23,13,20,7,6,15,22,29,10,8,3,9,17,11,25,27,28 30 CLS:?"FILENO ";:INPUTN:N=N-100:IFN<0GOTO30 40 [1]=N*1024:POKE#800,PEEK(#803),PEEK(#802) 50 A=I2CW(80,#800,2,#802,0) 60 A=I2CR(80,#800,0,#802,3):CLS:?DEC$([1],5) 70 C=PEEK(#804):IF!CEND 80 FORK=0TO4:B=PEEK(#900+K):IFB!=32GSB150 85 NEXT 90 FORK=0TOC 100 A=I2CR(80,#800,0,#802,1):B=PEEK(#802):GSB150 110 NEXT 120 R=R+2+C 130 IFR%2R=R+1:A=I2CR(80,#800,0,#802,1) 140 GOTO60 150 IFB>96&&B<123B=B-32 160 A=PEEK(#700+B-33) 170 IFB<33A=0 180 IFB>90A=0:?CHR$(B) 190 FORI=0TO7:IFA<128A=A*2:NEXT:BEEP30,99:WAITS*3:BEEP0:RTN 200 ?CHR$(B);" "; 210 FORJ=ITO6:A=A*2 220 BEEP15,99:IFA&128?"-";:WAITS*3ELSE?".";:WAITS 230 BEEP0:WAITS*3 240 NEXT 250 I=8:NEXT:?:WAITS*7 260 RTN |
ダウンロードURLは下記になります。
morsedebug.bin http://tagiyasoft.blog.jp/morsedebug.bin
ブラウザでD/LしてIchigoJamに転送する場合は、通信ソフトでバイナリ送信をしてください。
(例:TeraTermの場合は、メニューの[ファイル]-[ファイル送信]で当該ファイルを送信します)
モ-ルス符号(wiki)