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: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 237: | Line 237: | ||
Together with $D40E, determines VRAM access offset.<br> | Together with $D40E, determines VRAM access offset.<br> | ||
This offset is used both for the CPU and the display. | This offset is used both for the CPU and the display. | ||
<!-- ================================================================================ D410 --> | |||
|- | |||
! rowspan=1 | $D410 | |||
| RW | |||
| ALU command register | |||
{| class="wikitable" | |||
|- | |||
! Bit !! 7 !! 6 !! 5 !! 4 !! 3 !! 2 !! 1 !! 0 | |||
|- | |||
! Name | |||
| EST | |||
| M1 | |||
| M2 | |||
| colspan=2 style="background:#eaecf0" | | |||
| colspan=3 | ALGO | |||
|} | |||
{| class="wikitable" | |||
|- | |||
! EST | |||
| Process ALU command | |||
| 0: Do not process<br/>1: Process | |||
|- | |||
! M1 | |||
| ? TODO | |||
| ? TODO | |||
|- | |||
! M2 | |||
| ? TODO | |||
| 0: Write with イコール<br/>1: Write with NOTイコール | |||
|- | |||
! ALGO | |||
| ALU math algorithm | |||
| 000: PSET<br>001: Don't Use<br>010: OR<br>011: AND<br>100: XOR<br>101: NOT<br>110: TILEPAINT<br>111: COMPARE | |||
|} | |||
<!-- ================================================================================ D411 --> | |||
|- | |||
! rowspan=1 | $D411 | |||
| RW | |||
| ALU logical color | |||
{| class="wikitable" | |||
|- | |||
! Bit !! 7 !! 6 !! 5 !! 4 !! 3 !! 2 !! 1 !! 0 | |||
|- | |||
! Name | |||
| colspan=5 style="background:#eaecf0" | | |||
| G | |||
| R | |||
| B | |||
|} | |||
<!-- ================================================================================ D412 --> | |||
|- | |||
! rowspan=1 | $D412 | |||
| RW | |||
| ALU mask register | |||
<!-- ================================================================================ D413 --> | |||
|- | |||
! rowspan=1 | $D413 | |||
| rowspan=8 | RW? | |||
| rowspan=8 | ALU compare registers | |||
{| class="wikitable" | |||
|- | |||
! Bit !! 7 !! 6 !! 5 !! 4 !! 3 !! 2 !! 1 !! 0 | |||
|- | |||
! Name | |||
| MASK | |||
| colspan=4 style="background:#eaecf0" | | |||
| G | |||
| R | |||
| B | |||
|} | |||
<!-- ================================================================================ D414 --> | |||
|- | |||
! rowspan=1 | $D414 | |||
<!-- ================================================================================ D415 --> | |||
|- | |||
! rowspan=1 | $D415 | |||
<!-- ================================================================================ D416 --> | |||
|- | |||
! rowspan=1 | $D416 | |||
<!-- ================================================================================ D417 --> | |||
|- | |||
! rowspan=1 | $D417 | |||
<!-- ================================================================================ D418 --> | |||
|- | |||
! rowspan=1 | $D418 | |||
<!-- ================================================================================ D419 --> | |||
|- | |||
! rowspan=1 | $D419 | |||
<!-- ================================================================================ D41A --> | |||
|- | |||
! rowspan=1 | $D41A | |||
<!-- ================================================================================ D41B --> | |||
|- | |||
! rowspan=1 | $D41B | |||
| RW | |||
| ALU bank disable register | |||
{| class="wikitable" | |||
|- | |||
! Bit !! 7 !! 6 !! 5 !! 4 !! 3 !! 2 !! 1 !! 0 | |||
|- | |||
! Name | |||
| colspan=4 style="background:#eaecf0" | | |||
| 1 | |||
| G | |||
| R | |||
| B | |||
|} | |||
<!-- ================================================================================ D41C --> | |||
|- | |||
! rowspan=1 | $D41C | |||
| W | |||
| Tile paint register B | |||
<!-- ================================================================================ D41D --> | |||
|- | |||
! rowspan=1 | $D41D | |||
| W | |||
| Tile paint register R | |||
<!-- ================================================================================ D41E --> | |||
|- | |||
! rowspan=1 | $D41E | |||
| W | |||
| Tile paint register G | |||
<!-- ================================================================================ END --> | <!-- ================================================================================ END --> | ||
|} | |} |
Revision as of 16:58, 9 February 2024
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 | Tile paint register B | ||||||||||||||||||||||||||||||
$D41D | W | Tile paint register R | ||||||||||||||||||||||||||||||
$D41E | W | Tile paint register G |