summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/cpu/superfx/superfx.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/cpu/superfx/superfx.h')
-rw-r--r--trunk/src/emu/cpu/superfx/superfx.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/trunk/src/emu/cpu/superfx/superfx.h b/trunk/src/emu/cpu/superfx/superfx.h
new file mode 100644
index 00000000000..a6aafe82e26
--- /dev/null
+++ b/trunk/src/emu/cpu/superfx/superfx.h
@@ -0,0 +1,104 @@
+#ifndef __SUPERFX_H__
+#define __SUPERFX_H__
+
+
+enum
+{
+ SUPERFX_PC = 1,
+
+ SUPERFX_DREG,
+ SUPERFX_SREG,
+
+ SUPERFX_R0,
+ SUPERFX_R1,
+ SUPERFX_R2,
+ SUPERFX_R3,
+ SUPERFX_R4,
+ SUPERFX_R5,
+ SUPERFX_R6,
+ SUPERFX_R7,
+ SUPERFX_R8,
+ SUPERFX_R9,
+ SUPERFX_R10,
+ SUPERFX_R11,
+ SUPERFX_R12,
+ SUPERFX_R13,
+ SUPERFX_R14,
+ SUPERFX_R15,
+
+ SUPERFX_PBR,
+ SUPERFX_SFR,
+ SUPERFX_ROMBR,
+ SUPERFX_RAMBR,
+ SUPERFX_CBR,
+ SUPERFX_SCBR,
+ SUPERFX_SCMR,
+ SUPERFX_COLR,
+ SUPERFX_POR,
+ SUPERFX_BRAMR,
+ SUPERFX_VCR,
+ SUPERFX_CFGR,
+ SUPERFX_CLSR,
+
+ SUPERFX_ROMCL,
+ SUPERFX_ROMDR,
+
+ SUPERFX_RAMCL,
+ SUPERFX_RAMAR,
+ SUPERFX_RAMDR,
+ SUPERFX_RAMADDR,
+};
+
+#define SUPERFX_SFR_IRQ 0x8000 // Interrupt Flag
+#define SUPERFX_SFR_B 0x1000 // WITH Flag
+#define SUPERFX_SFR_IH 0x0800 // Immediate Higher 8-bit Flag
+#define SUPERFX_SFR_IL 0x0400 // Immediate Lower 8-bit Flag
+#define SUPERFX_SFR_ALT 0x0300 // ALT Mode, both bits
+#define SUPERFX_SFR_ALT0 0x0000 // ALT Mode, no bits
+#define SUPERFX_SFR_ALT1 0x0100 // ALT Mode, bit 0
+#define SUPERFX_SFR_ALT2 0x0200 // ALT Mode, bit 1
+#define SUPERFX_SFR_ALT3 0x0300 // ALT Mode, both bits (convenience dupe)
+#define SUPERFX_SFR_R 0x0040 // ROM R14 Read Flag
+#define SUPERFX_SFR_G 0x0020 // GO Flag
+#define SUPERFX_SFR_OV 0x0010 // Overflow Flag
+#define SUPERFX_SFR_S 0x0008 // Sign Flag
+#define SUPERFX_SFR_CY 0x0004 // Carry Flag
+#define SUPERFX_SFR_Z 0x0002 // Zero Flag
+
+#define SUPERFX_POR_OBJ 0x10
+#define SUPERFX_POR_FREEZEHIGH 0x08
+#define SUPERFX_POR_HIGHNIBBLE 0x04
+#define SUPERFX_POR_DITHER 0x02
+#define SUPERFX_POR_TRANSPARENT 0x01
+
+#define SUPERFX_SCMR_HT_MASK 0x24
+#define SUPERFX_SCMR_HT0 0x00
+#define SUPERFX_SCMR_HT1 0x04
+#define SUPERFX_SCMR_HT2 0x20
+#define SUPERFX_SCMR_HT3 0x24
+#define SUPERFX_SCMR_RON 0x10
+#define SUPERFX_SCMR_RAN 0x08
+#define SUPERFX_SCMR_MD 0x03
+
+#define SUPERFX_CFGR_IRQ 0x80 // IRQ
+#define SUPERFX_CFGR_MS0 0x20 // MS0
+
+typedef struct _superfx_config superfx_config;
+struct _superfx_config
+{
+ devcb_write_line out_irq_func; /* IRQ changed callback */
+};
+#define SUPERFX_CONFIG(name) const superfx_config (name) =
+
+DECLARE_LEGACY_CPU_DEVICE(SUPERFX, superfx);
+
+CPU_DISASSEMBLE( superfx );
+extern offs_t superfx_dasm_one(char *buffer, offs_t pc, UINT8 op, UINT8 param0, UINT8 param1, UINT16 alt);
+
+UINT8 superfx_mmio_read(device_t *cpu, UINT32 addr);
+void superfx_mmio_write(device_t *cpu, UINT32 addr, UINT8 data);
+void superfx_add_clocks(device_t *cpu, INT32 clocks);
+int superfx_access_ram(device_t *cpu);
+int superfx_access_rom(device_t *cpu);
+
+#endif /* __SUPERFX_H__ */