summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/cpu/cop400/cop400.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/cpu/cop400/cop400.h')
-rw-r--r--trunk/src/emu/cpu/cop400/cop400.h159
1 files changed, 159 insertions, 0 deletions
diff --git a/trunk/src/emu/cpu/cop400/cop400.h b/trunk/src/emu/cpu/cop400/cop400.h
new file mode 100644
index 00000000000..ad859e1296f
--- /dev/null
+++ b/trunk/src/emu/cpu/cop400/cop400.h
@@ -0,0 +1,159 @@
+/***************************************************************************
+
+ cop400.h
+
+ National Semiconductor COPS Emulator.
+
+ Copyright Nicola Salmoria and the MAME Team.
+ Visit http://mamedev.org for licensing and usage restrictions.
+
+***************************************************************************/
+
+#pragma once
+
+#ifndef __COP400__
+#define __COP400__
+
+/***************************************************************************
+ CONSTANTS
+***************************************************************************/
+
+/* register access indexes */
+enum
+{
+ COP400_PC,
+ COP400_SA,
+ COP400_SB,
+ COP400_SC,
+ COP400_N,
+ COP400_A,
+ COP400_B,
+ COP400_C,
+ COP400_G,
+ COP400_H,
+ COP400_Q,
+ COP400_R,
+ COP400_EN,
+ COP400_SIO,
+ COP400_SKL,
+ COP400_T,
+ COP400_GENPC = STATE_GENPC,
+ COP400_GENPCBASE = STATE_GENPCBASE,
+ COP400_GENSP = STATE_GENSP
+};
+
+/* special I/O space ports */
+enum
+{
+ COP400_PORT_L = 0x100,
+ COP400_PORT_G,
+ COP400_PORT_D,
+ COP400_PORT_H,
+ COP400_PORT_R,
+ COP400_PORT_IN,
+ COP400_PORT_SK,
+ COP400_PORT_SIO,
+ COP400_PORT_CKO
+};
+
+/* input lines */
+enum
+{
+ /* COP420 */
+ COP400_IN0 = 0,
+ COP400_IN1,
+ COP400_IN2,
+ COP400_IN3,
+
+ /* COP404 */
+ COP400_MB,
+ COP400_DUAL,
+ COP400_SEL10,
+ COP400_SEL20
+};
+
+/* CKI bonding options */
+enum _cop400_cki_bond {
+ COP400_CKI_DIVISOR_4 = 4,
+ COP400_CKI_DIVISOR_8 = 8,
+ COP400_CKI_DIVISOR_16 = 16,
+ COP400_CKI_DIVISOR_32 = 32
+};
+typedef enum _cop400_cki_bond cop400_cki_bond;
+
+/* CKO bonding options */
+enum _cop400_cko_bond {
+ COP400_CKO_OSCILLATOR_OUTPUT = 0,
+ COP400_CKO_RAM_POWER_SUPPLY,
+ COP400_CKO_HALT_IO_PORT,
+ COP400_CKO_SYNC_INPUT,
+ COP400_CKO_GENERAL_PURPOSE_INPUT
+};
+typedef enum _cop400_cko_bond cop400_cko_bond;
+
+/* microbus bonding options */
+enum _cop400_microbus {
+ COP400_MICROBUS_DISABLED = 0,
+ COP400_MICROBUS_ENABLED
+};
+typedef enum _cop400_microbus cop400_microbus;
+
+/* interface */
+typedef struct _cop400_interface cop400_interface;
+struct _cop400_interface
+{
+ cop400_cki_bond cki; /* CKI bonding option */
+ cop400_cko_bond cko; /* CKO bonding option */
+ cop400_microbus microbus; /* microbus option */
+};
+#define COP400_INTERFACE(name) const cop400_interface (name) =
+
+/***************************************************************************
+ MACROS
+***************************************************************************/
+
+#define CPU_COP401 CPU_GET_INFO_NAME( cop401 )
+#define CPU_COP410 CPU_GET_INFO_NAME( cop410 )
+#define CPU_COP411 CPU_GET_INFO_NAME( cop411 )
+
+#define CPU_COP402 CPU_GET_INFO_NAME( cop402 )
+#define CPU_COP420 CPU_GET_INFO_NAME( cop420 )
+#define CPU_COP421 CPU_GET_INFO_NAME( cop421 )
+#define CPU_COP422 CPU_GET_INFO_NAME( cop422 )
+
+#define CPU_COP404 CPU_GET_INFO_NAME( cop404 )
+#define CPU_COP424 CPU_GET_INFO_NAME( cop424 )
+#define CPU_COP425 CPU_GET_INFO_NAME( cop425 )
+#define CPU_COP426 CPU_GET_INFO_NAME( cop426 )
+#define CPU_COP444 CPU_GET_INFO_NAME( cop444 )
+#define CPU_COP445 CPU_GET_INFO_NAME( cop445 )
+
+/***************************************************************************
+ FUNCTION PROTOTYPES
+***************************************************************************/
+
+/* COP410 family */
+DECLARE_LEGACY_CPU_DEVICE(COP401, cop401);
+DECLARE_LEGACY_CPU_DEVICE(COP410, cop410);
+DECLARE_LEGACY_CPU_DEVICE(COP411, cop411);
+
+/* COP420 family */
+DECLARE_LEGACY_CPU_DEVICE(COP402, cop402);
+DECLARE_LEGACY_CPU_DEVICE(COP420, cop420);
+DECLARE_LEGACY_CPU_DEVICE(COP421, cop421);
+DECLARE_LEGACY_CPU_DEVICE(COP422, cop422);
+
+/* COP444 family */
+DECLARE_LEGACY_CPU_DEVICE(COP404, cop404);
+DECLARE_LEGACY_CPU_DEVICE(COP424, cop424);
+DECLARE_LEGACY_CPU_DEVICE(COP425, cop425);
+DECLARE_LEGACY_CPU_DEVICE(COP426, cop426);
+DECLARE_LEGACY_CPU_DEVICE(COP444, cop444);
+DECLARE_LEGACY_CPU_DEVICE(COP445, cop445);
+
+/* disassemblers */
+extern CPU_DISASSEMBLE( cop410 );
+extern CPU_DISASSEMBLE( cop420 );
+extern CPU_DISASSEMBLE( cop444 );
+
+#endif /* __COP400__ */