mirror of
https://github.com/holub/mame
synced 2025-07-06 18:39:28 +03:00
m20: Eliminate HOLD_LINE (nw)
This commit is contained in:
parent
928b8f61d2
commit
db698f6c0a
@ -120,6 +120,7 @@ private:
|
|||||||
|
|
||||||
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
DECLARE_FLOPPY_FORMATS( floppy_formats );
|
||||||
uint16_t viack_r();
|
uint16_t viack_r();
|
||||||
|
uint16_t nviack_r();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -226,8 +227,7 @@ WRITE_LINE_MEMBER( m20_state::kbd_clock_tick_w )
|
|||||||
|
|
||||||
WRITE_LINE_MEMBER( m20_state::timer_tick_w )
|
WRITE_LINE_MEMBER( m20_state::timer_tick_w )
|
||||||
{
|
{
|
||||||
/* Using HOLD_LINE is not completely correct:
|
/* The output of the 8253 is connected to a 74LS74 flop chip.
|
||||||
* The output of the 8253 is connected to a 74LS74 flop chip.
|
|
||||||
* The output of the flop chip is connected to NVI CPU input.
|
* The output of the flop chip is connected to NVI CPU input.
|
||||||
* The flop is reset by a 1:8 decoder which compares CPU ST0-ST3
|
* The flop is reset by a 1:8 decoder which compares CPU ST0-ST3
|
||||||
* outputs to detect an interrupt acknowledge transaction.
|
* outputs to detect an interrupt acknowledge transaction.
|
||||||
@ -236,7 +236,8 @@ WRITE_LINE_MEMBER( m20_state::timer_tick_w )
|
|||||||
*/
|
*/
|
||||||
if(m_apb)
|
if(m_apb)
|
||||||
m_apb->nvi_w(state);
|
m_apb->nvi_w(state);
|
||||||
m_maincpu->set_input_line(z8001_device::NVI_LINE, state ? HOLD_LINE /*ASSERT_LINE*/ : CLEAR_LINE);
|
if(state)
|
||||||
|
m_maincpu->set_input_line(z8001_device::NVI_LINE, ASSERT_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -719,11 +720,9 @@ void m20_state::m20_io(address_map &map)
|
|||||||
|
|
||||||
map(0x80, 0x87).rw(m_i8255, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
map(0x80, 0x87).rw(m_i8255, FUNC(i8255_device::read), FUNC(i8255_device::write)).umask16(0x00ff);
|
||||||
|
|
||||||
map(0xa1, 0xa1).rw(m_kbdi8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
map(0xa0, 0xa3).rw(m_kbdi8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||||
map(0xa3, 0xa3).rw(m_kbdi8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
|
||||||
|
|
||||||
map(0xc1, 0xc1).rw(m_ttyi8251, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
|
map(0xc0, 0xc3).rw(m_ttyi8251, FUNC(i8251_device::read), FUNC(i8251_device::write)).umask16(0x00ff);
|
||||||
map(0xc3, 0xc3).rw(m_ttyi8251, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
|
|
||||||
|
|
||||||
map(0x120, 0x127).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
map(0x120, 0x127).rw("pit8253", FUNC(pit8253_device::read), FUNC(pit8253_device::write)).umask16(0x00ff);
|
||||||
|
|
||||||
@ -737,6 +736,12 @@ uint16_t m20_state::viack_r()
|
|||||||
return m_i8259->acknowledge()<<1;
|
return m_i8259->acknowledge()<<1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t m20_state::nviack_r()
|
||||||
|
{
|
||||||
|
m_maincpu->set_input_line(z8001_device::NVI_LINE, CLEAR_LINE);
|
||||||
|
return 0xffff;
|
||||||
|
}
|
||||||
|
|
||||||
WRITE_LINE_MEMBER(m20_state::int_w)
|
WRITE_LINE_MEMBER(m20_state::int_w)
|
||||||
{
|
{
|
||||||
if(m_apb && !m_apb->halted())
|
if(m_apb && !m_apb->halted())
|
||||||
@ -794,6 +799,7 @@ void m20_state::m20(machine_config &config)
|
|||||||
m_maincpu->set_addrmap(AS_DATA, &m20_state::m20_data_mem);
|
m_maincpu->set_addrmap(AS_DATA, &m20_state::m20_data_mem);
|
||||||
m_maincpu->set_addrmap(AS_IO, &m20_state::m20_io);
|
m_maincpu->set_addrmap(AS_IO, &m20_state::m20_io);
|
||||||
m_maincpu->viack().set(FUNC(m20_state::viack_r));
|
m_maincpu->viack().set(FUNC(m20_state::viack_r));
|
||||||
|
m_maincpu->nviack().set(FUNC(m20_state::nviack_r));
|
||||||
|
|
||||||
RAM(config, RAM_TAG).set_default_size("160K").set_default_value(0).set_extra_options("128K,192K,224K,256K,384K,512K");
|
RAM(config, RAM_TAG).set_default_size("160K").set_default_value(0).set_extra_options("128K,192K,224K,256K,384K,512K");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user