0.14
- Initial release
0.15
- Protective MBR check now checks for both compliant and Microsoft entries
0.16
- Added buffer overflow checks to FNread_bytes_*
- Checks for an MBR created by HForm and falls back to FileCore if found
0.17
- Searches for the FAT volume label
- Gets the free space from a FAT32 extended boot record
0.18
- Switched to using *_SectorDiscOp on RO5
- Corrected the FAT32 Root Dir location and size
- FileCore volume names are now trimmed
- Full disk FileCore sizes may have been incorrect
0.19
- Added error trapping around FileCore format volumes
0.20
- Now obtains the OS version and uses appropriate SWI's
- LOG2 moved to a function
0.21
- Switched SCSIFS_SectorDiscOp to use SCSIFS_DiscOp64 instead
0.22
- add_partitions_FileCore was checking byte 29 instead of &29 for big_flag
- add_partitions_GPT was setting First_Free_Low% to 0 after it had already
  set it to the correct value, resulting in ghost free areas being added
- add_partitions_GPT now does uint checks for free blocks
- add_partitions_MBR wasn't checking for free blocks between partitions
- added additional MBR partition types
- should now close on Wimp shutdown
0.23
- add_partitions_FileCore wasn't returning TRUE if it added a FileCore partition
- volume_info_FileCore now checks for E/E+ and reads the root dir to determine
  the map structure
- added sector log2 for all drives, to save recalculating it several times
- works out FileCore map type based on idlen
0.24
- added support for ADFS IDE drives. Tested on:
   A4000 RO3.11 (FileCore partition is the size wrong)
   RiscPC RO3.70,3.71,4.02,5.23
   Kintic RO4.04
0.25
- volume_info_FileCore wasn't using the drive filesystem SWI's
0.26
- rewritten the ADFS IDE drive sizing code
- ADFS IDE now check if the drive is removable
- added Drive Model text to drive array
0.27
- modified the way freespace is tracked on GPT drives
- increased minimum freespace needed for partitioning to 10MB
- Window now redraws correctly
0.28
- ADFS now gets the logical sector size from ATA drives that support word 106
- ADFS will use the current CHS limit if available
- FAT free size now accounts for cluster size
0.29
- wimp_handler now gets the window location correctly, prior to a refresh
- uint wasn't using an unsigned shift
- commented out the additional info on FAT partitions, until it can check if
  the FAT partition is actually available or linked to a DOS file
0.30
- FS.SCSIFS wasn't checking if SCSIFS_DiscOp64 was valid
- Debug output added
0.31
- Changed ADFS Master/Slave detection to use bit 1 of the drive number
0.32
- Bug fix to Wimp code
0.33
- Added IDEFS support based on SimTec SWI's.  Disc size is currently unknown
- Added context based Wimp menus to drives and partitions
- FNread_bytes_ADFS/SCSIFS were using the wrong DiscOp SWI
0.34
- IDEFS wasn't calling IDEFS_Drives
- Moved DiscOp code from ADFS, SCSIFS, SDFS and IDEFS to a generic PROC
- remove check for magnetic media in ADFS
0.35
- IDEFS now checks various methods to interface to the drive, including:
    IDEFS_DriveInfo (Risc Developments)
    IDEFS_IDEUserOp (SimTec implements it as a NOP)
- FNread_bytes_<filesystem> now handles errors and passes up the call
  chain
- marks partitions as inaccessible if they exceed FileCore limits
- CDFS drive size corrected
- moved 64bit additions to assembler
0.36
- drive size no longer overlaps the bottom frame
- rewritten ADFS to handle Primary/Secondary IDE Controllers with Master/
  Slave drives and SATA devices
0.37
- added additional debug info for ADFS/IDEFS 4K drives
- corrected LBA size calculation for 4K drives
- added a check for invalid CDFS/SCSIFS LBA sizes
- modified ADFS_IDEDeviceInfo codepath to ignore returned drive number
0.38
- added a check in calc_wimp_widths to handle drives incorrectly read as
  having a 0 size
