mirror of
https://github.com/holub/mame
synced 2025-10-05 16:50:57 +03:00
alphatro: try adding an fdc irq register (nw)
This commit is contained in:
parent
1cf456c8e8
commit
08af3d9f61
@ -84,11 +84,13 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(port20_w);
|
||||
DECLARE_READ8_MEMBER(port30_r);
|
||||
DECLARE_WRITE8_MEMBER(port30_w);
|
||||
DECLARE_READ8_MEMBER(portf0_r);
|
||||
DECLARE_WRITE8_MEMBER(portf0_w);
|
||||
DECLARE_INPUT_CHANGED_MEMBER(alphatro_break);
|
||||
DECLARE_WRITE_LINE_MEMBER(txdata_callback);
|
||||
DECLARE_WRITE_LINE_MEMBER(write_usart_clock);
|
||||
DECLARE_WRITE_LINE_MEMBER(hrq_w);
|
||||
DECLARE_WRITE_LINE_MEMBER(fdc_irq_w);
|
||||
DECLARE_PALETTE_INIT(alphatro);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_c);
|
||||
TIMER_DEVICE_CALLBACK_MEMBER(timer_p);
|
||||
@ -103,7 +105,7 @@ private:
|
||||
u8 m_cass_data[4];
|
||||
u8 m_port_10, m_port_20, m_port_30, m_port_f0;
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
bool m_cassold, m_fdc_irq;
|
||||
virtual void machine_start() override;
|
||||
virtual void machine_reset() override;
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
|
||||
@ -249,6 +251,11 @@ WRITE8_MEMBER( alphatro_state::port30_w )
|
||||
m_port_30 = data;
|
||||
}
|
||||
|
||||
READ8_MEMBER( alphatro_state::portf0_r )
|
||||
{
|
||||
return m_fdc_irq << 6;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( alphatro_state::portf0_w)
|
||||
{
|
||||
if ((data & 0x1) && !(m_port_f0))
|
||||
@ -396,7 +403,7 @@ static ADDRESS_MAP_START( alphatro_io, AS_IO, 8, alphatro_state )
|
||||
AM_RANGE(0x60, 0x68) AM_DEVREADWRITE("dmac", i8257_device, read, write)
|
||||
// 8259 PIT
|
||||
//AM_RANGE(0x70, 0x72) AM_DEVREADWRITE("
|
||||
AM_RANGE(0xf0, 0xf0) AM_DEVREAD("fdc", upd765a_device, msr_r) AM_WRITE(portf0_w)
|
||||
AM_RANGE(0xf0, 0xf0) AM_READ(portf0_r) AM_WRITE(portf0_w)
|
||||
AM_RANGE(0xf8, 0xf8) AM_DEVREADWRITE("fdc", upd765a_device, fifo_r, fifo_w)
|
||||
AM_RANGE(0xf9, 0xf9) AM_DEVREAD("fdc", upd765a_device, msr_r)
|
||||
ADDRESS_MAP_END
|
||||
@ -553,6 +560,7 @@ void alphatro_state::machine_reset()
|
||||
m_cass_data[0] = m_cass_data[1] = m_cass_data[2] = m_cass_data[3] = 0;
|
||||
m_cass_state = 0;
|
||||
m_cassold = 0;
|
||||
m_fdc_irq = 0;
|
||||
m_usart->write_rxd(0);
|
||||
m_beep->set_state(0);
|
||||
}
|
||||
@ -603,6 +611,11 @@ TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::timer_p)
|
||||
}
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(alphatro_state::fdc_irq_w)
|
||||
{
|
||||
m_fdc_irq = state ? false : true;
|
||||
}
|
||||
|
||||
WRITE_LINE_MEMBER(alphatro_state::hrq_w)
|
||||
{
|
||||
m_maincpu->set_input_line(INPUT_LINE_HALT, state);
|
||||
@ -639,6 +652,7 @@ static MACHINE_CONFIG_START( alphatro )
|
||||
|
||||
/* Devices */
|
||||
MCFG_UPD765A_ADD("fdc", true, true)
|
||||
MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(alphatro_state, fdc_irq_w))
|
||||
MCFG_UPD765_DRQ_CALLBACK(DEVWRITELINE("dmac", i8257_device, dreq2_w))
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:0", alphatro_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
MCFG_FLOPPY_DRIVE_ADD("fdc:1", alphatro_floppies, "525dd", floppy_image_device::default_floppy_formats)
|
||||
|
Loading…
Reference in New Issue
Block a user