This commit is contained in:
Roberto Fresca 2018-10-19 21:26:45 +02:00
commit abf0b1994a
48 changed files with 385 additions and 431 deletions

View File

@ -16,17 +16,6 @@
#include "imagedev/floppy.h"
//**************************************************************************
// INTERFACE MACROS
//**************************************************************************
#define MCFG_COMPUCOLOR_FLOPPY_PORT_ADD(_tag, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(_tag, COMPUCOLOR_FLOPPY_PORT, 0) \
MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -50,6 +39,15 @@ protected:
class compucolor_floppy_port_device : public rs232_port_device
{
public:
template <typename T>
compucolor_floppy_port_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt)
: rs232_port_device(mconfig, tag, owner, 0)
{
option_reset();
opts(*this);
set_default_option(dflt);
set_fixed(false);
}
compucolor_floppy_port_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_WRITE_LINE_MEMBER( rw_w ) { if (m_dev) m_dev->rw_w(state); }

View File

@ -408,6 +408,9 @@ void mb87030_device::step(bool timeout)
case State::TransferSendAck:
if (!(ctrl & S_INP))
m_temp = data;
scsi_set_ctrl(S_ACK, S_ACK);
scsi_bus->ctrl_wait(scsi_refid, 0, S_REQ);
@ -582,7 +585,7 @@ WRITE8_MEMBER(mb87030_device::scmd_w)
case SCMD_CMD_SET_ACK_REQ:
LOG("%s: Set ACK/REQ\n", __FUNCTION__);
if (m_ssts & SSTS_INIT_CONNECTED) {
if (m_pctl & 1) {
if (scsi_bus->ctrl_r() & S_INP) {
m_temp = scsi_bus->data_r();
} else {
scsi_bus->data_w(scsi_refid, m_temp);
@ -701,7 +704,7 @@ WRITE8_MEMBER(mb87030_device::dreg_w)
READ8_MEMBER(mb87030_device::temp_r)
{
m_temp = scsi_bus->data_r();
step(false);
LOG("%s: %02X\n", __FUNCTION__, m_temp);
return m_temp;

View File

@ -35,44 +35,6 @@
#pragma once
// Set read and write callbacks to access DIO bus on IEEE-488
#define MCFG_TMS9914_DIO_READWRITE_CB(_read , _write) \
downcast<tms9914_device &>(*device).set_dio_read_cb(DEVCB_##_read); \
downcast<tms9914_device &>(*device).set_dio_write_cb(DEVCB_##_write);
// Set write callbacks to access uniline signals on IEEE-488
#define MCFG_TMS9914_EOI_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_EOI , DEVCB_##_write);
#define MCFG_TMS9914_DAV_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_DAV , DEVCB_##_write);
#define MCFG_TMS9914_NRFD_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_NRFD , DEVCB_##_write);
#define MCFG_TMS9914_NDAC_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_NDAC , DEVCB_##_write);
#define MCFG_TMS9914_IFC_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_IFC , DEVCB_##_write);
#define MCFG_TMS9914_SRQ_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_SRQ , DEVCB_##_write);
#define MCFG_TMS9914_ATN_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_ATN , DEVCB_##_write);
#define MCFG_TMS9914_REN_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_488_signal_write_cb(tms9914_device::IEEE_488_REN , DEVCB_##_write);
// Set write callback for INT signal
#define MCFG_TMS9914_INT_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_int_write_cb(DEVCB_##_write);
// Set write callback for ACCRQ signal
#define MCFG_TMS9914_ACCRQ_WRITE_CB(_write) \
downcast<tms9914_device &>(*device).set_accrq_write_cb(DEVCB_##_write);
class tms9914_device : public device_t
{
public:
@ -92,23 +54,11 @@ public:
IEEE_488_SIGNAL_COUNT
};
template <class Object> devcb_base& set_dio_read_cb(Object &&cb)
{ return m_dio_read_func.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base& set_dio_write_cb(Object &&cb)
{ return m_dio_write_func.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base& set_488_signal_write_cb(ieee_488_signal_t signal , Object &&cb)
{ return m_signal_wr_fns[ signal ].set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base& set_int_write_cb(Object &&cb)
{ return m_int_write_func.set_callback(std::forward<Object>(cb)); }
template <class Object> devcb_base& set_accrq_write_cb(Object &&cb)
{ return m_accrq_write_func.set_callback(std::forward<Object>(cb)); }
// Set read and write callbacks to access DIO bus on IEEE-488
auto dio_read_cb() { return m_dio_read_func.bind(); }
auto dio_write_cb() { return m_dio_write_func.bind(); }
// Set write callbacks to access uniline signals on IEEE-488
auto eoi_write_cb() { return m_signal_wr_fns[IEEE_488_EOI].bind(); }
auto dav_write_cb() { return m_signal_wr_fns[IEEE_488_DAV].bind(); }
auto nrfd_write_cb() { return m_signal_wr_fns[IEEE_488_NRFD].bind(); }
@ -118,7 +68,10 @@ public:
auto atn_write_cb() { return m_signal_wr_fns[IEEE_488_ATN].bind(); }
auto ren_write_cb() { return m_signal_wr_fns[IEEE_488_REN].bind(); }
// Set write callback for INT signal
auto int_write_cb() { return m_int_write_func.bind(); }
// Set write callback for ACCRQ signal
auto accrq_write_cb() { return m_accrq_write_func.bind(); }
DECLARE_WRITE_LINE_MEMBER(eoi_w);

View File

@ -602,7 +602,7 @@ MACHINE_CONFIG_START(bw12_state::common)
MCFG_PIT8253_CLK0(XTAL(1'843'200))
MCFG_PIT8253_OUT0_HANDLER(WRITELINE(*this, bw12_state, pit_out0_w))
MCFG_PIT8253_CLK1(XTAL(1'843'200))
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxtxcb_w))
MCFG_PIT8253_OUT1_HANDLER(WRITELINE(m_sio, z80dart_device, rxtxcb_w))
MCFG_PIT8253_CLK2(XTAL(1'843'200))
MCFG_PIT8253_OUT2_HANDLER(WRITELINE(*this, bw12_state, pit_out2_w))
@ -620,15 +620,15 @@ MACHINE_CONFIG_START(bw12_state::common)
m_kbc->control().set(FUNC(bw12_state::ay3600_control_r));
m_kbc->data_ready().set(FUNC(bw12_state::ay3600_data_ready_w));
MCFG_DEVICE_ADD(RS232_A_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxa_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcda_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsa_w))
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr));
rs232a.rxd_handler().set(m_sio, FUNC(z80dart_device::rxa_w));
rs232a.dcd_handler().set(m_sio, FUNC(z80dart_device::dcda_w));
rs232a.cts_handler().set(m_sio, FUNC(z80dart_device::ctsa_w));
MCFG_DEVICE_ADD(RS232_B_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, rxb_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, dcdb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(Z80SIO_TAG, z80dart_device, ctsb_w))
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_sio, FUNC(z80dart_device::rxb_w));
rs232b.dcd_handler().set(m_sio, FUNC(z80dart_device::dcdb_w));
rs232b.cts_handler().set(m_sio, FUNC(z80dart_device::ctsb_w));
/* printer */
MCFG_DEVICE_ADD(CENTRONICS_TAG, CENTRONICS, centronics_devices, "printer")

View File

@ -588,9 +588,9 @@ MACHINE_CONFIG_START(bw2_state::bw2)
m_uart->dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr));
m_uart->rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart, i8251_device, write_dsr))
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_uart, FUNC(i8251_device::write_rxd));
rs232.dsr_handler().set(m_uart, FUNC(i8251_device::write_dsr));
WD2797(config, m_fdc, 16_MHz_XTAL / 16);
m_fdc->intrq_wr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);

View File

@ -112,9 +112,9 @@ MACHINE_CONFIG_START(c900_state::c900)
scc.out_rtsb_callback().set("rs232", FUNC(rs232_port_device::write_rts));
//scc.out_int_callback().set("rs232", FUNC(c900_state::scc_int));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER (WRITELINE ("scc", scc8030_device, rxb_w))
MCFG_RS232_CTS_HANDLER (WRITELINE ("scc", scc8030_device, ctsb_w))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
rs232.rxd_handler().set("scc", FUNC(scc8030_device::rxb_w));
rs232.cts_handler().set("scc", FUNC(scc8030_device::ctsb_w));
MACHINE_CONFIG_END
ROM_START( c900 )

View File

