diff --git a/src/devices/bus/hp_dio/hp98265a.cpp b/src/devices/bus/hp_dio/hp98265a.cpp index 15a50f84549..baafc4e14eb 100644 --- a/src/devices/bus/hp_dio/hp98265a.cpp +++ b/src/devices/bus/hp_dio/hp98265a.cpp @@ -204,7 +204,7 @@ READ16_MEMBER(dio16_98265a_device::io_r) ret = m_spc->data_read(); break; case 3: - ret = 0xe8; /* Flush/Configuration register */ + ret = 0x88; /* Flush/Configuration register */ break; } LOG("io_r: offset=%02X ret=%02X\n",offset, ret); diff --git a/src/devices/bus/hp_dio/hp98644.cpp b/src/devices/bus/hp_dio/hp98644.cpp index 4147b583c11..004da09b55e 100644 --- a/src/devices/bus/hp_dio/hp98644.cpp +++ b/src/devices/bus/hp_dio/hp98644.cpp @@ -88,7 +88,7 @@ static INPUT_PORTS_START(hp98644_port) PORT_DIPSETTING(0x00, DEF_STR(Off)) PORT_DIPSETTING(REG_SWITCHES_MODEM_EN, DEF_STR(On)) - PORT_DIPNAME(REG_SWITCHES_INT_LEVEL_MASK << REG_SWITCHES_INT_LEVEL_SHIFT, 0x02, "Interrupt level") + PORT_DIPNAME(REG_SWITCHES_INT_LEVEL_MASK << REG_SWITCHES_INT_LEVEL_SHIFT, 0x02 << REG_SWITCHES_INT_LEVEL_SHIFT, "Interrupt level") PORT_DIPSETTING(0 << REG_SWITCHES_INT_LEVEL_SHIFT, "3") PORT_DIPSETTING(1 << REG_SWITCHES_INT_LEVEL_SHIFT, "4") PORT_DIPSETTING(2 << REG_SWITCHES_INT_LEVEL_SHIFT, "5") diff --git a/src/devices/bus/hp_dio/human_interface.cpp b/src/devices/bus/hp_dio/human_interface.cpp index 61ca1531fb6..6bccebbd27f 100644 --- a/src/devices/bus/hp_dio/human_interface.cpp +++ b/src/devices/bus/hp_dio/human_interface.cpp @@ -155,7 +155,8 @@ WRITE_LINE_MEMBER(human_interface_device::reset_in) void human_interface_device::update_gpib_irq() { - irq3_out((m_gpib_irq_line || (m_ppoll_sc & PPOLL_IR)) ? ASSERT_LINE : CLEAR_LINE); + irq3_out((m_gpib_irq_line || + ((m_ppoll_sc & (PPOLL_IR|PPOLL_IE)) == (PPOLL_IR|PPOLL_IE))) ? ASSERT_LINE : CLEAR_LINE); } WRITE_LINE_MEMBER(human_interface_device::gpib_irq) @@ -171,11 +172,13 @@ WRITE_LINE_MEMBER(human_interface_device::gpib_dreq) WRITE8_MEMBER(human_interface_device::ieee488_dio_w) { + if (m_ieee488->atn_r() || m_ieee488->eoi_r()) + return; + if ((m_ppoll_mask & ~data) && (m_ppoll_sc & PPOLL_IE)) { - LOG("%s: PPOLL triggered\n"); - m_ieee488->host_atn_w(1); - m_ieee488->host_eoi_w(1); - m_ppoll_sc |= PPOLL_IR; + LOG("%s: parallel poll triggered\n", __func__); + if (m_ppoll_sc & PPOLL_IE) + m_ppoll_sc |= PPOLL_IR; update_gpib_irq(); } } @@ -202,13 +205,14 @@ WRITE8_MEMBER(human_interface_device::gpib_w) if (m_ppoll_sc & PPOLL_IE) { LOG("%s: start parallel poll\n", __func__); - m_ieee488->host_atn_w(0); - m_ieee488->host_eoi_w(0); + ieee488_dio_w(space, 0, m_ieee488->dio_r(space, 0)); } break; case 4: m_ppoll_mask = data; break; + default: + break; } LOG("gpib_w: %s %02X = %02X\n", machine().describe_context().c_str(), offset, data); } diff --git a/src/devices/bus/hp_hil/hlekbd.cpp b/src/devices/bus/hp_hil/hlekbd.cpp index a12ea773f67..1776a59ca8a 100644 --- a/src/devices/bus/hp_hil/hlekbd.cpp +++ b/src/devices/bus/hp_hil/hlekbd.cpp @@ -250,7 +250,7 @@ INPUT_PORTS_START( itf_basic ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F2") PORT_CODE(KEYCODE_F2) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F1") PORT_CODE(KEYCODE_F1) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Stop") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Stop") PORT_CODE(KEYCODE_RWIN) PORT_CHAR(UCHAR_MAMEKEY(RWIN)) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Print/Enter") // keycodes a0..af @@ -283,8 +283,8 @@ INPUT_PORTS_START( itf_basic ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{') PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('\\') PORT_CHAR('|') - PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert Char") - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete Char") + PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Insert Char") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT)) + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Delete Char") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL)) // keycodes d0..df PORT_START("COL5") @@ -295,7 +295,7 @@ INPUT_PORTS_START( itf_basic ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR('\'') PORT_CHAR('"') PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Return") PORT_CODE(KEYCODE_ENTER) PORT_CHAR(13) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Home") PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME)) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Prev") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Prev") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(PGUP)) // keycodes e0..ef PORT_START("COL6") @@ -306,7 +306,7 @@ INPUT_PORTS_START( itf_basic ) PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Select") PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_UNUSED ) - PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Next") + PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Next") PORT_CODE(KEYCODE_PGDN) PORT_CHAR(UCHAR_MAMEKEY(PGDN)) // keycodes f0..ff PORT_START("COL7") @@ -369,7 +369,7 @@ INPUT_PORTS_START( itf_basic ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F10") PORT_CODE(KEYCODE_F10) PORT_CHAR(UCHAR_MAMEKEY(F10)) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F11") PORT_CODE(KEYCODE_F11) PORT_CHAR(UCHAR_MAMEKEY(F11)) - PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') + PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F9") PORT_CODE(KEYCODE_F9) PORT_CHAR(UCHAR_MAMEKEY(F9)) PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB_PAD) PORT_CHAR(9) PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("F12") PORT_CODE(KEYCODE_F12) PORT_CHAR(UCHAR_MAMEKEY(F12)) diff --git a/src/devices/video/catseye.cpp b/src/devices/video/catseye.cpp index c79e3b246f5..bd3cfa66d93 100644 --- a/src/devices/video/catseye.cpp +++ b/src/devices/video/catseye.cpp @@ -878,6 +878,10 @@ READ16_MEMBER(catseye_device::ctrl_r) } switch(offset) { + case TOPCAT_REG_WMOVE_ACTIVE: + ret = 0; + break; + case TOPCAT_REG_ENABLE_BLINK_PLANES: ret = m_blink_enable; break;