summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/adsp2100/adsp2100.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/adsp2100/adsp2100.h')
-rw-r--r--src/emu/cpu/adsp2100/adsp2100.h164
1 files changed, 164 insertions, 0 deletions
diff --git a/src/emu/cpu/adsp2100/adsp2100.h b/src/emu/cpu/adsp2100/adsp2100.h
new file mode 100644
index 00000000000..e490388b43d
--- /dev/null
+++ b/src/emu/cpu/adsp2100/adsp2100.h
@@ -0,0 +1,164 @@
+/***************************************************************************
+
+ ADSP2100.h
+ Interface file for the portable Analog ADSP-2100 emulator.
+ Written by Aaron Giles
+
+***************************************************************************/
+
+#ifndef _ADSP2100_H
+#define _ADSP2100_H
+
+#include "cpuintrf.h"
+
+
+/***************************************************************************
+ GLOBAL CONSTANTS
+***************************************************************************/
+
+/* transmit and receive data callbacks types */
+typedef INT32 (*RX_CALLBACK)(int port);
+typedef void (*TX_CALLBACK)(int port, INT32 data);
+typedef void (*ADSP2100_TIMER_CALLBACK)(int enable);
+
+
+/***************************************************************************
+ REGISTER ENUMERATION
+***************************************************************************/
+
+enum
+{
+ ADSP2100_PC=1,
+ 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
+};
+
+enum
+{
+ CPUINFO_PTR_ADSP2100_RX_HANDLER = CPUINFO_PTR_CPU_SPECIFIC,
+ CPUINFO_PTR_ADSP2100_TX_HANDLER,
+ CPUINFO_PTR_ADSP2100_TIMER_HANDLER
+};
+
+
+/***************************************************************************
+ 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 */
+
+#if (HAS_ADSP2100)
+extern void adsp2100_get_info(UINT32 state, cpuinfo *info);
+#endif
+
+/**************************************************************************
+ * 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 */
+
+#if (HAS_ADSP2101)
+extern void adsp2101_get_info(UINT32 state, cpuinfo *info);
+#endif
+
+#if (HAS_ADSP2104)
+/**************************************************************************
+ * 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 */
+
+extern void adsp2104_get_info(UINT32 state, cpuinfo *info);
+extern void adsp2104_load_boot_data(UINT8 *srcdata, UINT32 *dstdata);
+#endif
+
+#if (HAS_ADSP2105)
+/**************************************************************************
+ * 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 */
+
+extern void adsp2105_get_info(UINT32 state, cpuinfo *info);
+extern void adsp2105_load_boot_data(UINT8 *srcdata, UINT32 *dstdata);
+#endif
+
+#if (HAS_ADSP2115)
+/**************************************************************************
+ * 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 */
+
+extern void adsp2115_get_info(UINT32 state, cpuinfo *info);
+extern void adsp2115_load_boot_data(UINT8 *srcdata, UINT32 *dstdata);
+#endif
+
+#if (HAS_ADSP2181)
+/**************************************************************************
+ * 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 */
+
+extern void adsp2181_get_info(UINT32 state, cpuinfo *info);
+extern void adsp2181_load_boot_data(UINT8 *srcdata, UINT32 *dstdata);
+extern void adsp2181_idma_addr_w(UINT16 data);
+extern UINT16 adsp2181_idma_addr_r(void);
+extern void adsp2181_idma_data_w(UINT16 data);
+extern UINT16 adsp2181_idma_data_r(void);
+#endif
+
+#endif /* _ADSP2100_H */