Share hardwareRegisterNames.h between tests and emulator, update emuFeatureRegisterSpec.h

This commit is contained in:
meepingsnesroms
2018-04-25 13:15:49 -07:00
parent e823317905
commit b4e77528cf
4 changed files with 331 additions and 142 deletions

View File

@@ -1,5 +1,6 @@
#ifndef EMU_FEATURE_REGISTERS_SPEC_HEADER
#define EMU_FEATURE_REGISTERS_SPEC_HEADER
/*
All emu feature registers are 32 bit accessing them in any other way will be undefined behavior.
These registers will do nothing it there corresponding feature bit is not set on launch.
@@ -46,7 +47,7 @@ These registers will do nothing it there corresponding feature bit is not set on
/*new system cmds go here*/
#define CMD_IDLE_X_CLK32 0xFFFC/*used to remove idle loops*/
#define CMD_RUN_AS_M68K 0xFFFD/*emulStateP is ignored, EMU_SRC = argsOnStackP, EMU_SIZE = argsSizeAndwantA0, EMU_VALUE = trapOrFunction, on exit EMU_VALUE = Call68KFuncType() return value*/
#define CMD_RUN_AS_ARM 0xFFFE/*EMU_SRC = nativeFuncP, EMU_DST = userDataP, on exit EMU_VALUE = PceNativeCall() return value*/
#define CMD_SET_CYCLE_COST 0xFFFF/*EMU_DST = HLE API number, EMU_VALUE = how many cycles it takes*/
@@ -58,4 +59,5 @@ These registers will do nothing it there corresponding feature bit is not set on
#define EXT_BUTTON_LEFT 0x01000000
#define EXT_BUTTON_RIGHT 0x02000000
#define EXT_BUTTON_SELECT 0x04000000
#endif

View File