@ -505,9 +505,9 @@ MACHINE_CONFIG_START(cgc7900_state::cgc7900)
m_i8251_0->rxrdy_handler().set(FUNC(cgc7900_state::irq<0xf>));
m_i8251_0->txrdy_handler().set(FUNC(cgc7900_state::irq<0x3>));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem")
MCFG_RS232_RXD_HANDLER(WRITELINE(INS8251_0_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(INS8251_0_TAG, i8251_device, write_dsr))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "null_modem"));
rs232.rxd_handler().set(m_i8251_0, FUNC(i8251_device::write_rxd));
rs232.dsr_handler().set(m_i8251_0, FUNC(i8251_device::write_dsr));
I8251(config, m_i8251_1, 0);
m_i8251_1->txd_handler().set("rs449", FUNC(rs232_port_device::write_txd));
@ -516,9 +516,9 @@ MACHINE_CONFIG_START(cgc7900_state::cgc7900)
m_i8251_1->rxrdy_handler().set(FUNC(cgc7900_state::irq<0x8>));
m_i8251_1->txrdy_handler().set(FUNC(cgc7900_state::irq<0x1>));
MCFG_DEVICE_ADD("rs449", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(INS8251_1_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(INS8251_1_TAG, i8251_device, write_dsr))
rs232_port_device &rs449(RS232_PORT(config, "rs449", default_rs232_devices, nullptr));
rs449.rxd_handler().set(m_i8251_1, FUNC(i8251_device::write_rxd));
rs449.dsr_handler().set(m_i8251_1, FUNC(i8251_device::write_dsr));
MACHINE_CONFIG_END
/***************************************************************************

View File

@ -472,9 +472,9 @@ MACHINE_CONFIG_START(cgenie_state::cgenie)
MCFG_SOFTWARE_LIST_ADD("cass_list", "cgenie_cass")
// serial port
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(*this, cgenie_state, rs232_rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(*this, cgenie_state, rs232_dcd_w))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
rs232.rxd_handler().set(FUNC(cgenie_state::rs232_rx_w));
rs232.dcd_handler().set(FUNC(cgenie_state::rs232_dcd_w));
// cartridge expansion slot
MCFG_CG_EXP_SLOT_ADD("exp")

View File

@ -69,7 +69,6 @@ class cit101_state : public driver_device
public:
cit101_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_screen(*this, "screen")
, m_nvr(*this, "nvr")
, m_comuart(*this, "comuart")
@ -108,7 +107,6 @@ private:
bool m_blink;
u8 m_brightness;
required_device<cpu_device> m_maincpu;
required_device<screen_device> m_screen;
required_device<er2055_device> m_nvr;
required_device<i8251_device> m_comuart;
@ -329,18 +327,19 @@ static INPUT_PORTS_START( cit101 )
INPUT_PORTS_END
MACHINE_CONFIG_START(cit101_state::cit101)
MCFG_DEVICE_ADD("maincpu", I8085A, 6.144_MHz_XTAL)
MCFG_DEVICE_PROGRAM_MAP(mem_map)
MCFG_DEVICE_IO_MAP(io_map)
MCFG_I8085A_SID(CONSTANT(0)) // used to time NVR reads
MCFG_I8085A_SOD(WRITELINE(*this, cit101_state, blink_w))
void cit101_state::cit101(machine_config &config)
{
i8085a_cpu_device &maincpu(I8085A(config, "maincpu", 6.144_MHz_XTAL));
maincpu.set_addrmap(AS_PROGRAM, &cit101_state::mem_map);
maincpu.set_addrmap(AS_IO, &cit101_state::io_map);
maincpu.in_sid_func().set_constant(0); // used to time NVR reads
maincpu.out_sod_func().set(FUNC(cit101_state::blink_w));
MCFG_SCREEN_ADD("screen", RASTER)
//MCFG_SCREEN_RAW_PARAMS(14.976_MHz_XTAL, 960, 0, 800, 260, 0, 240)
MCFG_SCREEN_RAW_PARAMS(22.464_MHz_XTAL, 1440, 0, 1188, 260, 0, 240)
MCFG_SCREEN_UPDATE_DRIVER(cit101_state, screen_update)
MCFG_SCREEN_VBLANK_CALLBACK(INPUTLINE("maincpu", I8085_RST75_LINE))
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
//m_screen->set_raw(14.976_MHz_XTAL, 960, 0, 800, 260, 0, 240);
m_screen->set_raw(22.464_MHz_XTAL, 1440, 0, 1188, 260, 0, 240);
m_screen->set_screen_update(FUNC(cit101_state::screen_update));
m_screen->screen_vblank().set_inputline("maincpu", I8085_RST75_LINE);
I8251(config, m_comuart, 6.144_MHz_XTAL / 2);
m_comuart->txd_handler().set("comm", FUNC(rs232_port_device::write_txd));
@ -349,9 +348,9 @@ MACHINE_CONFIG_START(cit101_state::cit101)
m_comuart->rxrdy_handler().set("uartint", FUNC(input_merger_device::in_w<0>));
m_comuart->txrdy_handler().set("uartint", FUNC(input_merger_device::in_w<2>));
MCFG_DEVICE_ADD("comm", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("comuart", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE("comuart", i8251_device, write_dsr))
rs232_port_device &comm(RS232_PORT(config, "comm", default_rs232_devices, nullptr));
comm.rxd_handler().set("comuart", FUNC(i8251_device::write_rxd));
comm.dsr_handler().set("comuart", FUNC(i8251_device::write_dsr));
// CTS can be disabled in SET-UP Mode C
// DSR, CD, SI, RI are examined only during the modem test, not "always ignored" as the User's Manual claims
@ -360,26 +359,24 @@ MACHINE_CONFIG_START(cit101_state::cit101)
auxuart.rxrdy_handler().set("uartint", FUNC(input_merger_device::in_w<1>));
auxuart.txrdy_handler().set("uartint", FUNC(input_merger_device::in_w<3>));
MCFG_DEVICE_ADD("printer", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("auxuart", i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("auxuart", i8251_device, write_cts))
rs232_port_device &printer(RS232_PORT(config, "printer", default_rs232_devices, nullptr));
printer.rxd_handler().set("auxuart", FUNC(i8251_device::write_rxd));
printer.cts_handler().set("auxuart", FUNC(i8251_device::write_cts));
MCFG_INPUT_MERGER_ANY_HIGH("uartint")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", I8085_RST55_LINE))
INPUT_MERGER_ANY_HIGH(config, "uartint").output_handler().set_inputline("maincpu", I8085_RST55_LINE);
I8251(config, m_kbduart, 6.144_MHz_XTAL / 2);
m_kbduart->txd_handler().set("keyboard", FUNC(cit101_hle_keyboard_device::write_rxd));
m_kbduart->rxrdy_handler().set_inputline("maincpu", I8085_RST65_LINE);
MCFG_DEVICE_ADD("keyboard", CIT101_HLE_KEYBOARD, 0)
MCFG_CIT101_HLE_KEYBOARD_TXD_CALLBACK(WRITELINE("kbduart", i8251_device, write_rxd))
CIT101_HLE_KEYBOARD(config, "keyboard").txd_callback().set("kbduart", FUNC(i8251_device::write_rxd));
MCFG_DEVICE_ADD("pit0", PIT8253, 0)
MCFG_PIT8253_CLK0(6.144_MHz_XTAL / 4)
MCFG_PIT8253_CLK1(6.144_MHz_XTAL / 4)
//MCFG_PIT8253_CLK2(6.144_MHz_XTAL / 4)
MCFG_PIT8253_OUT0_HANDLER(WRITELINE("auxuart", i8251_device, write_txc))
MCFG_PIT8253_OUT1_HANDLER(WRITELINE("auxuart", i8251_device, write_rxc))
pit8253_device &pit0(PIT8253(config, "pit0", 0));
pit0.set_clk<0>(6.144_MHz_XTAL / 4);
pit0.set_clk<1>(6.144_MHz_XTAL / 4);
//pit0.set_clk<2>(6.144_MHz_XTAL / 4);
pit0.out_handler<0>().set("auxuart", FUNC(i8251_device::write_txc));
pit0.out_handler<1>().set("auxuart", FUNC(i8251_device::write_rxc));
// OUT2 might be used for an internal expansion similar to the VT100 STP.
// The output appears to be fixed to a 307.2 kHz rate; turning this off boosts driver performance.
@ -402,8 +399,8 @@ MACHINE_CONFIG_START(cit101_state::cit101)
ppi.in_pc_callback().append("comm", FUNC(rs232_port_device::si_r)).lshift(3); // tied to CTS for loopback test
ppi.out_pc_callback().set(FUNC(cit101_state::nvr_control_w));
MCFG_DEVICE_ADD("nvr", ER2055, 0)
MACHINE_CONFIG_END
ER2055(config, m_nvr);
}
// PCB ID: HAV-2P005B / CIT-101 / C. ITOH

View File

@ -684,11 +684,11 @@ MACHINE_CONFIG_START(clcd_state::clcd)
m_acia->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts));
m_acia->dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("acia", mos6551_device, write_rxd))
MCFG_RS232_DCD_HANDLER(WRITELINE("acia", mos6551_device, write_dcd))
MCFG_RS232_DSR_HANDLER(WRITELINE("acia", mos6551_device, write_dsr))
MCFG_RS232_CTS_HANDLER(WRITELINE("via1", via6522_device, write_pb4))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_acia, FUNC(mos6551_device::write_rxd));
rs232.dcd_handler().set(m_acia, FUNC(mos6551_device::write_dcd));
rs232.dsr_handler().set(m_acia, FUNC(mos6551_device::write_dsr));
rs232.cts_handler().set("via1", FUNC(via6522_device::write_pb4));
CENTRONICS(config, m_centronics, centronics_devices, nullptr);
m_centronics->busy_handler().set("via1", FUNC(via6522_device::write_pb6)).invert();

View File

@ -425,14 +425,14 @@ MACHINE_CONFIG_START(compucolor2_state::compucolor2)
m_mioc->xi_callback().set(FUNC(compucolor2_state::xi_r));
m_mioc->xo_callback().set(FUNC(compucolor2_state::xo_w));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(TMS5501_TAG, tms5501_device, rcv_w))
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
m_rs232->rxd_handler().set(m_mioc, FUNC(tms5501_device::rcv_w));
MCFG_COMPUCOLOR_FLOPPY_PORT_ADD("cd0", compucolor_floppy_port_devices, "floppy")
MCFG_RS232_RXD_HANDLER(WRITELINE(TMS5501_TAG, tms5501_device, rcv_w))
COMPUCOLOR_FLOPPY_PORT(config, m_floppy0, compucolor_floppy_port_devices, "floppy");
m_floppy0->rxd_handler().set(m_mioc, FUNC(tms5501_device::rcv_w));
MCFG_COMPUCOLOR_FLOPPY_PORT_ADD("cd1", compucolor_floppy_port_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(TMS5501_TAG, tms5501_device, rcv_w))
COMPUCOLOR_FLOPPY_PORT(config, m_floppy1, compucolor_floppy_port_devices, nullptr);
m_floppy1->rxd_handler().set(m_mioc, FUNC(tms5501_device::rcv_w));
// internal ram
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("8K,16K");

View File

@ -390,8 +390,8 @@ static DEVICE_INPUT_DEFAULTS_START( debug_serial ) // set up debug port to defau
DEVICE_INPUT_DEFAULTS_END
MACHINE_CONFIG_START(cybiko_state::cybikov1_debug_serial)
MCFG_DEVICE_MODIFY("debug_serial")
MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu:sci2", h8_sci_device, rx_w))
auto &debug_serial(*subdevice<rs232_port_device>("debug_serial"));
debug_serial.rxd_handler().set("maincpu:sci2", FUNC(h8_sci_device::rx_w));
MCFG_DEVICE_MODIFY("maincpu:sci2")
MCFG_H8_SCI_TX_CALLBACK(WRITELINE("debug_serial", rs232_port_device, write_txd))
MACHINE_CONFIG_END
@ -420,10 +420,10 @@ MACHINE_CONFIG_START(cybiko_state::cybikov1_base)
RAM(config, m_ram).set_default_size("512K").set_extra_options("1M");
/* serial debug port */
MCFG_DEVICE_ADD ("debug_serial", RS232_PORT, default_rs232_devices, nullptr)
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("null_modem", debug_serial)
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", debug_serial)
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("pty", debug_serial)
rs232_port_device &debug_serial(RS232_PORT(config, "debug_serial", default_rs232_devices, nullptr));
debug_serial.set_option_device_input_defaults("null_modem", DEVICE_INPUT_DEFAULTS_NAME(debug_serial));
debug_serial.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(debug_serial));
debug_serial.set_option_device_input_defaults("pty", DEVICE_INPUT_DEFAULTS_NAME(debug_serial));
/* quickload */
MCFG_QUICKLOAD_ADD("quickload", cybiko_state, cybiko, "bin,nv", 0)
@ -473,8 +473,8 @@ MACHINE_CONFIG_START(cybiko_state::cybikov2)
m_ram->set_default_size("256K").set_extra_options("512K,1M");
/* serial debug port */
MCFG_DEVICE_MODIFY("debug_serial")
MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu:sci2", h8_sci_device, rx_w))
auto &debug_serial(*subdevice<rs232_port_device>("debug_serial"));
debug_serial.rxd_handler().set("maincpu:sci2", FUNC(h8_sci_device::rx_w));
MCFG_DEVICE_MODIFY("maincpu:sci2")
MCFG_H8_SCI_TX_CALLBACK(WRITELINE("debug_serial", rs232_port_device, write_txd))
MACHINE_CONFIG_END
@ -494,8 +494,8 @@ MACHINE_CONFIG_START(cybiko_state::cybikoxt)
m_ram->set_default_size("2M");
/* serial debug port */
MCFG_DEVICE_MODIFY("debug_serial")
MCFG_RS232_RXD_HANDLER(WRITELINE("maincpu:sci2", h8_sci_device, rx_w))
auto &debug_serial(*subdevice<rs232_port_device>("debug_serial"));
debug_serial.rxd_handler().set("maincpu:sci2", FUNC(h8_sci_device::rx_w));
MCFG_DEVICE_MODIFY("maincpu:sci2")
MCFG_H8_SCI_TX_CALLBACK(WRITELINE("debug_serial", rs232_port_device, write_txd))

