(mess) compis: starts to read the floppies (nw)

This commit is contained in:
cracyc 2013-08-20 03:58:23 +00:00
parent 122b5f9f86
commit 9a0bce9f91
4 changed files with 13 additions and 17 deletions

View File

@ -825,7 +825,7 @@ void i80186_cpu_device::update_interrupt_state()
logerror("Int%d priority=%d\n",IntNo,Priority);
/* if we're already servicing something at this level, don't generate anything new */
if (m_intr.in_service & (0x10 << IntNo))
if ((m_intr.in_service & (0x10 << IntNo)) && !(m_intr.ext[IntNo] & EXTINT_CTRL_SFNM))
return;
/* if there's something pending, generate an interrupt */

View File

@ -162,7 +162,7 @@ static ADDRESS_MAP_START( compis_io, AS_IO, 16, compis_state )
AM_RANGE( 0x0000, 0x0007) AM_DEVREADWRITE8("ppi8255", i8255_device, read, write, 0xff00)
AM_RANGE( 0x0080, 0x0087) AM_DEVREADWRITE8("pit8253", pit8253_device, read, write, 0xffff)
AM_RANGE( 0x0100, 0x011b) AM_DEVREADWRITE8("mm58274c", mm58274c_device, read, write, 0xffff)
AM_RANGE( 0x0280, 0x0283) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0xffff) /* 80150/80130 */
AM_RANGE( 0x0280, 0x0283) AM_DEVREADWRITE8("pic8259_master", pic8259_device, read, write, 0x00ff) /* 80150/80130 */
//AM_RANGE( 0x0288, 0x028f) AM_DEVREADWRITE_LEGACY("pit8254", compis_osp_pit_r, compis_osp_pit_w ) /* PIT 8254 (80150/80130) */
AM_RANGE( 0x0310, 0x031f) AM_READWRITE( compis_usart_r, compis_usart_w ) /* USART 8251 Keyboard */
AM_RANGE( 0x0330, 0x0333) AM_DEVREADWRITE8("upd7220", upd7220_device, read, write, 0x00ff) /* GDC 82720 PCS6:6 */
@ -373,8 +373,8 @@ static MACHINE_CONFIG_START( compis, compis_state )
/* Devices */
MCFG_PIT8253_ADD( "pit8253", compis_pit8253_config )
MCFG_PIT8254_ADD( "pit8254", compis_pit8254_config )
MCFG_PIC8259_ADD( "pic8259_master", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, READ8(compis_state, get_slave_ack) )
MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
MCFG_PIC8259_ADD( "pic8259_master", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL )
//MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
MCFG_I8255_ADD( "ppi8255", compis_ppi_interface )
MCFG_UPD7220_ADD("upd7220", XTAL_4_433619MHz/2, hgdc_intf, upd7220_map) //unknown clock
MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)
@ -414,8 +414,8 @@ static MACHINE_CONFIG_START( compis2, compis_state )
/* Devices */
MCFG_PIT8253_ADD( "pit8253", compis_pit8253_config )
MCFG_PIT8254_ADD( "pit8254", compis_pit8254_config )
MCFG_PIC8259_ADD( "pic8259_master", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, READ8(compis_state, get_slave_ack) )
MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
MCFG_PIC8259_ADD( "pic8259_master", DEVWRITELINE("maincpu", i80186_cpu_device, int0_w), VCC, NULL )
//MCFG_PIC8259_ADD( "pic8259_slave", DEVWRITELINE("pic8259_master", pic8259_device, ir2_w), GND, NULL )
MCFG_I8255_ADD( "ppi8255", compis_ppi_interface )
MCFG_UPD7220_ADD("upd7220", XTAL_4_433619MHz/2, hgdc_intf, upd7220_map) //unknown clock
MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics)

View File

@ -133,7 +133,7 @@ public:
m_8253(*this, "pit8253"),
m_8254(*this, "pit8254"),
m_8259m(*this, "pic8259_master"),
m_8259s(*this, "pic8259_slave"),
// m_8259s(*this, "pic8259_slave"),
m_8255(*this, "ppi8255"),
m_centronics(*this, "centronics"),
m_uart(*this, "uart"),
@ -146,7 +146,7 @@ public:
required_device<pit8253_device> m_8253;
required_device<pit8254_device> m_8254;
required_device<pic8259_device> m_8259m;
required_device<pic8259_device> m_8259s;
// required_device<pic8259_device> m_8259s;
required_device<i8255_device> m_8255;
required_device<centronics_device> m_centronics;
required_device<i8251_device> m_uart;
@ -165,7 +165,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(compis_usart_rxready);
// DECLARE_WRITE_LINE_MEMBER(compis_pic8259_master_set_int_line);
// DECLARE_WRITE_LINE_MEMBER(compis_pic8259_slave_set_int_line);
DECLARE_READ8_MEMBER(get_slave_ack);
// DECLARE_READ8_MEMBER(get_slave_ack);
// i186_state m_i186;
TYP_COMPIS m_compis;
UINT8 *m_p_videoram;

View File

@ -173,13 +173,9 @@ void compis_state::compis_fdc_tc(int state)
void compis_state::fdc_irq(bool state)
{
/* No interrupt requests if iSBX-218A has DMA enabled */
if (!ioport("DSW1")->read() && state)
if (!ioport("DSW1")->read())
{
if (m_8259m)
{
m_8259m->ir0_w(1);
m_8259m->ir0_w(0);
}
m_8259m->ir0_w(state);
}
}
@ -1276,7 +1272,7 @@ WRITE_LINE_MEMBER( compis_state::compis_pic8259_slave_set_int_line )
{
if (m_8259m)
m_8259m->ir2_w(state);
}*/
}
READ8_MEMBER( compis_state::get_slave_ack )
{
@ -1284,7 +1280,7 @@ READ8_MEMBER( compis_state::get_slave_ack )
return m_8259s->inta_r();
}
return 0;
}
}*/
READ8_MEMBER(compis_state::compis_irq_callback)