今日は PC-9821 シリーズに搭載の
256色表示機能を BASIC でテスト!
拡張機能を使わないバージョンと
必要なバージョンの 2つを用意。
ダウンロードもできますので
実機をお持ちの方はぜひどうぞ♪
拡張機能が無くても画像表示可能
まず最初に 256色BMP の用意。
98の画面全体に表示するものなので
画像サイズは 640×400 ドット。
前回に引き続き、今回の画像でも
れとこさん の公開されている画像を
利用させていただきました。
カカニャンとゴルディクスの絵は
姪っ子カカニャンが数年前描いたもの。
当ブログや YouTube 動画の中で
使っているものを利用しました。
背景画像は昔BASICで作った自作RPG
天魔降臨の画像を拡大して埋め込み。
今回の場合、色数が少なめの画像なので
減色しても16色の時ほど画質の劣化は
ありませんでした♪
出来上がった BMPファイルを
HSP3 で自作したコンバータを使って
BASIC で直接使える形に変換。
そのファイルを読み込むプログラムが
今回紹介するテストプログラムです。
PC-9821 シリーズの MS-DOS 上で
動作する EXEファイル付きです。
BASIC コンパイラで作成しました。
下記リンクからダウンロードできます☆
ちなみに、エミュレータで起動する場合
BIOS ROM がインストールされた環境
であれば、FreeDOS(98) でも OK!
マルチメディア拡張機能を使わずに
256色画像を表示するプログラムの
ソースリストは下記の通り。
エミュレータ Neko Project 21/W と
実機 PC-9821Cx で確認しました。
【256TESTN.BAS】
1000 '-------------------------------------
1010 ' 256色画像表示テスト
1020 ' [ N88-日本語BASIC(86) MS-DOS版 ]
1030 '
1040 ' 256TESTN.BAS
1050 '
1060 ' 2023-01-15 : TSAPPS ゴルディクス
1070 '-------------------------------------
1080 '
1090 ' 初期化
1100 '
1110 CLEAR 800:CONSOLE 0,25,0,1:CLS
1120 OUT &H6A,7:OUT &H6A,&H21
1130 DEF SEG=&HE000:POKE &H100,0
1140 '
1150 ' パレット設定
1160 '
1170 DEF SEG=SEGPTR(2):BLOAD "256TEST.PAL"
1180 FOR I=0 TO 255
1190 PR=PEEK(I*3):PG=PEEK(I*3+1):PB=PEEK(I*3+2)
1200 OUT &HA8,I:OUT &HAA,PG:OUT &HAC,PR:OUT &HAE,PB
1210 NEXT
1220 '
1230 ' 画像表示
1240 '
1250 FOR I=0 TO 7
1260 DEF SEG=&HE000:POKE 4,I
1270 DEF SEG=&HA800:BLOAD "256TEST.V"+HEX$(I)
1280 NEXT I
1290 '
1300 ' キー入力待ち
1310 '
1320 WHILE INKEY$<>"":WEND:WHILE INKEY$="":WEND
1330 '
1340 ' 終了処理
1350 '
1360 OUT &H6A,&H20:OUT &H6A,6
1370 CLS 3
1380 END
このソースなら標準命令のみなので
BASIC コンパイラを利用して
実行ファイルにすることが可能。
そのファイルは ZIP内に同梱されて
いますので、DOS ですぐ試せます。
ただ、このような全画面表示以外だと
描画処理がとても大変になるので
イベント画像の表示のみに限定する
などといった使い方ならいいかも。
動作速度の比較動画を用意しました
マルチメディア拡張機能を利用した場合と
通常命令のみで同じ事をやってみた場合の
動作速度を比較したのが上の動画です。
拡張機能を利用しない方が、
若干スピード早めではありますが
他の描画命令で 256色を使えないので
プログラムを書くのは色々と面倒です。
といったところで今日はここまで!
れとこさん、今回もありがとう♪
それではまた
明日の記事でお会いしましょう☆
ポチッと応援してもらえたら嬉しいな♪
コメント