519 lines
21 KiB
Plaintext
519 lines
21 KiB
Plaintext
--------p-155300-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - INSTALLATION CHECK
|
|
AX = 5300h
|
|
BX = device ID of system BIOS (0000h)
|
|
Return: CF clear if successful
|
|
AH = major version (BCD)
|
|
AL = minor version (BCD)
|
|
BX = 504Dh ("PM")
|
|
CX = flags (see #00472)
|
|
CF set on error
|
|
AH = error code (06h,09h,86h) (see #00473)
|
|
BUG: early versions of the Award Modular BIOS with built-in APM support
|
|
reportedly do not set BX on return
|
|
|
|
Bitfields for APM flags:
|
|
Bit(s) Description (Table 00472)
|
|
0 16-bit protected mode interface supported
|
|
1 32-bit protected mode interface supported
|
|
2 CPU idle call reduces processor speed
|
|
3 BIOS power management disabled
|
|
4 BIOS power management disengaged (APM v1.1)
|
|
5-7 reserved
|
|
|
|
(Table 00473)
|
|
Values for APM error code:
|
|
01h power management functionality disabled
|
|
02h interface connection already in effect
|
|
03h interface not connected
|
|
04h real-mode interface not connected
|
|
05h 16-bit protected-mode interface already connected
|
|
06h 16-bit protected-mode interface not supported
|
|
07h 32-bit protected-mode interface already connected
|
|
08h 32-bit protected-mode interface not supported
|
|
09h unrecognized device ID
|
|
0Ah invalid parameter value in CX
|
|
0Bh (APM v1.1) interface not engaged
|
|
0Ch (APM v1.2) function not supported
|
|
0Dh (APM v1.2) Resume Timer disabled
|
|
0Eh-1Fh reserved for other interface and general errors
|
|
20h-3Fh reserved for CPU errors
|
|
40h-5Fh reserved for device errors
|
|
60h can't enter requested state
|
|
61h-7Fh reserved for other system errors
|
|
80h no power management events pending
|
|
81h-85h reserved for other power management event errors
|
|
86h APM not present
|
|
87h-9Fh reserved for other power management event errors
|
|
A0h-FEh reserved
|
|
FFh undefined
|
|
--------p-155301-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - CONNECT REAL-MODE INTERFACE
|
|
AX = 5301h
|
|
BX = device ID of system BIOS (0000h)
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (02h,05h,07h,09h) (see #00473)
|
|
Note: on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
|
|
compatibility mode until it is informed that the user supports a
|
|
newer version of APM (see AX=530Eh)
|
|
SeeAlso: AX=5302h,AX=5303h,AX=5304h
|
|
--------p-155302-----------------------------
|
|
INT 15 R - Advanced Power Management v1.0+ - CONNECT 16-BIT PROTMODE INTERFACE
|
|
AX = 5302h
|
|
BX = device ID of system BIOS (0000h)
|
|
Return: CF clear if successful
|
|
AX = real-mode segment base address of protected-mode 16-bit code
|
|
segment
|
|
BX = offset of entry point
|
|
CX = real-mode segment base address of protected-mode 16-bit data
|
|
segment
|
|
---APM v1.1---
|
|
SI = APM BIOS code segment length
|
|
DI = APM BIOS data segment length
|
|
CF set on error
|
|
AH = error code (02h,05h,06h,07h,09h) (see #00473)
|
|
Notes: the caller must initialize two consecutive descriptors with the
|
|
returned segment base addresses; these descriptors must be valid
|
|
whenever the protected-mode interface is called, and will have
|
|
their limits arbitrarily set to 64K.
|
|
the protected mode interface is invoked by making a far call with the
|
|
same register values as for INT 15; it must be invoked while CPL=0,
|
|
the code segment descriptor must have a DPL of 0, the stack must be
|
|
in a 16-bit segment and have enough room for BIOS use and possible
|
|
interrupts, and the current I/O permission bit map must allow access
|
|
to the I/O ports used for power management.
|
|
functions 00h-03h are not available from protected mode
|
|
on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
|
|
compatibility mode until it is informed that the user supports a
|
|
newer version of APM (see AX=530Eh)
|
|
SeeAlso: AX=5301h,AX=5303h,AX=5304h
|
|
--------p-155303-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - CONNECT 32-BIT PROTMODE INTERFACE
|
|
AX = 5303h
|
|
BX = device ID of system BIOS (0000h)
|
|
Return: CF clear if successful
|
|
AX = real-mode segment base address of protected-mode 32-bit code
|
|
segment
|
|
EBX = offset of entry point
|
|
CX = real-mode segment base address of protected-mode 16-bit code
|
|
segment
|
|
DX = real-mode segment base address of protected-mode 16-bit data
|
|
segment
|
|
---APM v1.1---
|
|
SI = APM BIOS code segment length
|
|
DI = APM BIOS data segment length
|
|
CF set on error
|
|
AH = error code (02h,05h,07h,08h,09h) (see #00473)
|
|
Notes: the caller must initialize three consecutive descriptors with the
|
|
returned segment base addresses for 32-bit code, 16-bit code, and
|
|
16-bit data, respectively; these descriptors must be valid whenever
|
|
the protected-mode interface is called, and will have their limits
|
|
arbitrarily set to 64K.
|
|
the protected mode interface is invoked by making a far call to the
|
|
32-bit code segment with the same register values as for INT 15; it
|
|
must be invoked while CPL=0, the code segment descriptor must have a
|
|
DPL of 0, the stack must be in a 32-bit segment and have enough room
|
|
for BIOS use and possible interrupts, and the current I/O permission
|
|
bit map must allow access to the I/O ports used for power management.
|
|
functions 00h-03h are not available from protected mode
|
|
on connection, an APM v1.1 or v1.2 BIOS switches to APM v1.0
|
|
compatibility mode until it is informed that the user supports a
|
|
newer version of APM (see AX=530Eh)
|
|
SeeAlso: AX=5301h,AX=5302h,AX=5304h
|
|
--------p-155304-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - DISCONNECT INTERFACE
|
|
AX = 5304h
|
|
BX = device ID of system BIOS (0000h)
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (03h,09h) (see #00473)
|
|
SeeAlso: AX=5301h,AX=5302h,AX=5303h
|
|
--------p-155305-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - CPU IDLE
|
|
AX = 5305h
|
|
Return: CF clear if successful (after system leaves idle state)
|
|
CF set on error
|
|
AH = error code (03h,0Bh) (see #00473)
|
|
Notes: call when the system is idle and should be suspended until the next
|
|
system event or interrupt
|
|
should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
if an interrupt causes the system to resume normal processing, the
|
|
interrupt may or may not have been handled when the BIOS returns
|
|
from this call; thus, the caller should allow interrupts on return
|
|
interrupt handlers may not retain control if the BIOS allows
|
|
interrupts while in idle mode even if they are able to determine
|
|
that they were called from idle mode
|
|
the caller should issue this call continuously in a loop until it needs
|
|
to perform some processing of its own
|
|
SeeAlso: AX=1000h,AX=5306h,INT 2F/AX=1680h
|
|
--------p-155306-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - CPU BUSY
|
|
AX = 5306h
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (03h,0Bh) (see #00473)
|
|
Notes: called to ensure that the system runs at full speed even on systems
|
|
where the BIOS is unable to recognize increased activity (especially
|
|
if interrupts are hooked by other programs and not chained to the
|
|
BIOS)
|
|
this call may be made even when the system is already running at full
|
|
speed, but it will create unnecessary overhead
|
|
should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
SeeAlso: AX=5305h
|
|
--------p-155307-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - SET POWER STATE
|
|
AX = 5307h
|
|
BX = device ID (see #00474)
|
|
CX = system state ID (see #00475)
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (01h,03h,09h,0Ah,0Bh,60h) (see #00473)
|
|
Note: should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
SeeAlso: AX=530Ch
|
|
|
|
(Table 00474)
|
|
Values for APM device IDs:
|
|
0000h system BIOS
|
|
0001h all devices for which the system BIOS manages power
|
|
01xxh display (01FFh for all attached display devices)
|
|
02xxh secondary storage (02FFh for all attached secondary storage devices)
|
|
03xxh parallel ports (03FFh for all attached parallel ports)
|
|
04xxh serial ports (04FFh for all attached serial ports)
|
|
---APM v1.1+ ---
|
|
05xxh network adapters (05FFh for all attached network adapters)
|
|
06xxh PCMCIA sockets (06FFh for all)
|
|
0700h-7FFFh reserved
|
|
80xxh system battery devices (APM v1.2)
|
|
8100h-DFFFh reserved
|
|
Exxxh OEM-defined power device IDs
|
|
F000h-FFFFh reserved
|
|
|
|
(Table 00475)
|
|
Values for system state ID:
|
|
0000h ready (not supported for device ID 0001h)
|
|
0001h stand-by
|
|
0002h suspend
|
|
0003h off (not supported for device ID 0001h in APM v1.0)
|
|
---APM v1.1---
|
|
0004h last request processing notification (only for device ID 0001h)
|
|
0005h last request rejected (only for device ID 0001h)
|
|
0006h-001Fh reserved system states
|
|
0020h-003Fh OEM-defined system states
|
|
0040h-007Fh OEM-defined device states
|
|
0080h-FFFFh reserved device states
|
|
--------p-155307CX0001-----------------------
|
|
INT 15 - Advanced Power Management v1.0+ - SYSTEM STAND-BY
|
|
AX = 5307h
|
|
CX = 0001h
|
|
BX = 0001h (device ID for all power-managed devices)
|
|
Return: CF clear
|
|
Notes: puts the entire system into stand-by mode; normally called in response
|
|
to a System Stand-by Request notification after any necessary
|
|
processing, but may also be invoked at the caller's discretion
|
|
should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
the stand-by state is typically exited on an interrupt
|
|
SeeAlso: AX=4280h,AX=5307h/CX=0002h"SUSPEND",AX=5307h/CX=0003h,AX=530Bh
|
|
--------p-155307CX0002-----------------------
|
|
INT 15 - Advanced Power Management v1.0+ - SUSPEND SYSTEM
|
|
AX = 5307h
|
|
CX = 0002h
|
|
BX = 0001h (device ID for all power-managed devices)
|
|
Return: after system is resumed
|
|
CF clear
|
|
Notes: puts the entire system into a low-power suspended state; normally
|
|
called in response to a Suspend System Request notification after
|
|
any necessary processing, but may also be invoked at the caller's
|
|
discretion
|
|
should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
the caller may need to update its date and time values because the
|
|
system could have been suspended for a long period of time
|
|
SeeAlso: AX=5307h/CX=0001h"STAND-BY",AX=530Bh
|
|
--------p-155307CX0003-----------------------
|
|
INT 15 - Advanced Power Management v1.2 - TURN OFF SYSTEM
|
|
AX = 5307h
|
|
CX = 0003h
|
|
BX = 0001h (device ID for all power-managed devices)
|
|
Return: after system is resumed
|
|
CF clear
|
|
Notes: if supported by the system's power supply, turns off the system power
|
|
SeeAlso: AX=5307h/CX=0001h"STAND-BY",AX=530Bh
|
|
--------p-155308-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - ENABLE/DISABLE POWER MANAGEMENT
|
|
AX = 5308h
|
|
BX = device ID for all devices power-managed by APM
|
|
0001h (APM v1.1+)
|
|
FFFFh (APM v1.0)
|
|
CX = new state
|
|
0000h disabled
|
|
0001h enabled
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (01h,03h,09h,0Ah,0Bh) (see #00473)
|
|
Notes: when power management is disabled, the system BIOS will not
|
|
automatically power down devices, enter stand-by or suspended mode,
|
|
or perform any power-saving actions in response to AX=5305h calls
|
|
should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
the APM BIOS should never be both disabled and disengaged at the same
|
|
time
|
|
SeeAlso: AX=5309h,AX=530Dh,AX=530Fh
|
|
--------p-155309-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - RESTORE POWER-ON DEFAULTS
|
|
AX = 5309h
|
|
BX = device ID for all devices power-managed by APM
|
|
0001h (APM v1.1)
|
|
FFFFh (APM v1.0)
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (03h,09h,0Bh) (see #00473)
|
|
Note: should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
SeeAlso: AX=5308h
|
|
--------p-15530A-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - GET POWER STATUS
|
|
AX = 530Ah
|
|
BX = device ID
|
|
0001h all devices power-managed by APM
|
|
80xxh specific battery unit number XXh (01h-FFh) (APM v1.2)
|
|
Return: CF clear if successful
|
|
BH = AC line status
|
|
00h off-line
|
|
01h on-line
|
|
02h on backup power (APM v1.1)
|
|
FFh unknown
|
|
other reserved
|
|
BL = battery status (see #00476)
|
|
CH = battery flag (APM v1.1+) (see #00477)
|
|
CL = remaining battery life, percentage
|
|
00h-64h (0-100) percentage of full charge
|
|
FFh unknown
|
|
DX = remaining battery life, time (APM v1.1) (see #00478)
|
|
---if specific battery unit specified---
|
|
SI = number of battery units currently installed
|
|
CF set on error
|
|
AH = error code (09h,0Ah) (see #00473)
|
|
Notes: should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
supported in real mode (INT 15) and both 16-bit and 32-bit protected
|
|
mode
|
|
|
|
(Table 00476)
|
|
Values for APM v1.0+ battery status:
|
|
00h high
|
|
01h low
|
|
02h critical
|
|
03h charging
|
|
FFh unknown
|
|
other reserved
|
|
SeeAlso: #00477,#00478
|
|
|
|
Bitfields for APM v1.1+ battery flag:
|
|
Bit(s) Description (Table 00477)
|
|
0 high
|
|
1 low
|
|
2 critical
|
|
3 charging
|
|
4 selected battery not present (APM v1.2)
|
|
5-6 reserved (0)
|
|
7 no system battery
|
|
Note: all bits set (FFh) if unknown
|
|
SeeAlso: #00476,#00478
|
|
|
|
Bitfields for APM v1.1+ remaining battery life:
|
|
Bit(s) Description (Table 00478)
|
|
15 time units: 0=seconds, 1=minutes
|
|
14-0 battery life in minutes or seconds
|
|
Note: all bits set (FFFFh) if unknown
|
|
SeeAlso: #00476,#00477
|
|
--------p-15530B-----------------------------
|
|
INT 15 - Advanced Power Management v1.0+ - GET POWER MANAGEMENT EVENT
|
|
AX = 530Bh
|
|
Return: CF clear if successful
|
|
BX = event code (see #00479)
|
|
CX = event information (APM v1.2) if BX=0003h or BX=0004h
|
|
bit 0: PCMCIA socket was powered down in suspend state
|
|
CF set on error
|
|
AH = error code (03h,0Bh,80h) (see #00473)
|
|
Notes: although power management events are often asynchronous, notification
|
|
will not be made until polled via this call to permit software to
|
|
only receive event notification when it is prepared to process
|
|
power management events; since these events are not very time-
|
|
critical, it should be sufficient to poll once or twice per second
|
|
the critical resume notification is made after the system resumes
|
|
from an emergency suspension; normally, the system BIOS only notifies
|
|
its partner that it wishes to suspend and relies on the partner to
|
|
actually request the suspension, but no notification is made on an
|
|
emergency suspension
|
|
should not be called from within a hardware interrupt handler to avoid
|
|
reentrance problems
|
|
SeeAlso: AX=5307h,AX=5307h/CX=0001h"STAND-BY",AX=5307h/CX=0002h"SUSPEND"
|
|
|
|
(Table 00479)
|
|
Values for APM event code:
|
|
0001h system stand-by request
|
|
0002h system suspend request
|
|
0003h normal resume system notification
|
|
0004h critical resume system notification
|
|
0005h battery low notification
|
|
---APM v1.1---
|
|
0006h power status change notification
|
|
0007h update time notification
|
|
0008h critical system suspend notification
|
|
0009h user system standby request notification
|
|
000Ah user system suspend request notification
|
|
000Bh system standby resume notification
|
|
---APM v1.2---
|
|
000Ch capabilities change notification (see AX=5310h)
|
|
------
|
|
000Dh-00FFh reserved system events
|
|
01xxh reserved device events
|
|
02xxh OEM-defined APM events
|
|
0300h-FFFFh reserved
|
|
--------p-15530C-----------------------------
|
|
INT 15 - Advanced Power Management v1.1+ - GET POWER STATE
|
|
AX = 530Ch
|
|
BX = device ID (see #00474)
|
|
Return: CF clear if successful
|
|
CX = system state ID (see #00475)
|
|
CF set on error
|
|
AH = error code (01h,09h) (see #00473)
|
|
SeeAlso: AX=5307h
|
|
--------p-15530D-----------------------------
|
|
INT 15 - Advanced Power Management v1.1+ - EN/DISABLE DEVICE POWER MANAGEMENT
|
|
AX = 530Dh
|
|
BX = device ID (see #00474)
|
|
CX = function
|
|
0000h disable power management
|
|
0001h enable power management
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (01h,03h,09h,0Ah,0Bh) (see #00473)
|
|
Desc: specify whether automatic power management should be active for a
|
|
given device
|
|
SeeAlso: AX=5308h,AX=530Fh
|
|
--------p-15530E-----------------------------
|
|
INT 15 - Advanced Power Management v1.1+ - DRIVER VERSION
|
|
AX = 530Eh
|
|
BX = device ID of system BIOS (0000h)
|
|
CH = APM driver major version (BCD)
|
|
CL = APM driver minor version (BCD) (02h for APM v1.2)
|
|
Return: CF clear if successful
|
|
AH = APM connection major version (BCD)
|
|
AL = APM connection minor version (BCD)
|
|
CF set on error
|
|
AH = error code (03h,09h,0Bh) (see #00473)
|
|
SeeAlso: AX=5300h,AX=5303h
|
|
--------p-15530F-----------------------------
|
|
INT 15 - Advanced Power Management v1.1+ - ENGAGE/DISENGAGE POWER MANAGEMENT
|
|
AX = 530Fh
|
|
BX = device ID (see #00474)
|
|
CX = function
|
|
0000h disengage power management
|
|
0001h engage power management
|
|
Return: CF clear if successful
|
|
CF set on error
|
|
AH = error code (01h,09h) (see #00473)
|
|
Notes: unlike AX=5308h, this call does not affect the functioning of the APM
|
|
BIOS
|
|
when cooperative power management is disengaged, the APM BIOS performs
|
|
automatic power management of the system or device
|
|
SeeAlso: AX=5308h,AX=530Dh
|
|
--------p-155310-----------------------------
|
|
INT 15 - Advanced Power Management v1.2 - GET CAPABILITIES
|
|
AX = 5310h
|
|
BX = device ID (see #00474)
|
|
0000h (APM BIOS)
|
|
other reserved
|
|
Return: CF clear if successful
|
|
BL = number of battery units supported (00h if no system batteries)
|
|
CX = capabilities flags (see #00480)
|
|
CF set on error
|
|
AH = error code (01h,09h,86h) (see #00473)
|
|
Notes: this function is supported via the INT 15, 16-bit protected mode, and
|
|
32-bit protected mode interfaces; it does not require that a
|
|
connection be established prior to use
|
|
this function will return the capabilities currently in effect, not
|
|
any new settings which have been made but do not take effect until
|
|
a system restart
|
|
SeeAlso: AX=5300h,AX=530Fh,AX=5311h,AX=5312h,AX=5313h
|
|
|
|
Bitfields for APM v1.2 capabilities flags:
|
|
Bit(s) Description (Table 00480)
|
|
15-8 reserved
|
|
7 PCMCIA Ring Indicator will wake up system from suspend mode
|
|
6 PCMCIA Ring Indicator will wake up system from standby mode
|
|
5 Resume on Ring Indicator will wake up system from suspend mode
|
|
4 Resume on Ring Indicator will wake up system from standby mode
|
|
3 resume timer will wake up system from suspend mode
|
|
2 resume timer will wake up system from standby mode
|
|
1 can enter global suspend state
|
|
0 can enter global standby state
|
|
--------p-155311-----------------------------
|
|
INT 15 - Advanced Power Management v1.2 - GET/SET/DISABLE RESUME TIMER
|
|
AX = 5311h
|
|
BX = device ID (see #00474)
|
|
0000h (APM BIOS)
|
|
other reserved
|
|
CL = function
|
|
00h disable Resume Timer
|
|
01h get Resume Timer
|
|
02h set Resume Timer
|
|
CH = resume time, seconds (BCD)
|
|
DL = resume time, minutes (BCD)
|
|
DH = resume time, hours (BCD)
|
|
SI = resume date (BCD), high byte = month, low byte = day
|
|
DI = resume date, year (BCD)
|
|
Return: CF clear if successful
|
|
---if getting timer---
|
|
CH = resume time, seconds (BCD)
|
|
DL = resume time, minutes (BCD)
|
|
DH = resume time, hours (BCD)
|
|
SI = resume date (BCD), high byte = month, low byte = day
|
|
DI = resume date, year (BCD)
|
|
CF set on error
|
|
AH = error code (03h,09h,0Ah,0Bh,0Ch,0Dh,86h) (see #00473)
|
|
Notes: this function is supported via the INT 15, 16-bit protected mode, and
|
|
32-bit protected mode interfaces
|
|
SeeAlso: AX=5300h,AX=5310h,AX=5312h,AX=5313h
|
|
--------p-155312-----------------------------
|
|
INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE RESUME ON RING
|
|
AX = 5312h
|
|
BX = device ID (see #00474)
|
|
0000h (APM BIOS)
|
|
other reserved
|
|
CL = function
|
|
00h disable Resume on Ring Indicator
|
|
01h enable Resume on Ring Indicator
|
|
02h get Resume on Ring Indicator status
|
|
Return: CF clear if successful
|
|
CX = resume status (0000h disabled, 0001h enabled)
|
|
CF set on error
|
|
AH = error code (03h,09h,0Ah,0Bh,0Ch,86h) (see #00473)
|
|
Notes: this function is supported via the INT 15, 16-bit protected mode, and
|
|
32-bit protected mode interfaces
|
|
SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5313h
|
|
--------p-155313-----------------------------
|
|
INT 15 - Advanced Power Management v1.2 - ENABLE/DISABLE TIMER-BASED REQUESTS
|
|
AX = 5313h
|
|
BX = device ID (see #00474)
|
|
0000h (APM BIOS)
|
|
other reserved
|
|
CL = function
|
|
00h disable timer-based requests
|
|
01h enable timer-based requests
|
|
02h get timer-based requests status
|
|
Return: CF clear if successful
|
|
CX = timer-based requests status (0000h disabled, 0001h enabled)
|
|
CF set on error
|
|
AH = error code (03h,09h,0Ah,0Bh,86h) (see #00473)
|
|
Notes: this function is supported via the INT 15, 16-bit protected mode, and
|
|
32-bit protected mode interfaces
|
|
some BIOSes set AH on return even when successful
|
|
SeeAlso: AX=5300h,AX=5310h,AX=5311h,AX=5312h
|