Maybe I am asking too many questions, but I would ask anyway
For my previous question, I still don't know how to change the trackpoint attributes on the fly, but I can change it in the firmware, and it is fine for now...
// sensitivity
rcx = ps2_host_send(0xE2);
rcx = ps2_host_send(0x81);
rcx = ps2_host_send(0x4A);
rcx = ps2_host_send(0xFF);
// speed (transfer function upper plateau speed)
rcx = ps2_host_send(0xE2);
rcx = ps2_host_send(0x81);
rcx = ps2_host_send(0x60);
rcx = ps2_host_send(0xFF);
#ifdef TP_PRESS_TO_SELECT
// enable press-to-select
rcx = ps2_host_send(0xE2);
rcx = ps2_host_send(0x47);
rcx = ps2_host_send(0x2C);
rcx = ps2_host_send(0x01);
#endif
And my question today is that I would like to swap the x and y axes for trackpoint. Of course for a reason: rotate the trackpoint module 90 degree can make it fit better to the space available for a 1.5x key
And there are several ways to do it:
1. swap the physical pins of the trackpoint module, there are 4 pins connect to the controller, and they should be gnd, x, y, z, unfortunately I don't know which one is which
2. swap the axes in the firmware:
2.1 swap with the trackpoint command: E2 81 2C 40
2.2 modify the ps2_mouse.c code and swap x y
3. swap in the OS level, in my case, I can swap axes using evdev driver in X Windows
My question is that the swapxy command (2.1) in trackpoint doesn't work. In the engineering specification, one may invert x (E2 81 2C 08), y (E2 81 2C 10), z, and swapxy. I can successfully invert x and/or y, but I cannot swap x and y, they just stay unchanged. Anyone know what might be the cause?
I prefer the firmware based method but don't want to change the original code, because this would ruin the x, y readings for other ps2 mouse. I can successfully use the X Windows settings, but would rather not use it, because it would not be portable when I use another computer.
UPDATE:
I re-read the specification and found that actually the "swapxy" command is not there. That particular bit is left unused (per Appendix A). Thus it is not possible to swap the x y axes using trackpoint command. Pity.