NEWS.TXT

Version History:

Version 0.01  Formats 3.5" 1.44MB floppy disks.

	      Uses BIOS interrupts to allow it to work under FreeDOS.

	      Has not been tested with other size floppy disks.

	      The "This disk is not bootable" code was taken from the boot
	      sector of a floppy disk formatted with the "mkfs -t msdos"
	      command on a Linux PC.
 
	      Most of the "infrastructure" is in place to enable this program
	      to format disks without using DOS interrupts.

	      Has sections of debugging code.

	      Only formats the 1st partition on the 2nd hard disk.  (It is
	      harder to debug a program when you are always formatting 
	      your C: drive.  :-)  )
  
	      Has sections of "rough" code that need to be modified.
	      (i.e.  if statements that are always true)

Version 0.1   Replaced the sloppy code in the Convert_Logical_To_Physical
	      function with equations.  Thanks go to Jan Verhoeven for 
	      supplying the equations.

	      Too many code changes to list here.

	      Added a quick formatting routine, format drive: /q now will quick
	      format a drive.

	      Added more values to the boot sector that were missing in version
	      0.01.  
	    
	      To unconditionally format a drive, format drive: /u must be 
	      entered.  Unconditionally formatting a drive does not yet
	      mark bad sectors or clusters in the FAT tables.

	      The program will format 1.44 MB 3.5" floppy disks or the first 
	      partition of the first hard drive.  The program considers any
	      drive letter starting with c: to be the first partition on the
	      first hard disk.  This will be corrected in a future release.

Version 0.2   Added /v switch to create a volume label on a newly formatted
	      disk.

	      Modified the command line parsing code to eliminate the need 
	      for the string.h library.

	      Changed the error-level codes to match those in my IBM DOS 5.0
	      User's Guide and Reference.

	      Corrected the code for processing the /q /u switches so that the
	      program formats as per my DOS manual.

	      Added more code to process the various switches that can be
	      entered.

	      Adjusted sectors per cluster conversion table.

	      Added functionality to support up to 4 hard drives with a 
	      maximum of 26 partitions per hard drive.  The program will now
	      resolve the drive letter into a physical location to format on
	      a hard disk.
 
Version 0.3   Added code to save the file system into a "mirror" at the end
	      of the disk.  This "mirror" image is compatible with the 
	      unformat command I have written.

	      Moved the logical drive location adjustment code to a 
	      centralized location under the Convert_Logical_To_Physical()
	      function.  This should make the program easier to modify in the
	      future because the now the programmer only has to refer to the
	      sector number on the logical drive.  The programmer will not
	      have to adjust for the beginning of a hard drive partition 
	      when entering what sector to access.
	     
Version 0.4   Now supports up to 8 physical drives.

	      Added error trapping to avoid trying to save the file system of 
	      an unformatted drive.

	      Added the "/s" switch to make the disk bootable.  (Presently
	      only works under MS-DOS.)

	      Added code to force the volume label to all capital letters.

	      Fixed a volume label creation bug where the volume label is not
	      correctly added to the boot sector.

	      Fixed the bug that prevented a mirror image being created on 
	      sectors that had a numbers exceeding 1677216.

	      Fixed a bug that caused the wrong number of sectors to be entered
	      in the boot sector and processed elsewhere in the program.

	      Now marks bad sectors in the FAT table for FAT16 partitions
	      when unconditionally formatting a hard disk.
	
Version 0.5   Added code to specify exact number of sectors per FAT and 
	      number of root directory entries for the following floppy
	      drives:  1.44MB 3.5", 1.2MB 5.25", 720K 3.5", & 360K 5.25"
	      (The only drive that is known to be successfully formatted is
	      1.44MB 3.5".)
 
	      Added information to the help screen.             

	      The help screen can be displayed by either typing "FORMAT" or
	      "FORMAT /?"

	      Adjusted equation for computing the total logical partition 
	      size which fixed a bug causing an unconditional format to 
	      format into the next partition.

	      Added code to optimize the formatting process and unconditionally 
	      format a track at a time.

	      Now marks bad sectors in the FAT table for FAT12 partitions.

	      Increase speed of unconditionally formatting a hard disk by
	      writing a track at a time instead of a sector at a time.

	      Fixed a bug that prevented accurate boot sectors from being
	      written in FAT12 partitions on hard disks.

	      Changed the location of the bad sector map initialization code to 
	      prevent errors reading the disk when formatting with both /u and
	      /q.

	      Added code to terminate formatting if a bad sector is encountered
	      in boot sector, FAT tables, or root directory.
 
	      Discovered that the program would write to bad sectors and not
	      save their locations in the bad sector map.  Added code to verify
	      that the sectors are good to rectify this problem.  If the sectors
	      fail verification then it is marked in the bad sector map to be
	      later recorded in the FAT tables.

	      Fixed a bug that where the program did not always pass a null 
	      terminated string to the "sys" command when writing system files
	      while formatting a disk.

Version 0.6   Major re-write to enable the program to format all types of floppy
Pre 1         disks.

	      Added a module from the development version of Free FDISK 0.98 in
	      order to easily add direct disk access and the possibility of
	      future LBA support.
 
	      Compressed the executable with APACK, by Joergen Ibsen.

Version 0.6   Fixed a bug in the BPB created for hard disks.
Pre 2
	      Added a /y switch to the command line to prevent format
	      from asking for a confirmation to format the disk.

	      Added autodetect capability for 2.88MB floppy drives.
     
	      Added interleave handling code for non-standard floppy formats.

	      Added sector skew calculation code for non-standard floppy formats.

	      Minor bug fixes.

	      Added BPB information for non-standard floppy formats.

	      Added safe formatting capability.  The mirror image created is
	      not compatible with MS's UNFORMAT command.  The mirror image is
	      only compatible with the FreeDOS UNFORMAT command.

	      Added the capability to unconditionally format hard disks.  This code
	      is rather slow, in this version, and needs optimized.

	      Added error handling code.

	      Fixed a bug that allowed you to enter invalid drive letters.

Version 0.6   Added an updated pdiskio.c library.
Pre 3 DEV
	      Converted format.cpp to format.c.

Version 0.7   Fixed bug that caused the FAT tables to be off by 1 sector,
	      under certain circumstances.

	      Fixed the problem that caused the summary messages to have
	      ascii characters, at the end of the numbers, when the format
	      was finished.

Future Plans
TO-DO         Add bad sector detection and recording in the FAT tables.

TO-DO         Modify safe formatting such that it avoids overwriting data. 

TO-DO         Add the capability to utilize the non-standard floppy format
	      features.  (Add the appropriate switches to the command line.)

