|
|
| >
Sitemap Index Newsarchive Variants & Versions Commands Autoexec.bat Config.sys Batch Tips & Tricks Archive Links ELKS Minix CP/M Others Archive Links Entering Archive Links |
BIOS General
Overview The ROM-BIOS is: What's in the ROM-BIOS? The ROM-BIOS holds a key set of programs that provides essential support for the operation of the computer. There are three main parts to the ROM-BIOS programs. The first part is used only when the computer is first turned on.; these are test and initialization programs that check to see that the computer is in good working order. This is called the power-on self-test (POST). The second and most interesting part of the ROM-BIOS are its routines. These programs provide the detailed and intimate control of the various parts of the computer, particularly the I/O peripherals. The third part of the ROM-BIOS, which applies only to the older members of the PC family made by IBM, is the build-in ROM-BASIC. This BASIC was the core of the BASIC programming language, which is used either by itself or as part of the old dialect of BASIC (BASICA) that comes with IBM DOS. The new dialect of BASIC (QBasic) that comes with DOS 5.0 and later versions, does not depend on the ROM-BASIC, of course. And, the new IBM PC's don't include BASIC as part of the ROM. It simply isn't needed with DOS. What does the ROM-BIOS do? The ROM-BIOS is designed to control the hardware directly and respond to any demands that the hardware makes. This is done largely through use of ports. For the most part, all of the PC's components are controlled by commands or parameter settings sent through the ports, with each part of the circuitry having special port numbers to which it responds. Most of the exceptions to the general rule that the hardware is controlled through the ports are exactly the part of the computer that it's okay for programs to work with directly. These are the parts that ROM-BIOS doesn't have to supervise. How does the ROM-BIOS work? To start with, the ROM-BIOS is roughly divided into three functional parts (look at figure 1).
Figure 1.The first part of the ROM-BIOS contains the start-up routines, which get the computer going when you turn on the power. There are two main parts of the start-up routines. The first, as I mentioned a little earlier, is the power-on self-test (or POST) routines, which test to see that the computer is in good working order. They check the memory for defects and perform other tests to see that the computer isn't malfunctioning. The second part of the start-up procedure is the initialization. The initialization involves such things as creating the interrupt vectors, so that when interrupts occor the computer switches to the proper interrupt-handling routine. Initialization also involves setting up the computer's equipment. The very last part of the start-up routines in the ROM-BIOS is the boot routine, which tries to fire up DOS or any other operating system you may be using. The boot process involves the ROM-BIOS attempting to read the boot record from the beginning of a disk. The BIOS first tries drive A. If it doesn't succeed and the computer has a hard disk as drive C, it tries the hard disk. If neither disk can be read, the ROM-BIOS goes into its non-disk mode. Normally, the ROM-BIOS can read a boot record from the disk and hands control of the computer to the short program on the boot record. The boot program begins the process of loading DOS into the computer. After the start-up routines are finished, the computer is ready to go. The other two parts of the ROM-BIOS play key roles in running the computer. These two parts are hardware interrupt handling and service handling routines. They function as two distinct but closely cooperating kinds of routines. The service handling routines are there solely to perform work for programs by carrying out whatever services the programs need. To carry out the service requests that programs make, the ROM-BIOS has to work directly with the computer's I/O devices using ports to issue commands and send and receive data to and from various devices. The hardware interrupt handling part takes care of the independent needs of the PC's hardware. It operates separately but in cooperation with the service handling portion. How do you add to the ROM-BIOS? The ROM-BIOS in the PC is a fixed part of the computer's equipment, which leads to a fundamental problem: how do you add support for new options? The answer lies in an automatic feature, called ROM-BIOS extensions, that allows for additions to the ROM-BIOS. Additions have a standard memory area reserved for them as well - the C and D blocks. Any new equipment requiring special ROM-BIOS support places its read-only BIOS memory somewhere in that block and includes in it a special marking, hex 55 AA, in the first two bytes. The ROM-BIOS can't be located just anywhere. It has to be in a unique location that doesn't conflict with any other ROM-BIOS extensions and must begin on a 2 Kb memory boundary. The standard ROM-BIOS, as part of its start-up routines, searches the ROM-BIOS extension area for the identifying 55 AA signature. When it finds one, it passes control over to the beginning of the ROM-BIOS extension. That enables the ROM-BIOS extension to do whatever it needs to do to initiate its equipment and integrate itself into the rest of the ROM-BIOS. ABIOS: The Advanced BIOS With PCs that are based on the newer processors - the 286, 386, 486 and Pentium series - DOS runs in either real mode or virtual 86 mode. This means that, unless special control programs are used, DOS cannot take advantage of the protected mode features of these processors. Other operating systems - in particular, OS/2 and Microsoft Windows - can take advantage of protected mode. However, such operating systems require a lot of system support that the regular BIOS dos not support. This support is provided by the Advanced BIOS, usually referred to as ABIOS.
|