From 36198d216962174fbada541df0448e9118d4d5c1 Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Mon, 10 Jun 2013 13:43:50 +0000 Subject: [PATCH] upd1990a: devcb2. (nw) --- src/emu/machine/upd1990a.c | 114 ++++++++++++------------------ src/emu/machine/upd1990a.h | 92 +++++++++++++----------- src/mess/drivers/apc.c | 8 +-- src/mess/drivers/kyocera.c | 14 +--- src/mess/drivers/pc1500.c | 9 +-- src/mess/drivers/pc8001.c | 12 +--- src/mess/drivers/pc8401a.c | 12 +--- src/mess/drivers/pc8801.c | 12 +--- src/mess/drivers/pc9801.c | 14 ++-- src/mess/drivers/prof80.c | 13 +--- src/mess/machine/a2thunderclock.c | 8 +-- src/mess/machine/s100_wunderbus.c | 8 +-- 12 files changed, 111 insertions(+), 205 deletions(-) diff --git a/src/emu/machine/upd1990a.c b/src/emu/machine/upd1990a.c index ebbadd50c0c..2dc6e3565da 100644 --- a/src/emu/machine/upd1990a.c +++ b/src/emu/machine/upd1990a.c @@ -12,17 +12,13 @@ TODO: - set tp = 64 Hz when out of test mode - - test mode is mostly untested (is used by MS-DOS 6.2x in PC-98xx) + - test mode is mostly untested (is used by MS-DOS 6.2x in PC-98xx, and neogeo) */ #include "upd1990a.h" -// device type definition -const device_type UPD1990A = &device_creator; -const device_type UPD4990A = &device_creator; - //************************************************************************** // MACROS / CONSTANTS @@ -31,18 +27,14 @@ const device_type UPD4990A = &device_creator; #define LOG 0 -// operating modes -enum -{ - MODE_REGISTER_HOLD = 0, - MODE_SHIFT, - MODE_TIME_SET, - MODE_TIME_READ, - MODE_TP_64HZ_SET, - MODE_TP_256HZ_SET, - MODE_TP_2048HZ_SET, - MODE_TEST -}; + +//************************************************************************** +// DEVICE DEFINITIONS +//************************************************************************** + +// device type definition +const device_type UPD1990A = &device_creator; +const device_type UPD4990A = &device_creator; @@ -54,61 +46,43 @@ enum // upd1990a_device - constructor //------------------------------------------------- -upd1990a_rtc_device::upd1990a_rtc_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, UINT32 clock) +upd1990a_device::upd1990a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant) : device_t(mconfig, type, name, tag, owner, clock), device_rtc_interface(mconfig, *this), + m_write_data(*this), + m_write_tp(*this), m_data_out(0), m_c(0), - m_clk(0) + m_clk(0), + m_variant(variant) { } - upd1990a_device::upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : upd1990a_rtc_device(mconfig, UPD1990A, "uPD1990A", tag, owner, clock) + : device_t(mconfig, UPD1990A, "uPD1990A", tag, owner, clock), + device_rtc_interface(mconfig, *this), + m_write_data(*this), + m_write_tp(*this), + m_data_out(0), + m_c(0), + m_clk(0), + m_variant(TYPE_1990A) { - m_device_type = TYPE_UPD1990A; } - upd4990a_device::upd4990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : upd1990a_rtc_device(mconfig, UPD4990A, "uPD4990A", tag, owner, clock) -{ - m_device_type = TYPE_UPD4990A; -} - - -//------------------------------------------------- -// device_config_complete - perform any -// operations now that the configuration is -// complete -//------------------------------------------------- - -void upd1990a_rtc_device::device_config_complete() -{ - // inherit a copy of the static data - const upd1990a_interface *intf = reinterpret_cast(static_config()); - if (intf != NULL) - *static_cast(this) = *intf; - - // or initialize to defaults if none provided - else - { - memset(&m_out_data_cb, 0, sizeof(m_out_data_cb)); - memset(&m_out_tp_cb, 0, sizeof(m_out_tp_cb)); - } -} + : upd1990a_device(mconfig, UPD4990A, "uPD4990A", tag, owner, clock, TYPE_4990A) { } //------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- -void upd1990a_rtc_device::device_start() +void upd1990a_device::device_start() { // resolve callbacks - m_out_data_func.resolve(m_out_data_cb, *this); - m_out_tp_func.resolve(m_out_tp_cb, *this); + m_write_data.resolve_safe(); + m_write_tp.resolve_safe(); // allocate timers m_timer_clock = timer_alloc(TIMER_CLOCK); @@ -136,7 +110,7 @@ void upd1990a_rtc_device::device_start() // device_reset - device-specific reset //------------------------------------------------- -void upd1990a_rtc_device::device_reset() +void upd1990a_device::device_reset() { m_tp = 0; m_c_unlatched = 0; @@ -148,7 +122,7 @@ void upd1990a_rtc_device::device_reset() // device_timer - handler timer events //------------------------------------------------- -void upd1990a_rtc_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) +void upd1990a_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { switch (id) { @@ -161,7 +135,7 @@ void upd1990a_rtc_device::device_timer(emu_timer &timer, device_timer_id id, int if (LOG) logerror("uPD1990A '%s' TP %u\n", tag(), m_tp); - m_out_tp_func(m_tp); + m_write_tp(m_tp); break; case TIMER_DATA_OUT: @@ -169,7 +143,7 @@ void upd1990a_rtc_device::device_timer(emu_timer &timer, device_timer_id id, int if (LOG) logerror("uPD1990A '%s' DATA OUT TICK %u\n", tag(), m_data_out); - m_out_data_func(m_data_out); + m_write_data(m_data_out); break; case TIMER_TEST_MODE: @@ -213,7 +187,7 @@ void upd1990a_rtc_device::device_timer(emu_timer &timer, device_timer_id id, int // rtc_clock_updated - //------------------------------------------------- -void upd1990a_rtc_device::rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) +void upd1990a_device::rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) { m_time_counter[0] = convert_to_bcd(second); m_time_counter[1] = convert_to_bcd(minute); @@ -227,7 +201,7 @@ void upd1990a_rtc_device::rtc_clock_updated(int year, int month, int day, int da // oe_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::oe_w ) +WRITE_LINE_MEMBER( upd1990a_device::oe_w ) { if (LOG) logerror("uPD1990A '%s' OE %u\n", tag(), state); @@ -239,7 +213,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::oe_w ) // cs_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::cs_w ) +WRITE_LINE_MEMBER( upd1990a_device::cs_w ) { if (LOG) logerror("uPD1990A '%s' CS %u\n", tag(), state); @@ -251,7 +225,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::cs_w ) // stb_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::stb_w ) +WRITE_LINE_MEMBER( upd1990a_device::stb_w ) { if (LOG) logerror("uPD1990A '%s' STB %u\n", tag(), state); @@ -292,7 +266,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::stb_w ) /* output LSB of shift register */ m_data_out = BIT(m_shift_reg[0], 0); - m_out_data_func(m_data_out); + m_write_data(m_data_out); /* 32 Hz time pulse */ m_timer_tp->adjust(attotime::zero, 0, attotime::from_hz(32*2)); @@ -312,7 +286,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::stb_w ) /* output LSB of shift register */ m_data_out = BIT(m_shift_reg[0], 0); - m_out_data_func(m_data_out); + m_write_data(m_data_out); /* load shift register data into time counter */ for (int i = 0; i < 5; i++) @@ -399,7 +373,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::stb_w ) // clk_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::clk_w ) +WRITE_LINE_MEMBER( upd1990a_device::clk_w ) { if (LOG) logerror("uPD1990A '%s' CLK %u\n", tag(), state); @@ -428,7 +402,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::clk_w ) if (LOG) logerror("uPD1990A '%s' DATA OUT %u\n", tag(), m_data_out); - m_out_data_func(m_data_out); + m_write_data(m_data_out); } } } @@ -441,7 +415,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::clk_w ) // c0_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::c0_w ) +WRITE_LINE_MEMBER( upd1990a_device::c0_w ) { if (LOG) logerror("uPD1990A '%s' C0 %u\n", tag(), state); @@ -453,7 +427,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::c0_w ) // c1_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::c1_w ) +WRITE_LINE_MEMBER( upd1990a_device::c1_w ) { if (LOG) logerror("uPD1990A '%s' C1 %u\n", tag(), state); @@ -465,7 +439,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::c1_w ) // c2_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::c2_w ) +WRITE_LINE_MEMBER( upd1990a_device::c2_w ) { if (LOG) logerror("uPD1990A '%s' C2 %u\n", tag(), state); @@ -477,7 +451,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::c2_w ) // data_in_w - //------------------------------------------------- -WRITE_LINE_MEMBER( upd1990a_rtc_device::data_in_w ) +WRITE_LINE_MEMBER( upd1990a_device::data_in_w ) { if (LOG) logerror("uPD1990A '%s' DATA IN %u\n", tag(), state); @@ -489,7 +463,7 @@ WRITE_LINE_MEMBER( upd1990a_rtc_device::data_in_w ) // data_out_r - //------------------------------------------------- -READ_LINE_MEMBER( upd1990a_rtc_device::data_out_r ) +READ_LINE_MEMBER( upd1990a_device::data_out_r ) { return m_data_out; } @@ -499,7 +473,7 @@ READ_LINE_MEMBER( upd1990a_rtc_device::data_out_r ) // tp_r - //------------------------------------------------- -READ_LINE_MEMBER( upd1990a_rtc_device::tp_r ) +READ_LINE_MEMBER( upd1990a_device::tp_r ) { return m_tp; } diff --git a/src/emu/machine/upd1990a.h b/src/emu/machine/upd1990a.h index 7078ed9569e..914f7290d77 100644 --- a/src/emu/machine/upd1990a.h +++ b/src/emu/machine/upd1990a.h @@ -26,23 +26,19 @@ -//************************************************************************** -// MACROS / CONSTANTS -//************************************************************************** - - - - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** -#define MCFG_UPD1990A_ADD(_tag, _clock, _config) \ - MCFG_DEVICE_ADD((_tag), UPD1990A, _clock) \ - MCFG_DEVICE_CONFIG(_config) +#define MCFG_UPD1990A_ADD(_tag, _clock, _data, _tp) \ + MCFG_DEVICE_ADD((_tag), UPD1990A, _clock) \ + downcast(device)->set_data_callback(DEVCB2_##_data); \ + downcast(device)->set_tp_callback(DEVCB2_##_tp); -#define UPD1990A_INTERFACE(name) \ - const upd1990a_interface (name) = +#define MCFG_UPD4990A_ADD(_tag, _clock, _data, _tp) \ + MCFG_DEVICE_ADD((_tag), UPD4990A, _clock) \ + downcast(device)->set_data_callback(DEVCB2_##_data); \ + downcast(device)->set_tp_callback(DEVCB2_##_tp); @@ -50,24 +46,18 @@ // TYPE DEFINITIONS //************************************************************************** -// ======================> upd1990a_interface - -struct upd1990a_interface -{ - devcb_write_line m_out_data_cb; - devcb_write_line m_out_tp_cb; -}; - - // ======================> upd1990a_device -class upd1990a_rtc_device : public device_t, - public device_rtc_interface, - public upd1990a_interface +class upd1990a_device : public device_t, + public device_rtc_interface { public: // construction/destruction - upd1990a_rtc_device(const machine_config &mconfig, device_type type, const char* name, const char *tag, device_t *owner, UINT32 clock); + upd1990a_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT32 variant); + upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + template void set_data_callback(_data data) { m_write_data.set_callback(data); } + template void set_tp_callback(_tp tp) { m_write_tp.set_callback(tp); } DECLARE_WRITE_LINE_MEMBER( oe_w ); DECLARE_WRITE_LINE_MEMBER( cs_w ); @@ -82,27 +72,42 @@ public: protected: // device-level overrides - virtual void device_config_complete(); virtual void device_start(); virtual void device_reset(); virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); // device_rtc_interface overrides virtual void rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second); - enum { - TYPE_UPD1990A = 0, - TYPE_UPD4990A + + enum + { + TYPE_1990A = 0, + TYPE_4990A }; - int m_device_type; private: - static const device_timer_id TIMER_CLOCK = 0; - static const device_timer_id TIMER_TP = 1; - static const device_timer_id TIMER_DATA_OUT = 2; - static const device_timer_id TIMER_TEST_MODE = 3; + enum + { + TIMER_CLOCK, + TIMER_TP, + TIMER_DATA_OUT, + TIMER_TEST_MODE + }; - devcb_resolved_write_line m_out_data_func; - devcb_resolved_write_line m_out_tp_func; + enum + { + MODE_REGISTER_HOLD = 0, + MODE_SHIFT, + MODE_TIME_SET, + MODE_TIME_READ, + MODE_TP_64HZ_SET, + MODE_TP_256HZ_SET, + MODE_TP_2048HZ_SET, + MODE_TEST + }; + + devcb2_write_line m_write_data; + devcb2_write_line m_write_tp; UINT8 m_time_counter[5]; // time counter UINT8 m_shift_reg[5]; // shift register @@ -117,6 +122,8 @@ private: int m_tp; // time pulse int m_c_unlatched; // command waiting for STB + int m_variant; + // timers emu_timer *m_timer_clock; emu_timer *m_timer_tp; @@ -124,21 +131,20 @@ private: emu_timer *m_timer_test_mode; }; -class upd1990a_device : public upd1990a_rtc_device -{ -public: - upd1990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); -}; +// ======================> upd4990a_device -class upd4990a_device : public upd1990a_rtc_device +class upd4990a_device : public upd1990a_device { public: upd4990a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); }; -// device type definition + +// device type definitions extern const device_type UPD1990A; extern const device_type UPD4990A; + + #endif diff --git a/src/mess/drivers/apc.c b/src/mess/drivers/apc.c index d513d5fc5db..fd6ea279153 100644 --- a/src/mess/drivers/apc.c +++ b/src/mess/drivers/apc.c @@ -981,12 +981,6 @@ static I8237_INTERFACE( dmac_intf ) { DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack0_w), DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack1_w), DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack2_w), DEVCB_DRIVER_LINE_MEMBER(apc_state, apc_dack3_w) } }; -static UPD1990A_INTERFACE( apc_upd1990a_intf ) -{ - DEVCB_NULL, - DEVCB_NULL -}; - static const floppy_format_type apc_floppy_formats[] = { FLOPPY_D88_FORMAT, FLOPPY_IMD_FORMAT, @@ -1023,7 +1017,7 @@ static MACHINE_CONFIG_START( apc, apc_state ) MCFG_I8237_ADD("i8237", MAIN_CLOCK, dmac_intf) MCFG_NVRAM_ADD_1FILL("cmos") - MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, apc_upd1990a_intf) + MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL) MCFG_UPD765A_ADD("upd765", true, true) MCFG_FLOPPY_DRIVE_ADD("upd765:0", apc_floppies, "8", apc_floppy_formats) diff --git a/src/mess/drivers/kyocera.c b/src/mess/drivers/kyocera.c index f68009d74a0..b984e76776a 100644 --- a/src/mess/drivers/kyocera.c +++ b/src/mess/drivers/kyocera.c @@ -885,14 +885,6 @@ static INPUT_PORTS_START( olivm10 ) PORT_CONFSETTING( 0x00, "Low Battery" ) INPUT_PORTS_END -/* uPD1990A Interface */ - -static UPD1990A_INTERFACE( kc85_upd1990a_intf ) -{ - DEVCB_NULL, - DEVCB_CPU_INPUT_LINE(I8085_TAG, I8085_RST75_LINE) -}; - /* RP5C01A Interface */ static RP5C01_INTERFACE( tandy200_rtc_intf ) @@ -1352,7 +1344,7 @@ static MACHINE_CONFIG_START( kc85, kc85_state ) /* devices */ MCFG_I8155_ADD(I8155_TAG, XTAL_4_9152MHz/2, kc85_8155_intf) - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, kc85_upd1990a_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, INPUTLINE(I8085_TAG, I8085_RST75_LINE)) MCFG_IM6402_ADD(IM6402_TAG, uart_intf) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) @@ -1390,7 +1382,7 @@ static MACHINE_CONFIG_START( pc8201, pc8201_state ) /* devices */ MCFG_I8155_ADD(I8155_TAG, XTAL_4_9152MHz/2, kc85_8155_intf) - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, kc85_upd1990a_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, INPUTLINE(I8085_TAG, I8085_RST75_LINE)) MCFG_IM6402_ADD(IM6402_TAG, uart_intf) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) @@ -1434,7 +1426,7 @@ static MACHINE_CONFIG_START( trsm100, trsm100_state ) /* devices */ MCFG_I8155_ADD(I8155_TAG, XTAL_4_9152MHz/2, kc85_8155_intf) - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, kc85_upd1990a_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, INPUTLINE(I8085_TAG, I8085_RST75_LINE)) MCFG_IM6402_ADD(IM6402_TAG, uart_intf) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) diff --git a/src/mess/drivers/pc1500.c b/src/mess/drivers/pc1500.c index 5545a45f7cd..672a2d1b360 100644 --- a/src/mess/drivers/pc1500.c +++ b/src/mess/drivers/pc1500.c @@ -278,13 +278,6 @@ static const lh5810_interface lh5810_pc1500_config = DEVCB_CPU_INPUT_LINE("maincpu", LH5801_LINE_MI) //IRQ callback }; - -static UPD1990A_INTERFACE( pc1500_upd1990a_intf ) -{ - DEVCB_NULL, - DEVCB_NULL -}; - static MACHINE_CONFIG_START( pc1500, pc1500_state ) MCFG_CPU_ADD("maincpu", LH5801, 1300000) //1.3 MHz MCFG_CPU_PROGRAM_MAP( pc1500_mem ) @@ -302,7 +295,7 @@ static MACHINE_CONFIG_START( pc1500, pc1500_state ) MCFG_LH5810_ADD("lh5810", lh5810_pc1500_config) - MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, pc1500_upd1990a_intf) + MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL) MACHINE_CONFIG_END diff --git a/src/mess/drivers/pc8001.c b/src/mess/drivers/pc8001.c index d5399fc6c11..28f220d4e86 100644 --- a/src/mess/drivers/pc8001.c +++ b/src/mess/drivers/pc8001.c @@ -471,14 +471,6 @@ static I8257_INTERFACE( dmac_intf ) { DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w), DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w), DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w), DEVCB_DRIVER_MEMBER(pc8001_state, dma_io_w) }, }; -/* uPD1990A Interface */ - -static UPD1990A_INTERFACE( rtc_intf ) -{ - DEVCB_NULL, - DEVCB_NULL -}; - /* Machine Initialization */ void pc8001_state::machine_start() @@ -569,7 +561,7 @@ static MACHINE_CONFIG_START( pc8001, pc8001_state ) MCFG_I8251_ADD(I8251_TAG, uart_intf) MCFG_I8255A_ADD(I8255A_TAG, ppi_intf) MCFG_I8257_ADD(I8257_TAG, 4000000, dmac_intf) - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL) MCFG_UPD3301_ADD(UPD3301_TAG, 14318180, pc8001_upd3301_intf) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) @@ -603,7 +595,7 @@ static MACHINE_CONFIG_START( pc8001mk2, pc8001mk2_state ) MCFG_I8251_ADD(I8251_TAG, uart_intf) MCFG_I8255A_ADD(I8255A_TAG, ppi_intf) MCFG_I8257_ADD(I8257_TAG, 4000000, dmac_intf) - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL) MCFG_UPD3301_ADD(UPD3301_TAG, 14318180, pc8001_upd3301_intf) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) diff --git a/src/mess/drivers/pc8401a.c b/src/mess/drivers/pc8401a.c index 61febb606fc..e34b8deeb69 100644 --- a/src/mess/drivers/pc8401a.c +++ b/src/mess/drivers/pc8401a.c @@ -565,14 +565,6 @@ static I8255A_INTERFACE( ppi_intf ) DEVCB_DRIVER_MEMBER(pc8401a_state, ppi_pc_w) }; -/* uPD1990A Interface */ - -static UPD1990A_INTERFACE( rtc_intf ) -{ - DEVCB_NULL, - DEVCB_NULL -}; - /* I8251 Interface */ static const i8251_interface uart_intf = @@ -613,7 +605,7 @@ static MACHINE_CONFIG_START( pc8401a, pc8401a_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64)) /* devices */ - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL) MCFG_I8255A_ADD(I8255A_TAG, ppi_intf) MCFG_I8251_ADD(I8251_TAG, uart_intf) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL) @@ -647,7 +639,7 @@ static MACHINE_CONFIG_START( pc8500, pc8500_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("keyboard", pc8401a_state, pc8401a_keyboard_tick, attotime::from_hz(64)) /* devices */ - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL) MCFG_I8255A_ADD(I8255A_TAG, ppi_intf) MCFG_I8251_ADD(I8251_TAG, uart_intf) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL) diff --git a/src/mess/drivers/pc8801.c b/src/mess/drivers/pc8801.c index c6b0016b869..0e7c5aabb04 100644 --- a/src/mess/drivers/pc8801.c +++ b/src/mess/drivers/pc8801.c @@ -2141,7 +2141,7 @@ static INPUT_PORTS_START( pc8001 ) PORT_DIPNAME( 0x08, 0x00, "Auto-boot floppy at start-up" ) PORT_DIPSETTING( 0x08, DEF_STR( Off ) ) PORT_DIPSETTING( 0x00, DEF_STR( On ) ) - PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_rtc_device, data_out_r) + PORT_BIT( 0x10, IP_ACTIVE_HIGH,IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_device, data_out_r) PORT_BIT( 0x20, IP_ACTIVE_HIGH,IPT_CUSTOM ) PORT_VBLANK("screen") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -2250,14 +2250,6 @@ static GFXDECODE_START( pc8801 ) GFXDECODE_ENTRY( "kanji", 0, kanji_layout, 0, 8 ) GFXDECODE_END -/* uPD1990A Interface */ - -static UPD1990A_INTERFACE( pc8801_upd1990a_intf ) -{ - DEVCB_NULL, - DEVCB_NULL -}; - /* Floppy Configuration */ static SLOT_INTERFACE_START( pc88_floppies ) @@ -2677,7 +2669,7 @@ static MACHINE_CONFIG_START( pc8801, pc8801_state ) #ifdef USE_PROPER_I8214 MCFG_I8214_ADD(I8214_TAG, MASTER_CLOCK, pic_intf) #endif - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, pc8801_upd1990a_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL) //MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) MCFG_CASSETTE_ADD("cassette", pc8801_cassette_interface) MCFG_SOFTWARE_LIST_ADD("tape_list","pc8801_cass") diff --git a/src/mess/drivers/pc9801.c b/src/mess/drivers/pc9801.c index 16cc9f17400..45625251c76 100644 --- a/src/mess/drivers/pc9801.c +++ b/src/mess/drivers/pc9801.c @@ -2663,7 +2663,7 @@ CUSTOM_INPUT_MEMBER(pc9801_state::system_type_r) static INPUT_PORTS_START( pc9801 ) PORT_START("DSW1") - PORT_BIT(0x0001, IP_ACTIVE_HIGH,IPT_SPECIAL) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_rtc_device, data_out_r) + PORT_BIT(0x0001, IP_ACTIVE_HIGH,IPT_SPECIAL) PORT_READ_LINE_DEVICE_MEMBER("upd1990a", upd1990a_device, data_out_r) PORT_DIPNAME( 0x0002, 0x0000, "DSW1" ) // error beep if OFF PORT_DIPSETTING( 0x0002, DEF_STR( Off ) ) PORT_DIPSETTING( 0x0000, DEF_STR( On ) ) @@ -3283,12 +3283,6 @@ void pc9801_state::pc9801rs_fdc_drq(bool state) printf("DRQ %02x %d\n",m_fdc_ctrl,state); } -static UPD1990A_INTERFACE( pc9801_upd1990a_intf ) -{ - DEVCB_NULL, - DEVCB_NULL -}; - static const i8251_interface pc9801_uart_interface = { DEVCB_NULL, @@ -3564,7 +3558,7 @@ static MACHINE_CONFIG_START( pc9801, pc9801_state ) MCFG_FRAGMENT_ADD(pc9801_mouse) MCFG_FRAGMENT_ADD(pc9801_cbus) MCFG_FRAGMENT_ADD(pc9801_sasi) - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, pc9801_upd1990a_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL) MCFG_I8251_ADD(UPD8251_TAG, pc9801_uart_interface) MCFG_UPD765A_ADD("upd765_2hd", false, true) @@ -3631,7 +3625,7 @@ static MACHINE_CONFIG_START( pc9801rs, pc9801_state ) MCFG_I8255_ADD( "ppi8255_fdd", ppi_fdd_intf ) MCFG_FRAGMENT_ADD(pc9801_keyboard) MCFG_FRAGMENT_ADD(pc9801_mouse) - MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, pc9801_upd1990a_intf) + MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL) MCFG_I8251_ADD(UPD8251_TAG, pc9801_uart_interface) MCFG_UPD765A_ADD("upd765_2hd", false, true) @@ -3697,7 +3691,7 @@ static MACHINE_CONFIG_START( pc9821, pc9801_state ) MCFG_I8255_ADD( "ppi8255_fdd", ppi_fdd_intf ) MCFG_FRAGMENT_ADD(pc9801_keyboard) MCFG_FRAGMENT_ADD(pc9801_mouse) - MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, pc9801_upd1990a_intf) + MCFG_UPD1990A_ADD("upd1990a", XTAL_32_768kHz, NULL, NULL) MCFG_I8251_ADD(UPD8251_TAG, pc9801_uart_interface) MCFG_UPD765A_ADD("upd765_2hd", false, true) diff --git a/src/mess/drivers/prof80.c b/src/mess/drivers/prof80.c index a3967a61541..5f6a2bdd994 100644 --- a/src/mess/drivers/prof80.c +++ b/src/mess/drivers/prof80.c @@ -488,17 +488,6 @@ INPUT_PORTS_END // DEVICE CONFIGURATION //************************************************************************** -//------------------------------------------------- -// UPD1990A_INTERFACE( rtc_intf ) -//------------------------------------------------- - -static UPD1990A_INTERFACE( rtc_intf ) -{ - DEVCB_NULL, - DEVCB_NULL -}; - - //------------------------------------------------- // upd765_interface fdc_intf //------------------------------------------------- @@ -616,7 +605,7 @@ static MACHINE_CONFIG_START( prof80, prof80_state ) MCFG_CPU_IO_MAP(prof80_io) // devices - MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, rtc_intf) + MCFG_UPD1990A_ADD(UPD1990A_TAG, XTAL_32_768kHz, NULL, NULL) MCFG_UPD765A_ADD(UPD765_TAG, false, true) MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", prof80_floppies, "525qd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", prof80_floppies, "525qd", floppy_image_device::default_floppy_formats) diff --git a/src/mess/machine/a2thunderclock.c b/src/mess/machine/a2thunderclock.c index 3562744c3c9..22093856ce9 100644 --- a/src/mess/machine/a2thunderclock.c +++ b/src/mess/machine/a2thunderclock.c @@ -38,14 +38,8 @@ const device_type A2BUS_THUNDERCLOCK = &device_creator