2025年12月27日土曜日

漢字ROMデータの表示

 T-BASIC7で漢字表示するためには、PUT%(テキスト画面に表示)か PUT@(グラフィック画面に表示)を利用します。
漢字コードの指定は2種類あって、&K(漢字区点番号)か &J(JISコード)で指定。
漢字区点番号は、&Kの後に数字4桁(区番号2桁数字と点番号2桁数字01~94)を指定。
パソピア7の「漢字」キーを押すと「&K」が入力されます。

例えば、テキスト画面に「漢字」を表示する場合、
 「漢」の区番号は20、点番号は33
 「字」の区番号は27、点番号は90
なので、以下のように指定します。
 SCREEN 2
 PUT%(10,10),KANJI(&K2033,&K2790)

BASICで指定できる点番号は01~94で、漢字ROMデータにある0と95のデータは表示できない。そこで、漢字ROMデータから直接データを読んで表示するプログラムを作成。
RAM PACイメージは、ここからダウンロードできます。
XPAC2かエミュレータでRAM PACイメージをマウントした後、
 run"DISPKANJI"
で起動できます。
1画面に32×12=384文字(3000hバイト)毎の漢字データを表示します。
何かキーを押すと、次の384文字が表示されます。
(武田氏のエミュレータでは漢字が緑で表示されますが、実機では白で表示されます)
3行毎に区番号があり、点番号は横方向に+1、縦方向に+32してカウントできます。

XPAC2用に作成した漢字ROMでは、漢字データエリア6000h~7FFFhの領域にSlot 5のツールプログラムが保存されているため、この領域(8~10区)に登録されている漢字は表示できない

T-BASIC7のマニュアルに、区番号は01~07, 16~47, 84~94(外字)でなければならいなと記載があるので、この8~10区データは通常使うことがなさそうですが、Slot 5に登録されている「KANJI」プログラムを実行すると、6000h~7FFFhに漢字データを復元するようにしました。漢字データは別の領域に格納されていて、「KANJI」プログラムを実行すると6000h~7FFFhにデータをコピーします。


このXPAC2用漢字ROMで苦労したのは、このデータエリア6000h~7FFFh(8KB)に格納されているツールプログラムのサイズです。このプラグラムデータは圧縮して4KBのEEPROMに保存されていますが、このサイズに収めるためにプログラムを無理して詰め込んだ結果、読みにくいプログラムになっています。FATエリアも含めて4.4KBほどのデータサイズになりましたが、これでギリギリEEPROMに収まっています。

これらツールの中で、FORMATとKANJIプログラムはマシン語も含まれています。
プログラム実行中にマシン語をBLOADしますので、RUNする前にSlot 5を指定して下さい。
初代パソビアの場合
 out &H1B, 5
 run "FORMAT"
パソピア7の場合
 slot 5
 run "FORMAT"
です。
特に初代パソピアでFORMATプログラムを実行した後は、フォーマットしたSlot番号に変更されていますので、再度フォーマットする場合は out &h1B,5 を実行した後にRUNして下さい。
パソピア7の場合はBASICがSlot番号を保持しているっぽいので、そのままRUNしても問題ありません。

上記の注意事項も含めてマニュアルを改定しました。
ここから「XPAC2_Rev2_第5版_XPAC2用漢字ROM版.pdf」をダウンロードできますので、参考にしてください。

0 件のコメント:

コメントを投稿