mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
pulsarlb: fixed a few more mistakes (nw)
This commit is contained in:
parent
3801181ced
commit
c1a77cedcb
@ -55,6 +55,7 @@ public:
|
||||
m_brg(*this, "brg"),
|
||||
m_fdc (*this, "fdc"),
|
||||
m_floppy0(*this, "fdc:0"),
|
||||
m_floppy1(*this, "fdc:1"),
|
||||
m_rtc(*this, "rtc")
|
||||
{
|
||||
}
|
||||
@ -77,6 +78,7 @@ private:
|
||||
required_device<com8116_device> m_brg;
|
||||
required_device<fd1797_t> m_fdc;
|
||||
required_device<floppy_connector> m_floppy0;
|
||||
required_device<floppy_connector> m_floppy1;
|
||||
required_device<msm5832_device> m_rtc;
|
||||
};
|
||||
|
||||
@ -138,41 +140,46 @@ d7 XMEMEX line (for external memory, not emulated)
|
||||
WRITE8_MEMBER( pulsar_state::ppi_pa_w )
|
||||
{
|
||||
m_floppy = nullptr;
|
||||
if (BIT(data, 0)) m_floppy = m_floppy0->get_device();
|
||||
if (BIT(data, 0))
|
||||
m_floppy = m_floppy0->get_device();
|
||||
else
|
||||
if (BIT(data, 1))
|
||||
m_floppy = m_floppy1->get_device();
|
||||
m_fdc->set_floppy(m_floppy);
|
||||
m_fdc->dden_w(BIT(data, 5));
|
||||
if (m_floppy)
|
||||
m_floppy->mon_w(0);
|
||||
}
|
||||
|
||||
/*
|
||||
d0..d3 RTC address
|
||||
d4 RTC read line (inverted in emulation)
|
||||
d5 RTC write line (inverted in emulation)
|
||||
d4 RTC read line
|
||||
d5 RTC write line
|
||||
d6 RTC hold line
|
||||
d7 Allow 64k of ram
|
||||
*/
|
||||
WRITE8_MEMBER( pulsar_state::ppi_pb_w )
|
||||
{
|
||||
m_rtc->address_w(data & 0x0f);
|
||||
m_rtc->read_w(!BIT(data, 4));
|
||||
m_rtc->write_w(!BIT(data, 5));
|
||||
m_rtc->read_w(BIT(data, 4));
|
||||
m_rtc->write_w(BIT(data, 5));
|
||||
m_rtc->hold_w(BIT(data, 6));
|
||||
membank("bankr1")->set_entry(BIT(data, 7));
|
||||
}
|
||||
|
||||
/*
|
||||
d0..d3 Data lines to rtc
|
||||
d7 /2 SIDES (assumed to be side select)
|
||||
*/
|
||||
// d0..d3 Data lines to rtc
|
||||
WRITE8_MEMBER( pulsar_state::ppi_pc_w )
|
||||
{
|
||||
m_rtc->data_w(space, 0, data & 15);
|
||||
if (m_floppy)
|
||||
m_floppy->ss_w(BIT(data, 7));
|
||||
}
|
||||
|
||||
// d7 /2 SIDES
|
||||
READ8_MEMBER( pulsar_state::ppi_pc_r )
|
||||
{
|
||||
return m_rtc->data_r(space, 0);
|
||||
uint8_t data = 0;
|
||||
if (m_floppy)
|
||||
data = m_floppy->twosid_r() << 7;
|
||||
return m_rtc->data_r(space, 0) | data;
|
||||
}
|
||||
|
||||
static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||
@ -185,7 +192,8 @@ static DEVICE_INPUT_DEFAULTS_START( terminal )
|
||||
DEVICE_INPUT_DEFAULTS_END
|
||||
|
||||
static SLOT_INTERFACE_START( pulsar_floppies )
|
||||
SLOT_INTERFACE( "525dd", FLOPPY_525_HD )
|
||||
SLOT_INTERFACE( "drive0", FLOPPY_525_HD )
|
||||
SLOT_INTERFACE( "drive1", FLOPPY_525_HD )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
/* Input ports */
|
||||
@ -248,7 +256,10 @@ static MACHINE_CONFIG_START( pulsar, pulsar_state )
|
||||
MCFG_COM8116_FT_HANDLER(WRITELINE(pulsar_state, ft_w))
|
||||
|
||||
MCFG_FD1797_ADD("fdc", XTAL_4MHz / 2)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pulsar_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", pulsar_floppies, "drive0", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", pulsar_floppies, "drive1", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_SOUND(true)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
/* ROM definition */
|
||||
|
Loading…
Reference in New Issue
Block a user