i8274, upd7201: Replace legacy device emulations and rename new devices

(nw) The victor9k change is confirmed from schematics: the RI lines are only linked to the VIA.
This commit is contained in:
AJR 2020-02-23 08:48:39 -05:00
parent 047dfdd5d7
commit be7d48d2c9
30 changed files with 256 additions and 314 deletions

View File

@ -18,7 +18,7 @@
#include "imagedev/floppy.h"
#include "machine/ram.h"
#include "machine/upd765.h"
#include "machine/z80dart.h"
#include "machine/z80sio.h"
//**************************************************************************

View File

@ -205,7 +205,7 @@ void isa16_sad8852_device::device_add_mconfig(machine_config &config)
cpu.set_addrmap(AS_PROGRAM, &isa16_sad8852_device::sad8852_mem);
cpu.set_addrmap(AS_IO, &isa16_sad8852_device::sad8852_io);
I8274_NEW(config, "terminal", XTAL(12'000'000) / 3); // Needs verification
I8274(config, "terminal", XTAL(12'000'000) / 3); // Needs verification
}
isa16_sad8852_device::isa16_sad8852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :

View File

@ -200,7 +200,7 @@ ioport_constructor isa8_eistwib_device::device_input_ports() const
void isa8_eistwib_device::device_add_mconfig(machine_config &config)
{
SDLC_LOGGER(config, m_sdlclogger, 0); // To decode the frames
I8274_NEW(config, m_uart8274, (XTAL(14'318'181)/ 3) / 2); // Half the 4,77 MHz ISA bus CLK signal
I8274(config, m_uart8274, (XTAL(14'318'181)/ 3) / 2); // Half the 4,77 MHz ISA bus CLK signal
//m_uart8274->out_rtsa_callback().set([this] (int state) { m_rts = state; });
m_uart8274->out_txda_callback().set([this] (int state) { m_txd = state; m_sdlclogger->data_w(state); });
m_uart8274->out_int_callback().set([this] (int state)

View File

@ -27,7 +27,7 @@ protected:
virtual void device_reset() override;
// devices
required_device<i8274_new_device> m_uart8274;
required_device<i8274_device> m_uart8274;
required_device<sdlc_logger_device> m_sdlclogger;
// optional information overrides

View File

@ -126,26 +126,26 @@ DEFINE_DEVICE_TYPE(VME_MZR8300, vme_mzr8300_card_device, "mzr8300", "Mizar 8300
void vme_mzr8300_card_device::device_add_mconfig(machine_config &config)
{
upd7201_new_device& sio0(UPD7201_NEW(config, "sio0", XTAL(4'000'000)));
upd7201_device& sio0(UPD7201(config, "sio0", XTAL(4'000'000)));
sio0.out_txdb_callback().set("rs232p1", FUNC(rs232_port_device::write_txd));
sio0.out_dtrb_callback().set("rs232p1", FUNC(rs232_port_device::write_dtr));
sio0.out_rtsb_callback().set("rs232p1", FUNC(rs232_port_device::write_rts));
UPD7201_NEW(config, "sio1", XTAL(4'000'000));
UPD7201(config, "sio1", XTAL(4'000'000));
rs232_port_device &rs232p1(RS232_PORT(config, "rs232p1", default_rs232_devices, "terminal"));
rs232p1.rxd_handler().set("sio0", FUNC(upd7201_new_device::rxb_w));
rs232p1.cts_handler().set("sio0", FUNC(upd7201_new_device::ctsb_w));
rs232p1.rxd_handler().set("sio0", FUNC(upd7201_device::rxb_w));
rs232p1.cts_handler().set("sio0", FUNC(upd7201_device::ctsb_w));
am9513_device &stc(AM9513(config, "stc", 4_MHz_XTAL));
stc.out1_cb().set("sio0", FUNC(upd7201_new_device::rxca_w));
stc.out1_cb().append("sio0", FUNC(upd7201_new_device::txca_w));
stc.out2_cb().set("sio0", FUNC(upd7201_new_device::rxcb_w));
stc.out2_cb().append("sio0", FUNC(upd7201_new_device::txcb_w));
stc.out3_cb().set("sio1", FUNC(upd7201_new_device::rxca_w));
stc.out3_cb().append("sio1", FUNC(upd7201_new_device::txca_w));
stc.out4_cb().set("sio1", FUNC(upd7201_new_device::rxcb_w));
stc.out4_cb().append("sio1", FUNC(upd7201_new_device::txcb_w));
stc.out1_cb().set("sio0", FUNC(upd7201_device::rxca_w));
stc.out1_cb().append("sio0", FUNC(upd7201_device::txca_w));
stc.out2_cb().set("sio0", FUNC(upd7201_device::rxcb_w));
stc.out2_cb().append("sio0", FUNC(upd7201_device::txcb_w));
stc.out3_cb().set("sio1", FUNC(upd7201_device::rxca_w));
stc.out3_cb().append("sio1", FUNC(upd7201_device::txca_w));
stc.out4_cb().set("sio1", FUNC(upd7201_device::rxcb_w));
stc.out4_cb().append("sio1", FUNC(upd7201_device::txcb_w));
}

View File

@ -2,8 +2,6 @@
// copyright-holders:Curt Coder
/***************************************************************************
Intel 8274 Multi-Protocol Serial Controller emulation
NEC µPD7201 Multiprotocol Serial Communications Controller emulation
Z80-DART Dual Asynchronous Receiver/Transmitter emulation
Z80-SIO/0/1/2/3/4 Serial Input/Output Controller emulation
@ -51,8 +49,6 @@ DEFINE_DEVICE_TYPE(Z80SIO1, z80sio1_device, "z80sio1", "Z80 SIO
DEFINE_DEVICE_TYPE(Z80SIO2, z80sio2_device, "z80sio2", "Z80 SIO/2")
DEFINE_DEVICE_TYPE(Z80SIO3, z80sio3_device, "z80sio3", "Z80 SIO/3")
DEFINE_DEVICE_TYPE(Z80SIO4, z80sio4_device, "z80sio4", "Z80 SIO/4")
DEFINE_DEVICE_TYPE(I8274, i8274_device, "i8274", "Intel 8274 MPSC")
DEFINE_DEVICE_TYPE(UPD7201, upd7201_device, "upd7201", "NEC uPD7201 MPSC")
//-------------------------------------------------
@ -134,16 +130,6 @@ z80sio4_device::z80sio4_device(const machine_config &mconfig, const char *tag, d
{
}
i8274_device::i8274_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: z80dart_device(mconfig, I8274, tag, owner, clock, TYPE_I8274)
{
}
upd7201_device::upd7201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: z80dart_device(mconfig, UPD7201, tag, owner, clock, TYPE_UPD7201)
{
}
//-------------------------------------------------
// device_start - device-specific startup

View File

@ -2,56 +2,10 @@
// copyright-holders:Curt Coder
/***************************************************************************
Intel 8274 Multi-Protocol Serial Controller emulation
NEC uPD7201 Multiprotocol Serial Communications Controller emulation
Z80-DART Dual Asynchronous Receiver/Transmitter emulation
Z80-SIO/0/1/2/3/4 Serial Input/Output Controller emulation
****************************************************************************
_____ _____
CLK 1 |* \_/ | 40 Vcc
_RESET 2 | | 39 _CTSA
_CDA 3 | | 38 _RTSA
_RxCB 4 | | 37 TxDA
_CDB 5 | | 36 _TxCA
_CTSB 6 | | 35 _RxCA
_TxCB 7 | | 34 RxDA
TxDB 8 | | 33 _SYNDETA
RxDB 9 | | 32 RDYA/RxDRQA
_RTSB/_SYNDETB 10 | I8274 | 31 _DTRA
RDYB/_TxDRQA 11 | | 30 _IPO/TxDRQB
D7 12 | | 29 _IPI/RxDRQB
D6 13 | | 28 _INT
D5 14 | | 27 _INTA
D4 15 | | 26 _DTRB
D3 16 | | 25 A0
D2 17 | | 24 A1
D1 18 | | 23 _CS
D0 19 | | 22 _RD
Vss 20 |_____________| 21 _WR
_____ _____
CLK 1 |* \_/ | 40 Vcc
_RESET 2 | | 39 _CTSA
_DCDA 3 | | 38 _RTSA
_RxCB 4 | | 37 TxDA
_DCDB 5 | | 36 _TxCA
_CTSB 6 | | 35 _RxCA
_TxCB 7 | | 34 RxDA
TxDB 8 | | 33 _SYNCA
RxDB 9 | | 32 _WAITA/DRQRxA
_RTSB/_SYNCB 10 | UPD7201 | 31 _DTRA/_HAO
_WAITB/_DRQTxA 11 | | 30 _PRO/DRQTxB
D7 12 | | 29 _PRI/DRQRxB
D6 13 | | 28 _INT
D5 14 | | 27 _INTAK
D4 15 | | 26 _DTRB/_HAI
D3 16 | | 25 B/_A
D2 17 | | 24 C/_D
D1 18 | | 23 _CS
D0 19 | | 22 _RD
Vss 20 |_____________| 21 _WR
_____ _____
D1 1 |* \_/ | 40 D0
D3 2 | | 39 D2
@ -572,28 +526,6 @@ public:
};
// ======================> i8274_device
class i8274_device : public z80dart_device
{
public:
// construction/destruction
i8274_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
uint8_t inta_r() { return m1_r(); };
};
// ======================> upd7201_device
class upd7201_device : public z80dart_device
{
public:
// construction/destruction
upd7201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
// device type definition
DECLARE_DEVICE_TYPE(Z80DART_CHANNEL, z80dart_channel)
DECLARE_DEVICE_TYPE(Z80DART, z80dart_device)
@ -602,7 +534,5 @@ DECLARE_DEVICE_TYPE(Z80SIO1, z80sio1_device)
DECLARE_DEVICE_TYPE(Z80SIO2, z80sio2_device)
DECLARE_DEVICE_TYPE(Z80SIO3, z80sio3_device)
DECLARE_DEVICE_TYPE(Z80SIO4, z80sio4_device)
DECLARE_DEVICE_TYPE(I8274, i8274_device)
DECLARE_DEVICE_TYPE(UPD7201, upd7201_device)
#endif // MAME_MACHINE_Z80DART_H

View File

@ -3,6 +3,8 @@
/***************************************************************************
Z80-SIO Serial Input/Output emulation
Intel 8274 Multi-Protocol Serial Controller emulation
NEC µPD7201 Multiprotocol Serial Communications Controller emulation
The variants in the SIO family are only different in the packaging
but has the same register features. However, since some signals are
@ -252,8 +254,8 @@ DEFINE_DEVICE_TYPE(Z80SIO_CHANNEL, z80sio_channel, "z80sio_channel", "Z80
DEFINE_DEVICE_TYPE(I8274_CHANNEL, i8274_channel, "i8274_channel", "Intel 8274 MPSC channel")
DEFINE_DEVICE_TYPE(MK68564_CHANNEL, mk68564_channel, "mk68564_channel", "Mostek MK68564 SIO channel")
DEFINE_DEVICE_TYPE(Z80SIO, z80sio_device, "z80sio", "Z80 SIO")
DEFINE_DEVICE_TYPE(I8274_NEW, i8274_new_device, "i8274_new", "Intel 8274 MPSC (new)") // Remove trailing N when z80dart.cpp's 8274 implementation is fully replaced
DEFINE_DEVICE_TYPE(UPD7201_NEW, upd7201_new_device, "upd7201_new", "NEC uPD7201 MPSC (new)") // Remove trailing N when z80dart.cpp's 7201 implementation is fully replaced
DEFINE_DEVICE_TYPE(I8274, i8274_device, "i8274", "Intel 8274 MPSC")
DEFINE_DEVICE_TYPE(UPD7201, upd7201_device, "upd7201", "NEC uPD7201 MPSC")
DEFINE_DEVICE_TYPE(MK68564, mk68564_device, "mk68564", "Mostek MK68564 SIO")
//-------------------------------------------------
@ -265,7 +267,7 @@ void z80sio_device::device_add_mconfig(machine_config &config)
Z80SIO_CHANNEL(config, CHANB_TAG, 0);
}
void i8274_new_device::device_add_mconfig(machine_config &config)
void i8274_device::device_add_mconfig(machine_config &config)
{
I8274_CHANNEL(config, CHANA_TAG, 0);
I8274_CHANNEL(config, CHANB_TAG, 0);
@ -402,23 +404,23 @@ z80sio_device::z80sio_device(const machine_config &mconfig, const char *tag, dev
{
}
i8274_new_device::i8274_new_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
i8274_device::i8274_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
z80sio_device(mconfig, type, tag, owner, clock)
{
}
i8274_new_device::i8274_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
i8274_new_device(mconfig, I8274_NEW, tag, owner, clock)
i8274_device::i8274_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
i8274_device(mconfig, I8274, tag, owner, clock)
{
}
upd7201_new_device::upd7201_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
i8274_new_device(mconfig, UPD7201_NEW, tag, owner, clock)
upd7201_device::upd7201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
i8274_device(mconfig, UPD7201, tag, owner, clock)
{
}
mk68564_device::mk68564_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
i8274_new_device(mconfig, MK68564, tag, owner, clock)
i8274_device(mconfig, MK68564, tag, owner, clock)
{
}
@ -534,7 +536,7 @@ int z80sio_device::z80daisy_irq_ack()
return -1;
}
int i8274_new_device::z80daisy_irq_ack()
int i8274_device::z80daisy_irq_ack()
{
// FIXME: we're not modelling the full behaviour of this chip
// The 8274 is designed to work with Intel processors with multiple interrupt acknowledge cycles
@ -612,7 +614,7 @@ void z80sio_device::z80daisy_irq_reti()
return_from_interrupt();
}
void i8274_new_device::z80daisy_irq_reti()
void i8274_device::z80daisy_irq_reti()
{
LOGINT("%s - i8274/uPD7201 lacks RETI detection, no action taken\n", FUNCNAME);
}
@ -760,7 +762,7 @@ uint8_t z80sio_device::read_vector()
interrrupt is generated, otherwise it will indicate the previous state."
8274: "If RR2 is specified but not read, no internal interrupts, regardless of priority, are accepted."
*/
uint8_t i8274_new_device::read_vector()
uint8_t i8274_device::read_vector()
{
// 8086 and 8085 modes have different variable bits
bool const aff(m_chanB->m_wr1 & WR1_STATUS_VECTOR);
@ -835,7 +837,7 @@ int const *z80sio_device::interrupt_priorities() const
return prio;
}
int const *i8274_new_device::interrupt_priorities() const
int const *i8274_device::interrupt_priorities() const
{
static constexpr EQUIVALENT_ARRAY(m_int_state, int) prio_a{
0 + z80sio_channel::INT_RECEIVE, 3 + z80sio_channel::INT_RECEIVE,
@ -858,12 +860,6 @@ int z80sio_device::m1_r()
return z80daisy_irq_ack();
}
int i8274_new_device::m1_r()
{
LOGINT("%s %s \n",FUNCNAME, tag());
return 0;
}
//-------------------------------------------------
// cd_ba_r -

View File

@ -3,6 +3,8 @@
/***************************************************************************
Z80-SIO Serial Input/Output
Intel 8274 Multi-Protocol Serial Controller
NEC µPD7201 Multiprotocol Serial Communications Controller
****************************************************************************
_____ _____ _____ _____
@ -49,6 +51,50 @@
R S S D K S D S S R D R S S D K S D S S R C
A A A A E B B B B B A A A A E B B B B
T T
_____ _____
CLK 1 |* \_/ | 40 Vcc
_RESET 2 | | 39 _CTSA
_CDA 3 | | 38 _RTSA
_RxCB 4 | | 37 TxDA
_CDB 5 | | 36 _TxCA
_CTSB 6 | | 35 _RxCA
_TxCB 7 | | 34 RxDA
TxDB 8 | | 33 _SYNDETA
RxDB 9 | DIP40 | 32 RDYA/RxDRQA
_RTSB/_SYNDETB 10 | I8274 | 31 _DTRA
RDYB/_TxDRQA 11 | | 30 _IPO/TxDRQB
D7 12 | | 29 _IPI/RxDRQB
D6 13 | | 28 _INT
D5 14 | | 27 _INTA
D4 15 | | 26 _DTRB
D3 16 | | 25 A0
D2 17 | | 24 A1
D1 18 | | 23 _CS
D0 19 | | 22 _RD
Vss 20 |_____________| 21 _WR
_____ _____
CLK 1 |* \_/ | 40 Vcc
_RESET 2 | | 39 _CTSA
_DCDA 3 | | 38 _RTSA
_RxCB 4 | | 37 TxDA
_DCDB 5 | | 36 _TxCA
_CTSB 6 | | 35 _RxCA
_TxCB 7 | | 34 RxDA
TxDB 8 | | 33 _SYNCA
RxDB 9 | DIP40 | 32 _WAITA/DRQRxA
_RTSB/_SYNCB 10 | D7201 | 31 _DTRA/_HAO
_WAITB/_DRQTxA 11 | | 30 _PRO/DRQTxB
D7 12 | | 29 _PRI/DRQRxB
D6 13 | | 28 _INT
D5 14 | | 27 _INTAK
D4 15 | | 26 _DTRB/_HAI
D3 16 | | 25 B/_A
D2 17 | | 24 C/_D
D1 18 | | 23 _CS
D0 19 | | 22 _RD
Vss 20 |_____________| 21 _WR
_____ _____
D1 1|* \_/ |48 D0
D3 2| |47 D2
@ -103,8 +149,8 @@ class z80sio_device;
class z80sio_channel : public device_t
{
friend class z80sio_device;
friend class i8274_new_device;
friend class upd7201_new_device;
friend class i8274_device;
friend class upd7201_device;
friend class mk68564_device;
public:
@ -488,15 +534,15 @@ protected:
int m_int_source[8]; // interrupt source
};
class i8274_new_device : public z80sio_device
class i8274_device : public z80sio_device
{
public:
i8274_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
i8274_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
virtual int m1_r() override;
uint8_t inta_r() { return m1_r(); }
protected:
i8274_new_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
i8274_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
// device_t overrides
virtual void device_add_mconfig(machine_config &config) override;
@ -509,13 +555,13 @@ protected:
virtual int const *interrupt_priorities() const override;
};
class upd7201_new_device : public i8274_new_device
class upd7201_device : public i8274_device
{
public:
upd7201_new_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
upd7201_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
class mk68564_device : public i8274_new_device
class mk68564_device : public i8274_device
{
public:
mk68564_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@ -536,8 +582,8 @@ private:
// device type declaration
DECLARE_DEVICE_TYPE(Z80SIO, z80sio_device)
DECLARE_DEVICE_TYPE(I8274_NEW, i8274_new_device)
DECLARE_DEVICE_TYPE(UPD7201_NEW, upd7201_new_device)
DECLARE_DEVICE_TYPE(I8274, i8274_device)
DECLARE_DEVICE_TYPE(UPD7201, upd7201_device)
DECLARE_DEVICE_TYPE(MK68564, mk68564_device)
#endif // MAME_MACHINE_Z80SIO_H

View File

@ -9,7 +9,7 @@
#include "imagedev/floppy.h"
#include "machine/i8255.h"
#include "machine/pic8259.h"
#include "machine/z80dart.h"
#include "machine/z80sio.h"
#include "machine/pit8253.h"
#include "machine/upd765.h"
#include "machine/i8255.h"
@ -121,15 +121,15 @@ void altos486_state::altos486_z80_mem(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x0fff).rom().region("iocpu", 0);
map(0x2000, 0x27ff).ram();
map(0x1000, 0x17ff).ram();
//map(0x8000, 0xffff).rw(FUNC(altos486_state::z80_shared_r), FUNC(altos486_state::z80_shared_w)):
}
void altos486_state::altos486_z80_io(address_map &map)
{
//map(0x00, 0x03).rw("sio0", FUNC(z80sio0_device::read), FUNC(z80sio0_device::write));
//map(0x04, 0x07).rw("sio1", FUNC(z80sio0_device::read), FUNC(z80sio0_device::write));
//map(0x08, 0x0b).rw("sio2", FUNC(z80sio0_device::read), FUNC(z80sio0_device::write));
//map(0x00, 0x03).rw("sio0", FUNC(z80sio_device::read), FUNC(z80sio_device::write));
//map(0x04, 0x07).rw("sio1", FUNC(z80sio_device::read), FUNC(z80sio_device::write));
//map(0x08, 0x0b).rw("sio2", FUNC(z80sio_device::read), FUNC(z80sio_device::write));
}
void altos486_state::altos486(machine_config &config)
@ -153,7 +153,7 @@ void altos486_state::altos486(machine_config &config)
UPD765A(config, "fdc", 32_MHz_XTAL / 4, false, false);
FLOPPY_CONNECTOR(config, "fdc:0", altos486_floppies, "525qd", altos486_state::floppy_formats).set_fixed(true);
z80sio0_device& sio0(Z80SIO0(config, "sio0", 32_MHz_XTAL / 8));
z80sio_device& sio0(Z80SIO(config, "sio0", 32_MHz_XTAL / 8)); // Z8440APS
sio0.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
sio0.out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
sio0.out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
@ -162,7 +162,7 @@ void altos486_state::altos486(machine_config &config)
sio0.out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
//sio0.out_int_callback().set(FUNC(altos486_state::sio_interrupt));
z80sio0_device& sio1(Z80SIO0(config, "sio1", 32_MHz_XTAL / 8));
z80sio_device& sio1(Z80SIO(config, "sio1", 32_MHz_XTAL / 8)); // Z8440APS
sio1.out_txda_callback().set("rs232c", FUNC(rs232_port_device::write_txd));
sio1.out_dtra_callback().set("rs232c", FUNC(rs232_port_device::write_dtr));
sio1.out_rtsa_callback().set("rs232c", FUNC(rs232_port_device::write_rts));
@ -171,7 +171,7 @@ void altos486_state::altos486(machine_config &config)
sio1.out_rtsb_callback().set("rs232d", FUNC(rs232_port_device::write_rts));
//sio1.out_int_callback().set(FUNC(altos486_state::sio_interrupt));
z80sio0_device& sio2(Z80SIO0(config, "sio2", 32_MHz_XTAL / 8));
z80sio_device& sio2(Z80SIO(config, "sio2", 32_MHz_XTAL / 8)); // Z8440APS
sio2.out_txda_callback().set("rs232_lp", FUNC(rs232_port_device::write_txd));
sio2.out_dtra_callback().set("rs232_lp", FUNC(rs232_port_device::write_dtr));
sio2.out_rtsa_callback().set("rs232_lp", FUNC(rs232_port_device::write_rts));
@ -184,35 +184,35 @@ void altos486_state::altos486(machine_config &config)
//i8274.out_int_callback().set(FUNC(altos486_state::sio_interrupt));
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal"));
rs232a.rxd_handler().set("sio0", FUNC(z80dart_device::rxa_w));
rs232a.dcd_handler().set("sio0", FUNC(z80dart_device::dcda_w));
rs232a.cts_handler().set("sio0", FUNC(z80dart_device::ctsa_w));
rs232a.rxd_handler().set("sio0", FUNC(z80sio_device::rxa_w));
rs232a.dcd_handler().set("sio0", FUNC(z80sio_device::dcda_w));
rs232a.cts_handler().set("sio0", FUNC(z80sio_device::ctsa_w));
//rs232a.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(altos486_terminal));
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set("sio0", FUNC(z80dart_device::rxb_w));
rs232b.dcd_handler().set("sio0", FUNC(z80dart_device::dcdb_w));
rs232b.cts_handler().set("sio0", FUNC(z80dart_device::ctsb_w));
rs232b.rxd_handler().set("sio0", FUNC(z80sio_device::rxb_w));
rs232b.dcd_handler().set("sio0", FUNC(z80sio_device::dcdb_w));
rs232b.cts_handler().set("sio0", FUNC(z80sio_device::ctsb_w));
rs232_port_device &rs232c(RS232_PORT(config, "rs232c", default_rs232_devices, nullptr));
rs232c.rxd_handler().set("sio1", FUNC(z80dart_device::rxa_w));
rs232c.dcd_handler().set("sio1", FUNC(z80dart_device::dcda_w));
rs232c.cts_handler().set("sio1", FUNC(z80dart_device::ctsa_w));
rs232c.rxd_handler().set("sio1", FUNC(z80sio_device::rxa_w));
rs232c.dcd_handler().set("sio1", FUNC(z80sio_device::dcda_w));
rs232c.cts_handler().set("sio1", FUNC(z80sio_device::ctsa_w));
rs232_port_device &rs232d(RS232_PORT(config, "rs232d", default_rs232_devices, nullptr));
rs232d.rxd_handler().set("sio1", FUNC(z80dart_device::rxb_w));
rs232d.dcd_handler().set("sio1", FUNC(z80dart_device::dcdb_w));
rs232d.cts_handler().set("sio1", FUNC(z80dart_device::ctsb_w));
rs232d.rxd_handler().set("sio1", FUNC(z80sio_device::rxb_w));
rs232d.dcd_handler().set("sio1", FUNC(z80sio_device::dcdb_w));
rs232d.cts_handler().set("sio1", FUNC(z80sio_device::ctsb_w));
rs232_port_device &rs232_lp(RS232_PORT(config, "rs232_lp", default_rs232_devices, nullptr));
rs232_lp.rxd_handler().set("sio2", FUNC(z80dart_device::rxa_w));
rs232_lp.dcd_handler().set("sio2", FUNC(z80dart_device::dcda_w));
rs232_lp.cts_handler().set("sio2", FUNC(z80dart_device::ctsa_w));
rs232_lp.rxd_handler().set("sio2", FUNC(z80sio_device::rxa_w));
rs232_lp.dcd_handler().set("sio2", FUNC(z80sio_device::dcda_w));
rs232_lp.cts_handler().set("sio2", FUNC(z80sio_device::ctsa_w));
rs232_port_device &rs422_wn(RS232_PORT(config, "rs422_wn", default_rs232_devices, nullptr));
rs422_wn.rxd_handler().set("i8274", FUNC(z80dart_device::rxa_w));
rs422_wn.dcd_handler().set("i8274", FUNC(z80dart_device::dcda_w));
rs422_wn.cts_handler().set("i8274", FUNC(z80dart_device::ctsa_w));
rs422_wn.rxd_handler().set("i8274", FUNC(i8274_device::rxa_w));
rs422_wn.dcd_handler().set("i8274", FUNC(i8274_device::dcda_w));
rs422_wn.cts_handler().set("i8274", FUNC(i8274_device::ctsa_w));
pit8253_device &pit0(PIT8253(config, "pit0", 0));
pit0.set_clk<0>(XTAL(22'118'400)/18); // FIXME

View File

@ -91,7 +91,7 @@ private:
required_device<i8086_cpu_device> m_maincpu;
required_device<i8089_device> m_dmac;
required_device_array<pic8259_device, 3> m_pic;
required_device<i8274_new_device> m_uart8274;
required_device<i8274_device> m_uart8274;
required_device<fd1797_device> m_fdc;
required_device<ram_device> m_ram;
required_device<acs8600_ics_device> m_ics;
@ -702,7 +702,7 @@ void altos8600_state::dmac_io(address_map &map)
map(0x0038, 0x003f).w(FUNC(altos8600_state::cattn_w));
map(0x0040, 0x0047).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
map(0x0040, 0x0047).rw(m_fdc, FUNC(fd1797_device::read), FUNC(fd1797_device::write)).umask16(0xff00);
map(0x0048, 0x004f).rw(m_uart8274, FUNC(i8274_new_device::cd_ba_r), FUNC(i8274_new_device::cd_ba_w)).umask16(0x00ff);
map(0x0048, 0x004f).rw(m_uart8274, FUNC(i8274_device::cd_ba_r), FUNC(i8274_device::cd_ba_w)).umask16(0x00ff);
map(0x0048, 0x004f).rw("pit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0xff00);
map(0x0050, 0x0057).rw(FUNC(altos8600_state::romport_r), FUNC(altos8600_state::romport_w));
map(0x0058, 0x005f).rw(m_pic[0], FUNC(pic8259_device::read), FUNC(pic8259_device::write)).umask16(0x00ff);
@ -754,7 +754,7 @@ void altos8600_state::altos8600(machine_config &config)
RAM(config, RAM_TAG).set_default_size("1M");//.set_extra_options("512K");
I8274_NEW(config, m_uart8274, 16_MHz_XTAL/4);
I8274(config, m_uart8274, 16_MHz_XTAL/4);
m_uart8274->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
m_uart8274->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
m_uart8274->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
@ -764,23 +764,23 @@ void altos8600_state::altos8600(machine_config &config)
m_uart8274->out_int_callback().set(m_pic[0], FUNC(pic8259_device::ir7_w));
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, nullptr));
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));
rs232a.rxd_handler().set(m_uart8274, FUNC(i8274_device::rxa_w));
rs232a.dcd_handler().set(m_uart8274, FUNC(i8274_device::dcda_w));
rs232a.cts_handler().set(m_uart8274, FUNC(i8274_device::ctsa_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
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));
rs232b.rxd_handler().set(m_uart8274, FUNC(i8274_device::rxb_w));
rs232b.dcd_handler().set(m_uart8274, FUNC(i8274_device::dcdb_w));
rs232b.cts_handler().set(m_uart8274, FUNC(i8274_device::ctsb_w));
I8255A(config, "ppi", 0);
pit8253_device &pit(PIT8253(config, "pit", 0));
pit.set_clk<0>(1228800);
pit.out_handler<0>().set(m_uart8274, FUNC(i8274_new_device::rxca_w));
pit.out_handler<0>().append(m_uart8274, FUNC(i8274_new_device::txca_w));
pit.out_handler<0>().set(m_uart8274, FUNC(i8274_device::rxca_w));
pit.out_handler<0>().append(m_uart8274, FUNC(i8274_device::txca_w));
pit.set_clk<1>(1228800);
pit.out_handler<1>().set(m_uart8274, FUNC(i8274_new_device::rxtxcb_w));
pit.out_handler<1>().set(m_uart8274, FUNC(i8274_device::rxtxcb_w));
pit.set_clk<2>(1228800);
pit.out_handler<1>().set(m_pic[0], FUNC(pic8259_device::ir1_w));

View File

@ -40,7 +40,7 @@ void codata_state::mem_map(address_map &map)
map(0x000000, 0x1fffff).ram().share("rambase");
map(0x200000, 0x203fff).rom().region("bios", 0);
map(0x400000, 0x403fff).rom().region("bios", 0x4000);
map(0x600000, 0x600007).mirror(0x1ffff8).rw("uart", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w)).umask16(0xff00);
map(0x600000, 0x600007).mirror(0x1ffff8).rw("uart", FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w)).umask16(0xff00);
map(0x800000, 0x800003).mirror(0x1ffffc).rw("timer", FUNC(am9513_device::read16), FUNC(am9513_device::write16));
map(0xe00000, 0xe00001).mirror(0x1ffffe).portr("INPUT");
//map(0xa00000, 0xbfffff) page map (rw)
@ -67,7 +67,7 @@ void codata_state::codata(machine_config &config)
M68000(config, m_maincpu, 16_MHz_XTAL / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &codata_state::mem_map);
upd7201_new_device &uart(UPD7201_NEW(config, "uart", 16_MHz_XTAL / 4));
upd7201_device &uart(UPD7201(config, "uart", 16_MHz_XTAL / 4));
uart.out_txda_callback().set("rs423a", FUNC(rs232_port_device::write_txd));
uart.out_dtra_callback().set("rs423a", FUNC(rs232_port_device::write_dtr));
uart.out_rtsa_callback().set("rs423a", FUNC(rs232_port_device::write_rts));
@ -78,18 +78,18 @@ void codata_state::codata(machine_config &config)
timer.out1_cb().set_nop(); // Timer 1 = "Abort/Reset" (watchdog)
timer.out2_cb().set_inputline(m_maincpu, M68K_IRQ_6); // Timer 2
timer.out3_cb().set_inputline(m_maincpu, M68K_IRQ_7); // Refresh
timer.out4_cb().set("uart", FUNC(upd7201_new_device::rxca_w));
timer.out4_cb().append("uart", FUNC(upd7201_new_device::txca_w));
timer.out5_cb().set("uart", FUNC(upd7201_new_device::rxcb_w));
timer.out5_cb().append("uart", FUNC(upd7201_new_device::txcb_w));
timer.out4_cb().set("uart", FUNC(upd7201_device::rxca_w));
timer.out4_cb().append("uart", FUNC(upd7201_device::txca_w));
timer.out5_cb().set("uart", FUNC(upd7201_device::rxcb_w));
timer.out5_cb().append("uart", FUNC(upd7201_device::txcb_w));
rs232_port_device &rs423a(RS232_PORT(config, "rs423a", default_rs232_devices, "terminal"));
rs423a.rxd_handler().set("uart", FUNC(upd7201_new_device::rxa_w));
rs423a.dsr_handler().set("uart", FUNC(upd7201_new_device::dcda_w));
rs423a.cts_handler().set("uart", FUNC(upd7201_new_device::ctsa_w));
rs423a.rxd_handler().set("uart", FUNC(upd7201_device::rxa_w));
rs423a.dsr_handler().set("uart", FUNC(upd7201_device::dcda_w));
rs423a.cts_handler().set("uart", FUNC(upd7201_device::ctsa_w));
rs232_port_device &rs423b(RS232_PORT(config, "rs423b", default_rs232_devices, nullptr));
rs423b.rxd_handler().set("uart", FUNC(upd7201_new_device::rxb_w));
rs423b.rxd_handler().set("uart", FUNC(upd7201_device::rxb_w));
}
/* ROM definition */

View File

@ -63,7 +63,7 @@
#include "machine/pit8253.h"
#include "machine/ram.h"
#include "machine/timer.h"
#include "machine/z80dart.h"
#include "machine/z80sio.h"
#define I80186_TAG "ic1"
#define I80130_TAG "ic15"
@ -793,14 +793,14 @@ void compis_state::compis(machine_config &config)
TIMER(config, "tape").configure_periodic(FUNC(compis_state::tape_tick), attotime::from_hz(44100));
rs232_port_device &rs232a(RS232_PORT(config, RS232_A_TAG, default_rs232_devices, nullptr));
rs232a.rxd_handler().set(m_mpsc, FUNC(z80dart_device::rxa_w));
rs232a.dcd_handler().set(m_mpsc, FUNC(z80dart_device::dcda_w));
rs232a.cts_handler().set(m_mpsc, FUNC(z80dart_device::ctsa_w));
rs232a.rxd_handler().set(m_mpsc, FUNC(i8274_device::rxa_w));
rs232a.dcd_handler().set(m_mpsc, FUNC(i8274_device::dcda_w));
rs232a.cts_handler().set(m_mpsc, FUNC(i8274_device::ctsa_w));
rs232_port_device &rs232b(RS232_PORT(config, RS232_B_TAG, default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_mpsc, FUNC(z80dart_device::rxb_w));
rs232b.dcd_handler().set(m_mpsc, FUNC(z80dart_device::dcdb_w));
rs232b.cts_handler().set(m_mpsc, FUNC(z80dart_device::ctsb_w));
rs232b.rxd_handler().set(m_mpsc, FUNC(i8274_device::rxb_w));
rs232b.dcd_handler().set(m_mpsc, FUNC(i8274_device::dcdb_w));
rs232b.cts_handler().set(m_mpsc, FUNC(i8274_device::ctsb_w));
CENTRONICS(config, m_centronics, centronics_devices, "printer");
m_centronics->busy_handler().set(FUNC(compis_state::write_centronics_busy));

View File

@ -158,7 +158,7 @@ void duet16_state::duet16_mem(address_map &map)
map(0xf8020, 0xf8023).rw(FUNC(duet16_state::pic_r), FUNC(duet16_state::pic_w)).umask16(0x00ff);
map(0xf8040, 0xf804f).rw("itm", FUNC(ptm6840_device::read), FUNC(ptm6840_device::write)).umask16(0x00ff);
map(0xf8060, 0xf8067).rw("bgpit", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
map(0xf8080, 0xf8087).rw("sio", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w)).umask16(0x00ff);
map(0xf8080, 0xf8087).rw("sio", FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w)).umask16(0x00ff);
map(0xf80a0, 0xf80a3).rw("kbusart", FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
map(0xf80c0, 0xf80c0).rw("crtc", FUNC(hd6845s_device::status_r), FUNC(hd6845s_device::address_w));
map(0xf80c2, 0xf80c2).rw("crtc", FUNC(hd6845s_device::register_r), FUNC(hd6845s_device::register_w));
@ -384,10 +384,10 @@ void duet16_state::duet16(machine_config &config)
bgpit.set_clk<0>(8_MHz_XTAL / 13);
bgpit.set_clk<1>(8_MHz_XTAL / 13);
bgpit.set_clk<2>(8_MHz_XTAL / 13);
bgpit.out_handler<0>().set("sio", FUNC(upd7201_new_device::txca_w)); // TODO: selected through LS153
bgpit.out_handler<0>().append("sio", FUNC(upd7201_new_device::rxca_w));
bgpit.out_handler<1>().set("sio", FUNC(upd7201_new_device::txcb_w));
bgpit.out_handler<1>().append("sio", FUNC(upd7201_new_device::rxcb_w));
bgpit.out_handler<0>().set("sio", FUNC(upd7201_device::txca_w)); // TODO: selected through LS153
bgpit.out_handler<0>().append("sio", FUNC(upd7201_device::rxca_w));
bgpit.out_handler<1>().set("sio", FUNC(upd7201_device::txcb_w));
bgpit.out_handler<1>().append("sio", FUNC(upd7201_device::rxcb_w));
bgpit.out_handler<2>().set("kbusart", FUNC(i8251_device::write_txc));
bgpit.out_handler<2>().append("kbusart", FUNC(i8251_device::write_rxc));
@ -397,7 +397,7 @@ void duet16_state::duet16(machine_config &config)
itm.o3_callback().append("itm", FUNC(ptm6840_device::set_c2));
itm.irq_callback().set(m_tmint, FUNC(input_merger_device::in_w<0>));
upd7201_new_device& sio(UPD7201_NEW(config, "sio", 8_MHz_XTAL / 2));
upd7201_device& sio(UPD7201(config, "sio", 8_MHz_XTAL / 2));
sio.out_int_callback().set("pic", FUNC(pic8259_device::ir1_w)); // INT5
i8251_device &kbusart(I8251(config, "kbusart", 8_MHz_XTAL / 4));

View File

@ -57,7 +57,7 @@ void ft68m_state::mem_map(address_map &map)
map(0x000000, 0x1fffff).ram().share("rambase");
map(0x200000, 0x201fff).rom().region("roms", 0x0000);
map(0x400000, 0x401fff).rom().region("roms", 0x2000);
map(0x600000, 0x600007).mirror(0x1ffff8).rw("mpsc", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w)).umask16(0xff00);
map(0x600000, 0x600007).mirror(0x1ffff8).rw("mpsc", FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w)).umask16(0xff00);
map(0x800000, 0x800003).mirror(0x1ffffc).rw("stc", FUNC(am9513_device::read16), FUNC(am9513_device::write16));
map(0xa00000, 0xbfffff).ram(); //Page Map
map(0xc00000, 0xdfffff).ram(); //Segment Map
@ -88,7 +88,7 @@ void ft68m_state::ft68m(machine_config &config)
M68000(config, m_maincpu, XTAL(19'660'800) / 2);
m_maincpu->set_addrmap(AS_PROGRAM, &ft68m_state::mem_map);
upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 0));
upd7201_device& mpsc(UPD7201(config, "mpsc", 0));
mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
mpsc.out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
mpsc.out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
@ -98,18 +98,18 @@ void ft68m_state::ft68m(machine_config &config)
am9513_device &stc(AM9513A(config, "stc", XTAL(19'660'800) / 8));
stc.out2_cb().set_inputline(m_maincpu, M68K_IRQ_6);
stc.out3_cb().set_inputline(m_maincpu, M68K_IRQ_7);
stc.out4_cb().set("mpsc", FUNC(upd7201_new_device::rxca_w));
stc.out4_cb().append("mpsc", FUNC(upd7201_new_device::txca_w));
stc.out5_cb().set("mpsc", FUNC(upd7201_new_device::rxcb_w));
stc.out5_cb().append("mpsc", FUNC(upd7201_new_device::txcb_w));
stc.out4_cb().set("mpsc", FUNC(upd7201_device::rxca_w));
stc.out4_cb().append("mpsc", FUNC(upd7201_device::txca_w));
stc.out5_cb().set("mpsc", FUNC(upd7201_device::rxcb_w));
stc.out5_cb().append("mpsc", FUNC(upd7201_device::txcb_w));
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal"));
rs232a.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxa_w));
rs232a.dsr_handler().set("mpsc", FUNC(upd7201_new_device::dcda_w));
rs232a.cts_handler().set("mpsc", FUNC(upd7201_new_device::ctsa_w));
rs232a.rxd_handler().set("mpsc", FUNC(upd7201_device::rxa_w));
rs232a.dsr_handler().set("mpsc", FUNC(upd7201_device::dcda_w));
rs232a.cts_handler().set("mpsc", FUNC(upd7201_device::ctsa_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set("mpsc", FUNC(upd7201_new_device::rxb_w));
rs232b.rxd_handler().set("mpsc", FUNC(upd7201_device::rxb_w));
}
/* ROM definition */

View File

@ -122,7 +122,7 @@ private:
required_device<cpu_device> m_maincpu;
required_device<i80130_device> m_osp;
required_device<i8255_device> m_modem;
optional_device<i8274_new_device> m_uart8274;
optional_device<i8274_device> m_uart8274;
required_device<speaker_sound_device> m_speaker;
required_device<ram_device> m_ram;
@ -320,7 +320,7 @@ void gridcomp_state::grid1121_map(address_map &map)
map(0x90000, 0x97fff).unmaprw(); // ?? ROM slot
map(0x9ff00, 0x9ff0f).unmaprw(); // .r(FUNC(gridcomp_state::grid_9ff0_r)); // ?? ROM?
map(0xc0000, 0xcffff).unmaprw(); // ?? ROM slot -- signature expected: 0x4554, 0x5048
map(0xdfe00, 0xdfe1f).unmaprw(); // .rw("uart8274", FUNC(i8274_new_device::ba_cd_r), FUNC(i8274_new_device::ba_cd_w)).umask16(0x00ff);
map(0xdfe00, 0xdfe1f).unmaprw(); // .rw("uart8274", FUNC(i8274_device::ba_cd_r), FUNC(i8274_device::ba_cd_w)).umask16(0x00ff);
map(0xdfe40, 0xdfe4f).unmaprw(); // ?? diagnostic 8274
map(0xdfe80, 0xdfe83).rw("i7220", FUNC(i7220_device::read), FUNC(i7220_device::write)).umask16(0x00ff);
map(0xdfea0, 0xdfeaf).unmaprw(); // ??
@ -406,7 +406,7 @@ void gridcomp_state::grid1101(machine_config &config)
ieee.ren_callback().set("hpib", FUNC(tms9914_device::ren_w));
IEEE488_SLOT(config, "ieee_rem", 0, remote488_devices, nullptr);
I8274_NEW(config, m_uart8274, XTAL(4'032'000));
I8274(config, m_uart8274, XTAL(4'032'000));
I8255(config, "modem", 0);

View File

@ -89,7 +89,7 @@ private:
required_device<cpu_device> m_maincpu;
optional_device<i8251_device> m_uart8251;
// optional_device<i8274_device> m_uart8274;
optional_device<i8274_new_device> m_uart8274;
optional_device<i8274_device> m_uart8274;
required_device<pic8259_device> m_pic_0;
optional_device<pic8259_device> m_pic_1;
optional_device<centronics_device> m_centronics;
@ -189,7 +189,7 @@ void isbc_state::isbc286_io(address_map &map)
map(0x00c8, 0x00cf).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
map(0x00c8, 0x00cf).w(FUNC(isbc_state::upperen_w)).umask16(0xff00);
map(0x00d0, 0x00d7).rw("pit", FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask16(0x00ff);
map(0x00d8, 0x00df).rw(m_uart8274, FUNC(i8274_new_device::cd_ba_r), FUNC(i8274_new_device::cd_ba_w)).umask16(0x00ff);
map(0x00d8, 0x00df).rw(m_uart8274, FUNC(i8274_device::cd_ba_r), FUNC(i8274_device::cd_ba_w)).umask16(0x00ff);
map(0x0100, 0x0100).w("isbc_215g", FUNC(isbc_215g_device::write));
}
@ -450,7 +450,7 @@ void isbc_state::isbc286(machine_config &config)
pit.out_handler<0>().set(m_pic_0, FUNC(pic8259_device::ir0_w));
pit.set_clk<1>(XTAL(22'118'400)/18);
// pit.out_handler<1>().set(m_uart8274, FUNC(z80dart_device::rxtxcb_w));
pit.out_handler<1>().set(m_uart8274, FUNC(i8274_new_device::rxtxcb_w));
pit.out_handler<1>().set(m_uart8274, FUNC(i8274_device::rxtxcb_w));
pit.set_clk<2>(XTAL(22'118'400)/18);
pit.out_handler<2>().set(FUNC(isbc_state::isbc286_tmr2_w));
@ -479,7 +479,7 @@ void isbc_state::isbc286(machine_config &config)
m_uart8274->out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
m_uart8274->out_int_callback().set(FUNC(isbc_state::isbc_uart8274_irq));
#else
I8274_NEW(config, m_uart8274, XTAL(16'000'000)/4);
I8274(config, m_uart8274, XTAL(16'000'000)/4);
m_uart8274->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
m_uart8274->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
m_uart8274->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
@ -496,9 +496,9 @@ void isbc_state::isbc286(machine_config &config)
rs232a.dcd_handler().set(m_uart8274, FUNC(z80dart_device::dcda_w));
rs232a.cts_handler().set(m_uart8274, FUNC(z80dart_device::ctsa_w));
#else
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));
rs232a.rxd_handler().set(m_uart8274, FUNC(i8274_device::rxa_w));
rs232a.dcd_handler().set(m_uart8274, FUNC(i8274_device::dcda_w));
rs232a.cts_handler().set(m_uart8274, FUNC(i8274_device::ctsa_w));
#endif
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, "terminal"));
@ -507,9 +507,9 @@ void isbc_state::isbc286(machine_config &config)
rs232b.dcd_handler().set(m_uart8274, FUNC(z80dart_device::dcdb_w));
rs232b.cts_handler().set(m_uart8274, FUNC(z80dart_device::ctsb_w));
#else
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));
rs232b.rxd_handler().set(m_uart8274, FUNC(i8274_device::rxb_w));
rs232b.dcd_handler().set(m_uart8274, FUNC(i8274_device::dcdb_w));
rs232b.cts_handler().set(m_uart8274, FUNC(i8274_device::ctsb_w));
#endif
rs232b.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(isbc286_terminal));