View File

@ -397,15 +397,15 @@ MACHINE_CONFIG_START(decstation_state::kn02ba)
MCFG_DEVICE_ADD("lk201", LK201, 0)
MCFG_LK201_TX_HANDLER(WRITELINE("scc1", z80scc_device, rxb_w))
MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("scc0", z80scc_device, rxa_w))
MCFG_RS232_DCD_HANDLER(WRITELINE("scc0", z80scc_device, dcda_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("scc0", z80scc_device, ctsa_w))
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr));
rs232a.rxd_handler().set(m_scc0, FUNC(z80scc_device::rxa_w));
rs232a.dcd_handler().set(m_scc0, FUNC(z80scc_device::dcda_w));
rs232a.cts_handler().set(m_scc0, FUNC(z80scc_device::ctsa_w));
MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("scc0", z80scc_device, rxb_w))
MCFG_RS232_DCD_HANDLER(WRITELINE("scc0", z80scc_device, dcdb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("scc0", z80scc_device, ctsb_w))
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_scc0, FUNC(z80scc_device::rxb_w));
rs232b.dcd_handler().set(m_scc0, FUNC(z80scc_device::dcdb_w));
rs232b.cts_handler().set(m_scc0, FUNC(z80scc_device::ctsb_w));
MCFG_NSCSI_BUS_ADD("scsibus")
MCFG_NSCSI_ADD("scsibus:0", dec_scsi_devices, "harddisk", false)

View File

@ -880,7 +880,7 @@ MACHINE_CONFIG_START(dectalk_state::dectalk)
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", M68000, XTAL(20'000'000)/2) /* E74 20MHz OSC (/2) */
MCFG_DEVICE_PROGRAM_MAP(m68k_mem)
MCFG_DEVICE_ADD("duart", SCN2681, XTAL(3'686'400)) // MC2681 DUART ; Y3 3.6864MHz xtal */
MCFG_DEVICE_ADD(m_duart, SCN2681, XTAL(3'686'400)) // MC2681 DUART ; Y3 3.6864MHz xtal */
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, dectalk_state, duart_irq_handler))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(*this, dectalk_state, duart_txa))
MCFG_MC68681_B_TX_CALLBACK(WRITELINE("rs232", rs232_port_device, write_txd))
@ -909,8 +909,8 @@ MACHINE_CONFIG_START(dectalk_state::dectalk)
/* Y2 is a 3.579545 MHz xtal for the dtmf decoder chip */
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("duart", scn2681_device, rx_b_w))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
rs232.rxd_handler().set(m_duart, FUNC(scn2681_device::rx_b_w));
MACHINE_CONFIG_END

View File

@ -456,9 +456,9 @@ MACHINE_CONFIG_START(decwriter_state::la120)
MCFG_INPUT_MERGER_ANY_HIGH("mainint")
MCFG_INPUT_MERGER_OUTPUT_HANDLER(INPUTLINE("maincpu", 0))
MCFG_RS232_PORT_ADD(RS232_TAG, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("usart", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE("usart", i8251_device, write_dsr))
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set("usart", FUNC(i8251_device::write_rxd));
rs232.dsr_handler().set("usart", FUNC(i8251_device::write_dsr));
*/
ER1400(config, m_nvm);

View File

@ -447,13 +447,13 @@ MACHINE_CONFIG_START(ksm_state::ksm)
// D42 - serial connection to host
I8251(config, m_i8251line, 0);
m_i8251line->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd));
m_i8251line->txd_handler().set(m_rs232, FUNC(rs232_port_device::write_txd));
m_i8251line->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir3_w));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem")
MCFG_RS232_RXD_HANDLER(WRITELINE("i8251line", i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("i8251line", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(WRITELINE("i8251line", i8251_device, write_dsr))
RS232_PORT(config, m_rs232, default_rs232_devices, "null_modem");
m_rs232->rxd_handler().set(m_i8251line, FUNC(i8251_device::write_rxd));
m_rs232->cts_handler().set(m_i8251line, FUNC(i8251_device::write_cts));
m_rs232->dsr_handler().set(m_i8251line, FUNC(i8251_device::write_dsr));
// D41 - serial connection to MS7004 keyboard
I8251(config, m_i8251kbd, 0);

View File

@ -578,10 +578,10 @@ MACHINE_CONFIG_START(ep64_state::ep64)
// video hardware
MCFG_NICK_ADD(NICK_TAG, SCREEN_TAG, XTAL(8'000'000))
MCFG_NICK_VIRQ_CALLBACK(WRITELINE(DAVE_TAG, dave_device, int1_w))
MCFG_NICK_VIRQ_CALLBACK(WRITELINE(m_dave, dave_device, int1_w))
// sound hardware
MCFG_DAVE_ADD(DAVE_TAG, XTAL(8'000'000), dave_64k_mem, dave_io)
MCFG_DAVE_ADD(m_dave, XTAL(8'000'000), dave_64k_mem, dave_io)
MCFG_DAVE_IRQ_CALLBACK(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
// devices
@ -595,8 +595,8 @@ MACHINE_CONFIG_START(ep64_state::ep64)
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, ep64_state, write_centronics_busy))
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_CTS_HANDLER(WRITELINE(DAVE_TAG, dave_device, int2_w))
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
m_rs232->rxd_handler().set(m_dave, FUNC(dave_device::int2_w));
MCFG_CASSETTE_ADD(CASSETTE1_TAG)
MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_DISABLED | CASSETTE_SPEAKER_MUTED)

View File

@ -713,21 +713,21 @@ MACHINE_CONFIG_START(cpu30_state::cpu30)
/* DUSCC2 interrupt signal REQN is connected to LOCAL IRQ5 of the FGA-002 and level is programmable */
MCFG_DUSCC_OUT_INT_CB(WRITELINE("fga002", fga002_device, lirq5_w))
MCFG_DEVICE_ADD(RS232P1_TAG, RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("duscc", duscc68562_device, rxb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("duscc", duscc68562_device, ctsb_w))
rs232_port_device &rs232p1(RS232_PORT(config, RS232P1_TAG, default_rs232_devices, "terminal"));
rs232p1.rxd_handler().set(m_dusccterm, FUNC(duscc68562_device::rxb_w));
rs232p1.cts_handler().set(m_dusccterm, FUNC(duscc68562_device::ctsb_w));
MCFG_DEVICE_ADD(RS232P2_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("duscc2", duscc68562_device, rxa_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("duscc2", duscc68562_device, ctsa_w))
rs232_port_device &rs232p2(RS232_PORT(config, RS232P2_TAG, default_rs232_devices, nullptr));
rs232p2.rxd_handler().set("duscc2", FUNC(duscc68562_device::rxa_w));
rs232p2.cts_handler().set("duscc2", FUNC(duscc68562_device::ctsa_w));
MCFG_DEVICE_ADD(RS232P3_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("duscc2", duscc68562_device, rxb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("duscc2", duscc68562_device, ctsb_w))
rs232_port_device &rs232p3(RS232_PORT(config, RS232P3_TAG, default_rs232_devices, nullptr));
rs232p3.rxd_handler().set("duscc2", FUNC(duscc68562_device::rxb_w));
rs232p3.cts_handler().set("duscc2", FUNC(duscc68562_device::ctsb_w));
MCFG_DEVICE_ADD(RS232P4_TAG, RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("duscc", duscc68562_device, rxa_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("duscc", duscc68562_device, ctsa_w))
rs232_port_device &rs232p4(RS232_PORT(config, RS232P4_TAG, default_rs232_devices, "terminal"));
rs232p4.rxd_handler().set(m_dusccterm, FUNC(duscc68562_device::rxa_w));
rs232p4.cts_handler().set(m_dusccterm, FUNC(duscc68562_device::ctsa_w));
/* PIT Parallel Interface and Timer device, assumed strapped for on board clock */
PIT68230(config, m_pit1, XTAL(16'000'000) / 2); // The PIT clock is not verified on schema but reversed from behaviour

View File

@ -2866,10 +2866,10 @@ MACHINE_CONFIG_START(towns_state::towns_base)
m_i8251->rts_handler().set("rs232c", FUNC(rs232_port_device::write_rts));
m_i8251->txd_handler().set("rs232c", FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD("rs232c", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("i8251",i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE("i8251",i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(WRITELINE("i8251",i8251_device, write_cts))
rs232_port_device &rs232c(RS232_PORT(config, "rs232c", default_rs232_devices, nullptr));
rs232c.rxd_handler().set(m_i8251, FUNC(i8251_device::write_rxd));
rs232c.dsr_handler().set(m_i8251, FUNC(i8251_device::write_dsr));
rs232c.cts_handler().set(m_i8251, FUNC(i8251_device::write_cts));
MCFG_FMT_ICMEMCARD_ADD("icmemcard")

View File

@ -558,18 +558,18 @@ MACHINE_CONFIG_START(force68k_state::fccpu1)
m_aciahost->txd_handler().set("rs232host", FUNC(rs232_port_device::write_txd));
m_aciahost->rts_handler().set("rs232host", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232host", RS232_PORT, default_rs232_devices, "null_modem")
MCFG_RS232_RXD_HANDLER(WRITELINE("aciahost", acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("aciahost", acia6850_device, write_cts))
rs232_port_device &rs232host(RS232_PORT(config, "rs232host", default_rs232_devices, "null_modem"));
rs232host.rxd_handler().set(m_aciahost, FUNC(acia6850_device::write_rxd));
rs232host.cts_handler().set(m_aciahost, FUNC(acia6850_device::write_cts));
/* P4/Terminal Port config */
ACIA6850(config, m_aciaterm, 0);
m_aciaterm->txd_handler().set("rs232trm", FUNC(rs232_port_device::write_txd));
m_aciaterm->rts_handler().set("rs232trm", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("aciaterm", acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("aciaterm", acia6850_device, write_cts))
rs232_port_device &rs232trm(RS232_PORT(config, "rs232trm", default_rs232_devices, "terminal"));
rs232trm.rxd_handler().set(m_aciaterm, FUNC(acia6850_device::write_rxd));
rs232trm.cts_handler().set(m_aciaterm, FUNC(acia6850_device::write_cts));
/* P5/Remote Port config */
ACIA6850(config, m_aciaremt, 0);

View File

@ -619,9 +619,9 @@ MACHINE_CONFIG_START(igt_gameking_state::igt_gameking)
MCFG_DEVICE_ADD("quart2", SC28C94, XTAL(24'000'000) / 6)
MCFG_MC68681_IRQ_CALLBACK(INPUTLINE("maincpu", I960_IRQ0))
MCFG_DEVICE_ADD("diag", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("quart1", sc28c94_device, rx_d_w))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
rs232_port_device &diag(RS232_PORT(config, "diag", default_rs232_devices, nullptr));
diag.rxd_handler().set("quart1", FUNC(sc28c94_device::rx_d_w));
diag.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_igt_gameking)

View File

@ -399,17 +399,18 @@ MACHINE_CONFIG_START(gridcomp_state::grid1101)
i7220.irq_callback().set(I80130_TAG, FUNC(i80130_device::ir1_w));
i7220.drq_callback().set(I80130_TAG, FUNC(i80130_device::ir1_w));
MCFG_DEVICE_ADD("hpib", TMS9914, XTAL(4'000'000))
MCFG_TMS9914_INT_WRITE_CB(WRITELINE(I80130_TAG, i80130_device, ir5_w))
MCFG_TMS9914_DIO_READWRITE_CB(READ8(IEEE488_TAG, ieee488_device, dio_r), WRITE8(IEEE488_TAG, ieee488_device, host_dio_w))
MCFG_TMS9914_EOI_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_eoi_w))
MCFG_TMS9914_DAV_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_dav_w))
MCFG_TMS9914_NRFD_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_nrfd_w))
MCFG_TMS9914_NDAC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ndac_w))
MCFG_TMS9914_IFC_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ifc_w))
MCFG_TMS9914_SRQ_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_srq_w))
MCFG_TMS9914_ATN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_atn_w))
MCFG_TMS9914_REN_WRITE_CB(WRITELINE(IEEE488_TAG, ieee488_device, host_ren_w))
tms9914_device &hpib(TMS9914(config, "hpib", XTAL(4'000'000)));
hpib.int_write_cb().set(I80130_TAG, FUNC(i80130_device::ir5_w));
hpib.dio_read_cb().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
hpib.dio_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w));
hpib.eoi_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w));
hpib.dav_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_dav_w));
hpib.nrfd_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_nrfd_w));
hpib.ndac_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ndac_w));
hpib.ifc_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ifc_w));
hpib.srq_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
hpib.atn_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
hpib.ren_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_EOI_CALLBACK(WRITELINE("hpib", tms9914_device, eoi_w))
MCFG_IEEE488_DAV_CALLBACK(WRITELINE("hpib", tms9914_device, dav_w))

