当局の作ったTurbo HamlogのQSLカード印刷定義も、大詰めの段階に差し掛かった。前にも申し上げたが、メッセージを定義の最後に持ってきた理由は、複数のQSOデータを取り扱う点だ。
つまり最大5回分のQSOデータを確認したうえで、メッセージを組立てることを重視した・・・ことになる。
そのために、1行ごとのQSOデータを作るときに、データ拾い出しを行った。
はなれ(サブルーチン的ファイル)で拾い出したデータには以下のものがある。
$$R 5行の中に1stQSOがあったか?$$N 相手局の名前、またはクラブ局のオペレータを収納。$$M 特定のモード(当局の場合はCW)が含まれたか?$$L 最新の行(1行目)がDXか? JAか? を確認する
これらの状態を元にして、メッセージの文を選んで組み立てる。
また共通項目の設定で指定したメッセージの部分を取りあえず本文として使う。
; メッセージ
#Mov $$C = "有難うございます。" ; JA向け①2nd以降
#Mov $$D = "TNX FB QSO." ; DX向け①2nd以降
#Mov $$E = "初交信有難うございます。" ; JA向け①1st
#Mov $$F = "TNX 1st QSO." ; DX向け①1st
#Mov $$G = "またお会いしましょう。" ; JA向け②その他
#Mov $$H = "I'm hoping to see you, again." ; DX向け②その他
#Mov $$I = "CW初心者の為、お手数かけました。" ; JA向け②CW1st
#Mov $$J = "AM LID, Many thanks for your kindness." ; DX向け②CW1st
以上を組み合わせて、メッセージ文章を作った。QSOデータのRemarksと同様に変数$$Aに入れる方法を使った。但し、Remarksと違ってメッセージの方は長くなっても支障は少ないので、メッセージ一時変数に文章を継ぎ足していく方法を使った。
メッセージの言葉自体は、適当に修正していくつもりです。
"!$$N"(名前)はすでに編集してあるから、名前が取得できていれば、そのままメッセージ一時変数$$Aに代入する。
次にDX局かJA局かを確認して、JA局の場合は、#Goto *920でJA向けメッセージのラベルまで飛ばしている。
JA向けメッセージも同様に進めて、メッセージ文章を組立てる。
;メッセージ-----------------------------------------------------
#Mov $$A="" ; メッセージ一時変数をクリア
; 名前
? Space! "!$$N" ; 名前(!$$N)ありか?
#Mov $$A="!$$N, " ; 名前(!$$N)を変数に代入
? Space "!$$L" ; JA向けか?
#Goto *920 ; JA向けメッセージにジャンプ
; DX向けメッセージ
? Space "!$$R" ; 2nd以降か?
#Mov $$A="!$$A!$$D" ; 1行目DX向け①(!$$D)を変数に追加
? Space! "!$$R" ; 1stQSOか?
#Mov $$A="!$$A!$$F" ; 1行位DX向け①1st(!$$F)を変数に追加
? Space "!$$M" ; CWなしか?
#Mov $$A="!$$A !$$H" ; DX向け②(!$$H)を変数に追加
? Space "!$$R" ; 2nd以降か?
? Space! "!$$M" ; CWありか?
#Mov $$A="!$$A !$$H" ; DX向け②(!$$H)を変数に追加
? Space! "!$$R" ; 1stQSOか?
? Space! "!$$M" ; CWありか?
#Mov $$A="!$$A !$$J" ; DX向け②(!$$J)を変数に追加
#FontName="Special Elite" ; 英語メッセージのフォント
#Goto *980 ; メッセージの印字にジャンプ
*920
; JA向けメッセージ
? Space "!$$R" ; 2nd以降か?
#Mov $$A="!$$A!$$C" ; JA向け①(!$$C)を変数に追加
? Space! "!$$R" ; 1stQSOか?
#Mov $$A="!$$A!$$E" ; JA向け1st①(!$$E)を変数に追加
? Space "!$$M" ; CWなしか?
#Mov $$A="!$$A !$$G" ; JA向け②(!$$G)を変数に追加
? Space "!$$R" ; 2nd以降か?
? Space! "!$$M" ; CWありか?
#Mov $$A="!$$A !$$G" ; JA向け②(!$$G)を変数に追加
? Space! "!$$R" ; 1stQSOか?
? Space! "!$$M" ; CWありか?
#Mov $$A="!$$A !$$I" ; JA向け②(!$$I)を変数に追加
#FontName="MSP ゴシック" ; 日本語メッセージのフォント
*980
; メッセージの印字
? Space! "!Co" ; 印刷時コメント欄があるか?
#Mov $$A="!$$A !Co" ; 印字確認時のコメントを追加
#FontSize=10 ; 文字大きさ(普通)
#FontColor=0 ; 文字色(黒)
#FontStyle=0 ; 文字飾り(なし)
#PrintA $$Z, 480, 0, "!$$A" ; メッセージ変数(!$$A)を印字
![イメージ 1](https://stat.ameba.jp/user_images/20191128/22/jh1lmd/c9/a5/p/o0560038614652369709.png?caw=800)
メッセージの印字では、印刷時に挿入したいコメントがあれば、最後に!Coを挿入出来るようにした。
こうした長さの一定しない文章を印字するには良い方法だ。
#PrintA [横方向の開始位置], [縦方向の開始位置], [行間の幅], "[印刷する文字]"
用紙の右端で自動的に折返すが、あらかじめプリンタに用紙寸法を登録しておかないとダメなようだ。当局はインターナショナルサイズ(140mmX90mm)を登録してあるので、Turbo Hamlogのプリンタ設定で指定すれば上手く折返してくれた。
当局の使い方が下手なのか、英文なども単語の途中で切れてしまうのが気になるが、限られたスペースを活用する点では便利な命令だ。
以下に実際の印字出力をご覧ください。
![イメージ 2](https://stat.ameba.jp/user_images/20191128/22/jh1lmd/fa/dd/p/o0420016214652369714.png?caw=800)
![イメージ 3](https://stat.ameba.jp/user_images/20191128/22/jh1lmd/6f/40/p/o0420016214652369719.png?caw=800)
![イメージ 4](https://stat.ameba.jp/user_images/20191128/22/jh1lmd/8c/3d/p/o0420016214652369728.png?caw=800)
DX局、ファーストQSO、CWモードで名前付だが、単語の途中で折返されている。
![イメージ 5](https://stat.ameba.jp/user_images/20191128/22/jh1lmd/e3/d2/p/o0420016214652369735.png?caw=800)
JA局、セカンド以降のQSO、クラブ局のオペレータのコールと名前を表示している。
![イメージ 6](https://stat.ameba.jp/user_images/20191128/22/jh1lmd/e4/53/p/o0420016214652369744.png?caw=800)
JA局、セカンド以降のQSO、名前とハンドルをHis Nameから読込む。
![イメージ 7](https://stat.ameba.jp/user_images/20191128/22/jh1lmd/c8/9b/p/o0420016214652369754.png?caw=800)
JA局、ファーストQSO、CWモードで、His Nameからハンドルを印字した。
以上で当局の作ったQSLカード印刷定義ですが、日々手直しを加えつつ、より使いやすくしたいと思っています。
次回、当局のQSLカード印刷定義の全文を公開しますので、ご利用ください。