If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
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. |