Image: 211204 PS/55エミュ製作 [7]フォントのRAM配置と半角拡張文字

フォントデータのバイナリをビットマップに変換するプログラムを作ってフォントファイルやメモリダンプを解析した結果、色々分かってきた。

まず、半角拡張文字の字形はどことなく見覚えあるようなないようなと思っていたら、APLで使われる文字セットだった。APL以外で使われることはなさそう。

外字RAMをダンプして調べた結果、B4000h(内部アドレスは34000h)に通常の半角文字、BC000h(3C000h)に半角拡張文字がコピーされていると分かった。そして、USRFNTユーティリティーはここの一部を書き換えている、つまりカスタムフォントを使っていたため、文字化けしていたと分かった。

半角フォントを外字RAMから読み込むように作り替えて、画面は大体見えるようになった。でも、外字編集である場所にドットを打つと2箇所ドットが出る所があるので、まだ何かが変。

Image: PS/55 Emulator

まあ、開発当初の表示はこんなだったのでだいぶ進歩した。

Image: PS/55 Emulator

半角フォントを外字RAMから読み込むように作り替えたため、内蔵DOSで半角文字を表示できなくなった。DOSBox起動時にフォントを外字RAMへコピーする処理を入れる必要がある。そう難しいことではないけども面倒。

DOS J5.0が起動しない原因はBIOS内のアドレスにfar callして、そこにコードが実装されていないことが原因と分かった。PS/55のBIOS ROMは吸い出してあるのでその場所を軽く調べたが、ディスプレイ周りの初期化処理だろうか。よくわからない。

もう一つの謎は、USRFNTユーティリティーのフォント・マップ編集にある「常駐」と「オーバーレー」というのは何なのかよくわからない。全角文字のテキスト表示高速化?またはフォントの入れ替えか?

Image: PS/55 Emulator


※コメント欄が表示されない場合はdisqusについてJavascriptが有効であることを確認して下さい。コメントはスパム防止フィルターによる承認制のため、投稿してもすぐに反映されない場合があります。

管理人 : Akamaki (akm)

は、PCとVTuberに夢中になっている電気技術者です。

私はレトロコンピューティングの愛好家ですが、そのようなリグはもう収集していません。

私の活動はトップページで見ることができます。読んでくれてありがとう!