diff options
author | 2018-09-19 20:00:56 +1000 | |
---|---|---|
committer | 2018-09-19 20:00:56 +1000 | |
commit | b5758f5273e030845f94678ae8a4302c5d3343c2 (patch) | |
tree | 7492b13381400e7925e6271e5d60b97aa078dc56 /src/devices/bus/isa/com.cpp | |
parent | 56fb60aa22dce853baa661fbce2a4187e9da0459 (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.cpp | 18 |
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)) |