View File

@ -46,7 +46,7 @@ void lee1214_state::mem_map(address_map &map)
void lee1214_state::io_map(address_map &map)
{
map(0x0000, 0x0003).rw("mpsc", FUNC(i8274_new_device::cd_ba_r), FUNC(i8274_new_device::cd_ba_w));
map(0x0000, 0x0003).rw("mpsc", FUNC(i8274_device::cd_ba_r), FUNC(i8274_device::cd_ba_w));
//map(0x0100, 0x0100).w("crtc", FUNC(mc6845_device::address_w));
//map(0x0101, 0x0101).rw("crtc", FUNC(mc6845_device::register_r), FUNC(mc6845_device::register_w));
}
@ -69,7 +69,7 @@ void lee1214_state::lee1214(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &lee1214_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &lee1214_state::io_map);
i8274_new_device &mpsc(I8274_NEW(config, "mpsc", 4'000'000));
i8274_device &mpsc(I8274(config, "mpsc", 4'000'000));
mpsc.out_int_callback().set("maincpu", FUNC(i80188_cpu_device::int0_w));
EEPROM_2816(config, "eeprom");

View File

@ -491,10 +491,10 @@ void mm1_state::mm1(machine_config &config)
m_mpsc->out_txdrqa_callback().set(FUNC(mm1_state::drq1_w));
RS232_PORT(config, m_rs232a, default_rs232_devices, nullptr);
m_rs232a->cts_handler().set(m_mpsc, FUNC(z80dart_device::rxa_w));
m_rs232a->cts_handler().set(m_mpsc, FUNC(upd7201_device::rxa_w));
RS232_PORT(config, m_rs232b, default_rs232_devices, nullptr);
RS232_PORT(config, m_rs232c, default_rs232_devices, nullptr);
m_rs232c->cts_handler().set(m_mpsc, FUNC(z80dart_device::ctsb_w));
m_rs232c->cts_handler().set(m_mpsc, FUNC(upd7201_device::ctsb_w));
mm1_keyboard_device &kb(MM1_KEYBOARD(config, KB_TAG, 2500)); // actual KBCLK is 6.144_MHz_XTAL/2/16
kb.kbst_wr_callback().set(m_iop, FUNC(i8212_device::stb_w));