View File

@ -534,10 +534,10 @@ MACHINE_CONFIG_START(guab_state::guab)
acia1.rts_handler().set("rs232_1", FUNC(rs232_port_device::write_rts));
acia1.irq_handler().set_inputline("maincpu", 4);
MCFG_DEVICE_ADD("rs232_1", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("acia6850_1", acia6850_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("acia6850_1", acia6850_device, write_cts))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("keyboard", acia_1_rs232_defaults)
rs232_port_device &rs232(RS232_PORT(config, "rs232_1", default_rs232_devices, nullptr));
rs232.rxd_handler().set("acia6850_1", FUNC(acia6850_device::write_rxd));
rs232.cts_handler().set("acia6850_1", FUNC(acia6850_device::write_cts));
rs232.set_option_device_input_defaults("keyboard", DEVICE_INPUT_DEFAULTS_NAME(acia_1_rs232_defaults));
clock_device &acia_clock(CLOCK(config, "acia_clock", 153600)); // source? the ptm doesn't seem to output any common baud values
acia_clock.signal_handler().set("acia6850_1", FUNC(acia6850_device::write_txc));

View File

@ -185,21 +185,22 @@ static DEVICE_INPUT_DEFAULTS_START( terminal )
DEVICE_INPUT_DEFAULTS_END
MACHINE_CONFIG_START(h89_state::h89)
void h89_state::h89(machine_config & config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu",Z80, XTAL(12'288'000) / 6)
MCFG_DEVICE_PROGRAM_MAP(h89_mem)
MCFG_DEVICE_IO_MAP(h89_io)
Z80(config, m_maincpu, XTAL(12'288'000) / 6);
m_maincpu->set_addrmap(AS_PROGRAM, &h89_state::h89_mem);
m_maincpu->set_addrmap(AS_IO, &h89_state::h89_io);
ins8250_device &uart(INS8250(config, "ins8250", XTAL(1'843'200)));
uart.out_tx_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("ins8250", ins8250_uart_device, rx_w))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, "terminal"));
rs232.rxd_handler().set("ins8250", FUNC(ins8250_uart_device::rx_w));
rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
MCFG_TIMER_DRIVER_ADD_PERIODIC("irq_timer", h89_state, h89_irq_timer, attotime::from_hz(100))
MACHINE_CONFIG_END
TIMER(config, "irq_timer", 0).configure_periodic(timer_device::expired_delegate(FUNC(h89_state::h89_irq_timer), this), attotime::from_hz(100));
}
/* ROM definition */
ROM_START( h89 )

View File

@ -350,9 +350,9 @@ MACHINE_CONFIG_START(hk68v10_state::hk68v10)
m_sccterm->out_dtra_callback().set("rs232trm", FUNC(rs232_port_device::write_dtr));
m_sccterm->out_rtsa_callback().set("rs232trm", FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD("rs232trm", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE(m_sccterm, scc8530_device, rxa_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(m_sccterm, scc8530_device, ctsa_w))
rs232_port_device &rs232trm(RS232_PORT(config, "rs232trm", default_rs232_devices, "terminal"));
rs232trm.rxd_handler().set(m_sccterm, FUNC(scc8530_device::rxa_w));
rs232trm.cts_handler().set(m_sccterm, FUNC(scc8530_device::ctsa_w));
MCFG_VME_DEVICE_ADD("vme")
MCFG_VME_SLOT_ADD("vme", 1, hk68_vme_cards, nullptr)

View File

@ -767,17 +767,18 @@ MACHINE_CONFIG_START(hp_ipc_state::hp_ipc_base)
mouse.set_default_option("hp_46060b");
mouse.set_hp_hil_slot(this, "mlc");
MCFG_DEVICE_ADD("hpib", TMS9914, 4_MHz_XTAL)
MCFG_TMS9914_INT_WRITE_CB(WRITELINE(*this, hp_ipc_state, irq_3))
MCFG_TMS9914_DIO_READWRITE_CB(READ8(IEEE488_TAG , ieee488_device , dio_r) , WRITE8(IEEE488_TAG , ieee488_device , host_dio_w))
MCFG_TMS9914_EOI_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_eoi_w))
MCFG_TMS9914_DAV_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_dav_w))
MCFG_TMS9914_NRFD_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_nrfd_w))
MCFG_TMS9914_NDAC_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_ndac_w))
MCFG_TMS9914_IFC_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_ifc_w))
MCFG_TMS9914_SRQ_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_srq_w))
MCFG_TMS9914_ATN_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_atn_w))
MCFG_TMS9914_REN_WRITE_CB(WRITELINE(IEEE488_TAG , ieee488_device , host_ren_w))
tms9914_device &hpib(TMS9914(config, "hpib", 4_MHz_XTAL));
hpib.int_write_cb().set(FUNC(hp_ipc_state::irq_3));
hpib.dio_read_cb().set(IEEE488_TAG, FUNC(ieee488_device::dio_r));
hpib.dio_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_dio_w));
hpib.eoi_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_eoi_w));
hpib.dav_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_dav_w));
hpib.nrfd_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_nrfd_w));
hpib.ndac_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ndac_w));
hpib.ifc_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ifc_w));
hpib.srq_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_srq_w));
hpib.atn_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_atn_w));
hpib.ren_write_cb().set(IEEE488_TAG, FUNC(ieee488_device::host_ren_w));
MCFG_IEEE488_BUS_ADD()
MCFG_IEEE488_EOI_CALLBACK(WRITELINE("hpib" , tms9914_device , eoi_w))
MCFG_IEEE488_DAV_CALLBACK(WRITELINE("hpib" , tms9914_device , dav_w))

View File

