mirror of
https://github.com/holub/mame
synced 2025-10-04 08:28:39 +03:00
mindset: Cleanup floppy motor control [O. Galibert]
This commit is contained in:
parent
dc35885dcd
commit
e5112a99c9
@ -25,11 +25,13 @@ protected:
|
|||||||
required_device<i8749_device> m_kbdcpu;
|
required_device<i8749_device> m_kbdcpu;
|
||||||
required_device<screen_device> m_screen;
|
required_device<screen_device> m_screen;
|
||||||
required_device<i8272a_device> m_fdc;
|
required_device<i8272a_device> m_fdc;
|
||||||
|
required_device<floppy_connector> m_fdco[2];
|
||||||
required_shared_ptr<u16> m_vram;
|
required_shared_ptr<u16> m_vram;
|
||||||
required_ioport_array<11> m_kbd_row;
|
required_ioport_array<11> m_kbd_row;
|
||||||
|
|
||||||
memory_access_cache<1, 0, ENDIANNESS_LITTLE> *m_gcos;
|
memory_access_cache<1, 0, ENDIANNESS_LITTLE> *m_gcos;
|
||||||
|
|
||||||
|
floppy_image_device *m_floppy[2];
|
||||||
u32 m_palette[16];
|
u32 m_palette[16];
|
||||||
bool m_genlock[16];
|
bool m_genlock[16];
|
||||||
u16 m_dispctrl, m_screenpos, m_intpos, m_intaddr, m_fdc_dma_count;
|
u16 m_dispctrl, m_screenpos, m_intpos, m_intaddr, m_fdc_dma_count;
|
||||||
@ -104,6 +106,7 @@ mindset_state::mindset_state(const machine_config &mconfig, device_type type, co
|
|||||||
m_kbdcpu(*this, "kbdcpu"),
|
m_kbdcpu(*this, "kbdcpu"),
|
||||||
m_screen(*this, "screen"),
|
m_screen(*this, "screen"),
|
||||||
m_fdc(*this, "fdc"),
|
m_fdc(*this, "fdc"),
|
||||||
|
m_fdco{{*this, "fdc:0"}, {*this, "fdc:1"}},
|
||||||
m_vram(*this, "vram"),
|
m_vram(*this, "vram"),
|
||||||
m_kbd_row(*this, "K%02u", 0U)
|
m_kbd_row(*this, "K%02u", 0U)
|
||||||
{
|
{
|
||||||
@ -112,6 +115,8 @@ mindset_state::mindset_state(const machine_config &mconfig, device_type type, co
|
|||||||
void mindset_state::machine_start()
|
void mindset_state::machine_start()
|
||||||
{
|
{
|
||||||
m_gcos = m_maincpu->space(AS_PROGRAM).cache<1, 0, ENDIANNESS_LITTLE>();
|
m_gcos = m_maincpu->space(AS_PROGRAM).cache<1, 0, ENDIANNESS_LITTLE>();
|
||||||
|
for(int i=0; i<2; i++)
|
||||||
|
m_floppy[i] = m_fdco[i]->get_device();
|
||||||
}
|
}
|
||||||
|
|
||||||
void mindset_state::machine_reset()
|
void mindset_state::machine_reset()
|
||||||
@ -669,8 +674,8 @@ void mindset_state::fdc_ctrl_w(u8 data)
|
|||||||
logerror("fdc control %02x\n", data);
|
logerror("fdc control %02x\n", data);
|
||||||
if(data & 0x04)
|
if(data & 0x04)
|
||||||
m_fdc->reset();
|
m_fdc->reset();
|
||||||
subdevice<floppy_connector>(":fdc:0")->get_device()->mon_w(false);
|
m_floppy[data & 1]->mon_w(!(data & 2));
|
||||||
subdevice<floppy_connector>(":fdc:1")->get_device()->mon_w(false);
|
m_floppy[(data & 1)^1]->mon_w(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mindset_state::fdc_int_w(int state)
|
void mindset_state::fdc_int_w(int state)
|
||||||
@ -782,8 +787,8 @@ void mindset_state::mindset(machine_config &config)
|
|||||||
m_fdc->intrq_wr_callback().set(FUNC(mindset_state::fdc_int_w));
|
m_fdc->intrq_wr_callback().set(FUNC(mindset_state::fdc_int_w));
|
||||||
m_fdc->drq_wr_callback().set(m_maincpu, FUNC(i80186_cpu_device::drq1_w));
|
m_fdc->drq_wr_callback().set(m_maincpu, FUNC(i80186_cpu_device::drq1_w));
|
||||||
m_fdc->set_ready_line_connected(false);
|
m_fdc->set_ready_line_connected(false);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:0", pc_dd_floppies, "525dd", mindset_state::floppy_formats);
|
FLOPPY_CONNECTOR(config, m_fdco[0], pc_dd_floppies, "525dd", mindset_state::floppy_formats);
|
||||||
FLOPPY_CONNECTOR(config, "fdc:1", pc_dd_floppies, "525dd", mindset_state::floppy_formats);
|
FLOPPY_CONNECTOR(config, m_fdco[1], pc_dd_floppies, "525dd", mindset_state::floppy_formats);
|
||||||
}
|
}
|
||||||
|
|
||||||
static INPUT_PORTS_START(mindset)
|
static INPUT_PORTS_START(mindset)
|
||||||
|
Loading…
Reference in New Issue
Block a user