I will better study the XEP code.
If I understand well, the "mechanics" of your code is to read the mouse and keyboard PC caption, and put the appropriate information on input ports B6h and B5h. Then the EP emulator reads the ports like on the real machine.
Making your emulators "EnterMice-movement compatible" is as easy as to clone bit 0(J column) on bit 1(K column) of input port B6h.
The buttons are a little more complex because the Neos mouse use only one button, the Right one, as main button, and you have put both buttons as main.
Making the EnterMice retro-compatible with the Boxsoft adapter(Boxsoft mode), Pear has implemented a secondary button, at the Left.
EnterMice on the other side has the main and secondary buttons put like on a PC. The mouse driver reads the Main and Secondary button depending on the mode selected, but it must be also done on the hardware(your emulator input.c I/O code). No problem as the Right button is always at the L column row 0. The Left is at the J colum on the Boxsoft and on the K column on the EnterMice.
As you say, by the moment there isn't any program that use more than one mouse button so, the fast solution is cloning bit 2(column L) and 1(column K) on row 0 of port B6h, similar to what I've said for the movement.
But Entermice has been made compatible with Prodatron's Extended MSX mouse protocol, and soon the port of SymbOS for EP will use the five mouse buttons and wheel that a PS/2 mouse can provide....
----------
Now I only want to know why that jumpy movement with the actual mouse driver version. On real hardware it works, so it must be a little difference on sync.
---------
Useful? I don't mind if it is... Fun is what I look for... The fun of making things work properly.