@ -938,10 +938,10 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580)
upd8251a.rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
upd8251a.txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("upd8251a", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE("upd8251a", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(WRITELINE("upd8251a", i8251_device, write_cts))
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr));
rs232a.rxd_handler().set("upd8251a", FUNC(i8251_device::write_rxd));
rs232a.dsr_handler().set("upd8251a", FUNC(i8251_device::write_dsr));
rs232a.cts_handler().set("upd8251a", FUNC(i8251_device::write_cts));
i8251_device &upd8251b(I8251(config, "upd8251b", 0));
upd8251b.txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd));
@ -950,10 +950,10 @@ MACHINE_CONFIG_START(ibm6580_state::ibm6580)
upd8251b.rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
upd8251b.txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("upd8251b", i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE("upd8251b", i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(WRITELINE("upd8251b", i8251_device, write_cts))
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set("upd8251b", FUNC(i8251_device::write_rxd));
rs232b.dsr_handler().set("upd8251b", FUNC(i8251_device::write_dsr));
rs232b.cts_handler().set("upd8251b", FUNC(i8251_device::write_cts));
MCFG_SOFTWARE_LIST_ADD("flop_list", "ibm6580")
MACHINE_CONFIG_END

View File

@ -347,11 +347,11 @@ MACHINE_CONFIG_START(isbc_state::isbc86)
m_uart8251->rxrdy_handler().set("pic_0", FUNC(pic8259_device::ir6_w));
/* video hardware */
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8251, i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8251, i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart8251, i8251_device, write_dsr))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc86_terminal)
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
rs232.rxd_handler().set(m_uart8251, FUNC(i8251_device::write_rxd));
rs232.cts_handler().set(m_uart8251, FUNC(i8251_device::write_cts));
rs232.dsr_handler().set(m_uart8251, FUNC(i8251_device::write_dsr));
rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(isbc86_terminal));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(isbc_state::rpc86)
@ -381,11 +381,11 @@ MACHINE_CONFIG_START(isbc_state::rpc86)
m_uart8251->txrdy_handler().set("pic_0", FUNC(pic8259_device::ir7_w));
/* video hardware */
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("uart8251", i8251_device, write_rxd))
//MCFG_RS232_CTS_HANDLER(WRITELINE("uart8251", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(WRITELINE("uart8251", i8251_device, write_dsr))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal)
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
rs232.rxd_handler().set(m_uart8251, FUNC(i8251_device::write_rxd));
//rs232.cts_handler().set(m_uart8251, FUNC(i8251_device::write_cts));
rs232.dsr_handler().set(m_uart8251, FUNC(i8251_device::write_dsr));
rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(isbc286_terminal));
MCFG_ISBX_SLOT_ADD("sbx1", 0, isbx_cards, nullptr)
//MCFG_ISBX_SLOT_MINTR0_CALLBACK(WRITELINE("pic_0", pic8259_device, ir3_w))
@ -484,28 +484,28 @@ MACHINE_CONFIG_START(isbc_state::isbc286)
m_uart8274->out_int_callback().set("pic_0", FUNC(pic8259_device::ir6_w));
#endif
MCFG_DEVICE_ADD("rs232a", RS232_PORT, default_rs232_devices, nullptr)
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr));
#if 0
MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", z80dart_device, rxa_w))
MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", z80dart_device, dcda_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", z80dart_device, ctsa_w))
rs232a.rxd_handler().set(m_uart8274, FUNC(z80dart_device::rxa_w));
rs232a.dcd_handler().set(m_uart8274, FUNC(z80dart_device::dcda_w));
rs232a.cts_handler().set(m_uart8274, FUNC(z80dart_device::ctsa_w));
#else
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxa_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcda_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsa_w))
rs232a.rxd_handler().set(m_uart8274, FUNC(i8274_new_device::rxa_w));
rs232a.dcd_handler().set(m_uart8274, FUNC(i8274_new_device::dcda_w));
rs232a.cts_handler().set(m_uart8274, FUNC(i8274_new_device::ctsa_w));
#endif
MCFG_DEVICE_ADD("rs232b", RS232_PORT, default_rs232_devices, "terminal")
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "terminal"));
#if 0
MCFG_RS232_RXD_HANDLER(WRITELINE("uart8274", z80dart_device, rxb_w))
MCFG_RS232_DCD_HANDLER(WRITELINE("uart8274", z80dart_device, dcdb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("uart8274", z80dart_device, ctsb_w))
rs232b.rxd_handler().set(m_uart8274, FUNC(z80dart_device::rxb_w));
rs232b.dcd_handler().set(m_uart8274, FUNC(z80dart_device::dcdb_w));
rs232b.cts_handler().set(m_uart8274, FUNC(z80dart_device::ctsb_w));
#else
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, rxb_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart8274, i8274_new_device, dcdb_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart8274, i8274_new_device, ctsb_w))
rs232b.rxd_handler().set(m_uart8274, FUNC(i8274_new_device::rxb_w));
rs232b.dcd_handler().set(m_uart8274, FUNC(i8274_new_device::dcdb_w));
rs232b.cts_handler().set(m_uart8274, FUNC(i8274_new_device::ctsb_w));
#endif
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", isbc286_terminal)
rs232b.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(isbc286_terminal));
MCFG_ISBX_SLOT_ADD("sbx1", 0, isbx_cards, nullptr)
MCFG_ISBX_SLOT_MINTR0_CALLBACK(WRITELINE("pic_1", pic8259_device, ir3_w))

View File

@ -182,14 +182,14 @@ MACHINE_CONFIG_START(isbc8010_state::isbc8010)
m_usart->dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr));
m_usart->rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD(I8255A_1_TAG, I8255A, 0)
MCFG_DEVICE_ADD(I8255A_2_TAG, I8255A, 0)
I8255A(config, m_ppi_0);
I8255A(config, m_ppi_1);
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_cts))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
RS232_PORT(config, m_rs232, default_rs232_devices, "terminal");
m_rs232->rxd_handler().set(m_usart, FUNC(i8251_device::write_rxd));
m_rs232->dsr_handler().set(m_usart, FUNC(i8251_device::write_dsr));
m_rs232->cts_handler().set(m_usart, FUNC(i8251_device::write_cts));
m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(18'432'000)/60)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, isbc8010_state, usart_clock_tick))

View File

@ -1374,8 +1374,8 @@ MACHINE_CONFIG_START(kc85_state::kc85)
IM6402(config, m_uart, 0, 0);
m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, im6402_device, write_rri))
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_uart, FUNC(im6402_device::write_rri));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, kc85_state, write_centronics_busy))
@ -1424,8 +1424,8 @@ MACHINE_CONFIG_START(pc8201_state::pc8201)
IM6402(config, m_uart, 0, 0);
m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, im6402_device, write_rri))
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_uart, FUNC(im6402_device::write_rri));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(*this, kc85_state, write_centronics_busy))
@ -1484,8 +1484,8 @@ MACHINE_CONFIG_START(trsm100_state::trsm100)
IM6402(config, m_uart, 0, 0);
m_uart->tro_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, im6402_device, write_rri))
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_uart, FUNC(im6402_device::write_rri));
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
MCFG_CASSETTE_ADD("cassette")
@ -1544,9 +1544,9 @@ MACHINE_CONFIG_START(tandy200_state::tandy200)
i8251.dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr));
i8251.rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_dsr))
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(I8251_TAG, FUNC(i8251_device::write_rxd));
rs232.dsr_handler().set(I8251_TAG, FUNC(i8251_device::write_dsr));
// MCFG_MC14412_ADD(MC14412_TAG, XTAL(1'000'000))
MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")

View File

@ -132,8 +132,8 @@ MACHINE_CONFIG_START(mcb216_state::mcb216)
m_tms5501->xmt_callback().set("rs232", FUNC(rs232_port_device::write_txd));
m_tms5501->int_callback().set_inputline("maincpu", 0);
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("tms5501", tms5501_device, rcv_w))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
rs232.rxd_handler().set(m_tms5501, FUNC(tms5501_device::rcv_w));
MACHINE_CONFIG_END
MACHINE_CONFIG_START(mcb216_state::cb308)
@ -149,8 +149,8 @@ MACHINE_CONFIG_START(mcb216_state::cb308)
m_tms5501->xmt_callback().set("rs232", FUNC(rs232_port_device::write_txd));
m_tms5501->int_callback().set_inputline("maincpu", 0);
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE("tms5501", tms5501_device, rcv_w))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
rs232.rxd_handler().set(m_tms5501, FUNC(tms5501_device::rcv_w));
MACHINE_CONFIG_END
/* ROM definition */

View File

