• Ben Avison's avatar
    Fixed support for certain sized DOS discs · 96a65e55
    Ben Avison authored
    Detail:
      In the code which determined the bitmask to apply to cluster numbers, the
      calculation of the number of clusters in the data area (which is the
      deciding factor between FAT12, FAT16 and FAT32) contained an operator
      precedence error in the calculation of the root directory size. The result
      was that if the disc size was within approx 8 MB of the FAT type threshold
      then the wrong mask was selected. (For clusters of 4*512 bytes, the FAT12/16
      threshold is about 8 MB, so discs between 8 and 16 MB would fail.)
      Also:
      * Fixed the module base address and offsets registered with FileSwitch -
        previously the static data relocation offset was incorrectly applied.
        FileSwitch didn't actually care as long as they added up to the right
        address, but it was still wrong.
      * 32-bitting was incorrectly done using the No26bitCode switch rather than
        the No32bitCode switch, meaning that softloadable builds of this module
        were not 32-bit compatible. Softloadable builds now work on anything from
        RISC OS 3.5 onwards.
    Admin:
      Tested on Raspberry Pi and Iyonix.
    
    Version 0.95. Tagged as 'DOSFS-0_95'
    96a65e55
VersionNum 812 Bytes