From 7d246a48144f4ea48b1e3ed4f1cb38979c0594ec Mon Sep 17 00:00:00 2001 From: Curt Coder Date: Thu, 5 Jun 2014 10:19:14 +0000 Subject: [PATCH] (MESS) ql: Fixed Sandy mouse. (nw) --- src/emu/bus/ql/sandy_superqboard.c | 17 +++++++++++------ src/mess/machine/qimi.c | 4 ++-- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/emu/bus/ql/sandy_superqboard.c b/src/emu/bus/ql/sandy_superqboard.c index 367d990bf9c..4083b453991 100644 --- a/src/emu/bus/ql/sandy_superqboard.c +++ b/src/emu/bus/ql/sandy_superqboard.c @@ -39,7 +39,7 @@ const device_type SANDY_SUPERQMOUSE_512K = &device_creator oldval) + if (newval < oldval) { m_status |= ST_X_DIR; } @@ -174,10 +174,10 @@ INPUT_CHANGED_MEMBER( sandy_superqboard_t::mouse_y_changed ) INPUT_PORTS_START( sandy_superqmouse ) PORT_START("mouse_x") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqmouse_t, mouse_x_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqmouse_t, mouse_x_changed, 0) PORT_START("mouse_y") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqmouse_t, mouse_y_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, sandy_superqmouse_t, mouse_y_changed, 0) PORT_START("mouse_buttons") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON3 ) PORT_NAME("Middle Mouse Button") PORT_CODE(MOUSECODE_BUTTON3) @@ -308,7 +308,7 @@ UINT8 sandy_superqboard_t::read(address_space &space, offs_t offset, UINT8 data) { if ((offset & 0xffc0) == 0x3fc0) { - switch ((offset >> 2) & 0x03) + switch ((offset >> 2) & 0x07) { case 0: data = m_fdc->read(space, offset & 0x03); @@ -333,6 +333,11 @@ UINT8 sandy_superqboard_t::read(address_space &space, offs_t offset, UINT8 data) data = m_buttons->read() & 0x0e; data |= m_status & 0xf1; break; + + case 4: + m_status &= ~(ST_Y_INT | ST_X_INT); + check_interrupt(); + break; } } else if (offset < 0xc8000) @@ -363,7 +368,7 @@ void sandy_superqboard_t::write(address_space &space, offs_t offset, UINT8 data) { if ((offset & 0xffc0) == 0x3fc0) { - switch ((offset >> 2) & 0x03) + switch ((offset >> 2) & 0x07) { case 0: m_fdc->write(space, offset & 0x03, data); diff --git a/src/mess/machine/qimi.c b/src/mess/machine/qimi.c index 7cba51f830d..fd7288ae82f 100644 --- a/src/mess/machine/qimi.c +++ b/src/mess/machine/qimi.c @@ -74,10 +74,10 @@ INPUT_CHANGED_MEMBER( qimi_t::mouse_y_changed ) INPUT_PORTS_START( qimi ) PORT_START("mouse_x") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_t, mouse_x_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_X ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_t, mouse_x_changed, 0) PORT_START("mouse_y") - PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_PLAYER(1) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_t, mouse_y_changed, 0) + PORT_BIT( 0xff, 0x00, IPT_MOUSE_Y ) PORT_SENSITIVITY(50) PORT_KEYDELTA(5) PORT_MINMAX(0, 255) PORT_CHANGED_MEMBER(DEVICE_SELF, qimi_t, mouse_y_changed, 0) PORT_START("mouse_buttons") PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_NAME("Right Mouse Button") PORT_CODE(MOUSECODE_BUTTON2)