SRのVRAMは、構成が結構ヘンなんですが...
気になるツイッターの発言を見つけました。
『SRのグラフィックをBSAVEしたデータをロードする際、SCREENを表示させずに裏側でBLOADさせるとちゃんと画面が表示されるが、SCREENを表示させた状態でBLOADさせると画面がちゃんと表示されない』
実際にやってみました。
SR上でグラフィックデータを作るのが面倒だったので、P6VW上で、以下の手順でデータを作りました。
1)適当なソフトを走らせて、0x0000〜0x7FFFをgetbinコマンドで一度ファイルに落とす。
2)フォーマット済みの.d88を挿入して、モード6で立ち上げて、setbinコマンドでVRAMにデータを戻す。
3)BSAVE "ファイル名",0,&H8000 で、ディスクにセーブする。
上記の.d88を使って、P6VW上で
・SCREEN 2,2,2:BLOAD "ファイル名"
をすると、確かに変なロード状態になります。
で、問題はここからで、
○P6VW
○P6V
○iP6plus
○実機
で、この変なロード状態に差異があります。
実機では、最下行だけにロードデータが表示されるのですが、エミュレータでは、X座標が0〜255の分だけは表示されてしまいます。
何となく予想はついているんですが、まだちゃんと調査できていません。
また、上記の.d88ファイルを使って、
・SCREEN 2,2,2 を実行した後、SCREEN 1 で、BLOAD "ファイル名"
を実行した場合、
○P6VW
○iP6plus
では、正常な画像が表示されるんですが、
○P6V
○実機
では、正常な画像が表示されません。X座標が256〜319のデータがナゼか1行置きに表示されます。
多分、P6VWで作成したデータ自体がおかしいんだと思いますが、これも調査中です。


確かSR実機では、ここを0にしないと0000-7FFFでのリニアなVRAMへの「書き込み」ができなかった気がします。
BASICでグラフィック画面を表示している間はこのビットが1になっていたような。
ポートC8のbit3,4の説明の『ビットマップ』って何だろうと思っていました。
いろいろ調べてみます。
もしそうでしたらあのCP/Mにはお世話になっています。違ったらすいません。