Entry | |
---|---|
R0 | 0 (reason code) |
R1 | Pointer device number |
Exit (relative pointing device) | |
---|---|
R0 | Preserved |
R1 | Preserved |
R2 | X movement since last call |
R3 | Y movement since last call |
R4 | Preserved |
Exit (absolute pointing device) | |
---|---|
R0 | Preserved |
R1 | Preserved |
R2 | X position |
R3 | Y position |
R4 | “Abso” (&6f736241) |
This vector is called by the Kernel every VSync to obtain the latest pointer movement.
The driver for the specified device type should intercept the call and return the movement of the device since the previous call of this reason code, otherwise the call should be passed on.
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.
For absolute pointing devices, R2 and R3 must specify the new position in OS units. This mode of response is supported by RISC OS 5, and must not be used on other OS versions (the caller won’t be expecting R4 to be changed).
The kernel updates the pointer position with the returned values. The driver should issue KeyV requests for mouse buttons they provide.