mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
upd1990a: devcb2. (nw)
This commit is contained in:
parent
ab3134c696
commit
36198d2169
@ -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<upd1990a_device>;
|
||||
const device_type UPD4990A = &device_creator<upd4990a_device>;
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
@ -31,18 +27,14 @@ const device_type UPD4990A = &device_creator<upd4990a_device>;
|
||||
#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<upd1990a_device>;
|
||||
const device_type UPD4990A = &device_creator<upd4990a_device>;
|
||||
|
||||
|
||||
|
||||
@ -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<const upd1990a_interface *>(static_config());
|
||||
if (intf != NULL)
|
||||
*static_cast<upd1990a_interface *>(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;
|
||||
}
|
||||
|
@ -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<upd1990a_device *>(device)->set_data_callback(DEVCB2_##_data); \
|
||||
downcast<upd1990a_device *>(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<upd1990a_device *>(device)->set_data_callback(DEVCB2_##_data); \
|
||||
downcast<upd1990a_device *>(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<class _data> void set_data_callback(_data data) { m_write_data.set_callback(data); }
|
||||
template<class _tp> 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
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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")
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -38,14 +38,8 @@ const device_type A2BUS_THUNDERCLOCK = &device_creator<a2bus_thunderclock_device
|
||||
#define THUNDERCLOCK_ROM_REGION "thunclk_rom"
|
||||
#define THUNDERCLOCK_UPD1990_TAG "thunclk_upd"
|
||||
|
||||
static UPD1990A_INTERFACE( thunderclock_upd1990a_intf )
|
||||
{
|
||||
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, a2bus_thunderclock_device, upd_dataout_w),
|
||||
DEVCB_NULL // TP out not used? for Thunderclock
|
||||
};
|
||||
|
||||
MACHINE_CONFIG_FRAGMENT( thunderclock )
|
||||
MCFG_UPD1990A_ADD(THUNDERCLOCK_UPD1990_TAG, 1021800, thunderclock_upd1990a_intf)
|
||||
MCFG_UPD1990A_ADD(THUNDERCLOCK_UPD1990_TAG, 1021800, DEVWRITELINE(DEVICE_SELF_OWNER, a2bus_thunderclock_device, upd_dataout_w), NULL)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
ROM_START( thunderclock )
|
||||
|
@ -163,12 +163,6 @@ WRITE_LINE_MEMBER( s100_wunderbus_device::rtc_tp_w )
|
||||
}
|
||||
}
|
||||
|
||||
static UPD1990A_INTERFACE( rtc_intf )
|
||||
{
|
||||
DEVCB_NULL,
|
||||
DEVCB_DEVICE_LINE_MEMBER(DEVICE_SELF_OWNER, s100_wunderbus_device, rtc_tp_w)
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MACHINE_CONFIG_FRAGMENT( s100_wunderbus )
|
||||
@ -183,7 +177,7 @@ static MACHINE_CONFIG_FRAGMENT( s100_wunderbus )
|
||||
MCFG_DEVICE_CARD_DEVICE_INPUT_DEFAULTS("serial_terminal", terminal)
|
||||
MCFG_RS232_PORT_ADD(RS232_B_TAG, rs232b_intf, default_rs232_devices, NULL)
|
||||
MCFG_RS232_PORT_ADD(RS232_C_TAG, rs232c_intf, default_rs232_devices, NULL)
|
||||
MCFG_UPD1990A_ADD(UPD1990C_TAG, XTAL_32_768kHz, rtc_intf)
|
||||
MCFG_UPD1990A_ADD(UPD1990C_TAG, XTAL_32_768kHz, NULL, DEVWRITELINE(DEVICE_SELF_OWNER, s100_wunderbus_device, rtc_tp_w))
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user