The Editors and Readers of COMPUTE!
IBM BIOS Revealed
I recently purchased a Sanyo MBC-550 computer. This computer is (according to Sanyo) supposed to be 80 percent compatible with the IBM PC. It is my understanding that PC programs that bypass the BIOS will not run on my Sanyo. Can you explain what the BIOS is?
BIOS stands for Basic Input/Output System. It's a collection of important machine language routines contained in Read Only Memory (ROM) which the computer uses to communicate with various devices such as the keyboard, screen, disk drive, and printer. Every computer has a BIOS, although it may be called something different. For example, Commodore calls it the Kernal, and Atari calls it the CIO (Central Input/Output).
Generally, you don't have to worry about the BIOS when programming in BASIC, because BASIC handles the BIOS for you. The BIOS is most useful when writing machine language programs. Each of the routines in the BIOS performs a specific function, such as printing a character on the screen or printer, reading the keyboard, getting the time of day, and accessing the disk or cassette drive.
The actual machine language for these routines will be slightly different for each model of the PC-series computers because of the different hardware configurations. In order to insure compatibility among various models, the BIOS routines are not accessed directly, but rather through interrupts. Each routine has its own interrupt number that stays the same with each model. (These interrupts are analogous to the Kernal jump table in Commodore machines.) This consistent numbering scheme enables PC-compatible computers such as the Sanyo MBC-550 to be mostly compatible with the PC even though the actual BIOS routines may be very different.
A program that bypasses the interrupts and accesses the BIOS routines directly will probably work only on a particular model. The same is true for a program that bypasses the BIOS altogether. For example, the program may have its own customized routine for printing to the screen instead of using the built-in BIOS routine. That way, the program can take advantage of the specific features of a particular model, but, of course, it sacrifices compatibility.