2Rick Hodgin: Nice, so you got the free space calculation to work without my help?
And, if I could get Arca Noae's support/help, I would be happy to write an xdfmount utility which would mount an XDF image as a RAM disk, allowing it to be changed/updated as needed, and then when it's unmounted it would write the changed contents back to the XDF disk image so it can be re-written to a real floppy disk if need be. Also, an option to save it to another XDF filename.
I think, there is a better option than to mount an XDF file as a ramdisk. In fact, I already added
the support for different disk images to fat32.ifs. FAT32.IFS now is able to mount the FAT/FAT32/exFAT
disk images at the subdirectory on another FAT/FAT32/exFAT file system, serving as a mount point. Also, with my
loop.add block device driver, I can mount any filesystem, contained in a file, to a drive letter. This include
not only FAT/FAT32/exFAT filesystems, but any other FS having an IFS driver for OS/2. Except for
FAT/FAT32/exFAT, it can mount the CD ISO images, floppy images, any "raw" disk images and different
VM images, like .vhd's from VirtualPC, .vdi's from VirtualBox, VMWare's .vmdk images, etc (see details
in fat32.inf file from FAT32.IFS). For supporting VM disk images, I ported a library from QEMU, qemuimg.dll.
This DLL is loaded by cachef32.exe daemon, and the daemon executes read/write operations by request of
the IFS or of loop.add driver. Currently, it works fine for mounting FAT/FAT32/exFAT/CDFS file systems. JFS
and HPFS inside disk images are mounted successfully too, with the help of loop.add, but there are currently
problems with I/O request via strat2/strat3 routines: when you start copying files from/to the HPFS or JFS
image, it starts copying, but when cache is flushed, it hangs. Not resolved it yet. But for FAT/FAT32/exFAT/CDFS,
which don't use start2 and caching, everything is working fine, without hangs.
So far, the qemuimg.dll lib supports the following disk image formats:
1) RAW disk images, including diskette and CD ISO images
2) Bochs VM images
3) Linux CLOOP (Cryptoloop) images, used by Knoppix LiveCD
4) Macintosh .dmg
5) VirtualPC .vhd
6) VMWare .vmdk
7) Parallels
QEMU vvfat, qcow, qcow2 formats
9) VirtualBox .vdi
Also, I planned to try adding support for compressed .dsk floppy images from IBM.
So, I'd suggest you to add the XDF support to this lib too. So, qemuimg.dll lib could
be reused by many different programs in theory, not only fat32.ifs/loop.add.