@@ -0,0 +1,174 @@
#ifndef DRAGONBALL_VZ_REGISTER_H
#define DRAGONBALL_VZ_REGISTER_H
/*Dragonball VZ Hardware Register Definitions*/
#define HW_REG_ADDR(x) (0xFFFFF000 | (x))
/*SIM - System Integration Module*/
#define SCR 0x000/*System Control Register*/
#define PCR 0x003/*Peripheral control register*/
#define IDR 0x004/*Silicon ID register*/
#define IODCR 0x008/*I/O drive control register*/
/*CS - Chip Select*/
#define CSGBA 0x100/*Chip Select Group A Base Register*/
#define CSGBB 0x102/*Chip Select Group B Base Register*/
#define CSGBC 0x104/*Chip Select Group C Base Register*/
#define CSGBD 0x106/*Chip Select Group D Base Register*/
#define CSUGBA 0x108/*Chip Select Upper Group Address Register*/
#define CSCTRL1 0x10A/*Chip Select Control Register 1*/
#define CSCTRL2 0x10C/*Chip Select Control Register 2*/
#define CSCTRL3 0x150/*Chip Select Control Register 3*/
#define CSA 0x110/*Group A Chip Select Register*/
#define CSB 0x112/*Group B Chip Select Register*/
#define CSC 0x114/*Group C Chip Select Register*/
#define CSD 0x116/*Group D Chip Select Register*/
#define EMUCS 0x118/*Emulation chip-select register*/
/*PLL - Phase Locked Loop*/
#define PLLCR 0x200/*PLL Control Register*/
#define PLLFSR 0x202/*PLL Frequency Select Register*/
#define PCTLR 0x207/*Power Control Register*/
/*INTR - Interrupt controller*/
#define IVR 0x300/*Interrupt Vector Register*/
#define ICR 0x302/*Interrupt Control Register*/
#define IMR 0x304/*Interrupt Mask Register*/
/*Reserved 0x308 Interrupt Wakeup Enable Register On Original Dragonball*/
#define ISR 0x30C/*Interrupt Status Register*/
#define IPR 0x310/*Interrupt Pending Register*/
#define ILCR 0x314/*Interrupt Level Control Register*/
/*PIO - Parallel IO*/
#define PADIR 0x400/*Port A Direction Register*/
#define PADATA 0x401/*Port A Data Register*/
#define PAPUEN 0x402/*Port A Pull-Up Enable Register*/
#define PBDIR 0x408/*Port B Direction Register*/
#define PBDATA 0x409/*Port B Data Register*/
#define PBPUEN 0x40A/*Port B Pull-Up Enable Register*/
#define PBSEL 0x40B/*Port B Select Register*/
#define PCDIR 0x410/*Port C Direction Register*/
#define PCDATA 0x411/*Port C Data Register*/
#define PCPDEN 0x412/*Port C Pull-Down Enable Register*/
#define PCSEL 0x413/*Port C Select Register*/
#define PDDIR 0x418/*Port D Direction Register*/
#define PDDATA 0x419/*Port D Data Register*/
#define PDPUEN 0x41A/*Port D Pull-Up Enable Register*/
#define PDSEL 0x41B/*Port D Select Register*/
#define PDPOL 0x41C/*Port D Polarity Register*/
#define PDIRQEN 0x41D/*Port D IRQ Enable Register*/
#define PDKBEN 0x41E/*Port D Keyboard Enable Register*/
#define PDIRQEG 0x41F/*Port D IRQ Edge Register*/
#define PEDIR 0x420/*Port E Direction Register*/
#define PEDATA 0x421/*Port E Data Register*/
#define PEPUEN 0x422/*Port E Pull-Up Enable Register*/
#define PESEL 0x423/*Port E Select Register*/
#define PFDIR 0x428/*Port F Direction Register*/
#define PFDATA 0x429/*Port F Data Register*/
#define PFPUEN 0x42A/*Port F Pull-Up Enable Register*/
#define PFSEL 0x42B/*Port F Select Register*/
#define PGDIR 0x430/*Port G Direction Register*/
#define PGDATA 0x431/*Port G Data Register*/
#define PGPUEN 0x432/*Port G Pull-Up Enable Register*/
#define PGSEL 0x433/*Port G Select Register*/
#define PJDIR 0x438/*Port J Direction Register*/
#define PJDATA 0x439/*Port J Data Register*/
#define PJPUEN 0x43A/*Port J Pull-Up Enable Register*/
#define PJSEL 0x43B/*Port J Select Register*/
#define PKDIR 0x440/*Port K Direction Register*/
#define PKDATA 0x441/*Port K Data Register*/
#define PKPUEN 0x442/*Port K Pull-Up Enable Register*/
#define PKSEL 0x443/*Port K Select Register*/
#define PMDIR 0x448/*Port M Direction Register*/
#define PMDATA 0x449/*Port M Data Register*/
#define PMPUEN 0x44A/*Port M Pull-Up Enable Register*/
#define PMSEL 0x44B/*Port M Select Register*/
/*PWM - Pulse Width Modulator*/
#define PWMC1 0x500/*PWM Unit 1 Control Register*/
#define PWMS1 0x502/*PWM Unit 1 Sample Register*/
#define PWMP1 0x504/*PWM Unit 1 Period Register*/
#define PWMCNT1 0x505/*PWM Unit 1 Counter Register*/
/*Timer*/
#define TCTL1 0x600/*Timer Unit 1 Control Register*/
#define TPRER1 0x602/*Timer Unit 1 Prescaler Register*/
#define TCMP1 0x604/*Timer Unit 1 Compare Register*/
#define TCN1 0x608/*Timer Unit 1 Counter*/
#define TSTAT1 0x60A/*Timer Unit 1 Status Register*/
#define TCTL2 0x610/*Timer Unit 2 Control Register*/
#define TPRER2 0x612/*Timer Unit 2 Prescaler Register*/
#define TCMP2 0x614/*Timer Unit 2 Compare Register*/
#define TCN2 0x618/*Timer Unit 2 Counter*/
#define TSTAT2 0x61A/*Timer Unit 2 Status Register*/
/*WD - Watchdog*/
#define WATCHDOG 0xB0A/*Watchdog Timer Register*/
/*SPI - Serial Peripheral Interface*/
#define SPIRXD 0x700/*SPI 1 Receive Data Register*/
#define SPITXD 0x702/*SPI 1 Transmit Data Register*/
#define SPICONT1 0x704/*SPI 1 Control/Status Register*/
#define SPIINTCS 0x706/*SPI 1 Interrupt Control/Status Register*/
#define SPITEST 0x708/*SPI 1 Test Register*/
#define SPISPC 0x70A/*SPI 1 Sample Period Control Register*/
#define SPIDATA2 0x800/*SPI 2 Data Register*/
#define SPICONT2 0x802/*SPI 2 Control/Status Register*/
/*UART - Universal Asynchronous Receiver/Transmitter*/
#define USTCNT1 0x900/*UART Unit 1 Status/Control Register*/
#define UBAUD1 0x902/*UART Unit 1 Baud Control Register*/
#define URX1 0x904/*UART Unit 1 RX Register*/
#define UTX1 0x906/*UART Unit 1 TX Register*/
#define UMISC1 0x908/*UART Unit 1 Misc Register*/
#define USTCNT2 0x910/*UART Unit 2 Status/Control Register*/
#define UBAUD2 0x912/*UART Unit 2 Baud Control Register*/
#define URX2 0x914/*UART Unit 2 RX Register*/
#define UTX2 0x916/*UART Unit 2 TX Register*/
#define UMISC2 0x918/*UART Unit 2 Misc Register*/
#define NIPR2 0x91A/*UART Unit 2 Non-Integer Prescaler Register*/
#define HMARK 0x91C/*UART Unit 2 FIFO Half Mark Register*/
/*LCDC - LCD Controller*/
#define LSSA 0xA00/*Screen Starting Address Register*/
#define LVPW 0xA05/*Virtual Page Width Register*/
#define LXMAX 0xA08/*Screen Width Register*/
#define LYMAX 0xA0A/*Screen Height Register*/
#define LCXP 0xA18/*Cursor X Position*/
#define LCYP 0xA1A/*Cursor Y Position*/
#define LCWCH 0xA1C/*Cursor Width & Height Register*/
#define LBLKC 0xA1F/*Blink Control Register*/
#define LPICF 0xA20/*Panel Interface Config Register*/
#define LPXCD 0xA25/*Pixel Clock Divider Register*/
#define LCKCON 0xA27/*Clocking Control Register*/
#define LRRA 0xA28/*LCD Refresh Rate Adjustment Register*/
/*Reserved 0xA2B Octet Terminal Count Register On Original Dragonball*/
#define LFRCM 0xA31/*Frame Rate Control Modulation Register*/
#define LGPMR 0xA33/*Gray Palette Mapping Register*/
#define DMACR 0xA39/*DMA Control Register*/
/*RTC - Real Time Clock*/
#define RTCTIME 0xB00/*RTC Time Of Day Register*/
#define RTCALRM 0xB04/*RTC Alarm Register*/
#define RTCCTL 0xB0C/*RTC Control Register*/
#define RTCISR 0xB0E/*RTC Interrupt Status Register*/
#define RTCIENR 0xB10/*RTC Interrupt Enable Register*/
#define STPWCH 0xB12/*Stopwatch Minutes Register*/
#define DAYR 0xB1A/*RTC Day Count Register*/
/*RAM - (S)DRAM Control*/
#define DRAMMC 0xC00/*DRAM Memory Configuration Register*/
#define DRAMC 0xC02/*DRAM Control Register*/
#define SDCTRL 0xC04/*SDRAM Control Register*/
#endif