- modified 4K drive check to match handle 4K/4K drives
- changed volume_info_FileCore to use OS_FSControl instead of FreeSpace
0.39
- 4K sector size was being miscalculated
- FNfilecore_inaccessible future proofed to read the last LBA of the partition
  instead of explicitly checking FileCore limits
- FAT ATTR_VOLUME_ID check could miss the entry if its the only entry in RootDir
0.40
- SCSIFS now uses SCSI_Op with the "magic key" when reading discs
- changed add_partitions_FileCore to use D_FSName instead of D_Drive_No
- SDFS now checks for 8 drives and ignores the result from SDFS_Drives
0.41
- Added initilise functions to all filesystem handlers and moved SCSI helper
  code
0.42
- Moved SCSI helper code to the RMA and now claims/releases devices before
  attempting to read from them
- Added finalise functions to all filesystem handlers
- changed volume_info_FileCore to use D_FSName instead of D_Drive_No
- moved all filesystem detection code to their respective FNinitialise_<fs>
  functions and modied PROCinitialise_filesystems to ignore any filesystems
  not present
- volume_info_FAT now uses a local data% buffer that matches the LBA size
0.43
- modified adfs_ide to find the physical drive if ADFS_IDEDriveInfo 2 not
  supported
0.44
- added some additional debugging to FNvolume_info_FileCore
- added D_Physical_Name% for drives and P_Logical_Drive% for the logical drive
  name the user would see.  Modified code to use the relevent name
- removed the scan for SCSI LUN as they will come from partitions
- SCSIFS filesystem handler now trawls though SCSIFS to find MapDevToDrv so
  it can translate SCSI devices to Filecore drive numbers
- until a better method presents itself, volume_info_FileCore now attempts
  to link physical drives with Filecore drives:
    SDFS/ADFS/CDFS assume <fs>::<physical number>
    SCSIFS will use SCSIFS_Partitions if it's supported, or try each LUN
      calling MapDevToDrv in SCSIFS directly to find the first mapped drive
  This really needs moving to a new function in the filesystems and to allow
  for futureproofing
0.45
- add_partitions_GPT was checking 1 too many partitions
- add_partitions_GPT now checks the header CRC, partition CRC and that
  partitions are inside the disc before adding them
- add_partitions_MBR now checks the partitions are inside the disc
- if a GPT header is found, but its CRC or the partition entries CRC is wrong,
  it falls back to add_partitions_FileCore
- adjusted drive icon position and column widths as per suggestion
0.46
- corrected some bugs in add_partitions_MBR and add_partitions_GPT
- 4K/512 drives should now set LBA size to 512
0.47
- Partitions.FileCore SCSI_FSPartitions use modified
- initialise_SCSIFS was't scanning for MapDevToDrv correctly
- scsifs_MapDevToDrv was't passing SCSIFS's private word in R12
- add_partitions_MBR not longer attempts to link partitions to a FileCore drives
- add_partitions_CDFS was using the wrong logical drive name
- find_FileCore_drive now passes Start LBA+1 to SCSIFS_Partitions to match
  the LBA's PartMan is using
0.48
- undone the +1 to the Start LBA for SCSIFS_Partitions
0.49
- started adding WIMP menu code
0.50
- Template windows for initialise, format, new volume, delete volume added
- Wimp code added to handle Template windows
- Filesystem libraries are now only added if a matching Module is active
- add_partitions_MBR wasn't exiting FALSE if it failed to find an MBR
0.51..0.53
- add_partitions_CDFS now exists early if any SWIs error
- added FNvolume_init_<format> to relocate formatting to the format libraries
- changed discop to support writing
- merged in HForm PROCNewStructure + dependencies
- read_drives wasn't clearing Drive_Info%() and Drive_Text$()
- added FNwrite_partition_table_<partition>
- add_partitions_GPT now stops looking for partitions when it reaches the
  first usable LBA
- added FNinitialise_<partition>
- add_partitions_GPT was reading the wrong LBA when reading partition
  information
0.54
- switched to using DIM LOCAL
- bunded a private version of BASIC to avoid conflicts when softloading
  BASIC on legacy machines
- read_partition_table_* was not marking the whole disc as unallocated
  if full disc FileCore detection failed
- added LBA alignment, to allow the physical LBA size to be used as the
  starting point when initialising filesystems