View File

@ -75,7 +75,7 @@
#include "machine/pit8253.h"
#include "machine/wd2010.h"
#include "machine/wd_fdc.h"
#include "machine/z80dart.h"
#include "machine/z80sio.h"
#include "video/mc6845.h"
#include "screen.h"
@ -978,13 +978,13 @@ void ngen_state::ngen(machine_config &config)
rs232a.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxa_w));
rs232a.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsa_w));
rs232a.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcda_w));
rs232a.ri_handler().set(m_iouart, FUNC(upd7201_device::ria_w));
rs232a.ri_handler().set(m_iouart, FUNC(upd7201_device::synca_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232_b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxb_w));
rs232b.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsb_w));
rs232b.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcdb_w));
rs232b.ri_handler().set(m_iouart, FUNC(upd7201_device::rib_w));
rs232b.ri_handler().set(m_iouart, FUNC(upd7201_device::syncb_w));
// TODO: SCN2652 MPCC (not implemented), used for RS-422 cluster communications?
@ -1091,13 +1091,13 @@ void ngen386_state::ngen386(machine_config &config)
rs232a.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxa_w));
rs232a.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsa_w));
rs232a.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcda_w));
rs232a.ri_handler().set(m_iouart, FUNC(upd7201_device::ria_w));
rs232a.ri_handler().set(m_iouart, FUNC(upd7201_device::synca_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232_b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxb_w));
rs232b.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsb_w));
rs232b.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcdb_w));
rs232b.ri_handler().set(m_iouart, FUNC(upd7201_device::rib_w));
rs232b.ri_handler().set(m_iouart, FUNC(upd7201_device::syncb_w));
// TODO: SCN2652 MPCC (not implemented), used for RS-422 cluster communications?

