The BIOS scheme has some flexibility in that part of the BIOS is stored in system files (in IBM PCs, IO.SYS and IBMIO.COM). Since this code is stored in files, it can be upgraded with each new version of DOS. In addition, separate device drivers can be loaded from files during system startup as directed by DEVICE commands in CONFIG.SYS, a text file containing various system settings. For further flexibility in dealing with evolving device capabilities, PCs also began to include CMOS (complementary metal oxide semiconductor) chips that allow for the storage of additional parameters, such as for the configuration of memory and disk drive layouts.
In modern PCs the BIOS setup screen also allows users to specify the order of devices to be used for loading system startup code. This, for example, might allow a potentially corrupted hard drive to be bypassed in favor of a bootable CD or DVD with disk repair tools. Another scenario would allow users to boot from a USB memory stick and use a preferred operating system and working files without disturbing the PC’s main setup. The data on these chips is maintained by a small onboard battery so settings are not lost when the main system power is turned off. Additionally, modern PC BIOS chips use “flash memory” (EEPROM or “electrically erasable programmable read-only memory”) to store the code. These chips can be “flashed” or reprogrammed with newer versions of the BIOS, enabling the support of newer devices without having to replace any chips.