mirror of
https://github.com/holub/mame
synced 2025-04-25 17:56:43 +03:00
Converted mc68901_device to devcb2 (nw)
This commit is contained in:
parent
6d8bb6ece0
commit
aa8f18efa3
@ -184,11 +184,11 @@ inline void mc68901_device::check_interrupts()
|
||||
{
|
||||
if (m_ipr & m_imr)
|
||||
{
|
||||
m_out_irq_func(ASSERT_LINE);
|
||||
m_out_irq_cb(ASSERT_LINE);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_out_irq_func(CLEAR_LINE);
|
||||
m_out_irq_cb(CLEAR_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -228,10 +228,10 @@ inline void mc68901_device::timer_count(int index)
|
||||
|
||||
switch (index)
|
||||
{
|
||||
case TIMER_A: m_out_tao_func(m_to[index]); break;
|
||||
case TIMER_B: m_out_tbo_func(m_to[index]); break;
|
||||
case TIMER_C: m_out_tco_func(m_to[index]); break;
|
||||
case TIMER_D: m_out_tdo_func(m_to[index]); break;
|
||||
case TIMER_A: m_out_tao_cb(m_to[index]); break;
|
||||
case TIMER_B: m_out_tbo_cb(m_to[index]); break;
|
||||
case TIMER_C: m_out_tco_cb(m_to[index]); break;
|
||||
case TIMER_D: m_out_tdo_cb(m_to[index]); break;
|
||||
}
|
||||
|
||||
if (m_ier & INT_MASK_TIMER[index])
|
||||
@ -323,7 +323,7 @@ void mc68901_device::gpio_output()
|
||||
if (m_gpio_output != new_gpio_output)
|
||||
{
|
||||
m_gpio_output = new_gpio_output;
|
||||
m_out_gpio_func(0, m_gpio_output);
|
||||
m_out_gpio_cb((offs_t)0, m_gpio_output);
|
||||
}
|
||||
}
|
||||
|
||||
@ -338,6 +338,18 @@ void mc68901_device::gpio_output()
|
||||
mc68901_device::mc68901_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, MC68901, "Motorola MC68901", tag, owner, clock, "mc68901", __FILE__),
|
||||
device_serial_interface(mconfig, *this),
|
||||
m_timer_clock(0),
|
||||
m_rx_clock(0),
|
||||
m_tx_clock(0),
|
||||
m_out_irq_cb(*this),
|
||||
m_out_gpio_cb(*this),
|
||||
m_out_tao_cb(*this),
|
||||
m_out_tbo_cb(*this),
|
||||
m_out_tco_cb(*this),
|
||||
m_out_tdo_cb(*this),
|
||||
m_out_so_cb(*this),
|
||||
//m_out_rr_cb(*this),
|
||||
//m_out_tr_cb(*this),
|
||||
m_aer(0),
|
||||
m_ier(0),
|
||||
m_gpio_input(0),
|
||||
@ -346,27 +358,6 @@ mc68901_device::mc68901_device(const machine_config &mconfig, const char *tag, d
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_config_complete - perform any
|
||||
// operations now that the configuration is
|
||||
// complete
|
||||
//-------------------------------------------------
|
||||
|
||||
void mc68901_device::device_config_complete()
|
||||
{
|
||||
// inherit a copy of the static data
|
||||
const mc68901_interface *intf = reinterpret_cast<const mc68901_interface *>(static_config());
|
||||
if (intf != NULL)
|
||||
*static_cast<mc68901_interface *>(this) = *intf;
|
||||
|
||||
// or initialize to defaults if none provided
|
||||
else
|
||||
{
|
||||
// memset(&in_pa_cb, 0, sizeof(in_pa_cb));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// device_start - device-specific startup
|
||||
//-------------------------------------------------
|
||||
@ -376,13 +367,15 @@ void mc68901_device::device_start()
|
||||
m_start_bit_hack_for_external_clocks = true;
|
||||
|
||||
/* resolve callbacks */
|
||||
m_out_gpio_func.resolve(m_out_gpio_cb, *this);
|
||||
m_out_so_func.resolve(m_out_so_cb, *this);
|
||||
m_out_tao_func.resolve(m_out_tao_cb, *this);
|
||||
m_out_tbo_func.resolve(m_out_tbo_cb, *this);
|
||||
m_out_tco_func.resolve(m_out_tco_cb, *this);
|
||||
m_out_tdo_func.resolve(m_out_tdo_cb, *this);
|
||||
m_out_irq_func.resolve(m_out_irq_cb, *this);
|
||||
m_out_irq_cb.resolve_safe();
|
||||
m_out_gpio_cb.resolve_safe();
|
||||
m_out_tao_cb.resolve_safe();
|
||||
m_out_tbo_cb.resolve_safe();
|
||||
m_out_tco_cb.resolve_safe();
|
||||
m_out_tdo_cb.resolve_safe();
|
||||
m_out_so_cb.resolve_safe();
|
||||
//m_out_rr_cb.resolve_safe();
|
||||
//m_out_tr_cb.resolve_safe();
|
||||
|
||||
/* create the timers */
|
||||
m_timer[TIMER_A] = timer_alloc(TIMER_A);
|
||||
@ -492,7 +485,7 @@ void mc68901_device::device_timer(emu_timer &timer, device_timer_id id, int para
|
||||
|
||||
void mc68901_device::tra_callback()
|
||||
{
|
||||
m_out_so_func(transmit_register_get_data_bit());
|
||||
m_out_so_cb(transmit_register_get_data_bit());
|
||||
}
|
||||
|
||||
|
||||
@ -740,7 +733,7 @@ void mc68901_device::register_w(offs_t offset, UINT8 data)
|
||||
|
||||
m_to[TIMER_A] = 0;
|
||||
|
||||
m_out_tao_func(m_to[TIMER_A]);
|
||||
m_out_tao_cb(m_to[TIMER_A]);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -795,7 +788,7 @@ void mc68901_device::register_w(offs_t offset, UINT8 data)
|
||||
|
||||
m_to[TIMER_B] = 0;
|
||||
|
||||
m_out_tbo_func(m_to[TIMER_B]);
|
||||
m_out_tbo_cb(m_to[TIMER_B]);
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -44,65 +44,74 @@
|
||||
#include "emu.h"
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// MACROS / CONSTANTS
|
||||
//**************************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_MC68901_ADD(_tag, _clock, _config) \
|
||||
MCFG_DEVICE_ADD((_tag), MC68901, _clock) \
|
||||
MCFG_DEVICE_CONFIG(_config)
|
||||
#define MCFG_MC68901_TIMER_CLOCK(_clk) \
|
||||
mc68901_device::set_timer_clock(*device, _clk);
|
||||
|
||||
#define MC68901_INTERFACE(name) \
|
||||
const mc68901_interface (name) =
|
||||
#define MCFG_MC68901_RX_CLOCK(_clk) \
|
||||
mc68901_device::set_rx_clock(*device, _clk);
|
||||
|
||||
#define MCFG_MC68901_TX_CLOCK(_clk) \
|
||||
mc68901_device::set_tx_clock(*device, _clk);
|
||||
|
||||
#define MCFG_MC68901_OUT_IRQ_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_irq_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_MC68901_OUT_GPIO_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_gpio_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_MC68901_OUT_TAO_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_tao_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_MC68901_OUT_TBO_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_tbo_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_MC68901_OUT_TCO_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_tco_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_MC68901_OUT_TDO_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_tdo_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_MC68901_OUT_SO_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_so_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
/*#define MCFG_MC68901_OUT_RR_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_rr_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_MC68901_OUT_TR_CB(_devcb) \
|
||||
devcb = &mc68901_device::set_out_tr_callback(*device, DEVCB2_##_devcb);*/
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
|
||||
// ======================> mc68901_interface
|
||||
|
||||
struct mc68901_interface
|
||||
{
|
||||
int m_timer_clock; /* timer clock */
|
||||
int m_rx_clock; /* serial receive clock */
|
||||
int m_tx_clock; /* serial transmit clock */
|
||||
|
||||
devcb_write_line m_out_irq_cb;
|
||||
|
||||
devcb_write8 m_out_gpio_cb;
|
||||
|
||||
devcb_write_line m_out_tao_cb;
|
||||
devcb_write_line m_out_tbo_cb;
|
||||
devcb_write_line m_out_tco_cb;
|
||||
devcb_write_line m_out_tdo_cb;
|
||||
|
||||
devcb_write_line m_out_so_cb;
|
||||
devcb_write_line m_out_rr_cb;
|
||||
devcb_write_line m_out_tr_cb;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// ======================> mc68901_device
|
||||
|
||||
class mc68901_device : public device_t,
|
||||
public device_serial_interface,
|
||||
public mc68901_interface
|
||||
public device_serial_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
mc68901_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
static void set_timer_clock(device_t &device, int timer_clock) { downcast<mc68901_device &>(device).m_timer_clock = timer_clock; }
|
||||
static void set_rx_clock(device_t &device, int rx_clock) { downcast<mc68901_device &>(device).m_rx_clock = rx_clock; }
|
||||
static void set_tx_clock(device_t &device, int tx_clock) { downcast<mc68901_device &>(device).m_tx_clock = tx_clock; }
|
||||
template<class _Object> static devcb2_base &set_out_irq_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_irq_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_out_gpio_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_gpio_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_out_tao_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_tao_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_out_tbo_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_tbo_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_out_tco_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_tco_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_out_tdo_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_tdo_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_out_so_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_so_cb.set_callback(object); }
|
||||
//template<class _Object> static devcb2_base &set_rr_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_rr_cb.set_callback(object); }
|
||||
//template<class _Object> static devcb2_base &set_tr_callback(device_t &device, _Object object) { return downcast<mc68901_device &>(device).m_out_tr_cb.set_callback(object); }
|
||||
|
||||
DECLARE_READ8_MEMBER( read );
|
||||
DECLARE_WRITE8_MEMBER( write );
|
||||
|
||||
@ -124,7 +133,6 @@ 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);
|
||||
@ -235,13 +243,22 @@ private:
|
||||
static const int GPIO_TIMER[];
|
||||
static const int PRESCALER[];
|
||||
|
||||
devcb_resolved_write8 m_out_gpio_func;
|
||||
devcb_resolved_write_line m_out_so_func;
|
||||
devcb_resolved_write_line m_out_tao_func;
|
||||
devcb_resolved_write_line m_out_tbo_func;
|
||||
devcb_resolved_write_line m_out_tco_func;
|
||||
devcb_resolved_write_line m_out_tdo_func;
|
||||
devcb_resolved_write_line m_out_irq_func;
|
||||
int m_timer_clock; /* timer clock */
|
||||
int m_rx_clock; /* serial receive clock */
|
||||
int m_tx_clock; /* serial transmit clock */
|
||||
|
||||
devcb2_write_line m_out_irq_cb;
|
||||
|
||||
devcb2_write8 m_out_gpio_cb;
|
||||
|
||||
devcb2_write_line m_out_tao_cb;
|
||||
devcb2_write_line m_out_tbo_cb;
|
||||
devcb2_write_line m_out_tco_cb;
|
||||
devcb2_write_line m_out_tdo_cb;
|
||||
|
||||
devcb2_write_line m_out_so_cb;
|
||||
//devcb2_write_line m_out_rr_cb;
|
||||
//devcb2_write_line m_out_tr_cb;
|
||||
|
||||
//int m_device_type; /* device type */
|
||||
|
||||
|
@ -307,22 +307,6 @@ static const duart68681_config micro3d_duart68681_config =
|
||||
micro3d_duart_output_w
|
||||
};
|
||||
|
||||
static MC68901_INTERFACE( mfp_intf )
|
||||
{
|
||||
4000000, /* timer clock */
|
||||
0, /* receive clock */
|
||||
0, /* transmit clock */
|
||||
DEVCB_CPU_INPUT_LINE("maincpu", M68K_IRQ_4), /* interrupt */
|
||||
DEVCB_NULL, /* GPIO write */
|
||||
DEVCB_NULL, /* TAO */
|
||||
DEVCB_NULL, /* TBO */
|
||||
DEVCB_NULL, /* TCO */
|
||||
DEVCB_NULL, /* TDO */
|
||||
DEVCB_NULL, /* serial output */
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
@ -349,7 +333,12 @@ static MACHINE_CONFIG_START( micro3d, micro3d_state )
|
||||
MCFG_CPU_IO_MAP(soundmem_io)
|
||||
|
||||
MCFG_DUART68681_ADD("duart68681", XTAL_3_6864MHz, micro3d_duart68681_config)
|
||||
MCFG_MC68901_ADD("mc68901", 4000000, mfp_intf)
|
||||
|
||||
MCFG_DEVICE_ADD("mc68901", MC68901, 4000000)
|
||||
MCFG_MC68901_TIMER_CLOCK(4000000)
|
||||
MCFG_MC68901_RX_CLOCK(0)
|
||||
MCFG_MC68901_TX_CLOCK(0)
|
||||
MCFG_MC68901_OUT_IRQ_CB(INPUTLINE("maincpu", M68K_IRQ_4))
|
||||
|
||||
MCFG_NVRAM_ADD_0FILL("nvram")
|
||||
MCFG_QUANTUM_TIME(attotime::from_hz(3000))
|
||||
|
@ -1864,72 +1864,11 @@ WRITE_LINE_MEMBER(st_state::write_acia_clock)
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MC68901_INTERFACE( mfp_intf )
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE_LINE_MEMBER( st_state::mfp_tdo_w )
|
||||
{
|
||||
m_mfp->clock_w(state);
|
||||
}
|
||||
|
||||
static MC68901_INTERFACE( mfp_intf )
|
||||
{
|
||||
Y1, /* timer clock */
|
||||
0, /* receive clock */
|
||||
0, /* transmit clock */
|
||||
DEVCB_CPU_INPUT_LINE(M68000_TAG, M68K_IRQ_6), /* interrupt */
|
||||
DEVCB_NULL, /* GPIO write */
|
||||
DEVCB_NULL, /* TAO */
|
||||
DEVCB_NULL, /* TBO */
|
||||
DEVCB_NULL, /* TCO */
|
||||
DEVCB_DRIVER_LINE_MEMBER(st_state, mfp_tdo_w), /* TDO */
|
||||
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, write_txd)
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MC68901_INTERFACE( atariste_mfp_intf )
|
||||
//-------------------------------------------------
|
||||
|
||||
static MC68901_INTERFACE( atariste_mfp_intf )
|
||||
{
|
||||
Y1, /* timer clock */
|
||||
0, /* receive clock */
|
||||
0, /* transmit clock */
|
||||
DEVCB_CPU_INPUT_LINE(M68000_TAG, M68K_IRQ_6), /* interrupt */
|
||||
DEVCB_NULL, /* GPIO write */
|
||||
DEVCB_NULL, /* TAO */
|
||||
DEVCB_NULL, /* TBO */
|
||||
DEVCB_NULL, /* TCO */
|
||||
DEVCB_DRIVER_LINE_MEMBER(st_state, mfp_tdo_w), /* TDO */
|
||||
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, write_txd)
|
||||
};
|
||||
|
||||
|
||||
//-------------------------------------------------
|
||||
// MC68901_INTERFACE( stbook_mfp_intf )
|
||||
//-------------------------------------------------
|
||||
|
||||
|
||||
// TODO power alarms (i7_w)
|
||||
|
||||
#if 0
|
||||
static MC68901_INTERFACE( stbook_mfp_intf )
|
||||
{
|
||||
Y1, /* timer clock */
|
||||
0, /* receive clock */
|
||||
0, /* transmit clock */
|
||||
DEVCB_CPU_INPUT_LINE(M68000_TAG, M68K_IRQ_6), /* interrupt */
|
||||
DEVCB_NULL, /* GPIO write */
|
||||
DEVCB_NULL, /* TAO */
|
||||
DEVCB_NULL, /* TBO */
|
||||
DEVCB_NULL, /* TCO */
|
||||
DEVCB_DRIVER_LINE_MEMBER(st_state, mfp_tdo_w), /* TDO */
|
||||
DEVCB_DEVICE_LINE_MEMBER(RS232_TAG, rs232_port_device, write_txd)
|
||||
};
|
||||
#endif
|
||||
|
||||
void st_state::fdc_intrq_w(bool state)
|
||||
{
|
||||
m_mfp->i5_w(!state);
|
||||
@ -2209,7 +2148,13 @@ static MACHINE_CONFIG_START( st, st_state )
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_MC68901_ADD(MC68901_TAG, Y2/8, mfp_intf)
|
||||
MCFG_DEVICE_ADD(MC68901_TAG, MC68901, Y2/8)
|
||||
MCFG_MC68901_TIMER_CLOCK(Y1)
|
||||
MCFG_MC68901_RX_CLOCK(0)
|
||||
MCFG_MC68901_TX_CLOCK(0)
|
||||
MCFG_MC68901_OUT_IRQ_CB(INPUTLINE(M68000_TAG, M68K_IRQ_6))
|
||||
MCFG_MC68901_OUT_TDO_CB(WRITELINE(st_state, mfp_tdo_w))
|
||||
MCFG_MC68901_OUT_SO_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_txd))
|
||||
|
||||
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, write_rx))
|
||||
@ -2288,7 +2233,13 @@ static MACHINE_CONFIG_START( megast, megast_state )
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_MC68901_ADD(MC68901_TAG, Y2/8, mfp_intf)
|
||||
MCFG_DEVICE_ADD(MC68901_TAG, MC68901, Y2/8)
|
||||
MCFG_MC68901_TIMER_CLOCK(Y1)
|
||||
MCFG_MC68901_RX_CLOCK(0)
|
||||
MCFG_MC68901_TX_CLOCK(0)
|
||||
MCFG_MC68901_OUT_IRQ_CB(INPUTLINE(M68000_TAG, M68K_IRQ_6))
|
||||
MCFG_MC68901_OUT_TDO_CB(WRITELINE(st_state, mfp_tdo_w))
|
||||
MCFG_MC68901_OUT_SO_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_txd))
|
||||
|
||||
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, write_rx))
|
||||
@ -2374,7 +2325,13 @@ static MACHINE_CONFIG_START( ste, ste_state )
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_MC68901_ADD(MC68901_TAG, Y2/8, atariste_mfp_intf)
|
||||
MCFG_DEVICE_ADD(MC68901_TAG, MC68901, Y2/8)
|
||||
MCFG_MC68901_TIMER_CLOCK(Y1)
|
||||
MCFG_MC68901_RX_CLOCK(0)
|
||||
MCFG_MC68901_TX_CLOCK(0)
|
||||
MCFG_MC68901_OUT_IRQ_CB(INPUTLINE(M68000_TAG, M68K_IRQ_6))
|
||||
MCFG_MC68901_OUT_TDO_CB(WRITELINE(st_state, mfp_tdo_w))
|
||||
MCFG_MC68901_OUT_SO_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_txd))
|
||||
|
||||
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, NULL)
|
||||
MCFG_RS232_RXD_HANDLER(DEVWRITELINE(MC68901_TAG, mc68901_device, write_rx))
|
||||
@ -2458,7 +2415,14 @@ static MACHINE_CONFIG_START( stbook, stbook_state )
|
||||
MCFG_SOUND_CONFIG(stbook_psg_intf)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
|
||||
MCFG_MC68901_ADD(MC68901_TAG, U517/8, stbook_mfp_intf)
|
||||
MCFG_DEVICE_ADD(MC68901_TAG, MC68901, U517/8)
|
||||
MCFG_MC68901_TIMER_CLOCK(Y1)
|
||||
MCFG_MC68901_RX_CLOCK(0)
|
||||
MCFG_MC68901_TX_CLOCK(0)
|
||||
MCFG_MC68901_OUT_IRQ_CB(INPUTLINE(M68000_TAG, M68K_IRQ_6))
|
||||
MCFG_MC68901_OUT_TDO_CB(WRITELINE(st_state, mfp_tdo_w))
|
||||
MCFG_MC68901_OUT_SO_CB(DEVWRITELINE(RS232_TAG, rs232_port_device, write_txd))
|
||||
|
||||
MCFG_WD1772x_ADD(WD1772_TAG, U517/2)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":0", atari_floppies, "35dd", 0, st_state::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(WD1772_TAG ":1", atari_floppies, 0, 0, st_state::floppy_formats)
|
||||
|
@ -98,22 +98,6 @@ SLOT_INTERFACE_START( indiana_isa_cards )
|
||||
SLOT_INTERFACE("ide", ISA16_IDE)
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
static MC68901_INTERFACE( mfp_interface )
|
||||
{
|
||||
XTAL_16MHz/4, /* timer clock */
|
||||
0, /* receive clock */
|
||||
0, /* transmit clock */
|
||||
DEVCB_NULL, /* interrupt */
|
||||
DEVCB_NULL, /* GPIO write */
|
||||
DEVCB_NULL, /* TAO */
|
||||
DEVCB_NULL, /* TBO */
|
||||
DEVCB_NULL, /* TCO */
|
||||
DEVCB_NULL, /* TDO */
|
||||
DEVCB_DEVICE_LINE_MEMBER("keyboard", serial_keyboard_device, input_txd), /* serial output */
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static struct serial_keyboard_interface keyboard_interface =
|
||||
{
|
||||
DEVCB_DEVICE_LINE_MEMBER(MFP_TAG, mc68901_device, write_rx)
|
||||
@ -131,7 +115,12 @@ static MACHINE_CONFIG_START( indiana, indiana_state )
|
||||
MCFG_ISA16_SLOT_ADD(ISABUS_TAG, "isa3", indiana_isa_cards, "comat", false)
|
||||
MCFG_ISA16_SLOT_ADD(ISABUS_TAG, "isa4", indiana_isa_cards, "ide", false)
|
||||
|
||||
MCFG_MC68901_ADD(MFP_TAG, XTAL_16MHz/4, mfp_interface)
|
||||
MCFG_DEVICE_ADD(MFP_TAG, MC68901, XTAL_16MHz/4)
|
||||
MCFG_MC68901_TIMER_CLOCK(XTAL_16MHz/4)
|
||||
MCFG_MC68901_RX_CLOCK(0)
|
||||
MCFG_MC68901_TX_CLOCK(0)
|
||||
MCFG_MC68901_OUT_SO_CB(DEVWRITELINE("keyboard", serial_keyboard_device, input_txd))
|
||||
|
||||
MCFG_SERIAL_KEYBOARD_ADD("keyboard", keyboard_interface, 1200)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -1409,22 +1409,6 @@ WRITE_LINE_MEMBER( x68k_state::mfp_tbo_w )
|
||||
m_mfpdev->clock_w(state);
|
||||
}
|
||||
|
||||
static MC68901_INTERFACE( mfp_interface )
|
||||
{
|
||||
4000000, /* timer clock */
|
||||
0, /* receive clock */
|
||||
0, /* transmit clock */
|
||||
DEVCB_DRIVER_LINE_MEMBER(x68k_state,mfp_irq_callback), /* interrupt */
|
||||
DEVCB_NULL, /* GPIO write */
|
||||
DEVCB_NULL, /* TAO */
|
||||
DEVCB_DRIVER_LINE_MEMBER(x68k_state, mfp_tbo_w), /* TBO */
|
||||
DEVCB_NULL, /* TCO */
|
||||
DEVCB_NULL, /* TDO */
|
||||
DEVCB_DEVICE_LINE_MEMBER("keyboard", serial_keyboard_device, input_txd), /* serial output */
|
||||
DEVCB_NULL,
|
||||
DEVCB_NULL
|
||||
};
|
||||
|
||||
static struct serial_keyboard_interface x68k_keyboard_interface =
|
||||
{
|
||||
DEVCB_DEVICE_LINE_MEMBER(MC68901_TAG, mc68901_device, write_rx)
|
||||
@ -1929,7 +1913,13 @@ static MACHINE_CONFIG_FRAGMENT( x68000_base )
|
||||
MCFG_MACHINE_RESET_OVERRIDE(x68k_state, x68000 )
|
||||
|
||||
/* device hardware */
|
||||
MCFG_MC68901_ADD(MC68901_TAG, 4000000, mfp_interface)
|
||||
MCFG_DEVICE_ADD(MC68901_TAG, MC68901, 4000000)
|
||||
MCFG_MC68901_TIMER_CLOCK(4000000)
|
||||
MCFG_MC68901_RX_CLOCK(0)
|
||||
MCFG_MC68901_TX_CLOCK(0)
|
||||
MCFG_MC68901_OUT_IRQ_CB(WRITELINE(x68k_state, mfp_irq_callback))
|
||||
MCFG_MC68901_OUT_TBO_CB(WRITELINE(x68k_state, mfp_tbo_w))
|
||||
MCFG_MC68901_OUT_SO_CB(DEVWRITELINE("keyboard", serial_keyboard_device, input_txd))
|
||||
|
||||
MCFG_X68K_KEYBOARD_ADD("keyboard", x68k_keyboard_interface)
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
||||
|
||||
#include "emu.h"
|
||||
#include "cpu/m68000/m68000.h"
|
||||
#include "machine/mc68901.h"
|
||||
#include "machine/ram.h"
|
||||
#include "video/atarist.h"
|
||||
#include "includes/atarist.h"
|
||||
|
Loading…
Reference in New Issue
Block a user