User:Trap15/fm7sub: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Initial)
 
mNo edit summary
Line 69: Line 69:
  |}
  |}
<!-- ================================================================================ D401 -->
<!-- ================================================================================ D401 -->
|-
! colspan=3 |
|-
|-
! rowspan=1 | $D401
! rowspan=1 | $D401
Line 125: Line 123:
  |}
  |}
CSCP emulator implies this port interacts with the 400 line board config.
CSCP emulator implies this port interacts with the 400 line board config.
<!-- ================================================================================ D406 -->
|-
! colspan=3 |
|-
! rowspan=2 | $D406
| R
| Kanji ROM data left byte
|-
| W
| Kanji ROM address high byte
<!-- ================================================================================ D407 -->
|-
! rowspan=2 | $D407
| R
| Kanji ROM data right byte
|-
| W
| Kanji ROM address low byte
<!-- ================================================================================ D408 -->
|-
! colspan=3 |
|-
! rowspan=2 | $D408
| R
| Turn display on
|-
| W
| Turn display off (show only black)
<!-- ================================================================================ D409 -->
|-
! colspan=3 |
|-
! rowspan=2 | $D409
| R
| Allow access to VRAM<br>When in Slow performance mode, this reduces performance to ~1/3
|-
| W
| Disable access to VRAM
<!-- ================================================================================ D40A -->
|-
! colspan=3 |
|-
! rowspan=2 | $D40A
| R
| Clear BUSY flag to main CPU
|-
| W
| Set BUSY flag to main CPU
<!-- ================================================================================ D40B -->
|-
! colspan=3 |
|-
! rowspan=1 | $D40B
| RW
| 400-line card I/O
<!-- ================================================================================ D40C -->
|-
! rowspan=1 | $D40C
| RW
| 400-line card I/O
<!-- ================================================================================ D40D -->
|-
! colspan=3 |
|-
! rowspan=2 | $D40D
| R
| Turn on INS LED on keyboard (?)
|-
| W
| Turn off INS LED on keyboard (?)
<!-- ================================================================================ D40E -->
|-
! colspan=3 |
|-
! rowspan=1 | $D40E
| W
| VRAM offset address high byte
{| class="wikitable"
|-
! Bit !! 7 !! 6 !! 5 !! 4 !! 3 !! 2 !! 1 !! 0
|-
! Name
| colspan=1 style="background:#eaecf0" |
| OA14
| OA13
| OA12
| OA11
| OA10
| OA9
| OA8
|}
OA14 only available in 400-line mode.
<!-- ================================================================================ D40F -->
|-
! rowspan=1 | $D40F
| W
| VRAM offset address low byte
{| class="wikitable"
|-
! Bit !! 7 !! 6 !! 5 !! 4 !! 3 !! 2 !! 1 !! 0
|-
! Name
| OA7
| OA6
| OA5
| OA4
| OA3
| OA2
| OA1
| OA0
|}
OA4~OA0 only available on L4 and AV when enabled in $D430.<br>
Together with $D40E, determines VRAM access offset.<br>
This offset is used both for the CPU and the display.
<!-- ================================================================================ END -->
<!-- ================================================================================ END -->
|}
|}

Revision as of 16:25, 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
Bit 7 6 5 4 3 2 1 0
Name D8
D8 Keyboard data bit 8
$D401 R Keyboard data low 8 bits
Bit 7 6 5 4 3 2 1 0
Name Keyboard data bits 0~7
$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
Bit 7 6 5 4 3 2 1 0
Name FAST
FAST Set performance mode
Display steals cycles from CPU in Slow
0: Fast
1: Slow

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
Bit 7 6 5 4 3 2 1 0
Name OA14 OA13 OA12 OA11 OA10 OA9 OA8

OA14 only available in 400-line mode.

$D40F W VRAM offset address low byte
Bit 7 6 5 4 3 2 1 0
Name OA7 OA6 OA5 OA4 OA3 OA2 OA1 OA0

OA4~OA0 only available on L4 and AV when enabled in $D430.
Together with $D40E, determines VRAM access offset.
This offset is used both for the CPU and the display.