RO5.x IOMD

Discuss ADFFS development versions and upcoming additions
Post Reply
JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

RO5.x IOMD

Post by JonAbbott » Fri Aug 16, 2013 6:10 pm

As RO5 potentially has Application space overlapping VIDC1 / IOC / Screen memory when at the Supervisor level, we need to unmap it before any translation will work.

I can implement a *ADFUnmapLegacyMemory command which can simply unmap memory pages from the relevant areas. The potential problem however is BASIC, it's going to expect the memory to be there unless its memory ends at &1000000. We need to somehow limit memory to 16MB when the WIMP isn't running.

The alternative is to stay within the WIMP when booting floppies, which we've discussed previously. The issue here is that it may well break quite a lot of games. What I could do is switch Boot Floppy to boot within the WIMP and only drop to the Supervisor is the SHIFT key is held down. I'll add to 2.18 and we'll have to test games to see what breaks.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: RO5.x IOMD

Post by JonAbbott » Sat Aug 17, 2013 11:59 am

JonAbbott wrote:The alternative is to stay within the WIMP when booting floppies, which we've discussed previously. The issue here is that it may well break quite a lot of games. What I could do is switch Boot Floppy to boot within the WIMP and only drop to the Supervisor is the SHIFT key is held down. I'll add to 2.18 and we'll have to test games to see what breaks.
Booting within the WIMP breaks anything that uses FX 138,0,x (insert key into buffer).

I'll need to test, but it looks like these Boot Scripts can be made to work by ending with the following, where X is the amount of RAM the game needs:

Code: Select all

WimpSlot -min X -max X -next X
FX 225, 1
FX 138,0,128
GOS

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: RO5.x IOMD

Post by JonAbbott » Sun Jan 04, 2015 6:21 pm

Finally got around to testing RO5 IOMD and to my amazement a few games actually work. RO5.20 had issues, but RO5.21 seemed better behaved. I'm not sure why that's the case, as I don't recall there being any dependency on bug fixes on IOMD.

Both Zarch and Jet Fighter worked, games that write to VIDC1 aren't working though, which may be due to IRQ1V being directly modified by the game - or an issue along the line mentioned in the OP.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: RO5.x IOMD

Post by JonAbbott » Tue Jan 27, 2015 1:14 am

JonAbbott wrote:Both Zarch and Jet Fighter worked, games that write to VIDC1 aren't working though, which may be due to IRQ1V being directly modified by the game - or an issue along the line mentioned in the OP.
The issue looks like it's IRQ1V not being called when T1 triggers, I suspect HAL_Timer intercepts the IRQ. I need to find a workaround that's legal.

JonAbbott
Posts: 1736
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex

Re: RO5.x IOMD

Post by JonAbbott » Wed Feb 25, 2015 11:40 am

JonAbbott wrote:The issue looks like it's IRQ1V not being called when T1 triggers, I suspect HAL_Timer intercepts the IRQ. I need to find a workaround that's legal.
I've now hypervised both IRQv and IRQ1V which are either triggered from an IRQ (VSync and T1) or virtualized (SSBC).

Post Reply