BIOS Extension Interrupt Function
Software support for special features is added as an interrupt
function to the BIOS. Enhanced machine checks and battery backup on an
AC power failure features are included. These interrupt function calls
are used by the high level programming languages. These functions allow
the assembler programmer to keep up with the system events.
Supported machines: Types 7552,
7568, maybe some other industrial systems as well
Interrupt 15H Function 47H (AH) Sub-function 00-0BH (AL)
All of the functions described below are called with INT 15H and AH = 47H.
Register AL contains the value of the specific function.
Function Description
AL=00H Set Glitch Time.
The number of timer ticks are
passed in DX and
placed in Glitch Counts. One
tick equals 55
milliseconds.
DX
= NUMBER OF TIME TICKS, 1 = 55 MSEC
AL=01H Read Status Word.
The content of the Status
Register is placed
in DX on return. No error code
is returned.
EXIT:
DX = STATUS BITS AS FOLLOWS:
STATUS REGISTER
DESCRIPTION
(LSB)
bit 0 Reserved
bit 1 Reserved
bit 2 Channel Check
bit 3 Temperature Fail Check
bit 4 Temperature Clear Check
bit 5 Power Supply Fail Check
bit 6 Power Supply Clear Check
bit 7 Shutdown Complete
bit 8 AC Power Failure
bit 9 ECC Check (double bit failure)
bit 10 ECC Overflow
bit 11 Shutdown Started
bit 12-15 Reserved
Note: "Fail" and "Clear" lines detect
a change in the line's status. They do not tell you the current status.
Also, BIOS never clears any of the status bits. This is up to the application.
AL=02H Write Status Word.
The content of DX is written
to the Status
Register. No error code can be
returned.
DX
= CONTENTS TO BE WRITTEN TO STATUS REGISTER
AL=03H Turn On/Off Digital
Output points. The Digital
Output point number
is passed in DL (DL=1 or 2).
Register DH must
be a 1 to turn a point on, a 0
(zero) to turn
it off. An error code of FFFEH in
AX means that
an invalid index was input.
DH
= 0 TURN OFF DIGITAL OUTPUT POINTS
DH
= 1 TURN ON DIGITAL OUTPUT POINTS
AL=04H Set HEX Display.
The value in DL is displayed if
there are no checks.
If there are checks then AX
= OFFFDH on return,
and the BIOS internal check
flag is cleared.
DL
= THE VALUE TO BE DISPLAYED
EXIT;
AX = OFFFDH IF THERE ARE CHECKS ?????
AL=05H Read Keyswitch Position.
The position value is
returned in DX
where:
EXIT;
DX = 0 - Locked
DX = 1 - Unlocked
DX = 2 - Maintenance Mode
AL=06H Set User Vector.
A vector is passed in registers
DS:DX that points
to a user's FAR routine. BIOS
calls this routine
when events such as a
Shutdown, a Channel
Check, a Temperature
Check/Clear, or
a Power Supply Check/Clear
occurs. If the
user calls this function with
DS:DX equal to
0:0, then BIOS erases the vector
and does not jump
on any routine vector should
any of the above
events occur.
DS:DX=USER
VECTOR
DS:DX=0:0
Erase User Vector, No Control Transfer
AL=07H Event Complete.
The user informs BIOS that it has
handled an event
with this function. BIOS will
not jump on the
user vector again until the
"event flag" is
cleared. Register DH provides the
event index, while
DL contains the event
satisfied/cleared
information.
DH = 00 - Shutdown (power failure)
DH = 01 - Channel Check
DH = 02 - Temperature Check
DH = 03 - Temperature Clear
DH = 04 - Power Supply Check (fan/batt fail)
DH = 05 - Power Supply Clear
DL = xxxxxxx0B - Clear events (also clears
event pending flag)
DL = xxxxxxx1B - Event satisfied If register
DH is out of range (> 5), then AX will have
a FFFCH error code on return.
EXIT: AX = 0FFFCH EVENT INDEX OUT OF RANGE
AL=08H Shutdown Battery.
The user can cause a shutdown
by disconnecting
the battery.
AL=09H Enable Backup Override.
The user can call this
during shutdown
to enable the system to stay
running for longer
than 10 seconds.
AL=0AH Connect Battery.
Connect the backup battery.
AL=0BH ECC/Channel Check Options.
The user can determine
how BIOS reacts
to an ECC/Channel Check. If DX =
0000, then the
system halts on an ECC/Channel
Check (default
configuration). If DX = 0001, then
the system reboots
on an ECC/Channel Check.
DX
= 0 MACHINE WILL HALT
DX
= 1 MACHINE WILL REBOOT
AX=0 Good Return
EXIT:
(Ed. manual was confusing)
AX < >| 0 Error
=0FFFFH
Out of range Error
=0FFFDH
If there are checks
=0FFFCH
Event index out of range
In all cases, AX = 0 indicates a correct return, and
AX < > 0 indicates an error condition. AX = 0FFFFH indicates that an
out of range error has occurred. Only AX and DX
will be altered.
|