Date : Fri, 08 May 2009 08:42:46 +0100
From : info@... (Sprow)
Subject: Latest version of 65Tube
In article <090508015501@...>,
Jonathan Graham Harston <jgh@...> wrote:
> Does anybody know what the latest version of 65Tube is? I have an
> archive which a ReadMe file in that declares itself to be v1.60,
> but the 65Tube module declares itself to be v1.20.
I have 1.20 too.
The patch in the wild is to stop it peaking/poking page 0 variables (which
were write protected from user mode in RISC OS 4+), the pokes can all be
easily replaced with OS_Byte calls so since page 0 variables aren't in the
same place on the ARM CoPro you'd need to change them anyway.
There are a handful (literally, 20 or so) of functions expecting flags to be
preserved. Since most of the 6502Tube runs in user mode you could just leave
the
MOVS PC,LR
in place and fix the caller to not assume flag preservation. It's user mode,
so who cares if MOVS PC,LR trashes the flags.
There'll be a bit of faffing to change the RMA claim/Wimp_SlotSize calls to
just grab 64k static workspace as you had to do with the Z80Tube. Cut/Paste.
Lastly, the SWI emulation does some dynamic code generation. Delete this and
replace with OS_CallASWI (actually you'd get away with it on the ARM CoPro
since it has a unified cache).
To make !65Tube run on RISC OS 4/StrongARM
- a patch to write enable page 0 was needed
- a patch to SWI emulation was needed (or, just turn off the I cache!)
To make !65Tube run on a 32 bit system
- the above plus...
- fix up a few flag preserving assumptions
To make !65Tube run on the ARM copro
- the above plus...
- some static 64k RAM allocation
- skip the page 0 write enable and do the job properly with OS_Byte
Sprow.