変更点 (4000AX07 → 4000AX08)

グラフィックモードでDBCS(日本語文字列)の表示に対応。文字列出力で画面右端にDBCSが来た場合に折り返すようにした。基本アトリビュート、拡張アトリビュートの表示に対応。仮想テキストRAMとグラフィック画面でのアトリビュート取得(INT 10h/AH=08h)に対応。

ダウンロード

更新分をこちらに置きました。これが本当に最後の更新、たぶん。

CELLA.DAT内Filesを参照
https://radioc.web.fc2.com

JEGAテキストモード独自のアトリビュート装飾を実装

下の画面は基本アトリビュートをEGA互換モードで表示したときとJEGAモードで表示したときの比較。

Image: EGAアトリビュート Image: JEGAアトリビュート

次の画面は拡張アトリビュートの表示例。DBCS第2バイトのアトリビュートで横倍角、縦倍角、4倍角、ボールド(太字)を設定できる。

Image: JEGA拡張アトリビュート無効 Image: JEGA拡張アトリビュート有効

行間の余白で文字に隙間ができている。実機では縦倍角の表示開始位置をJEGAのレジスタで変更できるようになっているのだけど、それをやるとループ内のコードが余分に増えるのでこれで妥協した。ボールドはフォントを1ドットずつ右にずらして元のフォントとORしたものを表示。そうすると、本来なら一番右の列が隣のカラムに入るのでそちらのアトリビュートが適用されるはずだが、ここでは単にカラム単位でアトリビュートを処理しているので、そこまで再現していない。

コンソール出力で右端にDBCSが来るとSBCSとして折り返されてしまう問題を修正

Image: JEGA拡張アトリビュート有効

分かりやすいプログラムミスだけど、日本語と英語の処理にこういう違いがあるのだと改めて気づかされた。


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

管理人 : Akamaki (akm)

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

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

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