View File

@ -41,7 +41,7 @@ void pm68k_state::pm68k_mem(address_map &map)
map.global_mask(0xffffff);
map(0x000000, 0x1fffff).ram().share("rambase");
map(0x200000, 0x205fff).rom().region("roms", 0);
map(0x600000, 0x600007).rw("mpsc", FUNC(i8274_new_device::ba_cd_r), FUNC(i8274_new_device::ba_cd_w)).umask16(0xff00);
map(0x600000, 0x600007).rw("mpsc", FUNC(i8274_device::ba_cd_r), FUNC(i8274_device::ba_cd_w)).umask16(0xff00);
map(0x800000, 0x800003).rw("stc", FUNC(am9513_device::read16), FUNC(am9513_device::write16));
}
@ -63,7 +63,7 @@ void pm68k_state::pm68k(machine_config &config)
M68000(config, m_maincpu, 8000000);
m_maincpu->set_addrmap(AS_PROGRAM, &pm68k_state::pm68k_mem);
i8274_new_device& mpsc(I8274_NEW(config, "mpsc", 0));
i8274_device& mpsc(I8274(config, "mpsc", 0));
mpsc.out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
mpsc.out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
mpsc.out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
@ -72,20 +72,20 @@ void pm68k_state::pm68k(machine_config &config)
mpsc.out_rtsb_callback().set("rs232b", FUNC(rs232_port_device::write_rts));
am9513_device &stc(AM9513(config, "stc", 4000000));
stc.out4_cb().set("mpsc", FUNC(i8274_new_device::rxca_w));
stc.out4_cb().append("mpsc", FUNC(i8274_new_device::txca_w));
stc.out5_cb().set("mpsc", FUNC(i8274_new_device::rxcb_w));
stc.out5_cb().append("mpsc", FUNC(i8274_new_device::txcb_w));
stc.out4_cb().set("mpsc", FUNC(i8274_device::rxca_w));
stc.out4_cb().append("mpsc", FUNC(i8274_device::txca_w));
stc.out5_cb().set("mpsc", FUNC(i8274_device::rxcb_w));
stc.out5_cb().append("mpsc", FUNC(i8274_device::txcb_w));
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal"));
rs232a.rxd_handler().set("mpsc", FUNC(i8274_new_device::rxa_w));
rs232a.dsr_handler().set("mpsc", FUNC(i8274_new_device::dcda_w));
rs232a.cts_handler().set("mpsc", FUNC(i8274_new_device::ctsa_w));
rs232a.rxd_handler().set("mpsc", FUNC(i8274_device::rxa_w));
rs232a.dsr_handler().set("mpsc", FUNC(i8274_device::dcda_w));
rs232a.cts_handler().set("mpsc", FUNC(i8274_device::ctsa_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set("mpsc", FUNC(i8274_new_device::rxb_w));
rs232b.dsr_handler().set("mpsc", FUNC(i8274_new_device::dcdb_w));
rs232b.cts_handler().set("mpsc", FUNC(i8274_new_device::ctsb_w));
rs232b.rxd_handler().set("mpsc", FUNC(i8274_device::rxb_w));
rs232b.dsr_handler().set("mpsc", FUNC(i8274_device::dcdb_w));
rs232b.cts_handler().set("mpsc", FUNC(i8274_device::ctsb_w));
}
/* ROM definition */

View File

@ -44,7 +44,7 @@
#include "machine/qx10kbd.h"
#include "machine/ram.h"
#include "machine/upd765.h"
#include "machine/z80dart.h"
#include "machine/z80sio.h"
#include "video/upd7220.h"
#include "emupal.h"
@ -556,7 +556,7 @@ void qx10_state::qx10_io(address_map &map)
map(0x04, 0x07).rw(m_pit_2, FUNC(pit8253_device::read), FUNC(pit8253_device::write));
map(0x08, 0x09).rw(m_pic_m, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x0c, 0x0d).rw(m_pic_s, FUNC(pic8259_device::read), FUNC(pic8259_device::write));
map(0x10, 0x13).rw(m_scc, FUNC(z80dart_device::cd_ba_r), FUNC(z80dart_device::cd_ba_w));
map(0x10, 0x13).rw(m_scc, FUNC(upd7201_device::cd_ba_r), FUNC(upd7201_device::cd_ba_w));
map(0x14, 0x17).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x18, 0x1b).portr("DSW").w(FUNC(qx10_state::qx10_18_w));
map(0x1c, 0x1f).w(FUNC(qx10_state::prom_sel_w));
@ -765,7 +765,7 @@ void qx10_state::qx10(machine_config &config)
m_pit_2->set_clk<1>(MAIN_CLK / 8);
m_pit_2->out_handler<1>().set(FUNC(qx10_state::keyboard_clk));
m_pit_2->set_clk<2>(MAIN_CLK / 8);
m_pit_2->out_handler<2>().set(m_scc, FUNC(z80dart_device::rxtxcb_w));
m_pit_2->out_handler<2>().set(m_scc, FUNC(upd7201_device::rxtxcb_w));
PIC8259(config, m_pic_m, 0);
m_pic_m->out_int_callback().set_inputline(m_maincpu, 0);

