とりあえず簡単なプログラムを動かすでは画面の下にBTRONと表示しました。それではその代わりに「漢字」と表示させてみましょう。簡単ですね。
static TC mes01[] = {TK_B, TK_T, TK_R, TK_O, TK_N, TNULL};
を
static TC mes01[] = "漢字";
に変えればいいだけです。ですが、おや?それはおかしいですね。BTRON仕様OSではTRONコードを使わなければなりません。つまり、"漢字"の部分は(TC*)"\101\064\172\073\0"という風にしなければならないわけです。しかし、これは手動ではとてもやってられません。というわけで支援プログラムを使うことにします。
実は大した違いがあるわけではありません。次のようにすればよいだけです。
static TC mes01[] = L"漢字";
そして、このようなプログラムをmain.kとして保存します。main.cはこのL"漢字"の部分を(TC*)"\101\064\172\073\0"と変換したものとなります。一文字の場合は
static TC mes01 = L'漢';
のように''で囲みます。
パーソナルメディアから配布されている開発環境の中にetc/wch2hexという変換プログラムが入っています。しかし、これはなんだか腐っているので使いません。
というわけで、代わりにBTRONプログラミング課外授業のmkpを使います。etc/mkpに置きます。使い方は
mkp main.k > main.c
とします。このように変更したmain.cが動くかどうか確かめてみて下さい。
このページではmkpを使っていますが、wch2hexを使うように順次書き換えていきます。腐れているのはwch2hexではなく私の方のようです。最終的にはwch2hexを使いますので御留意下さい。豊福さん御指摘ありがとうございます。
ちなみに、なぜwch2hexを使うべきかというと、たぶん二つの理由があって、(1)エンディアンの問題と(2)文字の結合、の二つが原因だと思います。(1)についてはすぐ分かると思うので、(2)について補足しておきます。
static TC mlist1[] = {
MC_STR, L'表', L'示',
MC_STR, L'再', L'表', L'示', TNULL
};
のようなコードを1B時代には書いていたようですが、wch2hexならば、
static TC mlist1[] = {
MC_STR, L"表示" |
MC_STR, L"再表示"
};
のように書けるのですっきりします。(L"..."の文字列に付加される、末尾のTNULLを"|"(or)で打ち消すのがポイントですね。) 古いコード(1Bプログラミング道場)などでは、上のような冗長な方法をとっているようですが、メンテナンスしやすい後者を今後は使った方がよいと思います。