2012年12月01日

画面描画期間検出(6)

  以前に作成した画面描画期間の検出プログラムを改定しました。

vsync2_2.zip


  拡張RAMが必要で、ページ4です。

  前と同じですが、画面切り換えを使っている関係で、mk2、66では動作しません。


  方法ですが、基本は同じです。

・画面描画期間の検出の方法(基本)

 画面描画期間の時だけ止まっているCPU で、その止まっている期間を検出するためには、CPU の外部に基準の時計が必要になります。
 SUB-CPU がつながっている8255 のポートを使用します。

 特定ポートにデータを書き込むと、4MHz で60〜80クロックぐらいかかる処理があります。


 これを使い、画面描画期間を判定します。

 データ書き込み
 ↓
 4MHz で45クロックぐらい待つ
 ↓
 処理が完了しているかを判断する


 画面描画期間以外:処理が完了しない。
 画面描画期間:CPU が途中で止まっているため、実際には45クロック以上の時間が経っており、処理が完了する。

 で判断します。


・画面描画期間の検出の方法(改定)

 上記の基本の検出を2度行います。その際、一定期間(具体的には96クロック)空けます。
 こうすると、画面描画をしている時は、1度目か2度目の検出で検出できるようになります。

 ただし、検出には3走査線分の時間がかかります。

 初代P6では、1走査線は 910クロック@14M(253クロック@4M)分の時間で、CPU が動作できる期間はその内の、296クロック@14M(83クロック@4M)ぐらいです。
 また、mk2、66では、1走査線は 912クロック@14M(255クロック@4M)分の時間で、CPU が動作できる期間はその内の、304クロック@14M(85クロック@4M)です。

 この走査線とCPUが動作できる/動作できない期間はほぼ一定間隔なので、検出期間をいい具合にすると、1度目の検出では引っ掛からなかったものを2度目の検出で引っ掛けられます。

 図を描いて、タイミングを計算しないと、すごく分かりにくいですが...



 ロジアナで、プログラムを動作中のものを見ましたが、多分ちゃんと動いているんじゃなかと思います。







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

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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


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

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