X1turbo Agency

X1turbo Agency

漢字ROMのナゾにせまる

漢字ROMのナゾ

今回、X1turbo Remote Monitorで漢字ROMの読出しを対応しました。
漢字ROMについては、以前からナゾだったことがあります。

X1truboの漢字ROMは、1文字に付き32byte使用しています。
第1,2水準の漢字ROMアドレス領域を計算するとそれぞれ4096文字です。
8192文字分アサインがあるわけですが、第1,2水準はそれだけ文字があるわけではないです。

そうすると、そのスキマや使われていない文字には一体何が入っているのか?
普通に考えれば、なんにもない空白でも入っているのかと思います。
もしくは、CZ-8FB02でよく登場する '※' が入っているとか…?
そこがずっと気になっていたので調べてみました。

漢字ROMダンプ

次の画像は、漢字ROM並びでフォントを読出してそれを一部ビットマップ化したもの。
というわけで、使われていない領域は右側にドットを打った縦線が入っていました。
うーん、なぜだろう。なぜこの縦線にしたのだろうか…。

f:id:x1turbo_agency:20180715210022p:plain

SJISに変換した場合

そして、漢字ROM並びをSJIS並びにした場合の画像が以下になります。
漢字ROM→SJIS変換は自前で用意しました。
未定義の領域では、先ほどの縦棒が格納されています。

f:id:x1turbo_agency:20180715211620p:plain

対して、Windows上でフォントデータを自動作成したファイルの中身だと以下になります。
未定義領域ではブランクになっていますね。

f:id:x1turbo_agency:20180715211646p:plain

そして、X1turbo Remote Monitorで出力している内容は以下になります。
未定義になっている文字は、'・' と縦棒が入っています。
これは、.Net FrameworkのEncodingで変換すると未定義には'・'が割り当てられるためです。

f:id:x1turbo_agency:20180715211635p:plain

これらのフォントを見比べると、
X1turboフォントには、Windowsでは標準で入っている '⇔' や罫線などは入っていませんね。
機種依存文字ってことなんですが、意外とありそうなものがない事に時代を感じますね。
これらの文字はフォントファイルによってはエミュレータでは表示されますが実機では表示されません。

更に機種依存

X1turboシリーズの中でも、漢字ROMに第1水準しか載っていない機種もあるようですね。

以上、ナゾ解明!