Hanging when shelling out with 1.6MB floppy mounted

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

Hanging when shelling out with 1.6MB floppy mounted

Post by JonAbbott »

This has been a long running issue since day 1, which I've finally got around to investigating.

Booting 3.11 without Uniboot, there are no issues. With Uniboot and later on OS's, it will either hang when you shell to the Supervisor (CTRL-SHIFT-F12 twice) or crash.

On 3.11 with Uniboot the crash happens at &38F0ED8, which as far as I can tell is FontManager! On further investigation, putting WindowManager back to its original ROM version fixes the issue.

It's not the F format floppy format , as I've forced it to E and still see the problem.
It's not memory size related as I can allocate 1600K to ADFFS and see no issues.
It's not related to ZLib or CLib as it happens when loading just ADFFS and formatting a 1600 floppy
As this problem has been there since day 1, it's not DA related either**

I have absolutely no idea what the root cause is, the only thing I can think of is the definition of ".Disc_Record_F" in adffs.constants. I did rather guess it as I couldn't find any official information on the F disc format. I've yet to find any to confirm the exact values.

** I have just noticed that RO3.11 with the UniBoot WindowManager module dies rather badly when you allocate over 1mb to ADFFS. For example load ADFFS, press F12, type "ADFReserveMemory 1096", press ENTER to return to the desktop and watch what happens.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by JonAbbott »

JonAbbott wrote:** I have just noticed that RO3.11 with the UniBoot WindowManager module dies rather badly when you allocate over 1mb to ADFFS.
It would appear the memory map I've been working off is inaccurate, as 1E00000 has Fonts in it!

That might explain FontManager crashing on RO3.11 - it still doesn't explain why it happens on RO3.5 or on the older non-DA version of ADFFS. Looks like there may be several issues here.

Anyhow...as 1E00000 is in use I've got a bit of a problem, I need 2mb of contiguous memory that's currently unallocated. Any ideas?
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by JonAbbott »

I've switched the DA address to E00000 - the top 2mb of application space. Provided RO doesn't map it out and there's not more than 14mb of application memory allocated it should be okay. Unless anyone has any other ideas on where to store the DA.

This has fixed the 1.6mb crashing on RO3.1 incidentally, so it's looking like the original issue is now only affecting RO3.5+.
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by JonAbbott »

I've put the updated source and ADFFS module (2.13l) into the dev area should you wish to try it with the DA in application space.
steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by steve3000 »

What happens if you play with the Next/Free slot in Task Manager on a 16Mb A540, after ADFFS has claimed some part of the DA? Will it all die horribly?

In which case, when running on a 16Mb pre-RiscOS 3.5 computer, I would take the view that you claim the whole 2Mb DA immediately on loading, so it's never possible for RiscOS to map out the top-of-application area pages...?

Steve
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by JonAbbott »

Good point, I'll add that. Do any 16mb machines exist? And if they do, what's the likelyhood they'll be using ADFFS? I think I have better odds on winning the lottery!
PaulV
Posts: 97
Joined: Thu May 02, 2013 8:33 pm
Location: Leicestershire
Contact:

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by PaulV »

There are a couple of R260 owners with 16Mb on board on Stardot...

Paul
steve3000
Posts: 198
Joined: Thu May 02, 2013 9:25 pm

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by steve3000 »

I hope one day to find two more 4mb cards for my A540 but for the moment just 8mb here...
JonAbbott
Posts: 2938
Joined: Thu Apr 11, 2013 12:13 pm
Location: Essex
Contact:

Re: Hanging when shelling out with 1.6MB floppy mounted

Post by JonAbbott »

I've been looking into the hanging on RO3.5 this morning, from recording what happens when the WIMP shuts down, things happen slightly differently if an F format floppy is mounted:

E Format:
1. MiscOp 5 is called to eject the floppy

F Format:
1. MiscOp 1 is called to see if the floppy has changed
2. DiscOp 5 is called to seek to sector 0
3. MiscOp 5 is called to eject the floppy

I've not implemented DiscOp 5, but it doesn't return anything anyway so I don't believe this is related.

I'm still no closer to pinning down the issue and am not sure where to look next.
Post Reply