@ -2073,11 +2073,12 @@ ROM_START( spangbl )
ROM_LOAD( "ic125.14", 0x030000, 0x10000, CRC(bd5c2f4b) SHA1(3c71d63637633a98ab513e4336e2954af3f964f4) )
ROM_END
// There is a bank of 8 dipswitches that needs to be hooked up
ROM_START( spangbl2 )
ROM_REGION( 0x50000*2, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "ic2.1", 0x00000, 0x08000, CRC(4403f652) SHA1(62a232985a334ea8af840c2c3e766f316cc9e3da) ) // 1ST AND 2ND HALF IDENTICAL, but found as is on two different boards
ROM_CONTINUE(0x50000,0x8000)
ROM_LOAD( "ic18.2", 0x60000, 0x04000, CRC(6f377832) SHA1(25755ed77a797f50fdfbb4c42a04f51d3d08f87c) )
// IC2 can be found as 27C512 with 1st and 2nd half identical or as 27C256
ROM_LOAD( "sp2-19.ic2", 0x00000, 0x08000, CRC(6f52f8df) SHA1(a203e5cee601ea660860c38ac8e377a54f619c12) ) // 27C256
ROM_LOAD( "sp-18.ic18", 0x60000, 0x04000, CRC(6f377832) SHA1(25755ed77a797f50fdfbb4c42a04f51d3d08f87c) ) // 27C020
ROM_CONTINUE(0x10000,0x4000)
ROM_CONTINUE(0x64000,0x4000)
ROM_CONTINUE(0x14000,0x4000)
@ -2093,38 +2094,44 @@ ROM_START( spangbl2 )
ROM_CONTINUE(0x28000,0x4000)
ROM_CONTINUE(0x7c000,0x4000)
ROM_CONTINUE(0x2c000,0x4000)
ROM_LOAD( "ic19.3", 0x40000, 0x04000, CRC(7c776309) SHA1(8861ed11484ca0727dfbc3003888a9de32ed8ecc) )
ROM_LOAD( "sp-17.ic19", 0x40000, 0x04000, CRC(7c776309) SHA1(8861ed11484ca0727dfbc3003888a9de32ed8ecc) ) // 27C256
ROM_CONTINUE(0x48000,0x4000)
ROM_CONTINUE(0x44000,0x4000)
ROM_CONTINUE(0x4c000,0x4000)
ROM_REGION( 0x20000, "audiocpu", 0 ) /* Sound Z80 + M5205 samples */
ROM_LOAD( "ic28.4", 0x00000, 0x10000, CRC(02b07d0a) SHA1(77cb9bf1b0d93ebad1bd8cdbedb7fdbad23697be) )
ROM_LOAD( "ic45.5", 0x10000, 0x10000, CRC(95c32824) SHA1(02de90a7bfbe89feb7708fda8dfac4ed32bc0773) )
ROM_REGION( 0x20000, "audiocpu", 0 ) // Sound Z80 + M5205 samples
ROM_LOAD( "sp-20.ic28", 0x00000, 0x10000, CRC(02b07d0a) SHA1(77cb9bf1b0d93ebad1bd8cdbedb7fdbad23697be) ) // 27C512
ROM_LOAD( "sp-21.ic45", 0x10000, 0x10000, CRC(95c32824) SHA1(02de90a7bfbe89feb7708fda8dfac4ed32bc0773) ) // 27C512
ROM_REGION( 0x100000, "gfx1", ROMREGION_INVERT| ROMREGION_ERASE00 )
ROM_LOAD16_BYTE( "ic79.11", 0x000001, 0x10000, CRC(10839ddd) SHA1(bfb56aa5d6ee1d3aa19e346264bee90d64545e51) )
ROM_LOAD16_BYTE( "ic78.7", 0x000000, 0x10000, CRC(c1d5df89) SHA1(a86e641af1b41c8f642fe3a14ebcbe6c27f80c79) )
ROM_LOAD16_BYTE( "ic49.10", 0x020001, 0x10000, CRC(113c2753) SHA1(37b480b5d9c581d3c807c81924b4bbbc21d0698d) )
ROM_LOAD16_BYTE( "ic48.6", 0x020000, 0x10000, CRC(4ffae6c9) SHA1(71df3c374a24d6a90e78d33929cb91d05bd10b78) )
ROM_LOAD16_BYTE( "ic81.13", 0x080001, 0x10000, CRC(ebe9c63a) SHA1(1aeeea5051086405ceb803ca7a5bfd82a07ade0f) )
ROM_LOAD16_BYTE( "ic80.9", 0x080000, 0x10000, CRC(f680051d) SHA1(b6e09e14baf839961f46e0986d2c17f7edfaf13d) )
ROM_LOAD16_BYTE( "ic51.12", 0x0a0001, 0x10000, CRC(beb49dc9) SHA1(c93f65b0f4ce0a0f400202f2998b89abad1f6942) )
ROM_LOAD16_BYTE( "ic50.8", 0x0a0000, 0x10000, CRC(3f91014c) SHA1(b3947caa0c667d871c19d7dda6536d043ad296f2) )
ROM_LOAD16_BYTE( "sp-31.ic79", 0x000001, 0x10000, CRC(10839ddd) SHA1(bfb56aa5d6ee1d3aa19e346264bee90d64545e51) ) // 27C512
ROM_LOAD16_BYTE( "sp-23.ic78", 0x000000, 0x10000, CRC(c1d5df89) SHA1(a86e641af1b41c8f642fe3a14ebcbe6c27f80c79) ) // 27C512
ROM_LOAD16_BYTE( "sp-30.ic49", 0x020001, 0x10000, CRC(113c2753) SHA1(37b480b5d9c581d3c807c81924b4bbbc21d0698d) ) // 27C512
ROM_LOAD16_BYTE( "sp-22.ic46", 0x020000, 0x10000, CRC(4ffae6c9) SHA1(71df3c374a24d6a90e78d33929cb91d05bd10b78) ) // 27C512
ROM_LOAD16_BYTE( "sp-33.ic81", 0x080001, 0x10000, CRC(ebe9c63a) SHA1(1aeeea5051086405ceb803ca7a5bfd82a07ade0f) ) // 27C512
ROM_LOAD16_BYTE( "sp-25.ic80", 0x080000, 0x10000, CRC(f680051d) SHA1(b6e09e14baf839961f46e0986d2c17f7edfaf13d) ) // 27C512
ROM_LOAD16_BYTE( "sp-32.ic51", 0x0a0001, 0x10000, CRC(beb49dc9) SHA1(c93f65b0f4ce0a0f400202f2998b89abad1f6942) ) // 27C512
ROM_LOAD16_BYTE( "sp-24.ic50", 0x0a0000, 0x10000, CRC(3f91014c) SHA1(b3947caa0c667d871c19d7dda6536d043ad296f2) ) // 27C512
ROM_REGION( 0x040000, "gfx2", ROMREGION_INVERT )
ROM_LOAD( "ic94.17", 0x000000, 0x10000, CRC(a56f3c20) SHA1(cb440e0e612da8b8a50fe25a6336869b62ab4cfd) )
ROM_LOAD( "ic95.16", 0x020000, 0x10000, CRC(14df4659) SHA1(d73fab0a8c1e56a26cc15333a294e876f1552bc9) )
ROM_LOAD( "ic124.15", 0x010000, 0x10000, CRC(4702c768) SHA1(ff996f1355f32451fa57836c2255027a8108eb40) )
ROM_LOAD( "ic125.14", 0x030000, 0x10000, CRC(bd5c2f4b) SHA1(3c71d63637633a98ab513e4336e2954af3f964f4) )
ROM_LOAD( "sp-29.ic94", 0x000000, 0x10000, CRC(a56f3c20) SHA1(cb440e0e612da8b8a50fe25a6336869b62ab4cfd) ) // 27C512
ROM_LOAD( "sp-28.ic95", 0x020000, 0x10000, CRC(14df4659) SHA1(d73fab0a8c1e56a26cc15333a294e876f1552bc9) ) // 27C512
ROM_LOAD( "sp-27.ic124", 0x010000, 0x10000, CRC(4702c768) SHA1(ff996f1355f32451fa57836c2255027a8108eb40) ) // 27C512
ROM_LOAD( "sp-26.ic125", 0x030000, 0x10000, CRC(bd5c2f4b) SHA1(3c71d63637633a98ab513e4336e2954af3f964f4) ) // 27C512
/* Unused */
ROM_REGION( 0x008000, "key", 0)
ROM_LOAD( "extra-27c256.bin", 0x00000, 0x08000, CRC(100dda13) SHA1(9a0b6d4439127abc4995c9df3839bfe1f13d8bc2) )
// Unused
ROM_REGION( 0x008800, "extra", 0)
// "sp2-15" contains the same pattern repeated several times
ROM_LOAD( "sp2-15.bin", 0x00000, 0x08000, CRC(100dda13) SHA1(9a0b6d4439127abc4995c9df3839bfe1f13d8bc2) ) // 27C256
// "sp2-16" can be found as a 76161 PROM or as a 27C256 with its first 6KB empty
ROM_LOAD( "sp2-16.bin", 0x08000, 0x00800, CRC(16dbd461) SHA1(1759ad71df8deb5452b3ee92aa2ece1ee79ff469) ) // M1-76161-5
/* Unsused */
ROM_REGION( 0x000104, "plds", 0)
ROM_LOAD( "1-pal16l8.ic32", 0x0000, 0x0104, CRC(b78ee715) SHA1(df9ed2bef394b4e26ac87bd39d81f4df2b5cefe5) )
// Unsused
ROM_REGION( 0x000505, "plds", 0)
ROM_LOAD( "1-hy18cv8s.ic4", 0x0000, 0x0155, CRC(a93edbf5) SHA1(57ac314e6d501be903e313aec4e083d642bebebe) )
ROM_LOAD( "2-pal16l8acn.ic32", 0x0155, 0x0104, CRC(b78ee715) SHA1(df9ed2bef394b4e26ac87bd39d81f4df2b5cefe5) )
ROM_LOAD( "3-hy18cv8s.ic101", 0x0259, 0x0155, CRC(c5c1b9e2) SHA1(df10e706a212709bec415943a6409dd0eb8f72aa) )
ROM_LOAD( "4-gal20v8.bin", 0x03ae, 0x0157, CRC(29a2653d) SHA1(38426af27d9c48e650c74fc3d9a9a612d11e413c) )
ROM_END
/* seems to be the same basic hardware, but the memory map and io map are different at least.. */

View File

@ -599,6 +599,7 @@ MACHINE_CONFIG_START(namcofl_state::namcofl)
m_c123tmap->set_color_base(0x1000);
NAMCO_C116(config, m_c116, 0);
m_c116->enable_shadows();
MCFG_VIDEO_START_OVERRIDE(namcofl_state,namcofl)

View File

@ -197,13 +197,13 @@ MACHINE_CONFIG_START(pcat_dyn_state::pcat_dyn)
uart.out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts));
uart.out_int_callback().set("pic8259_1", FUNC(pic8259_device::ir4_w));
MCFG_DEVICE_ADD( "serport", RS232_PORT, pcat_dyn_com, "msmouse" )
MCFG_SLOT_FIXED(true)
MCFG_RS232_RXD_HANDLER(WRITELINE("ns16550", ins8250_uart_device, rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE("ns16550", ins8250_uart_device, dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE("ns16550", ins8250_uart_device, dsr_w))
MCFG_RS232_RI_HANDLER(WRITELINE("ns16550", ins8250_uart_device, ri_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("ns16550", ins8250_uart_device, cts_w))
rs232_port_device &serport(RS232_PORT(config, "serport", pcat_dyn_com, "msmouse"));
serport.set_fixed(true);
serport.rxd_handler().set("ns16550", FUNC(ins8250_uart_device::rx_w));
serport.dcd_handler().set("ns16550", FUNC(ins8250_uart_device::dcd_w));
serport.dsr_handler().set("ns16550", FUNC(ins8250_uart_device::dsr_w));
serport.ri_handler().set("ns16550", FUNC(ins8250_uart_device::ri_w));
serport.cts_handler().set("ns16550", FUNC(ins8250_uart_device::cts_w));
MCFG_DEVICE_ADD("isa", ISA8, 0)
MCFG_ISA8_CPU("maincpu")

View File

@ -238,10 +238,10 @@ MACHINE_CONFIG_START(pk8020_state::pk8020)
m_rs232->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir1_w));
m_rs232->txrdy_handler().set("pic8259", FUNC(pic8259_device::ir2_w));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("i8251line", i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("i8251line", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(WRITELINE("i8251line", i8251_device, write_dsr))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_rs232, FUNC(i8251_device::write_rxd));
rs232.cts_handler().set(m_rs232, FUNC(i8251_device::write_cts));
rs232.dsr_handler().set(m_rs232, FUNC(i8251_device::write_dsr));
I8251(config, m_lan, 0);

View File

@ -1535,11 +1535,11 @@ MACHINE_CONFIG_START(px4_state::px4)
MCFG_EPSON_SIO_PIN(WRITELINE(*this, px4_state, sio_pin_w))
// rs232 port
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(*this, px4_state, rs232_rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(*this, px4_state, rs232_dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE(*this, px4_state, rs232_dsr_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(*this, px4_state, rs232_cts_w))
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
m_rs232->rxd_handler().set(FUNC(px4_state::rs232_rx_w));
m_rs232->dcd_handler().set(FUNC(px4_state::rs232_dcd_w));
m_rs232->dsr_handler().set(FUNC(px4_state::rs232_dsr_w));
m_rs232->cts_handler().set(FUNC(px4_state::rs232_cts_w));
// rom capsules
MCFG_GENERIC_CARTSLOT_ADD("capsule1", generic_plain_slot, "px4_cart")

View File

@ -777,7 +777,7 @@ MACHINE_CONFIG_START(qx10_state::qx10)
UPD7201(config, m_scc, MAIN_CLK/4); // channel b clock set by pit2 channel 2
// Channel A: Keyboard
m_scc->out_txda_callback().set("kbd", FUNC(rs232_port_device::write_txd));
m_scc->out_txda_callback().set(m_kbd, FUNC(rs232_port_device::write_txd));
// Channel B: RS232
m_scc->out_txdb_callback().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
m_scc->out_dtrb_callback().set(RS232_TAG, FUNC(rs232_port_device::write_dtr));
@ -814,11 +814,11 @@ MACHINE_CONFIG_START(qx10_state::qx10)
FLOPPY_CONNECTOR(config, m_floppy[0], qx10_floppies, "525dd", floppy_image_device::default_floppy_formats);
FLOPPY_CONNECTOR(config, m_floppy[1], qx10_floppies, "525dd", floppy_image_device::default_floppy_formats);
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, upd7201_device, rxb_w))
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, nullptr));
rs232.rxd_handler().set(m_scc, FUNC(upd7201_device::rxb_w));
MCFG_DEVICE_ADD("kbd", RS232_PORT, keyboard, "qx10")
MCFG_RS232_RXD_HANDLER(WRITELINE(m_scc, z80dart_device, rxa_w))
RS232_PORT(config, m_kbd, keyboard, "qx10");
m_kbd->rxd_handler().set(m_scc, FUNC(upd7201_device::rxa_w));
/* internal ram */
RAM(config, RAM_TAG).set_default_size("256K");