View File

@ -634,7 +634,7 @@ protected:
required_device<corvus_hdc_device> m_corvus_hdc;
required_device<upd7201_new_device> m_mpsc;
required_device<upd7201_device> m_mpsc;
required_device<com8116_003_device> m_dbrg;
required_device<rs232_port_device> m_comm_port;
@ -2771,7 +2771,7 @@ WRITE8_MEMBER(rainbow_base_state::diagnostic_w) // 8088 (port 0A WRITTEN). Fig.4
// Install 8088 read / write handler once loopback test is over
if ( !(data & 32) && (m_diagnostic & 32) )
{
io.install_readwrite_handler(0x40, 0x43, read8sm_delegate(*m_mpsc, FUNC(upd7201_new_device::cd_ba_r)), write8sm_delegate(*m_mpsc, FUNC(upd7201_new_device::cd_ba_w)));
io.install_readwrite_handler(0x40, 0x43, read8sm_delegate(*m_mpsc, FUNC(upd7201_device::cd_ba_r)), write8sm_delegate(*m_mpsc, FUNC(upd7201_device::cd_ba_w)));
logerror("\n **** COMM HANDLER INSTALLED **** ");
//popmessage("Autoboot from drive %c", m_p_nvram[0xab] ? (64 + m_p_nvram[0xab]) : 0x3F );
}
@ -3306,20 +3306,20 @@ void rainbow_base_state::rainbow_base(machine_config &config)
m_dbrg->fr_handler().set(FUNC(rainbow_base_state::dbrg_fr_w));
m_dbrg->ft_handler().set(FUNC(rainbow_base_state::dbrg_ft_w));
UPD7201_NEW(config, m_mpsc, 24.0734_MHz_XTAL / 5 / 2); // 2.4073 MHz (nominally 2.5 MHz)
UPD7201(config, m_mpsc, 24.0734_MHz_XTAL / 5 / 2); // 2.4073 MHz (nominally 2.5 MHz)
m_mpsc->out_int_callback().set(FUNC(rainbow_base_state::mpsc_irq));
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
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));
m_comm_port->rxd_handler().set(m_mpsc, FUNC(upd7201_device::rxa_w));
m_comm_port->cts_handler().set(m_mpsc, FUNC(upd7201_device::ctsa_w));
m_comm_port->dcd_handler().set(m_mpsc, FUNC(upd7201_device::dcda_w));
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
printer.rxd_handler().set(m_mpsc, FUNC(upd7201_device::rxb_w));
printer.dcd_handler().set(m_mpsc, FUNC(upd7201_device::ctsb_w)); // actually DTR
m_comm_port->option_add("microsoft_mouse", MSFT_HLE_SERIAL_MOUSE);
m_comm_port->option_add("logitech_mouse", LOGITECH_HLE_SERIAL_MOUSE);

