📄 interrup.g
字号:
4 MAC open
5 diagnostics in progress
6-31 reserved
Bitfields for packet filter flags:
Bit(s) Description (Table 01443)
0 directed/multicast or group/functional
1 broadcast
2 promiscuous
3 all source routing
4-15 reserved, must be zero
--------D-214402-----------------------------
INT 21 U - MS-DOS 7.0+ - CONFIG$ device - GET CONFIGURATION INFORMATION
AX = 4402h
BX = file handle for character device "CONFIG$"
CX = number of bytes to read (at least 5)
DS:DX -> buffer for ??? data (see #01444)
Return: CF clear if successful
AX = number of bytes actually read
CF set on error
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
SeeAlso: AX=4403h"CONFIG$"
Format of MS-DOS 7.0 CONFIG$ ??? data:
Offset Size Description (Table 01444)
00h WORD ??? (0000h)
02h WORD ??? (0000h or value read from IO.SYS segment 70h)
04h BYTE ??? (value read from IO.SYS segment 70h)
--------I-214402-----------------------------
INT 21 U - IBM SYSTEM 36/38 WORKSTATION EMULATION - VDI.SYS - GET ???
AX = 4402h
BX = handle for character device "GDMS"
CX = number of bytes to read (>= 4)
DS:DX -> buffer (see #01445)
Return: CF set on error
AX = error code (see #01680 at AH=59h/BX=0000h)
CF clear if successful
AX = number of bytes read
Format of System 36/38 emulator returned data:
Offset Size Description (Table 01445)
00h 4 BYTEs ???
04h DWORD pointer to ???
08h 4 BYTEs ???
--------m-214402-----------------------------
INT 21 U - LASTBYTE.SYS v1.19 - IOCTL - GET ??? TABLE
AX = 4402h
BX = handle for device "LA$TBYTE"
CX = 0004h
DS:DX -> DWORD to hold address of 39-byte table of ???
Return: CF set on error
AX = error code (see #01680 at AH=59h/BX=0000h)
CF clear if successful
AX = number of bytes read
Program: LASTBYTE.SYS is part of the shareware "The Last Byte" memory
management package by Key Software Products
SeeAlso: AX=4402h"HIGHUMM"
--------m-214402-----------------------------
INT 21 - HIGHUMM.SYS v1.17+ - IOCTL - GET API ADDRESS
AX = 4402h
BX = handle for device "KSP$UMM"
CX = 0004h
DS:DX -> DWORD to hold entry point (see #01446)
Return: CF set on error
AX = error code (see #01680 at AH=59h/BX=0000h)
CF clear if successful
AX = number of bytes read
Program: HIGHUMM.SYS is part of the shareware "The Last Byte" memory
management package by Key Software Products
SeeAlso: AX=4402h"LASTBYTE"
(Table 01446)
Call HIGHUMM.SYS entry point with:
AH = 00h allocate UMB (same as XMS function 10h) (see INT 2F/AX=4310h)
DX = size in paragraphs
Return: BX = segment number (if successful)
DX = size of requested block/size of largest block
AH = 01h deallocate UMB (same as XMS func 11h) (see INT 2F/AX=4310h)
DX = segment number of UMB
AH = 02h request a bank-switched memory block
DX = size in paragraphs
Return: BX = segment number (if successful)
DX = size of requested block/size of largest block
AH = 03h release a bank-switched memory block
DX = segment number
AH = 04h transfer data to/from high memory
DS:SI -> source
ES:DI -> destination
CX = length in bytes
Note: enables bank-switched memory, does the copy, then disables
bank-switched memory
AH = 05h get a word from bank-switched memory
ES:DI -> word to read
Return: DX = word
AH = 06h put a word to bank-switched memory
ES:DI -> word to write
DX = word
AH = 07h put a byte to bank-switched memory
ES:DI -> byte to write
DL = byte
AH = 08h enable bank-switched memory
DS:SI -> 6-byte status save area
AH = 09h disable bank-switched memory
DS:SI -> 6-byte save area from enable call (AH=08h)
AH = 0Ah assign name to UMB or high bank-switched block
DX = segment number
DS:SI -> 8-byte blank-padded name
AH = 0Bh locate UMB block by name
DS:SI -> 8-byte blank-padded name
Return: BX = segment number (if successful)
DX = size of block
AH = 0Ch locate bank-switched block by name
DS:SI -> 8-byte blank-padded name
Return: BX = segment number (if successful)
DX = size of block
Return: AX = status code
0001h successful
0000h failed
BL = error code
80h not implemented
B0h insufficient memory, smaller block available
B1h insufficient memory, no blocks available
B2h invalid segment number
Note: only functions 00h and 01h are always available; the remaining
functions are only enabled if the proper commandline switch is given
--------c-214402-----------------------------
INT 21 - SMARTDRV.SYS v3.x only - IOCTL - GET CACHE STATUS
AX = 4402h
BX = file handle for device "SMARTAAR"
CX = number of bytes to read (min 28h)
DS:DX -> buffer for status record (see #01447)
Return: CF clear if successful
AX = number of bytes actually read
CF set on error
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
Note: NCache2 (from the Norton Utilities v8.0) attempts to support this
interface, but does not do so correctly, often hanging the system;
one should use the SmartDrive v4.x or NCache private interfaces
(see INT 2F/AX=4A10h/BX=0000h,INT 2F/AX=FE00h/DI=4E55h)
SeeAlso: AX=4403h"SMARTDRV",INT 2F/AX=4A10h/BX=0000h
Format of SMARTDRV status record:
Offset Size Description (Table 01447)
00h BYTE write-through flag (always 01h)
01h BYTE writes should be buffered (always 00h)
02h BYTE cache enabled if 01h
03h BYTE driver type (01h extended memory, 02h expanded)
04h WORD clock ticks between cache flushes (currently unused)
06h BYTE cache contains locked tracks if nonzero
07h BYTE flush cache on INT 19 reboot if nonzero
08h BYTE cache full track writes if nonzero
09h BYTE double buffering (for VDS) state (00h off, 01h on, 02h dynamic)
0Ah DWORD original INT 13 vector
0Eh BYTE minor version number
0Fh BYTE major version number
10h WORD unused
12h WORD sectors read \
14h WORD sectors already in cache > may be scaled rather than
16h WORD sectors already in track buffer / absolute counts
18h BYTE cache hit rate in percent
19h BYTE track buffer hit rate in percent
1Ah WORD total tracks in cache
1Ch WORD number of tracks in use
1Eh WORD number of locked tracks
20h WORD number of dirty tracks
22h WORD current cache size in 16K pages
24h WORD original (maximum) cache size in 16K pages
26h WORD minimum cache size in 16K pages
28h DWORD pointer to byte flag to increment for locking cache contents
--------d-214402-----------------------------
INT 21 - CD-ROM device driver - IOCTL INPUT
AX = 4402h
BX = file handle referencing character device for CD-ROM driver
CX = number of bytes to read
DS:DX -> control block (see #01449)
Return: CF clear if successful
AX = number of bytes actually read
CF set on error
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
Notes: the data returned depends on the first byte of the control block
(two bytes for functions 01h/07h/0Bh, see #01449); the remainder of
the control block is filled by the driver
some device drivers support several subunits (that is more than one
drive) but it is not possible to distinguish between them with this
function; use INT 2F/AX=1510h or INT 2F/AX=0802h instead
under Windows95, the "mscd$$$$" device cannot be opened so you cannot
obtain the handle required by this function: use INT 2F/AX=1510h
or INT 2F/AX=0802h instead
SeeAlso: AX=4403h"CD-ROM",INT 2F/AX=0802h,INT 2F/AX=1510h
(Table 01448)
Values for CD-ROM data being requested:
00h device driver header address
01h drive head location
02h reserved
03h error statistics
04h audio channel info
05h raw drive bytes (uninterpreted and device-specific)
06h device status
07h sector size
08h volume size
09h media change status
0Ah audio disk info
0Bh audio track info
0Ch audio Q-Channel info
0Dh audio sub-channel info
0Eh UPC code
0Fh audio status info
Format of CD-ROM control block:
Offset Size Description (Table 01449)
00h BYTE data being requested (see #01448)
---function 00h---
01h DWORD device driver header address (see also AH=52h,#01646)
---function 01h---
01h BYTE (call) addressing mode
00h HSG
01h Red Book
02h DWORD current location of drive's head
logical sector number in HSG mode
frame/second/minute/unused in Red Book mode
(HSG sector = minute * 4500 + second * 75 + frame - 150)
---function 03h---
01h N BYTEs undefined as of 5 Aug 88 specification
---function 04h---
01h BYTE input channel (0-3) for output channel 0
02h BYTE volume for output channel 0
03h BYTE input channel (0-3) for output channel 1
04h BYTE volume for output channel 1
05h BYTE input channel (0-3) for output channel 2
06h BYTE volume for output channel 2
07h BYTE input channel (0-3) for output channel 3
08h BYTE volume for output channel 3
Notes: output channels 0 and 1 are left and right, 2 and 3 are left prime and
right prime; a volume of 00h is off
the default setting is for each input channel to be assigned to the
same-numbered output channel at full (FFh) volume
---function 05h---
01h BYTE number of bytes read
02h 128 BYTEs buffer for drive bytes
---function 06h---
01h DWORD device parameters (see #01450)
---function 07h---
01h BYTE (call) read mode
00h cooked
01h raw
02h WORD (return) sector size in bytes
---function 08h---
01h DWORD volume size in sectors
BUGS: Aztech device driver v1.10 and v1.27 (at least) return the last sector
number, i.e. total number of sectors - 1
Windows95 returns the total number of sectors + 150 (see the Red Book
to HSG conversion formula at function 01h to understand why this
happens)
---function 09h---
01h BYTE media change status
00h don't know
01h media unchanged
FFh media has been changed
---function 0Ah---
01h BYTE lowest audio track number
02h BYTE highest audio track number
03h DWORD start address of lead-out track (Red Book format)
--function 0Bh---
01h BYTE (call) track number
02h DWORD starting point of track (Red Book format)
06h BYTE track control info
bits 15,14,12: track type (notice: bits not contiguous!)
000 two audio channels, no pre-emphasis
001 two audio channels with pre-emphasis
010 data track
100 four audio channels, no pre-emphasis
101 four audio channels with pre-emphasis
other reserved
bit 13: digital copy permitted
---function 0Ch---
01h BYTE CONTROL and ADR byte (as received from drive)
02h BYTE track number
03h BYTE point or index
04h BYTE minute \
05h BYTE second > running time within track
06h BYTE frame /
07h BYTE zero
08h BYTE "AMIN" or "PMIN" \
09h BYTE "ASEC" or "PSEC" > running time on disk
0Ah BYTE "AFRAME" or "PFRAME" /
---function 0Dh---
01h DWORD starting frame address (Red Book format)
05h DWORD transfer address
09h DWORD number of sectors to read
Note: copies 96 bytes of sub-channel info per sector into buffer
---function 0Eh---
01h BYTE CONTROL and ADR byte
02h 7 BYTEs UPC/EAN code (13 BCD digits,low-order nybble of last byte is 0)
09h BYTE zero
0Ah BYTE "AFRAME"
---function 0Fh---
??? documentation not yet available
01h WORD pause status (0000h not paused, 0001h paused)
03h DWORD audio play start address
07h DWORD ??? audio play length or end address
Bitfields for CD-ROM device parameters:
Bit(s) Description (Table 01450)
0 door open
1 door unlocked
2 supports raw reading in addition to cooked
3 writable
4 can play audio/video tracks
5 supports interleaving
6 reserved
7 supports prefetch requests
8 supports audio channel control
9 supports Red Book addressing in addition to HSG
10 audio is playing
11 no disk in drive
12 supports R-W subchannels
--------m-214402-----------------------------
INT 21 - Quarterdeck - QEMM-386 v5+ - GET API ENTRY POINT
AX = 4402h
BX = file handle for device "QEMM386$"
CX = 0004h
DS:DX -> DWORD buffer for API entry point
Return: CF clear if successful
buffer filled (refer to INT 67/AH=3Fh for entry point parameters)
CF set on error
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
Note: Quarterdeck recently (June 1993) documented this function, but the
documentation incorrectly states that it is only available for
QEMM 6+
SeeAlso: AX=4402h"HOOKROM",INT 2F/AX=D201h/BX=5145h,INT 67/AH=3Fh
--------Q-214402-----------------------------
INT 21 U - Quarterdeck - HOOKROM.SYS - GET HOOKED VECTOR TABLE
AX = 4402h
BX = file handle for device "HOOKROM$"
CX = 0004h
DS:DX -> DWORD buffer for address of hooked vector table (see #01451)
Return: CF clear if successful
DS:DX buffer filled
CF set on error
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
SeeAlso: AX=4402h/SF=01h
Format of HOOKROM.SYS hooked vector table entry:
Offset Size Description (Table 01451)
00h 5 BYTEs FAR jump to actual interrupt handler
(end of table if first byte is not EAh)
05h BYTE interrupt vector number
--------d-214402-----------------------------
INT 21 - Advanced SCSI Programming Interface (ASPI) - INTERFACE
AX = 4402h
BX = file handle for device "SCSIMGR$"
CX = 0004h or 0005h (refer to notes below)
DS:DX -> buffer for result (see #01452), set to zeros before call
Return: CF clear if successful
AX = 0004h or 0005h (refer to notes below)
CF set on error
AX = error code (01h,05h,06h,0Dh) (see #01680 at AH=59h/BX=0000h)
Notes: the variant of the call requesting five bytes is an UNDOCUMENTED
extension supported by Adaptec's ASPI2DOS.SYS, ASPI4DOS.SYS, and
ASPI7DOS.SYS; if made of a host manager which does not support the
variant, only four bytes will be returned. If the variant is
supported, Adaptec's WINASPI.DLL assumes that the host manager is
an "advanced" one which operates in either real or protected mode
(and thus does not require a DPMI INT 31/AX=0301h call to be invoked
from protected mode). Support of the five-byte variant also appears
to imply that an advanced ASPI host manager uses no temporary
storage space except the SRB (see #01454) and the stack, and that it
is fully reentrant.
if called with a standard request for four bytes, even Adaptec's
advanced drivers return only the requested four bytes containing the
ASPI entry point address
the function address is called with the address of a SCSI Request
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -