ROM BIOS
The ROM resident Basic
I/O
System (BIOS) provides the device
level control of the major
I/O
devices in the System Unit. The
BIOS routines allow the assembly language programmer to
perform block (diskette and cassette) or character (Video,
~
communications, keyboard and printer) level
I/O
operations
without any concern
for
device address and operating charac-
teristics. Additionally, system services such as time of day and
memory size determination are provided. The goal
is
to provide
an operational interface to the system and relieve the programmer from
concern over hardware device characteristics.
Finally the BIOS interface· insulates the user from the hardware
allowing new devices to be added to the System Unit, yet
retaining the BIOS level interface to the device.
In
this manner,
user programs become transparent to hardware modifications
and enhancements. A complete listing of the BIOS is provided
in Appendix
"A".
Use
of
BIOS
Access to the BIOS function
is
through the 8088 software
interrupts. Each BIOS entry point
is
available through its own
interrupt, which can be found in the interrupt vector listing.
The software interrupts lOH through
lAH
each access a
different BIOS routine.
For
example, to determine the amount
of memory available in the system,
INT
12H
will
invoke the memory size determination routine in BIOS
and return the value to the caller.
Parameter Passing
All parameters passed to and from the BIOS routines
go
through
the 8088 registers. The prologue of each BIOS function indicate
the registers used on the call and the return.
For
the memory
size example above,
no
parameters are passed, and the result,
memory size in 1 K Byte increments
is
returned
in
the
AX
register.
Where a BIOS function has several possible operations, the
AH
register
is
used on input to indicate the desired operation.
For
example, to set the time
of
day, the following code is required.
3-2