View File

@@ -1,5 +1,6 @@
#ifndef EMU_FEATURE_REGISTERS_SPEC_HEADER
#define EMU_FEATURE_REGISTERS_SPEC_HEADER
/*
All emu feature registers are 32 bit accessing them in any other way will be undefined behavior.
These registers will do nothing it there corresponding feature bit is not set on launch.
@@ -46,7 +47,7 @@ These registers will do nothing it there corresponding feature bit is not set on
/*new system cmds go here*/
#define CMD_IDLE_X_CLK32 0xFFFC/*used to remove idle loops*/
#define CMD_RUN_AS_M68K 0xFFFD/*emulStateP is ignored, EMU_SRC = argsOnStackP, EMU_SIZE = argsSizeAndwantA0, EMU_VALUE = trapOrFunction, on exit EMU_VALUE = Call68KFuncType() return value*/
#define CMD_RUN_AS_ARM 0xFFFE/*EMU_SRC = nativeFuncP, EMU_DST = userDataP, on exit EMU_VALUE = PceNativeCall() return value*/
#define CMD_SET_CYCLE_COST 0xFFFF/*EMU_DST = HLE API number, EMU_VALUE = how many cycles it takes*/
@@ -58,4 +59,5 @@ These registers will do nothing it there corresponding feature bit is not set on
#define EXT_BUTTON_LEFT 0x01000000
#define EXT_BUTTON_RIGHT 0x02000000
#define EXT_BUTTON_SELECT 0x04000000
#endif

