ralf@b.gp.cs.cmu.edu (Ralf Brown) (09/18/88)
BH = 0WF00000
W = auto commit on write
F = return error rather than doing INT 24h
CX = create attribute
DL = action if file exists/does not exists
bits 7-4 action if file does not exist
0000 fail
0001 create
bits 3-0 action if file exists
0000 fail
0001 open
0010 replace/open
DH = 0
DS:SI -> ASCIZ file name
Return: CF set on error
AX = error code
CF clear if successful
AX = file handle
CX = 1 file opened
2 file created
3 file replaced
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = B6h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = B8h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = BBh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = BCh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = BDh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = BEh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = BFh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C0h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C1h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C2h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C3h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C4h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C5h
AL = subfunction
00h-04h ???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C6h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C7h
AL = subfunction
00h-04h ???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C8h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = C9h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = CAh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = CBh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = CCh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = CDh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = CEh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = CFh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D0h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D1h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D2h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D3h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D4h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D5h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D6h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = D7h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = DAh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = DBh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - GET STATION NUMBER
AH = DCh
Return: AL = station number
0 if NetWare not loaded or this machine is a non-dedicated server
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = DDh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - SET BROADCAST MODE
AH = DEh
???
Return: ??? = old broadcast mode
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = DFh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E0h
AL = subfunction
00h-06h ???
09h ???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - BROADCAST MESSAGES
AH = E1h
AL = subfunction
00h send broadcast message
01h get broadcase message
02h-09h ???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E2h
AL = subfunction
00h-06h ???
0Ah-19h ???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - CONNECTION CONTROL
AH = E3h
AL = subfunction
00h-14h ???
15h get object connection numbers
16h get connection information
32h-47h ???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E4h
???
Return: ???
------------------------------------------------------
INT 21 - DoubleDos - INSTALLATION CHECK
AX = E400h
Return: AL <> 0 if DoubleDos is active
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E5h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E6h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E7h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E8h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = E9h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = EAh
???
Return: ???
------------------------------------------------------
INT 21 - DoubleDos - TURN OFF TASK SWITCHING
AH = EAh
Return: task switching turned off
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = EBh
???
Return: ???
------------------------------------------------------
INT 21 - DoubleDos - TURN ON TASK SWITCHING
AH = EBh
Return: task switching turned on
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = ECh
???
Return: ???
------------------------------------------------------
INT 21 - DoubleDos - GET VIRTUAL SCREEN ADDRESS
AH = ECh
Return: ES = segment of virtual screen
Note: Screen address can change if task-switching is on!!
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = EDh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - GET NODE ADDRESS
AH = EEh
Return: CX:BX:AX = six-byte address
------------------------------------------------------
INT 21 - DoubleDos - GIVE AWAY TIME TO OTHER TASKS
AH = EEh
AL = number of 55ms time slices to give away
Return: returns after giving away time slices
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = EFh
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = F0h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = F1h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = F2h
???
Return: ???
------------------------------------------------------
INT 21 - Novell NetWare - ???
AH = F3h
???
Return: ???
------------------------------------------------------
INT 21 - CED - INSTALLABLE COMMANDS
AH = FFh
AL = 0 add installable command
BL = mode - bit 0 = 1 callable from DOS prompt
bit 1 = 1 callable from application
DS:SI -> CR-terminated command name
ES:DI -> FAR routine entry point
AL = 1 remove installable command
DS:SI -> CR-terminated command name
AL = 2 reserved, may be used to test for CED installation
Return: CF set on error
AX = 01h invalid function
02h command not found (subfunction 1 only)
08h insufficient memory (subfunction 0 only)
0Eh bad data (subfunction 0 only)
AH = 0FFh if CED not installed
------------------------------------------------------
INT 22 - DOS - TERMINATE ADDRESS
FAR (DWORD) address of routine to be executed when program "returns to DOS".
Should NEVER be called directly.
------------------------------------------------------
INT 23 - DOS - CONTROL "C" EXIT ADDRESS
Automatically called from keyboard scanner when CTRL-C or CTRL-BREAK is
detected. Normally aborts program and returns to DOS, but may be changed.
------------------------------------------------------
INT 24 - DOS - FATAL ERROR HANDLER ADDRESS
Automatically called upon detection of unrecoverable I/O error.
Normally points to routine in resident part of COMMAND.COM that prints
"Abort, Retry, Ignore?" message and takes the reply, but may be overridden
if desired.
Provides the following values in registers on entry to interrupt handler:
AH: bit 7 = 0 disk I/O error
= 1 other error -- if block device, bad FAT
-- if char device, code in DI
bit 6 unused
bit 5 = 1 if Ignore allowed, 0 if not (DOS 3.x)
bit 4 = 1 if Retry allowed, 0 if not (DOS 3.x)
bit 3 = 1 if Fail allowed, 0 if not (DOS 3.x)
bit 2 \ disk area of error 00 = DOS area 01 = FAT
bit 1 / 10 = root dir 11 = data area
bit 0 = 1 if write, 0 if read
AL = drive number if AH bit 7 = 1, otherwise undefined
BP:SI = address of device header for which error occurred
block device if high bit of BP:SI+4 = 1
low byte of DI:
00h write-protect error
01h unknown unit
02h drive not ready
03h unknown command
04h data error (bad CRC)
05h bad request structure length
06h seek error
07h unknown media type
08h sector not found
09h printer out of paper
0Ah write fault
0Bh read fault
0Ch general failure
0Dh (DOS 3.x) sharing violation
0Eh (DOS 3.x) lock violation
0Fh (DOS 3.x) invalid disk change
10h (DOS 3.x) FCB unavailable
11h (DOS 3.x) sharing buffer overflow
Handler must return
AL = 00 ignore error
= 01 retry operation
= 02 terminate program through INT 22h
= 03 fail system call in progress (DOS 3.x)
------------------------------------------------------
INT 25 - DOS - ABSOLUTE DISK READ (except DOS 4.0/COMPAQ DOS 3.31 >32M partitn)
AL = Drive number (0=A, 1=B, etc)
DS:BX = Disk Transfer Address (buffer)
CX = Number of sectors to read
DX = First relative sector to read
Return: CF = 1 if error
AL = error code issued to INT 24h in low half of DI
AH = 80h if attachment failed to respond
40h if seek operation failed
20h if controller failed
10h if data error (bad CRC)
08h if DMA failure
04h if requested sector not found
03h if write-protected disk
02h if bad address mark
01h if bad command
Note: ORIGINAL FLAGS ON STACK!
------------------------------------------------------
INT 25 - DOS 4.0/COMPAQ DOS 3.31 - ABSOLUTE DISK READ (>32M hard-disk partitn)
AL = Drive number (0=A, 1=B, etc)
CX = FFFFh
DS:BX = Packet address
DWORD sector number
WORD number of sectors to read
DWORD transfer address
Return: same as above???
Note: partition is potentially >32M (and requires this form of the call) if
bit 1 of device attribute word in device driver is set
------------------------------------------------------
INT 26 - DOS - ABSOLUTE DISK WRITE (except DOS 4.0/COMPAQ DOS 3.31 >32M partn)
AL = Drive number (0=A, 1=B, etc)
DS:BX = Disk Transfer Address (buffer)
CX = Number of sectors to write
DX = First relative sector to write
Return: CF = 1 if error
AL = error code issued to INT 24h in low half of DI
AH = same error codes as for INT 25h
Note: ORIGINAL FLAGS ON STACK!
------------------------------------------------------
INT 26 - DOS 4.0/COMPAQ DOS 3.31 - ABSOLUTE DISK WRITE (>32M hard-disk partitn)
AL = Drive number (0=A, 1=B, etc)
CX = FFFFh
DS:BX = Packet address
DWORD sector number
WORD number of sectors to write
DWORD transfer address
Return: same as above???
Note: partition is potentially >32M (and requires this form of the call) if
bit 1 of device attribute word in device driver is set
------------------------------------------------------
INT 27 - DOS - TERMINATE BUT STAY RESIDENT
CS = current program segment
DX = last program byte + 1
Return: never
------------------------------------------------------
INT 28 - DOS Internal - KEYBOARD BUSY LOOP
This interrupt is called from inside the "get input from keyboard" routine
in DOS, if and only if it is safe to use INT 21 to access the disk at that
time. It is used primarily by the PRINT.COM routines and TSR programs, but
any number of other routines could be chained to it by saving the original
vector, and calling it with a FAR call (or just JMPing to it) at the end of
the new routine.
The INT 28h handler may invoke any INT 21h function except functions 00h
through 0Ch (and 50h/51h under DOS 2.xx unless DOS CritErr flag is set).
Until some program installs its own routine, this interrupt vector simply
points to an IRET opcode.
------------------------------------------------------
INT 29 - DOS Internal - FAST PUTCHAR
This interrupt is called from the DOS output routines if output is going to
a device rather than a file, and the device driver's attribute word has
bit 3 (04h) set to "1".
------------------------------------------------------
INT 2A - Microsoft Networks - NETWORK INSTALLATION CHECK
AH = 00h
Return: AH <> 0 if installed
------------------------------------------------------
INT 2A - Microsoft Networks - CHECK DIRECT I/O
AX = 0300h
DS:SI -> ASCIZ disk device name
Return: CF == 0 if allowed
------------------------------------------------------
INT 2A - Microsoft Networks - EXECUTE NETBIOS
AH = 04h
AL = 0 for error retry, 1 for no retry
ES:BX -> NCB
Return: AX = 0 for no error
AH = 1, AL = error code
------------------------------------------------------
INT 2A - Microsoft Networks - GET NETWORK RESOURCE INFORMATION
AX = 0500h
Return: AX = reserved
BX = number of network names
CX = number of commands
DX = number of sessions
------------------------------------------------------
INT 2A - NETBIOS 1.10 - NETWORK PRINT-STREAM CONTROL
AH = 06h
???
Return: ???
------------------------------------------------------
INT 2A - ???
AX = 2001h
???
Return: ???
Note: intercepted by DESQview 2.0
------------------------------------------------------
INT 2A - Microsoft Networks - BEGIN DOS CRITICAL SECTION
AH = 80h
AL = 1 to 6
------------------------------------------------------
INT 2A - Microsoft Networks - END DOS CRITICAL SECTION
AH = 81h
AL = 1 to 6
------------------------------------------------------
INT 2A - Microsoft Networks - SERVER HOOK
AH = 82h
???
Return: ???
Note: Called by the INT 21h function dispatcher for function 0 and functions
greater than 0Ch except 59h
------------------------------------------------------
INT 2A - Microsoft Networks - KEYBOARD BUSY LOOP
AH = 84h
Note: similar to DOS's INT 28h
------------------------------------------------------
INT 2B - Internal routine for MSDOS (IRET)
------------------------------------------------------
INT 2C - Internal routine for MSDOS (IRET)
------------------------------------------------------
INT 2D - Internal routine for MSDOS (IRET)
------------------------------------------------------
INT 2E - DOS 2+ Internal - EXECUTE COMMAND
DS:SI -> counted CR-terminated command string
The top-level command.com executes the command; all registers are destroyed
as in EXEC (INT 21/AH=4Bh).
------------------------------------------------------
INT 2F - notes
AH identifies which program is to handle the interrupt
00h-7Fh reserved for DOS
C0h-FFh reserved for applications
AL is the function code
------------------------------------------------------
INT 2F - Multiplexor - PRINT - INSTALLATION CHECK
AX = 0100h
Return: AL =
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
------------------------------------------------------
INT 2F - Multiplexor - PRINT - SUBMIT FILE
AX = 0101h
DS:DX -> packet
BYTE level
DWORD pointer to ASCIZ filename (no wildcards)
Return: CF = 1 if error
AX = error code
------------------------------------------------------
INT 2F - Multiplexor - PRINT - REMOVE FILE
AX = 0102h
DS:DX -> file name (wildcards allowed)
Return: CF = 1 if error
AX = error code
------------------------------------------------------
INT 2F - Multiplexor - PRINT - REMOVE ALL FILES
AX = 0103h
Return: CF = 1 if error
AX = error code
------------------------------------------------------
INT 2F - Multiplexor - PRINT - HOLD QUEUE/GET STATUS
AX = 0104h
Return: CF = 1 if error
AX = error code
01h function invalid
02h file not found
03h path not found
04h too many open files
05h access denied
08h queue full
09h spooler busy
0Ch name too long
0Fh drive invalid
DX = error count
DS:SI -> print queue (null-string terminated
list of 64-byte ASCIZ file names)
------------------------------------------------------
INT 2F - Multiplexor - PRINT - RESTART QUEUE
AX = 0105h
Return: CF = 1 if error
AX = error code
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x CRITICAL ERROR HANDLER - INSTALLATION CHECK
AX = 0500h
Return: AL = 00h not installed, OK to install
01h not installed, can't install
FFh installed
Note: this set of functions allows a user program to partially or completely
override the default critical error handler in COMMAND.COM
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x CRITICAL ERROR HANDLER - HANDLE ERROR
AH = 05h
AL = extended error code (not zero)
Return: CF clear
ES:DI -> ASCIZ error message
AL = ???
CF set: use default error handler
------------------------------------------------------
INT 2F - Multiplexor - ASSIGN - INSTALLATION CHECK
AX = 0600h
Return: AH <> 0 if installed
------------------------------------------------------
INT 2F - Multiplexor - ASSIGN - GET MEMORY SEGMENT
AX = 0601h
Return: ES = segment of ASSIGN work area
------------------------------------------------------
INT 2F - Multiplexor - SHARE - INSTALLATION CHECK
AX = 1000h
Return: AL = 00h not installed, OK to install
01h not installed, not OK to install
FFh installed
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - INSTALLATION CHECK
AX = 1100h
Return: AL = 00h not installed, OK to install
01h not installed, not OK to install
FFh installed
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1101h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1103h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1105h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - CLOSE REMOTE FILE
AX = 1106h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1107h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1108h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1109h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 110Ah
STACK: WORD ???
Return: CF set on error
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 110Bh
STACK: WORD ???
Return: CF set on error???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 110Ch
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 110Eh
STACK: WORD ???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 110Fh
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - RENAME FILE???
AX = 1111h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1113h
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1116h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1117h
STACK: WORD ???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1118h
STACK: WORD ???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1119h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 111Bh
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 111Ch
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 111Dh
DS???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - DO REDIRECTION
AX = 111Eh
STACK: WORD function to execute
Return: CF set on error
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - PRINTER SETUP
AX = 111Fh
STACK: WORD function???
Return: CF set on error???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1120h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1121h
???
Return: CF set on error???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1122h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1123h
???
Return: CF set on error???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1124h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1125h
STACK: WORD ???
Return: ???
CF set on error???
------------------------------------------------------
INT 2F - Multiplexor - NETWORK REDIRECTOR - ???
AX = 1126h
???
Return: CF set on error???
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - INSTALLATION CHECK
AX = 1200h
Return: AL = FFh (for compatibility with other INT 2F functions)
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - CLOSE FILE???
AX = 1201h
STACK: WORD ???
Return: BX???
CX???
ES:DI -> ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET INTERRUPT ADDRESS
AX = 1202h
STACK: WORD vector number
Return: ES:BX -> interrupt vector
Stack unchanged
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET DOS DATA SEGMENT
AX = 1203h
Return: DS = segment of IBMDOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - NORMALIZE PATH SEPARATOR
AX = 1204h
STACK: WORD character to normalize
Return: AL = normalized character (forward slash turned to backslash)
Stack unchanged
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - OUTPUT CHARACTER
AX = 1205h
STACK: WORD character to output
Return: Stack unchanged
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - INVOKE CRITICAL ERROR
AX = 1206h
Return: AL = 0-3 for Abort, Retry, Ignore, Fail
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - MOVE DISK BUFFER???
AX = 1207h
DS:DI -> disk buffer
Return: buffer moved to end of buffer list
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - DECREMENT WORD
AX = 1208h
ES:DI -> word to decrement
Return: AX = new value of word
word pointed to by ES:DI decremented, skipping zero
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 1209h
DS:DI -> disk buffer???
Return: ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 120Ah
???
Return: ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 120Bh
ES:DI -> system file table entry???
???
Return: AX = ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 120Ch
???
Return: ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET DATE AND TIME
AX = 120Dh
Return: AX = current date in packed format
DX = current time in packed format
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ??? ALL DISK BUFFERS
AX = 120Eh
Return: DS:DI -> first disk buffer
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 120Fh
DS:DI -> ???
Return: DS:DI -> ???
Note: can be called only from within DOS
calls on function 1207h
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - FIND DIRTY/CLEAN??? BUFFER
AX = 1210h
DS:DI -> first disk buffer
Return: DS:DI -> first disk buffer which has ??? flag clear
ZF clear if found, set if not found
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - NORMALIZE ASCIZ FILENAME
AX = 1211h
DS:SI -> ASCIZ filename to normalize
ES:DI -> buffer for normalized filename
Return: destination buffer filled with uppercase filename, with slashes turned
to backslashes
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET LENGTH OF ASCIZ STRING
AX = 1212h
ES:DI -> ASCIZ string
Return: CX = length of string
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - UPPERCASE CHARACTER
AX = 1213h
STACK: WORD character to convert to uppercase
Return: AL = uppercase character
Stack unchanged
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - COMPARE FAR POINTERS
AX = 1214h
DS:SI = first pointer
ES:DI = second pointer
Return: ZF set if pointers are equal, ZF clear if not equal
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 1215h
DS:DI -> disk buffer
STACK: WORD ???
Return: Stack unchanged
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET ADDRESS OF SYSTEM FCB
AX = 1216h
BX = system file table entry number
Return: ES:DI -> system file table entry
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - SET DEFAULT DRIVE ???
AX = 1217h
STACK: WORD drive (0 = A:, 1 = B:, etc)
Return: DS:SI -> drive data block for specified drive
Stack unchanged
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET ???
AX = 1218h
Return: DS:SI -> ???
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 1219h
STACK: WORD drive (0 = default, 1 = A:, etc)
Return: ???
Stack unchanged
Note: can be called only from within DOS
calls function 1217h
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET FILE'S DRIVE
AX = 121Ah
DS:SI -> filename
Return: AL = drive (0 = default, 1 = A:, etc, FFh = invalid)
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - SET ???
AX = 121Bh
CL = ???
Return: AL = ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - CHECKSUM MEMORY
AX = 121Ch
DS:SI -> start of memory to checksum
CX = number of bytes
DX = initial checksum
Return: DX = checksum
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 121Dh
DS:SI -> ???
CX = ???
DX = ???
Return: AX = ???
CX = ???
DX = ???
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - COMPARE FILENAMES
AX = 121Eh
DS:SI -> first ASCIZ filename
ES:DI -> second ASCIZ filename
Return: ZF set if filenames equivalent, ZF clear if not
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - BUILD DRIVE INFO BLOCK
AX = 121Fh
STACK: WORD drive letter
Return: ES:DI -> drive info block (will be overwritten by next call)
Stack unchanged
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET SYSTEM FILE TABLE NUMBER
AX = 1220h
BX = file handle
Return: CF set on error
AL = 6 (invalid file handle)
CF clear if successful
BYTE ES:[DI] = system file table entry number for file handle
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 1221h
DS:SI -> ???
Return: ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - ???
AX = 1222h
SS:SI -> ???
Return: nothing???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - CHECK IF CHARACTER DEVICE???
AX = 1223h
???
Return: DS:SI -> device driver with same name as ???
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - DELAY
AX = 1224h
Return: after delay of ??? ms
Note: can be called only from within DOS
------------------------------------------------------
INT 2F - Multiplexor - DOS 3.x internal services - GET LENGTH OF ASCIZ STRING
AX = 1225h
DS:SI -> ASCIZ string
Return: CX = length of string
------------------------------------------------------
INT 2F - Multiplexor - XMS - INSTALLATION CHECK
AX = 4300h
Return: AL = 80h XMS driver installed
AL <> 80h no driver
Note: XMS gives access to extended memory and noncontiguous/nonEMS memory
above 640K
------------------------------------------------------
INT 2F - Multiplexor - XMS - GET DRIVER ADDRESS
AX = 4310h
Return: ES:BX -> driver entry point
Perform a FAR call to the driver entry point with AH set to the function code
AH function
00h Get XMS version number
Return: AX = XMS version
BX = internal revision number
DX = 1 if HMA (1M to 1M + 64K) exists
0 if HMA does not exist
01h Request High Memory Area (1M to 1M + 64K)
DX = memory in bytes (for TSR or device drivers)
FFFFh if application program
Return: AX = 1 success
= 0 failure
BL = error code
02h Release High Memory Area
Return: AX = 1 success
= 0 failure
BL = error code
03h Global enable A20
Return: AX = 1 success
= 0 failure
BL = error code
04h Global disable A20
Return: AX = 1 success
= 0 failure
BL = error code
05h Local enable A20
Return: AX = 1 success
= 0 failure
BL = error code
06h Local disable A20
Return: AX = 1 success
= 0 failure
BL = error code
07h Query A20
Return: AX = 1 success
= 0 failure
BL = error code
08h Query free extended memory
Return: AX = size of largest extended memory block in K
DX = total extended memory in K
09h Allocate extended memory block
DX = Kbytes needed
Return: AX = 1 success
DX = handle for memory block
= 0 failure
BL = error code
0Ah Free extended memory block
DX = handle of block to free
Return: AX = 1 success
= 0 failure
BL = error code
0Bh Move extended memory block
DS:SI -> EMM structure
DWORD number of bytes to move
WORD source handle
DWORD offset into source block
WORD destination handle
DWORD offset into destination block
Note: if either handle is 0000h, the corresponding offset is
considered to be an absolute Segment:Offset address in
directly addressable memory
Return: AX = 1 success
= 0 failure
BL = error code
0Ch Lock extended memory block
DX = handle of block to lock
Return: AX = 1 success
DX:BX = 32-bit linear address of locked block
= 0 failure
BL = error code
0Dh Unlock extended memory block
DX = handle of block to unlock
Return: AX = 1 success
= 0 failure
BL = error code
0Eh Get handle information
DX = handle for which to get info
Return: AX = 1 success
BH = block's lock count
BL = number of free handles left
DX = block size in K
= 0 failure
BL = error code
0Fh Reallocate extended memory block
DX = handle of block
BX = new size of block in K
Return: AX = 1 success
= 0 failure
BL = error code
10h Request upper memory block (nonEMS memory above 640K)
DX = size of block in paragraphs
Return: AX = 1 success
BX = segment address of UMB
DX = actual size of block
= 0 failure
BL = error code
DX = largest available block
11h Release upper memory block
DX = segment address of UMB to release
Return: AX = 1 success
= 0 failure
BL = error code
Error codes returned in BL:
80h Function not implemented
81h Vdisk was detected
82h An A20 error occurred
8Eh a general driver error
8Fh unrecoverable driver error
90h HMA does not exist
91h HMA is already in use
92h DX is less than the /HMAMIN= parameter
93h HMA is not allocated
A0h all extended memory is allocated
A1h all available extended memory handles are allocated
A2h Invalid handle
A3h Source handle is invalid
A4h Source offset is invalid
A5h Destination handle is invalid
A6h Destination offset is invalid
A7h Length is invalid
A8h Move has an invalid overlap
A9h Parity error occurred
AAh Block is not locked
ABh Block is locked
ACh Block lock count overflowed
ADh Lock failed
B0h Only a smaller UMB is available
B1h No UMB's are available
B2h UMB segment number is invalid
------------------------------------------------------
INT 2F - Multiplexor - SCRNSAV2.COM - INSTALLATION CHECK
AX = 6400h
Return: AL = 00h not installed
FFh installed
Note: SCRNSAV2.COM is a screen saver for PS/2's with VGA by Alan Ballard
------------------------------------------------------
INT 2F - Multiplexor - Novell NetWare - INSTALLATION CHECK
AX = 7A00h
Return: ???
Note: returns address of entry point for IPX and SPX
------------------------------------------------------
INT 2F - Multiplexor - VIDCLOCK.COM - INSTALLATION CHECK
AX = AA00h
Return: AL = 00h not installed
FFh installed
Note: VIDCLOCK.COM is a memory-resident clock by Thomas G. Hanlin III
------------------------------------------------------
INT 2F - Multiplexor - APPEND - INSTALLATION CHECK
AX = B700h
Return: AH <> 0 if installed
------------------------------------------------------
INT 2F - Multiplexor - APPEND - ???
AX = B701h
???
------------------------------------------------------
INT 2F - Multiplexor - APPEND - VERSION CHECK
AX = B702h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - Network - INSTALLATION CHECK
AX = B800h
Return: AH = 0 not installed
<> 0 installed
BX = installed component flags (test in this order!)
bit 6 server
bit 2 messenger
bit 7 receiver
bit 3 redirector
------------------------------------------------------
INT 2F - Multiplexor - Network - GET CURRENT POST ADDRESS
AX = B803h
Return: ES:BX = post address
------------------------------------------------------
INT 2F - Multiplexor - Network - SET NEW POST ADDRESS
AX = B804h
ES:BX = new post address
------------------------------------------------------
INT 2F - Multiplexor - Network - VERSION CHECK
AX = B809h
???
Return: ???
------------------------------------------------------
INT 2F - Multiplexor - AUTOPARK.COM - INSTALLATION CHECK
AX = F700h
Return: AL = 00h not installed
FFh installed
Note: AUTOPARK.COM is a resident hard disk parker by Alan D. Jones
------------------------------------------------------
INT 2F - Multiplexor - AUTOPARK.COM - SET PARKING DELAY
AX = F701h
BX:CX = 32 bit count of 55ms timer ticks
------------------------------------------------------
INT 30 - (NOT A VECTOR!) FAR JuMP instruction for CP/M-style calls
INT 31 the CALL 5 entry point does a FAR jump to here
------------------------------------------------------
INT 32 - not used
------------------------------------------------------
INT 33 - MS MOUSE - RESET DRIVER AND READ STATUS
AX = 0000h
Return: AX = status
0 hardware/driver not installed
-1 hardware/driver installed
BX = number of buttons
-1 two buttons
0 other than two
3 Mouse Systems mouse
------------------------------------------------------
INT 33 - MS MOUSE - SHOW MOUSE CURSOR
AX = 0001h
------------------------------------------------------
INT 33 - MS MOUSE - HIDE MOUSE CURSOR
AX = 0002h
Note: multiple calls to hide the cursor will require multiple calls to
function 01h to unhide it.
------------------------------------------------------
INT 33 - MS MOUSE - RETURN POSITION AND BUTTON STATUS
AX = 0003h
Return: BX = button status
bit 0 left button pressed if 1
bit 1 right button pressed if 1
bit 2 middle button pressed if 1 (Mouse Systems mouse)
CX = column
DX = row
------------------------------------------------------
INT 33 - MS MOUSE - POSITION MOUSE CURSOR
AX = 0004h
CX = column
DX = row
------------------------------------------------------
INT 33 - MS MOUSE - RETURN BUTTON PRESS DATA
AX = 0005h
BX = button
0 left
1 right
2 middle (Mouse Systems mouse)
Return: AX = button states
bit 0 left button pressed if 1
bit 1 right button pressed if 1
bit 2 middle button pressed if 1 (Mouse Systems mouse)
BX = number of times specified button has been pressed since last call
CX = column at time specified button was last pressed
DX = row at time specified button was last pressed
------------------------------------------------------
INT 33 - MS MOUSE - RETURN BUTTON RELEASE DATA
AX = 0006h
BX = button
0 left
1 right
2 middle (Mouse Systems mouse)
Return: AX = button states
bit 0 left button pressed if 1
bit 1 right button pressed if 1
bit 2 middle button pressed if 1 (Mouse Systems mouse)
BX = number of times specified button has been released since last call
CX = column at time specified button was last released
DX = row at time specified button was last released
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE HORIZONTAL CURSOR RANGE
AX = 0007h
CX = minimum column
DX = maximum column
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE VERTICAL CURSOR RANGE
AX = 0008h
CX = minimum row
DX = maximum row
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE GRAPHICS CURSOR
AX = 0009h
BX = column of cursor hot spot in bitmap (-16 to 16)
CX = row of cursor hot spot (-16 to 16)
ES:DX -> bitmap
16 words screen mask
16 words cursor mask
each word defines the sixteen pixels of a row, low bit
rightmost
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE TEXT CURSOR
AX = 000Ah
BX = hardware/software text cursor
0 software
CX = screen mask
DX = cursor mask
1 hardware
CX = start scan line
DX = end scan line
Note: when the software cursor is selected, the char/attribute data at the
current screen position is ANDed with the screen mask and then XORed
with the cursor mask
------------------------------------------------------
INT 33 - MS MOUSE - READ MOTION COUNTERS
AX = 000Bh
Return: CX = number of mickeys mouse moved horizontally since last call
DX = number of mickeys mouse moved vertically
Notes: a mickey is the smallest increment the mouse can sense
positive values indicate up/right
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE INTERRUPT SUBROUTINE PARAMETERS
AX = 000Ch
CX = call mask
bit 0 call if mouse moves
bit 1 call if left button pressed
bit 2 call if left button released
bit 3 call if right button pressed
bit 4 call if right button released
bit 5 call if middle button pressed (Mouse Systems mouse)
bit 6 call if middle button released (Mouse Systems mouse)
ES:DX = address of FAR routine
Note: when the subroutine is called, it is passed the following values:
AX = condition mask (same bit assignments as call mask)
BX = button state
CX = cursor column
DX = cursor row
DI = horizontal mickey count
SI = vertical mickey count
------------------------------------------------------
INT 33 - MS MOUSE - LIGHT PEN EMULATION ON
AX = 000Dh
------------------------------------------------------
INT 33 - MS MOUSE - LIGHT PEN EMULATION OFF
AX = 000Eh
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE MICKEY/PIXEL RATIO
AX = 000Fh
CX = number of mickeys per 8 pixels horizontally
DX = number of mickeys per 8 pixels vertically
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE SCREEN REGION FOR UPDATING
AX = 0010h
CX,DX = X,Y coordinates of upper left corner
SI,DI = X,Y coordinates of lower right corner
Note: mouse cursor is hidden during updating, and needs to be explicitly turned
on again
------------------------------------------------------
INT 33 - PCMOUSE - SET LARGE GRAPHICS CURSOR BLOCK
AX = 0012h
BH = cursor width in words
CH = rows in cursor
BL = horizontal hot spot (-16 to 16)
CL = vertical hot spot (-16 to 16)
ES:DX -> bit map of screen and cursor maps
Return: AX = -1 if successful
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE DOUBLE-SPEED THRESHOLD
AX = 0013h
DX = threshold speed in mickeys/second, 0 = default of 64/second
Note: if speed exceeds threshold, the cursor's on-screen motion is doubled
------------------------------------------------------
INT 33 - MS MOUSE - EXCHANGE INTERRUPT SUBROUTINES
AX = 0014h
???
------------------------------------------------------
INT 33 - MS MOUSE - RETURN DRIVER STORAGE REQUIREMENTS
AX = 0015h
Return: BX = size of buffer needed to store driver state
------------------------------------------------------
INT 33 - MS MOUSE - SAVE DRIVER STATE
AX = 0016h
ES:DX -> buffer for driver state
------------------------------------------------------
INT 33 - MS MOUSE - RESTORE DRIVER STATE
AX = 0017h
ES:DX -> buffer containing saved state
------------------------------------------------------
INT 33 - MS MOUSE - DEFINE DISPLAY PAGE NUMBER
AX = 001Dh
???
------------------------------------------------------
INT 33 - MS MOUSE - RETURN DISPLAY PAGE NUMBER
AX = 001Eh
Return: ???
------------------------------------------------------
INT 33 - PCMOUSE - GET MSMOUSE STORAGE REQUIREMENTS
AX = 0042h
Return: AX = FFFFh successful
BX = buffer size in bytes for functions 50h and 52h
= 0 MSMOUSE not installed
= 42h functions 42h, 50h, and 52h not supported
------------------------------------------------------
INT 33 - PCMOUSE - SAVE MSMOUSE STATE
AX = 0050h
BX = buffer size
ES:DX -> buffer
Return: AX = FFFFh if successful
------------------------------------------------------
INT 33 - PCMOUSE - RESTORE MSMOUSE STATE
AX = 0052h
BX = buffer size
ES:DX -> buffer
Return: AX = FFFFh if successful
------------------------------------------------------
INT 34 - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode D8h
------------------------------------------------------
INT 35 - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode D9h
------------------------------------------------------
INT 36 - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode DAh
------------------------------------------------------
INT 37 - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode DBh
------------------------------------------------------
INT 38 - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode DCh
------------------------------------------------------
INT 39 - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode DDh
------------------------------------------------------
INT 3A - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode DEh
------------------------------------------------------
INT 3B - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates opcode DFh
------------------------------------------------------
INT 3C - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates instructions with an ES segment override
------------------------------------------------------
INT 3D - Turbo C/Microsoft languages - Floating Point emulation
This interrupt emulates a standalone FWAIT instruction
------------------------------------------------------
INT 3E - Turbo C/Microsoft languages - Floating Point emulation
------------------------------------------------------
INT 3F - Overlay manager interrupt (Microsoft LINK.EXE)
------------------------------------------------------
INT 40 - Hard disk - Relocated Floppy Handler (original INT 13h)
------------------------------------------------------
INT 41 - FIXED DISK PARAMETERS (XT,AT,XT2,XT286,PS except ESDI disks)
WORD cylinders
BYTE heads
WORD starting reduced write current cylinder (XT only, 0 for others)
WORD starting write pre-comp cylinder
BYTE maximum ECC burst length
BYTE control byte
bits 0-2: drive option (XT only, 0 for others)
bit 3: set if more than 8 heads
bit 4: always 0
bit 5: set if manufacturer's defect map on max cylinder+1
bit 6: disable ECC retries
bit 7: disable access retries
BYTE standard timeout (XT only, 0 for others)
BYTE formatting timeout (XT only, 0 for others)
BYTE timeout for checking drive (XT only, 0 for others)
WORD landing zone (AT/PS2)
BYTE sectors/track (AT/PS2)
BYTE 0
------------------------------------------------------
INT 42 - EGA/VGA/PS - Relocated (by EGA) Video Handler (original INT 10h)
------------------------------------------------------
INT 42 - Z100 - ???
------------------------------------------------------
INT 43 - EGA/VGA/PS - User font table
------------------------------------------------------
INT 44 - EGA/VGA/CONV/PS - EGA/PCjr fonts, characters 00h to 7Fh
------------------------------------------------------
INT 44 - Novell NetWare - HIGH-LEVEL LANGUAGE API
------------------------------------------------------
INT 44 - Z100 - ???
------------------------------------------------------
INT 45 - Z100 - ???
------------------------------------------------------
INT 46 - Secondary Fixed Disk Params (see INT 41h) (AT,XT286,PS except ESDI)
------------------------------------------------------
INT 46 - Z100 - ???
------------------------------------------------------
INT 47 - reserved
------------------------------------------------------
INT 48 - PCjr - Cordless Keyboard Translation
------------------------------------------------------
INT 49 - PCjr - Non-keyboard Scan Code Translation Table
------------------------------------------------------
INT 4A - AT/CONV/PS - User Alarm
Invoked by BIOS when real-time clock alarm occurs
------------------------------------------------------
INT 4B - reserved
------------------------------------------------------
INT 4C - reserved
------------------------------------------------------
INT 4D - reserved
------------------------------------------------------
INT 4E - reserved
------------------------------------------------------
INT 4F - reserved
------------------------------------------------------
INT 50 to 57 - IRQ0-IRQ7 relocated by DESQview
------------------------------------------------------
INT 58 - reserved
------------------------------------------------------
INT 59 - GSS Computer Graphics Interface (GSS*CGI)
DS:DX = Pointer to block of 5 array pointers
Return: CF = 0
AX = return code
CF = 1
AX = error code
Note: INT 59 is the means by which GSS*CGI language bindings communicate with
GSS*CGI device drivers and the GSS*CGI device driver controller. also
used by the IBM Graphic Development Toolkit
------------------------------------------------------
INT 5A - Cluster adapter BIOS entry address
???
------------------------------------------------------
INT 5B - Used by cluster adapter
------------------------------------------------------
INT 5C - NETBIOS INTERFACE
ES:BX -> Network Control Block
Return: AL = Error Code (0 if none)
struct ncb {
unsigned char ncb_command;
unsigned char ncb_retcode;
unsigned char ncb_lsn;
unsigned char ncb_num;
char far *ncb_buffer;
unsigned short ncb_length;
char ncb_callname[16];
char ncb_name[16];
unsigned char ncb_rto;
unsigned char ncb_sto;
int (far *ncb_post)();
unsigned char ncb_lana_num;
unsigned char ncb_cmd_cplt;
char ncb_reserve[14];
};
Command codes:
#define NCB_NOWAIT 0x80
#define NCB_RESET 0x32
#define NCB_CANCEL 0x35
#define NCB_ADAPTER_STATUS 0x33
#define NCB_UNLINK 0x70
#define NCB_ADD_NAME 0x30
#define NCB_ADD_GROUP_NAME 0x36
#define NCB_DELETE_NAME 0x31
#define NCB_CALL 0x10
#define NCB_LISTEN 0x11
#define NCB_HANG_UP 0x12
#define NCB_SEND 0x14
#define NCB_CHAIN_SEND 0x17
#define NCB_RECEIVE 0x15
#define NCB_RECEIVE_ANY 0x16
#define NCB_SESSION_STATUS 0x34
#define NCB_SEND_DATAGRAM 0x20
#define NCB_SEND_BROADCAST_DATAGRAM 0x22
#define NCB_RECEIVE_DATAGRAM 0x21
#define NCB_RECEIVE_BROADCAST_DATAGRAM 0x23
struct name {
char nm_name[16];
unsigned char nm_num;
unsigned char nm_status;
};
struct astatus {
unsigned char as_id[6];
unsigned char as_jumpers;
unsigned char as_post;
unsigned char as_major;
unsigned char as_minor;
unsigned short as_interval
unsigned short as_crcerr;
unsigned short as_algerr;
unsigned short as_colerr;
unsigned short as_abterr;
unsigned long as_tcount;
unsigned long as_rcount;
--
{harvard,uunet,ucbvax}!b.gp.cs.cmu.edu!ralf -=-=- AT&T: (412)268-3053 (school)
ARPA: RALF@B.GP.CS.CMU.EDU |"Tolerance means excusing the mistakes others make.
FIDO: Ralf Brown at 129/31 | Tact means not noticing them." --Arthur Schnitzler
BITnet: RALF%B.GP.CS.CMU.EDU@CMUCCVMA -=-=- DISCLAIMER? I claimed something?