News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_Emu

FAT handling in AcmeDOS

Started by Emu, 17:49, 06 May 25

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Emu

I'm checking if I can manage to implement X-Mass storage in CPCemu, but I'm facing a strange behaviour of AcmeDOS (v0.8 ).

First of all, X-Mass is said to be compatible with Symbiface 2 IDE/ATA storage. My Symbiface 2 IDE/ATA emulation works. However, AcmeDOS' "cat" displays rubbish from the same FAT32 image where SymbOS reads all entries correctly. No matter what the FAT image looks like, AcmeDOS always reads the root directory from sector 497. Of course, this yields rubbish if the root directory is located elsewhere. Unfortunately, the X-Mass ROM source code is not available (anymore?).

My question is: Is sector 497 hard-coded into AcmeDOS? Or are all of my FAT images faulty and 497 is some kind of fallback for such cases?

Prodatron

IIRC X-Mass is using a "Disc On Module" storage with a fixed size of 128MB, and AcmeDOS is supporting this in a static way (still?).
I have written a formatting tool for this, which inits a FAT partition in exactly the needed way (see attachment), maybe this helps you to make an image with the same properties for testing it.
That was beginning of 2016, so I am not sure, if AcmeDos is still limited to this, or if there are already versions with a dynamic handling of any FAT16/32 partition.

GRAPHICAL Z80 MULTITASKING OPERATING SYSTEM

HAL6128

Doesn't AcmeDOS only support FAT16??

As far as I assume AcmeDOS works on a basis of an incomplete FAT table, as @Prodatron said, very static. More protoyped by @SyX.
Maybe the use of CubeMDOS from @SOS could also provide as a helpful test environment? ( CubeMDOS / FAT16+FAT32-OS - for XMASS, Symbiface_2+3,HXC/FlashFloppy)

SyX

Just that, the original AcmeDOS was designed for using the X-Mass 128 MBs DOM, and the FAT16 filesystem was configured/hard-coded for that device.

Emu

Quote from: Prodatron on 18:38, 06 May 25I have written a formatting tool for this, which inits a FAT partition in exactly the needed way (see attachment), maybe this helps you to make an image with the same properties for testing it.

Thank you. I've managed to make AcmeDOS at least read my directory sectors. First things were, I had to disable the MBR and the FSINFO sectors.

However, it still reads sector 497 for the root directory (corresponding to 228 sectors per FAT). According to your code, it should be sector 513 (corresponding to 256 sectors per FAT). @SyX : Did this change between the AcmeDOS versions?

SyX

No, not at all, the only changes were bug fixes for increasing compatibility with software.

If I remember well, the first bug fix was for supporting the "hack" of using CAS IN CHAR for filling the 2 KB buffer, and then read directly from there instead sector by sector, because it let you to read files with a 24 bits file size (and streaming big files from the mass storage for video players or similar). 

After that I replaced the CHAIN MERGE "filename" command in the Basic ROM by a more useful CD "folder_name" . I don´t remember if that version added too the new interface for getting the file entries in a folder using the standard get_first and get_next functions. Added the mount DSK RSXs, ...

But, I am sure that I never changed the filesystem structure in AcmeDOS.

In fact, I don´t use AcmeDOS anymore, when unidos was released, I helped with the X-Mass support and that it was the end for the project.

In that moment, I was free to experiment with my own crazy ideas, the CPC urban legend is that at the end every crazy guy makes his own OS and I suppose that I am in that task XDDDD XDDD XDDD

Powered by SMFPacks Menu Editor Mod