アカウント名:
パスワード:
あれは、6809を2つでメインと入出力でやってた。
FM7/8で6809二個にしたのは、ビデオ回路の関係と、アドレス領域の問題から。
6809はダイナミックデバイスなんで、命令実行中のDMAは16クロックに一回CPUがバス権を強制的に取り戻す仕様。だから、VRAMリフレッシュ中はCPUを完全に停止させる必要が有った(HALT信号はCPUが現命令を完了するまでバスを開放しない)。VRAMアクセスフラグを有効にすると平均CPU速度が1/3に低下。これじゃ、メインには使えないよね。
ベーシックマスターレベル3は、VRAMをページモードで二回連続読み出しする事でCPUの空きサイクルを利用したけど、これはクロックが1MHzだから出来た話で
PC-8001は画面表示のためのDMA止めたら倍ぐらいの速さになってたような。
MZ-80K/CはVRAMアクセスしてもちらつかないタイミングをソフトウェアでチェックしてたので、CPUの速度低下は無かった。V-SYNC無視して書き込むと画面がチラチラと…。
MZ-80B以降とかX1にはそんな問題は無かった。
PC-8001でのCRTCへのDMAは、確か30%程度しか喰ってなかった筈。でも、ソフトウェアタイマを使うには十分弊害で、結果、カセットI/Fはハードウェア復号のUART経由だったし、フロッピーはインテリジェント方式を使う以外の選択肢が無かった。(御陰で後にFDアクセスを並列化出来たのだが)
DMAで劇遅になったのはPC-6001。表示期間中全部CPUを停止してたから、1/3位の速度になってた。同じCRTCを使ったタンディCoCoは、当然の様にサイクルスチールで速度低下は無し。ま、その為のCPU変更だし、専用アドレスジェネレータ込みのDRAMコントローラを作って貰ってたりしてたが。実は、サイクルタイムをチョイ無視すれば、ウェイトを足すだけでZ-80でもサイクルスチール出来たんだけど、これを採用した機種は無かったかな?
ちなみに、FM7/8ではVRAMアクセスフラグをOFFにしても、画面リフレッシュが優先されるんで、チラつかない代わりに画面データがドンドン消える素敵仕様だったりする。
Z-80はスタティックデバイスだから、水平表示期間丸ごとウェイトを掛けても正常に動作するんだよね。DRAMリフレッシュは、4MHz駆動だと倍以上過剰だから、半分止めても問題無いし。でも、表示期間中にVRAMアクセスするとCPUがガッツリ止まるから、帰線期間中にバーストで書き込むと表示をぐっと高速化出来た。当時のゲーム高速化のコツだったね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
FM7 (スコア:2)
あれは、6809を2つでメインと入出力でやってた。
Re: (スコア:2)
FM7/8で6809二個にしたのは、ビデオ回路の関係と、アドレス領域の問題から。
6809はダイナミックデバイスなんで、命令実行中のDMAは16クロックに一回CPUがバス権を強制的に取り戻す仕様。だから、VRAMリフレッシュ中はCPUを完全に停止させる必要が有った(HALT信号はCPUが現命令を完了するまでバスを開放しない)。VRAMアクセスフラグを有効にすると平均CPU速度が1/3に低下。これじゃ、メインには使えないよね。
ベーシックマスターレベル3は、VRAMをページモードで二回連続読み出しする事でCPUの空きサイクルを利用したけど、これはクロックが1MHzだから出来た話で
-- Buy It When You Found It --
Re: (スコア:0)
PC-8001は画面表示のためのDMA止めたら倍ぐらいの速さになってたような。
MZ-80K/CはVRAMアクセスしてもちらつかないタイミングをソフトウェアでチェックしてたので、
CPUの速度低下は無かった。
V-SYNC無視して書き込むと画面がチラチラと…。
MZ-80B以降とかX1にはそんな問題は無かった。
Re:FM7 (スコア:1)
PC-8001でのCRTCへのDMAは、確か30%程度しか喰ってなかった筈。
でも、ソフトウェアタイマを使うには十分弊害で、結果、カセットI/Fはハードウェア復号のUART経由だったし、フロッピーはインテリジェント方式を使う以外の選択肢が無かった。(御陰で後にFDアクセスを並列化出来たのだが)
DMAで劇遅になったのはPC-6001。表示期間中全部CPUを停止してたから、1/3位の速度になってた。同じCRTCを使ったタンディCoCoは、当然の様にサイクルスチールで速度低下は無し。ま、その為のCPU変更だし、専用アドレスジェネレータ込みのDRAMコントローラを作って貰ってたりしてたが。
実は、サイクルタイムをチョイ無視すれば、ウェイトを足すだけでZ-80でもサイクルスチール出来たんだけど、これを採用した機種は無かったかな?
ちなみに、FM7/8ではVRAMアクセスフラグをOFFにしても、画面リフレッシュが優先されるんで、チラつかない代わりに画面データがドンドン消える素敵仕様だったりする。
Z-80はスタティックデバイスだから、水平表示期間丸ごとウェイトを掛けても正常に動作するんだよね。DRAMリフレッシュは、4MHz駆動だと倍以上過剰だから、半分止めても問題無いし。
でも、表示期間中にVRAMアクセスするとCPUがガッツリ止まるから、帰線期間中にバーストで書き込むと表示をぐっと高速化出来た。当時のゲーム高速化のコツだったね。
-- Buy It When You Found It --