I've found a few errors I thought I should inform you about. It's a useful little tool, but problematic because of the following:
- Bitmap block allocation is incorrect, that is, it seems you have started from block 0 when in fact the boot-blocks are NOT meant to be included in the block allocation table because it's only for blocks that are allocatable, that is, part of the filesystem. This results in the entire block allocation map being out! Bit 0 of the first LONG of the allocation map corresponds to block 2 (de_Reserved), not block 0.
- File extension blocks aren't initialised properly in a few fields, that is, the second field (the Header key) is actually a self-referential entry, that is, it is NOT meant to point to the file header block, it is meant to be the block number itself. The 3rd to last LONG (the Parent field) in the block is initialised to 0, when in fact it is meant to be pointing to the file header block!
- The boot-block code for some reason checks whether the DosInit routine pointer is non-NULL or not!??! I've never seen that before and I don't think it's required, that is, the pointer would always be valid.
I've found a few errors I thought I should inform you about. It's a useful little tool, but problematic because of the following: