summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/adsp2100
diff options
context:
space:
mode:
author Aaron Giles <aaron@aarongiles.com>2011-01-28 15:06:49 +0000
committer Aaron Giles <aaron@aarongiles.com>2011-01-28 15:06:49 +0000
commit554823374ba295a069173874eeb2a1d6c787a0ba (patch)
tree67278eea5dc4d7622a884bf2b8986ab4a928485b /src/emu/cpu/adsp2100
parent10ad09bac8b399bd817238f9c09f17a0f84615b6 (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.c3
-rw-r--r--src/emu/cpu/adsp2100/adsp2100.h274
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__ */