Skip to content

mouse emulation

LGB edited this page Mar 20, 2016 · 5 revisions

Mouse emulation in Xep128

Mouse support on Enterprise has a long and complicated history. There were multiple tries, but honestly, I feel, nothing was too popular, and mouse wasn't used by EP software too much either with some notable exceptions. However, nowadays SymbOS raised the interests for mouse, also more software projects started or even found (lost in the past, like EGI) to support mouse. Since the confusing world of EP+mouse and lack of the original solutions available currently, a modern solution is created which can even handle PS/2 mouses and still provide the compatibility for old software. This is called EnterMice.

You can read about more on the mouse+EP history and lots of things on EnterMice itself here:

Xep128 tries to emulate an EnterMice, which itself tries to provide compatibility for old mouse solutions as well (like BoxSoft, again, read the page mentioned above to get more information).

Setting mouse emulation mode

Emulated mouse mode can be set with three different ways (in these examples mode "1" is requested):

  • Using command line switch: -mousemode 1
  • In configuration file, with a line like this: mousemode = 1
  • In :XEP EXOS command, run-time: :XEP MOUSE 1

You can always query the current mouse mode with :XEP command: :XEP MOUSE

About the details on mouse modes, see the next chapter.

Emulated mouse modes

Note: These mouse mode numbers are just Xep128 identifiers. They haven't got any meaning otherwise. Also, some of these modes are quite useless and may be not even supported by any software on the Enterprise.

  • mode 1
  • about the original BoxSoft mouse
  • 4 nibble (2 byte) protocol
  • nibble counter automatically warps around (no zero nibble answer!)
  • no watchdog (?) but Xep128 implements one (as an emergency) with 9000usec of time-out
  • uses J-columns
  • mode 2
  • 8 nibble (4 byte) protocol, "extended MSX"
  • nibble counter never warps around, readings stops after last nibble giving zero nibble forever (until watchdog expires)
  • watchdog with 3000usec (triggered/stopped by RTS change)
  • uses J-columns
  • wheel is supported, but for whole byte as a signed value, no horizontal / Z separation for two nibbles
  • extended mouse buttons are supported
  • mode 3 (this is not the standard EnterMice, use mode 6 for that on K-columns!)
  • 16 nibble (8 byte) protocol, "EnterMice"
  • nibble counter never warps around, readings stops after last nibble giving zero nibble forever (until watchdog expires)
  • watchdog with 1500usec (triggered/stopped by RTS change)
  • uses J-columns (note: mode 6 is about the same but with K-columns, which should be the normal case!)
  • wheel + extended buttons like with mode 2
  • EnterMice related extra information (+ 4 bytes = + 8 nibbles)
  • mode 4
  • like mode 1, but uses K-columns instead of J.
  • mode 5
  • like mode 2, but uses K-columns instead of J.
  • mode 6
  • like mode 3, but uses K-columns instead of J.
  • as far as I can tell, this should be the standard EnterMice native mode
You can’t perform that action at this time.