0.55
- moved progress icon and window references into PROCprogress
- FAT initialisation added
0.56
- added error recovery to all disc writes
- tidied up the GUID code in Partitions.GPT
- FileCore initialisation added
- dropped the map details from FileCore layout text as its confusing
- altered the FileCore layout detection
0.57
- switched FAT type detection to the Bootstrap method
- now searches the complete RootDir cluster for the FAT32 volume name
- drive/partition sizes now show two decimal places for GB and TB sizes
- PROCinitialise_filesystems now calls FNinitialise_<format> so formats
  can setup global variables
0.58
- tweaks to FAT formatting
0.59
- split out FAT16 and FAT32, added checks for cluster count limits
0.60
- FNread_partition_table_GPT First_Free_Low% now set to the 1st LBA after the
  partition table
- added D_Max_Partitions% to track any existing partition table size
- PROCwimp_volume_new now checks D_Max_Partitions%
- FNinitialise_<format> now returns TRUE if its supported
- added FNformats_<format> to allow layouts to be passed to the Wimp code
- swapped Layout/Format values for FAT
- swapped Layout/Format column display order
- FAT size calculation now works for 4K
- added LOCAL ERROR to PROC/FN that use ON ERROR LOCAL to prevent stack
  corruption
0.61
- OVERLAY used instead of LIBRARY to reduce memory footprint
0.62
- switched back to LIBRARY as OVERLAY doesn't support nested calls
- FAT EOC variable wasn't being set correctly
0.63
- FAT size optimized down to minimum size required for the Cluster count
- FAT now written in chunks of data_limit%
- increased data_limit% to 64K and changed FileCore to use data%
- changed FileCore format to use data% instead of a local DIM
- New Volume Window is now closed when it passes to the Format Window
0.64
- wimp_menu% was too small for maximum menu size
0.65
- FS.ADFS "IF DEBUG%" on line 121 was executing when not in debug mode
- moved Formats libraries to OVERLAY to reduce memory footprint by ~23K
    footprint &39BC8 at load &3ABD8 after checks
   previously &3F894 /       &408B4
- reduced WimpSlot from 512K to 350K leaving ~90K for drive data
- PROCwimp_volume_format wasn't using the size of Format_Driver$() when DIMing
  options1$()
0.66
- Added Version$
- Partitions.MBR modified to allow "Castle" partitions
- modified Partitions.GPT protective MBR detection to allow for "out by 1"
  errors on the protective partition size
- FNwrite_partition_table_GPT wasn't setting the start sector to 1 in the
  protective MBR partition entry
- FNwrite_partition_table_GPT and FNwrite_partition_table_MBR now use the UEFI
  standard of &FEFFFF if the disc size exceeds the max for CHS
- remove FNinitialise from partition handlers as FileCore conflicted with
  Formats.FileCore
- FNread_partition_table_GPT and FNread_partition_table_MBR were not reducing
  unallocated areas between partitions by 1, potentially causing partitions
  created in free gaps to overlap
0.67
- added the build date to version$
- FNread_partition_table_MBR now checks for an MBR created by HForm with no
  partition entries
0.68
- PROCnew_partition_GPT wasn't preserving any existing GPT partition GUID's
- FNwrite_partition_table_GPT wasn't writing the tail end of the partition
  table if it didn't end on an LBA boundary
- FNwrite_partition_table_GPT now preserves the tail end of the last sector
  of the partition table, if it doesn't end on a sector boundary
- FNread_partition_table_GPT wasn't reading the partition name
- FNwrite_partition_table_GPT wasn't preserving the partition name
- "Refresh drives" added to menus
- "Extend" now greyed out if not applicable
- "Backup partition" added to drive menu
0.69
- added the incorrect GUID that gpttest uses for FileCore partitions
- FNwrite_partition_table_GPT was writing the tail sector of the GPT to
  the previous sector, corrupting the GPT
0.70
- remove the "Delete volume" option from full-disc FileCore drives
- now clears the first 32 sectors when initialising a full-disc FileCore
  drive
- full-disc FileCore drives no longer set the minimum size to the full disc and
  set the maximum size to the current FileCore limit