View File

@ -82,7 +82,7 @@ private:
virtual void machine_reset() override;
required_device<cpu_device> m_maincpu;
required_device<upd7201_new_device> m_iouart;
required_device<upd7201_device> m_iouart;
required_shared_ptr<uint16_t> m_p_ram;
};
@ -92,7 +92,7 @@ void sun1_state::sun1_mem(address_map &map)
map.unmap_value_high();
map(0x00000000, 0x001fffff).ram().share("p_ram"); // 512 KB RAM / ROM at boot
map(0x00200000, 0x00203fff).rom().region("user1", 0);
map(0x00600000, 0x00600007).mirror(0x1ffff8).rw(m_iouart, FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w)).umask16(0xff00);
map(0x00600000, 0x00600007).mirror(0x1ffff8).rw(m_iouart, FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w)).umask16(0xff00);
map(0x00800000, 0x00800003).mirror(0x1ffffc).rw("timer", FUNC(am9513_device::read16), FUNC(am9513_device::write16));
map(0x00a00000, 0x00bfffff).unmaprw(); // page map
map(0x00c00000, 0x00dfffff).unmaprw(); // segment map
@ -123,12 +123,12 @@ void sun1_state::sun1(machine_config &config)
timer.out1_cb().set_nop(); // Watchdog; generates BERR/Reset
timer.out2_cb().set_inputline(m_maincpu, M68K_IRQ_6); // User timer
timer.out3_cb().set_inputline(m_maincpu, M68K_IRQ_7); // Refresh timer (2 ms)
timer.out4_cb().set(m_iouart, FUNC(upd7201_new_device::rxca_w));
timer.out4_cb().append(m_iouart, FUNC(upd7201_new_device::txca_w));
timer.out5_cb().set(m_iouart, FUNC(upd7201_new_device::rxcb_w));
timer.out5_cb().append(m_iouart, FUNC(upd7201_new_device::txcb_w));
timer.out4_cb().set(m_iouart, FUNC(upd7201_device::rxca_w));
timer.out4_cb().append(m_iouart, FUNC(upd7201_device::txca_w));
timer.out5_cb().set(m_iouart, FUNC(upd7201_device::rxcb_w));
timer.out5_cb().append(m_iouart, FUNC(upd7201_device::txcb_w));
UPD7201_NEW(config, m_iouart, 16_MHz_XTAL / 4);
UPD7201(config, m_iouart, 16_MHz_XTAL / 4);
m_iouart->out_txda_callback().set("rs232a", FUNC(rs232_port_device::write_txd));
m_iouart->out_dtra_callback().set("rs232a", FUNC(rs232_port_device::write_dtr));
m_iouart->out_rtsa_callback().set("rs232a", FUNC(rs232_port_device::write_rts));
@ -138,14 +138,14 @@ void sun1_state::sun1(machine_config &config)
m_iouart->out_int_callback().set_inputline(m_maincpu, M68K_IRQ_5);
rs232_port_device &rs232a(RS232_PORT(config, "rs232a", default_rs232_devices, "terminal"));
rs232a.rxd_handler().set(m_iouart, FUNC(upd7201_new_device::rxa_w));
rs232a.cts_handler().set(m_iouart, FUNC(upd7201_new_device::ctsa_w));
rs232a.dcd_handler().set(m_iouart, FUNC(upd7201_new_device::dcda_w));
rs232a.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxa_w));
rs232a.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsa_w));
rs232a.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcda_w));
rs232_port_device &rs232b(RS232_PORT(config, "rs232b", default_rs232_devices, nullptr));
rs232b.rxd_handler().set(m_iouart, FUNC(upd7201_new_device::rxb_w));
rs232b.cts_handler().set(m_iouart, FUNC(upd7201_new_device::ctsb_w));
rs232b.dcd_handler().set(m_iouart, FUNC(upd7201_new_device::dcdb_w));
rs232b.rxd_handler().set(m_iouart, FUNC(upd7201_device::rxb_w));
rs232b.cts_handler().set(m_iouart, FUNC(upd7201_device::ctsb_w));
rs232b.dcd_handler().set(m_iouart, FUNC(upd7201_device::dcdb_w));
}
/* ROM definition */

