BMP(24bit)とPC-9801GVRAM(B,R,G)の相互変換

するプログラムセットを公開しました。

 

bmp20701.zipとNL-BASICは以下のリンクから

ダウンロードできます。

NL-BASIC(N88-BASIC互換?)ホームページ

Readme.txtを読んで遊んで下さい。

 

------------------------------------------------------
説明 bmp2pc98.exe (~.bmp → ~_?.bin ?=b,r,g)
--------------------------------------------------
24bit BMPファイル(.bmp)をPC-9801のGVRAM(B,G,R)データ
変換します
a.bmpをbmp2pc98.exeに重ねると、a_b.bin、a_g.bin、a_r.binが
生成されます
 
640×400に伸縮させていますので、640:400の比でないと
縦横に伸びます
ペイントなどで640:400に編集して下さい
bmp2pc98.txt(bmp2pc98.exe用、設定ファイル)
255, 255, 255 ; b,r,g
上記値以上の時1、未満の時0として変換します
 
vramload.bas(vramload.basは自由に変更してご使用下さい)
10 INPUT "Fname_?.bin Load fname:", F$
20 DEF SEG = &HA800: BLOAD f$ + "_b.bin"
30 DEF SEG = &HB000: BLOAD f$ + "_r.bin"
40 DEF SEG = &HB800: BLOAD f$ + "_g.bin"

aを入力するとa_b.bin、a_g.bin、a_r.binを
GVRAMに読み込んで表示します
 
------------------------------------------------------
説明 bmp2pc98.exe (~_?.bin ?=b,r,g → ~_?.bmp)
------------------------------------------------------
vramsave.bas(vramsave.basは自由に変更してご使用下さい)
 
10 INPUT "Fname_?.bin,(400,200) Save fname,line:", F$,L
20 DEF SEG = &HA800: BSAVE f$ + "_b.bin", 0, L * 80
30 DEF SEG = &HB000: BSAVE f$ + "_r.bin", 0, L * 80
40 DEF SEG = &HB800: BSAVE f$ + "_g.bin", 0, L * 80
 
a,ライン数を入力するとa_b.bin、a_g.bin、a_r.binを出力します。
ライン数は~400です。
 
a_b.bin、a_g.bin、a_r.binの内どれか1つ、例えばa_b.binを
bmp2pc98.exeに重ねると、ライン数が400に引き伸ばされた
a_b.bmpファイルを出力します。
 
(ファイルは_b,_r,_gの3種類必要なので、モノクロの場合は、
例えば_bをコピーして_r,_gを作ってください。)