📄 interrup.d
字号:
Interrupt List, part 4 of 18
Copyright (c) 1989-1999,2000 Ralf Brown
--------b-15E800-----------------------------
INT 15 - Compaq Contura - GET ???
AX = E800h
Return: AX = 0000h
BH = 00h
BL = ??? (read from port 0C7Ch)
CH = ???
CL = ???
DX = 0000h
Note: also supported by 3/8/93 DESKPRO/i and 7/26/93 LTE Lite 386 ROM BIOS
--------b-15E800-----------------------------
INT 15 - Compaq Contura Aero, Contura 400 - GET SYSTEM MODEL CODE???
AX = E800h
BX = ??? (0000h)
Return: CF clear if successful
BH = 02h
BL = submodel??? (0Ch,0Dh,34h,38h,40h,44h,48h,64h,68h)
CF set on error
others???
Notes: used by Compaq's SOFTPAQ number 0937 EPPBIOS.SYS to determine whether
the Enhanced Parallel Port expected by that driver is available
used by Compaq's SOFTPAW number 0856 VOLCTRL.EXE to determine whether
volume control hardware expected by that driver is available
--------b-15E800-----------------------------
INT 15 - Compaq Prolinea - GET ???
AX = E800h
BX = ??? (1369h)
Return: BH = 01h
BL = ???
others???
Note: used by Compaq's SOFTPAQ number 0718 INT10_04.SYS to determine whether
the fix that driver applies is required (will not install if BX on
return is other than 010Eh or 010Fh)
SeeAlso: AX=E802h
--------b-15E801-----------------------------
INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS
AX = E801h
Return: CF clear if successful
AX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
BX = extended memory above 16M, in 64K blocks
CX = configured memory 1M to 16M, in K
DX = configured memory above 16M, in 64K blocks
CF set on error
Notes: supported by the A03 level (6/14/94) and later XPS P90 BIOSes, as well
as the Compaq Contura, 3/8/93 DESKPRO/i, and 7/26/93 LTE Lite 386 ROM
BIOS
supported by AMI BIOSes dated 8/23/94 or later
on some systems, the BIOS returns AX=BX=0000h; in this case, use CX
and DX instead of AX and BX
this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is
used as a fall-back by newer versions if AX=E820h is not supported
this function is not used by MS-DOS 6.0 HIMEM.SYS when an EISA machine
(for example with parameter /EISA) (see also MEM F000h:FFD9h), or no
Compaq machine was detected, or parameter /NOABOVE16 was given.
SeeAlso: AH=8Ah"Phoenix",AX=E802h,AX=E820h,AX=E881h"Phoenix"
--------b-15E802-----------------------------
INT 15 - Compaq Contura - GET ???
AX = E802h
Return: CF clear
AX = 0000h
BX = ???
CX = 0000h
Note: this function is also supported by the LTE Lite 25c, 25E, and 486; not
supported by LTE Lite 20 and 25.
SeeAlso: AX=E801h"Phoenix"
--------b-15E820-----------------------------
INT 15 - newer BIOSes - GET SYSTEM MEMORY MAP
AX = E820h
EAX = 0000E820h
EDX = 534D4150h ('SMAP')
EBX = continuation value or 00000000h to start at beginning of map
ECX = size of buffer for result, in bytes (should be >= 20 bytes)
ES:DI -> buffer for result (see #00581)
Return: CF clear if successful
EAX = 534D4150h ('SMAP')
ES:DI buffer filled
EBX = next offset from which to copy or 00000000h if all done
ECX = actual length returned in bytes
CF set on error
AH = error code (86h) (see #00496 at INT 15/AH=80h)
Notes: originally introduced with the Phoenix BIOS v4.0, this function is
now supported by most newer BIOSes, since various versions of Windows
call it to find out about the system memory
a maximum of 20 bytes will be transferred at one time, even if ECX is
higher; some BIOSes (e.g. Award Modular BIOS v4.50PG) ignore the
value of ECX on entry, and always copy 20 bytes
some BIOSes expect the high word of EAX to be clear on entry, i.e.
EAX=0000E820h
if this function is not supported, an application should fall back
to AX=E802h, AX=E801h, and then AH=88h
the BIOS is permitted to return a nonzero continuation value in EBX
and indicate that the end of the list has already been reached by
returning with CF set on the next iteration
this function will return base memory and ISA/PCI memory contiguous
with base memory as normal memory ranges; it will indicate
chipset-defined address holes which are not in use and motherboard
memory-mapped devices, and all occurrences of the system BIOS as
reserved; standard PC address ranges will not be reported
SeeAlso: AH=C7h,AX=E801h"Phoenix",AX=E881h,MEM xxxxh:xxx0h"ACPI"
Format of Phoenix BIOS system memory map address range descriptor:
Offset Size Description (Table 00580)
00h QWORD base address
08h QWORD length in bytes
10h DWORD type of address range (see #00581)
(Table 00581)
Values for System Memory Map address type:
01h memory, available to OS
02h reserved, not available (e.g. system ROM, memory-mapped device)
03h ACPI Reclaim Memory (usable by OS after reading ACPI tables)
04h ACPI NVS Memory (OS is required to save this memory between NVS
sessions)
other not defined yet -- treat as Reserved
SeeAlso: #00580
--------b-15E881-----------------------------
INT 15 - Phoenix BIOS v4.0 - GET MEMORY SIZE FOR >64M CONFIGURATIONS (32-bit)
AX = E881h
Return: CF clear if successful
EAX = extended memory between 1M and 16M, in K (max 3C00h = 15MB)
EBX = extended memory above 16M, in 64K blocks
ECX = configured memory 1M to 16M, in K
EDX = configured memory above 16M, in 64K blocks
CF set on error
Notes: supported by AMI BIOSes dated 8/23/94 or later
this interface is used by Windows NT 3.1, OS/2 v2.11/2.20, and is
used as a fall-back by newer versions if AX=E820h is not supported
SeeAlso: AX=E801h"Phoenix",AX=E820h"Phoenix"
----------15E900-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - RESET WATCHDOG TIMER
AX = E900h
Return: nothing
----------15E901-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE DIAGNOSTIC CONTROL POINT CODE
AX = E901h
CX = control point code (codes 000h-1FFh system backup)
Return: nothing
Note: Provided by PhysTechSoft's PTS ROM-DOS and displayed by SETUP.COM.
SeeAlso: AX=E902h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"
(Table 04093)
Values for PhysTechSoft PTS ROM-DOS control point code:
??? LOADER: Stack loaded
LOADER: IVT initialized
LOADER: Channel initialized
LOADER: Local loading
LOADER: Flash tested
LOADER: Load from ROM
LOADER: Load ROM comp.
LOADER: Load from Flash
LOADER: Load Flash co.
BIOS: Chipset initialized
BIOS: CPU tested
BIOS: Stack tested
BIOS: CRC tested
BIOS: IVT initialized
BIOS: Vars initialized
BIOS: Resident init
BIOS: Channel initialized
BIOS: Memory tested
BIOS: SRAM tested
BIOS: EMS tested
BIOS: PIC initialized
BIOS: PPI initialized
BIOS: DMA initialized
BIOS: Timer initialized
BIOS: Disks initialized
BIOS: Boot loaded
BIOS: Failed boot
DOS: Job point: (up to 25???)
SeeAlso: #04091
----------15E902-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - SET DIAGNOSTIC DOS ERROR FLAG
AX = E902h
CX = diagnostic flag mask (see #04091,#04092)
Return: nothing
Note: Provided by PhysTechSoft's PTS ROM-DOS and displayed by SETUP.COM.
DOS error flags can be assigned by application software.
SeeAlso: AX=E901h,INT 14/AH=05h"PTS ROM-DOS", INT 14/AH=06h"PTS ROM-DOS"
Bitfields for PhysTechSoft PTS ROM-DOS BIOS error flags:
Bit(s) Description (Table 04091)
??? Processor test failed.
Stack test failed.
BIOS code damaged.
Conventional memory test failed.
SRAM test failed.
EMS test failed.
Boot-sector damaged.
Boot-sector read error.
Loader setup damaged.
BIOS setup damaged.
SeeAlso: #04092,#04093
Bitfields for PhysTechSoft PTS ROM-DOS LOADER error flags::
Bit(s) Description (Table 04092)
??? Processor test failed.
Loader code damaged.
Loader code in RAM damaged.
Loader setup in flash-memory damaged.
BIOS setup in flash-memory damaged.
BIOS offset in flash-memory field damaged.
BIOS size in flash-memory field damaged.
BIOS in flash-memory damaged.
BIOS in ROM damaged.
Last operation field damaged.
Channel error.
Setup in flash-memory damaged.
Loading BIOS from control channel failed.
Loading DOS from control channel failed.
SeeAlso: #04091
----------15E903-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-ENABLE FLASH-DISK
AX = E903h
Return: nothing
Note: Enabling writing on Flash disk can lead to corruption of EMS disk info.
SeeAlso: AX=E904h,AX=E905h
----------15E904-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE-PROTECT FLASH-DISK
AX = E904h
Return: nothing
SeeAlso: AX=E903h,AX=E905h
----------15E905-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE IMAGE OF BIOS TO FLASH-MEMORY
AX = E905h
DS:SI -> buffer
Return: nothing
SeeAlso: AX=E903h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"
----------15E906-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - READ SETUP INFORMATION FROM FLASH-DISK
AX = E906h
DS:SI -> buffer
Return: AL = error code (00h = no error, 01h = setup information not found)
SeeAlso: AX=E907h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"
----------15E907-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - WRITE SETUP INFORMATION ON FLASH-DISK
AX = E907h
DS:SI -> buffer
Return: nothing
SeeAlso: AX=E906h
----------15E908-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - SET BREAKPOINT
AX = E908h
CL = flags
bit 1: =0 operate in one-fold mode
=1 operate in many-fold mode
bit 0: =0 send debug information to control channel
=1 activate handler
ES:SI = breakpoint address
DX:DI = handler address
Return: AH = error code
00h no error
01h incorrect parameter
02h no room in breakpoint table
SeeAlso: AX=E909h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"
----------15E909-----------------------------
INT 15 - PhysTechSoft PTS ROM-DOS - REMOVE BREAKPOINT
AX = E909h
ES:SI = breakpoint address
Return: AH = error code
00h no error
01h incorrect parameter
SeeAlso: AX=E908h,INT 14/AH=05h"PTS ROM-DOS",INT 14/AH=06h"PTS ROM-DOS"
--------m-15F200CX454D-----------------------
INT 15 - Tandon memory mapper - Tandon MAPPER HARDWARE INITIALIZATION CHECK ???
AX = F200h
CX = 454Dh
Return: CF clear if hardware already initialised
BX = upper RAM areas in use
bit 0: C000-C3FF
bit 1: C400-C7FF
...
bit 11: EC00-EFFF
CF set if hardware not initialised yet
--------B-1600-------------------------------
INT 16 - KEYBOARD - GET KEYSTROKE
AH = 00h
Return: AH = BIOS scan code
AL = ASCII character
Notes: on extended keyboards, this function discards any extended keystrokes,
returning only when a non-extended keystroke is available
the BIOS scan code is usually, but not always, the same as the hardware
scan code processed by INT 09. It is the same for ASCII keystrokes
and most unshifted special keys (F-keys, arrow keys, etc.), but
differs for shifted special keys
some (older) clone BIOSes do not discard extended keystrokes and manage
function AH=00h and AH=10h the same
the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended
keystrokes (same as with functions 10h and 20h), but will always
translate prefix E0h to 00h. This allows old programs to use extended
keystrokes and should not cause compatibility problems
SeeAlso: AH=01h,AH=05h,AH=10h,AH=20h,AX=AF4Dh"K3PLUS",INT 18/AH=00h
SeeAlso: INT 09,INT 15/AH=4Fh
--------B-1601-------------------------------
INT 16 - KEYBOARD - CHECK FOR KEYSTROKE
AH = 01h
Return: ZF set if no keystroke available
ZF clear if keystroke available
AH = BIOS scan code
AL = ASCII character
Note: if a keystroke is present, it is not removed from the keyboard buffer;
however, any extended keystrokes which are not compatible with 83/84-
key keyboards are removed by IBM and most fully-compatible BIOSes in
the process of checking whether a non-extended keystroke is available
some (older) clone BIOSes do not discard extended keystrokes and manage
function AH=00h and AH=10h the same
the K3PLUS v6.00+ INT 16 BIOS replacement doesn't discard extended
keystrokes (same as with functions 10h and 20h), but will always
translate prefix E0h to 00h. This allows old programs to use extended
keystrokes and should not cause compatibility problems
SeeAlso: AH=00h,AH=11h,AH=21h,INT 18/AH=01h,INT 09,INT 15/AH=4Fh
--------B-1602-------------------------------
INT 16 - KEYBOARD - GET SHIFT FLAGS
AH = 02h
Return: AL = shift flags (see #00582)
AH destroyed by many BIOSes
SeeAlso: AH=12h,AH=22h,INT 17/AH=0Dh,INT 18/AH=02h,MEM 0040h:0017h
Bitfields for keyboard shift flags:
Bit(s) Description (Table 00582)
7 Insert active
6 CapsLock active
5 NumLock active
4 ScrollLock active
3 Alt key pressed (either Alt on 101/102-key keyboards)
2 Ctrl key pressed (either Ctrl on 101/102-key keyboards)
1 left shift key pressed
0 right shift key pressed
SeeAlso: #00587,#03743,MEM 0040h:0017h,#M0010
--------B-1603-------------------------------
INT 16 - KEYBOARD - SET TYPEMATIC RATE AND DELAY
AH = 03h
AL = subfunction
00h set default delay and rate (PCjr and some PS/2)
01h increase delay before repeat (PCjr)
02h decrease repeat rate by factor of 2 (PCjr)
03h increase delay and decrease repeat rate (PCjr)
04h turn off typematic repeat (PCjr and some PS/2)
05h set repeat rate and delay (AT,PS)
BH = delay value (00h = 250ms to 03h = 1000ms)
BL = repeat rate (00h=30/sec to 0Ch=10/sec [def] to 1Fh=2/sec)
06h get current typematic rate and delay (newer PS/2s)
Return: BL = repeat rate (above)
BH = delay (above)
Return: AH destroyed by many BIOSes
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -