[Rpcemu] Improving CPU usage when idle

Tom Walker tommowalker at yahoo.co.uk
Wed Apr 8 15:22:03 EDT 2009

> I wonder if anyone can help with the following questions.
> What is the purpose of "mousehack"?  As far as I can tell, it seems to
> bypass interrupts (in keyboard.c:pollmouse()), and instead implements
> a SWI (in keyboard.c:getosmouse()).  Why?

It's so that the mouse pointer in RISC OS matches the position of the pointer in Windows/Linux. With mousehack turned off only the motion is matched - which (if the mouse isn't trapped within the window, as is done on Windows) means two pointers on screen in different locations.

> Another question: in pollmouse(), the line "if (model) return;" can be
> found.  As far as I can tell from grepping the sources, "model" is set
> to 0 if emulating an ARM7500, so why do we have special treatment for
> ARM7500s?

ARM7500 emulates a PS/2 mouse, IOMD emulates quadrature. When emulating an IOMD RISC OS refuses to use PS/2 (as it isn't there), I don't know if ARM7500 allows use of quadrature (ARM7500 emulation predates IOMD).



More information about the Rpcemu mailing list