mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
(nw) 6821 and 6850 have no clock for bus logic side, remove some MFCG_, fix build, tidy some stuff
This commit is contained in:
parent
b3f639da1f
commit
a53816282c
@ -72,11 +72,11 @@ ioport_constructor a2bus_pic_device::device_input_ports() const
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(a2bus_pic_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD(m_ctx, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("ctx_data_in")
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, a2bus_pic_device, ack_w))
|
||||
CENTRONICS(config, m_ctx, centronics_devices, "printer");
|
||||
m_ctx->set_data_input_buffer(m_ctx_data_in);
|
||||
m_ctx->ack_handler().set(FUNC(a2bus_pic_device::ack_w));
|
||||
|
||||
MCFG_DEVICE_ADD("ctx_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, m_ctx_data_in);
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("ctx_data_out", PIC_CENTRONICS_TAG)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -18,7 +18,6 @@
|
||||
#define M6801_TAG "m6801"
|
||||
#define MC2661_TAG "mc2661"
|
||||
#define RS232_TAG "rs232"
|
||||
#define CENTRONICS_TAG "centronics"
|
||||
|
||||
|
||||
|
||||
@ -85,10 +84,10 @@ MACHINE_CONFIG_START(adam_spi_device::device_add_mconfig)
|
||||
|
||||
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
|
||||
|
||||
MCFG_DEVICE_ADD(CENTRONICS_TAG, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
|
||||
centronics_device ¢ronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
|
||||
centronics.set_data_input_buffer("cent_data_in");
|
||||
INPUT_BUFFER(config, "cent_data_in");
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
@ -102,9 +101,9 @@ MACHINE_CONFIG_END
|
||||
//-------------------------------------------------
|
||||
|
||||
adam_spi_device::adam_spi_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, ADAM_SPI, tag, owner, clock),
|
||||
device_adamnet_card_interface(mconfig, *this),
|
||||
m_maincpu(*this, M6801_TAG)
|
||||
: device_t(mconfig, ADAM_SPI, tag, owner, clock)
|
||||
, device_adamnet_card_interface(mconfig, *this)
|
||||
, m_maincpu(*this, M6801_TAG)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -34,18 +34,6 @@
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
//**************************************************************************
|
||||
|
||||
#define MCFG_APRICOT_KEYBOARD_INTERFACE_ADD(_tag, _def_slot) \
|
||||
MCFG_DEVICE_ADD(_tag, APRICOT_KEYBOARD_INTERFACE, 0) \
|
||||
MCFG_DEVICE_SLOT_INTERFACE(apricot_keyboard_devices, _def_slot, false)
|
||||
|
||||
#define MCFG_APRICOT_KEYBOARD_IN_HANDLER(_devcb) \
|
||||
downcast<apricot_keyboard_bus_device &>(*device).set_in_handler(DEVCB_##_devcb);
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// TYPE DEFINITIONS
|
||||
//**************************************************************************
|
||||
@ -58,11 +46,20 @@ class apricot_keyboard_bus_device : public device_t, public device_slot_interfac
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
template <typename T>
|
||||
apricot_keyboard_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt)
|
||||
: apricot_keyboard_bus_device(mconfig, tag, owner, 0)
|
||||
{
|
||||
option_reset();
|
||||
opts(*this);
|
||||
set_default_option(dflt);
|
||||
set_fixed(false);
|
||||
}
|
||||
apricot_keyboard_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
virtual ~apricot_keyboard_bus_device();
|
||||
|
||||
// callbacks
|
||||
template <class Object> devcb_base &set_in_handler(Object &&cb) { return m_in_handler.set_callback(std::forward<Object>(cb)); }
|
||||
auto in_handler() { return m_in_handler.bind(); }
|
||||
|
||||
// called from keyboard
|
||||
DECLARE_WRITE_LINE_MEMBER( in_w ) { m_in_handler(state); }
|
||||
|
@ -76,16 +76,6 @@
|
||||
MCFG_OUTPUT_LATCH_BIT6_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data6)) \
|
||||
MCFG_OUTPUT_LATCH_BIT7_HANDLER(WRITELINE(_centronics_tag, centronics_device, write_data7))
|
||||
|
||||
#define MCFG_CENTRONICS_DATA_INPUT_BUFFER(_tag) \
|
||||
MCFG_CENTRONICS_DATA0_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit0)) \
|
||||
MCFG_CENTRONICS_DATA1_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit1)) \
|
||||
MCFG_CENTRONICS_DATA2_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit2)) \
|
||||
MCFG_CENTRONICS_DATA3_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit3)) \
|
||||
MCFG_CENTRONICS_DATA4_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit4)) \
|
||||
MCFG_CENTRONICS_DATA5_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit5)) \
|
||||
MCFG_CENTRONICS_DATA6_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit6)) \
|
||||
MCFG_CENTRONICS_DATA7_HANDLER(WRITELINE(_tag, input_buffer_device, write_bit7))
|
||||
|
||||
DECLARE_DEVICE_TYPE(CENTRONICS, centronics_device)
|
||||
|
||||
class device_centronics_peripheral_interface;
|
||||
@ -125,6 +115,8 @@ public:
|
||||
template <class Object> devcb_base &set_init_handler(Object &&cb) { return m_init_handler.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_select_in_handler(Object &&cb) { return m_select_in_handler.set_callback(std::forward<Object>(cb)); }
|
||||
|
||||
auto strobe_handler() { return m_strobe_handler.bind(); }
|
||||
|
||||
auto ack_handler() { return m_ack_handler.bind(); }
|
||||
auto busy_handler() { return m_busy_handler.bind(); }
|
||||
auto perror_handler() { return m_perror_handler.bind(); }
|
||||
@ -134,6 +126,18 @@ public:
|
||||
auto init_handler() { return m_init_handler.bind(); }
|
||||
auto select_in_handler() { return m_select_in_handler.bind(); }
|
||||
|
||||
template <typename T> void set_data_input_buffer(T &&tag)
|
||||
{
|
||||
m_data0_handler.bind().set(tag, FUNC(input_buffer_device::write_bit0));
|
||||
m_data1_handler.bind().set(tag, FUNC(input_buffer_device::write_bit1));
|
||||
m_data2_handler.bind().set(tag, FUNC(input_buffer_device::write_bit2));
|
||||
m_data3_handler.bind().set(tag, FUNC(input_buffer_device::write_bit3));
|
||||
m_data4_handler.bind().set(tag, FUNC(input_buffer_device::write_bit4));
|
||||
m_data5_handler.bind().set(tag, FUNC(input_buffer_device::write_bit5));
|
||||
m_data6_handler.bind().set(tag, FUNC(input_buffer_device::write_bit6));
|
||||
m_data7_handler.bind().set(tag, FUNC(input_buffer_device::write_bit7));
|
||||
}
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER( write_strobe );
|
||||
DECLARE_WRITE_LINE_MEMBER( write_data0 );
|
||||
DECLARE_WRITE_LINE_MEMBER( write_data1 );
|
||||
|
@ -74,25 +74,25 @@ void dmv_k210_device::device_timer(emu_timer &timer, device_timer_id tid, int pa
|
||||
//-------------------------------------------------
|
||||
|
||||
MACHINE_CONFIG_START(dmv_k210_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("ppi8255", I8255, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(READ8(*this, dmv_k210_device, porta_r))
|
||||
MCFG_I8255_IN_PORTB_CB(READ8(*this, dmv_k210_device, portb_r))
|
||||
MCFG_I8255_IN_PORTC_CB(READ8(*this, dmv_k210_device, portc_r))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8(*this, dmv_k210_device, porta_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, dmv_k210_device, portb_w))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, dmv_k210_device, portc_w))
|
||||
I8255(config, m_ppi, 0);
|
||||
m_ppi->in_pa_callback().set(FUNC(dmv_k210_device::porta_r));
|
||||
m_ppi->in_pb_callback().set(FUNC(dmv_k210_device::portb_r));
|
||||
m_ppi->in_pc_callback().set(FUNC(dmv_k210_device::portc_r));
|
||||
m_ppi->out_pa_callback().set(FUNC(dmv_k210_device::porta_w));
|
||||
m_ppi->out_pb_callback().set(FUNC(dmv_k210_device::portb_w));
|
||||
m_ppi->out_pc_callback().set(FUNC(dmv_k210_device::portc_w));
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, dmv_k210_device, cent_ack_w))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, dmv_k210_device, cent_busy_w))
|
||||
MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE(*this, dmv_k210_device, cent_slct_w))
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, dmv_k210_device, cent_pe_w))
|
||||
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, dmv_k210_device, cent_fault_w))
|
||||
MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE(*this, dmv_k210_device, cent_autofd_w))
|
||||
MCFG_CENTRONICS_INIT_HANDLER(WRITELINE(*this, dmv_k210_device, cent_init_w))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer(m_cent_data_in);
|
||||
m_centronics->ack_handler().set(FUNC(dmv_k210_device::cent_ack_w));
|
||||
m_centronics->busy_handler().set(FUNC(dmv_k210_device::cent_busy_w));
|
||||
m_centronics->select_in_handler().set(FUNC(dmv_k210_device::cent_slct_w));
|
||||
m_centronics->perror_handler().set(FUNC(dmv_k210_device::cent_pe_w));
|
||||
m_centronics->fault_handler().set(FUNC(dmv_k210_device::cent_fault_w));
|
||||
m_centronics->autofd_handler().set(FUNC(dmv_k210_device::cent_autofd_w));
|
||||
m_centronics->init_handler().set(FUNC(dmv_k210_device::cent_init_w));
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, m_cent_data_in);
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -77,7 +77,7 @@ class pia6821_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
pia6821_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
pia6821_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
// static configuration helpers
|
||||
// TODO: REMOVE THESE
|
||||
|
@ -27,7 +27,7 @@ class acia6850_device : public device_t
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
acia6850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
acia6850_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
// static configuration helpers
|
||||
template <class Object> devcb_base &set_txd_handler(Object &&cb) { return m_txd_handler.set_callback(std::forward<Object>(cb)); }
|
||||
|
@ -6,7 +6,7 @@
|
||||
class input_buffer_device : public device_t
|
||||
{
|
||||
public:
|
||||
input_buffer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
input_buffer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
|
||||
|
||||
uint8_t read() { return m_input_data; }
|
||||
DECLARE_READ8_MEMBER(bus_r) { return read(); }
|
||||
|
@ -12,8 +12,8 @@
|
||||
|
||||
DEFINE_DEVICE_TYPE(PC_LPT, pc_lpt_device, "pc_lpt", "PC LPT")
|
||||
|
||||
pc_lpt_device::pc_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: device_t(mconfig, PC_LPT, tag, owner, clock),
|
||||
pc_lpt_device::pc_lpt_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||
device_t(mconfig, PC_LPT, tag, owner, clock),
|
||||
m_irq(1),
|
||||
m_data(0xff), m_control(0),
|
||||
m_irq_enabled(1),
|
||||
@ -47,31 +47,31 @@ void pc_lpt_device::device_reset()
|
||||
}
|
||||
|
||||
MACHINE_CONFIG_START(pc_lpt_device::device_add_mconfig)
|
||||
MCFG_DEVICE_ADD("centronics", CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit3))
|
||||
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit4))
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit5))
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, pc_lpt_device, write_centronics_ack))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("cent_status_in", input_buffer_device, write_bit7))
|
||||
centronics_device ¢ronics(CENTRONICS(config, "centronics", centronics_devices, "printer"));
|
||||
centronics.set_data_input_buffer(m_cent_data_in);
|
||||
centronics.fault_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit3));
|
||||
centronics.select_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit4));
|
||||
centronics.perror_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit5));
|
||||
centronics.ack_handler().set(FUNC(pc_lpt_device::write_centronics_ack));
|
||||
centronics.busy_handler().set(m_cent_status_in, FUNC(input_buffer_device::write_bit7));
|
||||
|
||||
MCFG_CENTRONICS_STROBE_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit0))
|
||||
MCFG_CENTRONICS_AUTOFD_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit1))
|
||||
MCFG_CENTRONICS_INIT_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit2))
|
||||
MCFG_CENTRONICS_SELECT_IN_HANDLER(WRITELINE("cent_ctrl_in", input_buffer_device, write_bit3))
|
||||
centronics.strobe_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit0));
|
||||
centronics.autofd_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit1));
|
||||
centronics.init_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit2));
|
||||
centronics.select_in_handler().set(m_cent_ctrl_in, FUNC(input_buffer_device::write_bit3));
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
MCFG_DEVICE_ADD("cent_ctrl_in", INPUT_BUFFER, 0)
|
||||
MCFG_DEVICE_ADD("cent_status_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, m_cent_data_in);
|
||||
INPUT_BUFFER(config, m_cent_ctrl_in);
|
||||
INPUT_BUFFER(config, m_cent_status_in);
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_DEVICE_ADD("cent_ctrl_out", OUTPUT_LATCH, 0)
|
||||
MCFG_OUTPUT_LATCH_BIT0_HANDLER(WRITELINE("centronics", centronics_device, write_strobe))
|
||||
MCFG_OUTPUT_LATCH_BIT1_HANDLER(WRITELINE("centronics", centronics_device, write_autofd))
|
||||
MCFG_OUTPUT_LATCH_BIT2_HANDLER(WRITELINE("centronics", centronics_device, write_init))
|
||||
MCFG_OUTPUT_LATCH_BIT3_HANDLER(WRITELINE("centronics", centronics_device, write_select_in))
|
||||
MCFG_OUTPUT_LATCH_BIT4_HANDLER(WRITELINE(*this, pc_lpt_device, write_irq_enabled))
|
||||
OUTPUT_LATCH(config, m_cent_ctrl_out);
|
||||
m_cent_ctrl_out->bit_handler<0>().set("centronics", FUNC(centronics_device::write_strobe));
|
||||
m_cent_ctrl_out->bit_handler<1>().set("centronics", FUNC(centronics_device::write_autofd));
|
||||
m_cent_ctrl_out->bit_handler<2>().set("centronics", FUNC(centronics_device::write_init));
|
||||
m_cent_ctrl_out->bit_handler<3>().set("centronics", FUNC(centronics_device::write_select_in));
|
||||
m_cent_ctrl_out->bit_handler<4>().set(FUNC(pc_lpt_device::write_irq_enabled));
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
|
@ -84,6 +84,13 @@ public:
|
||||
template <class Object> devcb_base &set_out_mreq_callback(Object &&cb) { return m_out_mreq_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_in_iorq_callback(Object &&cb) { return m_in_iorq_cb.set_callback(std::forward<Object>(cb)); }
|
||||
template <class Object> devcb_base &set_out_iorq_callback(Object &&cb) { return m_out_iorq_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto out_busreq_callback() { return m_out_busreq_cb.bind(); }
|
||||
auto out_int_callback() { return m_out_int_cb.bind(); }
|
||||
auto out_bao_callback() { return m_out_bao_cb.bind(); }
|
||||
auto in_mreq_callback() { return m_in_mreq_cb.bind(); }
|
||||
auto out_mreq_callback() { return m_out_mreq_cb.bind(); }
|
||||
auto in_iorq_callback() { return m_in_iorq_cb.bind(); }
|
||||
auto out_iorq_callback() { return m_out_iorq_cb.bind(); }
|
||||
|
||||
uint8_t read();
|
||||
void write(uint8_t data);
|
||||
|
@ -26,6 +26,7 @@ public:
|
||||
votrax_sc01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
|
||||
template <class Object> devcb_base &set_ar_callback(Object &&cb) { return m_ar_cb.set_callback(std::forward<Object>(cb)); }
|
||||
auto ar_callback() { return m_ar_cb.bind(); }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(write);
|
||||
DECLARE_WRITE8_MEMBER(inflection_w);
|
||||
|
@ -398,15 +398,15 @@ MACHINE_CONFIG_START(apricot_state::apricot)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
|
||||
|
||||
// devices
|
||||
MCFG_DEVICE_ADD("ic17", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(READ8("cent_data_in", input_buffer_device, bus_r))
|
||||
MCFG_I8255_OUT_PORTA_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8(*this, apricot_state, i8255_portb_w))
|
||||
MCFG_I8255_IN_PORTC_CB(READ8(*this, apricot_state, i8255_portc_r))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, apricot_state, i8255_portc_w))
|
||||
I8255A(config, m_ppi, 0);
|
||||
m_ppi->in_pa_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
|
||||
m_ppi->out_pa_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
|
||||
m_ppi->out_pb_callback().set(FUNC(apricot_state::i8255_portb_w));
|
||||
m_ppi->in_pc_callback().set(FUNC(apricot_state::i8255_portc_r));
|
||||
m_ppi->out_pc_callback().set(FUNC(apricot_state::i8255_portc_w));
|
||||
|
||||
MCFG_DEVICE_ADD("ic31", PIC8259, 0)
|
||||
MCFG_PIC8259_OUT_INT_CB(INPUTLINE("ic91", 0))
|
||||
PIC8259(config, m_pic, 0);
|
||||
m_pic->out_int_callback().set_inputline(m_cpu, 0);
|
||||
|
||||
PIT8253(config, m_pit, 0);
|
||||
m_pit->set_clk<0>(4_MHz_XTAL / 16);
|
||||
@ -422,19 +422,18 @@ MACHINE_CONFIG_START(apricot_state::apricot)
|
||||
MCFG_TTL153_ZA_CB(WRITELINE("ic15", z80sio_device, rxca_w))
|
||||
MCFG_TTL153_ZB_CB(WRITELINE("ic15", z80sio_device, txca_w))
|
||||
|
||||
MCFG_CLOCK_ADD("ic15_rxtxcb", 4_MHz_XTAL / 16)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE("ic15", z80sio_device, rxtxcb_w))
|
||||
CLOCK(config, "ic15_rxtxcb", 4_MHz_XTAL / 16).signal_handler().set(m_sio, FUNC(z80sio_device::rxtxcb_w));
|
||||
|
||||
MCFG_DEVICE_ADD("ic15", Z80SIO, 15_MHz_XTAL / 6)
|
||||
MCFG_Z80SIO_CPU("ic91")
|
||||
MCFG_Z80SIO_OUT_TXDA_CB(WRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_Z80SIO_OUT_DTRA_CB(WRITELINE("rs232", rs232_port_device, write_dtr))
|
||||
MCFG_Z80SIO_OUT_RTSA_CB(WRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_Z80SIO_OUT_WRDYA_CB(WRITELINE("ic71", i8089_device, drq2_w))
|
||||
MCFG_Z80SIO_OUT_TXDB_CB(WRITELINE("kbd", apricot_keyboard_bus_device, out_w))
|
||||
MCFG_Z80SIO_OUT_DTRB_CB(WRITELINE("ic14", ttl153_device, s0_w))
|
||||
MCFG_Z80SIO_OUT_RTSB_CB(WRITELINE("ic14", ttl153_device, s1_w))
|
||||
MCFG_Z80SIO_OUT_INT_CB(WRITELINE("ic31", pic8259_device, ir5_w))
|
||||
Z80SIO(config, m_sio, 15_MHz_XTAL / 6);
|
||||
m_sio->set_cputag(m_cpu);
|
||||
m_sio->out_txda_callback().set(m_rs232, FUNC(rs232_port_device::write_txd));
|
||||
m_sio->out_dtra_callback().set(m_rs232, FUNC(rs232_port_device::write_dtr));
|
||||
m_sio->out_rtsa_callback().set(m_rs232, FUNC(rs232_port_device::write_rts));
|
||||
m_sio->out_wrdya_callback().set(m_iop, FUNC(i8089_device::drq2_w));
|
||||
m_sio->out_txdb_callback().set("kbd", FUNC(apricot_keyboard_bus_device::out_w));
|
||||
m_sio->out_dtrb_callback().set("ic14", FUNC(ttl153_device::s0_w));
|
||||
m_sio->out_rtsb_callback().set("ic14", FUNC(ttl153_device::s1_w));
|
||||
m_sio->out_int_callback().set(m_pic, FUNC(pic8259_device::ir5_w));
|
||||
|
||||
// rs232 port
|
||||
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
|
||||
@ -445,19 +444,18 @@ MACHINE_CONFIG_START(apricot_state::apricot)
|
||||
m_rs232->cts_handler().set(m_sio, FUNC(z80sio_device::ctsa_w)).invert();
|
||||
|
||||
// keyboard
|
||||
MCFG_APRICOT_KEYBOARD_INTERFACE_ADD("kbd", "hle")
|
||||
MCFG_APRICOT_KEYBOARD_IN_HANDLER(WRITELINE("ic15", z80sio_device, rxb_w))
|
||||
APRICOT_KEYBOARD_INTERFACE(config, "kbd", apricot_keyboard_devices, "hle").in_handler().set(m_sio, FUNC(z80sio_device::rxb_w));
|
||||
|
||||
// centronics printer
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE("ic15", z80sio_device, ctsb_w))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("ic15", z80sio_device, dcdb_w))
|
||||
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, apricot_state, write_centronics_fault))
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, apricot_state, write_centronics_perror))
|
||||
//MCFG_CENTRONICS_SELECT_HANDLER() // schematic page 294 says this is connected to pc4, but that is an output to the printer
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer("cent_data_in");
|
||||
m_centronics->ack_handler().set(m_sio, FUNC(z80sio_device::ctsb_w));
|
||||
m_centronics->busy_handler().set(m_sio, FUNC(z80sio_device::dcdb_w));
|
||||
m_centronics->fault_handler().set(FUNC(apricot_state::write_centronics_fault));
|
||||
m_centronics->perror_handler().set(FUNC(apricot_state::write_centronics_perror));
|
||||
//m_centronics->select_handler().set(); // schematic page 294 says this is connected to pc4, but that is an output to the printer
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, "cent_data_in");
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
// floppy
|
||||
|
@ -513,17 +513,16 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MCFG_DEVICE_ADD("votrax", VOTRAX_SC01, 720000) /* 720kHz? needs verify */
|
||||
MCFG_VOTRAX_SC01_REQUEST_CB(WRITELINE(*this, aussiebyte_state, votrax_w))
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
VOTRAX_SC01(config, m_votrax, 720000); // 720kHz? needs verify
|
||||
m_votrax->ar_callback().set(FUNC(aussiebyte_state::votrax_w));
|
||||
m_votrax->add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
|
||||
/* devices */
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, aussiebyte_state, write_centronics_busy))
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer("cent_data_in");
|
||||
m_centronics->busy_handler().set(FUNC(aussiebyte_state::write_centronics_busy));
|
||||
INPUT_BUFFER(config, "cent_data_in");
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
clock_device &ctc_clock(CLOCK(config, "ctc_clock", 4.9152_MHz_XTAL / 4));
|
||||
@ -541,14 +540,14 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
|
||||
m_ctc->zc_callback<2>().set(FUNC(aussiebyte_state::ctc_z2_w)); // SIO2 Ch B, CTC Ch 3
|
||||
m_ctc->zc_callback<2>().append("sio2", FUNC(z80sio_device::rxtxcb_w));
|
||||
|
||||
MCFG_DEVICE_ADD("dma", Z80DMA, 16_MHz_XTAL / 4)
|
||||
MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, aussiebyte_state, busreq_w))
|
||||
Z80DMA(config, m_dma, 16_MHz_XTAL / 4);
|
||||
m_dma->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
m_dma->out_busreq_callback().set(FUNC(aussiebyte_state::busreq_w));
|
||||
// BAO, not used
|
||||
MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, aussiebyte_state, memory_read_byte))
|
||||
MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, aussiebyte_state, memory_write_byte))
|
||||
MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, aussiebyte_state, io_read_byte))
|
||||
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, aussiebyte_state, io_write_byte))
|
||||
m_dma->in_mreq_callback().set(FUNC(aussiebyte_state::memory_read_byte));
|
||||
m_dma->out_mreq_callback().set(FUNC(aussiebyte_state::memory_write_byte));
|
||||
m_dma->in_iorq_callback().set(FUNC(aussiebyte_state::io_read_byte));
|
||||
m_dma->out_iorq_callback().set(FUNC(aussiebyte_state::io_write_byte));
|
||||
|
||||
Z80PIO(config, m_pio1, 16_MHz_XTAL / 4);
|
||||
m_pio1->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
@ -556,9 +555,9 @@ MACHINE_CONFIG_START(aussiebyte_state::aussiebyte)
|
||||
m_pio1->in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
|
||||
m_pio1->out_ardy_callback().set(m_centronics, FUNC(centronics_device::write_strobe)).invert();
|
||||
|
||||
MCFG_DEVICE_ADD("pio2", Z80PIO, 16_MHz_XTAL / 4)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80PIO_OUT_PA_CB(WRITE8(*this, aussiebyte_state, port20_w))
|
||||
Z80PIO(config, m_pio2, 16_MHz_XTAL / 4);
|
||||
m_pio2->out_int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
|
||||
m_pio2->out_pa_callback().set(FUNC(aussiebyte_state::port20_w));
|
||||
|
||||
MCFG_DEVICE_ADD("sio1", Z80SIO, 16_MHz_XTAL / 4)
|
||||
MCFG_Z80SIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
|
@ -595,24 +595,24 @@ MACHINE_CONFIG_START(elwro800_state::elwro800)
|
||||
|
||||
MCFG_VIDEO_START_OVERRIDE(elwro800_state, spectrum)
|
||||
|
||||
MCFG_UPD765A_ADD("upd765", true, true)
|
||||
UPD765A(config, "upd765", true, true);
|
||||
|
||||
MCFG_DEVICE_ADD("ppi8255", I8255A, 0)
|
||||
MCFG_I8255_IN_PORTA_CB(IOPORT("JOY"))
|
||||
MCFG_I8255_IN_PORTB_CB(READ8("cent_data_in", input_buffer_device, bus_r))
|
||||
MCFG_I8255_OUT_PORTB_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
|
||||
MCFG_I8255_IN_PORTC_CB(READ8(*this, elwro800_state, i8255_port_c_r))
|
||||
MCFG_I8255_OUT_PORTC_CB(WRITE8(*this, elwro800_state, i8255_port_c_w))
|
||||
I8255A(config, m_i8255, 0);
|
||||
m_i8255->in_pa_callback().set_ioport("JOY");
|
||||
m_i8255->in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
|
||||
m_i8255->out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
|
||||
m_i8255->in_pc_callback().set(FUNC(elwro800_state::i8255_port_c_r));
|
||||
m_i8255->out_pc_callback().set(FUNC(elwro800_state::i8255_port_c_w));
|
||||
|
||||
/* printer */
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, elwro800_state, write_centronics_ack))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer("cent_data_in");
|
||||
m_centronics->ack_handler().set(FUNC(elwro800_state::write_centronics_ack));
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, "cent_data_in");
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_DEVICE_ADD("i8251", I8251, 0)
|
||||
I8251(config, m_i8251, 0);
|
||||
|
||||
/* sound hardware */
|
||||
SPEAKER(config, "mono").front_center();
|
||||
|
@ -638,38 +638,37 @@ MACHINE_CONFIG_START(kdt6_state::psi98)
|
||||
|
||||
// sound hardware
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD("beeper", BEEP, 1000) // frequency unknown
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
|
||||
BEEP(config, m_beeper, 1000); // frequency unknown
|
||||
m_beeper->add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50);
|
||||
|
||||
MCFG_TIMER_DRIVER_ADD("beep_timer", kdt6_state, beeper_off)
|
||||
|
||||
MCFG_DEVICE_ADD("dma", Z80DMA, XTAL(16'000'000) / 4)
|
||||
MCFG_Z80DMA_OUT_BUSREQ_CB(WRITELINE(*this, kdt6_state, busreq_w))
|
||||
MCFG_Z80DMA_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80DMA_IN_MREQ_CB(READ8(*this, kdt6_state, memory_r))
|
||||
MCFG_Z80DMA_OUT_MREQ_CB(WRITE8(*this, kdt6_state, memory_w))
|
||||
MCFG_Z80DMA_IN_IORQ_CB(READ8(*this, kdt6_state, io_r))
|
||||
MCFG_Z80DMA_OUT_IORQ_CB(WRITE8(*this, kdt6_state, io_w))
|
||||
Z80DMA(config, m_dma, 16_MHz_XTAL / 4);
|
||||
m_dma->out_busreq_callback().set(FUNC(kdt6_state::busreq_w));
|
||||
m_dma->out_int_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
|
||||
m_dma->in_mreq_callback().set(FUNC(kdt6_state::memory_r));
|
||||
m_dma->out_mreq_callback().set(FUNC(kdt6_state::memory_w));
|
||||
m_dma->in_iorq_callback().set(FUNC(kdt6_state::io_r));
|
||||
m_dma->out_iorq_callback().set(FUNC(kdt6_state::io_w));
|
||||
|
||||
// jumper J3 allows selection of 16MHz / 8 instead
|
||||
clock_device &uart_clk(CLOCK(config, "uart_clk", XTAL(9'830'400) / 8));
|
||||
uart_clk.signal_handler().set("ctc1", FUNC(z80ctc_device::trg1));
|
||||
uart_clk.signal_handler().append("ctc1", FUNC(z80ctc_device::trg2));
|
||||
|
||||
z80ctc_device &ctc1(Z80CTC(config, "ctc1", XTAL(16'000'000) / 4));
|
||||
z80ctc_device &ctc1(Z80CTC(config, "ctc1", 16_MHz_XTAL / 4));
|
||||
ctc1.intr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
|
||||
ctc1.zc_callback<1>().set(m_sio, FUNC(z80sio_device::rxtxcb_w));
|
||||
ctc1.zc_callback<2>().set(m_sio, FUNC(z80sio_device::rxca_w));
|
||||
ctc1.zc_callback<2>().append(m_sio, FUNC(z80sio_device::txca_w));
|
||||
|
||||
z80ctc_device &ctc2(Z80CTC(config, "ctc2", XTAL(16'000'000) / 4));
|
||||
z80ctc_device &ctc2(Z80CTC(config, "ctc2", 16_MHz_XTAL / 4));
|
||||
ctc2.intr_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
|
||||
ctc2.zc_callback<0>().set("speaker", FUNC(speaker_sound_device::level_w));
|
||||
ctc2.zc_callback<2>().set("ctc2", FUNC(z80ctc_device::trg3));
|
||||
|
||||
Z80SIO(config, m_sio, XTAL(16'000'000) / 4);
|
||||
Z80SIO(config, m_sio, 16_MHz_XTAL / 4);
|
||||
m_sio->out_int_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
|
||||
m_sio->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
|
||||
m_sio->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
|
||||
@ -690,20 +689,20 @@ MACHINE_CONFIG_START(kdt6_state::psi98)
|
||||
m_rs232b->dsr_handler().set(m_sio, FUNC(z80sio_device::syncb_w));
|
||||
m_rs232b->cts_handler().set(m_sio, FUNC(z80sio_device::ctsb_w)).invert();
|
||||
|
||||
MCFG_DEVICE_ADD("pio", Z80PIO, XTAL(16'000'000) / 4)
|
||||
MCFG_Z80PIO_OUT_INT_CB(INPUTLINE("maincpu", INPUT_LINE_IRQ0))
|
||||
MCFG_Z80PIO_OUT_PA_CB(WRITE8(*this, kdt6_state, pio_porta_w))
|
||||
MCFG_Z80PIO_IN_PB_CB(READ8("cent_data_in", input_buffer_device, bus_r))
|
||||
MCFG_Z80PIO_OUT_PB_CB(WRITE8("cent_data_out", output_latch_device, bus_w))
|
||||
z80pio_device &pio(Z80PIO(config, "pio", 16_MHz_XTAL / 4));
|
||||
pio.out_int_callback().set_inputline(m_cpu, INPUT_LINE_IRQ0);
|
||||
pio.out_pa_callback().set(FUNC(kdt6_state::pio_porta_w));
|
||||
pio.in_pb_callback().set("cent_data_in", FUNC(input_buffer_device::bus_r));
|
||||
pio.out_pb_callback().set("cent_data_out", FUNC(output_latch_device::bus_w));
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE("pio", z80pio_device, pa2_w))
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE("pio", z80pio_device, pa3_w))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE("pio", z80pio_device, pa4_w))
|
||||
MCFG_CENTRONICS_SELECT_HANDLER(WRITELINE("pio", z80pio_device, pa5_w))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer("cent_data_in");
|
||||
m_centronics->fault_handler().set("pio", FUNC(z80pio_device::pa2_w));
|
||||
m_centronics->perror_handler().set("pio", FUNC(z80pio_device::pa3_w));
|
||||
m_centronics->busy_handler().set("pio", FUNC(z80pio_device::pa4_w));
|
||||
m_centronics->select_handler().set("pio", FUNC(z80pio_device::pa5_w));
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, "cent_data_in");
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_UPD1990A_ADD("rtc", XTAL(32'768), NOOP, NOOP)
|
||||
|
@ -1,5 +1,5 @@
|
||||
// license:BSD-3-Clause
|
||||
// copyright-holders: TODO
|
||||
// copyright-holders:
|
||||
/***********************************************************************************************************************************
|
||||
|
||||
2017-11-20 Skeleton
|
||||
|
@ -298,37 +298,37 @@ MACHINE_CONFIG_START(osborne1_state::osborne1)
|
||||
MCFG_PALETTE_ADD_MONOCHROME_HIGHLIGHT("palette")
|
||||
|
||||
SPEAKER(config, "mono").front_center();
|
||||
MCFG_DEVICE_ADD(m_speaker, SPEAKER_SOUND)
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
|
||||
SPEAKER_SOUND(config, m_speaker);
|
||||
m_speaker->add_route(ALL_OUTPUTS, "mono", 1.00);
|
||||
|
||||
MCFG_DEVICE_ADD(m_pia0, PIA6821, 0)
|
||||
MCFG_PIA_READPA_HANDLER(READ8(m_ieee, ieee488_device, dio_r))
|
||||
MCFG_PIA_READPB_HANDLER(READ8(*this, osborne1_state, ieee_pia_pb_r))
|
||||
MCFG_PIA_WRITEPA_HANDLER(WRITE8(m_ieee, ieee488_device, host_dio_w))
|
||||
MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, osborne1_state, ieee_pia_pb_w))
|
||||
MCFG_PIA_CA2_HANDLER(WRITELINE(m_ieee, ieee488_device, host_ifc_w))
|
||||
MCFG_PIA_CB2_HANDLER(WRITELINE(m_ieee, ieee488_device, host_ren_w))
|
||||
MCFG_PIA_IRQA_HANDLER(WRITELINE(*this, osborne1_state, ieee_pia_irq_a_func))
|
||||
PIA6821(config, m_pia0);
|
||||
m_pia0->readpa_handler().set(m_ieee, FUNC(ieee488_device::dio_r));
|
||||
m_pia0->readpb_handler().set(FUNC(osborne1_state::ieee_pia_pb_r));
|
||||
m_pia0->writepa_handler().set(m_ieee, FUNC(ieee488_device::host_dio_w));
|
||||
m_pia0->writepb_handler().set(FUNC(osborne1_state::ieee_pia_pb_w));
|
||||
m_pia0->ca2_handler().set(m_ieee, FUNC(ieee488_device::host_ifc_w));
|
||||
m_pia0->cb2_handler().set(m_ieee, FUNC(ieee488_device::host_ren_w));
|
||||
m_pia0->irqa_handler().set(FUNC(osborne1_state::ieee_pia_irq_a_func));
|
||||
|
||||
MCFG_IEEE488_BUS_ADD()
|
||||
MCFG_IEEE488_SRQ_CALLBACK(WRITELINE(m_pia0, pia6821_device, ca2_w))
|
||||
|
||||
MCFG_DEVICE_ADD(m_pia1, PIA6821, 0)
|
||||
MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, osborne1_state, video_pia_port_a_w))
|
||||
MCFG_PIA_WRITEPB_HANDLER(WRITE8(*this, osborne1_state, video_pia_port_b_w))
|
||||
MCFG_PIA_CB2_HANDLER(WRITELINE(*this, osborne1_state, video_pia_out_cb2_dummy))
|
||||
MCFG_PIA_IRQA_HANDLER(WRITELINE(*this, osborne1_state, video_pia_irq_a_func))
|
||||
PIA6821(config, m_pia1);
|
||||
m_pia1->writepa_handler().set(FUNC(osborne1_state::video_pia_port_a_w));
|
||||
m_pia1->writepb_handler().set(FUNC(osborne1_state::video_pia_port_b_w));
|
||||
m_pia1->cb2_handler().set(FUNC(osborne1_state::video_pia_out_cb2_dummy));
|
||||
m_pia1->irqa_handler().set(FUNC(osborne1_state::video_pia_irq_a_func));
|
||||
|
||||
MCFG_DEVICE_ADD(m_acia, ACIA6850, 0)
|
||||
MCFG_ACIA6850_TXD_HANDLER(WRITELINE("rs232", rs232_port_device, write_txd))
|
||||
MCFG_ACIA6850_RTS_HANDLER(WRITELINE("rs232", rs232_port_device, write_rts))
|
||||
MCFG_ACIA6850_IRQ_HANDLER(WRITELINE(*this, osborne1_state, serial_acia_irq_func))
|
||||
ACIA6850(config, m_acia);
|
||||
m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
|
||||
m_acia->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts));
|
||||
m_acia->irq_handler().set(FUNC(osborne1_state::serial_acia_irq_func));
|
||||
|
||||
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(WRITELINE(m_acia, acia6850_device, write_rxd))
|
||||
MCFG_RS232_DCD_HANDLER(WRITELINE(m_acia, acia6850_device, write_dcd))
|
||||
MCFG_RS232_CTS_HANDLER(WRITELINE(m_acia, acia6850_device, write_cts))
|
||||
MCFG_RS232_RI_HANDLER(WRITELINE(m_pia1, pia6821_device, ca2_w))
|
||||
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
|
||||
rs232.rxd_handler().set(m_acia, FUNC(acia6850_device::write_rxd));
|
||||
rs232.dcd_handler().set(m_acia, FUNC(acia6850_device::write_dcd));
|
||||
rs232.cts_handler().set(m_acia, FUNC(acia6850_device::write_cts));
|
||||
rs232.ri_handler().set(m_pia1, FUNC(pia6821_device::ca2_w));
|
||||
|
||||
MCFG_DEVICE_ADD(m_fdc, MB8877, MAIN_CLOCK/16)
|
||||
MCFG_WD_FDC_FORCE_READY
|
||||
|
@ -1485,6 +1485,7 @@ INPUT_PORTS_END
|
||||
|
||||
MACHINE_CONFIG_START(thomson_state::to9)
|
||||
to7(config);
|
||||
|
||||
MCFG_MACHINE_START_OVERRIDE( thomson_state, to9 )
|
||||
MCFG_MACHINE_RESET_OVERRIDE( thomson_state, to9 )
|
||||
|
||||
@ -1502,8 +1503,8 @@ MACHINE_CONFIG_START(thomson_state::to9)
|
||||
MCFG_DEVICE_MODIFY("mc6846")
|
||||
MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to9_timer_port_out))
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
|
||||
|
||||
/* internal ram */
|
||||
MCFG_RAM_MODIFY(RAM_TAG)
|
||||
@ -1723,8 +1724,8 @@ MACHINE_CONFIG_START(thomson_state::to8)
|
||||
MCFG_PIA_CB2_HANDLER(NOOP)
|
||||
MCFG_PIA_IRQA_HANDLER(NOOP)
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
|
||||
|
||||
MCFG_DEVICE_MODIFY("mc6846")
|
||||
MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to8_timer_port_out))
|
||||
@ -1890,8 +1891,8 @@ MACHINE_CONFIG_START(thomson_state::to9p)
|
||||
MCFG_PIA_IRQA_HANDLER(NOOP)
|
||||
MCFG_PIA_IRQB_HANDLER(WRITELINE("mainfirq", input_merger_device, in_w<1>))
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
|
||||
|
||||
MCFG_DEVICE_MODIFY("mc6846")
|
||||
MCFG_MC6846_OUT_PORT_CB(WRITE8(*this, thomson_state, to9p_timer_port_out))
|
||||
@ -2249,8 +2250,8 @@ MACHINE_CONFIG_START(thomson_state::mo6)
|
||||
MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, thomson_state, mo6_game_porta_out))
|
||||
MCFG_PIA_CB2_HANDLER(WRITELINE(*this, thomson_state, mo6_game_cb2_out))
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
|
||||
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
@ -2518,11 +2519,11 @@ MACHINE_CONFIG_START(thomson_state::mo5nr)
|
||||
MCFG_DEVICE_MODIFY(THOM_PIA_GAME)
|
||||
MCFG_PIA_WRITEPA_HANDLER(WRITE8(*this, thomson_state, mo6_game_porta_out))
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, thomson_state, write_centronics_busy))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer("cent_data_in");
|
||||
m_centronics->busy_handler().set(FUNC(thomson_state::write_centronics_busy));
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, "cent_data_in");
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", "centronics")
|
||||
|
||||
MCFG_DEVICE_REMOVE("cartslot")
|
||||
|
@ -758,13 +758,13 @@ MACHINE_CONFIG_START(tiki100_state::tiki100)
|
||||
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
|
||||
MCFG_RS232_RXD_HANDLER(WRITELINE(Z80DART_TAG, z80dart_device, rxb_w))
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, tiki100_state, write_centronics_ack))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, tiki100_state, write_centronics_busy))
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, tiki100_state, write_centronics_perror))
|
||||
CENTRONICS(config, m_centronics, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer("cent_data_in");
|
||||
m_centronics->ack_handler().set(FUNC(tiki100_state::write_centronics_ack));
|
||||
m_centronics->busy_handler().set(FUNC(tiki100_state::write_centronics_busy));
|
||||
m_centronics->perror_handler().set(FUNC(tiki100_state::write_centronics_perror));
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, "cent_data_in");
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
|
||||
|
||||
MCFG_CASSETTE_ADD(CASSETTE_TAG)
|
||||
|
@ -1332,14 +1332,14 @@ MACHINE_CONFIG_START(wangpc_state::wangpc)
|
||||
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":0", wangpc_floppies, "525dd", wangpc_state::floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD(UPD765_TAG ":1", wangpc_floppies, "525dd", wangpc_state::floppy_formats)
|
||||
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
|
||||
MCFG_CENTRONICS_DATA_INPUT_BUFFER("cent_data_in")
|
||||
MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_ack))
|
||||
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_busy))
|
||||
MCFG_CENTRONICS_FAULT_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_fault))
|
||||
MCFG_CENTRONICS_PERROR_HANDLER(WRITELINE(*this, wangpc_state, write_centronics_perror))
|
||||
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer");
|
||||
m_centronics->set_data_input_buffer(m_cent_data_in);
|
||||
m_centronics->ack_handler().set(FUNC(wangpc_state::write_centronics_ack));
|
||||
m_centronics->busy_handler().set(FUNC(wangpc_state::write_centronics_busy));
|
||||
m_centronics->fault_handler().set(FUNC(wangpc_state::write_centronics_fault));
|
||||
m_centronics->perror_handler().set(FUNC(wangpc_state::write_centronics_perror));
|
||||
|
||||
MCFG_DEVICE_ADD("cent_data_in", INPUT_BUFFER, 0)
|
||||
INPUT_BUFFER(config, m_cent_data_in);
|
||||
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
|
||||
|
||||
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
|
||||
|
@ -1299,35 +1299,31 @@ DISPCTL EQU $FD92 ; set to $D by INITMIKEY
|
||||
|
||||
void lynx_state::lynx_draw_line()
|
||||
{
|
||||
const pen_t *pen = m_palette->pens();
|
||||
int x, y;
|
||||
pen_t const *const pen = m_palette->pens();
|
||||
uint16_t j; // clipping needed!
|
||||
uint8_t byte;
|
||||
uint16_t *line;
|
||||
|
||||
|
||||
// calculate y: first three lines are vblank,
|
||||
y = 101-m_timer[2].counter;
|
||||
int const y = 101-m_timer[2].counter;
|
||||
// Documentation states lower two bits of buffer address are ignored (thus 0xfffc mask)
|
||||
j = (m_mikey.disp_addr & 0xfffc) + y * 160 / 2;
|
||||
|
||||
if (m_mikey.data[0x92] & 0x02)
|
||||
{
|
||||
j -= 160 * 102 / 2 - 1;
|
||||
line = &m_bitmap_temp.pix32(102 - 1 - y);
|
||||
for (x = 160 - 2; x >= 0; j++, x -= 2)
|
||||
uint32_t *const line = &m_bitmap_temp.pix32(102 - 1 - y);
|
||||
for (int x = 160 - 2; x >= 0; j++, x -= 2)
|
||||
{
|
||||
byte = lynx_read_ram(j);
|
||||
uint8_t const byte = lynx_read_ram(j);
|
||||
line[x + 1] = pen[(byte >> 4) & 0x0f];
|
||||
line[x + 0] = pen[(byte >> 0) & 0x0f];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
line = &m_bitmap_temp.pix32(y);
|
||||
for (x = 0; x < 160; j++, x += 2)
|
||||
uint32_t *const line = &m_bitmap_temp.pix32(y);
|
||||
for (int x = 0; x < 160; j++, x += 2)
|
||||
{
|
||||
byte = lynx_read_ram(j);
|
||||
uint8_t const byte = lynx_read_ram(j);
|
||||
line[x + 0] = pen[(byte >> 4) & 0x0f];
|
||||
line[x + 1] = pen[(byte >> 0) & 0x0f];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user