mirror of
https://github.com/holub/mame
synced 2025-05-06 06:14:45 +03:00
unixpc.cpp: Add FDC reset; slight conceptual cleanup (nw)
This commit is contained in:
parent
ec753a153a
commit
6deb0d35e3
@ -69,7 +69,7 @@ private:
|
|||||||
virtual void machine_reset() override;
|
virtual void machine_reset() override;
|
||||||
|
|
||||||
DECLARE_READ16_MEMBER(line_printer_r);
|
DECLARE_READ16_MEMBER(line_printer_r);
|
||||||
DECLARE_WRITE16_MEMBER(disk_control_w);
|
void disk_control_w(uint8_t data);
|
||||||
DECLARE_WRITE16_MEMBER(gcr_w);
|
DECLARE_WRITE16_MEMBER(gcr_w);
|
||||||
DECLARE_WRITE_LINE_MEMBER(romlmap_w);
|
DECLARE_WRITE_LINE_MEMBER(romlmap_w);
|
||||||
DECLARE_WRITE_LINE_MEMBER(error_enable_w);
|
DECLARE_WRITE_LINE_MEMBER(error_enable_w);
|
||||||
@ -159,8 +159,7 @@ void unixpc_state::machine_start()
|
|||||||
|
|
||||||
void unixpc_state::machine_reset()
|
void unixpc_state::machine_reset()
|
||||||
{
|
{
|
||||||
// force ROM into lower mem on reset
|
disk_control_w(0);
|
||||||
m_ramrombank->set_bank(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(unixpc_state::error_enable_w)
|
WRITE_LINE_MEMBER(unixpc_state::error_enable_w)
|
||||||
@ -257,9 +256,9 @@ WRITE16_MEMBER(unixpc_state::diskdma_ptr_w)
|
|||||||
FLOPPY
|
FLOPPY
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
WRITE16_MEMBER(unixpc_state::disk_control_w)
|
void unixpc_state::disk_control_w(uint8_t data)
|
||||||
{
|
{
|
||||||
logerror("disk_control_w: %04x\n", data);
|
logerror("disk_control_w: %02x\n", data);
|
||||||
|
|
||||||
// TODO: bits 0-2 = head select
|
// TODO: bits 0-2 = head select
|
||||||
|
|
||||||
@ -275,6 +274,8 @@ WRITE16_MEMBER(unixpc_state::disk_control_w)
|
|||||||
m_wd2797->set_floppy(m_floppy);
|
m_wd2797->set_floppy(m_floppy);
|
||||||
else
|
else
|
||||||
m_wd2797->set_floppy(nullptr);
|
m_wd2797->set_floppy(nullptr);
|
||||||
|
|
||||||
|
m_wd2797->mr_w(BIT(data, 7));
|
||||||
}
|
}
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(unixpc_state::wd2797_intrq_w)
|
WRITE_LINE_MEMBER(unixpc_state::wd2797_intrq_w)
|
||||||
@ -331,7 +332,7 @@ void unixpc_state::unixpc_mem(address_map &map)
|
|||||||
map(0x490000, 0x490001).select(0x7000).w(FUNC(unixpc_state::tcr_w));
|
map(0x490000, 0x490001).select(0x7000).w(FUNC(unixpc_state::tcr_w));
|
||||||
map(0x4a0000, 0x4a0000).w("mreg", FUNC(output_latch_device::bus_w));
|
map(0x4a0000, 0x4a0000).w("mreg", FUNC(output_latch_device::bus_w));
|
||||||
map(0x4d0000, 0x4d7fff).w(FUNC(unixpc_state::diskdma_ptr_w));
|
map(0x4d0000, 0x4d7fff).w(FUNC(unixpc_state::diskdma_ptr_w));
|
||||||
map(0x4e0000, 0x4e0001).w(FUNC(unixpc_state::disk_control_w));
|
map(0x4e0001, 0x4e0001).w(FUNC(unixpc_state::disk_control_w)).cswidth(16);
|
||||||
map(0x4f0001, 0x4f0001).w("printlatch", FUNC(output_latch_device::bus_w));
|
map(0x4f0001, 0x4f0001).w("printlatch", FUNC(output_latch_device::bus_w));
|
||||||
map(0xe00000, 0xe0000f).rw(m_hdc, FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff);
|
map(0xe00000, 0xe0000f).rw(m_hdc, FUNC(wd1010_device::read), FUNC(wd1010_device::write)).umask16(0x00ff);
|
||||||
map(0xe10000, 0xe10007).rw(m_wd2797, FUNC(wd_fdc_device_base::read), FUNC(wd_fdc_device_base::write)).umask16(0x00ff);
|
map(0xe10000, 0xe10007).rw(m_wd2797, FUNC(wd_fdc_device_base::read), FUNC(wd_fdc_device_base::write)).umask16(0x00ff);
|
||||||
|
Loading…
Reference in New Issue
Block a user