summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/sc61860
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2014-01-10 20:12:15 +0000
committer smf- <smf-@users.noreply.github.com>2014-01-10 20:12:15 +0000
commitfc59ec00a093224ffd1f56a8accae2abaf1f6cbf (patch)
tree986f5eaf5e94600e82f163295da11f071beca773 /src/emu/cpu/sc61860
parent9176cfff3ce62370925dee8713ddb1f8e1da7d3d (diff)
fixed pc1403 & pc1403h crashing and standardised devcb2 callbacks (nw)
Diffstat (limited to 'src/emu/cpu/sc61860')
-rw-r--r--src/emu/cpu/sc61860/sc61860.c10
-rw-r--r--src/emu/cpu/sc61860/sc61860.h31
2 files changed, 27 insertions, 14 deletions
diff --git a/src/emu/cpu/sc61860/sc61860.c b/src/emu/cpu/sc61860/sc61860.c
index e983beebbb7..1abc5975efd 100644
--- a/src/emu/cpu/sc61860/sc61860.c
+++ b/src/emu/cpu/sc61860/sc61860.c
@@ -119,11 +119,11 @@ void sc61860_device::device_start()
m_reset.resolve();
m_brk.resolve();
m_x.resolve();
- m_ina.resolve();
- m_outa.resolve();
- m_inb.resolve();
- m_outb.resolve();
- m_outc.resolve();
+ m_ina.resolve_safe(0);
+ m_outa.resolve_safe();
+ m_inb.resolve_safe(0);
+ m_outb.resolve_safe();
+ m_outc.resolve_safe();
m_p = 0;
m_q = 0;
diff --git a/src/emu/cpu/sc61860/sc61860.h b/src/emu/cpu/sc61860/sc61860.h
index 86e62ccd8fc..c29e7079126 100644
--- a/src/emu/cpu/sc61860/sc61860.h
+++ b/src/emu/cpu/sc61860/sc61860.h
@@ -54,16 +54,29 @@ enum
};
-#define MCFG_SC61860_CONFIG(_reset, _brk, _x, _ina, _outa, _inb, _outb, _outc) \
- sc61860_device::set_reset_cb(*device, DEVCB2_##_reset); \
- sc61860_device::set_brk_cb(*device, DEVCB2_##_brk); \
- sc61860_device::set_x_cb(*device, DEVCB2_##_x); \
- sc61860_device::set_ina_cb(*device, DEVCB2_##_ina); \
- sc61860_device::set_outa_cb(*device, DEVCB2_##_outa); \
- sc61860_device::set_inb_cb(*device, DEVCB2_##_inb); \
- sc61860_device::set_outb_cb(*device, DEVCB2_##_outb); \
- sc61860_device::set_outc_cb(*device, DEVCB2_##_outc);
+#define MCFG_SC61860_READ_RESET_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_reset_cb(*device, DEVCB2_##_devcb);
+#define MCFG_SC61860_READ_BRK_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_brk_cb(*device, DEVCB2_##_devcb);
+
+#define MCFG_SC61860_READ_X_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_x_cb(*device, DEVCB2_##_devcb);
+
+#define MCFG_SC61860_READ_A_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_ina_cb(*device, DEVCB2_##_devcb);
+
+#define MCFG_SC61860_WRITE_A_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_outa_cb(*device, DEVCB2_##_devcb);
+
+#define MCFG_SC61860_READ_B_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_inb_cb(*device, DEVCB2_##_devcb);
+
+#define MCFG_SC61860_WRITE_B_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_outb_cb(*device, DEVCB2_##_devcb);
+
+#define MCFG_SC61860_WRITE_C_HANDLER(_devcb) \
+ devcb = &sc61860_device::set_outc_cb(*device, DEVCB2_##_devcb);
class sc61860_device : public cpu_device
{