ADFFS 2.18 beta

Discuss ADFFS development and download test releases
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.18 beta

Post by JonAbbott »

I've given up on OS_ScreenMode 4, it doesn't appear to actually invoke the disabling code when you call it. To work around this, I've had to take drastic measures on RO4 when a StrongARM is present:

1. Disable the data cache when screen memory remapping is turned on
2. Forcibly change CPU domain 1 to R/W on every abort

The former fixes the caching issue, the later disables the RO4 screen cleaning. I'm not particularly happy with having to turn the data cache off, so I'll investigate altering L1/L2PT directly.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.18 beta

Post by JonAbbott »

Manipulating L1PT / L2PT directly is working beautifully on RO4/SA, ADFFS 2.18i full ZIP is on the dev site. Grab it and a copy of Magic Pockets and run it via "Boot floppy" - no more flickering...yay.

NOTE: This version will only work on RO4/SA due to the changes made, I've yet to add support for RO3.5-3.71 and RO4/ARM710.


By dropping all calls to OS_Memory / OS_SetMemPages the abort handler now doesn't have to handle screen memory. Instead ADFRemapVideoMemory quad maps the physical memory to both old and new actual and double mapped address ranges when it starts. In fact, all the abort handler now only handles writes to VIDC1 and CursorChunkAddress (1F00000-1F08000).

This has greatly simplified the abort handler, allowing me to drop 95% of the code. Service_PreModeChange no longer needs to put the screen memory back to the OS's expected location and Service_ModeChange simply needs to turn caching off on the screen memory pages.

Once I know the address of L1PT / L2PT on RO3.5-3.71 and RO4/ARM710 it should be a simple change to get this version working on all RiscPC's.

Also included in this version is the DesktopTracker>QTM shim, although I've yet to fix the hang caused when loading it after ADFFS.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.18 beta

Post by JonAbbott »

ADFFS 2.18j module is on the dev site, ADFRemapVideoMemory now works from RO3.5 up to RO4.39 and on ARM610/710 and SA/Kinetic. RO5 IOMD appears to map the video memory okay from my initial checks. Zarch no longer works though, reporting an undefined instruction, so I may have broken 32bit support somewhere, possibly in ADFCacheOff as the CPU cache seems to still be active.

NOTE: Once ADFRemapVideoMemory is active, it currently can't be turned off. I've yet to add the code to put L1/2PT back into their original states.

I've finally tracked down what was causing random crashes on my SA RPC - Alexander Thoukydides' Virtualise. For some unknown reason, it crashes when I try to change the size of DA 2. It was also causing problems with OS_FSControl when it tries to boot a filesystem. With it removed from PreDesk, the machine is working perfectly.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.18 beta

Post by JonAbbott »

ADFFS 2.18k module on the dev site, which now has the code to unmap the screen memory when ADFRemapVideoMemory is turned off. On RO3.8/4.x with a SA-110, it also moves the screen memory back into domain 1.

There are two issue outstanding that I'm aware of:

1. RO5 IOMD support
2. Caverns not working on RO4/SA - I suspect it's DA related as DA2 is 1MB min, if Caverns is using OS_ReadDynamicArea it will undoubted fail. What I may need to do is allow OS_ChangeDynamicArea to map in 4KB pages, instead of 1MB chunks on RO4/SA.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.18 beta

Post by JonAbbott »

ADFFS 2.18l module on the dev site. Fixed a few major bugs and RO5 IOMD now fixed.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: ADFFS 2.18 beta

Post by JonAbbott »

ADFFS 2.18m module on the dev site. Quite a few major changes in this one to get Manchester United to swap discs on RO3.5+, and Zarch to not crash when run via "Boot floppy" when Obey.zip exists.

1. The insV key handler has been replaced with an eventV handler which takes account of the auto-repeat rate to detect if CTRL is down
2. The SWI handler has been further optimized to exit within a max of 20 instructions if it's not an SWI we're interested in
3. Most of the SWI's ADFFS does monitor now use a generic veneer instead of tailored code for each SWI
4. SWI's ADFFS monitors now executed in SVCx with interrupts off. SVCx being SVC32 on 32bit OS's and SVC26 on all else

On RO5.20 IOMD Zarch crashes after about a minute, I'm not sure if this is down to ADFFS, Zarch or RO doing something.
Post Reply