DOS/VとPS/55でビデオメモリーへの書き込み量を比べてみる。

データ転送サイズで比較

前回の時間計測比較表より。

PS/55テキスト PS/55モノクロ DOS/V(/HS=ON) DOS/V(/HS=LC) DOS/V(/HS=OFF)
10秒(1.1) 110秒(12.2) 9秒(1) 13秒(1.4) 27秒(3.0)

最初に説明したとおり、1文字が画面上に表示されるまでには文字コードの変換やアドレス計算など様々な処理を挟むが、結局のところ一番大きなウェイトを占めるのはフォントイメージの転送(ビデオメモリーへの書き込み)にある。

DOS/Vハードウェア・スクロールの場合

DOS/Vのハードウェア・スクロールでは改行が発生した時に次のような処理が行われる。

  1. 26行目(画面表示外)に日本語入力ステータス表示を書き込む。
  2. 25行目(従前の日本語入力ステータス表示)を消去する。
  3. 開始アドレスレジスターの値を1行分(80×19=1520)加算する(→画面が1行分次にスクロールする)。

2行分の領域を丸ごと上書きしていると考えると、ビデオメモリーへの書き込みは80バイト×19ライン×2行=3040バイトになる。

フォントイメージの取得については、半角文字は常に基本メモリーに入っているので、全角文字の場合だけ拡張メモリーから転送する必要が生じる。つまり、表示するテキストによって異なるものの、最大で16ビット×16ライン×40字=640ワード(1280バイト)になる。実際にはリアルモードとプロテクトモードの切り替えによるオーバーヘッドが生じるため、CPUが286か386以降か、そのクロック速度、またBIOSのINT15hルーチンがどの程度最適化されているかによる。

PS/55テキストモードの場合

PS/55については前回説明したとおり、コード・バッファーのデータを1行上にずらしているだけである。25行目は日本語入力ステータス表示なので更新に含めない。

よって、ビデオメモリー内でのデータ移動は2バイト×80字×23行=3680バイト、ビデオメモリーへの書き込みは2バイト×80字=160バイトになる。

この比較から出た結論

DOS/Vのフォントイメージの取得処理にかかる時間はテキスト内容に依存する。全角文字が続く場合はPS/55の方が有利かもしれない。

今回時間を計った際はDOS/Vのreadme.docを出力したので、半角文字も空行も相当含まれている。そうなると、DOS/Vがグラフィックモードだったとしてもハードウェア・スクロールの恩恵を受けてメモリーアクセスの回数を抑えることができ、DOS/Vの速さはPS/55のテキストモードに勝るという結果は妥当と言える。

表示品質で言えば24×24フォントのPS/55が優れているが、表示速度でPS/55とDOS/Vが互角というのは、もしかしたらDOS/Vの開発陣が目標としていたところなのかもしれない。そう思うとロマンがある。


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

管理人 : Akamaki (akm)

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

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

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