mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
upd765: Add uPD72069 device type for mpc3000 (nw)
This commit is contained in:
parent
31fad1a57c
commit
94f4e19770
@ -45,6 +45,7 @@ DEFINE_DEVICE_TYPE(UPD765A, upd765a_device, "upd765a", "NEC
|
||||
DEFINE_DEVICE_TYPE(UPD765B, upd765b_device, "upd765b", "NEC uPD765B FDC")
|
||||
DEFINE_DEVICE_TYPE(I8272A, i8272a_device, "i8272a", "Intel 8272A FDC")
|
||||
DEFINE_DEVICE_TYPE(UPD72065, upd72065_device, "upd72065", "NEC uPD72065 FDC")
|
||||
DEFINE_DEVICE_TYPE(UPD72069, upd72069_device, "upd72069", "NEC uPD72069 FDC")
|
||||
DEFINE_DEVICE_TYPE(I82072, i82072_device, "i82072", "Intel 82072 FDC")
|
||||
DEFINE_DEVICE_TYPE(SMC37C78, smc37c78_device, "smc37c78", "SMC FDC73C78 FDC")
|
||||
DEFINE_DEVICE_TYPE(N82077AA, n82077aa_device, "n82077aa", "Intel N82077AA FDC")
|
||||
@ -2646,11 +2647,23 @@ i8272a_device::i8272a_device(const machine_config &mconfig, const char *tag, dev
|
||||
dor_reset = 0x0c;
|
||||
}
|
||||
|
||||
upd72065_device::upd72065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, UPD72065, tag, owner, clock)
|
||||
upd72065_device::upd72065_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd72065_device(mconfig, UPD72065, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
upd72065_device::upd72065_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, type, tag, owner, clock)
|
||||
{
|
||||
dor_reset = 0x0c;
|
||||
}
|
||||
|
||||
upd72069_device::upd72069_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd72065_device(mconfig, UPD72069, tag, owner, clock)
|
||||
{
|
||||
ready_polled = true;
|
||||
ready_connected = true;
|
||||
select_connected = true;
|
||||
select_multiplexed = false;
|
||||
}
|
||||
|
||||
i82072_device::i82072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : upd765_family_device(mconfig, I82072, tag, owner, clock)
|
||||
{
|
||||
dor_reset = 0x0c;
|
||||
|
@ -471,6 +471,14 @@ public:
|
||||
|
||||
virtual void map(address_map &map) override;
|
||||
void auxcmd_w(uint8_t data);
|
||||
|
||||
protected:
|
||||
upd72065_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
class upd72069_device : public upd72065_device {
|
||||
public:
|
||||
upd72069_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||
};
|
||||
|
||||
class n82077aa_device : public upd765_family_device {
|
||||
@ -549,6 +557,7 @@ DECLARE_DEVICE_TYPE(UPD765A, upd765a_device)
|
||||
DECLARE_DEVICE_TYPE(UPD765B, upd765b_device)
|
||||
DECLARE_DEVICE_TYPE(I8272A, i8272a_device)
|
||||
DECLARE_DEVICE_TYPE(UPD72065, upd72065_device)
|
||||
DECLARE_DEVICE_TYPE(UPD72069, upd72069_device)
|
||||
DECLARE_DEVICE_TYPE(I82072, i82072_device)
|
||||
DECLARE_DEVICE_TYPE(SMC37C78, smc37c78_device)
|
||||
DECLARE_DEVICE_TYPE(N82077AA, n82077aa_device)
|
||||
|
@ -82,7 +82,7 @@ public:
|
||||
, m_lcdc(*this, "lcdc")
|
||||
, m_dsp(*this, "dsp")
|
||||
, m_mdout(*this, "mdout")
|
||||
, m_fdc(*this, "upd72068")
|
||||
, m_fdc(*this, "fdc")
|
||||
{ }
|
||||
|
||||
void mpc3000(machine_config &config);
|
||||
@ -94,7 +94,7 @@ private:
|
||||
required_device<hd61830_device> m_lcdc;
|
||||
required_device<l7a1045_sound_device> m_dsp;
|
||||
required_device<midi_port_device> m_mdout;
|
||||
required_device<upd72065_device> m_fdc;
|
||||
required_device<upd72069_device> m_fdc;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
|
||||
@ -152,7 +152,7 @@ void mpc3000_state::mpc3000_io_map(address_map &map)
|
||||
//map(0x00d8, 0x00df).rw("sio", FUNC(te7774_device::read3), FUNC(te7774_device::write3)).umask(0x00ff);
|
||||
map(0x00e0, 0x00e0).rw(m_lcdc, FUNC(hd61830_device::data_r), FUNC(hd61830_device::data_w)).umask16(0x00ff);
|
||||
map(0x00e2, 0x00e2).rw(m_lcdc, FUNC(hd61830_device::status_r), FUNC(hd61830_device::control_w)).umask16(0x00ff);
|
||||
map(0x00e8, 0x00eb).m(m_fdc, FUNC(upd72065_device::map)).umask16(0x00ff);
|
||||
map(0x00e8, 0x00eb).m(m_fdc, FUNC(upd72069_device::map)).umask16(0x00ff);
|
||||
map(0x00f0, 0x00f7).rw("synctmr", FUNC(pit8254_device::read), FUNC(pit8254_device::write)).umask16(0x00ff);
|
||||
map(0x00f8, 0x00ff).rw("adcexp", FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||
}
|
||||
@ -214,7 +214,7 @@ void mpc3000_state::mpc3000(machine_config &config)
|
||||
|
||||
PALETTE(config, "palette", FUNC(mpc3000_state::mpc3000_palette), 2);
|
||||
|
||||
UPD72065(config, m_fdc, 16_MHz_XTAL, true, true); // clocked by V53 CLKOUT (TODO: upd72068 supports motor control)
|
||||
UPD72069(config, m_fdc, 16_MHz_XTAL); // clocked by V53 CLKOUT (TODO: upd72069 supports motor control)
|
||||
//m_fdc->intrq_wr_callback().set(m_maincpu, FUNC(v53a_device::ir?_w));
|
||||
//m_fdc->drq_wr_callback().set(m_maincpu, FUNC(v53a_device::drq?_w));
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user