Tuesday, January 18, 2011

Programs are running, for a while at least.

The stand-alone RPC emulator has taken a couple of steps forward in the last few days.

Still some problems!

The TEQP implementation was wrongly checking the future processor mode rather than the current one, to see which flags should be affected.

Once that was fixed, the next problem was dealing with pre-fetch aborts, where the ARM code scanner caused a segmentation violation reading the memory where code would be mapped in by the OS's lazy address decoding.

There are still problems with caching (see picture); I've missed something that should be clearing the instruction cache between task swaps...

In addition to stability, I need to:

  • Write a module to handle the mouse input (I've done a hack to intercept OS_Mouse calls, but the RO pointer doesn't move with it, just changes shape while staying motionless).  The X interface passes on absolute coordinates, like a tablet, rather than relative movement, like a mouse.
  • Sort out keyboard input (it's a bit hit and miss if a keypress appears when you're typing quickly); I think RISC OS is debouncing the input, so modifying the timing of keyboard events might sort that out.
  • Intercept more SWIs; networking ones might be a good start.
  • More graphics modes (limited currently to 640x480x256), maybe change the RISC OS mode when resizing the X window.
What ROLF gets from all this

When it works, ROLF should gain:
  • a bit of publicity
  • a test platform for running RISC OS programs under ROLF (I'll be able to examine the behaviour of SWIs under RISC OS when implementing them in the compatibility layer
  • an X windows front end for a variation on the ROLF Wimp server which will make use of the work done on graphic card acceleration to display the frame buffer (while still remaining compatible with simple frame buffer implementations)


Anonymous Anonymous said...

I know its not the same as what you are working on but from what I can tell it may be an idea to have a look at :
From the looks of it they are rewriting large chunks of RISC OS

10:53 pm, January 23, 2011  

Post a Comment

Subscribe to Post Comments [Atom]

<< Home