Last Updated on 2021年12月9日 by kabekin
日立純正のマーク5用 64KB拡張メモリのバンク切替方法を調べておきます。
MP-9764はこんな感じ。
拡張RAMは専用スロットがあるので拡張スロットを消費しないのがありがたです^^
S1の取説によると拡張メモリ用のレジスタは$FFE8のようです。
アドレス | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | レジスタ名 |
$FFE8 | 0 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | システムモードBのとき |
各ビットの割付。
ビット / 値 | 0 | 1 |
D0 | 非選択 * | 標準実装 RAMの$F000~$FEFFを選択 ② |
D1 | 非選択 * | 標準実装 RAMの$FFF0~$FFFFを選択 ③ |
D2 | 固定 | 表示用メモリ領域 $0400~$43FFをバンク切替 |
D3 | 非選択 ** | 拡張RAMの$0000~$7FFFを選択 ④ |
D4 | 非選択 *** | 拡張RAMの$8000~$FFFFを選択 ⑤ |
D5 | 拡張RAMの$0000~$7FFFは書込み専用モード ④ | 拡張RAMの$0000~$7FFFは書込み読書きモード ④ |
D6 | 拡張RAMの$8000~$FFFFは書込み専用モード ⑤ | 拡張RAMの$8000~$FFFFは書込み読書きモード ⑤ |
D7 | 未使用 | 未使用 |
* :拡張RAMのアドレス$8000~$FFFFが非選択のときアドレス$A000~$FEFF②及び$FFF0~$FFFF③の領域は標準実装RAM |
調べること。
拡張メモリにプログラムを置いて実行した場合にそのままI/Oエリアにアクセスできるかどうか?
バンク切替時のプログラムの置き場所
D2はVRAMをバンク切り換えできるということ?
ROMの裏RAMのを読書きモードにするには$FFC0,$FFC1のPIA-BANKを使うの?
$FFE8のD2はちょっと特殊でしてD2を1にすると、$0000~$7FFFが標準実装RAM(D3=0)ならVRAMエリアだけが拡張RAMに、$0000~$7FFFが拡張RAM(D3=1)ならVRAMエリアだけが標準実装RAMになります。
なお、VRAMは常に標準実装RAM側になります。
ROMの裏RAMへの切り替えはPIA Aポートと$FFE8のD0,D1になります。拡張メモリからI/Oエリアにはアクセスできます。
情報ありがとうございます^^
$FFE8のVRAMエリア選択は複雑ですね。
実験しながら動作を理解していこうと思います
ROMの裏RAMはPIAのAポートだけではなく$FFE8のD0,D1の組み合わせも了解しました。
こちらも複雑なので動かしながら整理したいと思います
拡張メモリからI/Oエリアにアクセス可能ということで安心しました。
SasajiさんのサイトのメモリーマップでI/O部分がメモリから抜けていたので、いけるのではと甘いことを考えておりました
調べようと思っていた謎が色々解けました。ありがとうございます^^
私のページにある図はマーク5の取扱説明書を元に作成したものですが、このバンク切換えの説明が理解できずに実機で試行錯誤したことがあり、その調査結果を加筆しているのでもしかすると間違っているかもしれません(^^;
ここはかべきんさんの方で改めて確認して頂けると助かります(^^)
レベル3でFLEX9等のOSを動かすにはバンク切り換えが必質だと思われるので、色々実験しながらブログにアップしていきたいと思います。
また、色々教えてください^^