summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa/com.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2018-09-19 20:00:56 +1000
committer Vas Crabb <vas@vastheman.com>2018-09-19 20:00:56 +1000
commitb5758f5273e030845f94678ae8a4302c5d3343c2 (patch)
tree7492b13381400e7925e6271e5d60b97aa078dc56 /src/devices/bus/isa/com.cpp
parent56fb60aa22dce853baa661fbce2a4187e9da0459 (diff)
Re-write serial mouse support:
* Separate Microsoft 2-button mouse and Logitech 3-button Microsoft-compatible mouse * Add Microsoft wheel mouse * Make Mouse Systems mouse behave more realistically * Add Mouse Systems "rotatable" mouse * Simplify code and eliminate timers (nw) X/Y translation and buttons works for all devices. The wheel on the wheel mouse seems to be transmitting the right data, and CuteMouse detects the wheel as being present, but no software seems to support it properly. Software supporting the Mouse Systems "rotatable" mouse is very rare - typically people just set the DIP switches on their M-1 for "non-rotatable" mode. A standard mouse driver will see the "rotatable" mouse moving two mickeys for each count, and move eratically on rotation. The "rotable" mouse is poorly tested due to lack of software. (nw) MAME doesn't have a proper input type for a mouse wheel, and it doesn't seem to be possible to map the host mouse wheel to an axis when configuring inputs. The default mapping ends up assigining the wheel or rotation to one of the translation axes, which is very unhelpful.
Diffstat (limited to 'src/devices/bus/isa/com.cpp')
-rw-r--r--src/devices/bus/isa/com.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/devices/bus/isa/com.cpp b/src/devices/bus/isa/com.cpp
index 57393a52500..bd2b500d611 100644
--- a/src/devices/bus/isa/com.cpp
+++ b/src/devices/bus/isa/com.cpp
@@ -8,18 +8,24 @@
#include "emu.h"
#include "com.h"
+
+#include "bus/rs232/hlemouse.h"
+#include "bus/rs232/null_modem.h"
#include "bus/rs232/rs232.h"
-#include "bus/rs232/ser_mouse.h"
+#include "bus/rs232/sun_kbd.h"
#include "bus/rs232/terminal.h"
-#include "bus/rs232/null_modem.h"
#include "machine/ins8250.h"
static void isa_com(device_slot_interface &device)
{
- device.option_add("microsoft_mouse", MSFT_SERIAL_MOUSE);
- device.option_add("msystems_mouse", MSYSTEM_SERIAL_MOUSE);
+ device.option_add("microsoft_mouse", MSFT_HLE_SERIAL_MOUSE);
+ device.option_add("logitech_mouse", LOGITECH_HLE_SERIAL_MOUSE);
+ device.option_add("wheel_mouse", WHEEL_HLE_SERIAL_MOUSE);
+ device.option_add("msystems_mouse", MSYSTEMS_HLE_SERIAL_MOUSE);
+ device.option_add("rotatable_mouse", ROTATABLE_HLE_SERIAL_MOUSE);
device.option_add("terminal", SERIAL_TERMINAL);
device.option_add("null_modem", NULL_MODEM);
+ device.option_add("sun_kbd", SUN_KBD_ADAPTOR);
}
@@ -55,7 +61,7 @@ MACHINE_CONFIG_START(isa8_com_device::device_add_mconfig)
uart3.out_rts_callback().set("serport3", FUNC(rs232_port_device::write_rts));
uart3.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_2));*/
- MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "microsoft_mouse" )
+ MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "logitech_mouse" )
MCFG_RS232_RXD_HANDLER(WRITELINE(uart0, ins8250_uart_device, rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(uart0, ins8250_uart_device, dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE(uart0, ins8250_uart_device, dsr_w))
@@ -156,7 +162,7 @@ MACHINE_CONFIG_START(isa8_com_at_device::device_add_mconfig)
uart3.out_dtr_callback().set("serport3", FUNC(rs232_port_device::write_dtr));
uart3.out_rts_callback().set("serport3", FUNC(rs232_port_device::write_rts));
uart3.out_int_callback().set(FUNC(isa8_com_device::pc_com_interrupt_2));*/
- MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "microsoft_mouse" )
+ MCFG_DEVICE_ADD( "serport0", RS232_PORT, isa_com, "logitech_mouse" )
MCFG_RS232_RXD_HANDLER(WRITELINE(uart0, ins8250_uart_device, rx_w))
MCFG_RS232_DCD_HANDLER(WRITELINE(uart0, ins8250_uart_device, dcd_w))
MCFG_RS232_DSR_HANDLER(WRITELINE(uart0, ins8250_uart_device, dsr_w))