View File

@ -127,7 +127,7 @@ void telex274_state::main_mem(address_map &map)
map(0x008000, 0x01ffff).ram();
map(0x080000, 0x09ffff).ram();
map(0xff811e, 0xff811f).nopr();
map(0xff8810, 0xff8817).rw("mpsc", FUNC(i8274_new_device::cd_ba_r), FUNC(i8274_new_device::cd_ba_w)).umask16(0x00ff);
map(0xff8810, 0xff8817).rw("mpsc", FUNC(i8274_device::cd_ba_r), FUNC(i8274_device::cd_ba_w)).umask16(0x00ff);
map(0xff8818, 0xff881b).rw("maintimer", FUNC(am9513a_device::read8), FUNC(am9513a_device::write8)).umask16(0x00ff);
}
@ -150,11 +150,11 @@ void telex274_state::telex274(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &telex274_state::main_mem);
am9513a_device &maintimer(AM9513A(config, "maintimer", 4_MHz_XTAL));
maintimer.out4_cb().set("mpsc", FUNC(i8274_new_device::rxca_w)); // ?
maintimer.out4_cb().append("mpsc", FUNC(i8274_new_device::txca_w)); // ?
maintimer.out5_cb().set("mpsc", FUNC(i8274_new_device::rxtxcb_w)); // ?
maintimer.out4_cb().set("mpsc", FUNC(i8274_device::rxca_w)); // ?
maintimer.out4_cb().append("mpsc", FUNC(i8274_device::txca_w)); // ?
maintimer.out5_cb().set("mpsc", FUNC(i8274_device::rxtxcb_w)); // ?
I8274_NEW(config, "mpsc", 4'000'000);
I8274(config, "mpsc", 4'000'000);
M68000(config, m_coaxcpu, 10'000'000);
m_coaxcpu->set_addrmap(AS_PROGRAM, &telex274_state::coax_mem);

View File

@ -338,7 +338,7 @@ void unixpc_state::unixpc_mem(address_map &map)
map(0xe10000, 0xe10007).rw(m_wd2797, FUNC(wd_fdc_device_base::read), FUNC(wd_fdc_device_base::write)).umask16(0x00ff);
map(0xe30000, 0xe30001).r(FUNC(unixpc_state::rtc_r));
map(0xe40000, 0xe40001).select(0x7000).w(FUNC(unixpc_state::gcr_w));
map(0xe50000, 0xe50007).rw("mpsc", FUNC(upd7201_new_device::cd_ba_r), FUNC(upd7201_new_device::cd_ba_w)).umask16(0x00ff);
map(0xe50000, 0xe50007).rw("mpsc", FUNC(upd7201_device::cd_ba_r), FUNC(upd7201_device::cd_ba_w)).umask16(0x00ff);
map(0xe70000, 0xe70003).rw("kbc", FUNC(acia6850_device::read), FUNC(acia6850_device::write)).umask16(0xff00);
map(0x800000, 0x803fff).mirror(0x7fc000).rom().region("bootrom", 0);
}
@ -420,7 +420,7 @@ void unixpc_state::unixpc(machine_config &config)
m_hdc->out_intrq_callback().set(FUNC(unixpc_state::wd1010_intrq_w));
HARDDISK(config, m_hdr0, 0);
upd7201_new_device &mpsc(UPD7201_NEW(config, "mpsc", 19.6608_MHz_XTAL / 8));
upd7201_device &mpsc(UPD7201(config, "mpsc", 19.6608_MHz_XTAL / 8));
mpsc.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
mpsc.out_dtra_callback().set("rs232", FUNC(rs232_port_device::write_dtr));
mpsc.out_rtsa_callback().set("rs232", FUNC(rs232_port_device::write_rts));
@ -433,9 +433,9 @@ void unixpc_state::unixpc(machine_config &config)
//TC8250(config, "rtc", 32.768_kHz_XTAL);
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));
rs232.rxd_handler().set("mpsc", FUNC(upd7201_device::rxa_w));
rs232.dsr_handler().set("mpsc", FUNC(upd7201_device::dcda_w));
rs232.cts_handler().set("mpsc", FUNC(upd7201_device::ctsa_w));
centronics_device &printer(CENTRONICS(config, "printer", centronics_devices, nullptr));
output_latch_device &printlatch(OUTPUT_LATCH(config, "printlatch"));

View File

