Richard Spencer wrote on Friday, September 02, 2011 4:35 PM
[email protected] wrote:
> A fix would be to add:
>
> /* Get actual switch number of OS_CallASWI and OS_CallASWIR12 */
> if (templ == 0x6f) templ=armregs[10] & 0xdffff;
> else if (templ == 0x71) templ = armregs[12] & 0xdffff;
Wouldn't that alter/disable OS_CallASWI(R12) for all cases? I'd prefer to
just trap OS_Mouse in order to prevent unintended side effects:
if (templ == 0x6f && (armregs[10] & 0xdffff) == 0x1c) templ=0x1c;
else if (templ == 0x71 && (armregs[12] & 0xdffff) == 0x1c) templ = 0x1c;
(NB. Untested.)
That's what I thought as well at first, but the same bug will occur for any
of the SWIs that RPCEmu intercepts so I
believe it is better that the same is done for them all so RPCEmu can always
process them if it wants to.
E.g. Using my code the OS_Word call to get the mouse position is also
catered for.
[snip code]
Regards,
Alan
_______________________________________________
Rpcemu mailing list
[email protected]
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu