FFDD3 - Fast Format Double Density 3

This application is an entry to ABBUC's Application Software Competition 2025 for Atari 8bit computers.

Author: Marek Chorvat (Marco/GMG)
Release: v3.0 (2025-01-30)
Target machine: Atari XL/XE with 64KB RAM
Target OS: any OS that supports disk drive operations via SIO shall work. Application is DOS agnostic, since no specific DOS commands nor CIOV is used. All communication with disks is done via SIOV commands. In SDX it shall be run using X command: "X FFDD30" since it uses memory from $8000 to $B900.

Purpose:
--------

This application is used to quick format already formatted diskettes (real 5 1/4" or 3 1/2" floppy disks) or ATR images mounted via SIO devices. Freshly created ATR images do not need to be formatted first - the application sets everything up.
Although the application supports Double Density (= 256 bytes per sector) formats only, it can format nine (9) disk size+DOS combinations on any DOS (i.e. for instance, it is possible to format 720KB MyDOS compatible disk in XDOS even the fact that XDOS does not support disks larger than 180KB):
- SpartaDOS X 4.x/SDFS 2.1: 180KB/360KB/720KB disks
- MyDOS 4.55:               180KB/360KB/720KB disks
- BiboDOS 6.4:              180KB/360KB disks
- XDOS 2.51:                180KB disks

This is achieved by selecting the drive (D1: or D2:) and then disk size+DOS combination from the menu. Support for drives D3: and up is intentionally not supported due to possible conflict with HDD devices. No one would like to irreversely lose a 32MB HDD partition in 3 seconds :)
Once the START key is pressed the "fast formatting" process starts by writing 3 single density (128bps) bootsectors (unique for each DOS), writing fresh VTOC sectors (256bps, again unique for each DOS and disk size), and the operation is finished by clearing a file directory. For the desired setting of the target drive, PERCOM operations are used. 
Please note that there is currently no enforcement on whether the chosen disk size combination is supported by a target drive. Use it at your own discretion.

FFDD3 has been developed on a real Atari 800XL+800XE with U1MB+Side2cart+SDX4.50, Code was written and debugged entirely in Atmas II macroassembler. Bewesoft's Super Packer was used as a linker and packer.
It has been tested with the following operating systems: SDX 4.50, MyDos 4.55, BiboDOS 6.4, XDos 2.51, BW-DOS 1.3. VBXE is supported but not required.
Following disk drives/SIO devices have been tested: Atari XF551 (OS 7.7, HyperXF), Atari 1050 with Happy upgrade, XF351 clone disk drive (720KB 3,5" disks), SIO2SD fw3.3, SIO2PC USB with AspeQT, Fujinet SD card)

History:
--------
Version 1.0 was developed somewhere around 1997 under the name "Quick Format DD" to meet my needs for quickly formatting used double density (180KB DD and 360KB DS/DD) diskettes. This was achieved by clearing the VTOC+DIR instead of performing full format which is quite time consuming. QF1.0 supported only BiboDOS 6.4 which I used exclusively with XF551 disk drive. Current version 3 brings many improvements and support for much larger variety of Disk size + DOS combinations.

Special feature in SDX:
Once the program detects it runs under SpartaDOS X and formatted disk is of SDFS type (any size), it automatically copies current Date+Time from the OS and saves it on a formatted disk in root folder metadata.
