IO Registers

From MegaDrive Development Wiki
Jump to: navigation, search
Address Name Read Write
$A10001 REG_VERSION
Bit 7 6 5 4 3 2 1 0
Def 0 : Domestic (Japanese model)

1 : Oversea (US or European model)

0 : NTSC Clock (7.67Mhz)

1 : PAL Clock (7.60Mhz)

0 : Expansion unit connected

1 : Expansion unit not connected

 ? Version number
?
$A10003 REG_DATA1 Read the status of each pin (direction is controller by REG_CTRL1)
Bit 7 6 5 4 3 2 1 0
Def PD7 PD6PD5PD4PD3PD2PD1PD0
Set the status of each pin (ignored for input pins)
Bit 7 6 5 4 3 2 1 0
Def PD7 PD6PD5PD4PD3PD2PD1PD0
$A10005 REG_DATA2 Status of each pin (direction is controller by REG_CTRL2)
Bit 7 6 5 4 3 2 1 0
Def PD7 PD6PD5PD4PD3PD2PD1PD0
Set the status of each pin (ignored for input pins)
Bit 7 6 5 4 3 2 1 0
Def PD7 PD6PD5PD4PD3PD2PD1PD0
$A10007 REG_DATA3 Status of each pin (direction is controller by REG_CTRL3)
Bit 7 6 5 4 3 2 1 0
Def PD7 PD6PD5PD4PD3PD2PD1PD0
Set the status of each pin (ignored for input pins)
Bit 7 6 5 4 3 2 1 0
Def PD7 PD6PD5PD4PD3PD2PD1PD0
$A10009 REG_CTRL1 Read the direction of the pins
Bit 7 6 5 4 3 2 1 0
Def INT PC6PC5PC4PC3PC2PC1PC0
Select the direction of the pins
Bit 7 6 5 4 3 2 1 0
Def INT

0 : TH-INT Prohibited

1 : TH-INT Allowed

PC6

0 : input

1 : output

PC5

0 : input

1 : output

PC4

0 : input

1 : output

PC3

0 : input

1 : output

PC2

0 : input

1 : output

PC1

0 : input

1 : output

PC0

0 : input

1 : output

$A1000B REG_CTRL2 Read the direction of the pins
Bit 7 6 5 4 3 2 1 0
Def INT PC6PC5PC4PC3PC2PC1PC0
Select the direction of the pin
Bit 7 6 5 4 3 2 1 0
Def INT

0 : TH-INT Prohibited

1 : TH-INT Allowed

PC6

0 : input

1 : output

PC5

0 : input

1 : output

PC4

0 : input

1 : output

PC3

0 : input

1 : output

PC2

0 : input

1 : output

PC1

0 : input

1 : output

PC0

0 : input

1 : output

$A1000D REG_CTRL3 Read the direction of the pins
Bit 7 6 5 4 3 2 1 0
Def INT PC6PC5PC4PC3PC2PC1PC0
Select the direction of the pin
Bit 7 6 5 4 3 2 1 0
Def INT

0 : TH-INT Prohibited

1 : TH-INT Allowed

PC6

0 : input

1 : output

PC5

0 : input

1 : output

PC4

0 : input

1 : output

PC3

0 : input

1 : output

PC2

0 : input

1 : output

PC1

0 : input

1 : output

PC0

0 : input

1 : output

$A1000F REG_TXDATA1
$A10011 REG_RXDATA1
$A10013 REG_S_CTRL1
Bit 7 6 5 4 3 2 1 0
Def ? 0 : OK

1 : Rxd Error

0 : OK

1 : Rxd Ready

0 : OK

1 : TxdFull

Bit 7 6 5 4 3 2 1 0
Def 0: 4800 bps

1: 2400 bps

2: 1200 bps

3: 300 bps

0 : Parallel mode

1 : Serial in

0 : Parallel mode

1 : Serial out

0 : Rxd Ready - Interrupt Prohibited

1 : Rxd Ready - Interrupt Allowed

?
$A10015 REG_TXDATA2
$A10017 REG_RXDATA2
$A10019 REG_S_CTRL2
Bit 7 6 5 4 3 2 1 0
Def ? 0 : OK

1 : Rxd Error

0 : OK

1 : Rxd Ready

0 : OK

1 : TxdFull

Bit 7 6 5 4 3 2 1 0
Def 0: 4800 bps

1: 2400 bps

2: 1200 bps

3: 300 bps

0 : Parallel mode

1 : Serial in

0 : Parallel mode

1 : Serial out

0 : Rxd Ready - Interrupt Prohibited

1 : Rxd Ready - Interrupt Allowed

?
$A1001B REG_TXDATA3
$A1001D REG_RXDATA3
$A1001F REG_S_CTRL3
Bit 7 6 5 4 3 2 1 0
Def ? 0 : OK

1 : Rxd Error

0 : OK

1 : Rxd Ready

0 : OK

1 : TxdFull

Bit 7 6 5 4 3 2 1 0
Def 0: 4800 bps

1: 2400 bps

2: 1200 bps

3: 300 bps

0 : Parallel mode

1 : Serial in

0 : Parallel mode

1 : Serial out

0 : Rxd Ready - Interrupt Prohibited

1 : Rxd Ready - Interrupt Allowed

?
$A14000 REG_LOCK  ? Writing 'SEGA' (0x53454741) unlock the VDP.

Writing something else lock the VDP.

$A14101 REG_TMSS  ?
Bit 7 6 5 4 3 2 1 0
Def ? 0 : Disable cartridge and enable TMSS rom

1 : Disable TMSS rom and enable cartridge