2018年06月17日

SR画面周り(8)

  P6月間企画(その17)

  SRモードでの画面周りについて、の続きです。

  今回は、横640ドットのグラフィックモードについて、その2です。


○グラフィックモード640×200/640x204ドット

4)ビットマップモード

 『Y座標をポート0xCE、X座標をアドレスで指定』する事で、指定のXY座標の位置にドットを描く』のは、横320ドットの場合ですが、この回路をそのまま横640ドットの場合にも使っているために、分かりにくい動作になっています。

 VRAMアドレスを示す時に4バイト単位で見ましたが、その4バイト単位で同じ回路を使って、横320ドットと横640ドットの表示がされているようです。


180617_01_ビットマップアクセス320.png

 横320ドットの場合、上図の1ドット単位でアクセスが出来るように、ビットマップモード用変換回路が動作します。
 X座標とY座標を個別に指定し、図内の太線四角枠が一度に指定するドットになります。横320ドットの場合は、一度に指定するドットは1ドットです。


 同じ回路を使うため、横640ドットのビットマップモードで、一度に指定するドットは下図のようになります。

180617_01_ビットマップアクセス640.png


 図内の太線四角枠が一度に指定するドットになります。横640ドットの場合は、一度に指定するドットは、B/Rプレーンのいずれかの4ドットです。
 つまり、2回指定しないと4ドットの色を全部決める事はできませんし、1ドット単位で設定する事はできません。

 さらに、枠内の(0,0)などは指定する時のXY座標です。Y座標は実際のY座標と一致するのですが、X座標は一致しません。

 実際の座標(x,y)、指定座標(X,Y) とすると、以下の通りになります。

 X,Y = 0,0 の時、x = 4〜 7, y = 0 のプレーンB
 X,Y = 1,0 の時、x = 0〜 3, y = 0 のプレーンB
 X,Y = 2,0 の時、x = 4〜 7, y = 0 のプレーンR
 X,Y = 3,0 の時、x = 0〜 3, y = 0 のプレーンR
 X,Y = 0,1 の時、x = 4〜 7, y = 1 のプレーンB
 X,Y = 1,1 の時、x = 0〜 3, y = 1 のプレーンB
 X,Y = 2,1 の時、x = 4〜 7, y = 1 のプレーンR
 X,Y = 3,1 の時、x = 0〜 3, y = 1 のプレーンR

 X,Y = 4,0 の時、x = 12〜15, y = 0 のプレーンB
 X,Y = 5,0 の時、x = 8〜11, y = 0 のプレーンB
 X,Y = 6,0 の時、x = 12〜15, y = 0 のプレーンR
 X,Y = 7,0 の時、x = 8〜11, y = 0 のプレーンR
 X,Y = 4,1 の時、x = 12〜15, y = 1 のプレーンB
 X,Y = 5,1 の時、x = 8〜11, y = 1 のプレーンB
 X,Y = 6,1 の時、x = 12〜15, y = 1 のプレーンR
 X,Y = 7,1 の時、x = 8〜11, y = 1 のプレーンR
  :
 以下同様です。

 一般化すると、

 指定座標(X,Y) (ただし、X=4*n n=0,1,2,…,159)の時

 X+0,Y の時、x = X*2+4 〜X*2+7, y = Y のプレーンB
 X+1,Y の時、x = X*2+0 〜X*2+3, y = Y のプレーンB
 X+2,Y の時、x = X*2+4 〜X*2+7, y = Y のプレーンR
 X+3,Y の時、x = X*2+0 〜X*2+3, y = Y のプレーンR

 となります。

 横640ドットなのですが、実際にX座標に指定する値は、0〜319という事になります。


5)ビットマップモードで
・Y座標の設定を204以上にした場合はどうなる?
・X座標の設定を320以上にした場合はどうなる?

 横320ドットと同じです。


6)ビットマップモードで
・ポート0xC8のビット3でイネーブル/ディセーブルの切換だけど、ビット4のビットマップページ指定との関係は?
・メモリ割り当てと同時に使うとどうなる?
・そもそもビットマップモードとは?

 横320ドットと同じです。


7)それぞれのモードの利点

 基本的に横320ドットと同じなのですが、ビットマップモードの利点である『ドット単位で扱える』事がなくなっており、さらに、直接アクセスモードの方が分かりやすくなっています。

 あくまでも横320ドットが基本で、横640ドットは付け足しのような印象です。


posted by えすび at 21:00| Comment(0) | P6解析:画面周り | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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


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