View File

@ -3282,14 +3282,13 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
m_hdc->out_step_callback().set(FUNC(rainbow_state::hdc_step)); // STEP PULSE
m_hdc->out_dirin_callback().set(FUNC(rainbow_state::hdc_direction));
m_hdc->in_wf_callback().set(FUNC(rainbow_state::hdc_write_fault)); // WRITE FAULT (set to GND if not serviced)
// WF + DRDY are actually wired to a routine here:
m_hdc->in_wf_callback().set(FUNC(rainbow_state::hdc_write_fault)); // WRITE FAULT (fatal until next reset)
m_hdc->in_drdy_callback().set(FUNC(rainbow_state::hdc_drive_ready)); // DRIVE_READY (VCC = ready)
m_hdc->in_drdy_callback().set(FUNC(rainbow_state::hdc_drive_ready)); // DRIVE_READY (set to VCC if not serviced)
m_hdc->in_sc_callback().set_constant(1); // SEEK COMPLETE (set to VCC if not serviced)
m_hdc->in_tk000_callback().set_constant(1); // CURRENTLY NOT EVALUATED WITHIN 'WD2010'
m_hdc->in_wf_callback().set_constant(1); // "
// Always set seek complete and track 00 signal (not super clean, but does not affect operation):
m_hdc->in_sc_callback().set_constant(1); // SEEK COMPLETE (VCC = complete)
m_hdc->in_tk000_callback().set_constant(1); // TRACK 00 signal (= from drive)
MCFG_HARDDISK_ADD("decharddisk1")
/// ******************************** / HARD DISK CONTROLLER ****************************************
@ -3312,27 +3311,25 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
UPD7201_NEW(config, m_mpsc, 24.0734_MHz_XTAL / 5 / 2); // 2.4073 MHz (nominally 2.5 MHz)
m_mpsc->out_int_callback().set(FUNC(rainbow_state::mpsc_irq));
m_mpsc->out_txda_callback().set("comm", FUNC(rs232_port_device::write_txd));
m_mpsc->out_txda_callback().set(m_comm_port, FUNC(rs232_port_device::write_txd));
m_mpsc->out_txdb_callback().set("printer", FUNC(rs232_port_device::write_txd));
// RTS and DTR outputs are not connected
MCFG_DEVICE_ADD("comm", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, rxa_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, ctsa_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, dcda_w))
RS232_PORT(config, m_comm_port, default_rs232_devices, nullptr);
m_comm_port->rxd_handler().set(m_mpsc, FUNC(upd7201_new_device::rxa_w));
m_comm_port->cts_handler().set(m_mpsc, FUNC(upd7201_new_device::ctsa_w));
m_comm_port->dcd_handler().set(m_mpsc, FUNC(upd7201_new_device::dcda_w));
MCFG_DEVICE_ADD("printer", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, rxb_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(m_mpsc, upd7201_new_device, ctsb_w)) // actually DTR
rs232_port_device &printer(RS232_PORT(config, "printer", default_rs232_devices, nullptr));
printer.rxd_handler().set(m_mpsc, FUNC(upd7201_new_device::rxb_w));
printer.dcd_handler().set(m_mpsc, FUNC(upd7201_new_device::ctsb_w)); // actually DTR
MCFG_DEVICE_MODIFY("comm")
MCFG_SLOT_OPTION_ADD("microsoft_mouse", MSFT_HLE_SERIAL_MOUSE)
MCFG_SLOT_OPTION_ADD("logitech_mouse", LOGITECH_HLE_SERIAL_MOUSE)
MCFG_SLOT_OPTION_ADD("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE)
MCFG_SLOT_DEFAULT_OPTION("logitech_mouse")
m_comm_port->option_add("microsoft_mouse", MSFT_HLE_SERIAL_MOUSE);
m_comm_port->option_add("logitech_mouse", LOGITECH_HLE_SERIAL_MOUSE);
m_comm_port->option_add("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE);
m_comm_port->set_default_option("logitech_mouse");
MCFG_DEVICE_MODIFY("printer")
MCFG_SLOT_DEFAULT_OPTION("printer")
printer.set_default_option("printer");
I8251(config, m_kbd8251, 24.0734_MHz_XTAL / 5 / 2);
m_kbd8251->txd_handler().set(FUNC(rainbow_state::kbd_tx));

View File

@ -927,12 +927,12 @@ MACHINE_CONFIG_START(rex6000_state::rex6000)
m_uart->out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts));
m_uart->out_int_callback().set(FUNC(rex6000_state::serial_irq));
MCFG_DEVICE_ADD( "serport", RS232_PORT, default_rs232_devices, nullptr )
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dsr_w))
MCFG_RS232_RI_HANDLER(WRITELINE(m_uart, ins8250_uart_device, ri_w))
MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart, ins8250_uart_device, cts_w))
rs232_port_device &serport(RS232_PORT(config, "serport", default_rs232_devices, nullptr));
serport.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w));
serport.dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w));
serport.dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w));
serport.ri_handler().set(m_uart, FUNC(ins8250_uart_device::ri_w));
serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w));
/* quickload */
MCFG_QUICKLOAD_ADD("quickload", rex6000_state, rex6000, "rex,ds2", 0)
@ -977,12 +977,12 @@ MACHINE_CONFIG_START(oz750_state::oz750)
m_uart->out_rts_callback().set("serport", FUNC(rs232_port_device::write_rts));
m_uart->out_int_callback().set(FUNC(rex6000_state::serial_irq));
MCFG_DEVICE_ADD( "serport", RS232_PORT, default_rs232_devices, nullptr )
MCFG_RS232_RXD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE(m_uart, ins8250_uart_device, dsr_w))
MCFG_RS232_RI_HANDLER(WRITELINE(m_uart, ins8250_uart_device, ri_w))
//MCFG_RS232_CTS_HANDLER(WRITELINE(m_uart, ins8250_uart_device, cts_w))
rs232_port_device &serport(RS232_PORT(config, "serport", default_rs232_devices, nullptr));
serport.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w));
serport.dcd_handler().set(m_uart, FUNC(ins8250_uart_device::dcd_w));
serport.dsr_handler().set(m_uart, FUNC(ins8250_uart_device::dsr_w));
serport.ri_handler().set(m_uart, FUNC(ins8250_uart_device::ri_w));
//serport.cts_handler().set(m_uart, FUNC(ins8250_uart_device::cts_w));
/* video hardware */
MCFG_SCREEN_ADD("screen", LCD)

View File

@ -121,29 +121,30 @@ static DEVICE_INPUT_DEFAULTS_START( terminal ) // set up terminal to default to
DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_1 )
DEVICE_INPUT_DEFAULTS_END
MACHINE_CONFIG_START(sdk80_state::sdk80)
void sdk80_state::sdk80(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8080A, XTAL(18'432'000)/9)
MCFG_DEVICE_PROGRAM_MAP(sdk80_mem)
MCFG_DEVICE_IO_MAP(sdk80_io)
I8080A(config, m_maincpu, XTAL(18'432'000)/9);
m_maincpu->set_addrmap(AS_PROGRAM, &sdk80_state::sdk80_mem);
m_maincpu->set_addrmap(AS_IO, &sdk80_state::sdk80_io);
I8251(config, m_usart, 0);
m_usart->txd_handler().set(RS232_TAG, FUNC(rs232_port_device::write_txd));
m_usart->dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr));
m_usart->rts_handler().set(RS232_TAG, FUNC(rs232_port_device::write_rts));
MCFG_DEVICE_ADD(I8255A_0_TAG, I8255A, 0)
MCFG_DEVICE_ADD(I8255A_1_TAG, I8255A, 0)
I8255A(config, m_ppi_0);
I8255A(config, m_ppi_1);
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_dsr))
MCFG_RS232_CTS_HANDLER(WRITELINE(I8251A_TAG, i8251_device, write_cts))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
RS232_PORT(config, m_rs232, default_rs232_devices, "terminal");
m_rs232->rxd_handler().set(m_usart, FUNC(i8251_device::write_rxd));
m_rs232->dsr_handler().set(m_usart, FUNC(i8251_device::write_dsr));
m_rs232->cts_handler().set(m_usart, FUNC(i8251_device::write_cts));
m_rs232->set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(18'432'000)/60)
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, sdk80_state, usart_clock_tick))
MACHINE_CONFIG_END
clock_device &clock(CLOCK(config, "usart_clock", XTAL(18'432'000)/60));
clock.signal_handler().set(FUNC(sdk80_state::usart_clock_tick));
}
/* ROM definition */
ROM_START( sdk80 )

View File

