Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
8
Добавлен:
16.04.2013
Размер:
361.89 Кб
Скачать
Interrupt List, part 3 of 12
This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
--------B-1540-------------------------------
INT 15 - SYSTEM - READ/MODIFY PROFILES (CONVERTIBLE)
AH = 40h
AL = subfunction
00h get system profile in CX and BX
01h set system profile from CX and BX
02h get internal modem profile in BX
03h set internal modem profile from BX
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (80h = profile execution failed)
--------V-154000-----------------------------
INT 15 - Compaq SLT/286 or Portable 386 - READ LCD/PLASMA TIMEOUT
AX = 4000h
Return: AX = 4000h
CL = timeout in minutes, 00h if disabled
SeeAlso: AX=4001h,AX=4600h
--------V-154001-----------------------------
INT 15 - Compaq SLT/286 or Portable 386 - SET LCD/PLASMA TIMEOUT
AX = 4001h
CL = timeout in minutes, 00h to disable
Return: AL = status
00h timeout modified
01h timeout cannot be modified
40h timeout cannot be modified
CL = timeout in minutes, 00h if disabled
SeeAlso: AX=4000h,AX=4601h
--------B-1541-------------------------------
INT 15 - SYSTEM - WAIT ON EXTERNAL EVENT (CONVERTIBLE and some others)
AH = 41h
AL = condition type (see #0341)
BH = condition compare or mask value
BL = timeout value times 55 milliseconds
00h means no timeout
DX = I/O port address if AL bit 4 set
ES:DI -> user byte if AL bit 4 clear
Note: call AH=C0h and examine bit 3 of feature byte 1 to determine whether
this function is supported
SeeAlso: AH=83h,AH=86h,AH=C0h

Bitfields for external event wait condition type:
Bit(s) Description (Table 0341)
0-2 condition to wait for
0 any external event
1 compare and return if equal
2 compare and return if not equal
3 test and return if not zero
4 test and return if zero
3 reserved
4 1=port address, 0=user byte
5-7 reserved
--------B-1542-------------------------------
INT 15 - SYSTEM - REQUEST POWER OFF (CONVERTIBLE,HP 95LX)
AH = 42h
AL = suspend type
00h to use system profile
01h to force suspend regardless of system profile
Note: the HP 95LX apparently suspends regardless of the value in AL; on
power-up, execution will resume following the instruction calling
this function
SeeAlso: AH=44h
--------b-154280-----------------------------
INT 15 - Compaq SLT/286 - ENTER STANDBY
AX = 4280h
Return: AH = 42h
CF clear if successful
CF set if unable to enter standby
SeeAlso: AX=4600h,AX=5307h/BX=0001h/CX=0001h
--------B-1543-------------------------------
INT 15 - SYSTEM - READ SYSTEM STATUS (CONVERTIBLE)
AH = 43h
Return: AL = status bits (see #0342)

Bitfields for Convertible system status:
Bit(s) Description (Table 0342)
7 power low
6 external power in use
5 standby power lost
4 power activated by alarm
3 internal modem powered on
2 RS232/parallel adapter powered on
1 reserved
0 LCD detached
--------B-1544-------------------------------
INT 15 - SYSTEM - (DE)ACTIVATE INTERNAL MODEM POWER (CONVERTIBLE)
AH = 44h
AL = new modem power state (00h power off, 01h power on)
SeeAlso: AH=42h
--------b-1544C0-----------------------------
INT 15 - Olivetti Quaderno - INITIALIZE DIGITAL SIGNAL PROCESSING???
AX = 44C0h
ES:DI -> new DSP procedure (exchanged with CMOS[28h])
ES:SI -> ??? buffer
Return: ES:DI -> old DSP procedure
ES:SI buffer filled with ten bytes from CMOS (addresses 14h-1Ch)
followed by 00h (addresses 15h-1Ch copied only if less than 21h)
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C1-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C1h
???
Return: ???
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C2-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C2h
DL = byte to be written to I/O port 350h
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C3h,AX=44C9h
--------b-1544C3-----------------------------
INT 15 - Olivetti Quaderno - GET ???
AX = 44C3h
Return: DH = bitfields (see #0343)
DL = value read from I/O port 350h
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C2h,AX=44C9h

Bitfields for Olivetti Quaderno ???:
Bit(s) Description (Table 0343)
5-7 5-7 read from I/O port 351h
2-4 zero
1-0 "tres complique"
--------b-1544C4-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C4h and 44C5h
???
Return: ???
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C6-----------------------------
INT 15 - Olivetti Quaderno - READ LCD
AX = 44C6h
Return: DX = FFFFh clock is displayed on LCD display
DX = other: hex number displayed in first four positions of display
BH = left alphanumeric character on display (see #0344)
BL = right alphanumeric character on display (see #0344)
CL = colon flags (see #0345)
Notes: the LCD display has the format HH:HH:AA, where H is a hex digit and A
is an alphanumeric character
this function is also supported by XBIOS.COM
SeeAlso: AX=44C7h,AX=44C9h

(Table 0344)
Values for Olivetti Quaderno LCD alphanumeric characters:
00h-0Fh hex digit
2Bh "+"
2Dh "-"
30h-39h "0" to "9"
41h-5Ah "A" to "Z"
61h-6Ah "a" to "z"
else blank

Bitfields for Olivetti Quaderno LCD colon flags:
Bit(s) Description (Table 0345)
0 right colon on
1 left colon on
2-7 unused
--------b-1544C7-----------------------------
INT 15 - Olivetti Quaderno - WRITE LCD
AX = 44C7h
DX = hex display
FFFFh display clock and "HI", "Md", or "Lo"
BH,BL,CL unused
other: display specified hex number in first four positions
BH = left alphanumeric character on display (see #0344)
BL = right alphanumeric character on display (see #0344)
CL = colon flags (see #0345)
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C6h
--------b-1544C8-----------------------------
INT 15 - Olivetti Quaderno - ???
AX = 44C8h
CL = ??? (00h,02h,21h)
CH = ???
???
Return: ???
Note: this function is also supported by XBIOS.COM
SeeAlso: AX=44C9h
--------b-1544C9-----------------------------
INT 15 - Olivetti Quaderno - GET XBIOS VERSION
AX = 44C9h
Return: AL = major version
AH = minor version
Note: this function is also supported by XBIOS.COM
--------b-1546-------------------------------
INT 15 U - HP 100LX/200LX - SET POWER OFF TIMEOUT
AH = 46h
BX = timeout value in ticks
0000h inhibit auto power off
Note: the 200LX default timeout is 0CCDh = 3277 ticks = approx. 3 min.
--------b-154600-----------------------------
INT 15 - Compaq SLT/286 - READ POWER CONSERVATION/MODEM CONFIGURATION
AX = 4600h
Return: AH = modem configuration information (see #0346)
AL = power conservation status information (see #0347)
BH = default system inactivity timeout (1-21 minutes)
BL = current system inactivity timeout (1-21 minutes)
CH = default video display inactivity timeout (1-63 minutes)
CL = current video display inactivity timeout (1-63 minutes)
DH = default fixed disk drive inactivity timeout (1-21 minutes)
DL = current fixed disk drive inactivity timeout (1-21 minutes)
SeeAlso: AX=4280h,AX=4601h,INT 77

Bitfields for Compaq SLT/286 modem configuration information:
Bit(s) Description (Table 0346)
0 powerup state (0 off, 1 on)
1 modem installed
2 IRQ line assignment (0 IRQ 4, 1 IRQ 3)
3 COM port assignment (0 = COM 2, 1 = COM 1)
4 modem state (0 not assigned, 1 assigned)
5 modem is on

Bitfields for Compaq SLT/286 power conservation status:
Bit(s) Description (Table 0347)
0 power source (0 internal, 1 external)
1-2 low battery state
00 no low battery condition
01 low battery 1
10 reserved
11 low battery 2
3-4 power conservation mode
00 automatic, 01 on, 10 off, 11 reserved
--------b-154601-----------------------------
INT 15 - Compaq SLT/286 - MODIFY POWER CONSERVATION/MODEM CONFIGURATION
AX = 4601h
BL = system inactivity timeout (1-21 minutes)
FFh do not change
CL = video display inactivity timeout (1-63 minutes)
FFh do not change
DL = current fixed disk drive inactivity timeout (1-21 minutes)
FFh do not change
DH = new modem state (00h turn off, 01h turn on, FFh don't change)
Return: CF clear if successful
AH = 00h
BL = current system inactivity timeout (1-21 minutes)
CL = current video display inactivity timeout (1-63 minutes)
DL = current fixed disk drive inactivity timeout (1-21 minutes)
DH = modem state (FFh unchanged, 00h turned off, 01h turned on)
CF set on error
AH = error code
01h input is out of range
02h no modem present
SeeAlso: AX=4600h,INT 77
--------b-154604-----------------------------
INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - GET ???
AX = 4604h
Return: CF clear if successful
AL = byte read from I/O port 03F8h
CF set on error (not supported)
AH = 86h (unsupported function)
Note: also supported by 7/26/93 LTE Lite 386 ROM
--------b-154605-----------------------------
INT 15 - Compaq Contura 486 and "Alladin" 08/05/93 ROMs - ???
AX = 4605h
Return: CF clear if successful
CF set on error (not supported)
AH = 86h (unsupported function)
Note: this function is a NOP (other than clearing CF) in the 08/05/93 version
of the Contura 486/486c/486cx and "Aladdin" ROM, and the 7/26/93
LTE Lite 386 ROM
--------S-1549-------------------------------
INT 15 U - HP 100LX/200LX - SERIAL INTERFACE SELECT
AH = 49h
AL = serial interface
00h wired (COM1)
01h infrared
Note: interface should only be changed in deactivated state (see AH=4Ah)
SeeAlso: AH=4Ah"HP"
--------J-154900-----------------------------
INT 15 - Far East MS-DOS - GET BIOS TYPE
AX = 4900h
Return: CF clear if successful
AH = 00h
BL = BIOS mode
00h DOS/V
01h standard DBCS DOS (hardware DBCS support)
CF set on error
AH = 86h (function not supported)
Note: in practice, DOS/J returns AH=86h; AX DOS does not support this call
SeeAlso: AH=50h,INT 21/AH=30h
--------S-154A-------------------------------
INT 15 U - HP 100LX/200LX - SERIAL INTERFACE CONTROL
AH = 4Ah
AL = control
00h deactivate
01h activate
Note: interface selected with AH=49h will be (de)activated
SeeAlso: AH=49h"HP"
--------b-154DD4-----------------------------
INT 15 - HP 95LX/100LX/200LX - INSTALLATION CHECK
AX = 4DD4h
Return: BX = 4850h ("HP") if HP 95LX/100LX/200LX
CX = model
0101h HP 95LX
0102h HP 100LX/200LX
DH = ???
02h HP 200LX 2MB BIOS 1.01 A D german
DL = ???
00h HP 95LX
01h HP 200LX 2MB BIOS 1.01 A D german
SeeAlso: INT 0B"HP 95LX",INT 0F"HP 95LX",INT 5F/AH=00h,INT 60/DI=0100h
SeeAlso: INT 61"HP 95LX"
--------b-154E-------------------------------
INT 15 - HP 95LX - ENABLE/DISABLE LIGHT SLEEP
AH = 4Eh
AL = light sleep
00h disabled
01h enabled
Note: when light sleep is disabled, the system will continue running at full
speed; when enabled, it may automatically slow to conserve batteries
SeeAlso: INT 06"HP 95LX",INT 60/DI=0100h
--------B-154F-------------------------------
INT 15 C - KEYBOARD - KEYBOARD INTERCEPT (AT model 3x9,XT2,XT286,CONV,PS)
AH = 4Fh
AL = hardware scan code
CF set
Return: CF set
AL = hardware scan code
CF clear
scan code should be ignored
Note: called by INT 09 handler to translate scan codes; the INT 09 code does
not examine the scan code it reads from the keyboard until after
this function returns. This permits software to rearrange the
keyboard; for example, swapping the CapsLock and Control keys, or
turning the right Shift key into Enter.
SeeAlso: INT 09,INT 15/AH=C0h
--------J-1550-------------------------------
INT 15 - DOS/V - FONT SUBSYSTEM ACCESS
AH = 50h
AL = which function address to retrieve
00h "read font" function
01h "write font" function
BL = 00h
BH = character size (00h single-byte, 01h double-byte)
DH = width of character cell
DL = height of character cell
BP = code page (see #0348)
Return: CF clear if successful
AH = 00h
ES:BX -> requested function's address
CF set on error
AH = error code (see #0349)
SeeAlso: AH=49h

(Table 0348)
Values for DOS/V code page:
0 default
437 US English
932 Japanese
934 Korea
936 China
938 Taiwan

(Table 0349)
Values for DOS/V error code:
01h invalid font type in BH
02h BL not zero
03h invalid font size
04h invalid code page
80h unsupported function (PC)
86h unsupported function (XT)
--------T-1550-------------------------------
INT 15 - VMIX v2.???+ - "sys_vm_page" - SET NEW VIRTUAL PAGE TABLE
AH = 50h
BX = segment of page directory table
CX = page number of page table
SeeAlso: AH=10h"VMiX",AH=51h"VMiX",AH=52h"VMiX"
--------T-1551-------------------------------
INT 15 - VMiX v2.???+ - "sys_vm_func" - EXECUTE FUNCTION IN PROTECTED MODE
AH = 51h
STACK: DWORD selector:offset of function
Return: registers as returned by function
Note: executes function with privilege level 0 (highest privilege)
SeeAlso: AH=10h"VMiX",AH=52h"VMiX"
--------B-155101-----------------------------
INT 15 - SYSTEM - later PS/2s - EXPANSION UNIT, RETURN CONFIGURATION NUMBER
AX = 5101h
Return: CF set if successful
AH = 00h
AL = current configuration number
00h system unit only
FFh configuration not recognized
BX = status flag
bits 0-14: reserved
bit 15: additional data is available (location TBD)
CF clear on error
AH = status
01h expansion unit is not present
86h function not supported
Note: CF convention is the reverse of the standard convention for this
interrupt. (Perhaps a typo in the IBM BIOS Tech Ref?)
--------T-1552-------------------------------
INT 15 - VMiX v2.???+ - "sys_vm_init" - INITIALIZE PROTECTED-MODE ENVIRONMENT
AH = 52h
SeeAlso: AH=50h"VMiX",AH=51h"VMiX"
--------p-155300-----------------------------
INT 15 - Advanced Power Management Specification - 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 #0350)
CF set on error
AH = error code (06h,86h) (see #0351)

Bitfields for APM flags:
Bit(s) Description (Table 0350)
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 0351)
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-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
--------p-155301-----------------------------
INT 15 - Advanced Power Management Specification - 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 #0351)
SeeAlso: AX=5302h,AX=5303h,AX=5304h
--------p-155302-----------------------------
INT 15 R - Advanced Power Management Spec - 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 #0351)
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
SeeAlso: AX=5301h,AX=5303h,AX=5304h
--------p-155303-----------------------------
INT 15 - Advanced Power Management Spec - 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 #0351)
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
SeeAlso: AX=5301h,AX=5302h,AX=5304h
--------p-155304-----------------------------
INT 15 - Advanced Power Management Specification - 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 #0351)
SeeAlso: AX=5301h,AX=5302h,AX=5303h
--------p-155305-----------------------------
INT 15 - Advanced Power Management Specification - CPU IDLE
AX = 5305h
Return: CF clear if successful (after system leaves idle state)
CF set on error
AH = error code (03h,0Bh) (see #0351)
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 Specification - CPU BUSY
AX = 5306h
Return: CF clear if successful
CF set on error
AH = error code (03h,0Bh) (see #0351)
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 Specification - SET POWER STATE
AX = 5307h
BX = device ID (see #0352)
CX = system state ID (see #0353)
Return: CF clear if successful
CF set on error
AH = error code (01h,03h,09h,0Ah,0Bh,60h) (see #0351)
Note: should not be called from within a hardware interrupt handler to avoid
reentrance problems
SeeAlso: AX=530Ch

(Table 0352)
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-DFFFh reserved
Exxxh OEM-defined power device IDs
F000h-FFFFh reserved

(Table 0353)
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)
---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 Specification - 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/BX=0001h,AX=530Bh
--------p-155307CX0002-----------------------
INT 15 - Advanced Power Management Specification - 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/BX=0001h,AX=530Bh
--------p-155308-----------------------------
INT 15 - Advanced Power Management Spec - 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 #0351)
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
SeeAlso: AX=5309h,AX=530Dh,AX=530Fh
--------p-155309-----------------------------
INT 15 - Advanced Power Management Specification - 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 (09h) (see #0351)
Note: should not be called from within a hardware interrupt handler to avoid
reentrance problems
SeeAlso: AX=5308h
--------p-15530ABX0001-----------------------
INT 15 - Advanced Power Management Specification - GET POWER STATUS
AX = 530Ah
BX = 0001h (device ID for all devices power-managed by APM)
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 #0354)
CH = battery flag (APM v1.1) (see #0355)
CL = remaining battery life, percentage
00h-64h (0-100) percentage of full charge
FFh unknown
DX = remaining battery life, time (APM v1.1) (see #0356)
CF set on error
AH = error code (09h) (see #0351)
Note: should not be called from within a hardware interrupt handler to avoid
reentrance problems

(Table 0354)
Values for APM v1.0+ battery status:
00h high
01h low
02h critical
03h charging
FFh unknown
other reserved

Bitfields for APM v1.1 battery flag:
Bit(s) Description (Table 0355)
0 high
1 low
2 critical
3 charging
4-6 reserved
7 no system battery
Note: all bits set (FFh) if unknown

Bitfields for APM v1.1 remaining battery life:
Bit(s) Description (Table 0356)
15 time units: 0=seconds, 1=minutes
14-0 battery life in minutes or seconds
Note: all bits set (FFFFh) if unknown
--------p-15530B-----------------------------
INT 15 - Advanced Power Management Specification - GET POWER MANAGEMENT EVENT
AX = 530Bh
Return: CF clear if successful
BX = event code (see #0357)
CF set on error
AH = error code (03h,0Bh,80h) (see #0351)
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/BX=0001h/CX=0001h,AX=5307h/BX=0001h/CX=0002h

(Table 0357)
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
000Ch-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 #0352)
Return: CF clear if successful
BX = system state ID (see #0353)
CF set on error
AH = error code (01h,09h) (see #0351)
SeeAlso: AX=5307h
--------p-15530D-----------------------------
INT 15 - Advanced Power Management v1.1 - EN/DISABLE DEVICE POWER MANAGEMENT
AX = 530Dh
BX = device ID (see #0352)
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 #0351)
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)
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 #0351)
SeeAlso: AX=5300h
--------p-15530F-----------------------------
INT 15 - Advanced Power Management v1.1 - ENGAGE/DISENGAGE POWER MANAGEMENT
AX = 530Fh
BX = device ID (see #0352)
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 #0351)
Note: unlike AX=5308h, this call does not affect the functioning of the APM
BIOS
SeeAlso: AX=5308h,AX=530Dh
--------p-155380BH00-------------------------
INT 15 - APM SL Enhanced v1.0 - GET SUSPEND/GLOBAL STANDBY MODE
AX = 5380h
BH = 00h
Return: CF clear if successful
AL = 82360SL Auto Power Off Timer High Count (APWR_TMRH)
BL = sustdbymode (see #0358)
SeeAlso: AX=5380h/BH=01h,AX=5380h/BH=02h,AX=5380h/BH=7Fh

Bitfields for APM SL sustdbymode:
Bit(s) Description (Table 0358)
2 ???
1 Auto Power Off Timer Enable (APWR_TMR_EN)
0 ???
--------p-155380BH01-------------------------
INT 15 - APM SL Enhanced v1.0 - SET SUSPEND/GLOBAL STANDBY MODE
AX = 5380h
BH = 01h
BL = sustdbymode (see #0358)
Return: CF clear if successful
SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
--------p-155380BH02-------------------------
INT 15 - APM SL Enhanced v1.0 - GET GLOBAL STANDBY TIMER
AX = 5380h
BH = 02h
Return: CF clear if successful
SI:DI = timer count in seconds (actually 1.024 seconds)
Desc: reads the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=03h,AX=5380h/BH=04h,AX=5380h/BH=7Fh
--------p-155380BH03-------------------------
INT 15 - APM SL Enhanced v1.0 - SET GLOBAL STANDBY TIMER
AX = 5380h
BH = 03h
SI:DI = timer count in seconds (actually 1.024 seconds)
Return: CF clear if successful
Desc: sets the value of 82360SL GSTDBY_TMRH & GSTDBY_TMRL registers
Note: the maximum timer count is 268431 seconds
SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=7Fh
--------p-155380BH04-------------------------
INT 15 - APM SL Enhanced v1.0 - GET AUTO POWER OFF TIMER
AX = 5380h
BH = 04h
Return: CF clear if successful
SI:DI = timer count in seconds (actually 1.024 seconds)
Desc: reads the value of 82360SL APWR_TMRH & APWR_TMRL registers
SeeAlso: AX=5380h/BH=02h,AX=5380h/BH=05h,AX=5380h/BH=06h,AX=5380h/BH=7Fh
--------p-155380BH05-------------------------
INT 15 - APM SL Enhanced v1.0 - SET AUTO POWER OFF TIMER
AX = 5380h
BH = 05h
SI:DI = timer count in seconds (actually 1.024 seconds)
Return: CF clear if successful
Desc: sets the value of 82360SL APWR_TMRH & APWR_TMRL registers
Note: the maximum timer count is 134213 seconds
SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=7Fh
--------p-155380BH06-------------------------
INT 15 - APM SL Enhanced v1.0 - GET RESUME CONDITION
AX = 5380h
BH = 06h
Return: CF clear if successful
BL = resume condition (see #0359)
Desc: reads the value of 82360SL RESUME_MASK register
SeeAlso: AX=5380h/BH=04h,AX=5380h/BH=07h,AX=5380h/BH=08h,AX=5380h/BH=7Fh

Bitfields for APM SL resume condition:
Bit(s) Description (Table 0359)
7-2 reserved (0)
1 alarm enabled (resume on CMOS alarm)
0 ring enabled
--------p-155380BH07-------------------------
INT 15 - APM SL Enhanced v1.0 - SET RESUME CONDITION
AX = 5380h
BH = 07h
BL = resume condition (see #0359)
Return: CF clear if successful
Desc: sets the value of 82360SL RESUME_MASK register
SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=7Fh
--------p-155380BH08-------------------------
INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT TIME
AX = 5380h
BH = 08h
Return: CF clear if successful
CH = hours
CL = minutes
SI = seconds
CF set on error
AH = error code (see #0360)
Desc: gets calendar event time from CMOS ram
SeeAlso: AX=5380h/BH=06h,AX=5380h/BH=09h,AX=5380h/BH=0Ah,AX=5380h/BH=7Fh

(Table 0360)
Values for APM SL error code:
02h no alarm set
03h no battery
--------p-155380BH09-------------------------
INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT TIME
AX = 5380h
BH = 09h
CH = hours
CL = minutes
SI = seconds
Return: CF clear if successful
CF set on error
AH = error code (see #0360)
Desc: sets calendar event time in CMOS ram, enables Alarm resume
SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=7Fh
--------p-155380BH0A-------------------------
INT 15 - APM SL Enhanced v1.0 - GET CALENDAR EVENT DATE
AX = 5380h
BH = 0Ah
Return: CF clear if successful
SI = century
DI = year
CH = month
CL = day
CF set on error
AH = error code (see #0360)
Desc: reads calendar event date from Extended CMOS ram
SeeAlso: AX=5380h/BH=08h,AX=5380h/BH=0Bh,AX=5380h/BH=0Ch,AX=5380h/BH=7Fh
--------p-155380BH0B-------------------------
INT 15 - APM SL Enhanced v1.0 - SET CALENDAR EVENT DATE
AX = 5380h
BH = 0Bh
SI = century
DI = year
CH = month
CL = day
Return: CF clear if successful
CF set on error
AH = error code (see #0360)
Desc: sets calendar event date in Extended CMOS ram
SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=7Fh
--------p-155380BH0C-------------------------
INT 15 - APM SL Enhanced v1.0 - GET CPU SPEED MODE
AX = 5380h
BH = 0Ch
Return: CF clear if successful
CL = CPU clock divider (1,2,4 or 8)
BL = autocpumode ???
Desc: reads bits 4-5 of CPUPWRMODE register
SeeAlso: AX=5380h/BH=0Ah,AX=5380h/BH=0Dh,AX=5380h/BH=7Fh
--------p-155380BH0D-------------------------
INT 15 - APM SL Enhanced v1.0 - SET CPU SPEED MODE
AX = 5380h
BH = 0Dh
CL = CPU clock divider (1,2,4 or 8)
BL = autocpumode ???
Return: CF clear if successful
Desc: writes bits 4-5 of CPUPWRMODE register
SeeAlso: AX=5380h/BH=0Ch,AX=5380h/BH=7Eh,AX=5380h/BH=7Fh
--------p-155380BH7E-------------------------
INT 15 - APM SL Enhanced v1.0 - SL HW PARAMETER
AX = 5380h
BH = 7Eh
Return: AL = ???
03h on A-Step 386SL BIOSes
12h on later steps
BX = Control port (00B0h)
SeeAlso: AX=5380h/BH=00h,AX=5380h/BH=7Fh
--------p-155380BH7F-------------------------
INT 15 - Advanced Power Management v1.1 - OEM APM INSTALLATION CHECK
AX = 5380h
BH = 7Fh
Return: CF clear if successful
BX = OEM identifier
all other registers OEM-defined
---Intel SL Enhanced Option BIOS---
BX = 534Ch ('SL')
CL = 4Fh ('O')
AL = version (10h = 1.0)
CF set on error
AH = error code (03h) (see #0351)
SeeAlso: AX=5380h/BH=00h
--------p-155380-----------------------------
INT 15 - Advanced Power Management v1.1 - OEM APM FUNCTIONS
AX = 5380h
BH <> 7Fh
all other registers OEM-defined
Return: OEM-defined
SeeAlso: AX=5380h/BH=7Fh
--------T-155400-----------------------------
INT 15 C - Omniview Multitasker - INSTALLATION NOTIFICATION
AX = 5400h
ES:BX -> device information tables
DI:DX -> dispatcher entry point
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5407h,INT 2F/AX=DE00h
--------T-155401-----------------------------
INT 15 C - Omniview Multitasker - PROCESS CREATION
AX = 5401h
ES:BX = process handle
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5402h,INT 2F/AX=DE04h
--------T-155402-----------------------------
INT 15 C - Omniview Multitasker - PROCESS DESTRUCTION
AX = 5402h
ES:DX = process handle
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5401h,INT 2F/AX=DE05h
--------T-155403-----------------------------
INT 15 C - Omniview Multitasker - SAVE
AX = 5403h
ES:DX = process swapping out
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5404h,INT 2F/AX=DE08h
--------T-155404-----------------------------
INT 15 C - Omniview Multitasker - RESTORE
AX = 5404h
ES:DX = process swapping in
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5403h,INT 2F/AX=DE09h
--------T-155405-----------------------------
INT 15 C - Omniview Multitasker - SWITCHING TO BACKGROUND
AX = 5405h
ES:DX = process swapping in
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5406h
--------T-155406-----------------------------
INT 15 C - Omniview Multitasker - SWITCHING TO FOREGROUND
AX = 5406h
ES:DX = process swapping in
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5405h
--------T-155407-----------------------------
INT 15 C - Omniview Multitasker - EXIT NOTIFICATION
AX = 5407h
Note: called by OmniView to notify programs loaded before OmniView of state
changes inside OmniView
SeeAlso: AX=5400h,INT 2F/AX=DE03h
--------b-1560------------------------------------
INT 15 - HUNTER 16 - SET SYSTEM CLOCK SPEED
AH = 60h
AL = new speed
00h normal (8 MHz)
01h Slow Mode 1 (4 MHz)
02h Slow Mode 2 (2 MHz)
Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
SeeAlso: AX=6301h
--------p-156000-----------------------------
INT 15 U HP 100LX/200LX - GET MAIN BATTERY LEVEL
AX = 6000h
Return: AX = battery level
Note: multiply the returned value with 1Bh and add 622h to get millivolts
SeeAlso: AX=6001h,AX=6002h,AX=6003h,AX=6004h
--------p-156001-----------------------------
INT 15 U HP 100LX/200LX - GET BACKUP BATTERY LEVEL
AX = 6001h
Return: AX = battery level
Note: multiply the returned value with 1Bh and add 622h to get millivolts
SeeAlso: AX=6000h,AX=6002h
--------p-156002-----------------------------
INT 15 U HP 100LX/200LX - GET POWER INFO
AX = 6002h
Return: AL = power settings (see #0361)
SeeAlso: AX=6000h,AX=6003h,AX=6004h

Bitfields for power settings:
Bit(s) Description (Table 0361)
0-1 unused ???
2 card battery status low (OK if bit clear)
3 battery charging off (disabled if bits 3-5 clear)
4 battery charging slow
5 battery charging fast
6 power adaptor active
7 battery type NiCad (alkaline if bit clear)
--------p-156003-----------------------------
INT 15 U HP 100LX/200LX - SET MAIN BATTERY TYPE
AX = 6003h
BL = battery type
00h alkaline
01h NiCad
SeeAlso: AX=6000h,AX=6004h
--------p-156004-----------------------------
INT 15 U HP 100LX/200LX - SET BATTERY CHARGING MODE
AX = 6004h
BL = charging
00h disabled
01h enabled
SeeAlso: AX=6000h,AX=6003h
--------b-1561------------------------------------
INT 15 - HUNTER 16 - GET POWER LEVEL
AH = 61h
Return: AH = percentage of full power left (0..100)
Desc: determine how much battery power is left
SeeAlso: AH=62h,AH=66h,AH=73h"HUNTER"
--------b-1562------------------------------------
INT 15 - HUNTER 16 - SET LOW POWER THRESHOLD
AH = 62h
AL = level (00h 5%, 01h 10%, ... 12h 95%)
BX = interval between power low warnings in seconds (1..600)
Return: AH = Status
Desc: set the level (relative to full power) when power-low warnings begin
and the interval between the warnings
SeeAlso: AH=61h,AH=65h,AH=66h
--------b-156300----------------------------------
INT 15 - HUNTER 16 - GET IDLE TIMEOUT
AX = 6300h
Return: AH = status
BX = timeout in seconds (0-3600)
Desc: get the idle timeout value, the interval without keyboard or
communications activity before the system shuts down
SeeAlso: AX=6301h
--------b-156301----------------------------------
INT 15 - HUNTER 16 - SET IDLE TIMEOUT
AX = 6301h
BX = timeout in seconds (0-3600)
Desc: sets the idle timeout value, the interval without keyboard or
communications activity before the system shuts down
SeeAlso: AX=6300h
--------b-1564------------------------------------
INT 15 - HUNTER 16 - CONTROL RESUME MODE
AH = 64h
AL = new state
00h disable Resume mode
01h enable Resume mode
Return: AH = status
Desc: turn Resume mode on or off. In Resume mode the system starts in
the application that was running when it shut down as if nothing
had happened.
SeeAlso: AH=67h,AH=68h,AH=69h
--------b-1565------------------------------------
INT 15 - HUNTER 16 - AUTHORISE CHARGING
AH = 65h
AL = charging level
01h charging not allowed
02h charging allowed until power down
03h charging allowed until batteries changed or fail.
Ask user if charging is still allowed on next poweron
04h charging allowed indefinitely
BX = 0203h
CX = 0405h
DX = 0607h
Return: AH = status
SeeAlso: AH=66h,AH=68h
--------b-1566------------------------------------
INT 15 - HUNTER 16 - SET BATTERY LEVEL
AH = 66h
AL = level in percent of maximum (0..100)
Return: AH = status
SeeAlso: AH=61h,AH=65h
--------b-1567------------------------------------
INT 15 - HUNTER 16 - CONTROL STOP MODE
AH = 67h
AL = mode when waiting for input
00h use STOP mode (allows communication)
01h use HALT mode (disallows communication)
Return: AH = status
Desc: select the power save mode to use when waiting for input
SeeAlso: AH=69h
--------b-1568------------------------------------
INT 15 - HUNTER 16 - REQUEST POWER DOWN
AH = 68h
Desc: turns off the Hunter 16 if power down is allowed (see AH=69h)
SeeAlso: AH=69h
--------b-1569------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER DOWN AVAILABILITY
AH = 69h
AL = mode
00h inhibit power down
01h allow power down
Return: AH = status
SeeAlso: AH=67h,AH=68h,AH=6Ah
--------b-156A------------------------------------
INT 15 - HUNTER 16 - CONTROL SLOW MODE
AH = 6Ah
AL = mode
00h inhibit Slow mode
01h allow Slow mode
Return: AH = status
SeeAlso: AH=69h
--------b-156B------------------------------------
INT 15 - HUNTER 16 - GET ROM BIOS VERSION
AH = 6Bh
Return: BH = version number (ASCII)
BL = release number (ASCII)
CH = minor release number (ASCII)
CL = minor release number (ASCII)
SeeAlso: AH=6Ch
--------b-156C------------------------------------
INT 15 - HUNTER 16 - GET SERIAL NUMBER
AH = 6Ch
Return: BL:CX = BCD serial number
Note: when shipped, all Hunter 16s have the same Serial Number, but a
different number can be stored (see AH=72h)
SeeAlso: AH=6Bh,AH=72h
--------b-156D------------------------------------
INT 15 - HUNTER 16 - GET EVENT DETAIL
AH = 6Dh
Return: AH = 00h if successful
CX:BX = event flags bit 0..31 (see #0362)
Note: this function allows testing for events
SeeAlso: AH=6Eh,AH=6Fh

Bitfields for HUNTER 16 events:
Bit(s) Description (Table 0362)
6 RI received
5 RTC Alarm
4 data received on COM2
3 data received on COM1
2 error on COM2
1 error on COM1
0 PWR button pressed
--------b-156E------------------------------------
INT 15 - HUNTER 16 - ENABLE/TRAP EVENT
AH = 6Eh
AL = Software Interrupt
00h do not trap event
else trap as software interrupt number AL
BH = event number (see AH=6Dh)
BL = enable mask
00h disable event
01h enable event
Return: AH = 00h if successful
SeeAlso: AH=6Dh,AH=6Fh
--------b-156F------------------------------------
INT 15 - HUNTER 16 - ACKNOWLEDGE EVENT
AH = 6Fh
AL = event number (see AH=6Dh)
Return: AH = 00h if successful
Desc: Acknowledges the event, so the next similar event can be detected
SeeAlso: AH=6Dh"HUNTER",AH=6Eh
----------157000-----------------------------
INT 15 - Tandy 1000SL/TL - READ FROM EEPROM
AX = 7000h
BL = number of word to read (00h-3Fh)
Return: CF clear if function supported
DX = contents of EEPROM word
Note: newer Tandy 1000-series machines use EEPROM instead of CMOS RAM in
the clock chip to store system configuration information
SeeAlso: AX=7001h
----------157001-----------------------------
INT 15 - Tandy 1000SL/TL - WRITE TO EEPROM
AX = 7001h
BL = number of word to read (00h-3Fh)
DX = new value for EEPROM word
Return: CF clear if function supported
Note: the EEPROMs are normally written only by the system setup program;
changing the values can badly mess up a Tandy
SeeAlso: AX=7000h
--------b-1570------------------------------------
INT 15 - HUNTER 16 - CONTROL SOUND
AH = 70h
AL = new state
00h disable sound
else enable sound
Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
--------b-1571------------------------------------
INT 15 - HUNTER 16 - SELECT POWER UP KEYS
AH = 71h
BL = column
BH = row
AL = column switch (00h disable, 01h enable)
CL = row switch (00h disable, 01h enable)
Return: AH = status
SeeAlso: AH=7Bh,AH=88h
--------b-157200----------------------------------
INT 15 - HUNTER 16 - RESET SERIAL NUMBER
AX = 7200h
Return: AH = 00h if successful
Desc: reset the serial number to the default serial number present when the
Hunter 16 was shipped
SeeAlso: AH=6Ch,AH=72h
--------b-1572------------------------------------
INT 15 - HUNTER 16 - REDIRECT SERIAL NUMBER
AH = 72h
AL nonzero
DS:BX -> new serial number (6 ASCII digits)
Return: AH = 00h if successful
Desc: install a new serial number
SeeAlso: AH=6Ch,AX=7200h
--------b-1573------------------------------------
INT 15 - HUNTER 16 - GET ORACLE GT POWER LEVEL
AH = 73h
AL = drive (0: A:, 1: B:)
Return: AH = status
00h successful
FFh Oracle GT drive not connected
AL = power level in percent of maximum (0..100)
Desc: get the power remaining in the Oracle GT batteries
SeeAlso: AH=61h
--------b-1574------------------------------------
INT 15 - HUNTER 16 - SET BACKLIGHT POWER UP STATE
AH = 74h
AL = new level
01h off
02h unchanged
03h change level
BL = desired level (00h-7Fh)
Return: AH = status
Desc: select the backlight level to use when the Hunter is next turned on
SeeAlso: AH=64h,AH=75h,INT 10/AH=64h,INT 10/AH=78h
--------b-1575------------------------------------
INT 15 - HUNTER 16 - SET CONTRAST POWER UP STATE
AH = 75h
AL = new level
01h off
02h unchanged
03h change level
BL = desired level (00h-7Fh)
Return: AH = status
Desc: select the LCD contrast level to use when the Hunter is next turned on
SeeAlso: AH=63h,AH=74h
--------b-1576------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER SAVE
AH = 76h
BX = power save control (see #0363)
SeeAlso: AH=74h

Bitfields for HUNTER 16 power save control:
Bit(s) Description (Table 0363)
0 power save enabled
1 inhibit power save when waiting for COM1 data
2 inhibit power save when waiting for COM2 data
3 inhibit power save when waiting for data from barcode wand
4 inhibit power up on timer tick
--------b-1579------------------------------------
INT 15 - HUNTER 16 - REDIRECT LPT1
AH = 79h
AL = port to which to redirect (00h COM1, 01h COM2)
--------b-157A------------------------------------
INT 15 - HUNTER 16 - INVOKE HOT KEY
AH = 7Ah
Desc: this function has the same effect as pressing the HOT key
SeeAlso: AH=7Bh
--------b-157B------------------------------------
INT 15 - HUNTER 16 - CONTROL HOT KEY
AH = 7Bh
AL = 00h prevent HOT key
else allow HOT key
Desc: Allow or prevent the HOT key function which is used to examine and
change the Hunter setup
SeeAlso: AH=71h,AH=7Ah,AH=7Ch
--------b-157C------------------------------------
INT 15 - HUNTER 16 - CONTROL HOT KEY POWER OPTION
AH = 7Ch
AL = 00h prevent HOT key power option
else allow HOT key power option
Desc: allow or prevent changing the power options
SeeAlso: AH=7Bh,AH=7Dh
--------b-157D------------------------------------
INT 15 - HUNTER 16 - OVERRIDE LOW POWER TURN OFF
AH = 7Dh
AL = 00h turn off after 10 warnings
else never turn off
Desc: specify whether the Hunter 16 turns off after 10 low power warnings
SeeAlso: AH=7Ch
--------b-157E------------------------------------
INT 15 - HUNTER 16 - CONTROL BATTERY CHANGE FACILITIES (APM)
AH = 7Eh
AL = 00h do not prompt
else prompt
Desc: select whether the user is prompted for the battery state if the
battery cap has been off when the system is turned on
SeeAlso: AH=7Fh
--------b-157F------------------------------------
INT 15 - HUNTER 16 - SET BATTERY TYPE (APM)
AH = 7Fh
AL = battery type
00h non-rechargeable
else rechargeable
SeeAlso: AH=7Eh
--------B-1580-------------------------------
INT 15 C - OS HOOK - DEVICE OPEN (AT,XT286,PS)
AH = 80h
BX = device ID
CX = process ID
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0364)
Note: this function should be hooked by a multitasker which wishes to keep
track of device ownership; the default BIOS handler merely returns
successfully
SeeAlso: AH=81h,AH=82h

(Table 0364)
Values for status:
80h invalid command (PC,PCjr)
86h function not supported (XT)
--------b-1580------------------------------------
INT 15 - HUNTER 16 - GET/SET BATTERY CAPACITY (APM)
AH = 80h
AL = function
00h get
Return: AL = capacity (500mA + AL * 50mA, max 40 = 2500mA)
else set
BL = battery capacity (same as AL above)
SeeAlso: AH=61h"HUNTER",AH=81h"HUNTER"
--------B-1581-------------------------------
INT 15 C - OS HOOK - DEVICE CLOSE
AH = 81h
BX = device ID
CX = process ID
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0364)
Note: this function should be hooked by a multitasker which wishes to keep
track of device ownership; the default BIOS handler merely returns
successfully
SeeAlso: AH=80h,AH=82h
--------b-1581------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER OUTPUT
AH = 81h
AL = new state of power output (00h off, nonzero on)
Desc: turn the +5V low power output on or off
SeeAlso: AH=80h"HUNTER"
--------B-1582-------------------------------
INT 15 C - OS HOOK - PROGRAM TERMINATION
AH = 82h
BX = process ID
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0364)
Notes: closes all devices opened by the given process ID with function 80h
this function should be hooked by a multitasker which wishes to keep
track of device ownership; the default BIOS handler merely returns
successfully
SeeAlso: AH=80h,AH=81h
--------b-1582------------------------------------
INT 15 - HUNTER 16 - SOUND OUTPUT
AH = 82h
DX = length (duration in seconds = DX * 666670 / frequency)
BX = pitch (see #0365)
Desc: Sound the tone specified in BX for the duration in DX
SeeAlso: AX=1019h

(Table 0365)
Values for HUNTER 16 sound pitch:
BX(dec) Note Frequency BX(dec) Note Frequency
425 G 1568.000 1515 A 440.000
451 F# 1479.503 1605 G# 415.307
477 F 1396.900 1701 G 392.000
506 E 1318.500 1802 F# 369.998
536 D# 1244.523 1909 F 349.230
568 D 1174.700 2022 E 329.630
601 C# 1108.749 2143 D# 311.127
637 C 1046.500 2270 D 293.660
675 B 958.770 2405 C# 277.183
715 A# 932.329 2548 MID C 261.630
758 A 880.000 2700 B 246.940
803 G# 830.609 2860 A# 233.081
850 G 783.990 3030 A 220.000
901 F# 739.990 3210 G# 207.654
954 F 698.460 3401 G 196.000
1011 E 659.260 3604 F# 184.996
1071 D# 622.257 3818 F 174.610
1135 D 587.330 4045 E 164.810
1203 C# 554.365 4286 D# 155.560
1274 C 523.250 4540 D 146.830
1350 B 493.880 4668 C# 142.827
1430 A# 466.162 4803 C 138.810
--------B-1583-------------------------------
INT 15 - BIOS - SET EVENT WAIT INTERVAL (AT,PS50+)
AH = 83h
AL = subfunction
00h set interval
CX:DX = microseconds to delay
ES:BX -> byte whose high bit is to be set at end of interval
01h cancel wait interval
Return: CF set on error or function already busy
AH = status
80h invalid command (PC,PCjr)
86h function not supported (XT and later)
CF clear if successful
Notes: the resolution of the wait period is 977 microseconds on most systems
because most BIOSes use the 1/1024 second fast interrupt from the AT
real-time clock chip which is available on INT 70
IBM AT 1/10/84 BIOS ignores AL and always performs subfunction 00h
SeeAlso: AH=41h,AH=86h,INT 70
--------b-1583------------------------------------
INT 15 - HUNTER 16 - CONTROL SCREEN SYNCHRONISATION
AH = 83h
AL = state of LCD window (00h disabled, nonzero enabled)
Desc: Enable/disable the facility where the displayed window tracks the
cursor output to keep the focus visible
--------B-1584-------------------------------
INT 15 - BIOS - JOYSTICK SUPPORT (XT after 11/8/82,AT,XT286,PS)
AH = 84h
DX = subfunction
0000h read joystick switches
Return: AL bits 7-4 = switch settings
0001h read positions of joysticks
Return: AX = X position of joystick A
BX = Y position of joystick A
CX = X position of joystick B
DX = Y position of joystick B
Return: CF set on error
AH = status (see #0364)
CF clear if successful
Notes: if no game port is installed, subfunction 0000h returns AL=00h (all
switches open) and subfunction 0001h returns AX=BX=CX=DX=0000h
a 250kOhm joystick typically returns 0000h-01A0h
SeeAlso: AH=84h"V20-XT-BIOS"
--------U-1584-------------------------------
INT 15 - V20-XT-BIOS - JOYSTICK SUPPORT
AH = 84h
DX = subfunction
0000h read joystick switches
Return: AL bits 7-4 = switch settings
other: read positions of joysticks as indicated by bits 0-3
Return: AX = X position of joystick A (if DX bit 0 set)
BX = Y position of joystick A (if DX bit 1 set)
CX = X position of joystick B (if DX bit 2 set)
DX = Y position of joystick B (if DX bit 3 set)
Return: CF set on error
AH = status (see #0364)
CF clear if successful
Program: V20-XT-BIOS is a BIOS extension by Peter Koehlmann / c't magazine
SeeAlso: AH=84h"PS",INT 10/AH=0Eh/CX=ABCDh
--------b-158400----------------------------------
INT 15 - HUNTER 16 - GET DISKETTE PORT
AX = 8400h
BH = Drive (0: A:, 1: B:)
Return: AL = Port (0: COM1, >0: COM2)
Desc: return the COM port used for the floppy drive
SeeAlso: AX=8401h
--------b-158401----------------------------------
INT 15 - HUNTER 16 - SET DISKETTE PORT
AX = 8401h
BH = Drive (0: A:, 1: B:)
BL = Port (0: COM1, >0: COM2)
Desc: set the COM port used for the floppy drive
SeeAlso: AX=8400h
--------B-1585-------------------------------
INT 15 C - OS HOOK - SysReq KEY ACTIVITY (AT,PS)
AH = 85h
AL = SysReq key action (00h pressed, 01h released)
CF clear
Return: CF clear if successful
AH = 00h
CF set on error
AH = status (see #0364)
Notes: called by keyboard decode routine
the default handler simply returns successfully; programs which wish
to monitor the SysReq key must hook this call
the SysReq key is often labeled SysRq
SeeAlso: INT 09
--------b-158500----------------------------------
INT 15 - HUNTER 16 - RESTORE POWER MENU (APM)
AX = 8500h
Desc: restore the standard power menu
SeeAlso: AX=8501h"HUNTER"
--------b-158501----------------------------------
INT 15 - HUNTER 16 - SET POWER MENU (APM)
AX = 8501h
BL = user software interrupt number
Desc: install an alternate power menu routine
SeeAlso: AX=8500h"HUNTER"
--------B-1586-------------------------------
INT 15 - BIOS - WAIT (AT,PS)
AH = 86h
CX:DX = interval in microseconds
Return: CF clear if successful (wait interval elapsed)
CF set on error or AH=83h wait already in progress
AH = status (see #0364)
Note: the resolution of the wait period is 977 microseconds on most systems
because most BIOSes use the 1/1024 second fast interrupt from the AT
real-time clock chip which is available on INT 70
SeeAlso: AH=41h,AH=83h,INT 1A/AX=FF01h,INT 70
--------b-1586------------------------------------
INT 15 - HUNTER 16 - GET/SET SCREEN ATTRIBUTE TABLE
AH = 86h
AL = function (00h get, nonzero set)
BX = 1234h
DS:SI -> 256-byte Attribute buffer
Note: In text modes each character has its attribute byte XOR'd with the
corresponding byte in the attribute table. If the attribute is 15,
15 is XOR'd with Table[15]
--------B-1587-------------------------------
INT 15 - SYSTEM - COPY EXTENDED MEMORY
AH = 87h
CX = number of words to copy (max 8000h)
ES:SI -> global descriptor table (see #0367)
Return: CF set on error
CF clear if successful
AH = status (see #0366)
Notes: copy is done in protected mode with interrupts disabled by the default
BIOS handler; many 386 memory managers perform the copy with
interrupts enabled
this function is incompatible with the OS/2 compatibility box
SeeAlso: AH=88h,AH=89h,INT 1F/AH=90h

(Table 0366)
Values for extended-memory copy status:
00h source copied into destination
01h parity error
02h interrupt error
03h address line 20 gating failed
80h invalid command (PC,PCjr)
86h unsupported function (XT,PS30)

Format of global descriptor table:
Offset Size Description (Table 0367)
00h 16 BYTEs zeros (used by BIOS)
10h WORD source segment length in bytes (2*CX-1 or greater)
12h 3 BYTEs 24-bit linear source address, low byte first
15h BYTE source segment access rights (93h)
16h WORD zero
18h WORD destination segment length in bytes (2*CX-1 or greater)
1Ah 3 BYTEs 24-bit linear destination address, low byte first
1Dh BYTE destination segment access rights (93h)
1Eh 18 BYTEs zeros (used by BIOS)
--------b-1587------------------------------------
INT 15 - HUNTER 16 - SET INT 72h VECTOR
AH = 87h
DS:DX = new service routine
Desc: set the INT 72h vector which is called in 2 cases:
- when the machine is about to turn off or reboot, INT 72h is called
with AH=0
- when the machine is powering up INT 72h is called with AH=01h
Note: the actual INT 72h vector must also be changed with INT 21/AH=25h
--------B-1588-------------------------------
INT 15 - SYSTEM - GET EXTENDED MEMORY SIZE (286+)
AH = 88h
Return: CF clear if successful
AX = number of contiguous KB starting at absolute address 100000h
CF set on error
AH = status
80h invalid command (PC,PCjr)
86h unsupported function (XT,PS30)
Notes: TSRs which wish to allocate extended memory to themselves often hook
this call, and return a reduced memory size. They are then free to
use the memory between the new and old sizes at will.
the standard BIOS only returns memory between 1MB and 16MB; use AH=C7h
for memory beyond 16MB
not all BIOSes correctly return the carry flag, making this call
unreliable unless one first checks whether it is supported through
a mechanism other than calling the function and testing CF
SeeAlso: AH=87h,AH=C7h
--------b-1588------------------------------------
INT 15 - HUNTER 16 - GET POWER UP KEYS
AH = 88h
Return: AH = 00h
BX = column
CL = row
SeeAlso: AH=71h
--------B-1589-------------------------------
INT 15 - SYSTEM - SWITCH TO PROTECTED MODE
AH = 89h
BL = interrupt number of IRQ0 (IRQ1-7 use next 7 interrupts)
BH = interrupt number of IRQ8 (IRQ9-F use next 7 interrupts)
ES:SI -> GDT for protected mode
offset 0h null descriptor (initialize to zeros)
8h GDT descriptor
10h IDT descriptor
18h DS
20h ES
28h SS
30h CS
38h uninitialized, used to build descriptor for BIOS CS
Return: CF set on error
AH = FFh error enabling address line 20
CF clear if successful
AH = 00h
in protected mode at specified address
Notes: BL and BH must be multiples of 8
the protected-mode CS must reference the same memory as the CS this
function is called from because execution continues with the address
following the interrupt call
SeeAlso: AH=87h,AH=88h,INT 67/AX=DE0Ch
--------b-158900----------------------------------
INT 15 - HUNTER 16 - GET POWER MODE
AX = 8900h
Return: AH = 00h
BL = current power mode
00h Standard Power Mode (SPM)
01h Advanced Power Mode (APM)
SeeAlso: AX=8901h
--------b-158901----------------------------------
INT 15 - HUNTER 16 - SET POWER MODE
AX = 8901h
BL = new mode
00h Standard Power Mode (SPM)
01h Advanced Power Mode (APM)
Return: AH = 00h
SeeAlso: AX=8900h
--------b-158A------------------------------------
INT 15 - HUNTER 16 - CONTROL POWER INPUT (SPM)
AH = 8Ah
AL = new state of Power Input (00h disabled, nonzero enabled)
SI = 1234h
DI = 5678h
Return: AH = status
00h success
FFh failure
Desc: Enable or disable Power Input. When Power Input is disabled the AC
adaptor will neither charge the batteries nor supply power to the
Hunter 16. Disable Power Input if using Alkaline batteries.
--------b-158B------------------------------------
INT 15 - HUNTER 16 - GET/SET CHARGER TEMPERATURE OVERRIDE
AH = 8Bh
AL = function
00h get
Return: BH = Maximum charging temperature
Temp = -20 + (n * 0.63) degrees Centigrade
BL = Minimum charging temperature
else set
BH = maximum charging temperature (as above)
BL = minimum charging temperature (as above)
Return: AH = status
00h success
FFh failure
Desc: get/set the temperature interval within which the charger should
operate
--------b-158C------------------------------------
INT 15 - HUNTER 16 - GET/SET POWER SAVE ENTRY FLAG
AH = 8Ch
AL = function
00h get
Return: BX = which operations disable power save (see #0368)
else set
BX = which operations should disable power save (see #0368)
SeeAlso: AH=8Dh

Bitfields for HUNTER 16 operations disabling power save:
Bit(s) Description (Table 0368)
0 INT 10h prevents power save
1 INT 13h prevents power save
2 INT 14h prevents power save
3 INT 15h prevents power save
4 INT 1Ah prevents power save
5 INT 21h prevents power save
6 direct write to video RAM prevents power save
7 access to 8250 UART prevents power save
8 access to 8253 (Sound) prevents power save
--------b-158D------------------------------------
INT 15 - HUNTER 16 - GET/SET BOOST CHARGE (SPM)
AH = 8Dh
AL = function
00h get
Return: AL = Fast Charge state (00h prevented, else allowed)
nonzero set
BH = Fast Charge state (00h prevent, nonzero allow)
Return: AH = status
00h success
FFh failure
Desc: control whether Fast Charging (200ma rather than 70ma) is allowed
SeeAlso: AH=8Ch
--------B-1590-------------------------------
INT 15 - OS HOOK - DEVICE BUSY (AT,PS)
AH = 90h
AL = device type (see #0369)
ES:BX -> request block for type codes 80h through BFh
CF clear
Return: CF set if wait time satisfied
CF clear if driver must perform wait
AH = 00h
Notes: type codes are allocated as follows:
00-7F non-reentrant devices; OS must arbitrate access
80-BF reentrant devices; ES:BX points to a unique control block
C0-FF wait-only calls, no complementary INT 15/AH=91h call
floppy and hard disk BIOS code uses this call to implement a timeout;
for device types 00h and 01h, a return of CF set means that the
timeout expired before the disk responded.
this function should be hooked by a multitasker to allow other tasks
to execute while the BIOS is waiting for I/O completion; the default
handler merely returns with AH=00h and CF clear
SeeAlso: AH=91h,INT 13/AH=00h,INT 17/AH=00h,INT 1A/AH=83h

(Table 0369)
Values for device type:
00h disk
01h diskette
02h keyboard
03h PS/2 pointing device
21h waiting for keyboard input (Phoenix BIOS)
80h network
FBh digital sound (Tandy)
FCh disk reset (PS)
FDh diskette motor start
FEh printer
--------B-1591-------------------------------
INT 15 - OS HOOK - DEVICE POST (AT,PS)
AH = 91h
AL = device type (see #0369)
ES:BX -> request block for type codes 80h through BFh
CF clear
Return: AH = 00h
Note: this function should be hooked by a multitasker to allow other tasks
to execute while the BIOS is waiting for I/O completion; the default
handler merely returns with AH=00h and CF clear
SeeAlso: AH=90h
----------15A100-----------------------------
INT 15 U - AMI PCI BIOS - SET ??? FLAG
AX = A100h
Return: AX = 0000h
CF clear
Desc: sets bit 7 of CMOS RAM location 37h and updates the CMOS checksum in
locations 3Eh and 3Fh
Note: in the examined version of the BIOS, nonzero values in AL cause it to
drop through to checking the next possible value of AH, i.e. only
subfunction 00h is supported
--------b-15BC-------------------------------
INT 15 - Phoenix 386 BIOS - DETERMINE CPU SPEED FOR DELAY LOOPS
AH = BCh
Return: CF clear
(Phoenix 1.10 10a) BYTE 0040h:00B0h set to delay loop count
(Dell 4xxDE BIOS A11) WORD 0040h:00ECh set to delay loop count
Note: this function reads system timer channel 0 twice, then does
calculations on the returned values to determine the delay loop
counter needed by the BIOS for beeps and floppy timeouts
SeeAlso: AX=2305h
--------E-15BF00-----------------------------
INT 15 - Rational Systems DOS/16M - ???
AX = BF00h
???
Return: ???
Note: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
SeeAlso: AX=BF02h
--------E-15BF01-----------------------------
INT 15 - Rational Systems DOS/16M - ???
AX = BF01h
???
Return: ???
Notes: under DESQview/X 1.02 DVDOS4GX.DVR, this call is identical to AX=BF02h
called by DOS/4GW
SeeAlso: AX=BF00h,AX=BF02h
--------E-15BF02DX0000-----------------------
INT 15 - Rational Systems DOS/16M - INSTALLATION CHECK
AX = BF02h
DX = 0000h
Return: DX = nonzero if installed
DX:SI -> XBRK structure (see #0370)
Note: this function is also supported by DOS/4G
SeeAlso: AX=BF01h,AX=BFDCh,AX=BFDEh/BX=0000h
SeeAlso: INT 21/AH=FFh/DH=0Eh,INT 2F/AH=A1h,INT 2F/AX=F100h,INT 2F/AX=FBA1h

Format of DOS/16M XBRK structure:
Offset Size Description (Table 0370)
00h DWORD linear address of first available byte
04h DWORD linear address of last available byte + 1 ???
08h DWORD real-mode address of XBRK structure???
0Ch DWORD ???
10h 2 BYTEs ???
12h WORD segment of ???
14h 8 BYTEs ???
1Ch 512 BYTEs protected-mode IDT
21Ch N BYTEs protected-mode GDT
--------E-15BF03-----------------------------
INT 15 - Rational Systems DOS/4GW - UNINSTALL???
AX = BF03h
BX = PSP segment of extender
???
Return: ???
Note: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
SeeAlso: AX=BF06h
--------E-15BF04-----------------------------
INT 15 - Rational Systems DOS/4GW - ???
AX = BF04h
BX = PSP segment of extender
Return: nothing???
Notes: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
grabs INT 2Fh and installs handlers for INT 2F/AX=1605h-1607h
SeeAlso: INT 2F/AX=1607h/BX=22C0h
--------E-15BF05-----------------------------
INT 15 - Rational Systems DOS/4GW - INITIALIZE PROTECTED-MODE INTERFACE
AX = BF05h
BX = PSP segment of extender
Return: nothing???
Notes: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
calls INT 67/AX=DE01h if ???
--------E-15BF06-----------------------------
INT 15 - Rational Systems DOS/4GW - ???
AX = BF06h
BX = PSP segment of extender
???
Return: ???
Note: if BX is not the PSP segment of the extender, it passes the call down
the INT 15 chain; this allows nested instances of the extender
SeeAlso: AX=BF03h
--------E-15BFDCDX0000-----------------------
INT 15 - Rational Systems DOS/4GW - INSTALLATION CHECK
AX = BFDCh
DX = 0000h
SI = 0000h
Return: DX = nonzero if installed
DX:SI -> XBRK structure (see #0370)
SeeAlso: AX=BF02h
--------E-15BFDEBX0000-----------------------
INT 15 - DESQview/X - DVDOS4GX.DVR - INSTALLATION CHECK
AX = BFDEh
BX = 0000h
Return: AX = ??? (0003h)
BX = FFFFh
SeeAlso: AX=BF02h
--------E-15BFDEBX0001-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROCESS MANAGER NAME
AX = BFDEh
BX = 0001h
Return: BX = 0000h (success)
CX:DX -> name of process manager executable
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0002-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
AX = BFDEh
BX = 0002h
CX:DX -> ???
Return: BX = 0000h (success)
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0003h
--------E-15BFDEBX0003-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0003h
Return: BX = 0000h (success)
CX:DX -> ???
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0002h
--------E-15BFDEBX0004-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 0004h
CL = ???
Return: BX = 0000h (success)
CX:DX -> XBRK structure (see #0370)
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0005-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 0005h
CX = new value for ???
Return: BX = 0000h (success)
AX = old value of ???
DS:SI -> ??? (if AX nonzero on return)
ES:DI -> ??? (if AX zero on return)
Note: called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0006-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0006h
Return: BX = 0000h (success)
AH = interrupt number??? (BEh)
CX:DX = ???
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0007h,INT BE"DESQview"
--------E-15BFDEBX0007-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
AX = BFDEh
BX = 0007h
CX:DX = ???
Return: BX = 0000h (success)
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=0006h
--------E-15BFDEBX0008-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 0008h
CX = segment of ???
DS = ???
Return: BX = status
0000h successful
AL = ??? (80h or C0h)
DX = ??? (0603h) if AL=C0h
0001h failed
AX = 0000h
Note: called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0009-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET PROTECTED MODE PROGRAM LOADER
AX = BFDEh
BX = 0009h
Return: BX = 0000h (success)
CX:DX -> full pathname to LOAD32.EXP
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX000A-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - DECREMENT ???
AX = BFDEh
BX = 000Ah
Return: BX = 0000h (success)
AX = new value of ??? counter
Notes: also resets a variety of values if the counter goes negative
called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Bh
--------E-15BFDEBX000B-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - INCREMENT ???
AX = BFDEh
BX = 000Bh
Return: AX = new value of ??? counter
Note: called by DOS4GW.EXE
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Ah
--------E-15BFDEBX000C-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Ch
CL = ???
00h
nonzero
Return: ???
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX000D-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Dh
???
Return: ???
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX000E-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Eh
DX:CX -> ???
Return: AX = segment of handle for calling task
BX = ??? (probably destroyed)
DX:CX -> ???
SeeAlso: AX=BFDEh/BX=0000h,AX=BFDEh/BX=000Fh,AX=BFDEh/BX=0013h
--------E-15BFDEBX000F-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - ???
AX = BFDEh
BX = 000Fh
Return: AX = segment of handle for calling task
BX = ??? (probably destroyed)
DX:CX -> ???
Note: identical to AX=BFDEh/BX=000Eh with CX:DX = 0000h:0000h
SeeAlso: AX=BFDEh/BX=000Eh,AX=BFDEh/BX=0010h
--------E-15BFDEBX0010-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET TASK HANDLE
AX = BFDEh
BX = 0010h
Return: AX = segment of caller's task handle
BX destroyed
SeeAlso: AX=BFDEh/BX=000Fh
--------E-15BFDEBX0011-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0011h
Return: CX = code segment of DVDOS4GX.DVR
BX = ??? (0004h)
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0012-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0012h
Return: DX = code segment of DVDOS4GX.DVR
BX = ??? (012Ch)
CX = ??? (0006h)
SeeAlso: AX=BFDEh/BX=0000h
--------E-15BFDEBX0013-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = 0013h
Return: DX:CX -> ???
SeeAlso: AX=BFDEh/BX=000Eh
--------E-15BFDEBX0014-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - LOCK ??? MAILBOX
AX = BFDEh
BX = 0014h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX,BX destroyed
SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
--------E-15BFDEBX0015-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - UNLOCK ??? MAILBOX
AX = BFDEh
BX = 0015h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX,BX destroyed
SeeAlso: AX=BFDEh/BX=0014h,AX=BFDEh/BX=0016h
--------E-15BFDEBX0016-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - CHECK IF ??? MAILBOX OWNED
AX = BFDEh
BX = 0016h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX = status
0000h no one owns mailbox
0001h mailbox has an owner
BX destroyed
SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0017h
--------E-15BFDEBX0017-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ??? MAILBOX OWNER
AX = BFDEh
BX = 0017h
CX = index of ??? mailbox
(0000h-0004h valid, but no range checking done)
Return: AX = segment of mailbox owner's handle
BX = segment of caller's task handle
SeeAlso: AX=BFDEh/BX=0015h,AX=BFDEh/BX=0016h
--------E-15BFDEBXFFFD-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - GET ???
AX = BFDEh
BX = FFFDh
Return: CX:DX = ???
SeeAlso: AX=BFDEh/BX=FFFEh
--------E-15BFDEBXFFFE-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - SET ???
AX = BFDEh
BX = FFFEh
CX:DX = ???
SeeAlso: AX=BFDEh/BX=FFFDh
--------E-15BFDEBXFFFF-----------------------
INT 15 - DESQview/X 1.02+ - DVDOS4GX.DVR - NOP
AX = BFDEh
BX = FFFFh
SeeAlso: AX=BFDEh/BX=0000h
--------B-15C0-------------------------------
INT 15 - SYSTEM - GET CONFIGURATION (XT after 1/10/86,AT mdl 3x9,CONV,XT286,PS)
AH = C0h
Return: CF set if BIOS doesn't support call
CF clear on success
ES:BX -> ROM table (see #0371)
AH = status
00h successful
86h unsupported function
Notes: the 1/10/86 XT BIOS returns an incorrect value for the feature byte
the configuration table is at F000h:E6F5h in 100% compatible BIOSes
Dell machines contain the signature "DELL" or "Dell" at absolute FE076h
and a model byte at absolute address FE845h (see #0377)
Hewlett-Packard machines contain the signature "HP" at F000h:00F8h and
a product identifier at F000h:00FAh (see #0380)
Compaq machines can be identified by the signature string "COMPAQ" at
F000h:FFEAh, and is preceded by additional information (see #0378)
Tandy 1000 machines contain 21h in the byte at F000h:C000h and FFh in
the byte at FFFFh:000Eh; Tandy 1000SL/TL machines only provide the
first three data bytes (model/submodel/revision) in the returned
table
Toshiba laptops contain the signature "TOSHIBA" at FE010h as part of
a laptop information record at F000h:E000h (see #0381)
some AST machines contain the string "COPYRIGHT AST RESEARCH" one byte
past the end of the configuration table
the Phoenix 386 BIOS contains a second version and date string
(presumably the last modification for that OEM version) beginning at
F000h:FFD8h, with each byte doubled (so that both ROM chips contain
the complete information)
SeeAlso: AH=C7h,AH=C9h,AH=D1h

Format of ROM configuration table:
Offset Size Description (Table 0371)
00h WORD number of bytes following
02h BYTE model (see #0376)
03h BYTE submodel (see #0376)
04h BYTE BIOS revision: 0 for first release, 1 for 2nd, etc.
05h BYTE feature byte 1 (see #0372)
06h BYTE feature byte 2 (see #0373)
07h BYTE feature byte 3 (see #0374)
08h BYTE feature byte 4 (see #0375)
09h BYTE feature byte 5:
reserved (0) (IBM)
??? (08h) (Phoenix 386 v1.10)
---AWARD BIOS---
0Ah N BYTEs AWARD copyright notice
---Phoenix BIOS---
0Ah BYTE ??? (00h)
0Bh BYTE major version
0Ch BYTE minor version (BCD)
0Dh 4 BYTEs ASCIZ string "PTL" (Phoenix Technologies Ltd)
---Quadram Quad386---
0Ah 17 BYTEs ASCII signature string "Quadram Quad386XT"

Bitfields for feature byte 1:
Bit(s) Description (Table 0372)
7 DMA channel 3 used by hard disk BIOS
6 2nd 8259 installed
5 Real-Time Clock installed
4 INT 15/AH=4Fh called upon INT 09h
3 wait for external event (INT 15/AH=41h) supported
2 extended BIOS area allocated (usually at top of RAM)
1 bus is Micro Channel instead of ISA
0 system has dual bus (Micro Channel + ISA)
SeeAlso: #0371,#0373

Bitfields for feature byte 2:
Bit(s) Description (Table 0373)
7 reserved
6 INT 16/AH=09h (keyboard functionality) supported (see #0430)
5 INT 15/AH=C6h (get POS data) supported
4 INT 15/AH=C7h (return memory map info) supported
3 INT 15/AH=C8h (en/disable CPU functions) supported
2 non-8042 keyboard controller
1 data streaming supported
0 reserved
SeeAlso: #0371,#0374,AH=C6h,AH=C7h,AH=C8h,INT 16/AH=09h

Bitfields for feature byte 3:
Bit(s) Description (Table 0374)
7-5 reserved
4 ??? (set on 1992 PS/1's, N51SX, CL57SX, 35SX?, 40SX?)
3 SCSI subsystem supported on system board
2 information panel installed
1 IML (Initial Machine Load) system
0 SCSI supported in IML
SeeAlso: #0371,#0373,#0374

Bitfields for feature byte 4:
Bit(s) Description (Table 0375)
7 ??? (set on N51SX, CL57SX)
6-4 reserved
3 ??? (set on some 1992 PS/1's, 35SX, 40SX)
2-1 reserved
0 ??? (set on N51SX, CL57SX, 57SX)
SeeAlso: #0371,#0374

(Table 0376)
Values for model/submodel/revision:
Model Submdl Rev BIOS date System
FFh * * 04/24/81 PC (original)
FFh * * 10/19/81 PC (some bugfixes)
FFh * * 10/27/82 PC (HD, 640K, EGA support)
FFh 00h rev ??? Tandy 1000SL
FFh 01h rev ??? Tandy 1000TL
FFh 46h *** ??? Olivetti M15
FEh * * 08/16/82 PC XT
FEh * * 11/08/82 PC XT and Portable
FEh * * ../..x.. Toshiba laptops up to ~1987
("x"=product ID) (see #0382)
FEh 43h *** ??? Olivetti M240
FEh A6h ??? ??? Quadram Quad386
FDh * * 06/01/83 PCjr
FCh * * 01/10/84 AT models 068,099 6 MHz 20MB
FCh 00h 00h ??? PC3270/AT
FCh 00h 01h 06/10/85 AT model 239 6 MHz 30MB
FCh 00h > 01h ??? 7531/2 Industrial AT
FCh 01h 00h 11/15/85 AT models 319,339 8 MHz, Enh Keyb, 3.5"
FCh 01h 00h 09/17/87 Tandy 3000
FCh 01h 00h ../..x.. Toshiba laptops since ~1988
("x"=product ID) (see #0382)
FCh 01h 00h 03/08/93 Compaq DESKPRO/i
FCh 01h 00h various Compaq DESKPRO, SystemPro, ProSignia
FCh 01h 00h 07/20/93 Zenith Z-Lite 425L
FCh 01h 20h 06/10/92 AST
FCh 01h 30h ??? Tandy 3000NL
FCh 01h ??? ??? Compaq 286/386
FCh 02h 00h 04/21/86 PC XT-286
FCh 02h 00h various Compaq LTE Lite
FCh 02h 00h 08/05/93 Compaq Contura 486/486c/486cx
FCh 02h 00h 08/11/88 SoftWindows 1.0.1 (Power Macintosh)
FCh 04h 00h 02/13/87 ** PS/2 Model 50 (10 MHz/1 ws 286)
FCh 04h 01h 05/09/87 PS/2 Model 50 (10 Mhz 286, LW-type 32)
FCh 04h 02h ??? PS/2 Model 50
FCh 04h 02h 01/28/88 PS/2 Model 50Z (10 Mhz 286, LW-type 33)
FCh 04h 03h 04/18/88 PS/2 Model 50Z (10 MHz/0 ws 286)
FCh 04h 04h ??? PS/2 Model 50Z
FCh 05h 00h 02/13/87 ** PS/2 Model 60 (10 MHz 286)
FCh 06h 00h ??? IBM 7552-140 "Gearbox"
FCh 06h 01h ??? IBM 7552-540 "Gearbox"
FCh 08h *** ??? Epson, unknown model
FCh 08h 00h ??? PS/2 Model 25/286
FCh 09h 00h ??? PS/2 Model 25 (10 MHz 286)
FCh 09h 00h 08/25/88 PS/2 Model 30 286 (10 Mhz, LW-type 37)
FCh 09h 02h 06/28/89 PS/2 Model 30-286
FCh 09h 02h 06/28/89 PS/2 Model 25 286 (10 Mhz, LW-type 37)
FCh 0Bh 00h 12/01/89 PS/1 (LW-Type 44)
FCh 0Bh 00h 02/16/90 PS/1 Model 2011 (10 MHz 286)
FCh 20h 00h 02/18/93 Compaq ProLinea
FCh 30h *** ??? Epson, unknown model
FCh 31h *** ??? Epson, unknown model
FCh 33h *** ??? Epson, unknown model
FCh 42h *** ??? Olivetti M280
FCh 45h *** ??? Olivetti M380 (XP 1, XP3, XP 5)
FCh 48h *** ??? Olivetti M290
FCh 4Fh *** ??? Olivetti M250
FCh 50h *** ??? Olivetti M380 (XP 7)
FCh 51h *** ??? Olivetti PCS286
FCh 52h *** ??? Olivetti M300
FCh 81h 00h 01/15/88 Phoenix 386 BIOS v1.10 10a
FCh 81h 01h ??? "OEM machine"
FCh 82h 01h ??? "OEM machine"
FCh 94h 00h ??? Zenith 386
FBh 00h 01h 01/10/86 PC XT-089, Enh Keyb, 3.5" support
FBh 00h 01h 05/13/94 HP 200LX 2MB BIOS 1.01 A D german
FBh 00h 02h 05/09/86 PC XT
FBh 00h 04h 08/19/93 HP 100LX 1MB BIOS 1.04 A
FBh 4Ch *** ??? Olivetti M200
FAh 00h 00h 09/02/86 PS/2 Model 30 (8 MHz 8086)
FAh 00h 01h 12/12/86 PS/2 Model 30
FAh 00h 02h 02/05/87 PS/2 Model 30
FAh 01h 00h 06/26/87 PS/2 Model 25/25L (8 MHz 8086)
FAh 30h 00h ??? IBM Restaurant Terminal
FAh 4Eh *** ??? Olivetti M111
FAh FEh 00h ??? IBM PCradio 9075
F9h 00h 00h 09/13/85 PC Convertible
F9h FFh 00h ??? PC Convertible
F8h 00h 00h 03/30/87 ** PS/2 Model 80 (16MHz 386)
F8h 00h 00h ??? PS/2 Model 75 486 (33Mhz 486)
F8h 01h 00h 10/07/87 PS/2 Model 80 (20MHz 386)
F8h 02h 00h ??? PS/2 Model 55-5571
F8h 04h 00h 01/29/88 PS/2 Model 70 (20 Mhz 386DX,LW-type 33)
F8h 04h 02h 04/11/88 PS/2 Model 70 20MHz, type 2 system brd
F8h 04h 03h 03/17/89 PS/2 Model 70 20MHz, type 2 system brd
F8h 05h 00h ??? IBM PC 7568
F8h 06h 00h ??? PS/2 Model 55-5571
F8h 07h 00h ??? IBM PC 7561/2
F8h 07h 01h ??? PS/2 Model 55-5551
F8h 07h 02h ??? IBM PC 7561/2
F8h 07h 03h ??? PS/2 Model 55-5551
F8h 09h 00h 01/29/88 PS/2 Model 70 16MHz 386DX, type 1 sysbd
F8h 09h 02h 04/11/88 PS/2 Model 70 some models
F8h 09h 03h 03/17/89 PS/2 Model 70 some models
F8h 09h 04h 12/15/89 PS/2 Model 70 (16 Mhz 386, LW-type 33)
F8h 0Bh 00h 01/18/89 PS/2 Model P70 (8573-121) typ 2 sys brd
F8h 0Bh 02h 12/16/89 PS/2 Model P70 ??
F8h 0Ch 00h 11/02/88 PS/2 Model 55SX (16 MHz 386SX)
F8h 0Dh 00h ??? PS/2 Model 70 25MHz, type 3 system brd
F8h 0Dh 00h 06/08/88 PS/2 Model 70 386 25MHz, type 3 sys brd
F8h 0Dh 01h 02/20/89 PS/2 Model 70 386 25MHz, type 3 sys brd
F8h 0Dh ??? 12/01/89 PS/2 Model 70 486 25Mhz, type 3 sys brd
F8h 0Eh 00h ??? PS/1 486SX
F8h 0Fh 00h ??? PS/1 486DX
F8h 10h 00h ??? PS/2 Model 55-5551
F8h 11h 00h 10/01/90 PS/2 Model 90 XP (25 MHz 486)
F8h 12h 00h ??? PS/2 Model 95 XP
F8h 13h 00h 10/01/90 PS/2 Model 90 XP (33 MHz 486)
F8h 14h 00h 10/01/90 PS/2 Model 90-AK9 (25 MHz 486), 95 XP
F8h 15h 00h ??? PS/2 Model 90 XP
F8h 16h 00h 10/01/90 PS/2 Model 90-AKD / 95XP486 (33MHz 486)
F8h 17h 00h ??? PS/2 Model 90 XP
F8h 19h 05h ??? PS/2 Model 35/35LS or 40 (20 MHz 386SX)
F8h 19h 05h 03/15/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
F8h 19h 06h 04/04/91 PS/2 Model 35 SX / 40 SX (LW-type 37)
F8h 1Ah 00h ??? PS/2 Model 95 XP
F8h 1Bh 00h 09/29/89 PS/2 Model 70 486 (25 Mhz 386DX)
F8h 1Bh 00h 10/02/89 PS/2 Model 70-486 (25 MHz 486)
F8h 1Ch 00h 02/08/90 PS/2 Model 65-121 / 65 SX (16MHz 386SX)
F8h 1Eh 00h 02/08/90 PS/2 Model 55LS (16 MHz 386SX)
F8h 23h 00h ??? PS/2 Model L40 SX
F8h 23h 01h ??? PS/2 Model L40 SX (20 MHz 386SX)
F8h 23h 02h 02/27/91 PS/2 Model L40 SX (20Mhz386SX,LW-typ37)
F8h 25h 00h ??? PS/2 Model 57 SLC
F8h 25h 06h ??? PS/2 Model M57 (20 MHz 386SLC)
F8h 26h 00h ??? PS/2 Model 57 SX
F8h 26h 01h ??? PS/2 Model 57 (20 MHz 386SX)
F8h 26h 02h 07/03/91 PS/2 Model 57 SX (20Mhz 386SX, SCSI)
F8h 28h 00h ??? PS/2 Model 95 XP
F8h 29h 00h ??? PS/2 Model 90 XP
F8h 2Ah 00h ??? PS/2 Model 95 XP (50 MHz 486)
F8h 2Bh 00h ??? PS/2 Model 90 / 90XP486 (50 MHz 486)
F8h 2Ch 00h ??? PS/2 Model 95 XP
F8h 2Ch 01h ??? PS/2 Model 95 (20 MHz 486SX)
F8h 2Dh 00h ??? PS/2 Model 90 XP (20 MHz 486SX)
F8h 2Eh 00h ??? PS/2 Model 95 XP
F8h 2Eh 00h ??? PS/2 Model 95 XP486 (20 Mhz 486SX)
F8h 2Eh 01h ??? PS/2 Model 95 (20 MHz 486SX + 487SX)
F8h 2Fh 00h ??? PS/2 Model 90 XP (20 MHz 486SX + 487SX)
F8h 30h 00h ??? PS/1 Model 2121 (16 MHz 386SX)
F8h 33h 00h ??? PS/2 Model 30-386
F8h 34h 00h ??? PS/2 Model 25-386
F8h 36h 00h ??? PS/2 Model 95 XP
F8h 37h 00h ??? PS/2 Model 90 XP
F8h 38h 00h ??? PS/2 Model 57
F8h 39h 00h ??? PS/2 Model 95 XP
F8h 3Fh 00h ??? PS/2 Model 90 XP
F8h 40h 00h ??? PS/2 Model 95 XP
F8h 41h 00h ??? PS/2 Model 77
F8h 45h 00h ??? PS/2 Model 90 XP (Pentium)
F8h 46h 00h ??? PS/2 Model 95 XP (Pentium)
F8h 47h 00h ??? PS/2 Model 90/95 E (Pentium)
F8h 48h 00h ??? PS/2 Model 85
F8h 49h 00h ??? PS/ValuePoint 325T
F8h 4Ah 00h ??? PS/ValuePoint 425SX
F8h 4Bh 00h ??? PS/ValuePoint 433DX
F8h 4Eh 00h ??? PS/2 Model 295
F8h 50h 00h ??? PS/2 Model P70 (8573) (16 MHz 386)
F8h 50h 01h 12/16/89 PS/2 Model P70 (8570-031)
F8h 52h 00h ??? PS/2 Model P75 (33 MHz 486)
F8h 56h 00h ??? PS/2 Model CL57 SX
F8h 57h 00h ??? PS/2 Model 90 XP
F8h 58h 00h ??? PS/2 Model 95 XP
F8h 59h 00h ??? PS/2 Model 90 XP
F8h 5Ah 00h ??? PS/2 Model 95 XP
F8h 5Bh 00h ??? PS/2 Model 90 XP
F8h 5Ch 00h ??? PS/2 Model 95 XP
F8h 5Dh 00h ??? PS/2 Model N51 SLC
F8h 5Eh 00h ??? IBM ThinkPad 700
F8h 61h *** ??? Olivetti P500
F8h 62h *** ??? Olivetti P800
F8h 80h 00h ??? PS/2 Model 80 (25 MHz 386)
F8h 80h 01h 11/21/89 PS/2 Model 80-A21 (25 Mhz 386)
F8h 81h 00h ??? PS/2 Model 55-5502
F8h 87h 00h ??? PS/2 Model N33SX
F8h 88h 00h ??? PS/2 Model 55-5530T
F8h 97h 00h ??? PS/2 Model 55 Note N23SX
F8h 99h 00h ??? PS/2 Model N51 SX
F8h F2h 30h ??? Reply Model 32
F8h F6h 30h ??? Memorex Telex
F8h FDh 00h ??? IBM Processor Complex (with VPD)
F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX)
F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX)
F8h ??? ??? ??? PS/2 Model 90 (25 MHz 486SX + 487SX)
F8h ??? ??? ??? PS/2 Model 95 (25 MHz 486SX + 487SX)
E1h ??? ??? ??? ??? (checked for by DOS4GW.EXE)
E1h 00h 00h ??? PS/2 Model 55-5530 Laptop
9Ah * * ??? Compaq XT/Compaq Plus
30h ??? ??? ??? Sperry PC
2Dh * * ??? Compaq PC/Compaq Deskpro
??? 56h ??? ??? Olivetti, unknown model
??? 74h ??? ??? Olivetti, unknown model
Notes:
* This BIOS call is not implemented in these early versions.
Read Model byte at F000h:FFFEh and BIOS date at F000h:FFF5h.
** These BIOS versions require the DASDDRVR.SYS patches.
*** These Olivetti and Epson machines store the submodel in the byte at
F000h:FFFDh.
SeeAlso: #0371,#0377

(Table 0377)
Values for Dell model byte:
02h Dell 200
03h Dell 300
05h Dell 220
06h Dell 310
07h Dell 325
09h Dell 310A
0Ah Dell 316
0Bh Dell 220E
0Ch Dell 210
0Dh Dell 316SX
0Eh Dell 316LT
0Fh Dell 320LX
11h Dell 425E
SeeAlso: #0371,#0376

Format of Compaq product information:
Address Size Description (Table 0378)
F000h:FFE4h BYTE product family code (first byte)
F000h:FFE4h BYTE Point release number
F000h:FFE4h BYTE ROM version code
F000h:FFE4h BYTE product family code (second byte)
F000h:FFE8h WORD BIOS type code
SeeAlso: #0379,#0381

Format of Hewlett-Packard ROM ID at F000h:00F8h:
Offset Size Description (Table 0379)
00h 2 BYTEs signature "HP" (48h 50h)
02h 2 BYTEs 00h 00h
04h BYTE secondary code revision
05h BYTE primary code revision
06h BYTE date code, year-1960 (BCD)
07h BYTE date code, week of year (BCD)
SeeAlso: #0378,#0380

Bitfields for Hewlett-Packard product identifier:
Bit(s) Description (Table 0380)
4-0 machine code
0 original Vectra
1 ES/12
2 RS/20
3 Portable/CS
4 ES
5 CS
6 RS/16
other reserved
7-5 CPU type
0 = 80286
1 = 8088
2 = 8086
3 = 80386
other reserved
SeeAlso: #0379

Format of Toshiba laptop information:
Offset Size Description (Table 0381)
00h 8 BYTEs ASCII product number (e.g. "T2200SX ")
08h 8 BYTEs ASCII version number (e.g. "V1.20 ")
10h 8 BYTEs ASCII signature string "TOSHIBA "
18h 8 BYTEs always zero???
20h DWORD -> built-in BIOS setup program entry point or 0000h:0000h
Note: this record is located at F000h:E000h
SeeAlso: #0378,#0379

(Table 0382)
Values for Toshiba product ID:
model prodID version date product number /hdd
FEh 29h ../..).. Toshiba T1000LE
FEh 2Ah ../..*.. Toshiba T1000XE
FEh 2Bh ../..+.. Toshiba T1000SE
FEh 2Ch ../..,.. Toshiba T1000 -
FEh 2Dh ../..-.. Toshiba T1200F -
FEh 2Dh V4.00 12/26-87 Toshiba T1200H /20
FEh 2Eh ../..... Toshiba T1100+
FCh 22h ../..".. Toshiba T8500
FCh 26h 01/15&88 Toshiba T5200 /100
FCh 27h ../..'.. Toshiba T5100
FCh 28h ../..(.. Toshiba T2000
FCh 2Ah 12/26*89 Toshiba T1200XE
FCh 2Bh ../..+.. Toshiba T1600
FCh 2Ch ../..,.. Toshiba T3100e
FCh 2Dh ../..-.. Toshiba T3200
FCh 2Fh ../../.. Toshiba T3100
FCh 34h ../..4.. Toshiba T100X
FCh 38h ../..8.. Toshiba T2000SXe
FCh 39h V1.20 09/16991 Toshiba T2200SX /60
FCh 39h V1.40 10/01992 Toshiba T2200SX /120 (upgraded)
FCh 3Ch V1.50 01/28<91 Toshiba T2000SX /40
FCh 3Dh ../..=.. Toshiba T3200SXC
FCh 3Eh ../..>.. Toshiba T3100SX
FCh 3Fh ../..?.. Toshiba T3200SX
FCh 40h ../..@.. Toshiba T4500C
FCh 41h 04/05A92 Toshiba T4500 ("T4500SXC" ?)
FCh 45h V3.20 04/14E92 Toshiba T4400SX ("C" or "SXC" on cover)
FCh 45h 01/13E93 Toshiba T4400SXC
FCh 46h * ../..F.. Toshiba T6400
FCh 46h * ../..F.. Toshiba T6400C
FCh 5Fh ../.._.. Toshiba T3300SL
FCh 69h ../..i.. Toshiba T1900C
FCh 6Ah ../..j.. Toshiba T1900
FCh 6Dh ../..m.. Toshiba T1850C
FCh 6Eh V1.00 08/19n92 Toshiba T1850
FCh 6Eh 12/25n92 Toshiba T1850
FCh 6Fh 07/17o92 Toshiba T1800
FCh 7Eh V1.30 06/17~93 Toshiba T4600C
FCh 7Fh ../..x.. Toshiba T4600
FCh 8Ah ../..x.. Toshiba T6600C
FCh 91h ../..x.. Toshiba T2400CS
FCh 91h V1.20 07/15x94 Toshiba T2400CT
FCh 96h * ../..x.. Toshiba T200
FCh 96h * ../..x.. Toshiba T200CS
FCh 97h ../..x.. Toshiba T4800CT
FCh 98h * V1.10 12/22x93 Toshiba T1910 /120 /320
FCh 98h * ../..x.. Toshiba T1910CS
FCh 99h ../..x.. Toshiba T4700CS
FCh 9Bh V2.30 01/31x94 Toshiba T4700CT
FCh 9Bh V2.50 03/22x94 Toshiba T4700CT /320
FCh 9Ch V1.30 01/11x94 Toshiba T1950CT /320
FCh 9Dh * ../..x.. Toshiba T1950
FCh 9Dh * ../..x.. Toshiba T1950CS
FCh 9Eh * V1.20 12/25x93 Toshiba T3400 /120
FCh 9Eh * V1.30 03/22x94 Toshiba T3400 /250
FCh 9Eh * ../..x.. Toshiba T3400CT
FCh ??? ../.. .. Toshiba T1900S
FCh ??? ../.. .. Toshiba T1900CT
Note: BIOS version numbers and dates may vary, esp. due to harddisk and
flash BIOS upgrades
the 8-bit ASCII graphics character in the "date" column above
has been substituted by "x" because it depends on code page
[*] These models have monochrome and color versions which can only be
distinguished with INT 42/AX=7503h
SeeAlso: #0376
--------B-15C1-------------------------------
INT 15 - SYSTEM - RETURN EXTENDED-BIOS DATA-AREA SEGMENT ADDRESS (PS)
AH = C1h
Return: CF set on error
CF clear if successful
ES = segment of data area
SeeAlso: AH=04h"ABIOS"
--------M-15C200-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - ENABLE/DISABLE
AX = C200h
BH = new state
00h disabled
01h enabled
Return: CF set on error
AH = status (see #0383)

(Table 0383)
Values for pointing device function status:
00h successful
01h invalid function
02h invalid input
03h interface error
04h need to resend
05h no device handler installed
--------M-15C201-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - RESET
AX = C201h
Return: CF set on error
AH = status (see #0383)
CF clear if successful
BH = device ID
BL = value returned by attached device after reset
AAh if device is a mouse
Note: after successful completion of this call, the pointing device is set
as follows: disabled, sample rate 100 Hz, resolution 4 counts/mm,
scaling 1:1, unchanged data package size
SeeAlso: INT 33/AX=0000h
--------M-15C202-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET SAMPLING RATE
AX = C202h
BH = sampling rate
00h 10/second
01h 20/second
02h 40/second
03h 60/second
04h 80/second
05h 100/second
06h 200/second
Return: CF set on error
AH = status (see #0383)
SeeAlso: INT 33/AX=001Ch
--------M-15C203-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET RESOLUTION
AX = C203h
BH = resolution (see #0384)
Return: CF set on error
AH = status (see #0383)

(Table 0384)
Values for pointing device resolution:
00h one count per mm
01h two counts per mm
02h four counts per mm
03h eight counts per mm
--------M-15C204-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - GET TYPE
AX = C204h
Return: CF set on error
AH = status (see #0383)
CF clear if successful
BH = device ID
--------M-15C205-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - INITIALIZE
AX = C205h
BH = data package size (1 - 8 bytes)
Return: CF set on error
AH = status (see #0383)
Note: the pointing device is set as follows: disabled, 100 Hz sample rate,
resolution 4 counts/mm, scaling 1:1
SeeAlso: AX=C201h
--------M-15C206-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - EXTENDED COMMANDS
AX = C206h
BH = subfunction
00h return device status
Return: BL = pointing device status (see #0385)
CL = resolution (see #0384)
DL = sample rate, reports per second
01h set scaling at 1:1
02h set scaling at 2:1
Return: CF set on error
AH = status (see #0383)

Bitfields for pointing device status:
Bit(s) Description (Table 0385)
0 right button pressed
1 reserved
2 left button pressed
3 reserved
4 0 if 1:1 scaling, 1 if 2:1 scaling
5 device enabled
6 0 if stream mode, 1 if remote mode
7 reserved
--------M-15C207-----------------------------
INT 15 - SYSTEM - POINTING DEVICE BIOS INTERFACE (PS) - SET DEVICE HANDLER ADDR
AX = C207h
ES:BX -> FAR user device handler
Return: CF set on error
AH = status (see #0383)
Note: when the subroutine is called, it is passed the following values on
the stack; the handler should return with a FAR return without
popping the stack:
WORD 1: status (see #0386)
WORD 2: X data (high byte = 00h)
WORD 3: Y data (high byte = 00h)
WORD 4: 0000h
SeeAlso: INT 33/AX=000Ch

Bitfields for pointing device status:
Bit(s) Description (Table 0386)
15-8 reserved (0)
7 Y data overflowed
6 X data overflowed
5 Y data is negative
4 X data is negative
3 reserved (1)
2 reserved (0)
1 right button pressed
0 left button pressed
--------B-15C3------------------------------
INT 15 - SYSTEM - ENABLE/DISABLE WATCHDOG TIMEOUT (PS50+)
AH = C3h
AL = function
00h disable PS/2 watchdog timer
01h enable PS/2 watchdog timer
BX = timer counter (0001h-00FFh)
02h disable Gearbox system
03h enable Gearbox system
Return: CF set on error
CF clear if successful
Note: the watchdog timer generates an NMI
SeeAlso: INT 21/AH=2Bh/CX=6269h/DX=742Dh
--------B-15C4-------------------------------
INT 15 - SYSTEM - PROGRAMMABLE OPTION SELECT (PS50+)
AH = C4h
AL = subfunction
00h return base POS register address
01h enable selected slot for setup
BL = slot number (1 to 8)
02h disable setup for all slots (enable adapter)
Return: CF set on error
DX = base POS register address (if subfunction 00h)
SeeAlso: AH=C6h
--------B-15C5-------------------------------
INT 15 UC - OS HOOK - ROM BIOS TRACING CALLOUT (PS30/286,PS50Z,PS95)
AH = C5h
AL = interrupt being invoked
01h INT 19
02h INT 14
03h INT 16
04h INT 40 (floppy INT 13)
05h INT 17
06h INT 10
07h INT 12
08h INT 11
09h INT 1A
Return: all registers except AX must be preserved
Notes: called as the very first action of the indicated ROM BIOS interrupt
handlers on the PS/2 Models 30/286, 50Z, and 95
default handler does nothing and returns CF clear for the above
subfunctions, CF set and AH=86h for all other subfunctions
value of AX passed to the original interrupt handler is pushed on
stack immediately prior to call
--------B-15C6-------------------------------
INT 15 U - later PS/2 models - GET POS DATA
AH = C6h
???
Return: ???
Notes: this function is referenced by name and number in some IBM BIOS manuals
IBM reports that "there are a number of problems with this call" and
does not recommend its use.
SeeAlso: AH=C4h
--------B-15C7-------------------------------
INT 15 - SYSTEM - later PS/2s - RETURN MEMORY-MAP INFORMATION
AH = C7h
DS:SI -> user supplied memory map table (see #0387)
Note: call AH=C0h and examine bit 4 of feature byte 2 to check if this
function is supported
Return: CF set on error, clear if successful
SeeAlso: AH=C0h,AH=C9h,AH=D1h

Format of memory-map table structure:
Offset Size Description (Table 0387)
00h WORD length of table (excluding this word)
02h DWORD local memory between 1M and 16M, in 1K blocks
06h DWORD local memory between 16M and 4G, in 1K blocks
0Ah DWORD system memory between 1M and 16M, in 1K blocks
0Eh DWORD system memory between 16M and 4G, in 1K blocks
12h DWORD cacheable memory between 1M and 16M, in 1K blocks
16h DWORD cacheable memory between 16M and 4G, in 1K blocks
1Ah DWORD 1K blocks before start of non-system memory between 1M and 16M
1Eh DWORD 1K blocks before start of non-system memory between 16M and 4G
22h 2 DWORDs reserved
--------B-15C8-------------------------------
INT 15 - SYSTEM - ENABLE/DISABLE PROCESSOR FUNCTIONS
AH = C8h
AL = function
00h disable cache or (90 and 95) disable cache L1
01h enable cache or (90 and 95) enable cache L1
---models 90 and 95 only---
02h disable cache L2
03h enable cache L2
04h disable both caches
05h enable both caches
06h return status of both caches
07h-FFh Reserved
Return: CF set on error
CF clear if successful
AH = status (see #0388)
For subfunction 06h only:
BH = status of cache L2
00h enabled
01h disabled or not installed
BL = status of cache L1 (same codes as BH)
Notes: supported by at least PS/2 70, 70/486, 80-A21, 90, 95
call AH=C0h and examine bit 3 of feature byte 2 to check if this
function is supported.
on a 486 system, any external caches must be disabled when the
on-chip cache (L1) is disabled.
SeeAlso: AH=C0h

(Table 0388)
Values for status:
00h operation successful
01h function choice (in AL) is invalid
02h NVRAM data is invalid
03h cache test error
04h (90 and 95 only) cannot perform operation requested due to state of
other cache (see note above)
05h no L2 cache is present
09h CPU in protected mode
--------B-15C9-------------------------------
INT 15 - newer PS/2; various BIOSes - GET CPU TYPE AND MASK REVISION
AH = C9h
AL = 10h (may be required on some non-PS BIOSes)
Return: CF clear if successful
AH = 00h
CH = CPU type (see #0389)
CL = mask revision (stepping level) (see #0390)
CF set on error
AH = status (80h,86h = function not supported)
Notes: the BIOS must save DX at startup in order to be able to support this
call; PS/2 Models 56, 57, 90, and 95 are known to support it
the PS/2 BIOS merely reads CMOS locations 190h (type) and 191h (rev)

(Table 0389)
Values for CPU type:
03h 80386DX or clone
04h 80486
05h Pentium
23h 80386SX or clone
33h Intel i376
43h 80386SL or clone
A3h IBM 386SLC
A4h IBM 486SLC

(Table 0390)
Values for stepping level:
---i376 (type code 33h)---
05h A0
08h B
---80386/80386DX (type code 03h)---
03h Intel B1 to B10, Am386DX/DXL step A
05h Intel D0
08h Intel D1/D2/E1, Am386DX/DXL step B
-
Соседние файлы в папке UNDOCINT
  • #
    16.04.2013354.12 Кб9INTERRUP.A
  • #
    16.04.2013310.22 Кб8INTERRUP.B
  • #
    16.04.2013361.89 Кб8INTERRUP.C
  • #
    16.04.2013332.86 Кб8INTERRUP.D
  • #
    16.04.2013286.02 Кб8INTERRUP.E
  • #
    16.04.2013328.54 Кб8INTERRUP.F
  • #
    16.04.2013358.25 Кб8INTERRUP.G
  • #
    16.04.2013298.09 Кб9INTERRUP.H