home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Unsorted BBS Collection
/
thegreatunsorted.tar
/
thegreatunsorted
/
programming
/
misc_programming
/
bios.ov
< prev
next >
Wrap
Text File
|
1990-01-04
|
15KB
|
236 lines
Chapter 1
The ROM BIOS
------------
1. Introduction:
a. What is BIOS?
BIOS stands for Basic Input Output System. It consists of low
level software routines designed to test the system hardware and
bootstrap load the operating system and a group of device drivers
that service system I/O components, such as the keyboard, video,
fixed disk drive, diskette drives, real time clock, parallel ports,
serial ports, and math coprocessor.
BIOS contains systems software that interfaces between the operating
system and the hardware.
The Acer BIOS is implemented in the motherboard and stored in the ROMs.
b. BIOS Summary of Functions
. Provides the following I/O service routines:
- Print screen service prints the contents of the current video
screen to a certain printer number.
- Video service provides I/O support for the MDA, CGA, EGA, and
VGA adapters.
- Memory size service returns the amount of available base memory
as determined by the POST (power-on self-test) routine.
- Fixed disk service performs BIOS level read, write, format,
initialization and diagnostic functions for up to two fixed disk
drives.
- Asynchronous communication service performs RS232C character I/O
for IBM compatible serial adapters.
- System services is composed of several miscellaneous system
level- subservices, of which are invoked via the INT 15h mnemonic.
- Keyboard service interfaces the operating system and application
programs with the keyboard.
- Printer service provides I/O support for parallel printer ports.
. Uses information stored in system RAM and uses RAM for storage of
data definitions specific to the BIOS.
. Stores real-time clock, system configuration, system diagnostic and
other information useful for debugging the system.
. Contains tabular data used to initialize devices (i.e., pointer to
video parameter table, diskette parameter table, fixed disk
parameter table, and vector table).
. Performs POST and initialization functions relating to the system
hardware, configuration and non system board hardware.
2. Interrupt Table:
The following interrupts are initialized by the BIOS to different
unexpected interrupt handlers. The BIOS provides these routines
to ensure complete BIOS error recovery.
┌───────────────┬─────────────────────────────────────────────────┐
│ Interrupt │ Function │
│ Number (hex) │ │
├───────────────┼─────────────────────────────────────────────────┤
│ 0 │ Temporary interrupt │
├───────────────┼─────────────────────────────────────────────────┤
│ 1 │ Temporary interrupt │
├───────────────┼─────────────────────────────────────────────────┤
│ 2 │ NMI interrupt service routine │
├───────────────┼─────────────────────────────────────────────────┤
│ 3 │ Temporary interrupt │
├───────────────┼─────────────────────────────────────────────────┤
│ 4 │ Temporary interrupt │
├───────────────┼─────────────────────────────────────────────────┤
│ 5 │ Print screen service routine │
├───────────────┼─────────────────────────────────────────────────┤
│ 6 │ Temporary interrupt │
├───────────────┼─────────────────────────────────────────────────┤
│ 7 │ Temporary interrupt │
├───────────────┼─────────────────────────────────────────────────┤
│ 8 │ System timer (IRQ 0) │
├───────────────┼─────────────────────────────────────────────────┤
│ 9 │ Keyboard H/W interrupt │
├───────────────┼─────────────────────────────────────────────────┤
│ a │ Temporary interrupt (IRQ 2) │
├───────────────┼─────────────────────────────────────────────────┤
│ b │ Temporary interrupt (IRQ 3) │
├───────────────┼─────────────────────────────────────────────────┤
│ c │ Temporary interrupt (IRQ 4) │
├───────────────┼─────────────────────────────────────────────────┤
│ d │ Temporary interrupt (IRQ 5) │
├───────────────┼─────────────────────────────────────────────────┤
│ e │ Diskette drive interrupt (IRQ 6) │
├───────────────┼─────────────────────────────────────────────────┤
│ f │ Temporary interrupt (IRQ 7) │
├───────────────┼─────────────────────────────────────────────────┤
│ 10 │ Video I/O │
├───────────────┼─────────────────────────────────────────────────┤
│ 11 │ Equipment determination │
├───────────────┼─────────────────────────────────────────────────┤
│ 12 │ Memory size determination │
├───────────────┼─────────────────────────────────────────────────┤
│ 13 │ Diskette I/O │
└───────────────┴─────────────────────────────────────────────────┘
┌───────────────┬─────────────────────────────────────────────────┐
│ Interrupt │ Function │
│ Number (hex) │ │
├───────────────┼─────────────────────────────────────────────────┤
│ 14 │ Asynchronous communications │
├───────────────┼─────────────────────────────────────────────────┤
│ 15 │ System service routines │
├───────────────┼─────────────────────────────────────────────────┤
│ 16 │ Keyboard I/O │
├───────────────┼─────────────────────────────────────────────────┤
│ 17 │ Printer I/O │
├───────────────┼─────────────────────────────────────────────────┤
│ 18 │ BASIC interrupt vector │
├───────────────┼─────────────────────────────────────────────────┤
│ 19 │ Booting system │
├───────────────┼─────────────────────────────────────────────────┤
│ 1a │ Set/Read Clock │
├───────────────┼─────────────────────────────────────────────────┤
│ 1b │ Control break interrupt (null return) │
├───────────────┼─────────────────────────────────────────────────┤
│ 1c │ Timer tick (null return) │
├───────────────┼─────────────────────────────────────────────────┤
│ 1d │ Pointer to video parameter table │
├───────────────┼─────────────────────────────────────────────────┤
│ 1e │ Diskette parameter table vector │
├───────────────┼─────────────────────────────────────────────────┤
│ 1f │ Graphics character font pointer for modes 4,5,6 │
├───────────────┼─────────────────────────────────────────────────┤
│ 21 - 3f │ Reserved for OS. or other functions │
├───────────────┼─────────────────────────────────────────────────┤
│ 40 │ Diskette I/O (when fixed disk exists) │
├───────────────┼─────────────────────────────────────────────────┤
│ 41 │ Fixed disk 0 parameter table vector │
├───────────────┼─────────────────────────────────────────────────┤
│ 42 │ Reserved │
├───────────────┼─────────────────────────────────────────────────┤
│ 43 │ Graphics character font pointer for modes 11,13 │
├───────────────┼─────────────────────────────────────────────────┤
│ 44 - 45 │ Reserved │
├───────────────┼─────────────────────────────────────────────────┤
│ 46 │ Fixed disk 1 parameter table vector │
├───────────────┼─────────────────────────────────────────────────┤
│ 47 - 49 │ Reserved │
├───────────────┼─────────────────────────────────────────────────┤
│ 4a │ RTC Alarm (null return) │
├───────────────┼─────────────────────────────────────────────────┤
│ 4b - 6f │ Reserved │
└───────────────┴─────────────────────────────────────────────────┘
┌───────────────┬─────────────────────────────────────────────────┐
│ Interrupt │ Function │
│ Number (hex) │ │
├───────────────┼─────────────────────────────────────────────────┤
│ 70 │ Hardware real-time clock (IRQ 8) │
├───────────────┼─────────────────────────────────────────────────┤
│ 71 │ Redirect interrupt (IRQ 9) │
├───────────────┼─────────────────────────────────────────────────┤
│ 72 │ Reserved (IRQ 10) │
├───────────────┼─────────────────────────────────────────────────┤
│ 73 │ reserved (IRQ 11) │
├───────────────┼─────────────────────────────────────────────────┤
│ 74 │ Pointing device (IRQ 12) │
├───────────────┼─────────────────────────────────────────────────┤
│ 75 │ Coprocessor (IRQ 13) │
├───────────────┼─────────────────────────────────────────────────┤
│ 76 │ Fixed Disk Controller (IRQ 14) │
├───────────────┼─────────────────────────────────────────────────┤
│ 77 │ Reserved (IRQ 15) │
└───────────────┴─────────────────────────────────────────────────┘
3. BIOS entry point:
Segment : 0F000h
┌────────────┬────────────────────────────────────────────────────┐
│ Offset │ Description │
├────────────┼────────────────────────────────────────────────────┤
│ 0E00Eh │ 'IBM' │
├────────────┼────────────────────────────────────────────────────┤
│ 0E05Bh │ Start │
├────────────┼────────────────────────────────────────────────────┤
│ 0E2C3h │ INT 02h │
├────────────┼────────────────────────────────────────────────────┤
│ 0E6F2h │ INT 19h │
├────────────┼────────────────────────────────────────────────────┤
│ 0E739h │ INT 14h │
├────────────┼────────────────────────────────────────────────────┤
│ 0E82Eh │ INT 16h │
├────────────┼────────────────────────────────────────────────────┤
│ 0E987h │ INT 09h │
├────────────┼────────────────────────────────────────────────────┤
│ 0EC59h │ INT 13h │
├────────────┼────────────────────────────────────────────────────┤
│ 0EF57h │ INT 0Eh │
├────────────┼────────────────────────────────────────────────────┤
│ 0EFC7h │ INT 1Eh (Diskette base table) │
├────────────┼────────────────────────────────────────────────────┤
│ 0EFD2h │ INT 17h │
├────────────┼────────────────────────────────────────────────────┤
│ 0F065h │ INT 10h │
├────────────┼────────────────────────────────────────────────────┤
│ 0F0A4h │ INT 1Dh (Video parameter table) │
├────────────┼────────────────────────────────────────────────────┤
│ 0F841h │ INT 12h │
├────────────┼────────────────────────────────────────────────────┤
│ 0F84Dh │ INT 11h │
├────────────┼────────────────────────────────────────────────────┤
│ 0F859h │ INT 15h │
├────────────┼────────────────────────────────────────────────────┤
│ 0FA66h │ Setup routine │
├────────────┼────────────────────────────────────────────────────┤
│ 0FA6Eh │ Graphics Pattern │
├────────────┼────────────────────────────────────────────────────┤
│ 0FE6Eh │ INT 1Ah │
├────────────┼────────────────────────────────────────────────────┤
│ 0FEA5h │ INT 08h │
├────────────┼────────────────────────────────────────────────────┤
│ 0FEF3h │ Vector table │
└────────────┴────────────────────────────────────────────────────┘
┌────────────┬────────────────────────────────────────────────────┐
│ 0FF53h │ Dummy return │
├────────────┼────────────────────────────────────────────────────┤
│ 0FF54h │ INT 05h │
├────────────┼────────────────────────────────────────────────────┤
│ 0FFEEh │ BIOS checksum │
├────────────┼────────────────────────────────────────────────────┤
│ 0FFF0h │ CPU reset entry │
├────────────┼────────────────────────────────────────────────────┤
│ 0FFF5h │ BIOS release date (mm/dd/yy) │
├────────────┼────────────────────────────────────────────────────┤
│ 0FFFEh │ Machine model │
├────────────┼────────────────────────────────────────────────────┤
│ 0FFFFh │ Sub machine model │
└────────────┴────────────────────────────────────────────────────┘