iczelia
floppy disk checker for Windows 9x
| 2026-08-12 16:50 | optimised string routines | Kamila Szewczyk |
| 2026-08-12 16:45 | async vxd | Kamila Szewczyk |
| 2026-08-12 13:41 | specify gpl3-only | Kamila Szewczyk |
| 2026-08-12 12:10 | update version | Kamila Szewczyk |
| 2026-08-12 12:09 | ui, readme: hook up and describe new functionality | Kamila Szewczyk |
| 2026-08-12 12:04 | build aux: consistent style | Kamila Szewczyk |
| 2026-08-12 12:02 | scan.c: style, improve messages | Kamila Szewczyk |
| 2026-08-12 11:59 | fdchk.c: style, hook up the alt-whatever shortcuts | Kamila Szewczyk |
| 2026-08-12 11:57 | fdchk.h: plumbing for the new APIs | Kamila Szewczyk |
| 2026-08-12 11:54 | vxd: style, improved loading, expose required new functionality | Kamila Szewczyk |
| trunk (2026-08-12 16:50) |
| 1.0.2 (2026-08-12 12:10) | 1.0.1 (2026-05-22 19:05) | 1.0 (2026-05-21 12:40) |
A surface scanner, FAT12 consistency checker, file-recovery utility, defragmenter and raw-FDC head diagnostic for Windows 9x (95/98/Me). Licensed under version 3 of the GNU GPL, and that version only (GPL-3.0-only) - the "any later version" option is not granted. See LICENSE. Report bugs to <k@iczelia.net>.

anything that does not come back cleanly.
then write-and-verify the original, its inverse, a PRNG block and that block's inverse, and finally restore the original.
fdchk.vxd, surfacing the full ST0/ST1/ST2/C/H/R/N result phase.
lost chains, size mismatches, chain cycles and bad FAT entries.
every file with zero-filled holes where bad sectors fell, and writes fdchk-recovery.log. With auto-fix on, new bad clusters are marked 0xFF7 in both FATs.
rewrites the boot sector, both FATs and the root directory. Full first re-lays every track through the driver's track formatter (Int 21h 440Dh CX=0842h, then CX=0862h to verify), which rewrites the sector ID address marks, data address marks and CRCs.
clusters (depth-first, alphabetical at each level) and zeroes every free cluster.
<exe-dir>\logs.In Diagnostic mode the grid becomes a cyl x head map, sized from the drive (160 cells for an 80-cylinder drive, 80 for a 40-cylinder one):
| Colour | Meaning |
|---|---|
| Grey | OK - ST0 & 0xC0 == 0 and C matches |
| Yellow | currently testing |
| Orange | Wrong Cylinder - ST2 bit 4, or C != cyl. Head misalignment |
| Purple | No Address Mark - ST1/ST2 bit 0. Track unformatted/severe |
| Red | other failure (CRC, timeout, controller fault) |
Requires i686-w64-mingw32-gcc and nasm; mtools is needed only for make floppy.
make fdchk.exe + fdchk.vxd
make floppy fdchk.img - a 1.44 MB FAT12 image carrying the EXE
make debug with-CRT build carrying symbols
make clean