Como nota adicional.
El codigo fuente en C++ que te esta Dogduck, es de una utilidad (la que mide la tasa de transferencia) que forma parte del programa 2M (un programa que salio hace varios años para formatear diskettes a mas capacidad de la normal (entre 1.82 MB y 1.93 MB), que no crea diskettes estandar.
Sin embargo, en dicho enlace esta la documentacion teorica y ejemplos para formatear diskettes en ensamblador y C++. De hecho es un libro llamado El Universo Digital del IBM PC, AT y PS/2:
http://atc.ugr.es/docencia/udigital/1206.html http://atc.ugr.es/docencia/udigital/
Te dejo aqui un enlace del codigo fuente en C++ (usando Visual C++) de un programa para formatear diskettes:
http://download.sysinternals.com/Files/fmifs.zip