mirror of
https://github.com/holub/mame
synced 2025-07-04 01:18:59 +03:00
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:
parent
047dfdd5d7
commit
be7d48d2c9
@ -18,7 +18,7 @@
|
||||
#include "imagedev/floppy.h"
|
||||
#include "machine/ram.h"
|
||||
#include "machine/upd765.h"
|
||||
#include "machine/z80dart.h"
|
||||
#include "machine/z80sio.h"
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
|
@ -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) :
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 -
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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));
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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));
|
||||
|
@ -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?
|
||||
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
@ -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"));
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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"
|
||||
|
Loading…
Reference in New Issue
Block a user