MB-6892

メモリ

メモリマップ

メモリマップ

バンク切り替え

標準実装RAMのバンク切り替えは、PIA Aポート($FFC0,$FFC1)を使用する。

【注意】BASICからROMエリアをバンク切り替えしないこと。

  "0" "1"
PIA PA1 A000~BFFFをRAM側に選択

ROM側を選択
(初期状態では、PA1,PA2,PA3はすべて"1")

PIA PA2 C000~DFFFをRAM側に選択
PIA PA3 E000~EFFFをRAM側に選択
PIA PA6 A000~BFFFは書き込み専用 PA1="0"のとき、A000~BFFFを読み書き可能モードに設定
PIA PA7 C000~DFFFは書き込み専用 PA2="0"のとき、C000~DFFFを読み書き可能モードに設定
E000~EFFFは書き込み専用 PA3="0"のとき、E000~EFFFを読み書き可能モードに設定

標準実装RAMのバンク切り替え例:

機械語 アセンブリ言語 説明
7F FF C1CLR $FFC1DDRAを指定 (#$00 -> $FFC1)
86 FFLDA #$FFAポートを出力モードにする。(#$FF -> $FFC0)
B7 FF C0STA $FFC0
86 04LDA #$04PRAを指定し、データ書き込み可能にする。(#$04 -> $FFC1)
B7 FF C1STA $FFC1
86 0CLDA #$0CAポートにデータ書き込み→バンク切り替え。(#$0C -> $FFC0)
B7 FF C0STA $FFC0

拡張RAMのバンク切り替えは、BANK-REGレジスタ($FFE8)を使用する。

  "0" "1"
D0 非選択 標準実装RAMのF000~FEFFを選択
D1 非選択 標準実装RAMのFFF0~FFFFを選択
D2 *1 固定 VRAM領域0400~43FFをバンク切り替え
D3 非選択 拡張RAMの0000~7FFFを選択
D4 非選択 拡張RAMの8000~FFFFを選択
D5 拡張RAMの0000~7FFFは書きこみ専用 拡張RAMの0000~7FFFを読み書き可能モードに設定
D6 拡張RAMの8000~FFFFは書きこみ専用 拡張RAMの8000~FFFFを読み書き可能モードに設定

拡張RAMは、ROMや標準RAMより優先される。

*1: $0000~$7FFFが標準RAMの場合、"1"にすると拡張RAMの$0400~$43FFを選択。
$0000~$7FFFが拡張RAMの場合、"1"にすると標準RAMの$0400~$43FFを選択。
なお、拡張RAMの$0400~$43FFはVRAMとして使用できない。

*2: IGMODEREGをセットすると$A000~$A7FFは上記RAMよりIG RAMへの書き込みが優先される。

I/O

PIA (HD46821(MC6821))

アド
レス
データビット R / W 備考
D7D6D5D4D3D2D1D0
FFC0 PA7 PA6 x x PA3 PA2 PA1 x W PIA Aポート
標準RAMバンク切り替え
FFC1 IRQ A2 IRQ A1 CA2制御 DDR A CA1制御 W
FFC2 PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 R / W PIA Bポート
プリンター出力(パラレルポート)
FFC3 IRQ B2 IRQ B1 CB2制御 DDR B CB1制御 R / W

バンク切り替えの詳細はメモリの項を参照。

BANK-REG 拡張RAMバンク切り替え

アド
レス
データビット R / W 備考
D7D6D5D4D3D2D1D0
FFE8 x D6 D5 D4 D3 D2 D1 D0 W 拡張RAMバンク切り替え

バンク切り替えの詳細はメモリの項を参照。

 

 

TOP PAGE