2M (DOS)

2M is a DOS program by the Spanish programmer Ciriaco García de Celis. It enables higher than normal capacity formatting of floppy disks. It saw active development from 1993 to 1995. The last version, v3.0, was released on 6 March 1995. It was written in C and assembler and compiled using Borland C++ 3.1.

The program consisted of two major components: 2M and 2MGUI (from "2M Guinness"). Of these, 2M was the main program enabling the formatting, reading and writing of high density 3.5" disks formatted to a capacity of either 1804 KiB or 1886 KB, and 2MGUI was a proof-of-concept program that demonstrated the ability to format any normal high density 3.5" disk to a capacity of over two million bytes (1972 KiB) on any disk drive. Both programs implemented disk I/O speedups in the form of "Sector Sliding" and "DiskBoost", which work on the principle of ordering the physical sectors on the disk to facilitate pauseless reading over track changes. 2MGUI utilized bit banging and tricked the floppy controller into writing a full track of data as a single sector before resetting the floppy controller in order to avoid overwriting the next track, enabling the absolute maximum capacity possible at the physical level. A similar technique was also used by Vincent Joguin's Disk2FDI for Amiga floppies.

Formatting program 5.25", DD 5.25", HD
FORMAT (40/80 tracks) 368,640 bytes (360 KiB) 1,228,800 bytes (1200 KiB)
FDFORMAT 1.8 (82 tracks) 839,680 bytes (820 KiB) 1,427,456 bytes (1394 KiB)
2MF 3.0 /F (82 tracks) 839,680 bytes (820 KiB) 1,511,424 bytes (1476 KiB)
2MF 3.0 /M (82 tracks) 923,648 bytes (902 KiB) 1,595,392 bytes (1558 KiB)
2MGUI 1.0 (82 tracks) 1,000,064 bytes (976 KiB) 1,679,104 bytes (1639 KiB)
blank disk (82 tracks) ~1,025,000 bytes (1001 KiB) ~1,708,224 bytes (1668 KiB)
Formatting program 3.5", DD 3.5", HD 3.5", ED
FORMAT (80 tracks) 737,280 bytes (720 KiB) 1,474,560 bytes (1440 KiB) 2,949,120 bytes (2880 KiB)
FDFORMAT 1.8 (82 tracks) 839,680 bytes (820 KiB) 1,763,328 bytes (1722 KiB) not supported
2MF 3.0 /F (82 tracks) 1,007,616 bytes (984 KiB) 1,847,296 bytes (1804 KiB) 3,694,592 bytes (3608 KiB)
2MF 3.0 /M (82 tracks) 1,091,584 bytes (1066 KiB) 1,931,264 bytes (1886 KiB) 3,862,528 bytes (3772 KiB)
2MGUI 1.0 (82 tracks) 1,204,224 bytes (1176 KiB) 2,019,328 bytes (1972 KiB) 4,038,656 bytes (3944 KiB)
blank disk (82 tracks) ~1,230,000 bytes (1201 KiB) ~2,050,000 bytes (2002 KiB) ~4,100,000 bytes (4004 KiB)