Manuke Station BBS

RSS
投稿者 題名 内容 URL

4th ROMアクセス

投稿者: Manuke 投稿日:
4th ROMアクセス


To PC88さん
> 今、頑張って、自力でROMの吸い出しに挑戦をしています。
> ところで、4th ROMの吸い出しを行うのにバンク切り替えが必要であるとのことなので
> すが、バンク切り替えはどのようにすればよいのでしょうか?

4th ROM 1のアクセスは、I/Oポート71Hへ0FEHを出力するだけです。
ポートへ0FEHを出力した瞬間に、メモリアドレス6000H~7FFFHの範囲が4th ROMのものへ
と切り替わります。
(SR以降の機種では、標準4th ROMが4つ搭載されていますので更にバンク切り替えの指
定も必要になりますが、無印/mkIIでは関係なし)

ただ、ROMのバンク切り替えはBASICからは行えませんので、基本的に機械語でコードを
記述する必要があります。
また、切り替え中は割り込みが発生しないよう割り込み禁止をかけておくこと、アクセ
スが終了した後はバンク切り替えを元に戻すことにご注意ください。

ざっと書いてしまうと、こんな感じです。
(Z80ザイログ表記。ちゃんと実行を確認してません)

        DI                ; 割り込み禁止
        IN      A, (71H)  ; 現在の71Hの値を取得
        LD      B, A      ; Bレジスタへ保管
        LD      A, 0FEH   ; 4th ROM 1切り替え値をセット
        OUT     (71H), A  ; 4th ROM 1へバンク切り替え

        ; 4th ROMアクセス

        LD      A, B      ; Bレジスタから以前の値を取得
        OUT     (71H), A  ; メインROM切り替え
        EI                ; 割り込み許可