@ -46,7 +46,7 @@ private:
void mem_map(address_map &map);
required_device<cpu_device> m_maincpu;
required_device<upd7201_new_device> m_mpsc;
required_device<upd7201_device> m_mpsc;
required_region_ptr<u8> m_chargen;
bool m_hs_state;
@ -85,7 +85,7 @@ void v102_state::io_map(address_map &map)
{
map.global_mask(0xff);
map(0x00, 0x3f).rw("vpac", FUNC(crt9007_device::read), FUNC(crt9007_device::write));
map(0x40, 0x43).rw("mpsc", FUNC(upd7201_new_device::ba_cd_r), FUNC(upd7201_new_device::ba_cd_w));
map(0x40, 0x43).rw("mpsc", FUNC(upd7201_device::ba_cd_r), FUNC(upd7201_device::ba_cd_w));
map(0x60, 0x61).rw("usart", FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x80, 0x83).w("pit", FUNC(pit8253_device::write));
map(0xa0, 0xa3).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
@ -125,7 +125,7 @@ void v102_state::v102(machine_config &config)
EEPROM_2804(config, "eeprom");
UPD7201_NEW(config, m_mpsc, 18.575_MHz_XTAL / 5); // divider not verified
UPD7201(config, m_mpsc, 18.575_MHz_XTAL / 5); // divider not verified
m_mpsc->out_int_callback().set("mainirq", FUNC(input_merger_device::in_w<0>));
m_mpsc->out_txda_callback().set("keyboard", FUNC(v102_keyboard_device::write_rxd));
m_mpsc->out_txdb_callback().set("aux", FUNC(rs232_port_device::write_txd));
@ -146,13 +146,13 @@ void v102_state::v102(machine_config &config)
pit.set_clk<2>(18.575_MHz_XTAL / 6);
pit.out_handler<0>().set("usart", FUNC(i8251_device::write_txc));
pit.out_handler<1>().set("usart", FUNC(i8251_device::write_rxc));
pit.out_handler<2>().set(m_mpsc, FUNC(upd7201_new_device::txcb_w));
pit.out_handler<2>().append(m_mpsc, FUNC(upd7201_new_device::rxcb_w));
pit.out_handler<2>().set(m_mpsc, FUNC(upd7201_device::txcb_w));
pit.out_handler<2>().append(m_mpsc, FUNC(upd7201_device::rxcb_w));
I8255(config, "ppi");
v102_keyboard_device &keyboard(V102_KEYBOARD(config, "keyboard"));
keyboard.txd_callback().set(m_mpsc, FUNC(upd7201_new_device::rxa_w));
keyboard.txd_callback().set(m_mpsc, FUNC(upd7201_device::rxa_w));
rs232_port_device &modem(RS232_PORT(config, "modem", default_rs232_devices, nullptr));
modem.rxd_handler().set("usart", FUNC(i8251_device::write_rxd));
@ -160,8 +160,8 @@ void v102_state::v102(machine_config &config)
modem.dcd_handler().set("usart", FUNC(i8251_device::write_dsr));
rs232_port_device &aux(RS232_PORT(config, "aux", default_rs232_devices, nullptr));
aux.rxd_handler().set(m_mpsc, FUNC(upd7201_new_device::rxb_w));
aux.dcd_handler().set(m_mpsc, FUNC(upd7201_new_device::dcdb_w)); // DTR (printer busy)
aux.rxd_handler().set(m_mpsc, FUNC(upd7201_device::rxb_w));
aux.dcd_handler().set(m_mpsc, FUNC(upd7201_device::dcdb_w)); // DTR (printer busy)
}

View File

@ -70,10 +70,10 @@ void v550_state::io_map(address_map &map)
map(0x10, 0x10).w("brg1", FUNC(com8116_device::stt_str_w));
map(0x20, 0x23).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
map(0x30, 0x31).rw(m_usart, FUNC(i8251_device::read), FUNC(i8251_device::write));
map(0x40, 0x40).rw("mpsc", FUNC(upd7201_new_device::da_r), FUNC(upd7201_new_device::da_w));
map(0x41, 0x41).rw("mpsc", FUNC(upd7201_new_device::ca_r), FUNC(upd7201_new_device::ca_w));
map(0x48, 0x48).rw("mpsc", FUNC(upd7201_new_device::db_r), FUNC(upd7201_new_device::db_w));
map(0x49, 0x49).rw("mpsc", FUNC(upd7201_new_device::cb_r), FUNC(upd7201_new_device::cb_w));
map(0x40, 0x40).rw("mpsc", FUNC(upd7201_device::da_r), FUNC(upd7201_device::da_w));
map(0x41, 0x41).rw("mpsc", FUNC(upd7201_device::ca_r), FUNC(upd7201_device::ca_w));
map(0x48, 0x48).rw("mpsc", FUNC(upd7201_device::db_r), FUNC(upd7201_device::db_w));
map(0x49, 0x49).rw("mpsc", FUNC(upd7201_device::cb_r), FUNC(upd7201_device::cb_w));
map(0x50, 0x50).w("brg2", FUNC(com8116_device::stt_str_w));
map(0x60, 0x67).rw("pvtc", FUNC(scn2672_device::read), FUNC(scn2672_device::write));
map(0x70, 0x70).rw("pvtc", FUNC(scn2672_device::buffer_r), FUNC(scn2672_device::buffer_w));
@ -117,20 +117,20 @@ void v550_state::v550(machine_config &config)
m_usart->txd_handler().set("keyboard", FUNC(v550_keyboard_device::write_rxd));
m_usart->rxrdy_handler().set("mainint", FUNC(input_merger_device::in_w<1>));
upd7201_new_device& mpsc(UPD7201_NEW(config, "mpsc", 34.846_MHz_XTAL / 16)); // NEC D7201C
upd7201_device& mpsc(UPD7201(config, "mpsc", 34.846_MHz_XTAL / 16)); // NEC D7201C
mpsc.out_int_callback().set("mainint", FUNC(input_merger_device::in_w<0>));
INPUT_MERGER_ANY_HIGH(config, "mainint").output_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
com8116_device &brg1(COM8116_020(config, "brg1", 1.8432_MHz_XTAL)); // SMC COM8116T-020
brg1.ft_handler().set("mpsc", FUNC(upd7201_new_device::txcb_w));
brg1.ft_handler().append("mpsc", FUNC(upd7201_new_device::rxcb_w));
brg1.ft_handler().set("mpsc", FUNC(upd7201_device::txcb_w));
brg1.ft_handler().append("mpsc", FUNC(upd7201_device::rxcb_w));
brg1.fr_handler().set("usart", FUNC(i8251_device::write_txc));
brg1.fr_handler().append("usart", FUNC(i8251_device::write_rxc));
com8116_device &brg2(COM8116_020(config, "brg2", 1.8432_MHz_XTAL)); // SMC COM8116T-020
brg2.ft_handler().set("mpsc", FUNC(upd7201_new_device::txca_w));
brg2.fr_handler().set("mpsc", FUNC(upd7201_new_device::rxca_w));
brg2.ft_handler().set("mpsc", FUNC(upd7201_device::txca_w));
brg2.fr_handler().set("mpsc", FUNC(upd7201_device::rxca_w));
v550_keyboard_device &keyboard(V550_KEYBOARD(config, "keyboard"));
keyboard.txd_callback().set(m_usart, FUNC(i8251_device::write_rxd));

View File

@ -36,7 +36,7 @@
#include "machine/ram.h"
#include "machine/victor9k_kb.h"
#include "machine/victor9k_fdc.h"
#include "machine/z80dart.h"
#include "machine/z80sio.h"
#include "sound/hc55516.h"
#include "video/mc6845.h"
#include "emupal.h"
@ -131,8 +131,6 @@ private:
DECLARE_WRITE8_MEMBER( via2_pa_w );
DECLARE_WRITE8_MEMBER( via2_pb_w );
DECLARE_WRITE_LINE_MEMBER( write_ria );
DECLARE_WRITE_LINE_MEMBER( write_rib );
DECLARE_WRITE_LINE_MEMBER( via2_irq_w );
DECLARE_WRITE8_MEMBER( via3_pb_w );
@ -518,20 +516,6 @@ WRITE_LINE_MEMBER( victor9k_state::via2_irq_w )
}
WRITE_LINE_MEMBER( victor9k_state::write_ria )
{
m_upd7201->ria_w(state);
m_via2->write_pa2(state);
}
WRITE_LINE_MEMBER( victor9k_state::write_rib )
{
m_upd7201->rib_w(state);
m_via2->write_pa4(state);
}
/*
bit description
@ -769,18 +753,18 @@ void victor9k_state::victor9k(machine_config &config)
m_centronics->select_handler().set(M6522_1_TAG, FUNC(via6522_device::write_pb7));
RS232_PORT(config, m_rs232a, default_rs232_devices, nullptr);
m_rs232a->rxd_handler().set(UPD7201_TAG, FUNC(z80dart_device::rxa_w));
m_rs232a->dcd_handler().set(UPD7201_TAG, FUNC(z80dart_device::dcda_w));
m_rs232a->ri_handler().set(FUNC(victor9k_state::write_ria));
m_rs232a->cts_handler().set(UPD7201_TAG, FUNC(z80dart_device::ctsa_w));
m_rs232a->dsr_handler().set(M6522_2_TAG, FUNC(via6522_device::write_pa3));
m_rs232a->rxd_handler().set(m_upd7201, FUNC(upd7201_device::rxa_w));
m_rs232a->dcd_handler().set(m_upd7201, FUNC(upd7201_device::dcda_w));
m_rs232a->ri_handler().set(m_via2, FUNC(via6522_device::write_pa2));
m_rs232a->cts_handler().set(m_upd7201, FUNC(upd7201_device::ctsa_w));
m_rs232a->dsr_handler().set(m_via2, FUNC(via6522_device::write_pa3));
RS232_PORT(config, m_rs232b, default_rs232_devices, nullptr);
m_rs232b->rxd_handler().set(UPD7201_TAG, FUNC(z80dart_device::rxb_w));
m_rs232b->dcd_handler().set(UPD7201_TAG, FUNC(z80dart_device::dcdb_w));
m_rs232b->ri_handler().set(FUNC(victor9k_state::write_ria));
m_rs232b->cts_handler().set(UPD7201_TAG, FUNC(z80dart_device::ctsb_w));
m_rs232b->dsr_handler().set(M6522_2_TAG, FUNC(via6522_device::write_pa5));
m_rs232b->rxd_handler().set(m_upd7201, FUNC(upd7201_device::rxb_w));
m_rs232b->dcd_handler().set(m_upd7201, FUNC(upd7201_device::dcdb_w));
m_rs232b->ri_handler().set(m_via2, FUNC(via6522_device::write_pa4));
m_rs232b->cts_handler().set(m_upd7201, FUNC(upd7201_device::ctsb_w));
m_rs232b->dsr_handler().set(m_via2, FUNC(via6522_device::write_pa5));
VICTOR9K_KEYBOARD(config, m_kb, 0);
m_kb->kbrdy_handler().set(FUNC(victor9k_state::kbrdy_w));

View File

@ -15,7 +15,7 @@
#include "machine/mm1kb.h"
#include "machine/pit8253.h"
#include "machine/ram.h"
#include "machine/z80dart.h"
#include "machine/z80sio.h"
#include "machine/upd765.h"
#include "video/i8275.h"
#include "video/upd7220.h"