View File

@@ -1,163 +1,174 @@
#pragma once
//Dragonball VZ Hardware Register Definitions
#ifndef DRAGONBALL_VZ_REGISTER_H
#define DRAGONBALL_VZ_REGISTER_H
//SIM - System Integration Module
#define SCR 0x000//System Control Register
#define PCR 0x003//Peripheral control register
#define IDR 0x004//Silicon ID register
#define IODCR 0x008//I/O drive control register
/*Dragonball VZ Hardware Register Definitions*/
#define HW_REG_ADDR(x) (0xFFFFF000 | (x))
//CS - Chip Select
#define CSGBA 0x100//Chip Select Group A Base Register
#define CSGBB 0x102//Chip Select Group B Base Register
#define CSGBC 0x104//Chip Select Group C Base Register
#define CSGBD 0x106//Chip Select Group D Base Register
#define CSUGBA 0x108//Chip Select Upper Group Address Register
#define CSCTRL1 0x10A//Chip Select Control Register 1
#define CSCTRL2 0x10C//Chip Select Control Register 2
#define CSCTRL3 0x150//Chip Select Control Register 3
#define CSA 0x110//Group A Chip Select Register
#define CSB 0x112//Group B Chip Select Register
#define CSC 0x114//Group C Chip Select Register
#define CSD 0x116//Group D Chip Select Register
#define EMUCS 0x118//Emulation chip-select register
/*SIM - System Integration Module*/
#define SCR 0x000/*System Control Register*/
#define PCR 0x003/*Peripheral control register*/
#define IDR 0x004/*Silicon ID register*/
#define IODCR 0x008/*I/O drive control register*/
//PLL - Phase Locked Loop
#define PLLCR 0x200//PLL Control Register
#define PLLFSR 0x202//PLL Frequency Select Register
#define PCTLR 0x207//Power Control Register
/*CS - Chip Select*/
#define CSGBA 0x100/*Chip Select Group A Base Register*/
#define CSGBB 0x102/*Chip Select Group B Base Register*/
#define CSGBC 0x104/*Chip Select Group C Base Register*/
#define CSGBD 0x106/*Chip Select Group D Base Register*/
#define CSUGBA 0x108/*Chip Select Upper Group Address Register*/
#define CSCTRL1 0x10A/*Chip Select Control Register 1*/
#define CSCTRL2 0x10C/*Chip Select Control Register 2*/
#define CSCTRL3 0x150/*Chip Select Control Register 3*/
#define CSA 0x110/*Group A Chip Select Register*/
#define CSB 0x112/*Group B Chip Select Register*/
#define CSC 0x114/*Group C Chip Select Register*/
#define CSD 0x116/*Group D Chip Select Register*/
#define EMUCS 0x118/*Emulation chip-select register*/
//INTR - Interrupt controller
#define IVR 0x300//Interrupt Vector Register
#define ICR 0x302//Interrupt Control Register
#define IMR 0x304//Interrupt Mask Register
//Reserved 0x308//Interrupt Wakeup Enable Register On Original Dragonball
#define ISR 0x30C//Interrupt Status Register
#define IPR 0x310//Interrupt Pending Register
#define ILCR 0x314//Interrupt Level Control Register
/*PLL - Phase Locked Loop*/
#define PLLCR 0x200/*PLL Control Register*/
#define PLLFSR 0x202/*PLL Frequency Select Register*/
#define PCTLR 0x207/*Power Control Register*/
//PIO - Parallel IO
#define PADIR 0x400//Port A Direction Register
#define PADATA 0x401//Port A Data Register
#define PAPUEN 0x402//Port A Pull-Up Enable Register
/*INTR - Interrupt controller*/
#define IVR 0x300/*Interrupt Vector Register*/
#define ICR 0x302/*Interrupt Control Register*/
#define IMR 0x304/*Interrupt Mask Register*/
/*Reserved 0x308 Interrupt Wakeup Enable Register On Original Dragonball*/
#define ISR 0x30C/*Interrupt Status Register*/
#define IPR 0x310/*Interrupt Pending Register*/
#define ILCR 0x314/*Interrupt Level Control Register*/
#define PBDIR 0x408//Port B Direction Register
#define PBDATA 0x409//Port B Data Register
#define PBPUEN 0x40A//Port B Pull-Up Enable Register
#define PBSEL 0x40B//Port B Select Register
/*PIO - Parallel IO*/
#define PADIR 0x400/*Port A Direction Register*/
#define PADATA 0x401/*Port A Data Register*/
#define PAPUEN 0x402/*Port A Pull-Up Enable Register*/
#define PCDIR 0x410//Port C Direction Register
#define PCDATA 0x411//Port C Data Register
#define PCPDEN 0x412//Port C Pull-Down Enable Register
#define PCSEL 0x413//Port C Select Register
#define PBDIR 0x408/*Port B Direction Register*/
#define PBDATA 0x409/*Port B Data Register*/
#define PBPUEN 0x40A/*Port B Pull-Up Enable Register*/
#define PBSEL 0x40B/*Port B Select Register*/
#define PDDIR 0x418//Port D Direction Register
#define PDDATA 0x419//Port D Data Register
#define PDPUEN 0x41A//Port D Pull-Up Enable Register
#define PDSEL 0x41B//Port D Select Register
#define PDPOL 0x41C//Port D Polarity Register
#define PDIRQEN 0x41D//Port D IRQ Enable Register
#define PDKBEN 0x41E//Port D Keyboard Enable Register
#define PDIRQEG 0x41F//Port D IRQ Edge Register
#define PCDIR 0x410/*Port C Direction Register*/
#define PCDATA 0x411/*Port C Data Register*/
#define PCPDEN 0x412/*Port C Pull-Down Enable Register*/
#define PCSEL 0x413/*Port C Select Register*/
#define PEDIR 0x420//Port E Direction Register
#define PEDATA 0x421//Port E Data Register
#define PEPUEN 0x422//Port E Pull-Up Enable Register
#define PESEL 0x423//Port E Select Register
#define PDDIR 0x418/*Port D Direction Register*/
#define PDDATA 0x419/*Port D Data Register*/
#define PDPUEN 0x41A/*Port D Pull-Up Enable Register*/
#define PDSEL 0x41B/*Port D Select Register*/
#define PDPOL 0x41C/*Port D Polarity Register*/
#define PDIRQEN 0x41D/*Port D IRQ Enable Register*/
#define PDKBEN 0x41E/*Port D Keyboard Enable Register*/
#define PDIRQEG 0x41F/*Port D IRQ Edge Register*/
#define PFDIR 0x428//Port F Direction Register
#define PFDATA 0x429//Port F Data Register
#define PFPUEN 0x42A//Port F Pull-Up Enable Register
#define PFSEL 0x42B//Port F Select Register
#define PEDIR 0x420/*Port E Direction Register*/
#define PEDATA 0x421/*Port E Data Register*/
#define PEPUEN 0x422/*Port E Pull-Up Enable Register*/
#define PESEL 0x423/*Port E Select Register*/
#define PGDIR 0x430//Port G Direction Register
#define PGDATA 0x431//Port G Data Register
#define PGPUEN 0x432//Port G Pull-Up Enable Register
#define PGSEL 0x433//Port G Select Register
#define PFDIR 0x428/*Port F Direction Register*/
#define PFDATA 0x429/*Port F Data Register*/
#define PFPUEN 0x42A/*Port F Pull-Up Enable Register*/
#define PFSEL 0x42B/*Port F Select Register*/
#define PJDIR 0x438//Port J Direction Register
#define PJDATA 0x439//Port J Data Register
#define PJPUEN 0x43A//Port J Pull-Up Enable Register
#define PJSEL 0x43B//Port J Select Register
#define PGDIR 0x430/*Port G Direction Register*/
#define PGDATA 0x431/*Port G Data Register*/
#define PGPUEN 0x432/*Port G Pull-Up Enable Register*/
#define PGSEL 0x433/*Port G Select Register*/
#define PKDIR 0x440//Port K Direction Register
#define PKDATA 0x441//Port K Data Register
#define PKPUEN 0x442//Port K Pull-Up Enable Register
#define PKSEL 0x443//Port K Select Register
#define PJDIR 0x438/*Port J Direction Register*/
#define PJDATA 0x439/*Port J Data Register*/
#define PJPUEN 0x43A/*Port J Pull-Up Enable Register*/
#define PJSEL 0x43B/*Port J Select Register*/
#define PMDIR 0x448//Port M Direction Register
#define PMDATA 0x449//Port M Data Register
#define PMPUEN 0x44A//Port M Pull-Up Enable Register
#define PMSEL 0x44B//Port M Select Register
#define PKDIR 0x440/*Port K Direction Register*/
#define PKDATA 0x441/*Port K Data Register*/
#define PKPUEN 0x442/*Port K Pull-Up Enable Register*/
#define PKSEL 0x443/*Port K Select Register*/
//PWM - Pulse Width Modulator
#define PWMC1 0x500//PWM Unit 1 Control Register
#define PWMS1 0x502//PWM Unit 1 Sample Register
#define PWMP1 0x504//PWM Unit 1 Period Register
#define PWMCNT1 0x505//PWM Unit 1 Counter Register
#define PMDIR 0x448/*Port M Direction Register*/
#define PMDATA 0x449/*Port M Data Register*/
#define PMPUEN 0x44A/*Port M Pull-Up Enable Register*/
#define PMSEL 0x44B/*Port M Select Register*/
//Timer
#define TCTL1 0x600//Timer Unit 1 Control Register
#define TPRER1 0x602//Timer Unit 1 Prescaler Register
#define TCMP1 0x604//Timer Unit 1 Compare Register
#define TCN1 0x608//Timer Unit 1 Counter
#define TSTAT1 0x60A//Timer Unit 1 Status Register
#define TCTL2 0x610//Timer Unit 2 Control Register
#define TPRER2 0x612//Timer Unit 2 Prescaler Register
#define TCMP2 0x614//Timer Unit 2 Compare Register
#define TCN2 0x618//Timer Unit 2 Counter
#define TSTAT2 0x61A//Timer Unit 2 Status Register
/*PWM - Pulse Width Modulator*/
#define PWMC1 0x500/*PWM Unit 1 Control Register*/
#define PWMS1 0x502/*PWM Unit 1 Sample Register*/
#define PWMP1 0x504/*PWM Unit 1 Period Register*/
#define PWMCNT1 0x505/*PWM Unit 1 Counter Register*/
//WD - Watchdog
#define WATCHDOG 0xB0A//Watchdog Timer Register
/*Timer*/
#define TCTL1 0x600/*Timer Unit 1 Control Register*/
#define TPRER1 0x602/*Timer Unit 1 Prescaler Register*/
#define TCMP1 0x604/*Timer Unit 1 Compare Register*/
#define TCN1 0x608/*Timer Unit 1 Counter*/
#define TSTAT1 0x60A/*Timer Unit 1 Status Register*/
#define TCTL2 0x610/*Timer Unit 2 Control Register*/
#define TPRER2 0x612/*Timer Unit 2 Prescaler Register*/
#define TCMP2 0x614/*Timer Unit 2 Compare Register*/
#define TCN2 0x618/*Timer Unit 2 Counter*/
#define TSTAT2 0x61A/*Timer Unit 2 Status Register*/
//SPI - Serial Peripheral Interface
#define SPIDATA2 0x800//SPI Unit 2 Data Register
#define SPICONT2 0x802//SPI Unit 2 Control/Status Register
/*WD - Watchdog*/
#define WATCHDOG 0xB0A/*Watchdog Timer Register*/
//UART - Universal Asynchronous Receiver/Transmitter
#define USTCNT1 0x900//UART Unit 1 Status/Control Register
#define UBAUD1 0x902//UART Unit 1 Baud Control Register
#define URX1 0x904//UART Unit 1 RX Register
#define UTX1 0x906//UART Unit 1 TX Register
#define UMISC1 0x908//UART Unit 1 Misc Register
/*SPI - Serial Peripheral Interface*/
#define SPIRXD 0x700/*SPI 1 Receive Data Register*/
#define SPITXD 0x702/*SPI 1 Transmit Data Register*/
#define SPICONT1 0x704/*SPI 1 Control/Status Register*/
#define SPIINTCS 0x706/*SPI 1 Interrupt Control/Status Register*/
#define SPITEST 0x708/*SPI 1 Test Register*/
#define SPISPC 0x70A/*SPI 1 Sample Period Control Register*/
#define SPIDATA2 0x800/*SPI 2 Data Register*/
#define SPICONT2 0x802/*SPI 2 Control/Status Register*/
#define USTCNT2 0x910//UART Unit 2 Status/Control Register
#define UBAUD2 0x912//UART Unit 2 Baud Control Register
#define URX2 0x914//UART Unit 2 RX Register
#define UTX2 0x916//UART Unit 2 TX Register
#define UMISC2 0x918//UART Unit 2 Misc Register
#define NIPR2 0x91A//UART Unit 2 Non-Integer Prescaler Register
#define HMARK 0x91C//UART Unit 2 FIFO Half Mark Register
/*UART - Universal Asynchronous Receiver/Transmitter*/
#define USTCNT1 0x900/*UART Unit 1 Status/Control Register*/
#define UBAUD1 0x902/*UART Unit 1 Baud Control Register*/
#define URX1 0x904/*UART Unit 1 RX Register*/
#define UTX1 0x906/*UART Unit 1 TX Register*/
#define UMISC1 0x908/*UART Unit 1 Misc Register*/
//LCDC - LCD Controller
#define LSSA 0xA00//Screen Starting Address Register
#define LVPW 0xA05//Virtual Page Width Register
#define LXMAX 0xA08//Screen Width Register
#define LYMAX 0xA0A//Screen Height Register
#define LCXP 0xA18//Cursor X Position
#define LCYP 0xA1A//Cursor Y Position
#define LCWCH 0xA1C//Cursor Width & Height Register
#define LBLKC 0xA1F//Blink Control Register
#define LPICF 0xA20//Panel Interface Config Register
#define LPXCD 0xA25//Pixel Clock Divider Register
#define LCKCON 0xA27//Clocking Control Register
#define LRRA 0xA28//LCD Refresh Rate Adjustment Register
//Reserved 0xA2B//Octet Terminal Count Register On Original Dragonball
#define LFRCM 0xA31//Frame Rate Control Modulation Register
#define LGPMR 0xA33//Gray Palette Mapping Register
#define DMACR 0xA39//DMA Control Register
#define USTCNT2 0x910/*UART Unit 2 Status/Control Register*/
#define UBAUD2 0x912/*UART Unit 2 Baud Control Register*/
#define URX2 0x914/*UART Unit 2 RX Register*/
#define UTX2 0x916/*UART Unit 2 TX Register*/
#define UMISC2 0x918/*UART Unit 2 Misc Register*/
#define NIPR2 0x91A/*UART Unit 2 Non-Integer Prescaler Register*/
#define HMARK 0x91C/*UART Unit 2 FIFO Half Mark Register*/
//RTC - Real Time Clock
#define RTCTIME 0xB00//RTC Time Of Day Register
#define RTCALRM 0xB04//RTC Alarm Register
#define RTCCTL 0xB0C//RTC Control Register
#define RTCISR 0xB0E//RTC Interrupt Status Register
#define RTCIENR 0xB10//RTC Interrupt Enable Register
#define STPWCH 0xB12//Stopwatch Minutes Register
#define DAYR 0xB1A//RTC Day Count Register
/*LCDC - LCD Controller*/
#define LSSA 0xA00/*Screen Starting Address Register*/
#define LVPW 0xA05/*Virtual Page Width Register*/
#define LXMAX 0xA08/*Screen Width Register*/
#define LYMAX 0xA0A/*Screen Height Register*/
#define LCXP 0xA18/*Cursor X Position*/
#define LCYP 0xA1A/*Cursor Y Position*/
#define LCWCH 0xA1C/*Cursor Width & Height Register*/
#define LBLKC 0xA1F/*Blink Control Register*/
#define LPICF 0xA20/*Panel Interface Config Register*/
#define LPXCD 0xA25/*Pixel Clock Divider Register*/
#define LCKCON 0xA27/*Clocking Control Register*/
#define LRRA 0xA28/*LCD Refresh Rate Adjustment Register*/
/*Reserved 0xA2B Octet Terminal Count Register On Original Dragonball*/
#define LFRCM 0xA31/*Frame Rate Control Modulation Register*/
#define LGPMR 0xA33/*Gray Palette Mapping Register*/
#define DMACR 0xA39/*DMA Control Register*/
//RAM - (S)DRAM Control
#define DRAMMC 0xC00//DRAM Memory Configuration Register
#define DRAMC 0xC02//DRAM Control Register
#define SDCTRL 0xC04//SDRAM Control Register
/*RTC - Real Time Clock*/
#define RTCTIME 0xB00/*RTC Time Of Day Register*/
#define RTCALRM 0xB04/*RTC Alarm Register*/
#define RTCCTL 0xB0C/*RTC Control Register*/
#define RTCISR 0xB0E/*RTC Interrupt Status Register*/
#define RTCIENR 0xB10/*RTC Interrupt Enable Register*/
#define STPWCH 0xB12/*Stopwatch Minutes Register*/
#define DAYR 0xB1A/*RTC Day Count Register*/
/*RAM - (S)DRAM Control*/
#define DRAMMC 0xC00/*DRAM Memory Configuration Register*/
#define DRAMC 0xC02/*DRAM Control Register*/
#define SDCTRL 0xC04/*SDRAM Control Register*/
#endif