If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working at any time.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
User:Trap15/fm7sub
Jump to navigation
Jump to search
Sub RAM Physical Map
Start | End | Detail |
---|---|---|
$0000 | $BFFF | GVRAM |
$C000 | $CFFF | "Console" RAM Bankable on AV40 |
$D000 | $D37F | "Work" RAM |
$D380 | $D3FF | Shared RAM |
$D400 | $D4FF | Memory mapped I/O |
$D500 | $D7FF | RAM AV only |
$D800 | $DFFF | Subsystem CG RAM Other than AV40, this is ROM |
$E000 | $FFFF | Subsystem RAM Other than AV40, this is ROM |
Sub I/O Map
Address mask depends on machine. This table goes from most to least specific. If it's not covered, fall through.
Machine | Mask |
---|---|
AV40EX/AV40SX | $FF |
AV | $3F |
Other | $0F |
Address | R/W | Detail | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
$D400 | R | Keyboard data high bit
| ||||||||||||||||||||||||||||||
$D401 | R | Keyboard data low 8 bits
| ||||||||||||||||||||||||||||||
$D402 | R | Acknowledge IRQ from main CPU | ||||||||||||||||||||||||||||||
$D403 | R | One-shot buzzer | ||||||||||||||||||||||||||||||
$D404 | R | Send attention IRQ to main CPU | ||||||||||||||||||||||||||||||
$D405 | W | Sub-CPU mode
CSCP emulator implies this port interacts with the 400 line board config. | ||||||||||||||||||||||||||||||
$D406 | R | Kanji ROM data left byte | ||||||||||||||||||||||||||||||
W | Kanji ROM address high byte | |||||||||||||||||||||||||||||||
$D407 | R | Kanji ROM data right byte | ||||||||||||||||||||||||||||||
W | Kanji ROM address low byte | |||||||||||||||||||||||||||||||
$D408 | R | Turn display on | ||||||||||||||||||||||||||||||
W | Turn display off (show only black) | |||||||||||||||||||||||||||||||
$D409 | R | Allow access to VRAM When in Slow performance mode, this reduces performance to ~1/3 | ||||||||||||||||||||||||||||||
W | Disable access to VRAM | |||||||||||||||||||||||||||||||
$D40A | R | Clear BUSY flag to main CPU | ||||||||||||||||||||||||||||||
W | Set BUSY flag to main CPU | |||||||||||||||||||||||||||||||
$D40B | RW | 400-line card I/O | ||||||||||||||||||||||||||||||
$D40C | RW | 400-line card I/O | ||||||||||||||||||||||||||||||
$D40D | R | Turn on INS LED on keyboard (?) | ||||||||||||||||||||||||||||||
W | Turn off INS LED on keyboard (?) | |||||||||||||||||||||||||||||||
$D40E | W | VRAM offset address high byte
OA14 only available in 400-line mode. | ||||||||||||||||||||||||||||||
$D40F | W | VRAM offset address low byte
OA4~OA0 only available on L4 and AV when enabled in $D430. | ||||||||||||||||||||||||||||||
$D410 | RW | ALU command register
| ||||||||||||||||||||||||||||||
$D411 | RW | ALU logical color
| ||||||||||||||||||||||||||||||
$D412 | RW | ALU mask register | ||||||||||||||||||||||||||||||
$D413 | RW? | ALU compare registers
| ||||||||||||||||||||||||||||||
$D414 | ||||||||||||||||||||||||||||||||
$D415 | ||||||||||||||||||||||||||||||||
$D416 | ||||||||||||||||||||||||||||||||
$D417 | ||||||||||||||||||||||||||||||||
$D418 | ||||||||||||||||||||||||||||||||
$D419 | ||||||||||||||||||||||||||||||||
$D41A | ||||||||||||||||||||||||||||||||
$D41B | RW | ALU bank disable register
| ||||||||||||||||||||||||||||||
$D41C | W | ALU tile paint register B | ||||||||||||||||||||||||||||||
$D41D | W | ALU tile paint register R | ||||||||||||||||||||||||||||||
$D41E | W | ALU tile paint register G | ||||||||||||||||||||||||||||||
$D420 | W | ALU address offset register high byte
| ||||||||||||||||||||||||||||||
$D421 | W | ALU address offset register low byte
TODO | ||||||||||||||||||||||||||||||
$D422 | W | ALU line style pattern register high byte
| ||||||||||||||||||||||||||||||
$D423 | W | ALU line style pattern register low byte
TODO | ||||||||||||||||||||||||||||||
$D424 | W | ALU X start position high byte
| ||||||||||||||||||||||||||||||
$D425 | W | ALU X start position low byte
TODO | ||||||||||||||||||||||||||||||
$D426 | W | ALU Y start position high byte
| ||||||||||||||||||||||||||||||
$D427 | W | ALU Y start position low byte
TODO | ||||||||||||||||||||||||||||||
$D428 | W | ALU X end position high byte
| ||||||||||||||||||||||||||||||
$D429 | W | ALU X end position low byte
TODO | ||||||||||||||||||||||||||||||
$D42A | W | ALU Y end position high byte
| ||||||||||||||||||||||||||||||
$D42B | W | ALU Y end position low byte
TODO | ||||||||||||||||||||||||||||||
$D42E | W | Sub-RAM bank select (AV40 only)
| ||||||||||||||||||||||||||||||
$D42F | W | VRAM bank select (AV40 only)
VRAM bank select (value 11 is invalid) | ||||||||||||||||||||||||||||||
$D430 | R | Miscellaneous status (AV only)
| ||||||||||||||||||||||||||||||
W | Miscellaneous flags (AV only)
| |||||||||||||||||||||||||||||||
$D431 | RW | Keyboard encoder data register (AV only)
TODO | ||||||||||||||||||||||||||||||
$D432 | R | Keyboard encoder status register (AV only)
| ||||||||||||||||||||||||||||||
$D433 | W | VRAM block select (AV40EX only)
| ||||||||||||||||||||||||||||||
$D438 | W | Window X start position high byte (AV40EX only)
| ||||||||||||||||||||||||||||||
$D439 | W | Window X start position low byte (AV40EX only)
| ||||||||||||||||||||||||||||||
$D43A | W | Window X end position high byte (AV40EX only)
| ||||||||||||||||||||||||||||||
$D43B | W | Window X end position low byte (AV40EX only)
| ||||||||||||||||||||||||||||||
$D43C | W | Window Y start position high byte (AV40EX only)
| ||||||||||||||||||||||||||||||
$D43D | W | Window Y start position low byte (AV40EX only)
| ||||||||||||||||||||||||||||||
$D43E | W | Window Y end position high byte (AV40EX only)
| ||||||||||||||||||||||||||||||
$D43F | W | Window Y end position low byte (AV40EX only)
All of the window position registers are used together. |