Entry (relative pointing device) | |
---|---|
R0 | 3 (reason code) |
R1 | Pointer device number |
R2 | Change in X position |
R3 | Change in Y position |
R4 | 0 |
Entry (absolute pointing device) | |
---|---|
R0 | 3 (reason code) |
R1 | Pointer device number |
R2 | X position |
R3 | Y position |
R4 | “Abso” (&6f736241) |
This vector is called by the pointer driver to notify the kernel when a pointer movement is detected.
Once this call has been received, the kernel will cease polling the driver via PointerV 0. Therefore if a driver issues PointerV 3 once, it must continue to issue it for the rest of its lifetime, or at least until another device is selected via PointerV 2.
For relative pointing devices, movements are signed 32 bit quantities. The values will be scaled by the kernel (by the configured mouse step) and then added on to the current position. Note that the OS does not require R4 to be zero, but it’s recommended to set it to that value to ensure there’s no chance of the call being mistaken for an absolute position update (or any other kind of update mode that may be added in the future).
For absolute pointing devices, R2 and R3 must specify the new position in OS units.
This particular reason code is only available from RISC OS 5 onwards.