Product specifications

The size of the BIOS, and the capacity of the ROM, EEPROM, or other media it may be stored on, has
increased over time as new features have been added to the code; BIOS versions now exist with sizes
up to 16 megabytes. For contrast, the original IBM PC BIOS was contained in an 8 KiB mask ROM.
Some modern motherboards are including even bigger NAND flash memory ICs on board which are
capable of storing whole compact operating systems, such as some Linux distributions. For example,
some ASUS motherboards included SplashTop Linux embedded into their NAND flash memory
ICs.
[19]
However, the idea of including an operating system along with BIOS in the ROM of a PC is
not new; in the 1980s, Microsoft offered a ROM option for MS-DOS, and it was included in the
ROMs of some PC clones such as the Tandy 1000 HX.
Another type of firmware chip was found on the IBM PC AT and early compatibles. In the AT, the
keyboard interface was controlled by a microcontroller with its own programmable memory. On the
IBM AT, that was a 40-pin socketed device, while some manufacturers used an EPROM version of
this chip which resembled an EPROM. This controller was also assigned the A20 gate function to
manage memory above the one-megabyte range; occasionally an upgrade of this "keyboard BIOS" was
necessary to take advantage of software that could use upper memory.
The BIOS may contain components such as the Memory Reference Code (MRC), which is responsible
for handling memory timings and related hardware settings.
[20]:8[21]
Vendors and products