BMP(24bit)とPC-9801GVRAM(B,R,G)の相互変換
するプログラムセットを公開しました。
bmp20701.zipとNL-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として変換します
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"
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)
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
------------------------------------------------------
vramsave.bas(vramsave.basは自由に変更してご使用下さい)
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ファイルを出力します。
bmp2pc98.exeに重ねると、ライン数が400に引き伸ばされた
a_b.bmpファイルを出力します。
(ファイルは_b,_r,_gの3種類必要なので、モノクロの場合は、
例えば_bをコピーして_r,_gを作ってください。)
例えば_bをコピーして_r,_gを作ってください。)