メモリ
メモリマップ

バンク切り替え
標準実装RAMのバンク切り替えは、PIA Aポート($FFC0,$FFC1)を使用する。
【注意】BASICからROMエリアをバンク切り替えしないこと。
| "0" | "1" | |
|---|---|---|
| PIA PA1 | A000~BFFFをRAM側に選択 | ROM側を選択 |
| 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 C1 | CLR $FFC1 | DDRAを指定 (#$00 -> $FFC1) |
| 86 FF | LDA #$FF | Aポートを出力モードにする。(#$FF -> $FFC0) |
| B7 FF C0 | STA $FFC0 | |
| 86 04 | LDA #$04 | PRAを指定し、データ書き込み可能にする。(#$04 -> $FFC1) |
| B7 FF C1 | STA $FFC1 | |
| 86 0C | LDA #$0C | Aポートにデータ書き込み→バンク切り替え。(#$0C -> $FFC0) |
| B7 FF C0 | STA $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 | 備考 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
| 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 | 備考 | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |||
| FFE8 | x | D6 | D5 | D4 | D3 | D2 | D1 | D0 | W | 拡張RAMバンク切り替え |
バンク切り替えの詳細はメモリの項を参照。