SHARP X1/turbo 漢字ROMデータ吸出し情報
X1とTurbo用の漢字ROMのダンプ・ツールと、データの比較情報
(Get Kanji ROM Data Information for SHARP X1/turbo series.
X1 and Turbo Kanji ROM Dumper and Comparing Data Information)


Last updated 2022/05/26 since 2017

«Quick Links» 1. 概要 (summary)  2. 動作環境 (require environment)  3. ライセンス (license)  4. ダウンロード (download)  5. 解説 (explanation)  6. 漢字ROMデータの比較 (compare the Kanji ROM data)  6.1. X1turboシリーズの漢字ROMは全て同じなのか?  6.2. X1turboII以降の漢字ROM と非turbo系漢字ROMの比較  6.3. Remote Monitor吸出しデータと比較


1. 概要 (Summary)

これは、SHARP X1 emulator用の漢字ROMデータを、X1turboシリーズやX1用漢字ROM (CZ-8KR,CZ-8BK2,X1Ck,X1Fmodel20,X1G等)から抜き出すツールです。
X1 emulatorのROM抜き出しの方法の詳細、以下のところにあります。

「X1EMUとPadKey98のページ」 (http://www.geocities.co.jp/SiliconValley-SanJose/3949/index.html) (残念リンク切れ!!) のIPL-ROM吸い出し方法から辿れる、
http://www.geocities.co.jp/SiliconValley-SanJose/3949/rom_read.txt (残念リンク切れ!!)

「X1センター」 (http://www.x1center.org/) のクロスサポートツールから辿れる、
http://www.x1center.org/rom_com.txt

ところが、これらからは漢字ROMの吸い出し方法に関する記載が省略されています。
現在は、 「X1turbo Agency ブログ」 (https://x1turbo-agency.hatenablog.jp/) からダウンロードできる、X1turbo Remote Monitorがあり、 これを使用することでX1turbo/Zシリーズの必要なROMは簡単に揃います。

…というわけでX1 emulatorを使う分には困ることはないわけですが…
この漢字ROMデータなんですが、自分で抜き出しプログラムを作ろうとして、 なにこれ? と思った方は多いのではないでしょうか。
また、データを比較したくなったことも…

X1シリーズの全ての漢字ROMについて、エミュレータで普及している形式以外のものも含めた、 様々なデータ形式のものを作成しました。


2. 動作環境 (Require Environment)

本プログラムは以下の環境で動作します。


3. ライセンス (License)

This is a public domain software. NO LIMITs, NO WARRENTALies.

古い8ビットPC専用ツールのため、パブリックドメインです。 但し、無保証、無責任です。
もし、改良した場合は、パッチをいただけるとありがたいです。


4. ダウンロード (Download)

X1GetKanjiROMs_D88-V1_00.zip ... GetKanjiROMs関連のプログラムをまとめたD88形式ディスク
(5.25inch 2D 320KB Floppy Diskette D88 image, X1 DISK BASIC formatted no bootable disk)

どちらのソフトウエアも、X1のDISK BASICフォーマットディスクへASCII形式でセーブしますので、 「日立ベーシックマスターレベル3 マーク5/S1エミュレータ」 (http://s-sasaji.ddo.jp/bml3mk5/) のWEBページにある、L3ディスクエクスプローラ(L3 Disk Explorer)等で、 1つの漢字ROMファイルとして読み出せます。
「ひっそり X1」 (http://ceeezet.syuriken.jp/) のX1DiskExplorerでは、この目的には使用できません。


5. 解説 (Explanation)

X1 emulatorの漢字ROMデータは、わかれば簡単ですが、S-JISコードの$8140〜$EAAF がそのまま自然数順に含まれていて、1文字32バイトです。 CZ-8FB02上から、CGPAT$()で抜き出したと思われますが、各キャラクタ単位でのデータは並び替えられています。 自然数順だと、未定義文字の時にCGPAT$()でエラーを出しますので、 その時にON ERROR GOTOでブランク処理してブランクで埋める処理をしたと考えられます。 そして、抜き出したデータはフロッピー1枚に収まって少し余裕があるように、 これから、$84BF〜$888Eと、$A000〜$E03Fを削除して処理すると、 306176バイトになる辻褄の合うデータが作成できます。
更に、ブランクデータは空白で埋めると、大声で言えない、昔知人からもらった吸出し方法不明だった、 第二水準のないデータと、手持ちのturboIIやturboZで抜き出したデータが完全に一致しました。
これが、現在は見つけることができないわけですが、最初の漢字ROM吸出しプログラムの内容ではないかと思います。
実際に私が作成したものは、ON ERROR GOTOではなく、 文字コードで判定して処理するようにしてあります。

更に、非turboシリーズX1の漢字ROM用のものもemulatorで使用できるようにしようと、 吸出しプログラムを作りました。 どちらの漢字ROMについてもそうですが、RAW形式(X1=128KB、turbo=第二水準と合わせて256KB)は、 漢字ROMの調査には便利ですが、 X1 emulatorでは、2018/11/02現時点では使えるものがなさそうな感じです。
それで、非turboの漢字ROMは、JIS/S-JISの定義範囲に入らない句点コード上の定義があるし、 X1 emulatorのS-JIS開始文字の前に文字定義されていたりします。 これらはどのemulatorからも使用できなさそうでした。

非turboのX1の漢字ROMには、IC未実装のソケットが2〜4個あります。
ここへ、MZ版に搭載されているかな漢字変換ROM (2764x2、MZ-1R13は標準、PIO-3055-01)が搭載できることが知られていますが、 BASIC CZ-8FB01には、MZ版HuBASIC v2.0に存在するJIS$()/JIS()が省略されており、 特にこれを使うJIS()がないため、応用用途はほとんどなさそうですが、対応ソフトウエアは一応あるそうで、 「大石さんのWEBのCZ-8KR」 (http://retropc.net/ohishi/museum/cz8kr.htm) に記述があります。かな漢字変換ROMの仕様は、 「sugaのジャンク部屋の辞書ROM関係のツール」 (http://www.ne.jp/asahi/suga/junkyard/mz/mzsoft/index.html) にあります。 内蔵機種やI/F別の仕様の違いは、 「X1センターのI/Oマップ」 (http://www.x1center.org/sdx1/sdx1_0.html) が詳しいです。
このROMの吸出しには対応していませんが、KNJIROM-X18KR.Basのアドレス範囲を少し変更するだけのはずです。
ただし、プログラムを使わなくてもROMライタで簡単に抜き出せます。


6. 漢字ROMデータの比較 (Compare the Kanji ROM Data)

更に、 漢字フォントを画像データ化したり比較するツールを作成して、比較してみました。

6.1. X1turboシリーズの漢字ROMは全て同じなのか?

世の中には、素晴らしいWEBページを作成されている方々がいて、 「はせりんさんのFMシリーズの比較ページ」 (http://haserin09.la.coocan.jp/difference.html)に、 漢字フォントについて調べたコーナーがあります。
そして、「X1センター」 (http://www.x1center.org/) に詳しい各機種のROMの型番があります。 それによると、X1turbo Iが、MB83256-19〜22/27〜30、II/III/ZがMB831000-16 042/044、 ZII/ZIIIはMB832001-20 042とあります。
さて、X1turboシリーズはどうなのでしょうか…
同じ富士通の漢字ROMですし、両方ともJIS78でしょうが、 少しフォントが異なる可能性を一度くらい検証してみてもいい気がしてきます…

turboIIとZしか手持ちになくて面白くなかったのですが、MZ-2000の16ビットボード用漢字ROM MZ-1R08が、 MB83256-19〜22でX1turbo Iと同じなので、これと比較してみました。

diff_x1t2t1_raw.txt ... 異なる漢字コードのリスト (漢字ROMオフセット番号のみ)

diff_x1t2t1_raw.gif
第一水準漢字ROM turboII(緑) vs turboI(紫)
(画像サイズが640*7216と大きいので、画像を保存し、Windowsなら付属のペイント等、Linuxならgimp等で開いて変更コードリストを参照しながら拡大すると見られます)

異なるフォントのみを抜き出して、GIFアニメにしたものを、はせりんさんからいただきました。

MB83256_019022_1000_042.gif (gif animation)
第一水準漢字ROM turboII vs turboI
(異なるフォントのみのGIFアニメです、クリックしてpop up windowで見てください)
MB83256_027030_1000_044.gif (gif animation)
第二水準漢字ROM turboII vs turboI
(異なるフォントのみのGIFアニメです、クリックしてpop up windowで見てください)

turboシリーズでROMの内容に違いがあるのを初めて知りました…
といっても、ほぼ同じ内容で特に何か問題があるわけではありません。
ちなみに、ZII/ZIIIの漢字ROMの内容は、TurboII〜Zのものとまったく同じなのだそうです。

6.2. X1turboII以降の漢字ROMと非turbo系漢字ROMの比較

S-JIS形式で、turboZとCZ-8KRの漢字ROMデータを比較してみました。 emulator漢字データ形式のS-JISの範囲外になる区点コードの0101、4194〜4195を含む、 区点コード範囲のみで定義された文字が多く省略されています。 吸出し時に、第二水準部分は0xffffで埋めるようにしてあり、 この比較画像はそれも含んでいます。
X1用漢字ROMは、I/Oデータの漢字ROM HN61256P-C11,C12,C13,C14(日立製)ですが、 MZ-80B用としてI/Oデータから発売された漢字ROM PIO-3055と同じものです。 これらは、後に、そのままMZ-2000用のSHARP発売漢字ROM MZ-1R13となっています。
非turboの漢字ROMは、すべてこれが搭載されているらしいので、内容は同じはずです。 念の為比較してみたら、CZ-8KRから抜き出したものと MZ-1R13から抜き出したMZ-2000 emulator用の漢字ROMデータは完全に一致しました。

diff_x1tz8kr_sjis.gif
今回作成したツールの抜き出し(緑) vs RemoteMonitor(紫)
(画像サイズが816*31352と大きいので、画像を保存し、Windowsなら付属のペイント等、Linuxならgimp等で開いて変更コードリストを参照しながら拡大すると見られます)

RAWデータを使って全文字を比較するためには、 両方のフォーマットに対する漢字ROMの区点コードへのデコーダが必要になるため、行っていません。
8ビット機が現役だった当時、MZ-2000もX1もこの古いタイプの漢字ROMを持っていなかったため、まじめに見たことがなかったのですが、 第二水準ROMを実装しないことを前提とした、少し古いデータだと感じました。

6.3. Remote Monitor吸出しデータと比較

未定義コードの文字をRemoteMonitorの出力と同じ"・"にして、フォントを比較してみました。
同じにならなかったからネタにしているのですが、未定義文字の扱いがBASICのCGPAT$()と違うだけなので、 何か問題があるわけではありません。
X1の設置位置が物理的に問題があってケーブルが届かない等でなければ、RemoteMonitorをお勧めします。

diff_tzmineremote_sjis.txt ... 異なる漢字コードのリスト (S-JIS/JISコード/漢字ROMオフセット番号)

diff_x1tzmineremote_sjis.gif
今回作成したツールの抜き出し(緑) vs RemoteMonitor(紫)
(画像サイズが816*31352と大きいので、画像を保存し、Windowsなら付属のペイント等、Linuxならgimp等で開いて変更コードリストを参照しながら拡大すると見られます)


以上