Jon, I've been properly playing with the VIDC translation this evening. First impressions - it's very good
I had prepared a set of 'simple' VIDC tests a while ago (not testing CR though, more on that in a sec), the tests poked individual registers here and there to see the response. Overall the translation passed very well - no internal errors, and most registers did
approximately what they should.
The palette registers appear perfect, but something is not 100% correct with the display registers - for example, if I select Mode 13 on the RPC (on a TV monitor) and then I poke the Mode 13 definition into the VIDC1 registers (excluding CR), the whole screen shifts to the right slightly ~1 pixel. Not the end of the world by any means, but I'll need to take a look at your translation code tomorrow
Finally, the CR. This really isn't working right. If I poke Mode 13 values into VIDC 1 registers and I include CR in my list, then the screen goes crazy... I monitored the refresh rate from BASIC, using WAIT commands, with the following result: RPC Mode 13 = 50.1 Hz, but after poking the Mode 13 definition with CR, I get 16.1 Hz ! I'm sure it just needs a little tweak... so I'll look at this too...
As the palette registers are translating well - I decided, just for fun, to run a few of my old Arc 'Raster' routines, which hammer VIDC1 and IOC, redefining the palette on every raster. These have *never* worked on the RiscPC. IOMD overlaps the IOC addresses for Timer1 - which I'm using, so no problem there, but obviously VIDC20 isn't naturally mapped to VIDC1, so that'll be the big test of the ADFFS translator.
Result - 100% perfect Raster bars, under VIDC1 translation! This is particularly impressive as the palette is redefined on every raster, and there is absolutely no flicker or 'overflow' onto the next line.
I then tried running my !RasterMan demo. This uses a highly optimised palette redefinition system, changing 6 colours on every raster line... but sadly this didn't work under translation. No crash though - just no colours. As RasterMan uses STMIA R0!,{R1-R6} to set the 6 palette registers on each line (whereas the previous raster code used STR) - I expect there's a problem with STM in the translator? Is this supported?
Steve