diff options
author | 2011-01-28 15:06:49 +0000 | |
---|---|---|
committer | 2011-01-28 15:06:49 +0000 | |
commit | 554823374ba295a069173874eeb2a1d6c787a0ba (patch) | |
tree | 67278eea5dc4d7622a884bf2b8986ab4a928485b /src/emu/cpu/adsp2100 | |
parent | 10ad09bac8b399bd817238f9c09f17a0f84615b6 (diff) |
C++-ified the DSP32 code so Andrew has something modern to work from.
Diffstat (limited to 'src/emu/cpu/adsp2100')
-rw-r--r-- | src/emu/cpu/adsp2100/adsp2100.c | 3 | ||||
-rw-r--r-- | src/emu/cpu/adsp2100/adsp2100.h | 274 |
2 files changed, 160 insertions, 117 deletions
diff --git a/src/emu/cpu/adsp2100/adsp2100.c b/src/emu/cpu/adsp2100/adsp2100.c index 8442de2287d..d1f83e127fa 100644 --- a/src/emu/cpu/adsp2100/adsp2100.c +++ b/src/emu/cpu/adsp2100/adsp2100.c @@ -168,6 +168,9 @@ adsp21xx_device_config::adsp21xx_device_config(const machine_config &mconfig, de m_data_config("data", ENDIANNESS_LITTLE, 16, 14, -1), m_chip_type(chiptype) { + m_sport_rx_callback = NULL; + m_sport_tx_callback = NULL; + m_timer_fired = NULL; } adsp2100_device_config::adsp2100_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock) diff --git a/src/emu/cpu/adsp2100/adsp2100.h b/src/emu/cpu/adsp2100/adsp2100.h index f3f4ac813b1..afbf67e9623 100644 --- a/src/emu/cpu/adsp2100/adsp2100.h +++ b/src/emu/cpu/adsp2100/adsp2100.h @@ -52,6 +52,163 @@ //************************************************************************** +// CONSTANTS +//************************************************************************** + +// ADSP-2100 IRQs +const int ADSP2100_IRQ0 = 0; // IRQ0 +const int ADSP2100_SPORT1_RX = 0; // SPORT1 receive IRQ +const int ADSP2100_IRQ1 = 1; // IRQ1 +const int ADSP2100_SPORT1_TX = 1; // SPORT1 transmit IRQ +const int ADSP2100_IRQ2 = 2; // IRQ2 +const int ADSP2100_IRQ3 = 3; // IRQ3 + +// ADSP-2101 IRQs +const int ADSP2101_IRQ0 = 0; // IRQ0 +const int ADSP2101_SPORT1_RX = 0; // SPORT1 receive IRQ +const int ADSP2101_IRQ1 = 1; // IRQ1 +const int ADSP2101_SPORT1_TX = 1; // SPORT1 transmit IRQ +const int ADSP2101_IRQ2 = 2; // IRQ2 +const int ADSP2101_SPORT0_RX = 3; // SPORT0 receive IRQ +const int ADSP2101_SPORT0_TX = 4; // SPORT0 transmit IRQ +const int ADSP2101_TIMER = 5; // internal timer IRQ + +// ADSP-2104 IRQs +const int ADSP2104_IRQ0 = 0; // IRQ0 +const int ADSP2104_SPORT1_RX = 0; // SPORT1 receive IRQ +const int ADSP2104_IRQ1 = 1; // IRQ1 +const int ADSP2104_SPORT1_TX = 1; // SPORT1 transmit IRQ +const int ADSP2104_IRQ2 = 2; // IRQ2 +const int ADSP2104_SPORT0_RX = 3; // SPORT0 receive IRQ +const int ADSP2104_SPORT0_TX = 4; // SPORT0 transmit IRQ +const int ADSP2104_TIMER = 5; // internal timer IRQ + +// ADSP-2105 IRQs +const int ADSP2105_IRQ0 = 0; // IRQ0 +const int ADSP2105_SPORT1_RX = 0; // SPORT1 receive IRQ +const int ADSP2105_IRQ1 = 1; // IRQ1 +const int ADSP2105_SPORT1_TX = 1; // SPORT1 transmit IRQ +const int ADSP2105_IRQ2 = 2; // IRQ2 +const int ADSP2105_TIMER = 5; // internal timer IRQ + +// ADSP-2115 IRQs +const int ADSP2115_IRQ0 = 0; // IRQ0 +const int ADSP2115_SPORT1_RX = 0; // SPORT1 receive IRQ +const int ADSP2115_IRQ1 = 1; // IRQ1 +const int ADSP2115_SPORT1_TX = 1; // SPORT1 transmit IRQ +const int ADSP2115_IRQ2 = 2; // IRQ2 +const int ADSP2115_SPORT0_RX = 3; // SPORT0 receive IRQ +const int ADSP2115_SPORT0_TX = 4; // SPORT0 transmit IRQ +const int ADSP2115_TIMER = 5; // internal timer IRQ + +// ADSP-2181 IRQs +const int ADSP2181_IRQ0 = 0; // IRQ0 +const int ADSP2181_SPORT1_RX = 0; // SPORT1 receive IRQ +const int ADSP2181_IRQ1 = 1; // IRQ1 +const int ADSP2181_SPORT1_TX = 1; // SPORT1 transmit IRQ +const int ADSP2181_IRQ2 = 2; // IRQ2 +const int ADSP2181_SPORT0_RX = 3; // SPORT0 receive IRQ +const int ADSP2181_SPORT0_TX = 4; // SPORT0 transmit IRQ +const int ADSP2181_TIMER = 5; // internal timer IRQ +const int ADSP2181_IRQE = 6; // IRQE +const int ADSP2181_IRQL1 = 7; // IRQL1 +const int ADSP2181_IRQL2 = 8; // IRQL2 + +// register enumeration +enum +{ + ADSP2100_PC, + ADSP2100_AX0, + ADSP2100_AX1, + ADSP2100_AY0, + ADSP2100_AY1, + ADSP2100_AR, + ADSP2100_AF, + ADSP2100_MX0, + ADSP2100_MX1, + ADSP2100_MY0, + ADSP2100_MY1, + ADSP2100_MR0, + ADSP2100_MR1, + ADSP2100_MR2, + ADSP2100_MF, + ADSP2100_SI, + ADSP2100_SE, + ADSP2100_SB, + ADSP2100_SR0, + ADSP2100_SR1, + ADSP2100_I0, + ADSP2100_I1, + ADSP2100_I2, + ADSP2100_I3, + ADSP2100_I4, + ADSP2100_I5, + ADSP2100_I6, + ADSP2100_I7, + ADSP2100_L0, + ADSP2100_L1, + ADSP2100_L2, + ADSP2100_L3, + ADSP2100_L4, + ADSP2100_L5, + ADSP2100_L6, + ADSP2100_L7, + ADSP2100_M0, + ADSP2100_M1, + ADSP2100_M2, + ADSP2100_M3, + ADSP2100_M4, + ADSP2100_M5, + ADSP2100_M6, + ADSP2100_M7, + ADSP2100_PX, + ADSP2100_CNTR, + ADSP2100_ASTAT, + ADSP2100_SSTAT, + ADSP2100_MSTAT, + ADSP2100_PCSP, + ADSP2100_CNTRSP, + ADSP2100_STATSP, + ADSP2100_LOOPSP, + ADSP2100_IMASK, + ADSP2100_ICNTL, + ADSP2100_IRQSTATE0, + ADSP2100_IRQSTATE1, + ADSP2100_IRQSTATE2, + ADSP2100_IRQSTATE3, + ADSP2100_FLAGIN, + ADSP2100_FLAGOUT, + ADSP2100_FL0, + ADSP2100_FL1, + ADSP2100_FL2, + ADSP2100_AX0_SEC, + ADSP2100_AX1_SEC, + ADSP2100_AY0_SEC, + ADSP2100_AY1_SEC, + ADSP2100_AR_SEC, + ADSP2100_AF_SEC, + ADSP2100_MX0_SEC, + ADSP2100_MX1_SEC, + ADSP2100_MY0_SEC, + ADSP2100_MY1_SEC, + ADSP2100_MR0_SEC, + ADSP2100_MR1_SEC, + ADSP2100_MR2_SEC, + ADSP2100_MF_SEC, + ADSP2100_SI_SEC, + ADSP2100_SE_SEC, + ADSP2100_SB_SEC, + ADSP2100_SR0_SEC, + ADSP2100_SR1_SEC, + + ADSP2100_GENPC = STATE_GENPC, + ADSP2100_GENSP = STATE_GENSP, + ADSP2100_GENPCBASE = STATE_GENPCBASE +}; + + + +//************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** @@ -538,121 +695,4 @@ DECLARE_TRIVIAL_DERIVED_DEVICE(adsp2105_device_config, adsp2101_device_config, a DECLARE_TRIVIAL_DERIVED_DEVICE(adsp2115_device_config, adsp2101_device_config, adsp2115_device, adsp2101_device) - -/*************************************************************************** - REGISTER ENUMERATION -***************************************************************************/ - -enum -{ - ADSP2100_PC, - ADSP2100_AX0, ADSP2100_AX1, ADSP2100_AY0, ADSP2100_AY1, ADSP2100_AR, ADSP2100_AF, - ADSP2100_MX0, ADSP2100_MX1, ADSP2100_MY0, ADSP2100_MY1, ADSP2100_MR0, ADSP2100_MR1, ADSP2100_MR2, ADSP2100_MF, - ADSP2100_SI, ADSP2100_SE, ADSP2100_SB, ADSP2100_SR0, ADSP2100_SR1, - ADSP2100_I0, ADSP2100_I1, ADSP2100_I2, ADSP2100_I3, ADSP2100_I4, ADSP2100_I5, ADSP2100_I6, ADSP2100_I7, - ADSP2100_L0, ADSP2100_L1, ADSP2100_L2, ADSP2100_L3, ADSP2100_L4, ADSP2100_L5, ADSP2100_L6, ADSP2100_L7, - ADSP2100_M0, ADSP2100_M1, ADSP2100_M2, ADSP2100_M3, ADSP2100_M4, ADSP2100_M5, ADSP2100_M6, ADSP2100_M7, - ADSP2100_PX, ADSP2100_CNTR, ADSP2100_ASTAT, ADSP2100_SSTAT, ADSP2100_MSTAT, - ADSP2100_PCSP, ADSP2100_CNTRSP, ADSP2100_STATSP, ADSP2100_LOOPSP, - ADSP2100_IMASK, ADSP2100_ICNTL, ADSP2100_IRQSTATE0, ADSP2100_IRQSTATE1, ADSP2100_IRQSTATE2, ADSP2100_IRQSTATE3, - ADSP2100_FLAGIN, ADSP2100_FLAGOUT, ADSP2100_FL0, ADSP2100_FL1, ADSP2100_FL2, - ADSP2100_AX0_SEC, ADSP2100_AX1_SEC, ADSP2100_AY0_SEC, ADSP2100_AY1_SEC, ADSP2100_AR_SEC, ADSP2100_AF_SEC, - ADSP2100_MX0_SEC, ADSP2100_MX1_SEC, ADSP2100_MY0_SEC, ADSP2100_MY1_SEC, ADSP2100_MR0_SEC, ADSP2100_MR1_SEC, ADSP2100_MR2_SEC, ADSP2100_MF_SEC, - ADSP2100_SI_SEC, ADSP2100_SE_SEC, ADSP2100_SB_SEC, ADSP2100_SR0_SEC, ADSP2100_SR1_SEC, - - ADSP2100_GENPC = STATE_GENPC, - ADSP2100_GENSP = STATE_GENSP, - ADSP2100_GENPCBASE = STATE_GENPCBASE -}; - - - -/*************************************************************************** - PUBLIC FUNCTIONS -***************************************************************************/ - -#define ADSP2100_IRQ0 0 // IRQ0 -#define ADSP2100_SPORT1_RX 0 // SPORT1 receive IRQ -#define ADSP2100_IRQ1 1 // IRQ1 -#define ADSP2100_SPORT1_TX 1 // SPORT1 transmit IRQ -#define ADSP2100_IRQ2 2 // IRQ2 -#define ADSP2100_IRQ3 3 // IRQ3 - - -/************************************************************************** - * ADSP2101 section - **************************************************************************/ - -#define ADSP2101_IRQ0 0 // IRQ0 -#define ADSP2101_SPORT1_RX 0 // SPORT1 receive IRQ -#define ADSP2101_IRQ1 1 // IRQ1 -#define ADSP2101_SPORT1_TX 1 // SPORT1 transmit IRQ -#define ADSP2101_IRQ2 2 // IRQ2 -#define ADSP2101_SPORT0_RX 3 // SPORT0 receive IRQ -#define ADSP2101_SPORT0_TX 4 // SPORT0 transmit IRQ -#define ADSP2101_TIMER 5 // internal timer IRQ - - -/************************************************************************** - * ADSP2104 section - **************************************************************************/ - -#define ADSP2104_IRQ0 0 // IRQ0 -#define ADSP2104_SPORT1_RX 0 // SPORT1 receive IRQ -#define ADSP2104_IRQ1 1 // IRQ1 -#define ADSP2104_SPORT1_TX 1 // SPORT1 transmit IRQ -#define ADSP2104_IRQ2 2 // IRQ2 -#define ADSP2104_SPORT0_RX 3 // SPORT0 receive IRQ -#define ADSP2104_SPORT0_TX 4 // SPORT0 transmit IRQ -#define ADSP2104_TIMER 5 // internal timer IRQ - -void adsp2104_load_boot_data(UINT8 *srcdata, UINT32 *dstdata); - - -/************************************************************************** - * ADSP2105 section - **************************************************************************/ - -#define ADSP2105_IRQ0 0 // IRQ0 -#define ADSP2105_SPORT1_RX 0 // SPORT1 receive IRQ -#define ADSP2105_IRQ1 1 // IRQ1 -#define ADSP2105_SPORT1_TX 1 // SPORT1 transmit IRQ -#define ADSP2105_IRQ2 2 // IRQ2 -#define ADSP2105_TIMER 5 // internal timer IRQ - -void adsp2105_load_boot_data(UINT8 *srcdata, UINT32 *dstdata); - - -/************************************************************************** - * ADSP2115 section - **************************************************************************/ - -#define ADSP2115_IRQ0 0 // IRQ0 -#define ADSP2115_SPORT1_RX 0 // SPORT1 receive IRQ -#define ADSP2115_IRQ1 1 // IRQ1 -#define ADSP2115_SPORT1_TX 1 // SPORT1 transmit IRQ -#define ADSP2115_IRQ2 2 // IRQ2 -#define ADSP2115_SPORT0_RX 3 // SPORT0 receive IRQ -#define ADSP2115_SPORT0_TX 4 // SPORT0 transmit IRQ -#define ADSP2115_TIMER 5 // internal timer IRQ - -void adsp2115_load_boot_data(UINT8 *srcdata, UINT32 *dstdata); - - -/************************************************************************** - * ADSP2181 section - **************************************************************************/ - -#define ADSP2181_IRQ0 0 // IRQ0 -#define ADSP2181_SPORT1_RX 0 // SPORT1 receive IRQ -#define ADSP2181_IRQ1 1 // IRQ1 -#define ADSP2181_SPORT1_TX 1 // SPORT1 transmit IRQ -#define ADSP2181_IRQ2 2 // IRQ2 -#define ADSP2181_SPORT0_RX 3 // SPORT0 receive IRQ -#define ADSP2181_SPORT0_TX 4 // SPORT0 transmit IRQ -#define ADSP2181_TIMER 5 // internal timer IRQ -#define ADSP2181_IRQE 6 // IRQE -#define ADSP2181_IRQL1 7 // IRQL1 -#define ADSP2181_IRQL2 8 // IRQL2 - #endif /* __ADSP2100_H__ */ |