Richard Spencer wrote:
> > It seems the the OS_Mouse SWI is not working when called
> > from C code with RPCEmu 0.88 on Windows 7.
> > _kernel_swi_regs regs;
> > while (1)
> > {
> > if (_kernel_swi(OS_Mouse, ®s, ®s) == 0)
> > {
> > printf("\004%d,%d\n\005", regs.r[0], regs.r[1]);
> > }
> > }
> The above works here using 0.8.8 on Vista with a RO5 rom image. However the
> output is 'delayed' by about a second - works much better without the VDU
> codes for some reason. Maybe this could indicate the problem?
The VDU code were because my original test was in a WIMP program and I wanted
the text to appear on the screen. I have removed them now and it made no
difference.
>If you do a *pointer what do you see while the program is running?
I was originally running the program in the WIMP so the pointer was being
shown. But I repeated the test after using F12 and typing *pointer. The result
is the same - the mouse pointer moves with the mouse as expected, but the
values returned from OS_Mouse do not vary.
> > Is there anyone who can look at and fix this problem? Or give
> > me a workaround (which does not require program changes).
> You haven't stated which version of RISC OS you're using. Some combinations
> of ROM/rpcemu model have displayed problems here - in the main they could be
> fixed by pressing F12 and typing *pointer.
Sorry I forgot those details. I’m using RISC OS 4.02 (the nearly free version
from RISC OS) and Strong ARM 128MB with 2MB VRAM.
*pointer does not seem to make a difference. The pointer seems to be working
and displaying fine in normal use anyway.
> Also, what happens if you use _swix?
I’ve rewritten the program to use _swix and I get the same result. Screen mode
800x600 256 colours always reports 640,480 for the coordinates. Note: I’ve just
tried it in a variety of screen modes and always get the same result.
Thanks for your reply,
Alan
_______________________________________________
Rpcemu mailing list
[email protected]
http://www.riscos.info/cgi-bin/mailman/listinfo/rpcemu