@ -145,11 +145,12 @@ static DEVICE_INPUT_DEFAULTS_START( terminal )
DEVICE_INPUT_DEFAULTS( "RS232_STOPBITS", 0xff, RS232_STOPBITS_2 )
DEVICE_INPUT_DEFAULTS_END
MACHINE_CONFIG_START(sdk86_state::sdk86)
void sdk86_state::sdk86(machine_config &config)
{
/* basic machine hardware */
MCFG_DEVICE_ADD("maincpu", I8086, XTAL(14'745'600)/3) /* divided down by i8284 clock generator; jumper selection allows it to be slowed to 2.5MHz, hence changing divider from 3 to 6 */
MCFG_DEVICE_PROGRAM_MAP(sdk86_mem)
MCFG_DEVICE_IO_MAP(sdk86_io)
I8086(config, m_maincpu, XTAL(14'745'600)/3); /* divided down by i8284 clock generator; jumper selection allows it to be slowed to 2.5MHz, hence changing divider from 3 to 6 */
m_maincpu->set_addrmap(AS_PROGRAM, &sdk86_state::sdk86_mem);
m_maincpu->set_addrmap(AS_IO, &sdk86_state::sdk86_io);
/* video hardware */
config.set_default_layout(layout_sdk86);
@ -160,10 +161,10 @@ MACHINE_CONFIG_START(sdk86_state::sdk86)
i8251.dtr_handler().set(RS232_TAG, FUNC(rs232_port_device::write_dtr));
i8251.rts_handler().set(I8251_TAG, FUNC(i8251_device::write_cts));
MCFG_DEVICE_ADD(RS232_TAG, RS232_PORT, default_rs232_devices, "terminal")
MCFG_RS232_RXD_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_rxd))
MCFG_RS232_DSR_HANDLER(WRITELINE(I8251_TAG, i8251_device, write_dsr))
MCFG_SLOT_OPTION_DEVICE_INPUT_DEFAULTS("terminal", terminal)
rs232_port_device &rs232(RS232_PORT(config, RS232_TAG, default_rs232_devices, "terminal"));
rs232.rxd_handler().set(I8251_TAG, FUNC(i8251_device::write_rxd));
rs232.dsr_handler().set(I8251_TAG, FUNC(i8251_device::write_dsr));
rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal));
clock_device &usart_clock(CLOCK(config, "usart_clock", XTAL(14'745'600)/3/16));
usart_clock.signal_handler().set(I8251_TAG, FUNC(i8251_device::write_txc));
@ -176,9 +177,9 @@ MACHINE_CONFIG_START(sdk86_state::sdk86)
kbdc.in_shift_callback().set_constant(0); // Shift key
kbdc.in_ctrl_callback().set_constant(0);
MCFG_DEVICE_ADD("port1", I8255A, 0)
MCFG_DEVICE_ADD("port2", I8255A, 0)
MACHINE_CONFIG_END
I8255A(config, "port1");
I8255A(config, "port2");
}
/* ROM definition */
ROM_START( sdk86 )

View File

@ -372,8 +372,8 @@ MACHINE_CONFIG_START(sitcom_state::sitcom)
MCFG_DL1414_UPDATE_HANDLER(WRITE16(*this, sitcom_state, update_ds<1>))
// host interface
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem")
MCFG_RS232_RXD_HANDLER(WRITELINE(*this, sitcom_state, update_rxd))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "null_modem"));
rs232.rxd_handler().set(FUNC(sitcom_state::update_rxd));
MCFG_SOFTWARE_LIST_ADD("bitb_list", "sitcom")
config.set_default_layout(layout_sitcom);

View File

@ -406,10 +406,10 @@ MACHINE_CONFIG_START(sm7238_state::sm7238)
m_i8251line->rts_handler().set("rs232", FUNC(rs232_port_device::write_rts));
m_i8251line->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir1_w));
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, "null_modem")
MCFG_RS232_RXD_HANDLER(WRITELINE("i8251line", i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("i8251line", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(WRITELINE("i8251line", i8251_device, write_dsr))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "null_modem"));
rs232.rxd_handler().set(m_i8251line, FUNC(i8251_device::write_rxd));
rs232.cts_handler().set(m_i8251line, FUNC(i8251_device::write_cts));
rs232.dsr_handler().set(m_i8251line, FUNC(i8251_device::write_dsr));
// serial connection to KM-035 keyboard
I8251(config, m_i8251kbd, 0);
@ -424,10 +424,10 @@ MACHINE_CONFIG_START(sm7238_state::sm7238)
I8251(config, m_i8251prn, 0);
m_i8251prn->rxrdy_handler().set("pic8259", FUNC(pic8259_device::ir3_w));
MCFG_DEVICE_ADD("prtr", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("i8251prn", i8251_device, write_rxd))
MCFG_RS232_CTS_HANDLER(WRITELINE("i8251prn", i8251_device, write_cts))
MCFG_RS232_DSR_HANDLER(WRITELINE("i8251prn", i8251_device, write_dsr))
rs232_port_device &prtr(RS232_PORT(config, "prtr", default_rs232_devices, nullptr));
prtr.rxd_handler().set(m_i8251prn, FUNC(i8251_device::write_rxd));
prtr.cts_handler().set(m_i8251prn, FUNC(i8251_device::write_cts));
prtr.dsr_handler().set(m_i8251prn, FUNC(i8251_device::write_dsr));
MACHINE_CONFIG_END
ROM_START( sm7238 )

View File

@ -1109,19 +1109,19 @@ MACHINE_CONFIG_START(twinkle_state::twinkle)
m_ata->irq_handler().set(FUNC(twinkle_state::spu_ata_irq));
m_ata->dmarq_handler().set(FUNC(twinkle_state::spu_ata_dmarq));
MCFG_DEVICE_ADD("rtc", RTC65271, 0)
RTC65271(config, "rtc", 0);
MCFG_DEVICE_ADD("fdc37c665gt", FDC37C665GT, XTAL(24'000'000))
FDC37C665GT(config, "fdc37c665gt", XTAL(24'000'000));
MCFG_DEVICE_ADD("rs232", RS232_PORT, 0)
MCFG_SLOT_OPTION_ADD("xvd701", JVC_XVD701)
// MCFG_SLOT_OPTION_ADD("xvs1100", JVC_XVS1100) // 8th mix only
MCFG_SLOT_DEFAULT_OPTION("xvd701")
MCFG_RS232_RXD_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, dsr_w))
MCFG_RS232_RI_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, ri_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("fdc37c665gt:uart2", ins8250_uart_device, cts_w))
rs232_port_device &rs232(RS232_PORT(config, "rs232", 0));
rs232.option_add("xvd701", JVC_XVD701);
// rs232.option_add("xvs1100", JVC_XVS1100); // 8th mix only
rs232.set_default_option("xvd701");
rs232.rxd_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::rx_w));
rs232.dcd_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::dcd_w));
rs232.dsr_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::dsr_w));
rs232.ri_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::ri_w));
rs232.cts_handler().set("fdc37c665gt:uart2", FUNC(ins8250_uart_device::cts_w));
ns16550_device &uart(*subdevice<ns16550_device>("fdc37c665gt:uart2"));
uart.out_tx_callback().set("rs232", FUNC(rs232_port_device::write_txd));

View File

@ -398,10 +398,10 @@ MACHINE_CONFIG_START(unixpc_state::unixpc)
// TODO: RTC
//MCFG_DEVICE_ADD("rtc", TC8250, 32.768_kHz_XTAL)
MCFG_DEVICE_ADD("rs232", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("mpsc", upd7201_new_device, rxa_w))
MCFG_RS232_DSR_HANDLER(WRITELINE("mpsc", upd7201_new_device, dcda_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("mpsc", upd7201_new_device, ctsa_w))
rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, nullptr));
rs232.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxa_w));
rs232.dsr_handler().set("mpsc", FUNC(upd7201_new_device::dcda_w));
rs232.cts_handler().set("mpsc", FUNC(upd7201_new_device::ctsa_w));
MCFG_DEVICE_ADD("printer", CENTRONICS, centronics_devices, nullptr)
MCFG_CENTRONICS_OUTPUT_LATCH_ADD("printlatch", "printer")

View File

@ -681,9 +681,9 @@ MACHINE_CONFIG_START(vt240_state::vt240)
MCFG_UPD7220_BLANK_CALLBACK(INPUTLINE("charcpu", I8085_RST55_LINE))
MCFG_VIDEO_SET_SCREEN("screen")
MCFG_DEVICE_ADD("duart", SCN2681, XTAL(7'372'800) / 2)
MCFG_DEVICE_ADD(m_duart, SCN2681, XTAL(7'372'800) / 2)
MCFG_MC68681_IRQ_CALLBACK(WRITELINE(*this, vt240_state, irq13_w))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE("host", rs232_port_device, write_txd))
MCFG_MC68681_A_TX_CALLBACK(WRITELINE(m_host, rs232_port_device, write_txd))
MCFG_MC68681_B_TX_CALLBACK(WRITELINE("printer", rs232_port_device, write_txd))
MCFG_MC68681_OUTPORT_CALLBACK(WRITE8(*this, vt240_state, duartout_w))
@ -699,14 +699,14 @@ MACHINE_CONFIG_START(vt240_state::vt240)
MCFG_DEVICE_ADD("keyboard_clock", CLOCK, 4800 * 64) // 8251 is set to /64 on the clock input
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, vt240_state, write_keyboard_clock))
MCFG_DEVICE_ADD("host", RS232_PORT, default_rs232_devices, "null_modem")
MCFG_RS232_RXD_HANDLER(WRITELINE("duart", scn2681_device, rx_a_w))
MCFG_RS232_DSR_HANDLER(WRITELINE("duart", scn2681_device, ip5_w))
MCFG_RS232_CTS_HANDLER(WRITELINE("duart", scn2681_device, ip0_w))
RS232_PORT(config, m_host, default_rs232_devices, "null_modem");
m_host->rxd_handler().set(m_duart, FUNC(scn2681_device::rx_a_w));
m_host->dsr_handler().set(m_duart, FUNC(scn2681_device::ip5_w));
m_host->cts_handler().set(m_duart, FUNC(scn2681_device::ip0_w));
MCFG_DEVICE_ADD("printer", RS232_PORT, default_rs232_devices, nullptr)
MCFG_RS232_RXD_HANDLER(WRITELINE("duart", scn2681_device, rx_b_w))
MCFG_RS232_DSR_HANDLER(WRITELINE("duart", scn2681_device, ip1_w))
rs232_port_device &printer(RS232_PORT(config, "printer", default_rs232_devices, nullptr));
printer.rxd_handler().set(m_duart, FUNC(scn2681_device::rx_b_w));
printer.dsr_handler().set(m_duart, FUNC(scn2681_device::ip1_w));
X2212(config, "x2212");
MACHINE_CONFIG_END

View File

@ -16,14 +16,6 @@
#include "diserial.h"
//**************************************************************************
// CONFIGURATION MACROS
//**************************************************************************
#define MCFG_CIT101_HLE_KEYBOARD_TXD_CALLBACK(_devcb) \
downcast<cit101_hle_keyboard_device &>(*device).set_txd_callback(DEVCB_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
@ -34,10 +26,10 @@ class cit101_hle_keyboard_device : public device_t, public device_matrix_keyboar
{
public:
// construction/destruction
cit101_hle_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
cit101_hle_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 0);
// configuration
template <class Object> devcb_base &set_txd_callback(Object &&cb) { return m_txd_callback.set_callback(std::forward<Object>(cb)); }
auto txd_callback() { return m_txd_callback.bind(); }
DECLARE_WRITE_LINE_MEMBER(write_rxd);

View File

@ -99,7 +99,8 @@ WRITE32_MEMBER(namcofl_state::namcofl_spritebank_w)
int namcofl_state::FLobjcode2tile(int code)
{
if ((code & 0x2000) && (m_sprbank & 2)) { code += 0x4000; }
if (BIT(code, 13))
return (m_sprbank << 13) | (code & 0x1fff);
return code;
}