I am curious about the sources and causes of various limits that
developed.
64K: 16 bit address bus
640K: 1M address bus, with 384K "reserved"
32M: use of a 16 bit int for "relative sector number"
4G: 32 bits
2G: 32 bits using a SIGNED long int (many versions of DOS will permit the
existence of a NEGATIVE 2 G file or drive!)
Is the "540M" actually 512 "honest" M (535870912)?
Is the "2.2G" actually 2 "honest" G (2147483648)?