📄 interrup.k
字号:
Interrupt List, part 11 of 18
Copyright (c) 1989-1999,2000 Ralf Brown
--------D-26---------------------------------
INT 26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M)
AL = drive number (00h = A:, 01h = B:, etc)
CX = number of sectors to write (not FFFFh)
DX = starting logical sector number (0000h - highest sector on drive)
DS:BX -> data to write
Return: CF clear if successful
CF set on error
AH = status (see #02547)
AL = error code (same as passed to INT 24 in DI)
AX = 0207h if more than 64K sectors on drive -- use new-style call
may destroy all other registers except segment registers
Notes: original flags are left on stack, and must be popped by caller
this call bypasses the DOS filesystem, though DOS 5+ invalidates any
disk buffers referencing sectors which are written with this call
examination of CPWIN386.CPL indicates that if this call fails with
error 0408h on an old-style (<32M) call, one should retry the
call with the high bit of the drive number in AL set
Novell DOS 7 decides whether the old-style or new-style (>32M) version
of INT 26 must be used solely on the basis of the partition's size,
thus forcing use of the new-style call even for data in the first
32M of the partition
Windows98 will display an error message and deliberately hang the
system on attempted write to any hard disk if neither bit 7 of the
Extended Drive Info byte nor bit 6 of "DOS_FLAG" (List-of-Lists+60h)
is set
Although all registers except segment registers may be destroyed
some software depends on some of the registers being preserved.
For example some Flash disk drivers requires that DX is not trashed.
DR-DOS 7.03 takes care of this.
BUGS: DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
invalid drive number
DR DOS 3.41 will return with a jump instead of RETF, leaving the
wrong number of bytes on the stack; use the huge-partition version
(INT 26/CX=FFFFh) for all partition sizes under DR DOS 3.41
DR DOS 6.0 original releases 05/1991 & 08/1991 reported wrong error
codes for "drive not ready" and "write protect". This was fixed
with the DR DOS BDOS patch "PAT321" (1992/02/19, XDIR /C: 947Bh)
and later "full" rebuilds (see INT21/AX=4452h for details).
SeeAlso: INT 13/AH=03h,INT 25,INT 26/CX=FFFFh,INT 21/AX=7305h,INT 21/AH=91h"PTS"
--------D-26----CXFFFF-----------------------
INT 26 - DOS 3.31+ - ABSOLUTE DISK WRITE (32M-2047M hard-disk partition)
CX = FFFFh
AL = drive number (0=A, 1=B, etc)
DS:BX -> disk write packet (see #02552)
Return: CF clear if successful
CF set on error
AH = status (see #02547)
AL = error code (same as passed to INT 24 in DI)
may destroy all other registers except segment registers
Notes: partition is potentially >32M (and requires this form of the call) if
bit 1 of the device attribute word in the device driver is set
original flags are left on stack, and must be removed by caller
this call bypasses the DOS filesystem, though DOS 5+ invalidates any
disk buffers referencing sectors which are written with this call
for FAT32 drives (which may be up to 2TB in size), use INT 21/AX=7305h
Windows98 will display an error message and deliberately hang the
system on attempted write to any hard disk if neither bit 7 of the
Extended Drive Info byte nor bit 6 of "DOS_FLAG" (List-of-Lists+60h)
is set
SeeAlso: INT 13/AH=03h,INT 25/CX=FFFFh,INT 26,INT 21/AX=7305h
Format of disk write packet:
Offset Size Description (Table 02552)
00h DWORD sector number
04h WORD number of sectors to read
06h DWORD transfer address
SeeAlso: #02548
--------G-26---------------------------------
INT 26 - COMTROL HOSTESS i/ISA DEBUGGER - ENTER/EXIT EXTENDED ADDRESSING MODE
???
Return: ???
SeeAlso: INT 23"COMTROL",INT 27"COMTROL"
--------D-27---------------------------------
INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT
DX = number of bytes to keep resident (max FFF0h)
CS = segment of PSP
Return: never
Notes: this is an obsolete call
INT 22, INT 23, and INT 24 are restored from the PSP
does not close any open files
the minimum number of bytes which will remain resident is 110h for
DOS 2.x and 60h for DOS 3.0+; there is no minimum for DOS 1.x, which
implements this service in COMMAND.COM rather than the DOS kernel
SeeAlso: INT 21/AH=31h
--------G-27---------------------------------
INT 27 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE REMOTE TURBO DEBUGGER KERNEL
???
Return: ???
Desc: invoke a copy of the remote Turbo Debugger kernel on the Hostess i
controller
SeeAlso: INT 20"COMTROL",INT 26"COMTROL"
--------D-28---------------------------------
INT 28 C - DOS 2+ - DOS IDLE INTERRUPT
SS:SP = top of MS-DOS stack for I/O functions
Return: all registers preserved
Desc: This interrupt is invoked each time one of the DOS character input
functions loops while waiting for input. Since a DOS call is in
progress even though DOS is actually idle during such input waits,
hooking this function is necessary to allow a TSR to perform DOS
calls while the foreground program is waiting for user input. The
INT 28h handler may invoke any INT 21h function except functions
00h through 0Ch.
Notes: under DOS 2.x, the critical error flag (the byte immediately after the
InDOS flag) must be set in order to call DOS functions 50h/51h from
the INT 28h handler without destroying the DOS stacks.
calls to INT 21/AH=3Fh,40h from within an INT 28 handler may not use a
handle which refers to CON
at the time of the call, the InDOS flag (see INT 21/AH=34h) is normally
set to 01h; if larger, DOS is truly busy and should not be reentered
the default handler is an IRET instruction
supported in OS/2 compatibility box
the _MS-DOS_Programmer's_Reference_ for DOS 5.0 incorrectly documents
this interrupt as superseded
the performance of NetWare Lite servers (and probably other peer-to-
peer networks) can be dramatically improved by calling INT 28
frequently from an application's idle loop
SeeAlso: INT 21/AH=34h,INT 2A/AH=84h,INT 2F/AX=1680h
--------U-289999-----------------------------
INT 28 u - PCXDUMP v9.00+ - INSTALLATION CHECK
AX = 9999h
Return: AX = AAAAh if installed
CX = version number * 100 (example: 03A2h = 930 = v9.30)
DL = interrupt used by the dump function (see #02553)
(00h if call not available)
BX = CS of PCXDUMP's INT 28 handler (undocumented)
ES = segment of PCXDUMP's memory block (v9.30, undocumented)
Program: PCXDUMP is a shareware screen grabber saving in PCX format
Notes: if DL<>00h a dump can be requested by calling INT DL as shown
below (the user can choose the interrupt number at installation
time); if DL=00h the dump function can be called only by hotkeys
(this is the default)
(Table 02553)
Call PCXDUMP screen-dump function with:
INT xx
AX = 1234h
BX = dump type
0000h Color dump
0001h Immediate color dump
0002h Black/White dump
0003h Immediate B/W dump
0004h Inverted B/W dump
0005h Gray scaled dump
0006h Inverted gray scaled dump
0007h Text screen dump to text file
0008h Text screen dump to ansi file
Return: nothing
Notes: if BX=0001h, 0003h, 0007h or 0008h the whole screen will be
dumped; the other valid values will draw a selection frame
on the screen except in text modes (text modes allow only
full screen dumps)
this function doesn't perform the dump, it only requests it;
the dump will be performed after a few milliseconds if it's
safe to do so, thus the author recommends putting a 60 ms delay
after this call
--------D-29---------------------------------
INT 29 C - DOS 2+ - FAST CONSOLE OUTPUT
AL = character to display
Return: nothing
BX may be destroyed by some versions of DOS 3.3
Notes: automatically called when writing to a device with bit 4 of its device
driver header set (see also INT 21/AH=52h)
COMMAND.COM v3.2 and v3.3 compare the INT 29 vector against the INT 20
vector and assume that ANSI.SYS is installed if the segment is larger
the default handler under DOS 2.x and 3.x simply calls INT 10/AH=0Eh
the default handler under DESQview 2.2 understands the <Esc>[2J
screen-clearing sequence, calls INT 10/AH=0Eh for all others
SeeAlso: INT 21/AH=52h,INT 2F/AX=0802h,INT 79"AVATAR.SYS"
--------U-29E60DCL0E-------------------------
INT 29 - ShowGFX - INSTALLATION CHECK
AX = E60Dh
CL = 0Eh
DX = C0DEh
Return: DX = DEC0h
Program: ShowGFX is a PCBoard graphics driver by Solar Designer
--------N-2A00-------------------------------
INT 2A - NETWORK - INSTALLATION CHECK
AH = 00h
Return: AH <> 00h if installed
CF set if NetWare v2.15 NetBIOS emulator installed
Note: supported by PC LAN Program, LAN Manager, LANtastic, NetWare, 10NET,
etc.
SeeAlso: INT 5C"NetBIOS"
--------N-2A0000-----------------------------
INT 2A - AT&T Starlan Extended NetBIOS (var length names) - INSTALLATION CHECK
AX = 0000h
Return: AH = DDh
SeeAlso: INT 5B"Extended NetBIOS"
--------N-2A01-------------------------------
INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NETBIOS REQUEST,NO ERROR RETRY
AH = 01h
ES:BX -> NCB (see #03249 at INT 5C"NetBIOS")
Return: AL = NetBIOS error code
AH = status
00h no error
01h error occurred
SeeAlso: AH=04h,AX=0500h,INT 5B"Extended NetBIOS",INT 5C"NetBIOS"
--------N-2A02-------------------------------
INT 2A - NETWORK (Microsoft) - SET NET PRINTER MODE
AH = 02h
???
Return: ???
--------N-2A0300-----------------------------
INT 2A - NETWORK - CHECK DIRECT I/O
AX = 0300h
DS:SI -> ASCIZ device name (may be full path or only drive specifier--
must include the colon)
Return: CF clear if direct physical addressing (INT 13,INT 25) permissible
CF set if access via files only
Notes: do not use direct disk accesses if this function returns CF set or the
device is redirected (INT 21/AX=5F02h)
use AH=00h to determine whether the network is installed; if not,
direct physical access is allowed
may take some time to execute, so programs which need to check
frequently should save the result of the first call
this function is called by the DOS kernel on INT 25 and INT 26
supported by PC LAN Program, LAN Manage, LANtastic, NetWare, 10NET,
etc.
SeeAlso: INT 13/AH=02h,INT 13/AH=03h,INT 25,INT 26,INT 21/AX=5F02h
--------N-2A04-------------------------------
INT 2A - NETWORK - EXECUTE NetBIOS REQUEST
AH = 04h
AL = error retry
00h automatically retry request on errors 09h, 12h, and 21h
(see #03248 at INT 5C"NetBIOS")
01h no retry
02h ???
ES:BX -> Network Control Block (see #03249 at INT 5C"NetBIOS")
Return: AX = 0000h if successful
AH = 01h on error
AL = error code
Notes: invokes either INT 5B or INT 5C as appropriate
supported by PC LAN Program, LANtastic, LAN Manager, NetWare, 10NET,
etc.
NetWare 2.15 NetBIOS emulator returns CF clear if successful, CF set
on error
PC LAN Program defines any non-zero return value in AH as an error
indicator for subfunction 00h, and any non-zero return value in AX
as an error indicator for subfunction 01h
SeeAlso: AH=00h,AH=01h,AX=0500h,INT 5B"Extended NetBIOS",INT 5C"NetBIOS"
--------N-2A0500-----------------------------
INT 2A - NETWORK - GET NETWORK RESOURCE AVAILABILITY
AX = 0500h
Return: AX reserved
BX = number of network names available
CX = number of network control blocks available
DX = number of network sessions available
Notes: supported by PC LAN Program, LAN Manager, LANtastic, NetWare, 10NET,
etc.
the application should call this function before using any network
resources, and maintain its own count to avoid exceeding the
network's resource limits
SeeAlso: AH=00h,AH=01h,AH=04h,INT 5C"NetBIOS"
--------N-2A06-------------------------------
INT 2A - NETBIOS, LANtastic - NETWORK PRINT-STREAM CONTROL
AH = 06h
AL = function
01h set concatenation mode
all printer output put in one job until return to DOS prompt
02h set truncation mode (default)
printer open/close or BIOS/DOS output switch starts new job
03h flush printer output and start new print job
Return: CF set on error
AX = error code
CF clear if successful
Notes: subfunction 03h is equivalent to Ctrl/Alt/keypad-*
supported by PC LAN Program, LANtastic, NetWare, 10NET, etc.
LANtastic v4.x no longer supports this call
this function sets the printer mode for all redirected printers
SeeAlso: INT 21/AX=5D08h,INT 21/AX=5D09h,INT 2F/AX=1125h
--------N-2A07-------------------------------
INT 2A U - PC Network v1.00 - RECEIVER.COM - ???
AH = 07h
???
Return: ???
Program: PC Network is an early networking package which was renamed the
IBM PC Local Area Network Program (PC LAN Program) as of v1.10
SeeAlso: AH=86h
--------N-2A2001-----------------------------
INT 2A - MS Networks or NETBIOS - ???
AX = 2001h
???
Return: ???
Note: intercepted by DESQview 2.x
--------N-2A2002-----------------------------
INT 2A - NETWORK - ???
AX = 2002h
???
Return: ???
Note: called by MS-DOS 3.30-6.00 APPEND
--------N-2A2003-----------------------------
INT 2A - NETWORK - ???
AX = 2003h
???
Return: ???
Note: called by MS-DOS 3.30-6.00 APPEND
--------N-2A4147DX0000-----------------------
INT 2A U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK
AX = 4147h ('AG')
DX = 0000h
Return: DX = 4147h if installed
DS:SI -> configuration data (see #02554)
Program: DOS-NET is a shareware networking package by Albert Graham
Note: this call is supported by CLIENT.COM, SERVER.COM, ROUTER.COM, and
NETDOS.COM
SeeAlso: INT 65/DX=4147h,INT 65/DX=4741h
Format of DOS-NET v1.20 configuration data area:
Offset Size Description (Table 02554)
00h BYTE ???
01h BYTE interrupt number used by DOS-NET APIs
02h WORD function number to place in AX for above interrupt
04h BYTE minor version as two BCD digits (e.g. 20h for v1.20)
05h BYTE major version number (01h for v1.20)
06h 2 BYTEs ???
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -