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」をダウンロードできますので、参考にしてください。

2025年12月25日木曜日

XPAC2用の漢字ROM

ずっとやりたかった XPAC2用の漢字ROM提供
純正の漢字ROMデータは配布できず、武田氏のエミュレータ付属の漢字ROM作成ツールはMSゴシックでROMデータを作成されるため、これも配布できません。

自家製フォント工房さんで、制約なしに利用できるパブリックドメインのフォントを発見。
 半角が東雲ゴシック16、全角がjiskan16の「JFドットjiskan16s」を使わせてもらいました。
無かったフォントはドットで作りました。

今回作成したROMには、後に追加されたJIS非漢字文字の中で、よく使われそうな漢字コードもいくつか追加しました

XPAC2に漢字ROMを書込むには、ここから「kanji.rom」をダウンロードしてSDカードに保存。「CMD」ツールで
 ld 2 kanji.rom
で書き込むことができます。(数十秒時間がかかります)
これでATMega1284PのフラッシュメモリとEEPROMに、漢字ROMデータが保存されます。
CMDツールの使い方はこちらです。

この「kanji.rom」には、Slot5 の8KB RAM PAC2 に以下プログラムが保存されています。
・CMD:SD カード操作コマンドプロンプト
・FORMAT:XPAC2 メモリのフォーマット
・EDIT: XPAC2 メモリのダンプ、編集
・KANJI:8~10区に漢字データを書き込みます

EDITプログラムは、キー操作を変更しました。
初代パソピアで10キー16進入力はできなくなりましたが、カーソルキーが使えるようになったので、キー操作は自然になったと思います。

パソピア電源起動後は、Slot5のデータエリア6000h~7FFFhに上記のプログラムが保存されているため、このエリア(8~10区)に登録されている漢字は表示できません。
Slot5に登録されている「KANJI」プログラムを実行すると、6000h~7FFFhに漢字データが登録されます。パソピアの電源を切ると、Slot5のデータは元に戻ります

以下、今回の「kanji.rom」に登録されている漢字データです。
漢字コード表のPDFも用意しました。こちらからダウンロードできます。

申し訳ない。。内蔵プログラムを見直している際にバグを見つけました。
Rev.2 ROMでSlot5に登録されている「EDIT」プログラムで、[0]Pasopia内蔵RAMを選択し、次ページに切替えた際に、下行のチェックサムが異なります。(赤丸部分)

前述の「kanji.rom」に登録されている「EDIT」では修正済みですが、漢字不要の人向けに「eep_rev3.rom」も用意しました。「eep_rev3.rom」をダウンロード、「eep.rom」にリネームしてSDカードにコピー。「CMD」ツールで
 ld 2 eep.rom
で書き込むことができます。(数十秒時間がかかります)

漢字データを書き込んだXPAC2のデータをパソピア7で表示してみた。

比較用に、パソピア700本体に登録されている純正漢字ROMデータを表示してみました。

今回のXPAC2用の漢字ROMは、純正漢字ROMとも遜色なく、Slot5のツール類も使えます。
既に完売したXPAC2ですが、購入された皆さんは是非試してみて下さい。

2025年12月21日日曜日

漢字ROM

パソピアシリーズは漢字ROM PAC2を装着すると、漢字表示できる

漢字ROM PAC2は、初代パソピア用(PA7246)とパソピア7用(PA7247)の2種類あるが、中身のROMデータは同一。
初代パソピア用(PA7246)には、T-BASIC Ver1.1用サブルーチンのテープが付属している。

以前紹介したが、XPAC2に漢字ROMデータを書き込むと漢字ROM PAC2として利用できる。

XPAC2が搭載しているマイコンATmega1284Pは、フラッシュメモリ128KB、EEPROM 4KB、SRAM 16KBを持っている。XPAC2の本体ファーム8KBはフラッシュメモリに保存されている。
パソピアの漢字ROM容量は128KBなので、フラッシュメモリでは足りない領域の漢字ROMデータはEEPROM 4KBに圧縮して保存しておき、起動時にSRAM 8KBに展開して利用する

漢字ROMデータの6000h~7FFFhまでがSRAMに保存されており、SRAMのためこの領域のみ読み書きが可能になっていて、スロット番号5のRAM PAC2(8KB)としても利用できる。電源を落としたらデータが消えてしまうが、再起動するとEEPROMから元のデータが解凍される。

漢字ROMデータは1文字32バイトで構成されている。
データの並び順は「パソピアの内部構造」と「テクニカルマニュアル」に記載されているが、両者で食い違っている
どうやら、「パソピアの内部構造」の並びが正しそう。
8bit(1バイト)の行データが、上から左→右→左→右→... の並びで32バイト保存されている。
図にすると、以下の並び順が正しそう。
Bit1~4(A1~A4)が行を示しており、上の行から降順で並んでいる。

もう一点。
テクニカルマニュアル148ページから漢字表が掲載されているが、8~10区のデータが1行下に掲載されている。実機で8区17点~19点を指定して表示すると、マニュアルの1行下の行「ぁぃぅ」が表示された。

武田氏のエミュレータに、漢字ROMを生成するmkfontというツールが用意されているが、マニュアルを忠実に再現しており、8~10区は1行下にずれている。テキストファイルで簡単に修正できるので、使っている方は修正してみて下さい。

パソピア7/700で漢字を表示する場合は、PUT%(テキスト画面表示)かPUT%(グラフィック画面表示)のどちらかを指定するが、&Kの後ろに区・点の順番で漢字コード指定する(どちらも2桁の10進数で記載)。カンマで連続指定することも可能。

ところで、Pasopia700は漢字ROM PACを刺さなくても漢字表示できた...
 知らなかった。

2025年12月7日日曜日

XPAC2最終ロット

2015年に発売したXPAC2ですが、10年目にして最終ロットの出荷です。
ディスコンになっていたMRAMですが、手持ちの在庫も無くなりました。
今まで購入してくれた皆さん、ありがとうございました。

最後の組み立ての様子。これが4台分の部品です。

基板に部品を取り付けている途中。ルーペを使っているが、表面実装は厳しい...

手作業でゆっくり作るので、数日かけて部品を半田付け。

組み上げたXPAC2は、パソピア7で動作チェック。

次はケース作り。小型のNC工作機でFCカセットを削って穴あけ。

削った部分はヤスリで整え、表面はコンパウンドで磨きます。

組み立てて本体完成。

マニュアルを印刷。両面印刷できないプリンターなので、手で裏返して両面印刷

静電防止袋にマニュアルと本体を入れて出荷します。

今回は、XPAC2とRGB Convをそれぞれ数台ずつ出荷します。

今回も家電のケンちゃんでの販売となります。
XPAC2は今回が最後になるので、必要な方は是非ご検討ください。

-----
12/13追記
家電のケンちゃんに出荷したXPAC2とRGB Convは売り切れとなりました。
買っていただいた皆さん、ありがとうございました。 m(_ _)m