Image: 231128 PS/55エミュ製作 [20]JDOS上でBASICのグラフィックモードに対応

上は図形を描くサンプルプログラム。平面の線画を1本の軸を中心に3Dで回転した様子を描いている。

JDOS用BASICインタープリターのグラフィックモードが正常に動作するようになりました。IBM 5550用KDOSのBASICで動くサンプルプログラムもJDOSのBASICで大部分が動くようになった。

Image: IBM 5550 サンプルプログラム

原因はエミュレーター側にグラフィック支援機能(元々は5550にオプションの「グラフィックス支援カード・キット」として実装されていたもの)が実装されていないにもかかわらず、DOSのワークエリアにあるディスプレイ構成ブロックで「グラフィック支援機能あり」のフラグが立っていたため。この機能の詳細は別売の「グラフィックス支援カード駆動プログラム プログラミング・ガイド(N:SC18-2118)」という本に載っているらしいので、それがあればもしかしたらエミュレーションを実装できるかもしれないが、まあ入手性から言って無理ね。

PS/55(MCA機)用KDOSやJDOSの場合、ディスプレイ構成ブロックはおそらくDOSのシステムファイルに初期値が入っているため、事前にシステムファイルそのものにパッチするか、DOS起動後にソフトウェアからメモリをパッチする必要がある。前者の場合はDOSのバージョンによってアドレスが変わる可能性が高く実用性が低い。今回は後者の方法でパッチするDOSアプリケーションを作成した。

常駐(TSR)の必要性も見据えてアセンブラで作り始めたものの、アセンブラで書いたプログラムなんて指折り数えるほどしか作ったことがないので、苦労しかなかった。しかし、完成してみれば、たった1バイトにパッチを当てるだけのシンプルなプログラムに、なぜそんな苦労したのか。DOS K3.xでは相変わらずカラーグラフィックモードに切り替わらないが、まあでも、とりあえずJDOSではBASICもグラフィックモードで動くようになったので大進歩。3年前のバラックからよくここまで作ったもんだ。でも、うんざりでこれ以上はもう手を加えたくないかも。

DOSVAX 変更点 (4481PS09→ 4481PS10)

  • IBM BASIC インタプリタまたは IBM BASIC コンパイラで構築されたグラフィックス アプリケーションを実行するための DOS J4.0/J5.0 用のパッチ プログラム (dcbpatch) を追加します。 DOS I/O ワークスペースの表示設定ブロックのフラグを変更して、DOSVAX でサポートされていない IBM 5550 のグラフィック サポート機能を無効にします。
  • キーストロークの妨げにならないように、入力方式 (IME) を無効にします。 (sdlmain.c)

ダウンロード

GitHub - akmed772/dosvax: A folk of DOSBox that emulates the Japanese AX and PS/55 computers.


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

管理人 : Akamaki (akm)

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

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

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