2014年05月07日

SRのVRAMについて

  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で作成したデータ自体がおかしいんだと思いますが、これも調査中です。


posted by えすび at 20:00| Comment(3) | P6解析:画面周り | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
エミュレータではポートC8ビット3の効果が実機と違っているようなので、その辺りの関係でしょうか?
確かSR実機では、ここを0にしないと0000-7FFFでのリニアなVRAMへの「書き込み」ができなかった気がします。
BASICでグラフィック画面を表示している間はこのビットが1になっていたような。
Posted by 秋川 at 2014年05月09日 18:25
 情報ありがとうございます。

 ポートC8のbit3,4の説明の『ビットマップ』って何だろうと思っていました。

 いろいろ調べてみます。

Posted by えすび at 2014年05月09日 19:18
ひょっとして、CP/Mの秋川BIOSの秋川さんですか?
もしそうでしたらあのCP/Mにはお世話になっています。違ったらすいません。
Posted by かかっくん at 2014年06月13日 15:59
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。