Interrupt List, part 8 of 16
Original RBIL Copyright (c) 1989-1999,2000 Ralf Brown
Modifications Copyright (c) 2026 The List Project and its contributors
--------D-217302-----------------------------
INT 21 - Windows95 - FAT32 - "Get_ExtDPB" - GET EXTENDED DPB
	AX = 7302h
	DL = drive number (00h=default, 01h=A:, etc.)
	ES:DI -> buffer for returned data (see #01786)
	CX = length of buffer (003Fh for Windows95)
	SI = signature (undocumented, must be F1A6h to get device driver
	      address and next-DBP pointer) (see #01787)
Return: CF clear if successful
	    ES:DI buffer filled
	CF set on error
	    AX = error code
	       0018h bad buffer length
SeeAlso: AX=7303h,AX=7304h,AH=1Fh,AH=32h

Format of Get_ExtDPB data buffer:
Offset	Size	Description	(Table 01786)
 00h	WORD	(call) length of following data (003Dh)
 02h 61 BYTEs	(ret) drive parameter block (DPB) (see #01787)

Format of Extended Drive Parameter Block:
Offset	Size	Description	(Table 01787)
 00h 24 BYTEs	standard DOS 4+ DPB
 18h	BYTE	"dpb_flags" (undocumented)
		FFh force media check
 19h	DWORD	pointer to next DPB (see note)
 1Dh	WORD	cluster at which to start search for free space when writing,
		usually the last cluster allocated
 1Fh	WORD	number of free clusters on drive, FFFFh = unknown
 21h	WORD	high word of free cluster count
 23h	WORD	active FAT/mirroring
		bit 7: do not mirror active FAT to inactive FATs
		bits 6-4: reserved (0)
		bits 3-0: the 0-based FAT number of the active FAT
		    (only meaningful if mirroring disabled)
 25h	WORD	sector number of file system information sector, or
		  FFFFh for none (see also #01788)
 27h	WORD	sector number of backup boot sector, or FFFFh for none
 29h	DWORD	first sector number of the first cluster
 2Dh	DWORD	maximum cluster number
 31h	DWORD	number of sectors occupied by FAT
 35h	DWORD	cluster number of start of root directory
 39h	DWORD	cluster number at which to start searching for free space
Notes:	except for offset 18h, all of the first 33 bytes are identical to
	  the standard DOS 4-6 DPB
	unless the proper value is given in SI on entry to "Get_ExtDBP", the
	  next-DPB pointer and device driver address are set to 0000h:0000h
SeeAlso: #01786,#01395 at AH=32h,#01664

Format of File System Information structure:
Offset	Size	Description	(Table 01788)
 00h	DWORD	signature 61417272h
 04h	DWORD	number of free clusters (FFFFFFFFh if unknown)
 08h	DWORD	most recently allocated cluster
 0Ch 12 BYTEs	reserved
SeeAlso: #01787
--------D-217303-----------------------------
INT 21 - Windows95 - FAT32 - GET EXTENDED FREE SPACE ON DRIVE
	AX = 7303h
	DS:DX -> ASCIZ string for drive ("C:\" or "\\SERVER\Share")
	ES:DI -> buffer for extended free space structure (see #01789)
	CX = length of buffer for extended free space
Return: CF clear if successful
	    ES:DI buffer filled
	CF set on error
	    AX = error code
Notes:	on DOS versions which do not support the FAT32 calls, this function
	  returns CF clear/AL=00h (which is the DOS v1+ method for reporting
	  unimplemented functions)
	under DOS 7.x (i.e. "MSDOS Mode" under Windows95), the ASCIZ string
	  pointed at by DS:DX *must* include the drive letter, or this function
	  will return CF set/AX=0015h (invalid drive).	In a DOS box, omitting
	  the drive letter (DS:DX -> "\") results in the free space for the
	  current default drive, as expected
BUG:	this function returns a maximum of 2GB free space even on an FAT32
	  partition larger than 2GB under some versions of Win95 and Win98,
	  apparently by limiting the number of reported free clusters to no
	  more than 64K -- but only in a DOS window if a TSR has hooked INT 21h
SeeAlso: AX=7302h,AX=7304h,AX=7305h,AH=36h

Format of extended free space structure:
Offset	Size	Description	(Table 01789)
 00h	WORD	(ret) size of returned structure
 02h	WORD	(call) structure version (0000h)
		(ret) actual structure version (0000h)
 04h	DWORD	number of sectors per cluster (with adjustment for compression)
 08h	DWORD	number of bytes per sector
 0Ch	DWORD	number of available clusters
 10h	DWORD	total number of clusters on the drive
 14h	DWORD	number of physical sectors available on the drive, without
		  adjustment for compression
 18h	DWORD	total number of physical sectors on the drive, without
		  adjustment for compression
 1Ch	DWORD	number of available allocation units, without adjustment
		  for compression
 20h	DWORD	total allocation units, without adjustment for compression
 24h  8 BYTEs	reserved
--------D-217304-----------------------------
INT 21 - Windows95 - FAT32 - Set DPB TO USE FOR FORMATTING
	AX = 7304h
	DL = drive number (00h=default, 01h=A:, etc.)
	CX = size of buffer (must be at least 18h)
	ES:DI -> buffer for Set_DPBforFormat structure (see #01790)
Return: CF clear if successful
	    ES:DI buffer updated
	CF set on error
	    AX = error code (18h = bad length in CX)
SeeAlso: AX=7302h,AX=7303h,AX=7305h

Format of Set_DPBforFormat structure:
Offset	Size	Description	(Table 01790)
 00h	WORD	(call) size
 02h	WORD	(call) structure version???  (0000h)
		(ret) ???
 04h	DWORD	(call) function number
		00h invalidate DPB counts
		01h rebuild DPB from BPB
		02h force media change (next access to drive rebuild DPB)
		03h get/set active FAT number and mirroring
		04h get/set root directory cluster number
---function 00h---
 08h	DWORD	new DPB free count (00000000h=no change, FFFFFFFFh=unknown)
 0Ch	DWORD	new DPB next-free (00000000h=no change, FFFFFFFFh=unknown)
 10h	DWORD	unused
 14h	DWORD	unused
---function 01h---
 08h	DWORD	unused???
 0Ch	DWORD	(call) -> BIOS Parameter Block from which to rebuild DPB
 10h	DWORD	unused
 14h	DWORD	unused
---function 02h---
 08h	DWORD	unused
 0Ch	DWORD	unused
 10h	DWORD	unused
 14h	DWORD	unused
---function 03h---
 08h	DWORD	(call) new active FAT/mirroring state, or FFFFFFFFh to get
		bits 3-0: the 0-based FAT number of the active FAT
		bits 6-4: reserved (0)
		bit 7: do not mirror active FAT to inactive FATs
 0Ch	DWORD	(ret) previous active FAT/mirroring state (as above)
 10h	DWORD	unused
 14h	DWORD	unused
---function 04h---
 08h	DWORD	(call) new root directory cluster number
		    FFFFFFFFh to get current
 0Ch	DWORD	(ret) previous root directory cluster number
 10h	DWORD	unused
 14h	DWORD	unused
--------D-217305CXFFFF-----------------------
INT 21 - Windows95 - FAT32 - EXTENDED ABSOLUTE DISK READ/WRITE
	AX = 7305h
	CX = FFFFh
	DL = drive number (01h=A:, etc.)
	SI = read/write mode flags (see #01791)
	DS:BX -> disk I/O packet (see #02548 at INT 25)
Return: CF clear if successful
	CF set on error
	    AX = error code
Note:	one can not specify the default drive (DL=00h) for this function.
SeeAlso: AX=7302h,AX=7304h,INT 25,INT 26

Bitfields for Extended Absolute Disk Read/Write mode flags:
Bit(s)	Description	(Table 01791)
 0	direction (0=read, 1=write)
 12-1	reserved (0)
 14-13	write type (should be 00 on reads)
	00 unknown data
	01 FAT data
	10 directory data
	11 file data
 15	reserved (0)
--------v-217575-----------------------------
INT 21 - VIRUS - "LEGO" -INSTALLATION CHECK
	AX = 7575h
Return: AX = 4321h if resident
SeeAlso: AX=6969h,AH=76h"VIRUS"
--------v-2176-------------------------------
INT 21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK
	AH = 76h
Return: AL = 48h if resident
SeeAlso: AX=7575h,AX=7700h"VIRUS"
--------v-217700-----------------------------
INT 21 - VIRUS - "Growing Block" - INSTALLATION CHECK
	AX = 7700h
Return: AX = 0920h if resident
SeeAlso: AH=76h,AX=7BCEh,AH=7Fh
--------V-217734-----------------------------
INT 21 U - SCROLLit v1.7 - INSTALLATION CHECK
	AX = 7734h
Return: DX = 3477h if installed
	    AX = segment of resident code
Program: ScrollIt is a shareware backscroll utility by Bromfield Software
	  Products
--------U-217761-----------------------------
INT 21 - WATCH.COM v3.2+ - INSTALLATION CHECK
	AX = 7761h ('wa')
Return: AX = 6177h
Note:	WATCH.COM is part of the "TSR" package by TurboPower Software
SeeAlso: INT 16/AX=7761h
--------v-217BCE-----------------------------
INT 21 - VIRUS - "Whisper"/"Taipan" - INSTALLATION CHECK
	AX = 7BCEh
Return: AX = 7BCEh if resident (???)
SeeAlso: AX=5454h"VIRUS",AX=7700h,AX=7BCFh,AH=7Fh"VIRUS"
--------v-217BCF-----------------------------
INT 21 - VIRUS - "Tai-Pan.666"/"Doom II Death" - INSTALLATION CHECK
	AX = 7BCFh
Return: AX = 7BCFh if resident
SeeAlso: AX=7BCEh"VIRUS",AH=7Dh"VIRUS"
--------v-217D-------------------------------
INT 21 - VIRUS - "OffSpring" - INSTALLATION CHECK
	AH = 7Dh
Return: AH = FAh if installed
SeeAlso: AX=7BCFh"VIRUS",AH=7Fh"VIRUS"
--------v-217F-------------------------------
INT 21 - VIRUS - "Squeaker","ASeXual" - INSTALLATION CHECK
	AH = 7Fh
Return: AH = 80h if resident
SeeAlso: AX=7BCEh,AH=83h"VIRUS"
--------D-2180-------------------------------
INT 21 - European MS-DOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND
	AH = 80h
	CX = mode
	    0000h place child in zombie mode on exit to preserve exit code
	    0001h discard child process and exit code on termination
	DS:DX -> ASCIZ full program name
	ES:BX -> parameter block (as for AX=4B00h)
Return: CF clear if successful
	    AX = Command Subgroup ID (CSID)
	CF set on error
	    AX = error code (see #01680 at AH=59h/BX=0000h)
Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
	  by several other European OEMs; its release falls between mainstream
	  versions 3.2 and 3.3
Desc:	asynchronously execute a program, creating a new process for it
Notes:	this function is called by the DETACH command
	there is a system-wide limit of 32 processes
	the CSID is used to identify all processes that have been spawned by
	  a given process, whether directly or indirectly
	programs to be run in the background must use the new executable format
	  (see #01596 at AH=4Bh)
	background processes may only perform asynchronous (background) EXECs,
	  either this function or AX=4B04h
	background processes may execute INT 11, INT 12, INT 21, INT 2A, and
	  INT 2F at any time; they may execute INT 10 and INT 16 only while
	  they have opened a popup screen via INT 2F/AX=1401h; no other
	  interrupts may be executed from the background
	background processes may not use drive B: or overlay their code
	  segments
	see AX=8700h for an installation check
	the "NE" new executable format made its first appearance in European
	  MS-DOS 4.0
SeeAlso: AH=4Bh,AH=87h,INT 2F/AX=1400h"POPUP"
----------218080-----------------------------
INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY
	AX = 8080h
Return: ???
SeeAlso: AX=7070h/BX=7070h
--------D-2181-------------------------------
INT 21 - European MS-DOS 4.0 - "FREEZE" - STOP A PROCESS
	AH = 81h
	BX = flag (00h freeze command subtree, 01h only specified process)
	CX = Process ID of head of command subtree
Return: CF clear if successful
	CF set on error
	    AX = error code (no such process)
Desc:	temporarily suspend a process or a process and all of its children
Note:	if BX=0001h, this call will not return until the process is actually
	  frozen, which may not be until after it unblocks from an I/O
	  operation
SeeAlso: AH=82h,AH=89h,AX=8E00h,INT 15/AX=101Dh
--------D-2182-------------------------------
INT 21 - European MS-DOS 4.0 - "RESUME" - RESTART A PROCESS
	AH = 82h
	BX = flag (00h resume command subtree, 01h only specified process)
	CX = Process ID of head of command subtree
Return: CF clear if successful
	CF set on error
	    AX = error code (no such process)
Desc:	restart a previously-suspended process or a process and all of its
	  children
SeeAlso: AH=81h,INT 15/AX=101Eh
--------D-2183-------------------------------
INT 21 - European MS-DOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE
	AH = 83h
	AL = function
	    00h get size
	    01h set new size
		BX = new size in paragraphs
Return: CF clear if successful
	    BX = current size (function 00h) or old size (function 01h)
	CF set on error
	    AX = error code (01h,07h,0Dh)(see #01680 at AH=59h/BX=0000h)
Desc:	specify or determine how much memory may be allocated by the foreground
	  process
Note:	if the partition size is set to 0000h, no partition management is done
	  and all memory allocation is compatible with DOS 3.2.
	the partition size can be changed regardless of what use is being made
	  of the changed memory; subsequent allocations will follow the
	  partition rules (foreground processes may allocate only foreground
	  memory; background processes allocate background memory first, then
	  foreground memory)
SeeAlso: AH=48h,AH=4Ah
--------v-2183-------------------------------
INT 21 - VIRUS - "SVC" - INSTALLATION CHECK
	AH = 83h
Return: DX = 1990h if resident
SeeAlso: AH=76h,AH=84h"VIRUS"
--------v-2184-------------------------------
INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK
	AH = 84h
Return: DX = 1990h if resident
	    BH = version number (major in high nybble, minor in low)
SeeAlso: AH=83h"VIRUS",AH=89h"VIRUS"
--------D-218400-----------------------------
INT 21 - European MS-DOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA
	AX = 8400h
	BX = size in bytes (0000h = 65536)
	CX = flags
	    bit 6: zero-initialize segment
	DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
Return: CF clear if successful
	    AX = segment address of shared memory global object
	CF set on error
	    AX = error code (06h,08h) (see #01680 at AH=59h/BX=0000h)
Desc:	create an area of memory which may be accessed by multiple processes
Notes:	shared memory objects are created as special files (thus the
	  restriction on the name)
	on successful creation, the reference count is set to 1
SeeAlso: AX=8401h,AX=8402h,INT 15/AX=DE19h
--------D-218401-----------------------------
INT 21 - European MS-DOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA
	AX = 8401h
	CX = flags
	    bit 7: writable segment (ignored by MS-DOS 4.0)
	DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
Return: CF clear if successful
	    AX = segment address of shared memory global object
	    CX = size in bytes
	CF set on error
	    AX = error code (invalid name)
Desc:	get address of a previously-created area of memory which may be
	  accessed by multiple processes
Note:	this call increments the reference count for the shared memory area
SeeAlso: AX=8400h,AX=8402h
--------D-218402-----------------------------
INT 21 - European MS-DOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA
	AX = 8402h
	BX = handle (segment address of shared memory object)
Return: CF clear if successful
	CF set on error
	    AX = error code (no such name)
Desc:	indicate that the specified area of shared memory will no longer be
	  used by the caller
Note:	the reference count is decremented and the shared memory area is
	  deallocated if the new reference count is zero
SeeAlso: AX=8400h,AX=8401h,INT 15/AX=DE19h
--------D-2185-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 85h
	???
Return: ???
--------D-2186-------------------------------
INT 21 - European MS-DOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE
	AH = 86h
	BX = total number of file handles in new table
Return: CF clear if successful
	CF set on error
	    AX = error code (06h,08h) (see #01680 at AH=59h/BX=0000h)
Desc:	adjust the size of the per-process open file table, thus raising or
	  lowering the limit on the number of files the caller can open
	  simultaneously
Notes:	any currently-open files are copied to the new table
	if the table is increased beyond the default 20 handles, only the
	  first 20 will be inherited by child processes
	error 06h is returned if the requested number of handles exceeds
	  system limits or would require closing currently-open files
SeeAlso: AH=26h,AH=67h
--------D-2187-------------------------------
INT 21 - European MS-DOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER
	AH = 87h
Return: AX = PID
	BX = parent process's PID
	CX = Command Subgroup ID (CSID)
Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
	  by several other European OEMs; its release falls between mainstream
	  versions 3.2 and 3.3
Desc:	determine an identifier by which to access the calling process
Notes:	called by MS C v5.1 getpid() function
	this function apparently must return AX=0001h for INT 21/AH=80h to
	  succeed
	one possible check for European MS-DOS 4.0 is to issue this call with
	  AL=00h and check whether AL is nonzero on return
SeeAlso: AH=30h,AH=62h,AH=80h
Index:	installation check;European MS-DOS 4.0
--------D-2188-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 88h
	???
Return: ???
SeeAlso: AH=87h
--------D-2189-------------------------------
INT 21 - European MS-DOS 4.0 - SLEEP
	AH = 89h
	CX = time in milliseconds or 0000h to give up time slice
Return: CF clear if successful
	    CX = 0000h
	CF set on error
	    AX = error code (interrupted system call)
	    CX = sleep time remaining
Desc:	suspend the calling process for the specified duration
Notes:	the sleep interval is rounded up to the next higher increment of the
	  scheduler clock, and may be extended further if other processes are
	  running
	this call may be interrupted by signals (see AH=8Dh)
	reportedly called by Microsoft C 4.0 startup code
	background processes have higher priority than the foreground process,
	  and should thus periodically yield the CPU
SeeAlso: AH=81h,INT 15/AX=1000h,INT 2F/AX=1680h,INT 7A/BX=000Ah
--------v-2189-------------------------------
INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK
	AH = 89h
Return: AX = 0123h if resident
SeeAlso: AH=84h"VIRUS",AH=90h"VIRUS"
--------D-218A-------------------------------
INT 21 - European MS-DOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE
	AH = 8Ah
	BL = range (00h command subtree, 01h any child)
	BH = suspend flag
	    00h suspend if children exist but none are dead
	    01h return if no dead children
	CX = Process ID of head of command subtree
Return: CF clear if successful
	    AH = termination type (see #01792)
	    AL = return code from child or aborting signal
	    BX = PID of child (0000h if no dead children)
	CF set on error
	    AX = error code (no child,interrupted system call)
Desc:	get return code from an asynchronously-executed child program,
	  optionally waiting if no return code is available
SeeAlso: AH=4Bh,AH=4Dh,AH=80h,AH=8Dh

(Table 01792)
Values for termination type:
 00h	normal termination
 01h	aborted by Control-C
 02h	aborted by I/O error
 03h	terminate and stay resident
 04h	aborted by signal
 05h	aborted by program error
--------D-218B-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 8Bh
	???
Return: ???
SeeAlso: AH=87h
--------D-218C-------------------------------
INT 21 - European MS-DOS 4.0 - SET SIGNAL HANDLER
	AH = 8Ch
	AL = signal number (see #01793)
	BL = action (see #01794)
	DS:DX -> signal handler (see #01795)
Return: CF clear if successful
	    AL = previous action
	    ES:BX -> previous signal handler
	CF set on error
	    AX = error code (01h,invalid SigNumber or Action)
		  (see #01680 at AH=59h/BX=0000h)
Desc:	set the routine which will be invoked on a number of exceptional
	  conditions
Note:	all signals will be sent to the most recently installed handler
SeeAlso: AH=8Dh

(Table 01793)
Values for European MS-DOS 4.0 signal number:
 01h	SIGINTR		Control-C or user defined interrupt key
 08h	SIGTERM		program termination
 09h	SIGPIPE		broken pipe
 0Dh	SIGUSER1	reserved for user definition
 0Eh	SIGUSER2	reserved for user definition

(Table 01794)
Values for signal action:
 00h	SIG_DFL		terminate process on receipt
 01h	SIG_IGN		ignore signal
 02h	SIG_GET		signal is accepted
 03h	SIG_ERR		sender gets error
 04h	SIG_ACK		acknowledge received signal and clear it, but don't
			  change current setting

(Table 01795)
Values signal handler is called with:
	AL = signal number (see #01793)
	AH = signal argument
Return: RETF, CF set: terminate process
	RETF, CF clear, ZF set: abort any interrupted system call with an error
	RETF, CF clear, ZF clear: restart any interrupted system call
	IRET: restart any interrupted system call
Note:	the signal handler may also perform a nonlocal GOTO by resetting the
	  stack pointer and jumping; before doing so, it should dismiss the
	  signal by calling this function with BL=04h
--------D-218D-------------------------------
INT 21 - European MS-DOS 4.0 - SEND SIGNAL
	AH = 8Dh
	AL = signal number (see #01793)
	BH = signal argument
	BL = action
	    00h send to entire command subtree
	    01h send only to specified process
	DX = Process ID
Return: CF clear if successful
	CF set on error
	    AX = error code (01h,06h)(see #01680 at AH=59h/BX=0000h)
Desc:	invoke the exceptional-condition handler for the specified process
Note:	error 06h may be returned if one or more of the affected processes
	  have an error handler for the signal
SeeAlso: AH=8Ch
--------D-218E00BH00-------------------------
INT 21 - European MS-DOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY
	AX = 8E00h
	BH = 00h
	BL = action
	    00h set priority for command subtree
	    01h set priority for specified process only
	CX = Process ID
	DH = 00h
	DL = change in priority (00h to get priority)
Return: CF clear if successful
	    DL = process priority
	    DH destroyed
	CF set on error
	    AX = error code (01h,no such process)(see #01680 at AH=59h)
Desc:	specify or determine the execution priority of the specified process
	  or the process and all of its children
SeeAlso: AH=81h
--------D-218F-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 8Fh
	???
Return: ???
SeeAlso: AH=87h
--------D-2190-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 90h
	???
Return: ???
SeeAlso: AH=87h
--------v-2190-------------------------------
INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK
	AH = 90h
Return: AH = 01h if resident
SeeAlso: AH=89h"VIRUS",AX=9753h"VIRUS"
----------2190--CXFFFF-----------------------
INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - DIRECT DISK READ
	AH = 90h
	CX = FFFFh (for partitions > 32 Mb)
	    DS:BX -> request block (see #04094)
	CX = sector count (for partitions < 32 Mb)
	    DX = starting sector number
	    DS:BX -> buffer
Return: CF set on error
	    AX error code
	CF clear on success
Notes:	This function is supported by Paragon Technology Systems S/DOS 1.0
	  (and most probably by PTS-DOS 6.51, maybe even earlier).
	To access big partitions (> 32 Mb), the CX != FFFFh is not allowed and
	  the buffer must always be used. Otherwise, the system will return
	  error code 0207h.
	It is currently unknown if this function is also supported by
	  PhysTechSoft PTS-DOS 6.60, 6.70, or 2000.
SeeAlso: INT 21/AH=91h"PTS",INT 25h,INT 26h

Format of PTS-DOS & S/DOS disk read/write request block:
Offset	Size	Description	(Table 04094)
 00h	DWORD	sector number
04h	WORD	counter
06h	DWORD	pointer to buffer
--------D-2191-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 91h
	???
Return: ???
SeeAlso: AH=87h
----------2191--CXFFFF-----------------------
INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - DIRECT DISK WRITE
	AH = 91h
	CX = FFFFh (for partitions > 32 Mb)
	    DS:BX -> request block (see #04094)
	CX = sector count (for partitions < 32 Mb)
	    DX = starting sector number
	    DS:BX -> buffer
Return: CF set on error
	    AX error code
	CF clear on success
Note:	This function is supported by Paragon Technology Systems S/DOS 1.0
	  (and most probably by PTS-DOS 6.51, maybe even earlier).
	To access big partitions (> 32 Mb), CX != FFFFh is not allowed and
	  the buffer must always be used. Otherwise, the system will return
	  error code 0207h.
	It is currently unknown if this function is also supported by
	  PhysTechSoft PTS-DOS 6.60, 6.70, or 2000.
SeeAlso: INT 21/Ah=90h"PTS",INT 25h,INT 26h
--------D-2192-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 92h
	???
Return: ???
SeeAlso: AH=87h
--------O-2192-------------------------------
INT 21 U - PTS-DOS 6.51 & S/DOS 1.0 - ABORT CURRENT PROCESS VIA INT 23
	AH = 92h
Desc:	This function is provided by Paragon Technology Systems S/DOS 1.0+
	  (and most probably also by PTS-DOS 6.51+, maybe even earlier).
	  It allows terminating programs via the CTRL+BREAK method.
Note:	It is currently unknown if this function is also supported by
	  PhysTechSoft PTS-DOS 6.60, 6.70, or 2000.
SeeAlso: INT 23,INT 24
--------D-2193-------------------------------
INT 21 - European MS-DOS 4.0 - "PIPE" - CREATE A NEW PIPE
	AH = 93h
	CX = size in bytes
Return: CF clear if successful
	    AX = read handle
	    BX = write handle
	CF set on error
	    AX = error code (08h) (see #01680 at AH=59h/BX=0000h)
Desc:	create a communications channel which may be used for interprocess
	  data and command exchanges
SeeAlso: AH=3Ch,AH=3Fh"DOS",AH=40h"DOS",AH=84h
--------D-2194-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 94h
	???
Return: ???
SeeAlso: AH=87h
--------D-2195-------------------------------
INT 21 - European MS-DOS 4.0 - HARD ERROR PROCESSING
	AH = 95h
	AL = new state
	   00h enabled
	   01h disabled, automatically fail hard errors
Return: AX = previous setting
Desc:	specify whether hard (critical) errors should automatically fail the
	  system call or invoke an INT 24
SeeAlso: INT 24,INT 21/AH=59h/BX=0001h
--------D-2196-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 96h
	???
Return: ???
--------D-2197-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 97h
	???
Return: ???
--------v-219753-----------------------------
INT 21 - VIRUS - "Nina" - INSTALLATION CHECK
	AX = 9753h
Return: never (executes original program) if virus resident
SeeAlso: AH=90h"VIRUS",AX=A1D5h"VIRUS",AX=9AD5h"VIRUS"
--------D-2198-------------------------------
INT 21 U - European MS-DOS 4.0 - ???
	AH = 98h
	???
Return: ???
--------D-2199-------------------------------
INT 21 u - European MS-DOS 4.0 - "PBLOCK" - BLOCK A PROCESS
	AH = 99h
	DS:BX -> memory location to block on
	CX = timeout in milliseconds
	DH = nonzero if interruptable
Return: CF clear if awakened by event
	    AX = 0000h
	CF set if unusual wakeup
	    ZF set if timeout, clear if interrupted by signal
	    AX = nonzero
Desc:	suspend calling process until another process sends a "restart" signal
	  or a timeout occurs
SeeAlso: AH=9Ah,INT 2F/AX=0802h
--------D-219A-------------------------------
INT 21 u - European MS-DOS 4.0 - "PRUN" - UNBLOCK A PROCESS
	AH = 9Ah
	DS:BX -> memory location processes may have blocked on
Return: AX = number of processes awakened
	ZF set if no processes awakened
Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
	  by several other European OEMs; its release falls between mainstream
	  versions 3.2 and 3.3
Desc:	restart all processes waiting for the specified "restart" signal
SeeAlso: AH=99h,INT 2F/AX=0802h
--------v-219AD5-----------------------------
INT 21 - VIRUS - "Massacre/Beavis" - INSTALLATION CHECK
	AX = 9AD5h
Return: AX = 9AD4h if resident
SeeAlso: AX=6969h"VIRUS",AX=A1D5h"VIRUS"
--------I-21A0-------------------------------
INT 21 - Attachmate Extra! - GET 3270 DISPLAY STATE
	AH = A0h
Return: AL = display status (see #01796)
	BX = host window status (see #01797)
Program: Attachmate Extra! is a 3270 emulator by Attachmate Corporation
SeeAlso: AH=A1h

Bitfields for Attachmate Extra! display status:
Bit(s)	Description	(Table 01796)
 7	0=windowed, 1=enlarged
 6-3	current screen profile number 0-9
 2-0	active window number (0=PC, 1-4=host B-E, 5-6=notepad F-G)

Bitfields for host window status:
Bit(s)	Description	(Table 01797)
 15	reserved
 14	0=host E window installed, 1=not
 13	0=host E terminal on, 1=off
 12	0=host E window displayed, 1=not
 11	reserved
 10	0=host D window installed, 1=not
 9	0=host D terminal on, 1=off
 8	0=host D window displayed, 1=not
 7	reserved
 6	0=host C window installed, 1=not
 5	0=host C terminal on, 1=off
 4	0=host C window displayed, 1=not
 3	reserved
 2	0=host B window installed, 1=not
 1	0=host B terminal on, 1=off
 0	0=host B window displayed, 1=not
--------I-21A1-------------------------------
INT 21 - Attachmate Extra! - SET 3270 DISPLAY STATE
	AH = A1h
	AL = new display status byte (see #01796)
SeeAlso: AH=A0h,AH=A2h
--------v-21A1D5-----------------------------
INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK
	AX = A1D5h
Return: AX = 900Dh if resident
SeeAlso: AX=9753h,AX=9AD5h,AX=A55Ah
--------I-21A2-------------------------------
INT 21 - Attachmate Extra! - SET HOST WINDOW STATE
	AH = A2h
	AL = new host window status byte (see #01798)
SeeAlso: AH=A1h

Bitfields for Attachmate Extra! host window status:
Bit(s)	Description	(Table 01798)
 7	0=power off, 1=power on
 6	0=not installed, 1=installed
 5-3	reserved
 2-0	window number 1-4=host B-E
--------I-21A3-------------------------------
INT 21 - Attachmate Extra! - SEND KEYSTROKES TO HOST WINDOW
	AH = A3h
	AL = window number (1-4=host B-E)
	CX = 0001h
	DS:BX -> keystroke buffer
	DL = zero if keystroke buffer contains host function code (see #01799),
	      non-zero if keystroke buffer contains ASCII character
Return: CX = zero if character sent, non-zero if not
	BX incremented if CX=0

(Table 01799)
Values for Attachmate Extra! host function code:
 00h=reserved	10h=PF16	20h=Clear	30h=SysReq
 01h=PF1	11h=PF17	21h=Print	31h=ErInp
 02h=PF2	12h=PF18	22h=Left	32h=ErEof
 03h=PF3	13h=PF19	23h=Right	33h=Ident
 04h=PF4	14h=PF20	24h=Up		34h=Test
 05h=PF5	15h=PF21	25h=Down	35h=Reset
 06h=PF6	16h=PF22	26h=Home	36h=DevCncl
 07h=PF7	17h=PF23	27h=Fast Left	37h=Dup
 08h=PF8	18h=PF24	28h=Fast Right	38h=FldMark
 09h=PF9	19h=Alt on	29h=Bksp	39h=Enter
 0Ah=PF10	1Ah=Alt off	2Ah=Insert	3Ah=CrSel
 0Bh=PF11	1Bh=Shift on	2Bh=Delete
 0Ch=PF12	1Ch=Shift off	2Ch=Backtab
 0Dh=PF13	1Dh=PA1		2Dh=Tab
 0Eh=PF14	1Eh=PA2		2Eh=Newline
 0Fh=PF15	1Fh=PA3		2Fh=Attn
--------I-21A4-------------------------------
INT 21 - Attachmate Extra! - GET HOST WINDOW BUFFER ADDRESS
	AH = A4h
	AL = window number (1-4=host B-E)
Return: DS:BX -> 3270 display buffer
SeeAlso: AH=A5h,AH=B8h
--------I-21A5-------------------------------
INT 21 - Attachmate Extra! - GET HOST WINDOW CURSOR POSITION
	AH = A5h
	AL = window number (1-4=host B-E)
Return: BX = cursor position (80 * row + column, where 0:0 is upper left)
Note:	if the host window is configured with the Extended Attribute (EAB)
	  feature, multiply the cursor position by 2 to obtain the byte offset
	  into the display buffer
SeeAlso: AH=A4h
--------v-21A55A-----------------------------
INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK
	AX = A55Ah
Return: AX = 5AA5h if resident
SeeAlso: AX=A1D5h,AX=AA00h
--------v-21AA00-----------------------------
INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK
	AX = AA00h
Return: AX = 00AAh if resident
SeeAlso: AX=A55Ah,AX=AA03h
--------v-21AA03-----------------------------
INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK
	AX = AA03h
Return: AX = 03AAh if resident
SeeAlso: AX=AA00h,AH=ABh
--------v-21AB-------------------------------
INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK
	AH = ABh
Return: AX = 5555h if resident
SeeAlso: AX=AA03h,AX=ABCDh,AX=BBBBh"VIRUS"
--------v-21ABCD-----------------------------
INT 21 - VIRUS - Major BBS - INSTALLATION CHECK
	AX = ABCDh
Return: AX = 1234h if installed
SeeAlso: AH=ABh"VIRUS",AX=ABCDh"SuperVirus"
--------v-21ABCD-----------------------------
INT 21 - VIRUS - "SuperVirus 2" - INSTALLATION CHECK
	AX = ABCDh
Return: AX = DCBAh if resident
SeeAlso: AX=ABCDh"VIRUS",AX=BBBBh"VIRUS"
--------I-21AF-------------------------------
INT 21 - Attachmate Extra! - GET TRANSLATE TABLE ADDRESS
	AH = AFh
Return: DS:BX -> translate tables (see #01800)

Format of Attachmate Extra! translate tables:
Offset	Size	Description	(Table 01800)
 00h 256 BYTEs	ASCII to 3270 buffer code translate table
100h 256 BYTEs	3270 buffer code to ASCII translate table
200h 256 BYTEs	3270 buffer code to EBCDIC translate table
300h 256 BYTEs	EBCDIC to 3270 buffer code translate table
--------v-21B3-------------------------------
INT 21 - VIRUS - "Requires" - INSTALLATION CHECK
	AH = B3h
Return: AX = 9051h if resident
SeeAlso: AH=7Fh"VIRUS",AX=B974h"VIRUS"
--------N-21B300-----------------------------
INT 21 U - Novell NetWare - CHECK LIP/PACKET SIGNING/IPX CHECKSUM SUPPORT???
	AX = B300h
Return: AX = 0000h if supported???
Note:	this function appeared with the packet signing/Large Internet Packets/
	  IPX Checksum-aware NetWare shells
SeeAlso: AX=B301h,AX=B302h
--------N-21B301-----------------------------
INT 21 U - Novell NetWare - CHECK SIGNATURE LEVEL???
	AX = B301h
Return: AX = 0000h if supported???
	    BX:CX indicate signature level (see #01801)
Note:	this function appeared with the packet signing/Large Internet Packets/
	  IPX Checksum-aware NetWare shells
SeeAlso: AX=B300h,AX=B304h,#02875 at INT 2F/AX=7A20h/BX=0000h

(Table 01801)
Values for signature level indicator:
 0000h:0000h = signature level 0
 0002h:0000h = signature level 1
 0202h:0000h = signature level 2
 0202h:0202h = signature level 3
--------N-21B302-----------------------------
INT 21 U - Novell NetWare - START PACKET SIGNING
	AX = B302h
	CX = server connection (1-8)
	DS:SI -> 24-byte buffer containing ???
Return: ???
Notes:	this function appeared with the packet signing/Large Internet Packets/
	  IPX Checksum-aware NetWare shells
	if packet signing is active, this call is required if and only if the
	  last call successfully authenticated the workstation to the server
SeeAlso: AX=B300h,#02875
--------N-21B304-----------------------------
INT 21 U - Novell NetWare - SET SIGNATURE LEVEL
	AX = B304h
	BX:CX = new signature level (see AX=B301h)
Return: ???
Note:	this function appeared with the packet signing/Large Internet Packets/
	  IPX Checksum-aware NetWare shells
SeeAlso: AX=B300h,AX=B301h,AX=B306h,#02875
--------N-21B306-----------------------------
INT 21 - Novell NetWare - RENEGOTIATE SECURITY LEVEL
	AX = B306h
	CX = server connection number (01h-08h)
Return: ???
Note:	this function appeared with the packet signing/Large Internet Packets/
	  IPX Checksum-aware NetWare shells
SeeAlso: AX=B300h,AX=B304h,#02875
--------N-21B4-------------------------------
INT 21 U - Novell NetWare - "AttachHandle"
	AH = B4h
	DS:SI -> input buffer (see #01802)
Return: AX = DOS file handle or return code
Note:	this is an interface provided by NetWare to give DOS file access to
	  NetWare files on non-DOS systems such as Macintosh, OS/2, and Unix
SeeAlso: AX=E909h

Format of Novell NetWare input buffer:
Offset	Size	Description	(Table 01802)
 00h	BYTE	"WorkFileServer"
 01h	BYTE	access code
 02h	DWORD	"OpenHandle"
 06h	WORD	"OpenHandleCount"
 08h	DWORD	"OpenFileSize"
Note:	the six bytes at 02h-07h appear to be the six-byte NetWare handle
	  returned by AX=E909h
--------N-21B5-------------------------------
INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL
	AH = B5h
	AL = subfunction
	    03h get task mode
		Return: AH = 00h
			AL = current task mode byte (see #01803)
	    04h get task mode pointer
		Return: ES:BX -> task mode byte
Notes:	the task mode byte specifies how task cleanup should be performed, but
	  is declared to be version-dependent
	allows a program to disable the automatic cleanup for programs managing
	  task swapping, etc.

(Table 01803)
Values for NetWare task mode byte in version 3.01:
 00h-03h reserved
 04h	 no task cleanup
--------N-21B500-----------------------------
INT 21 U - Novell NetWare - VNETWARE.386 API - GET INSTANCE DATA
	AX = B500h
Return: ES:BX -> data
	CX = length
SeeAlso: AX=B501h,AX=B502h
--------N-21B501-----------------------------
INT 21 U - Novell NetWare - VNETWARE.386 API - END VIRTUAL MACHINE
	AX = B501h
SeeAlso: AX=B500h,AX=B502h
--------N-21B502-----------------------------
INT 21 U - Novell NetWare - VNETWARE.386 API - START VIRTUAL MACHINE
	AX = B502h
SeeAlso: AX=B500h,AX=B501h
--------N-21B505-----------------------------
INT 21 U - Novell NetWare - VNETWARE.386 API - SET VIRTUAL MACHINE ID
	AX = B505h
	???
Return: ???
SeeAlso: AX=B502h,AX=B506h
--------N-21B506-----------------------------
INT 21 U - Novell NetWare - VNETWARE.386 API - GET VIRTUAL MACH SUPPORT LEVEL
	AX = B506h
Return: AX = ??? (0002h)
SeeAlso: AX=B505h
--------N-21B507-----------------------------
INT 21 - Novell NetWare - NetWare Shell - GET NUMBER OF PACKET BURST BUFFERS
	AX = B507h
Return: AL = number of packet burst buffers (configured at shell load time)
--------N-21B6-------------------------------
INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES
	AH = B6h
	AL = subfunction
	    00h get extended file attributes
	    01h set extended file attributes
		CL = extended file attributes (see #01804)
	DS:DX -> ASCIZ pathname (max 255 bytes)
Return: CF set on error
	    AL = error code
		8Ch caller lacks privileges
		FEh not permitted to search directory
		FFh file not found
	CF clear if successful
	    AL = 00h (success)
	    CL = current extended file attributes (see #01804)
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AX=4300h,AH=E3h/SF=0Fh

Bitfields for NetWare extended file attributes:
Bit(s)	Description	(Table 01804)
 2-0	search mode (executables only)
	000 none (use shell's default search)
	001 search on all opens without path
	010 do not search
	011 search on read-only opens without path
	100 reserved
	101 search on all opens
	110 reserved
	111 search on all read-only opens
 3	reserved
 4	transactions on file tracked
 5	file's FAT indexed
 6	read audit (to be implemented)
 7	write audit (to be implemented)
--------N-21B7-------------------------------
INT 21 U - Novell NetWare - "HoldFileModeSet" (obsolete)
	AH = B7h
	AL = new value for HoldFileFlag
Return: AL = previous value of HoldFileFlag
Note:	this function provided backward compatibility with a bug in early
	  DOS versions and CP/M, but is no longer used or supported
--------I-21B8-------------------------------
INT 21 - Attachmate Extra! - DISABLE HOST BUFFER UPDATES
	AH = B8h
	AL = window number (1-4=host B-E)
	DL = 01h
Notes:	only valid in CUT mode
	next AID keystroke (eg Enter) enables host buffer updates
SeeAlso: AH=A4h
--------N-21B800-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS
	AX = B800h
	CX = size of reply buffer (01h-3Fh)
	ES:BX -> reply buffer for capture flags table (see #01805)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 2.0+
SeeAlso: AX=B801h,AX=B802h,AH=DFh/DL=00h,AH=DFh/DL=04h

Format of NetWare capture flags table:
Offset	Size	Description	(Table 01805)
 00h	BYTE	status (used internally, should be set to 00h)
 01h	BYTE	print flags (see #01806)
 02h	BYTE	tab size (01h-12h, default 08h)
 03h	BYTE	printer number on server (00h-04h, default 00h)
 04h	BYTE	number of copies to print (00h-FFh, default 01h)
 05h	BYTE	form type required in printer (default 00h)
 06h	BYTE	reserved
 07h 13 BYTEs	text to be placed on banner page
 14h	BYTE	reserved
 15h	BYTE	default local printer (00h = LPT1)
 16h	WORD	(big-endian) timeout in clock ticks for flushing capture file
		  on inactivity, or 0000h to disable timeout
 18h	BYTE	flush capture file on LPT close if nonzero
 19h	WORD	(big-endian) maximum lines per page
 1Bh	WORD	(big-endian) maximum characters per line
 1Dh 13 BYTEs	name of form required in printer
 2Ah	BYTE	LPT capture flag
		00h inactive, FFh LPT device is being captured
 2Bh	BYTE	file capture flag
		00h if no file specified, FFh if capturing to file
 2Ch	BYTE	timing out (00h if no timeout in effect, FFh if timeout counter
		  running)
 2Dh	DWORD	(big-endian) address of printer setup string
 31h	DWORD	(big-endian) address of printer reset string
 35h	BYTE	target connection ID
 36h	BYTE	capture in progress if FFh
 37h	BYTE	job queued for printing if FFh
 38h	BYTE	print job valid if FFh
 39h	DWORD	bindery object ID of print queue if previous byte FFh
 3Dh	WORD	(big-endian) print job number (1-999)

Bitfields for NetWare print flags:
Bit(s)	Description	(Table 01806)
 2	print capture file if interrupted by loss of connection
 3	no automatic form feed after print job
 6	printing control sequences interpreted by print service
 7	print banner page before capture file
--------N-21B801-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS
	AX = B801h
	CX = size of buffer (01h-3Fh)
	ES:BX -> buffer containing capture flags table (see #01805)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 2.0+
SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
--------N-21B802-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS
	AX = B802h
	CX = size of reply buffer (01h-3Fh)
	DH = LPT port (00h-02h)
	ES:BX -> reply buffer for capture flags table (see #01805)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
--------N-21B803-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS
	AX = B803h
	CX = size of buffer (01h-3Fh)
	DH = LPT port (00h-02h)
	ES:BX -> buffer containing capture flags table (see #01805)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
--------N-21B804-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER
	AX = B804h
Return: DH = default LPT port (00h-02h)
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AX=B800h,AX=B805h,AH=DFh/DL=00h
--------N-21B805-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER
	AX = B805h
	DH = new default LPT port (00h-02h)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h
--------N-21B806-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE
	AX = B806h
	DH = LPT port (00h-02h)
	BX:CX = print queue's object ID
Return: AL = status
	    00h successful
	    FFh job already set
Desc:	specify the print queue on which a print job is to be placed the next
	  time a capture is started on the given printer port
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AX=B801h,AX=B807h,AH=E0h/SF=09h
--------N-21B807-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB
	AX = B807h
	DH = LPT port (00h-02h)
	BX = job number (see AH=E3h/SF=68h)
	SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h)
Return: AL = status
	    00h successful
	    FFh job already queued
Desc:	specify the capture file and print job to be used for subsequent
	  output to the given printer port
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AX=B801h,AX=B806h,AH=E0h/SF=09h,AH=E3h/SF=68h
--------N-21B808-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
	AX = B808h
	ES:BX -> 12-byte buffer for user name
Return: AL = status
	    00h successful
Desc:	get the user name which is printed on the banner page
Notes:	this function is supported by Advanced NetWare 2.1+
	the default name is the login name of the user
SeeAlso: AX=B809h
--------N-21B809-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - SET BANNER USER NAME
	AX = B809h
	ES:BX -> 12-byte buffer containing user name
Return: AL = status
	    00h successful
Desc:	specify the user name which is printed on the banner page
Notes:	this function is supported by Advanced NetWare 2.1+
	the default name is the login name of the user
SeeAlso: AX=B808h
--------N-21B9-------------------------------
INT 21 U - Novell NetWare - "SpecialAttachableFunction"
	AH = B9h
	AL = FFh to hook this function
	    ES:BX -> function to invoke on AH=B9h when AL<>FFh
Note:	this function is no longer used or supported by current versions of
	  NetWare
--------v-21B974-----------------------------
INT 21 - VIRUS - "Tracker" - INSTALLATION CHECK
	AX = B974h
Return: AX = 2888h if resident
SeeAlso: AH=B3h"VIRUS",AH=D0h"VIRUS"
--------N-21BA-------------------------------
INT 21 U - Novell NetWare - "ReturnCommandComPointers"
	AH = BAh
Return: DX = environment segment
	ES:DI -> COMMAND.COM drive
Desc:	used to edit the COMSPEC and PATH variables in the master environment
	  when mapping network drives
Note:	this function was documented in older Novell documents which are no
	  longer available
--------N-21BB-------------------------------
INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS
	AH = BBh
	AL = new EOJ flag
	    00h disable EOJs
	    01h enable EOJs
Return: AL = old EOJ flag
Desc:	specify whether the network shell should automatically generate an
	  End of Job call when the root command processor regains control
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=19h,AH=D6h
--------v-21BBBB-----------------------------
INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK
	AX = BBBBh
Return: AX = 6969h
SeeAlso: AH=ABh"VIRUS",AH=BEh"VIRUS"
--------N-21BC-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD
	AH = BCh
	AL = flags (see #01808)
	BX = file handle
	CX:DX = starting offset in file
	SI:DI = length of region to lock
	BP = timeout in timer ticks (1/18 sec)
		0000h = don't wait if already locked
Return: AL = status (see #01807)
Desc:	add the specified physical record to the log table, optionally locking
	  it
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=5Ch,AH=BDh,AH=BEh,AH=BFh,AH=C2h,AH=D0h

(Table 01807)
Values for NetWare status:
 00h	successful
 96h	no dynamic memory for file
 FEh	timed out
 FFh	failed

Bitfields for NetWare flags:
Bit(s)	Description	(Table 01808)
 0	lock as well as log record
 1	non-exclusive lock
--------N-21BD-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD
	AH = BDh
	BX = file handle
	CX:DX = starting offset in file
	SI:DI = length of record
Return: AL = status
	    00h successful
	    FFh record not locked
Desc:	unlock the specified physical record but do not remove it from log
	  table
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=BCh,AH=BEh"NetWare",AH=C0h,AH=C3h,AH=D2h
--------N-21BE-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD
	AH = BEh
	BX = file handle
	CX:DX = starting offset within file
	SI:DI = record length in bytes
Return: AL = status
	    00h successful
	    FFh specified record not locked
Desc:	unlock the physical record and remove it from the log table
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=5Ch,AH=BCh,AH=BDh,AH=C1h,AH=C4h,AH=D4h
--------v-21BE-------------------------------
INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK
	AH = BEh
Return: AX = 1234h if resident
SeeAlso: AX=BBBBh,AX=BE00h
--------v-21BE00-----------------------------
INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK
	AX = BE00h
	CF set
Return: CF clear if resident
SeeAlso: AH=BEh"VIRUS",AH=C0h"VIRUS"
--------N-21BF-------------------------------
INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK RECORD (FCB)
	AH = BFh
	AL = flags (see #01808)
	DS:DX -> opened FCB (see #01345 at AH=0Fh)
	BX:CX = offset
	BP = lock timeout in timer ticks (1/18 sec) if AL nonzero
	SI:DI = length
Return: AL = error code (see #01807)
Note:	this function was added in NetWare 4.6, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=BCh,AH=C0h"NetWare",AH=C2h"NetWare"
--------N-21C0-------------------------------
INT 21 O - Novell NetWare, Alloy NTNX - RELEASE RECORD (FCB)
	AH = C0h
	DS:DX -> non-extended FCB (see #01345 at AH=0Fh)
	BX:CX = offset
Return: AL = error code (see #01807)
Notes:	unlocks record but does not remove it from log table
	this function was added in NetWare 4.6, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=BDh,AH=BFh,AH=C1h"NetWare",AH=C3h
--------v-21C0-------------------------------
INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK
	AH = C0h
Return: AX = 0300h if "Slow"/"Zerotime" resident
	AX = 1234h if "Solano" resident
SeeAlso: AX=BE00h,AX=C000h"VIRUS",AX=C301h"VIRUS"
--------v-21C000-----------------------------
INT 21 - VIRUS - "QUICKY" - INSTALLATION CHECK
	AX = C000h
	BX = most files infected by any other infected file
Return: AX = 76F3h if resident
SeeAlso: AH=C0h"VIRUS",AX=C001h,AX=C002h,AH=C1h"VIRUS"
--------v-21C001-----------------------------
INT 21 - VIRUS - "QUICKY" - TURN INFECTION OFF
	AX = C001h
Return: nothing
Note:	if the virus is already memory resident this call disables any
	  further infections
SeeAlso: AX=C000h,AX=C002h
--------v-21C002-----------------------------
INT 21 - VIRUS - "QUICKY" - TURN INFECTION ON
	AX = C002h
Return: nothing
Note:	if the virus is already memory resident and infection is disabled,
	  this call re-enables it
SeeAlso: AX=C000h,AX=C001h
--------N-21C1-------------------------------
INT 21 O - Novell NetWare, Alloy NTNX - CLEAR RECORD (FCB)
	AH = C1h
	DS:DX -> opened FCB (see #01345 at AH=0Fh)
	BX:CX = offset
Return: AL = error code (see #01807)
Note:	unlocks record and removes it from log table
	this function was added in NetWare 4.6, but was removed some time prior
	  to Advanced NetWare, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=BEh,AH=C0h"NetWare",AH=C4h
--------v-21C1-------------------------------
INT 21 - VIRUS - "Solano" - ???
	AH = C1h
	???
Return: ???
SeeAlso: AH=C0h"VIRUS"
--------N-21C2-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET
	AH = C2h
	AL = flags
	    bit 1: non-exclusive lock
	BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
Return: AL = status
	    00h successful
	    FEh timed out
	    FFh failed
Desc:	attempt to lock all physical records listed in the log table
Notes:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	status FFh will be returned if one or more physical records have been
	  exclusively locked by another process
SeeAlso: AH=BFh,AH=C3h,AH=D1h
--------v-21C2-------------------------------
INT 21 - VIRUS - "Scott's Valley" - ???
	AH = C2h
	???
Return: ???
SeeAlso: AH=C0h"VIRUS"
--------N-21C3-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYS RECORD SET
	AH = C3h
Desc:	unlock all currently-locked physical records in the log table, but do
	  not remove them from the table
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=BDh,AH=C0h,AH=C2h"NetWare",AH=C4h,AH=D3h
--------v-21C301DXF1F1-----------------------
INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK
	AX = C301h
	DX = F1F1h
Return: DX = 0E0Eh if resident
SeeAlso: AH=C0h"VIRUS",AX=C500h"VIRUS"
--------N-21C4-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET
	AH = C4h
Desc:	unlock all physical records in the log table and remove them from the
	  log table
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=BEh,AH=C1h,AH=D5h
--------N-21C500-----------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE
	AX = C500h
	DS:DX -> semaphore name (counted string, max 127 bytes)
	CL = initial value for semaphore
Return: AL = status
	    00h successful
		BL = number of processes having semaphore open
		CX:DX = semaphore handle
	    03h name length greater than 127
		(refer to Novell document FYI.A.4611)
	    FEh invalid name length
	    FFh invalid semaphore value
Notes:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	the semaphore's value is incremented by AX=C503h and decremented by
	  AX=C502h
SeeAlso: AX=C501h,AX=C502h,AX=C503h,AX=C504h,AX=F220h/SF=00h
--------v-21C500-----------------------------
INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK
	AX = C500h
Return: AX = 6731h if resident
SeeAlso: AX=C301h"VIRUS",AH=C6h"VIRUS"
--------N-21C501-----------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE
	AX = C501h
	CX:DX = semaphore handle
Return: AL = status
	    00h successful
		CX = semaphore value (-127 to 127)
		DL = count of processes which have the semaphore open
	    FFh invalid handle
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AX=C500h"NetWare",AX=C502h,AX=C504h,AX=F220h/SF=01h
--------N-21C502-----------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE
	AX = C502h
	CX:DX = semaphore handle
	BP = timeout limit in timer ticks (1/18 sec)
		0000h return immediately if semaphore already zero or negative
Return: AL = status
	    00h successful
	    FEh timeout
	    FFh invalid handle
Desc:	decrement the semaphore's value, optionally waiting until its value
	  becomes positive before decrementing
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AX=C500h"NetWare",AX=C501h,AX=C503h,AX=F220h/SF=02h
--------N-21C503-----------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE
	AX = C503h
	CX:DX = semaphore handle
Return: AL = status
	    00h successful
	    01h semaphore value overflowed
	    FFh invalid handle
Desc:	increment the semaphore's value and signal the first process (if any)
	  in the queue waiting on the semaphore
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AX=C500h"NetWare",AX=C502h,AX=F220h/SF=03h
--------N-21C504-----------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE
	AX = C504h
	CX:DX = semaphore handle
Return: AL = status
	    00h successful
	    FFh invalid handle
Desc:	decrement the semaphore's open count, and delete the semaphore if the
	  count reaches zero
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AX=C500h"NetWare",AX=C501h,AX=F220h/SF=04h
--------N-21C6-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE
	AH = C6h
	AL = subfunction
	    00h set old "compatibility" mode (default)
	    01h set new extended locks mode
	    02h get lock mode
Return: AL = current lock mode
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	the locking mode should be 01h for NetWare 4.61+ and Advanced
	  NetWare 1.0+ locking calls, and 00h for all older calls
SeeAlso: AH=BCh,AH=C4h,AH=D0h
--------v-21C6-------------------------------
INT 21 - VIRUS - "Socha" - INSTALLATION CHECK
	AH = C6h
Return: AL = 55h if resident
SeeAlso: AX=C500h"VIRUS",AX=C603h
--------v-21C603-----------------------------
INT 21 - VIRUS - "Yankee Doodle" or "MLTI" - INSTALLATION CHECK
	AX = C603h
	BX = version number (002Ch or 002Dh)
	CF set
Return: CF clear if resident
	ZF set if resident and input BX matches version
SeeAlso: AX=C500h"VIRUS",AX=C700h"VIRUS"
--------N-21C700-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION
	AX = C700h
Return: CF clear if successful
	    AL = 00h
	CF set on error
	    AL = error code
		96h out of memory
		FEh implicit transaction already active, converted to explicit
		FFh explicit transaction already active
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
SeeAlso: AX=C701h,AX=C702h,AX=C703h,AX=F222h/SF=01h
--------v-21C700-----------------------------
INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK
	AX = C700h
Return: AL = 07h if resident
SeeAlso: AX=C603h"VIRUS",AH=CBh"VIRUS"
--------N-21C701-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION
	AX = C701h
Return: AL = status (00h,FDh-FFh) (see #01809)
	    00h successful
		CX:DX = transaction number
	CF clear except when AL=FFh
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
SeeAlso: AX=C700h"NetWare",AX=C703h,AX=F222h/SF=02h

(Table 01809)
Values for NetWare TTS status:
 00h	successful
 FDh	transaction tracking disabled
 FEh	transaction ended records locked
 FFh	no explicit transaction active
--------N-21C702-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK
	AX = C702h
Return: AL = status
	    00h not available
	    01h available
	    FDh available but disabled
Desc:	determine whether the default file server supports TTS
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
SeeAlso: AX=C700h,AX=C701h,AX=C703h,AX=F222h/SF=00h
--------N-21C703-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION
	AX = C703h
Return: CF clear if successful
	    AL = 00h
	CF set on error
	    AL = error code (FDh-FFh) (see #01809)
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C704h,AX=F222h/SF=03h
--------N-21C704-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS
	AX = C704h
	CX:DX = transaction number (see AX=C701h)
Return: AL = status
	    00h successful
	    FFh not yet written to disk
Desc:	verify that a transaction has actually been written to disk
Notes:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
	transactions are written to disk in the order in which they are ended,
	  but it may take as much as five seconds for the data to be written
SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C703h,AX=F222h/SF=04h
--------N-21C705-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS
	AX = C705h
Return: AL = status
	    00h successful
	CL = maximum logical record locks (default 0)
	CH = maximum physical record locks (default 0)
Desc:	get the per-application limits on record locks allowed before an
	  implicit transaction is begun
Notes:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
	if either limit is FFh, implicit transactions are disabled for the
	  corresponding lock type
SeeAlso: AX=C706h,AX=C707h,AX=F222h/SF=05h
--------N-21C706-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS
	AX = C706h
	CL = maximum logical record locks (default 0)
	CH = maximum physical record locks (default 0)
Return: AL = status
	    00h successful
Desc:	specify the per-application limits on record locks allowed before an
	  implicit transaction is begun
Notes:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
	if either limit is set to FFh, implicit transactions are disabled for
	  the corresponding lock type
SeeAlso: AX=C705h,AX=C708h,AX=F222h/SF=06h
--------N-21C707-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS
	AX = C707h
Return: AL = status
	    00h successful
	CL = maximum logical record locks (default 0)
	CH = maximum physical record locks (default 0)
Desc:	get the per-workstation limits on record locks allowed before an
	  implicit transaction is begun
Notes:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
	if either limit is FFh, implicit transactions are disabled for the
	  corresponding lock type
SeeAlso: AX=C705h,AX=C708h,AX=F222h/SF=07h
--------N-21C708-----------------------------
INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS
	AX = C708h
	CL = maximum logical record locks (default 0)
	CH = maximum physical record locks (default 0)
Return: AL = status
	    00h successful
Desc:	specify the per-workstation limits on record locks allowed before an
	  implicit transaction is begun
Notes:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
	if either limit is set to FFh, implicit transactions are disabled for
	  the corresponding lock type
SeeAlso: AX=C706h,AX=C707h,AX=F222h/SF=08h
--------N-21C8-------------------------------
INT 21 O - Novell NetWare - BEGIN LOGICAL FILE LOCKING
	AH = C8h
	if function C6h lock mode 00h:
	    DL = mode
		00h no wait
		01h wait
	if function C6h lock mode 01h:
	    BP = timeout in timer ticks (1/18 sec)
Return: AL = error code
Desc:	used to provide TTS support for applications which are not aware of
	  Novell's Transaction Tracking System
Note:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=C9h
--------N-21C9-------------------------------
INT 21 O - Novell NetWare - END LOGICAL FILE LOCKING
	AH = C9h
Return: AL = error code
Desc:	used to provide TTS support for applications which are not aware of
	  Novell's Transaction Tracking System
Note:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=C8h
--------N-21CA-------------------------------
INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)
	AH = CAh
	DS:DX -> FCB (see #01345 at AH=0Fh)
	if function C6h lock mode 01h:
	    AL = log and lock flag
		00h log file only
		01h lock as well as log file
	    BP = lock timeout in timer ticks (1/18 sec)
Return: AL = error code
	    00h successful
	    96h no dynamic memory for file
	    FEh timeout
	    FFh failed
Desc:	provides file locking support for FCBs
Note:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=CBh
--------v-21CA15-----------------------------
INT 21 - VIRUS - "Piter" - ???
	AX = CA15h
	???
Return: ???
SeeAlso: AH=CCh"VIRUS"
--------N-21CB-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET
	AH = CBh
	if function C6h lock mode 00h:
	    DL = mode (00h no wait, 01h wait)
	if function C6h lock mode 01h:
	    BP = lock timeout in timer ticks (1/18 sec), 0000h = no wait
Return: AL = status (00h,FEh,FFh) (see #01810)
Desc:	attempt to lock all files listed in the log table
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	status FFh will be returned if one or more of the files have already
	  been exclusively locked by another process
SeeAlso: AH=CAh,AH=CDh,AH=D1h,AH=EBh

(Table 01810)
Values for NetWare status:
 00h	successful
 FEh	timed out
 FFh	failed
--------v-21CB-------------------------------
INT 21 - VIRUS - "Milous" - INSTALLATION CHECK
	AH = CBh
Return: AL = 07h if resident
SeeAlso: AX=C700h"VIRUS",AX=CB02h
--------v-21CB02-----------------------------
INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK
	AX = CB02h
Return: AX = 02CBh if resident
SeeAlso: AH=CBh"VIRUS",AH=CCh"VIRUS"
--------N-21CC-------------------------------
INT 21 O - Novell NetWare, Alloy NTNX - RELEASE FILE (FCB)
	AH = CCh
	DS:DX -> FCB (see #01345 at AH=0Fh)
Return: none
Desc:	unlocks file, but does not remove it from the log table or close it
Note:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=CAh,AH=CDh
--------v-21CC-------------------------------
INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK
	AH = CCh
Return: AX = 0700h if resident
SeeAlso: AX=CB02h,AH=CDh"VIRUS",AX=D000h"VIRUS"
--------N-21CD-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET
	AH = CDh
Return: none
Desc:	unlock all files listed in the log table, but don't remove them from
	  the table
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=CBh,AH=CCh,AH=CFh,AH=D3h
--------v-21CD-------------------------------
INT 21 - VIRUS - "Westwood" - ???
	AH = CDh
	???
Return: ???
SeeAlso: AH=CCh"VIRUS"
--------N-21CE-------------------------------
INT 21 O - Novell NetWare, Alloy NTNX - CLEAR FILE (FCB)
	AH = CEh
	DS:DX -> FCB (see #01345 at AH=0Fh)
Return: AL = error code
Desc:	unlocks file and removes it from log table, then closes all opened and
	  logged occurrences
Note:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AH=CAh,AH=CFh,AH=EDh"NetWare"
--------N-21CF-------------------------------
INT 21 - LANstep - ???
	AH = CFh
	???
Return: ???
Program: LANstep is a redesign of the Waterloo Microsystems PORT network
--------N-21CF-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET
	AH = CFh
Return: AL = 00h
Desc:	unlock and remove all files from log table
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=CAh,AH=CEh,AH=EBh"NetWare"
--------N-21D0-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD
	AH = D0h
	DS:DX -> record string (counted string, max 99 data bytes)
	if function C6h lock mode 01h: (Novell, NTNX only)
	    AL = flags
		bit 0: lock as well as log the record
		bit 1: non-exclusive lock
	    BP = lock timeout in timer ticks (1/18 sec)
Return: AL = status
	    00h successful
	    96h no dynamic memory for file
	    FEh timed out
	    FFh unsuccessful
Desc:	add the specified logical record name to the log table, and optionally
	  lock the record
Notes:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
	  Banyan VINES, and Alloy NTNX
	locks on logical record names are advisory and may be ignored by other
	  applications
SeeAlso: AH=BCh,AH=D1h,AH=D2h,AH=D4h,AH=EBh
--------v-21D0-------------------------------
INT 21 - VIRUS - "ANTIARJ" -INSTALLATION CHECK
	AH = D0h
Return: AH = D1h if resident
SeeAlso: AH=D0h"MALAGA"
--------v-21D0-------------------------------
INT 21 - VIRUS - "MALAGA" - INSTALLATION CHECK
	AH = D0h
Return: AX = 00D0h if resident
SeeAlso: AH=B3h"VIRUS",AH=D0h"ANTIARJ",AX=D000h"VIRUS"
--------v-21D000-----------------------------
INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK
	AX = D000h
Return: BX = 1234h if resident
SeeAlso: AH=CCh"VIRUS",AH=D0h"ANTIARJ",AX=D000h"Warlock",AH=D5h"VIRUS",AX=D5AAh
--------v-21D000-----------------------------
INT 21 - VIRUS - "Warlock" - INSTALLATION CHECK
	AX = D000h
	CF clear
Return: CF set if resident (normal DOS return would be CF clear)
SeeAlso: AX=D000h"VIRUS",AH=D5h"VIRUS"
--------N-21D1-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET
	AH = D1h
	AL = lock type (00h exclusive, 01h shareable)
	if function C6h lock mode 00h:
	    DL = mode (00h no wait, 01h wait)
	if function C6h lock mode 01h: (Novell only)
	    BP = lock timeout in timer ticks (1/18 sec), 0000h no wait
Return: AL = status (see #01810)
Desc:	attempt to lock all logical record names listed in the log table
Notes:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
	  Banyan VINES, and Alloy NTNX
	status FFh will be returned if one or more logical records have been
	  exclusively locked by another process
	locks on logical record names are advisory and may be ignored by other
	  applications
SeeAlso: AH=C2h,AH=CBh,AH=D0h,AH=D3h,AH=D5h
--------N-21D2-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD
	AH = D2h
	DS:DX -> semaphore identifier (counted string up to 99 chars long)
Return: AL = status
	    00h successful
	    FFh no such record
Desc:	unlock the logical record name but do not remove it from the log table
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
	  Banyan VINES, and Alloy NTNX
	locks on logical record names are advisory and may be ignored by other
	  applications
SeeAlso: AH=BDh,AH=D0h,AH=D3h,AH=D4h
--------v-21D2-------------------------------
INT 21 - VIRUS???
	AH = D2h
	???
Return: ???
Note:	this call is intercepted by the Search&Destroy SDRes v27.03 bundled
	  with Novell DOS 7, and is presumably some virus's installation check
SeeAlso: AH=4Ah/BX=00B6h
--------N-21D3-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET
	AH = D3h
Desc:	unlock all currently-locked logical record names in the log table, but
	  do not remove them from the table
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
	  Banyan VINES, and Alloy NTNX
	locks on logical record names are advisory and may be ignored by other
	  applications
SeeAlso: AH=C3h,AH=CDh,AH=D1h,AH=D2h,AH=D5h
--------N-21D4-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD
	AH = D4h
	DS:DX -> logical record name (counted string up to 99 chars long)
Return: AL = status (00h,FFh) (see #01811)
Desc:	unlock and remove the logical record name from the log table
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
	  Banyan VINES, and Alloy NTNX
	locks on logical record names are advisory and may be ignored by other
	  applications
SeeAlso: AH=BEh,AH=D0h,AH=D2h,AH=D5h

(Table 01811)
Values for NetWare status:
 00h	successful
 FFh	no such record name
--------N-21D5-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET
	AH = D5h
Return: AL = error code (00h,FFh) (see #01811)
Desc:	unlock and remove all logical record name from the log table
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
	  Banyan VINES, and Alloy NTNX
	locks on logical record names are advisory and may be ignored by other
	  applications
SeeAlso: AH=D1h,AH=D3h,AH=D4h
--------v-21D5-------------------------------
INT 21 - VIRUS - "Carfield" - ???
	AH = D5h
	???
Return: ???
SeeAlso: AX=D5AAh,AH=F3h"Carfield"
--------v-21D5AA-----------------------------
INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK
	AX = D5AAh
Return: AX = 2A55h if "Diamond-A" resident
	AX = 2A03h if "Diamond-B"-family virus resident
SeeAlso: AX=D000h,AH=D5h"VIRUS",AX=D5AAh/BP=DEAAh
--------v-21D5AABPDEAA-----------------------
INT 21 - VIRUS - "Dir" - INSTALLATION CHECK
	AX = D5AAh
	BP = DEAAh
Return: SI = 4321h if resident
SeeAlso: AX=D5AAh,AX=DADAh"VIRUS"
--------N-21D6-------------------------------
INT 21 - Novell NetWare - WORKSTATION - END OF JOB
	AH = D6h
	BX = job flag (0000h current job, FFFFh all processes on workstation)
Return: AL = error code
Desc:	unlocks and clears all locked or logged files and records held by the
	  process(es), closes all files, resets error and lock modes, and
	  releases all network resources
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=BBh"NetWare",AH=D7h
--------N-21D7-------------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT
	AH = D7h
Return: AL = error code
Desc:	this function closes the caller's open files, logs it out from all
	  file servers, detaches the workstation from all non-default file
	  servers, and maps a drive to the default server's SYS:LOGIN directory
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=D6h,AH=E3h/SF=14h,AH=F1h"NetWare"
--------N-21D8-------------------------------
INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE
	AH = D8h
	DL = resource number
Return: AL = status (00h successful, FFh unsucessful)
Note:	this function is no longer used or supported by NetWare, and is not
	  documented in Novell documents
SeeAlso: AH=D9h
--------N-21D9-------------------------------
INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE
	AH = D9h
	DL = resource number
Return: AL = status (00h successful, FFh unsucessful)
Note:	this function is no longer used or supported by NetWare, and is not
	  documented in Novell documents
SeeAlso: AH=D8h
--------N-21DA-------------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER
	AH = DAh
	DL = volume number
	ES:DI -> reply buffer (see #01812)
Return: AL = 00h
Notes:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
	operator console rights are not required to make this call
	reported total blocks and total unused blocks include the Hot Fix
	  Table; the NetWare shell's implementation of INT 21/AH=36h will
	  report values larger than 268MB as 268MB.
SeeAlso: AH=36h,AH=E2h/SF=15h,AH=E3h/SF=E9h

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01812)
 00h	WORD	sectors/block
 02h	WORD	total blocks on volume
 04h	WORD	unused blocks
 06h	WORD	total directory entries
 08h	WORD	unused directory entries
 0Ah 16 BYTEs	volume name, null padded
 1Ah	WORD	removable flag, 0000h = not removable
Note:	all words are big-endian
--------v-21DADA-----------------------------
INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK
	AX = DADAh
Return: AH = A5h
SeeAlso: AX=D5AAh,AX=DAFEh"VIRUS"
--------v-21DAFE-----------------------------
INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK
	AX = DAFEh
Return: AX = 1234h if resident
SeeAlso: AX=DADAh,AH=DDh"VIRUS",AH=DEh"VIRUS"
--------N-21DB-------------------------------
INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES
	AH = DBh
Return: AL = number of local disks as set by LASTDRIVE in CONFIG.SYS
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=0Eh
--------N-21DC-------------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER
	AH = DCh
Return: AL = logical connection number
	    00h if NetWare not loaded or this machine is a non-dedicated server
	CX = station number in ASCII (CL = first digit)
Notes:	this function is supported by NetWare 4.0+, Banyan VINES, and Alloy
	  NTNX
	station number only unique for those PCs connected to same semaphore
	  service
	this function is called with AX=DC00h on entry by the DR DOS (up to
	  including 7.03) command processor to retrieve the connection number.
	  Old releases used this call only when INT 21/AX=EF03h failed.
	  Current versions (probably since one of the Novell DOS 7 updates)
	  attempt to retrieve the connection number from VLM (INT 2F/AX=7A20h
	  via GENERAL: 0043h/0006h/0001h and CONN: 0010h/0007h/000Dh) first.
	  The connection number is only trusted, however, when CF is clear on
	  return.
SeeAlso: AH=F2h"NetWare",INT 21/AX=EF03h
--------d-21DC-------------------------------
INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
	AH = DCh
	DX = state
	    0000h turn on
	    0001h turn off
SeeAlso: AX=FEDCh
--------v-21DC28-----------------------------
INT 21 - VIRUS - "Monika" - INSTALLATION CHECK
	AX = DC28h
Return: AX = 1973h if resident
SeeAlso: AX=D000h"VIRUS",AX=DCBAh"VIRUS"
--------v-21DCBA-----------------------------
INT 21 - VIRUS - "Red Spider" - INSTALLATION CHECK
	AX = DCBAh
Return: AX = ABCDh if resident
SeeAlso: AX=DC28h"VIRUS",AX=DEFEh"VIRUS"
--------N-21DD-------------------------------
INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE
	AH = DDh
	DL = error mode
	    00h invoke INT 24 on critical I/O errors (default)
	    01h return NetWare extended error code in AL
	    02h return error code in AL, mapped to standard DOS error codes
Return: AL = previous error mode
Note:	this function is supported by Advanced NetWare 2.0+
SeeAlso: INT 24
--------v-21DD-------------------------------
INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???
	AH = DDh
	CX = number of bytes to copy
	DS:SI -> source of copy
	ES:DI -> destination of copy
Return: does not return normally; return address is caller's CS:0100h with
	  AX = ???
SeeAlso: AX=DDEFh,AH=E0h"VIRUS",AH=EEh"VIRUS"
--------v-21DDEF-----------------------------
INT 21 - VIRUS- "GOLGI" - INSTALLATION CHECK
	AX = DDEFh
Return: AX = EFDDh if resident
SeeAlso: AH=DDh"VIRUS",AH=DEh"VIRUS"
--------N-21DE-------------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE
	AH = DEh
	DL = broadcast mode
	    00h receive server and workstation broadcasts (default)
	    01h receive server broadcasts, discard user messages
	    02h store server broadcasts for retrieval
	    03h store all broadcasts for retrieval
Return: AL = new broadcast mode
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
--------N-21DE-------------------------------
INT 21 - Novell NetWare - SHELL TIMER INTERRUPT CHECKS
	AH = DEh
	DL = function
	    05h disable shell timer interrupt checks
	    06h enable shell timer interrupt checks
Return: ???
Note:	this function was added in NetWare 4.0, but is not listed in current
	  Novell documentation and is probably no longer supported
--------v-21DE-------------------------------
INT 21 - VIRUS - "April 1st EXE" - ???
	AH = DEh
	???
Return: ???
SeeAlso: AH=DEh"Durban",AX=DEADh"90210"
--------v-21DE-------------------------------
INT 21 - VIRUS - "Durban" - INSTALLATION CHECK
	AH = DEh
Return: AH = DFh if resident
SeeAlso: AX=DAFEh,AX=DDEFh,AH=DEh"April 1st",AX=DEADh"90210"
--------N-21DE--DL04-------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE
	AH = DEh
	DL = 04h
Return: AL = current broadcast mode
	    00h receive server and workstation broadcasts (default)
	    01h receive server broadcasts, discard user message
	    02h store server broadcasts for retrieval
	    03h store all broadcasts for retrieval
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
--------v-21DEAD-----------------------------
INT 21 - VIRUS - "90210" - INSTALLATION CHECK
	AX = DEADh
Return: AX = AAAAh if resident
SeeAlso: AH=DEh"April 1st",AX=DEADh"Shifting",AX=DEDEh"VIRUS"
--------v-21DEAD-----------------------------
INT 21 - VIRUS - "Shifting Objective" - RELOCATE CODE ???
	AX = DEADh
SeeAlso: AX=FEADh
SeeAlso: AX=DEADh"90210",AX=DEDEh"VIRUS"
--------v-21DEDE-----------------------------
INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
	AX = DEDEh
Return: AH = 41h if resident
SeeAlso: AX=DEADh"Shifting",AX=DEFEh"VIRUS"
--------v-21DEFE-----------------------------
INT 21 - VIRUS - "Maze" - INSTALLATION CHECK
	AX = DEFEh
Return: AX = ABCDh if resident
SeeAlso: AX=DCBAh"VIRUS",AX=DEDEh"VIRUS",AH=E0h"VIRUS"
--------N-21DF--DL00-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE
	AH = DFh
	DL = 00h
Return: AL = status
	    00h successful
Desc:	this function redirects the default LPT to a capture file on the file
	  server
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
	a print job is queued when the first character of output is captured
SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=03h
SeeAlso: AH=DFh/DL=04h,AX=F003h
--------N-21DF--DL01-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE
	AH = DFh
	DL = 01h
Return: AL = status
	    00h successful
Desc:	stop redirecting the default LPT, close the capture file, and release
	  the job in the print queue for printing
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
	after this call, the default LPT defaults to local printing
SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=02h,AH=DFh/DL=03h,AH=DFh/DL=05h
--------N-21DF--DL02-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE
	AH = DFh
	DL = 02h
Return: AL = status
	    00h successful
Desc:	this function ends the capture of the default LPT, removes the job from
	  the print queue, and deletes the capture file unless it is a
	  permanent capture file
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
	after this call, the default LPT defaults to local printing
SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=06h
--------N-21DF--DL03-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE
	AH = DFh
	DL = 03h
Return: AL = status
	    00h successful
Desc:	this function closes the current capture file for the default LPT
	  and starts printing it if it is not a permanent capture file
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
	if more data is sent to the LPT port after this call, a new capture
	  file will be opeend
SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=07h
--------N-21DF--DL04-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE
	AH = DFh
	DL = 04h
	DH = LPT port (00h-02h)
Return: AL = status
	    00h successful
Desc:	this function redirects the specified LPT to a capture file on the file
	  server
Notes:	this function is supported by Advanced NetWare 2.1+
	a print job is queued when the first character of output is captured
SeeAlso: AX=B800h,AH=DFh/DL=00h,AH=DFh/DL=05h,AH=DFh/DL=06h,AH=DFh/DL=07h
SeeAlso: AX=F003h
--------N-21DF--DL05-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE
	AH = DFh
	DL = 05h
	DH = LPT port (00h-02h)
Return: AL = status
	    00h successful
Desc:	stop redirecting the specified LPT, close the capture file, and release
	  the job in the print queue for printing
Notes:	this function is supported by Advanced NetWare 2.1+
	after this call, the specified LPT defaults to local printing
SeeAlso: AH=DFh/DL=01h,AH=DFh/DL=04h,AH=DFh/DL=06h,AH=DFh/DL=07h
--------N-21DF--DL06-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE
	AH = DFh
	DL = 06h
	DH = LPT port (00h-02h)
Return: AL = status
	    00h successful
Desc:	this function ends the capture of the specified LPT, removes the job
	  from the print queue, and deletes the capture file unless it is a
	  permanent capture file
Notes:	this function is supported by Advanced NetWare 2.1+
	after this call, the specified LPT defaults to local printing
SeeAlso: AH=DFh/DL=02h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=07h
--------N-21DF--DL07-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE
	AH = DFh
	DL = 07h
	DH = LPT port (00h-02h)
Return: AL = status
	    00h successful
Desc:	this function closes the current capture file for the specified LPT
	  and starts printing it if it is not a permanent capture file
Notes:	this function is supported by Advanced NetWare 2.1+
	if more data is sent to the LPT port after this call, a new capture
	  file will be opeend
SeeAlso: AH=DFh/DL=03h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=06h
--------T-21DF00DX534C-----------------------
INT 21 U - Software Carousel - INSTALLATION CHECK
	AX = DF00h
	DX = 534Ch ("SL")
	DI = 534Ch ("SL")
Return: AX = 00FFh if installed
	    ???
Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
--------T-21DF01-----------------------------
INT 21 - Software Carousel - SWITCH TO ANOTHER TASK
	AX = DF01h
	BL = task number (00h = next task)
Return: AL = status
	    00h Carousel not running
	    01h successful
	    FFh unsucessful
		AH = error code (01h,02h) (see #01813)

(Table 01813)
Values for Software Carousel error code:
 00h	invalid subfunction in AL
 01h	invalid task number
 02h	tried to switch to task with no memory size
 03h	tried to kill program in partition with no program running
 04h	tried to change size of an active memory partition
 05h	invalid memory size
 06h	tried to send command to task with a pending previous command
--------T-21DF02-----------------------------
INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION
	AX = DF02h
	BL = task number
Return: AL = status
	    00h Carousel not running
	    01h successful
	    FFh unsucessful
		AH = error code (01h,03h) (see #01813)
--------T-21DF03-----------------------------
INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS
	AX = DF03h
	BL = task number
Return: AL = status
	    00h Carousel not running
	    01h successful
		BL = partition state (00h no program running, 01h prog running)
		DX = partition size in KB
	    FFh unsucessful
		AH = error code (01h) (see #01813)
SeeAlso: AX=DF05h
--------T-21DF04-----------------------------
INT 21 - Software Carousel - GET PARTITION NAME
	AX = DF04h
	BL = task number
Return: AL = status
	    00h Carousel not running
	    01h successful
		CX = length of name (00h if default partition name)
		ES:BX -> partition name (if CX nonzero)
	    FFh unsucessful
		AH = error code (01h) (see #01813)
SeeAlso: AX=DF06h
--------T-21DF05-----------------------------
INT 21 - Software Carousel - CHANGE PARTITION SIZE
	AX = DF05h
	BL = task number
	DX = new size in KB
Return: AL = status
	    00h Carousel not running
	    01h successful
	    FFh unsucessful
		AH = error code (01h,04h,05h) (see #01813)
	BX = minimum size allowed
	CX = maximum size available
SeeAlso: AX=DF03h
--------T-21DF06-----------------------------
INT 21 - Software Carousel - CHANGE PARTITION NAME
	AX = DF06h
	BL = task number
	CX = length of new name (00h to use default, max 18h)
	DS:SI -> new name
Return: AL = status
	    00h Carousel not running
	    01h successful
	    FFh unsucessful
		AH = error code (01h) (see #01813)
SeeAlso: AX=DF04h
--------T-21DF07-----------------------------
INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION
	AX = DF07h
	BL = task number
	CX = length of command (max 8 chars)
	DS:SI -> command line
Return: AL = status
	    00h Carousel not running
	    01h successful
	    FFh unsucessful
		AH = error code (01h,06h) (see #01813)
Note:	the maximum length seems too small and may be a typo for 80 characters
--------T-21DF08-----------------------------
INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING
	AX = DF08h
	BL = new state of keyboard (00h disabled, 01h enabled)
Return: AL = status
	    00h Carousel not running
	    01h successful
Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
Note:	when the keyboard is is disabled, the user may neither access the
	  Carousel menu nor switch to another memory section
--------T-21DF09-----------------------------
INT 21 - Software Carousel - BOOT THE SYSTEM
	AX = DF09h
Return: AL = status
	    00h Carousel not running
	    FFh unsucessful
		AH = error code (01h,03h) (see #01813)
Note:	this function never returns if successful
--------T-21DF0A-----------------------------
INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK
	AX = DF0Ah
Return: AL = status
	    00h Carousel not running
	    01h successful
		BL = task number
		DX = memory size in KB
	    FFh unsucessful
		AH = error code (01h,03h) (see #01813)
--------T-21DF0B-----------------------------
INT 21 - Software Carousel - SET TASK SWITCH CALLBACK
	AX = DF0Bh
	BH = interrupt number or 00h
	BL = function number to invoke on partition switch
	CL = function number to call when it is safe for resident programs
		to perform DOS calls
	DS:DX -> FAR function to call if BH=00h
Return: AL = status
	    00h Carousel not running
	    01h successful
	    FFh unsucessful
		AH = error code (01h,03h) (see #01813)
Notes:	the specified interrupt or FAR function is called with AH set to the
	  appropriate one of the values specified in BL and CL, and BL set to
	  the new task number
	the function specified by CL will not be called until the notification
	  is enabled with AX=DF0Ch
SeeAlso: AX=DF0Ch
--------T-21DF0C-----------------------------
INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION
	AX = DF0Ch
Return: AL = status
	    00h Carousel not running
	    01h successful
Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
SeeAlso: AX=DF0Bh
--------E-21E0-------------------------------
INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE
	AH = E0h
	???
Return: ???
SeeAlso: AH=E1h"OS/286"
--------N-21E0-------------------------------
INT 21 - Novell NetWare, Alloy NTNX - PRINT SPOOLING
	AH = E0h
	DS:SI -> request buffer (see #01814)
	ES:DI -> reply buffer
Return: AL = status
Note:	this function was added in NetWare 4.0, but is no longer listed in
	  current Novell documentation and may no longer be supported
SeeAlso: AH=E3h/SF=68h,AX=F211h/SF=06h,AX=F211h/SF=0Ah

Format of NetWare print spooling request buffer:
Offset	Size	Description	(Table 01814)
 00h	WORD	length of following data
 02h	BYTE	subfunction
		00h spool data to a capture file
		01h close and queue capture file
		02h set spool flags
		03h spool existing file
		04h get spool queue entry
		05h remove entry from spool queue
 03h	???
SeeAlso: #02101
--------O-21E0-------------------------------
INT 21 - Digital Research DOS Plus - CALL BDOS
	AH = E0h
	CL = BDOS function number (see #04019 at INT E0"CP/M-86")
	other registers as appropriate for function
Return: as appropriate for function
SeeAlso: AX=4459h,INT E0"CP/M-86"
--------T-21E0-------------------------------
INT 21 - DoubleDOS - MENU CONTROL
	AH = E0h
	AL = subfunction
	    01h exchange tasks
	    73h resume invisible job if suspended
	    74h kill other job
	    75h suspend invisible job
Note:	identical to AH=F0h
SeeAlso: AH=F0h"DoubleDOS"
--------v-21E0-------------------------------
INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK
	AH = E0h
Return: AX = 0300h if "Jerusalem" resident
	AX = DADAh if "Armagedon" resident
SeeAlso: AH=DEh"VIRUS",AX=DEDEh"VIRUS",AX=E00Fh
--------N-21E0--SF06-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS
	AH = E0h subfn 06h
	DS:SI -> request buffer (see #01815)
	ES:DI -> reply buffer (see #01816)
Return: AL = status
	    00h successful
	    FFh no such printer
Desc:	get current state of specified printer attached to the server
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX

Format of NetWare "Get Printer Status" request buffer:
Offset	Size	Description	(Table 01815)
 00h	WORD	0002h (length of following data)
 02h	BYTE	06h (subfunction "Get Printer Status")
 03h	BYTE	printer number (00h-04h)
SeeAlso: #01816

Format of NetWare "Get Printer Status" reply buffer:
Offset	Size	Description	(Table 01816)
 00h	WORD	(call) 0004h (size of following results buffer)
 02h	BYTE	flag: 00h printer active, FFh printer halted
 03h	BYTE	flag: 00h printer online, 01h printer offline
 04h	BYTE	current form type
 05h	BYTE	target printer number (00h-04h)
		same as number in request buffer unless rerouted by server
		  console
SeeAlso: #01815
--------N-21E0--SF09-------------------------
INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE
	AH = E0h subfn 09h
	DS:SI -> request buffer (see #01817)
	ES:DI -> reply buffer (see #01818)
Return: AL = status
	    00h successful
	    9Ch invalid path
Desc:	create a permanent capture file for the next print capture to be
	  started
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	the caller must have read, write, and create rights for the directory
	  containing the capture file

Format of NetWare "Specify Capture File" request buffer:
Offset	Size	Description	(Table 01817)
 00h	WORD	length of following data (max 102h)
 02h	BYTE	09h (subfunction "Specify Capture File")
 03h	BYTE	directory handle or 00h
 04h	BYTE	length of filename
 05h  N BYTEs	name of capture file
SeeAlso: #01818

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01818)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01817
--------v-21E00F-----------------------------
INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK
	AX = E00Fh
Return: AX = 4C31h if resident
SeeAlso: AH=E0h"VIRUS",AH=E1h"VIRUS"
--------E-21E1-------------------------------
INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL
	AH = E1h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AH=E0h"OS/286",AH=E2h"OS/286",AH=E3h"OS/286",AX=250Eh,INT 31/AX=0301h
--------T-21E1-------------------------------
INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
	AH = E1h
SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
SeeAlso: AH=F1h"DoubleDOS"
--------v-21E1-------------------------------
INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK
	AH = E1h
Return: AX = 0300h if "Mendoza" resident
	AX = 0400h if "Fu Manchu" resident
SeeAlso: AX=E00Fh,AH=E4h"VIRUS"
--------N-21E1--SF00-------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE
	AH = E1h subfn 00h
	DS:SI -> request buffer (see #01819)
	ES:DI -> reply buffer (see #01820)
Return: AL = status
	    00h successful
	    FEh I/O error or out of dynamic workspace
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
SeeAlso: AH=DEh"NetWare",AH=DEh/DL=04h,AH=E1h/SF=01h,AH=E1h/SF=04h
SeeAlso: AH=E1h/SF=09h

Format of NetWare "Send Broadcast Message" request buffer:
Offset	Size	Description	(Table 01819)
 00h	WORD	length of following data (max 9Eh)
 02h	BYTE	00h (subfunction "Send Broadcast Message")
 03h	BYTE	number of connections (01h-64h)
 04h  N BYTEs	list of connections to receive broadcast message
	BYTE	length of message (01h-37h)
      N BYTEs	broadcast message (no control characters or characters > 7Eh)
SeeAlso: #01820

Format of NetWare "Send Broadcast Message" reply buffer:
Offset	Size	Description	(Table 01820)
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of per-connection results
		00h successful
		FCh message rejected due to lack of buffer space
		FDh invalid connection number
		FFh blocked (see also AH=E1h/SF=02h)
SeeAlso: #01819
--------N-21E1--SF01-------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE (OLD)
	AH = E1h subfn 01h
	DS:SI -> request buffer (see #01821)
	ES:DI -> reply buffer (see #01822)
Return: AL = status
	    00h successful
	    FCh full message queue
	    FEh out of dynamic workspace
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=09h
SeeAlso: AX=F215h/SF=01h,AX=F215h/SF=0Bh

Format of NetWare "Get Broadcast Message" request buffer:
Offset	Size	Description	(Table 01821)
 00h	WORD	0001h (length of following data)
 02h	BYTE	01h (subfunction "Get Broadcast Message")
SeeAlso: #01822,#02109

Format of NetWare "Get Broadcast Message" reply buffer:
Offset	Size	Description	(Table 01822)
 00h	WORD	(call) size of following results buffer (max 38h)
 02h	BYTE	length of message (00h-37h)
		00h if no broadcast messages pending
 03h  N BYTEs	message (no control characters or characters > 7Eh)
SeeAlso: #01821,#02107,#02110
--------N-21E1--SF02-------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - DISABLE BROADCAST MESSAGES
	AH = E1h subfn 02h
	DS:SI -> request buffer (see #01824)
	ES:DI -> reply buffer (see #01825)
Return: AL = error code
Note:	these functions are supported by NetWare 4.0+ but are not listed in
	  _NetWare_System_Calls--DOS_; they may be obsolete
SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=03h,AH=E1h/SF=04h,AH=E1h/SF=09h
SeeAlso: AX=F215h/SF=02h

Format of NetWare "Disable Broadcasts" request packet:
Offset	Size	Description	(Table 01823)
 00h	WORD	0001h (length of following data)
 02h	BYTE	02h (subfunction "Enable Broadcast Messages")
SeeAlso: #01824,#01825
--------N-21E1--SF03-------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE BROADCAST MESSAGES
	AH = E1h subfn 03h
	DS:SI -> request buffer (see #01824)
	ES:DI -> reply buffer (see #01825)
Return: AL = error code
Note:	these functions are supported by NetWare 4.0+ but are not listed in
	  _NetWare_System_Calls--DOS_; they may be obsolete
SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=02h,AH=E1h/SF=04h,AH=E1h/SF=09h
SeeAlso: AX=F215h/SF=03h

Format of NetWare "Enable Broadcast Messages" request buffer:
Offset	Size	Description	(Table 01824)
 00h	WORD	0001h (length of following data)
 02h	BYTE	03h (subfunction "Enable Broadcast Messages")
SeeAlso: #01825,#01823

Format of NetWare "Enable/Disable Broadcast Messages" reply buffer:
Offset	Size	Description	(Table 01825)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01824,#01823
--------N-21E1--SF04-------------------------
INT 21 O - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE
	AH = E1h subfn 04h
	DS:SI -> request buffer (see #01826)
	ES:DI -> reply buffer (see #01827)
Return: AL = status
	    00h successful
	    FEh I/O error or out of dynamic workspace
Notes:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
	message pipes use CPU time on the file server; IPX, SPX, or NetBIOS
	  connections should be used for peer-to-peer communications as these
	  protocols do not use file server time
SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h

Format of NetWare "Send Personal Message" request buffer:
Offset	Size	Description	(Table 01826)
 00h	WORD	length of following data (max E5h)
 02h	BYTE	04h (subfunction "Send Personal Message")
 03h	BYTE	number of connections (01h-64h)
 04h  N BYTEs	list of connections to receive broadcast message
	BYTE	length of message (01h-7Eh)
      N BYTEs	message (no control characters or characters > 7Eh)
SeeAlso: #01827

Format of NetWare "Send Personal Message" reply buffer:
Offset	Size	Description	(Table 01827)
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of per-connection results
		00h successful
		FCh message rejected because queue is full (contains 6 msgs)
		FDh incomplete pipe
		FFh failed
SeeAlso: #01826
--------N-21E1--SF05-------------------------
INT 21 O - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE
	AH = E1h subfn 05h
	DS:SI -> request buffer (see #01828)
	ES:DI -> reply buffer (see #01829)
Return: AL = status
	    00h successful
	    FEh out of dynamic workspace
Desc:	return the oldest message in the default file server's message queue
	  for the calling workstation
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
SeeAlso: AH=E1h/SF=01h,AH=E1h/SF=04h,AH=E1h/SF=06h,AH=E1h/SF=08h

Format of NetWare "Get Personal Message" request buffer:
Offset	Size	Description	(Table 01828)
 00h	WORD	0001h (length of following data)
 02h	BYTE	05h (subfunction "Get Personal Message")
SeeAlso: #01829

Format of NetWare "Get Personal Message" reply buffer:
Offset	Size	Description	(Table 01829)
 00h	WORD	(call) size of following results buffer (max 80h)
 02h	BYTE	connection number of sending station
 03h	BYTE	length of message (00h-7Eh)
		00h if no personal messages pending
 04h  N BYTEs	message (no control characters or characters > 7Eh)
SeeAlso: #01828
--------N-21E1--SF06-------------------------
INT 21 O - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE
	AH = E1h subfn 06h
	DS:SI -> request buffer (see #01830)
	ES:DI -> reply buffer (see #01831)
Return: AL = status
	    00h successful
	    FEh out of dynamic workspace
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
SeeAlso: AH=E1h/SF=04h,AH=E1h/SF=07h,AH=E1h/SF=08h

Format of NetWare "Open Message Pipe" request buffer:
Offset	Size	Description	(Table 01830)
 00h	WORD	length of following data (max 66h)
 02h	BYTE	06h (subfunction "Open Message Pipe")
 03h	BYTE	number of pipes to open (01h-64h)
 04h  N BYTEs	list of connection numbers
SeeAlso: #01831,#01832,#01835

Format of NetWare "Open Message Pipe" reply buffer:
Offset	Size	Description	(Table 01831)
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of results
		00h successful
		FEh incomplete (target half not yet created)
		FFh failed
SeeAlso: #01830,#01833,#01836
--------N-21E1--SF07-------------------------
INT 21 O - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE
	AH = E1h subfn 07h
	DS:SI -> request buffer (see #01832)
	ES:DI -> reply buffer (see #01833)
Return: AL = status
	    00h successful
	    FCh full message queue
	    FEh out of dynamic workspace
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h

Format of NetWare "Close Mesage Pipe" request buffer:
Offset	Size	Description	(Table 01832)
 00h	WORD	length of following data (max 66h)
 02h	BYTE	07h (subfunction "Close Message Pipe")
 03h	BYTE	number of pipes to close (01h-64h)
 04h  N BYTEs	list of connection numbers
SeeAlso: #01830,#01833

Format of NetWare "Close Message Pipe" reply buffer:
Offset	Size	Description	(Table 01833)
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of results
		00h successful
		FDh failed
		FFh no such pipe
SeeAlso: #01831,#01832
--------N-21E1--SF08-------------------------
INT 21 O - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS
	AH = E1h subfn 08h
	DS:SI -> request buffer (see #01835)
	ES:DI -> reply buffer (see #01836)
Return: AL = status (see #01834)
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=07h,AX=F215h/SF=08h

(Table 01834)
Values for NetWare function status:
 00h	successful
 FCh	full message queue
 FEh	out of dynamic workspace
SeeAlso: #01839

Format of NetWare "Check Pipe Status" request buffer:
Offset	Size	Description	(Table 01835)
 00h	WORD	length of following data (max 66h)
 02h	BYTE	08h (subfunction "Check Pipe Status")
 03h	BYTE	number of pipes to monitor (01h-64h)
 04h  N BYTEs	list of connection numbers
SeeAlso: #01830,#01836

Format of NetWare "Check Pipe Status" reply buffer:
Offset	Size	Description	(Table 01836)
 00h	WORD	(call) size of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	list of pipe statuses
		00h open
		FEh incomplete
		FFh closed
SeeAlso: #01831,#01835,#02108
--------N-21E1--SF09-------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE
	AH = E1h subfn 09h
	DS:SI -> request buffer (see #01837)
	ES:DI -> reply buffer (see #01838)
Return: AL = status (see #01834)
Desc:	send a one-line message to the system console on the default file
	  server
Note:	this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=01h,AH=E3h/SF=D1h
SeeAlso: AX=F215h/SF=09h

Format of NetWare "Broadcast to Console" request buffer:
Offset	Size	Description	(Table 01837)
 00h	WORD	length of following data (max 3Eh)
 02h	BYTE	09h (subfunction "Broadcast to Console")
 03h	BYTE	length of message (01h-3Ch)
 04h  N BYTEs	message (no control characters or characters > 7Eh)
SeeAlso: #01838

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01838)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01837
--------E-21E2-------------------------------
INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER
	AH = E2h
	???
Return: ???
SeeAlso: AH=E0h"OS/286",AH=E1h"OS/286",AH=E6h"OS/286"
--------N-21E2-------------------------------
INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
	AH = E2h
	AL = character
Return: AL = 00h successful
	     01h buffer full (128 characters)
SeeAlso: AH=E1h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
SeeAlso: AH=F2h"DoubleDOS"
--------N-21E2--SF00-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE
	AH = E2h subfn 00h
	DS:SI -> request buffer (see #01840)
	ES:DI -> reply buffer (see #01841)
Return: AL = status (00h,98h,9Bh,9Ch) (see #01839)
Desc:	set the target handle to reference the directory specified by the
	  source handle and the source path; both handles must refer to the
	  same file server
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	the target handle is not changed if this function fails
SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=12h,AH=E2h/SF=13h,AX=F216h/SF=00h

(Table 01839)
Values for NetWare function status:
 00h	successful
 84h	not permitted to create
 8Ah	not permitted to delete
 8Bh	not permitted to rename
 8Ch	not permitted to modify
 98h	nonexistent volume
 9Bh	invalid directory handle
 9Ch	invalid path
 9Eh	invalid filename
 9Fh	directory currently in use
 A0h	directory not empty
 C6h	no console rights
 FCh	no such bindery object
SeeAlso: #01834,#01866

Format of NetWare "Set Directory Handle" request buffer:
Offset	Size	Description	(Table 01840)
 00h	WORD	length of following data (max 103h)
 02h	BYTE	00h (subfunction "Set Directory Handle")
 03h	BYTE	directory handle of target
 04h	BYTE	directory handle of source
 05h	BYTE	length of source directory path (01h-FFh)
 06h  N BYTEs	source directory path
SeeAlso: #01841

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01841)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01840
--------N-21E2--SF01-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH
	AH = E2h subfn 01h
	DS:SI -> request buffer (see #01842)
	ES:DI -> reply buffer (see #01843)
Return: AL = status (00h,9Bh) (see #01839)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=03h,AH=E2h/SF=1Ah,AH=E9h,AX=F216h/SF=01h

Format of NetWare "Get Directory Path" request buffer:
Offset	Size	Description	(Table 01842)
 00h	WORD	0002h (length of following data)
 02h	BYTE	01h (subfunction "Get Directory Path")
 03h	BYTE	directory handle
SeeAlso: #01843,#01844

Format of NetWare "Get Directory Path" reply buffer:
Offset	Size	Description	(Table 01843)
 00h	WORD	(call) length of following data buffer
 02h	BYTE	length of directory path (01h-FFh)
 03h  N BYTEs	full directory path including volume
SeeAlso: #01842,#01845
--------N-21E2--SF02-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION
	AH = E2h subfn 02h
	DS:SI -> request buffer (see #01844)
	ES:DI -> reply buffer (see #01845)
Return: AL = status (00h,98h,9Bh,9Ch) (see #01839)
Desc:	get information about the first or next subdirectory of the specified
	  directory
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=03h,AH=E2h/SF=19h,AX=F216h/SF=02h

Format of NetWare "Scan Directory Information" request buffer:
Offset	Size	Description	(Table 01844)
 00h	WORD	length of following data (max 104h)
 02h	BYTE	02h (subfunction "Scan Directory Information")
 03h	BYTE	directory handle
 04h	WORD	(big-endian) subdirectory number
		0000h for first call, returned subdir number + 1 on next call
 06h	BYTE	length of directory path
 07h  N BYTEs	directory path
SeeAlso: #01842,#01845

Format of NetWare "Scan Directory Information" reply buffer:
Offset	Size	Description	(Table 01845)
 00h	WORD	(call) 001Ch (length of following data buffer)
 02h 16 BYTEs	subdirectory name
 12h	DWORD	(big-endian) date and time of creation (see #01846)
 16h	DWORD	(big-endian) object ID of owner
 1Ah	BYTE	maximum directory rights (see #01849)
 1Bh	BYTE	unused
 1Ch	WORD	(big-endian) subdirectory number
SeeAlso: #01843,#01844,#02111 at AX=F216h/SF=02h

Bitfields for NetWare date and time:
Bit(s)	Description	(Table 01846)
 31-25	year-1980
 24-21	month
 20-16	day
 15-11	hour
 10-5	minute
 4-0	second
--------N-21E2--SF03-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS
	AH = E2h subfn 03h
	DS:SI -> request buffer (see #01847)
	ES:DI -> reply buffer (see #01848)
Return: AL = status (00h,98h,9Bh) (see #01839)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=02h,AX=F216h/SF=03h

Format of NetWare "Get Effective Directory Rights (old)" request buffer:
Offset	Size	Description	(Table 01847)
 00h	WORD	length of following data (max 102h)
 02h	BYTE	03h (subfunction "Get Effective Directory Rights (old)")
 03h	BYTE	directory handle
 04h	BYTE	length of directory path (00h-FFh)
 05h  N BYTEs	directory path
SeeAlso: #01848,#01850

Format of NetWare "Get Effective Directory Rights" reply buffer:
Offset	Size	Description	(Table 01848)
 00h	WORD	(call) 0001h (length of following data buffer)
 02h	BYTE	effective directory rights (see #01849)
SeeAlso: #01847

Bitfields for NetWare directory rights:
Bit(s)	Description	(Table 01849)
 0	reading allowed
 1	writing allowed
 2	opens allowed
 3	file creation allowed
 4	deletion allowed
 5	"parental" may create/delete subdirectories and grant/revoke trustee
	  rights
 6	directory search allowed
 7	file attributes may be changed
SeeAlso: #01848,#01850
--------N-21E2--SF04-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK
	AH = E2h subfn 04h
	DS:SI -> request buffer (see #01850)
	ES:DI -> reply buffer (see #01851)
Return: AL = status (00h,8Ch,98h,9Ch) (see #01839)
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=03h,AH=E2h/SF=0Ah,AH=E2h/SF=0Dh,AX=F216h/SF=04h

Format of NetWare "Modify Maximum Rights Mask" request buffer:
Offset	Size	Description	(Table 01850)
 00h	WORD	length of following data (max 104h)
 02h	BYTE	04h (subfunction "Modify Maximum Rights Mask")
 03h	BYTE	directory handle
 04h	BYTE	rights to grant (see #01849)
 05h	BYTE	rights to revoke (see #01849)
 06h	BYTE	length of directory path (00h-FFh)
 07h  N BYTEs	directory path
Note:	the rights specified at offset 05h are revoked first, and then the
	  rights specified at offset 04h are added to the resulting rights
	  mask
SeeAlso: #01847,#01851

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01851)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01850
--------N-21E2--SF05-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER
	AH = E2h subfn 05h
	DS:SI -> request buffer (see #01852)
	ES:DI -> reply buffer (see #01853)
Return: AL = status (00h,98h) (see #01839)
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E3h/SF=E9h
SeeAlso: AX=F216h/SF=05h

Format of NetWare "Get Volume Number" request buffer:
Offset	Size	Description	(Table 01852)
 00h	WORD	length of following data (max 12h)
 02h	BYTE	05h (subfunction "Get Volume Number")
 03h	BYTE	length of volume name (01h-10h)
 04h  N BYTEs	volume name
SeeAlso: #01853,#02113 at AX=F216h/SF=05h

Format of NetWare "Get Volume Number" reply buffer:
Offset	Size	Description	(Table 01853)
 00h	WORD	(call) 0001h (length of following results buffer)
 02h	BYTE	volume number
SeeAlso: #01852,#02113 at AX=F216h/SF=05h
--------N-21E2--SF06-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME
	AH = E2h subfn 06h
	DS:SI -> request buffer (see #01854)
	ES:DI -> reply buffer (see #01855)
Return: AL = status (00h,98h) (see #01839)
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E2h/SF=1Ah
SeeAlso: AH=E3h/SF=E9h,AX=F216h/SF=06h

Format of NetWare "Get Volume Name" request buffer:
Offset	Size	Description	(Table 01854)
 00h	WORD	0002h (length of following data)
 02h	BYTE	06h (subfunction "Get Volume Name")
 03h	BYTE	volume number
SeeAlso: #01855,#02114 at AX=F216h/SF=06h

Format of NetWare "Get Volume Name" reply buffer:
Offset	Size	Description	(Table 01855)
 00h	WORD	(call) 0011h (length of following results buffer)
 02h	BYTE	length of volume name
 03h 16 BYTEs	NUL-padded volume name
SeeAlso: #01854,#02114 at AX=F216h/SF=06h
--------N-21E2--SF0A-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY
	AH = E2h subfn 0Ah
	DS:SI -> request buffer (see #01856)
	ES:DI -> reply buffer (see #01857)
Return: AL = status (00h,84h,98h,FCh) (see #01839)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=39h,AH=E2h/SF=0Bh,AH=E2h/SF=0Fh,AX=F216h/SF=0Ah

Format of NetWare "Create Directory" request buffer:
Offset	Size	Description	(Table 01856)
 00h	WORD	length of following data (max 103h)
 02h	BYTE	0Ah (subfunction "Create Directory")
 03h	BYTE	directory handle
 04h	BYTE	maximum directory rights (see #01849)
 05h	BYTE	length of directory path (00h-FFh)
 06h  N BYTEs	directory path
SeeAlso: #01857,#01858

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01857)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01856,#01858
--------N-21E2--SF0B-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY
	AH = E2h subfn 0Bh
	DS:SI -> request buffer (see #01858)
	ES:DI -> reply buffer (see #01857)
Return: AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see #01839)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=3Ah,AH=E2h/SF=0Ah,AH=E2h/SF=0Fh,AX=F216h/SF=0Bh

Format of NetWare "Delete Directory" request buffer:
Offset	Size	Description	(Table 01858)
 00h	WORD	length of following data (max 103h)
 02h	BYTE	0Bh (subfunction "Delete Directory")
 03h	BYTE	directory handle
 04h	BYTE	unused
 05h	BYTE	length of directory path (00h-FFh)
 06h  N BYTEs	directory path
SeeAlso: #01856,#01857
--------N-21E2--SF0C-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES
	AH = E2h subfn 0Ch
	DS:SI -> request buffer (see #01859)
	ES:DI -> reply buffer (see #01860)
Return: AL = status (00h,9Ch) (see also #01839)
	    9Ch no more trustees
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AH=E3h/SF=47h,AX=F216h/SF=0Ch

Format of NetWare "Scan Directory For Trustees" request buffer:
Offset	Size	Description	(Table 01859)
 00h	WORD	length of following data (max 103h)
 02h	BYTE	0Ch (subfunction "Scan Directory For Trustees")
 03h	BYTE	directory handle
 04h	BYTE	sequence number
		00h on first call, increment for each subsequent call
 05h	BYTE	length of directory path (00h-FFh)
 06h  N BYTEs	directory path
SeeAlso: #01860,#01861,#02115 at AX=F216h/SF=0Ch

Format of NetWare "Scan Directory For Trustees" reply buffer:
Offset	Size	Description	(Table 01860)
 00h	WORD	(call) 0031h (length of following results buffer)
 02h 16 BYTEs	directory name
 12h  4 BYTEs	date and time of creation
 16h	DWORD	(big-endian) object ID of owner
 1Ah  5 DWORDs	(big-endian) object IDs of Trustees 0 through 4
		00000000h = end of group
 2Eh  5 BYTEs	directory rights for Trustees 0 through 4 (see #01849)
SeeAlso: #01859,#01863,#02115 at AX=F216h/SF=0Ch
--------N-21E2--SF0D-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY
	AH = E2h subfn 0Dh
	DS:SI -> request buffer (see #01861)
	ES:DI -> reply buffer (see #01863)
Return: AL = status (00h,8Ch,FCh) (see #01839)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Eh,AH=E3h/SF=47h,AX=F216h/SF=0Dh

Format of NetWare "Add Trustee To Directory" request buffer:
Offset	Size	Description	(Table 01861)
 00h	WORD	length of following data (max 107h)
 02h	BYTE	0Dh (subfunction "Add Trustee To Directory")
 03h	BYTE	directory handle
 04h	DWORD	(big-endian) object ID of trustee
 08h	BYTE	trustee directory rights (see #01849)
 09h	BYTE	length of directory path (00h-FFh)
 0Ah  N BYTEs	directory path
SeeAlso: #01863
--------N-21E2--SF0E-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY
	AH = E2h subfn 0Eh
	DS:SI -> request buffer (see #01862)
	ES:DI -> reply buffer (see #01863)
Return: AL = status (00h,98h,9Bh,9Ch) (see #01839)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AX=F216h/SF=0Eh

Format of NetWare "Delete Trustee From Directory" request buffer:
Offset	Size	Description	(Table 01862)
 00h	WORD	length of following data (max 107h)
 02h	BYTE	0Eh (subfunction "Delete Trustee From Directory")
 03h	BYTE	directory handle
 04h	DWORD	(big-endian) object ID of trustee
 08h	BYTE	unused
 09h	BYTE	length of directory path (00h-FFh)
 0Ah  N BYTEs	directory path
SeeAlso: #01863

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01863)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01862,#01864,#01865
--------N-21E2--SF0F-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY
	AH = E2h subfn 0Fh
	DS:SI -> request buffer (see #01864)
	ES:DI -> reply buffer (see #01863)
Return: AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see #01839)
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed
SeeAlso: AH=56h,AH=E2h/SF=0Ah,AH=E2h/SF=0Bh,AX=F216h/SF=0Fh

Format of NetWare "Rename Directory" request buffer:
Offset	Size	Description	(Table 01864)
 00h	WORD	length of following data (max 111h)
 02h	BYTE	0Fh (subfunction "Rename Directory")
 03h	BYTE	directory handle
 04h	BYTE	length of directory path (00h-FFh)
 05h  N BYTEs	directory path
	BYTE	length of new directory name (01h-0Eh)
      N BYTEs	new directory name
SeeAlso: #01863
--------N-21E2--SF10-------------------------
INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES (OLD)
	AH = E2h subfn 10h
	DS:SI -> request buffer (see #01865)
	ES:DI -> reply buffer (see #01863)
Return: AL = status (00h,C6h) (see #01866)
Desc:	purges files marked for deletion on the file server by the calling
	  workstation
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=13h,AH=41h,AH=E2h/SF=11h,AH=E3h/SF=CEh,AX=F244h,AX=F216h/SF=10h

Format of NetWare "Purge Erased Files" request buffer:
Offset	Size	Description	(Table 01865)
 00h	WORD	0001h (length of following data)
 02h	BYTE	10h (subfunction "Purge Erased Files")
SeeAlso: #01863
--------N-21E2--SF11-------------------------
INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE (OLD)
	AH = E2h subfn 11h
	DS:SI -> request buffer (see #01867)
	ES:DI -> reply buffer (see #01868)
Return: AL = status (00h,98h,FFh) (see #01866)
Desc:	restores one file marked for deletion which has not yet been purged
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=13h,AH=41h,AH=E2h/SF=10h,AH=E3h/SF=CEh,AX=F244h

(Table 01866)
Values for NetWare function status:
 00h	successful
 98h	nonexistent volume
 9Ch	invalid path
 C6h	no console rights
 FFh	no more erased files
SeeAlso: #01839,#01899

Format of NetWare "Restore Erased File" request buffer:
Offset	Size	Description	(Table 01867)
 00h	WORD	length of following data (max 13h)
 02h	BYTE	11h (subfunction "Restore Erased File")
 03h	BYTE	directory handle or 00h
 04h	BYTE	length of volume name
 05h  N BYTEs	volume name (including colon)
Note:	if both a directory handle and a volume name are specified, the volume
	  name overrides the handle
SeeAlso: #01868,#02116

Format of NetWare "Restore Erased File" reply buffer:
Offset	Size	Description	(Table 01868)
 00h	WORD	(call) 001Eh (size of following results buffer)
 02h 15 BYTEs	ASCIZ name of erased file
 11h 15 BYTEs	ASCIZ name under which file was restored
SeeAlso: #01867,#02116
--------N-21E2--SF12-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE
	AH = E2h subfn 12h
	DS:SI -> request buffer (see #01869)
	ES:DI -> reply buffer (see #01870)
Return: AL = status (00h,98h,9Ch) (see #01866)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=13h,AH=E2h/SF=14h,AX=F216h/SF=12h

Format of NetWare "Allocate Permanent Directory Handle" request buffer:
Offset	Size	Description	(Table 01869)
 00h	WORD	length of following data (max 103h)
 02h	BYTE	12h (subfunction "Allocate Permanent Directory Handle")
 03h	BYTE	directory handle
 04h	BYTE	drive ('A'-'Z')
 05h	BYTE	length of directory path
 06h  N BYTEs	directory path
SeeAlso: #01870,#01871,#02118

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01870)
 00h	WORD	(call) 0002h (size of following results buffer)
 02h	BYTE	new directory handle
 03h	BYTE	effective directory rights (see #01849)
SeeAlso: #01869,#02118
--------N-21E2--SF13-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE
	AH = E2h subfn 13h
	DS:SI -> request buffer (see #01871)
	ES:DI -> reply buffer (see #01870)
Return: AL = status (00h,98h,9Ch) (see #01866)
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	this call is the same as AH=E2h/SF=12h except that the directory handle
	  will be automatically deallocated when the calling application
	  executes an End of Job call (AH=D6h) or terminates
SeeAlso: AH=D6h,AH=E2h/SF=00h,AH=E2h/SF=12h,AH=E2h/SF=14h,AH=E2h/SF=16h
SeeAlso: AX=F216h/SF=13h

Format of NetWare "Allocate Temporary Directory Handle" request buffer:
Offset	Size	Description	(Table 01871)
 00h	WORD	length of following data (max 103h)
 02h	BYTE	13h (subfunction "Allocate Temporary Directory Handle")
 03h	BYTE	directory handle
 04h	BYTE	drive ('A'-'Z')
 05h	BYTE	length of directory path
 06h  N BYTEs	directory path
SeeAlso: #01869,#01872
--------N-21E2--SF14-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE
	AH = E2h subfn 14h
	DS:SI -> request buffer (see #01872)
	ES:DI -> reply buffer (see #01873)
Return: AL = status (00h,9Bh) (see #01839)
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=13h,AX=F216h/SF=14h

Format of NetWare "Deallocate Directory Handle" request buffer:
Offset	Size	Description	(Table 01872)
 00h	WORD	0002h (length of following data)
 02h	BYTE	14h (subfunction "Deallocate Directory Handle")
 03h	BYTE	directory handle
SeeAlso: #01873

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01873)
 00h	WORD	(call) 0000h (no returned data)
SeeAlso: #01872
--------N-21E2--SF15-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE
	AH = E2h subfn 15h
	DS:SI -> request buffer (see #01874)
	ES:DI -> reply buffer (see #01875)
Return: AL = status
	    00h successful
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=06h,AH=E2h/SF=19h,AH=E3h/SF=E9h
SeeAlso: AX=F216h/SF=15h

Format of NetWare "Get Volume Info with Handle" request buffer:
Offset	Size	Description	(Table 01874)
 00h	WORD	0002h (length of following data)
 02h	BYTE	15h (subfunction "Get Volume Info With Handle")
 03h	BYTE	directory handle
SeeAlso: #01875,#02119

Format of NetWare "Get Volume Info with Handle" reply buffer:
Offset	Size	Description	(Table 01875)
 00h	WORD	(call) 001Ch (length of following results buffer)
 02h	WORD	(big-endian) sectors per block
 04h	WORD	(big-endian) total blocks on volume
 06h	WORD	(big-endian) blocks available on volume
 08h	WORD	(big-endian) total directory slots
 0Ah	WORD	(big-endian) directory slots available
 0Ch 16 BYTEs	NUL-padded volume name
 1Ch	WORD	(big-endian) flag: volume removable if nonzero
SeeAlso: #01874,#02119
--------N-21E2--SF16-------------------------
INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE
	AH = E2h subfn 16h
	DS:SI -> request buffer (see #01876)
	ES:DI -> reply buffer (see #01873)
Return: AL = status
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX,
	  but is not described in _NetWare_System_Calls--DOS_
SeeAlso: AH=E2h/SF=13h,AH=E2h/SF=14h,AX=F216h/SF=16h

Format of NetWare "Alloc Special Temporary Directory Handle" request buffer:
Offset	Size	Description	(Table 01876)
 00h	WORD	length of following data
 02h	BYTE	16h (subfunction "Allocate Special Temporary Directory Handle")
 03h	BYTE	source directory handle
 04h	BYTE	drive name ('A'-'Z')
 05h	BYTE	path length
 06h  N BYTEs	directory path
SeeAlso: #01873
--------N-21E2--SF17-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE
	AH = E2h subfn 17h
	DS:SI -> request buffer (see #01877)
	ES:DI -> reply buffer (see #01878)
Return: AL = status
	    00h successful
	    else network error code
Note:	this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h,AX=F216h/SF=17h

Format of NetWare "Save Directory Handle" request buffer:
Offset	Size	Description	(Table 01877)
 00h	WORD	0002h (length of following data)
 02h	BYTE	17h (subfunction "Save Directory Handle")
 03h	BYTE	directory handle
SeeAlso: #01878,#01879

Format of NetWare "Save Directory Handle" reply buffer:
Offset	Size	Description	(Table 01878)
 00h	WORD	(call) 0010h (length of following results buffer)
 02h 16 BYTEs	save buffer
SeeAlso: #01877,#01880
--------N-21E2--SF18-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE
	AH = E2h subfn 18h
	DS:SI -> request buffer (see #01879)
	ES:DI -> reply buffer (see #01880)
Return: AL = status
	    00h successful
	    else network error code
Desc:	restore a previously saved directory handle to reproduce an executing
	  environment, possibly on a different execution site
Note:	this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h,AX=F216h/SF=18h

Format of NetWare "Restore Directory Handle" request buffer:
Offset	Size	Description	(Table 01879)
 00h	WORD	0011h (length of following data)
 02h	BYTE	18h (subfunction "Restore Directory Handle")
 03h 16 BYTEs	save buffer
SeeAlso: #01877,#01880

Format of NetWare "Restore Directory Handle" reply buffer:
Offset	Size	Description	(Table 01880)
 00h	WORD	(call) 0002h (length of following results buffer)
 02h	BYTE	new directory handle
 03h	BYTE	effective rights (see #01849)
SeeAlso: #01879
--------N-21E2--SF19-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION
	AH = E2h subfn 19h
	DS:SI -> request buffer (see #01881)
	ES:DI -> reply buffer (see #01882)
Return: AL = status (00h,9Bh,9Ch) (see #01839)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=0Fh,AX=F216h/SF=19h

Format of NetWare "Set Directory Information" request buffer:
Offset	Size	Description	(Table 01881)
 00h	WORD	length of following data (max 10Bh)
 02h	BYTE	19h (subfunction "Set Directory Information")
 03h	BYTE	directory handle
 04h	DWORD	(big-endian) date and time of creation
 08h	DWORD	(big-endian) object ID of owner
 0Ch	BYTE	maximum directory rights (see #01849)
 0Dh	BYTE	length of directory path
 0Eh  N BYTEs	directory path
SeeAlso: #01882

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01882)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01881
--------N-21E2--SF1A-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY
	AH = E2h subfn 1Ah
	DS:SI -> request buffer (see #01883)
	ES:DI -> reply buffer (see #01884)
Return: AL = status
	    00h successful
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=06h,AH=E3h/SF=D7h,AX=F216h/SF=1Ah

Format of NetWare "Get Path from Directory Entry" request buffer:
Offset	Size	Description	(Table 01883)
 00h	WORD	0004h (length of following data)
 02h	BYTE	1Ah (subfunction "Get Path From Directory Entry")
 03h	BYTE	volume number (00h-1Fh)
 04h	WORD	(big-endian) directory entry number
SeeAlso: #01884,#02122

Format of NetWare "Get Path from Directory Entry" reply buffer:
Offset	Size	Description	(Table 01884)
 00h	WORD	(call) size of following results record (max 200h)
 02h 256 BYTEs	path
SeeAlso: #01883,#02122
--------E-21E3-------------------------------
INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT
	AH = E3h
	AL = interrupt number
	???
Return: ???
Note:	protected mode only???
SeeAlso: AH=E1h"OS/286",INT 31/AX=0300h
--------N-21E3-------------------------------
INT 21 - Novell NetWare - CONNECTION CONTROL
	AH = E3h
	DS:SI -> request buffer (see #01885)
	ES:DI -> reply buffer (see #01886)
Return: AL = status
	    00h successful
	    else error code
Note:	supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h

Format of NetWare request buffer:
Offset	Size	Description	(Table 01885)
 00h	WORD	length of following data
 02h	BYTE	subfunction number (see also AH=E3h/SF=01h,AH=E3h/SF=02h)
		00h login
		03h map object to number
		04h map number to object
		05h get station's logged information
		06h get station's root mask (obsolete)
		07h map group name to number
		08h map number to group name
		09h get memberset M of group G
	var	depends on subfunction
Notes:	the above subfunctions are not described in _NetWare_System_Calls--DOS_
	see separate entries below for other subfunctions
SeeAlso: #01886,#01887,#01890

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01886)
 00h	WORD	(call) length of following buffer space for results
	var	depends on subfunction
SeeAlso: #01885

Format of NetWare object property:
Offset	Size	Description	(Table 01887)
 00h 1-16 BYTEs property name (see also #01888)
  N	BYTE	flags
		bit 0: property is dynamic
		bit 1: property is a set rather than an item
 N+1	BYTE	security levels (see #01889)
	???

(Table 01888)
Values for names of well-known NetWare properties:
 ACCOUNT_BALANCE
 ACCOUNT_SERVERS
 GROUP_MEMBERS
 GROUPS_I'M_IN
 IDENTIFICATION		user's name
 LOGIN_CONTROL
 NET_ADDRESS
 OPERATORS
 PASSWORD
 SECURITY_EQUALS

(Table 01889)
Values for NetWare security levels:
 00h	"anyone" everyone may access
 01h	"logged" only logged-in clients may access
 02h	"object" only clients logged-in with object's name, type, and password
 03h	"supervisor" only clients logged-in with supervisor privileges
 04h	"NetWare" only NetWare may access
Note:	the above values are stored in a nybble; the high half-byte is write
	  access and the low half-byte is read access

(Table 01890)
Values for NetWare object type:
 0000h	unknown
 0001h	user
 0002h	user group
 0003h	print queue / print server
 0004h	file server
 0005h	job server
 0006h	gateway
 0007h	print server
 0008h	archive queue
 0009h	archive server
 000Ah	job queue
 000Bh	administration
 0021h	NAS SNA gateway
 0024h	remote bridge server???
 0026h	remote bridge server
 0027h	TCPIP gateway
 002Dh	time synchronization server
 002Eh	archive server dynamic SAP
 0047h	advertising print server
 0053h	print queue uwer
 0048h-8000h reserved
 FFFFh	wild (used only for finding objects)
--------T-21E3-------------------------------
INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
	AH = E3h
	AL = character
Return: AL = status
	    00h successful
	    01h buffer full (128 characters)
SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS"
SeeAlso: AH=F3h"DoubleDOS"
--------N-21E3--SF01-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD)
	AH = E3h subfn 01h
	DS:SI -> request buffer (see #01891)
	ES:DI -> reply buffer (see #01895)
Return: AL = status
	    00h successful
	    else error code
Note:	supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h

Format of NetWare "Change User Password (old)" request packet:
Offset	Size	Description	(Table 01891)
 00h	WORD	length of following data
 02h	BYTE	01h (subfunction "Change User Password (old)")
 03h	BYTE	length of user name
 04h  N BYTEs	user name
	BYTE	length of old password
      N BYTEs	old password
	BYTE	length of new password
      N BYTEs	new password
SeeAlso: #01895
--------N-21E3--SF02-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - CHANGE USER PASSWORD (OLD)
	AH = E3h subfn 02h
	DS:SI -> request buffer (see #01892)
	ES:DI -> reply buffer (see #01893)
Return: AL = status
	    00h successful
	    else error code
Note:	supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
SeeAlso: AH=E3h/SF=01h,AH=E3h/SF=03h,AH=E3h/SF=0Ah

Format of NetWare "Get User Connection List (old)" request packet:
Offset	Size	Description	(Table 01892)
 00h	WORD	length of following data
 02h	BYTE	02h (subfunction "Get User Connection List (old)")
 03h	BYTE	length of user name
 04h  N BYTEs	user name
SeeAlso: #01893,#02162

Format of NetWare "Get User Connection List (old)" reply packet:
Offset	Size	Description	(Table 01893)
 00h	WORD	(call) length of following buffer
 02h	BYTE	length of connection list
 03h	BYTE	number of bytes in connection list
 04h  N BYTEs	list of connection numbers in use by user
SeeAlso: #01892,#02162
--------N-21E3--SF03-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - MAP OBJECT TO NUMBER (OLD)
	AH = E3h subfn 03h
	DS:SI -> request buffer
	ES:DI -> reply buffer
Return: AL = status
	    00h successful
	    else error code
Note:	supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
SeeAlso: AH=E3h/SF=01h,AH=E3h/SF=02h,AH=E3h/SF=0Ah
--------N-21E3--SF0A-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA
	AH = E3h subfn 0Ah
	DS:SI -> request buffer (see #01894)
	ES:DI -> reply buffer (see #01895)
Return: AL = status
	    00h successful
Desc:	change the login directory for the calling workstation
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=D7h,AH=E3h/SF=14h

Format of NetWare "Enter Login Area" request buffer:
Offset	Size	Description	(Table 01894)
 00h	WORD	length of following data (max 102h)
 02h	BYTE	0Ah (subfunction "Enter Login Area")
 03h	BYTE	number of local drives
 04h	BYTE	length of subdirectory name (00h-FFh)
 05h  N BYTEs	name of subdirectory under SYS:LOGIN where to find the login
		  utility
SeeAlso: #01895

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01895)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01891,#01894,#01898
--------N-21E3--SF0C-------------------------
INT 21 U - Novell NetWare - VERIFY NETWORK SERIAL NUMBER
	AH = E3h subfn 0Ch
	DS:SI -> request buffer (see #01896)
	ES:DI -> reply buffer (see #01897)
Return: AL = status
	    00h successful
Note:	if the network serial number to be verified is correct, the reply
	  buffer will contain the corresponding application number
SeeAlso: AH=E3h/SF=12h,AX=F217h/SF=0Ch

Format of NetWare "Verify Network Serial Number" request buffer:
Offset	Size	Description	(Table 01896)
 00h	WORD	0005h (length of following data)
 02h	BYTE	0Ch (subfunction "Verify Network Serial Number")
 03h	DWORD	(big-endian) network serial number to verify
SeeAlso: #01897,#02163

Format of NetWare "Verify Network Serial Number" reply buffer:
Offset	Size	Description	(Table 01897)
 00h	WORD	(call) 0002h (size of following results buffer)
 02h	WORD	(big-endian) application number
SeeAlso: #01896,#02163
--------N-21E3--SF0D-------------------------
INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE
	AH = E3h subfn 0Dh
	DS:SI -> request buffer (see #01898)
	ES:DI -> reply buffer (see #01895)
Return: AL = status
	    00h successful
Desc:	append a line to the default file server's NET$LOG.MSG file
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E1h/SF=09h

Format of NetWare "Log Network Message" request buffer:
Offset	Size	Description	(Table 01898)
 00h	WORD	length of following data (max 52h)
 02h	BYTE	0Dh (subfunction "Log Network Message")
 03h	BYTE	length of message (01h-50h)
 04h  N BYTEs	message (no control characters or characters > 7Eh)
SeeAlso: #01895
--------N-21E3--SF0E-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION
	AH = E3h subfn 0Eh
	DS:SI -> request buffer (see #01900)
	ES:DI -> reply buffer (see #01901)
Return: AL = status (00h,98h,F2h) (see #01899)
Notes:	this function is supported by Advanced NetWare 2.1+
	the caller must have bindery object read privileges
SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
SeeAlso: AX=F217h/SF=0Eh

(Table 01899)
Values for NetWare function status:
 00h	successful
 98h	nonexistent volume
 F2h	not permitted to read object
SeeAlso: #01866,#01902

Format of NetWare "Get Disk Utilization" request buffer:
Offset	Size	Description	(Table 01900)
 00h	WORD	0005h (length of following data)
 02h	BYTE	0Eh (subfunction "Get Disk Utilization")
 03h	BYTE	volume number (00h-1Fh)
 04h	DWORD	(big-endian) object ID
SeeAlso: #01901,#02164

Format of NetWare "Get Disk Utilization" reply buffer:
Offset	Size	Description	(Table 01901)
 00h	WORD	(call) 000Bh (size of following results buffer)
 02h	BYTE	volume number (00h-1Fh)
 03h	DWORD	(big-endian) object ID
 07h	WORD	(big-endian) directories used by object
 09h	WORD	(big-endian) files created by object
 0Bh	WORD	(big-endian) disk blocks used by object-created files
SeeAlso: #01900,#02164
--------N-21E3--SF0F-------------------------
INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION
	AH = E3h subfn 0Fh
	DS:SI -> request buffer (see #01903)
	ES:DI -> reply buffer (see #01904)
Return: AL = status (see #01902)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=B6h,AH=E3h/SF=10h,AX=F217h/SF=0Fh

(Table 01902)
Values for NetWare function status:
 00h	successful
 89h	not permitted to search directory
 FFh	no more matching files
SeeAlso: #01899,#01920

Format of NetWare "Scan File Information" request buffer:
Offset	Size	Description	(Table 01903)
 00h	WORD	length of following data (max 105h)
 02h	BYTE	0Fh (subfunction "Scan File Information")
 03h	WORD	(big-endian) sequence number
		FFFFh on first call
 05h	BYTE	directory handle or 00h
 06h	BYTE	search attributes (see #01420 at AX=4301h)
 07h	BYTE	length of filespec
 08h  N BYTEs	ASCIZ uppercase filespec
SeeAlso: #01904,#02165

Format of NetWare "Scan File Information" reply buffer:
Offset	Size	Description	(Table 01904)
 00h	WORD	(call) 005Eh (size of following results buffer)
 02h	WORD	next sequence number (place in request buffer for next call)
 04h 14 BYTEs	ASCIZ filename
 12h	BYTE	file attributes (see #01420 at AX=4301h)
 13h	BYTE	extended file attributes (see #01804 at AH=B6h)
 14h	DWORD	(big-endian) file size in bytes
 18h	WORD	(big-endian) file's creation date (see #01666 at AX=5700h)
 1Ah	WORD	(big-endian) date of last access (see #01665 at AX=5700h)
 1Ch	DWORD	(big-endian) date and time of last update (see #01846)
 20h	DWORD	(big-endian) object ID of owner
 24h	DWORD	(big-endian) date and time last archived (see #01846)
 28h 55 BYTEs	reserved
Note:	the official documentation erroneously lists the field at offset 04h as
	  15 bytes and thus shifts the remaining fields by one byte
SeeAlso: #01903,#02165
--------N-21E3--SF10-------------------------
INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION
	AH = E3h subfn 10h
	DS:SI -> request buffer (see #01905)
	ES:DI -> reply buffer (see #01906)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
	the caller must have modify privileges on the directory containing the
	  file
SeeAlso: AH=B6h,AH=E3h/SF=0Fh,AX=F217h/SF=10h

Format of NetWare "Set File Information" request buffer:
Offset	Size	Description	(Table 01905)
 00h	WORD	length of following data (max 151h)
 02h	BYTE	10h (subfunction "Set File Information")
 03h	BYTE	file attributes (see #01420 at AX=4301h)
 04h	BYTE	extended file attributes (see #01804 at AH=B6h)
 05h  4 BYTEs	reserved
 09h	WORD	(big-endian) file's creation date (see #01666 at AX=5700h)
 0Bh	WORD	(big-endian) date of last access (see #01665 at AX=5700h)
 0Dh	DWORD	(big-endian) date and time of last update (see #01846)
 11h	DWORD	(big-endian) object ID of owner
 15h	DWORD	(big-endian) date and time last archived (see #01846)
 19h 56 BYTEs	reserved
 51h	BYTE	directory handle or 00h
 52h	BYTE	search attributes (see #01420 at AX=4301h)
 53h	BYTE	length of filename
 54h  N BYTEs	filename
SeeAlso: #01906

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01906)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01905
--------N-21E3--SF11-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION
	AH = E3h subfn 11h
	DS:SI -> request buffer (see #01907)
	ES:DI -> reply buffer (see #01908)
Return: AL = status
	    00h successful
Desc:	determine the version of software installed on the file server and
	  how it is configured
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=12h,AH=E3h/SF=CDh,AH=E3h/SF=D3h,AH=E3h/SF=E7h
SeeAlso: AH=E7h"Novell",AX=F217h/SF=11h

Format of NetWare "Get File Server Information" request buffer:
Offset	Size	Description	(Table 01907)
 00h	WORD	0001h (length of following data)
 02h	BYTE	11h (subfunction "Get File Server Information")
SeeAlso: #01908,#02166 at AX=F217h/SF=11h

Format of NetWare "Get File Server Information" reply buffer:
Offset	Size	Description	(Table 01908)
 00h	WORD	(call) 0080h (size of following results buffer)
 02h 48 BYTEs	server's name
 32h	BYTE	NetWare version
 33h	BYTE	NetWare subversion (0-99)
 34h	WORD	(big-endian) number of connections supported
		NetWare 4.01 reportedly returns maximum simulataneously-used
		  connections
 36h	WORD	(big-endian) number of connections in use
 38h	WORD	(big-endian) maximum connected volumes
---Advanced NetWare 2.1+ ---
 3Ah	BYTE	operating system revision number
 3Bh	BYTE	fault tolerance (SFT) level
 3Ch	BYTE	TTS level
 3Dh	WORD	(big-endian) maximum simultaneously-used connections
		NetWare 4.01 reportedly returns number of connections in use
 3Fh	BYTE	accounting version
 40h	BYTE	VAP version
 41h	BYTE	queueing version
 42h	BYTE	print server version
 43h	BYTE	virtual console version
 44h	BYTE	security restrictions level
 45h	BYTE	internetwork bridge version
 46h 60 BYTEs	reserved
SeeAlso: #01907,#02166
--------N-21E3--SF12-------------------------
INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
	AH = E3h subfn 12h
	AL = 00h
	BX = CX = DX = 0000h
	DS:SI -> request buffer (see #01909)
	ES:DI -> reply buffer (see #01910)
Return: AL = status
	    00h successful
Desc:	return the serial number and application number for the software
	  installed on the file server
Notes:	this function is supported by Advanced NetWare 2.1+
	reportedly, the workstation crashes if AL,BX,CX, and DX are not all
	  zero
SeeAlso: AH=E3h/SF=0Ch,AH=E3h/SF=11h,AX=F217h/SF=12h

Format of NetWare "Get Serial Number" request buffer:
offset	 size	description	(Table 01909)
 00h	 WORD	0001h (length of following data)
 02h	 BYTE	12h (subfunction "Get Serial Number")
SeeAlso: #01910,#02167

Format of NetWare "Get Serial Number" reply buffer:
offset	 size	description	(Table 01910)
 00h	 WORD	(call) 0006h (size of following results buffer)
 02h   4 BYTEs	(big-endian) NetWare server serial number
 06h   2 BYTEs	(big-endian) NetWare application serial number
SeeAlso: #01909,#02167
--------N-21E3--SF13-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS (OLD)
	AH = E3h subfn 13h
	DS:SI -> request buffer (see #01911)
	ES:DI -> reply buffer (see #01912)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AH=EEh"NetWare",AX=F217h/SF=13h

Format of NetWare "Get Internet Address (old)" request buffer:
Offset	Size	Description	(Table 01911)
 00h	WORD	0002h (length of following data)
 02h	BYTE	13h (subfunction "Get Internet Address")
 03h	BYTE	logical connection number (01h-64h)
SeeAlso: #01912,#02168

Format of NetWare "Get Internet Address (old)" reply buffer:
Offset	Size	Description	(Table 01912)
 00h	WORD	(call) 000Ch (length of following results buffer)
 02h  4 BYTEs	network number
 06h  6 BYTEs	physical node address
 0Ch  2 BYTEs	socket number
SeeAlso: #01911,#02168 at AX=F217h/SF=13h
--------N-21E3--SF14-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER
	AH = E3h subfn 14h
	DS:SI -> request buffer (see #01913)
	ES:DI -> reply buffer (see #01914)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=D7h"NetWare",AH=F1h"NetWare",AX=F217h/SF=14h

Format of NetWare "Login to File Server" request buffer:
Offset	Size	Description	(Table 01913)
 00h	WORD	length of following data (max B3h)
 02h	BYTE	14h (subfunction "Login To File Server")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
	BYTE	length of password
      N BYTEs	password
SeeAlso: #01914

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01914)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01913
--------N-21E3--SF15-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION LIST(OLD)
	AH = E3h subfn 15h
	DS:SI -> request buffer (see #01915)
	ES:DI -> reply buffer (see #01916)
Return: AL = status
	    00h successful
Desc:	this function retrieves a list indicating the connection numbers under
	  which a bindery object is logged into the default file server
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AX=F217h/SF=15h

Format of NetWare "Get Object Connection Numbers" request buffer:
Offset	Size	Description	(Table 01915)
 00h	WORD	length of following data (max 33h)
 02h	BYTE	15h (subfunction "Get Object Connection Numbers")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
SeeAlso: #01916,#02169

Format of NetWare "Get Object Connection Numbers" reply buffer:
Offset	Size	Description	(Table 01916)
 00h	WORD	(call) length of following results buffer (max 65h)
 02h	BYTE	number of connections
 03h  N BYTEs	connection list
SeeAlso: #01915,#02169
--------N-21E3--SF16-------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION
	AH = E3h subfn 16h
	DS:SI -> request buffer (see #01917)
	ES:DI -> reply buffer (see #01918)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=D7h,AH=DCh"NetWare",AH=E3h/SF=14h

Format of NetWare "Get Connection Information" request buffer:
Offset	Size	Description	(Table 01917)
 00h	WORD	0002h (length of following data)
 02h	BYTE	16h (subfunction "Get Connection Information")
 03h	BYTE	logical connection number (01h-64h)

Format of NetWare "Get Connection Information" reply buffer:
Offset	Size	Description	(Table 01918)
 00h	WORD	(call) 003Eh (length of following results buffer)
 02h	DWORD	(big-endian) object ID for object logged in on the connection
		00000000h if no object logged in
 06h	WORD	(big-endian) type of object
 08h 48 BYTEs	name of object
 38h  7 BYTEs	login time (see #01919)
Note:	much of the Novell documentation incorrectly states the reply buffer
	  length as 3Fh instead of 40h, which corresponds to a results length
	  of 3Dh (61) bytes instead of the correct 3Eh (62) bytes

Format of NetWare login time:
Offset	Size	Description	(Table 01919)
 00h	BYTE	year (80-99 = 1980-1999, 00-79 = 2000-2079)
 01h	BYTE	month (1-12)
 02h	BYTE	day (1-31)
 03h	BYTE	hour (0-23)
 04h	BYTE	minute (0-59)
 05h	BYTE	second (0-59)
 06h	BYTE	day of week (0 = Sunday)
--------N-21E3--SF32-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT
	AH = E3h subfn 32h
	DS:SI -> request buffer (see #01921)
	ES:DI -> reply buffer (see #01922)
Return: AL = status (see #01920)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=33h,AH=E3h/SF=34h,AH=E3h/SF=38h,AH=E3h/SF=39h
SeeAlso: AX=F217h/SF=32h

(Table 01920)
Values for NetWare function status:
 00h	successful
 96h	server out of memory
 EEh	object already exists
 EFh	invalid name
 F0h	wildcard not allowed
 F1h	invalid bindery security level
 F3h	not permitted to rename object
 F4h	not permitted to delete objects
 F5h	not permitted to create objects
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure
SeeAlso: #01902,#01927

Format of NetWare "Create Bindery Object" request buffer:
Offset	Size	Description	(Table 01921)
 00h	WORD	length of following data (max 35h)
 02h	BYTE	32h (subfunction "Create Bindery Object")
 03h	BYTE	object flag (00h static, 01h dynamic)
 04h	BYTE	object security levels
 05h	WORD	(big-endian) type of object
 07h	BYTE	length of object's name
 08h  N BYTEs	object's name
SeeAlso: #01922

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01922)
 00h	WORD	0000h (no data returned)
SeeAlso: #01921,#01923,#01924
--------N-21E3--SF33-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT
	AH = E3h subfn 33h
	DS:SI -> request buffer (see #01923)
	ES:DI -> reply buffer (see #01922)
Return: AL = status (see #01920)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=34h,AX=F217h/SF=33h

Format of NetWare "Delete Bindery Object" request buffer:
Offset	Size	Description	(Table 01923)
 00h	WORD	length of following data (max 33h)
 02h	BYTE	33h (subfunction "Delete Bindery Object")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
SeeAlso: #01922
--------N-21E3--SF34-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT
	AH = E3h subfn 34h
	DS:SI -> request buffer (see #01924)
	ES:DI -> reply buffer (see #01922)
Return: AL = status (see #01920)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AX=F217h/SF=34h

Format of NetWare "Rename Bindery Object" request buffer:
Offset	Size	Description	(Table 01924)
 00h	WORD	length of following data (max 63h)
 02h	BYTE	34h (subfunction "Rename Bindery Object")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
	BYTE	length of new name (01h-2Fh)
      N BYTEs	new name
SeeAlso: #01922
--------N-21E3--SF35-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID
	AH = E3h subfn 35h
	DS:SI -> request buffer (see #01925)
	ES:DI -> reply buffer (see #01926)
Return: AL = status (00h,96h,FCh,FEh,FFh) (see #01927)
Notes:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
	the requesting workstation must be logged into the file server with
	  read access to the bindery object
SeeAlso: AH=E3h/SF=36h,AH=E3h/SF=44h,AX=F217h/SF=35h

Format of NetWare "Get Bindery Object ID" request buffer:
Offset	Size	Description	(Table 01925)
 00h	WORD	length of following data (max 33h)
 02h	BYTE	35h (subfunction "Get Bindery Object ID")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name
 06h  N BYTEs	object's name
SeeAlso: #01926,#02184

Format of NetWare "Get Bindery Object ID" reply buffer:
Offset	Size	Description	(Table 01926)
 00h	WORD	(call) 0036h (length of following buffer space)
 02h	DWORD	(big-endian) object ID
 06h	WORD	(big-endian) type of object
 08h 48 BYTEs	object name
SeeAlso: #01925,#02184 at AX=F217h/SF=35h
--------N-21E3--SF36-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME
	AH = E3h subfn 36h
	DS:SI -> request buffer (see #01928)
	ES:DI -> reply buffer (see #01929)
Return: AL = status (see #01927)
Notes:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
	the requesting workstation must be logged into the file server with
	  read access to the bindery object
SeeAlso: AH=E3h/SF=35h,AH=E3h/SF=44h,AX=F217h/SF=36h

(Table 01927)
Values for NetWare function status:
 00h	successful
 96h	server out of memory
 EFh	invalid name
 F0h	wildcard not allowed
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure
SeeAlso: #01920,#01933

Format of NetWare "Get Bindery Object Name" request buffer:
Offset	Size	Description	(Table 01928)
 00h	WORD	0005h (length of following data)
 02h	BYTE	36h (subfunction "Get Bindery Object Name")
 03h	DWORD	(big-endian) object ID
SeeAlso: #01929,#02185 at AX=F217h/SF=36h

Format of NetWare "Get Bindery Object Name" reply buffer:
Offset	Size	Description	(Table 01929)
 00h	WORD	(call) 0036h (length of following buffer space)
 02h	DWORD	(big-endian) object ID
 06h	WORD	(big-endian) type of object
 08h 48 BYTEs	object name
SeeAlso: #01928,#02185
--------N-21E3--SF37-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT
	AH = E3h subfn 37h
	DS:SI -> request buffer (see #01930)
	ES:DI -> reply buffer (see #01931)
Return: AL = status (see #01927)
Notes:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
	the requesting workstation must be logged into the file server with
	  read access to the bindery object
SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AH=E3h/SF=38h,AH=E3h/SF=3Ch
SeeAlso: AX=F217h/SF=37h

Format of NetWare "Scan Bindery Object" request buffer:
Offset	Size	Description	(Table 01930)
 00h	WORD	length of following data (max 37h)
 02h	BYTE	37h (subfunction "Scan Bindery Object")
 03h	DWORD	(big-endian) last object ID
 07h	WORD	(big-endian) type of object
 09h	BYTE	length of object's name
 0Ah  N BYTEs	object's name
SeeAlso: #01931,#02186

Format of NetWare "Scan Bindery Object" reply buffer:
Offset	Size	Description	(Table 01931)
 00h	WORD	(call) 0039h (length of following buffer space)
 02h	DWORD	(big-endian) object ID
		FFFFFFFFh for first call
 06h	WORD	(big-endian) type of object
 08h 48 BYTEs	object name (counted string)
 38h	BYTE	object flag (00h static, 01h dynamic)
 39h	BYTE	object's security levels
 3Ah	BYTE	object properties flag (00h no, FFh yes)
SeeAlso: #01930,#02186
--------N-21E3--SF38-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY
	AH = E3h subfn 38h
	DS:SI -> request buffer (see #01932)
	ES:DI -> reply buffer (see #01935)
Return: AL = status (00h,96h,F0h,F1h,FBh,FCh,FEh,FFh) (see #01933)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh,AX=F217h/SF=38h

Format of NetWare "Change Bindery Object Security" request buffer:
Offset	Size	Description	(Table 01932)
 00h	WORD	length of following data (max 34h)
 02h	BYTE	38h (subfunction "Change Bindery Object Security")
 03h	BYTE	new security levels
 04h	WORD	(big-endian) type of object
 06h	BYTE	length of object's name (01h-2Fh)
 07h  N BYTEs	object name
Note:	the object type may not be WILD (FFFFh)
SeeAlso: #01935
--------N-21E3--SF39-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY
	AH = E3h subfn 39h
	DS:SI -> request buffer (see #01934)
	ES:DI -> reply buffer (see #01935)
Return: AL = status (see #01933)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh,AX=F217h/SF=39h

(Table 01933)
Values for NetWare function status:
 00h	successful
 96h	server out of memory
 EDh	property already exists
 EFh	invalid name
 F0h	wildcard not allowed
 F1h	invalid bindery security level
 F6h	not permitted to delete properties
 F7h	not permitted to create properties
 FBh	no such property
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure
SeeAlso: #01927,#01937

Format of NetWare "Create Property" request buffer:
Offset	Size	Description	(Table 01934)
 00h	WORD	length of following data (max 45h)
 02h	BYTE	39h (subfunction "Create Property")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
	BYTE	property flags
	BYTE	property security levels
	BYTE	length of property's name (01h-0Fh)
      N BYTEs	property's name
SeeAlso: #01935

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01935)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01932,#01935,#01936
--------N-21E3--SF3A-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY
	AH = E3h subfn 3Ah
	DS:SI -> request buffer (see #01936)
	ES:DI -> reply buffer (see #01935)
Return: AL = status (see #01933)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=39h,AX=F217h/SF=3Ah

Format of NetWare "Delete Property" request buffer:
Offset	Size	Description	(Table 01936)
 00h	WORD	length of following data (max 43h)
 02h	BYTE	3Ah (subfunction "Delete Property")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object's name
	BYTE	length of property's name (01h-0Fh)
      N BYTEs	property's name
SeeAlso: #01935
--------N-21E3--SF3B-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY
	AH = E3h subfn 3Bh
	DS:SI -> request buffer (see #01938)
	ES:DI -> reply buffer (see #01935)
Return: AL = status (see #01937)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=38h,AX=F217h/SF=3Bh

(Table 01937)
Values for NetWare function status:
 00h	successful
 96h	server out of memory
 F0h	wildcard not allowed
 F1h	invalid bindery security level
 FBh	no such property
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure
SeeAlso: #01933,#01941

Format of NetWare "Change Property Security" request buffer:
Offset	Size	Description	(Table 01938)
 00h	WORD	length of following data (max 44h)
 02h	BYTE	3Bh (subfunction "Change Property Security")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
	BYTE	new property security levels
	BYTE	length of property's name
      N BYTEs	property name
Note:	the object type may not be WILD (FFFFh)
--------N-21E3--SF3C-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY
	AH = E3h subfn 3Ch
	DS:SI -> request buffer (see #01939)
	ES:DI -> reply buffer (see #01940)
Return: AL = status (00h,96h,F1h,FBh,FCh,FEh,FFh) (see #01937)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=37h,AH=E3h/SF=3Bh,AX=F217h/SF=3Ch

Format of NetWare "Scan Property" request buffer:
Offset	Size	Description	(Table 01939)
 00h	WORD	length of following data (max 47h)
 02h	BYTE	3Ch (subfunction "Scan Property")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
	DWORD	(big-endian) sequence number
		FFFFFFFFh for first call
	BYTE	length of property's name (01h-0Fh)
      N BYTEs	property's name
SeeAlso: #01940,#02187

Format of NetWare "Scan Property" reply buffer:
Offset	Size	Description	(Table 01940)
 00h	WORD	(call) 0018h (length of following results buffer)
 02h 16 BYTEs	property name
 12h	BYTE	property flags
 13h	BYTE	property security levels
 14h	DWORD	(big-endian) sequence number
 18h	BYTE	property value flag (00h no, FFh yes)
 19h	BYTE	more properties (00h no, FFh yes)
SeeAlso: #01939,#02187
--------N-21E3--SF3D-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE
	AH = E3h subfn 3Dh
	DS:SI -> request buffer (see #01942)
	ES:DI -> reply buffer (see #01943)
Return: AL = status (see #01941)
Desc:	retrieve one 128-byte segment of the specified property's value
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh,AX=F217h/SF=3Dh

(Table 01941)
Values for NetWare function status:
 00h	successful
 96h	server out of memory
 E8h	not item property
 ECh	no such segment
 F0h	wildcard not allowed
 F1h	invalid bindery security level
 F8h	not permitted to write property
 F9h	not permitted to read property
 FBh	no such property
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure
SeeAlso: #01937,#01946

Format of NetWare "Read Property Value" request buffer:
Offset	Size	Description	(Table 01942)
 00h	WORD	length of following data (max 44h)
 02h	BYTE	3Dh (subfunction "Read Property Value")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
	BYTE	segment number (01h on first call, increment until done)
	BYTE	length of property's name (01h-0Fh)
      N BYTEs	property name
SeeAlso: #01943,#02188

Format of NetWare "Read Property Value" reply buffer:
Offset	Size	Description	(Table 01943)
 00h	WORD	(call) 0082h (length of following results buffer)
 02h 128 BYTEs	property's value
 82h	BYTE	more segments (00h no, FFh yes)
 83h	BYTE	property's flags
SeeAlso: #01942,#02188
--------N-21E3--SF3E-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE
	AH = E3h subfn 3Eh
	DS:SI -> request buffer (see #01944)
	ES:DI -> reply buffer (see #01945)
Return: AL = status (see #01941)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Dh,AX=F217h/SF=3Eh

Format of NetWare "Write Property Value" request buffer:
Offset	Size	Description	(Table 01944)
 00h	WORD	length of following data (max C5h)
 02h	BYTE	3Eh (subfunction "Write Property Value")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
	BYTE	segment number (01h on first call, increment until done)
	BYTE	erase remaining segments (00h no, FFh yes)
	BYTE	length of property's name (01h-0Fh)
      N BYTEs	property name
    128 BYTEs	property value segment
SeeAlso: #01945

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01945)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01944,#01947
--------N-21E3--SF3F-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD
	AH = E3h subfn 3Fh
	DS:SI -> request buffer (see #01947)
	ES:DI -> reply buffer (see #01945)
Return: AL = status (see #01946)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=40h,AX=F217h/SF=3Fh

(Table 01946)
Values for NetWare function status:
 00h	successful
 96h	server out of memory
 F0h	wildcard not allowed
 FBh	no such property
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure: no such object, bad password, no password for object,
	  or invalid old password
SeeAlso: #01941,#01950

Format of NetWare "Verify Bindery Object Password" request buffer:
Offset	Size	Description	(Table 01947)
 00h	WORD	length of following data (max 133h)
 02h	BYTE	3Fh (subfunction "Verify Bindery Object Password")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
	BYTE	length of password (00h-7Fh)
      N BYTEs	password
SeeAlso: #01945
--------N-21E3--SF40-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD
	AH = E3h subfn 40h
	DS:SI -> request buffer (see #01948)
	ES:DI -> reply buffer (see #01949)
Return: AL = status (see #01946)
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=3Fh,AH=E3h/SF=41h,AX=F217h/SF=40h

Format of NetWare "Change Bindery Object Password" request buffer:
Offset	Size	Description	(Table 01948)
 00h	WORD	length of following data (max 133h)
 02h	BYTE	40h (subfunction "Change Bindery Object Password")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name (01h-2Fh)
 06h  N BYTEs	object name
	BYTE	length of old password (00h-7Fh)
      N BYTEs	old password
	BYTE	length of new password (00h-7Fh)
      N BYTEs	new password
SeeAlso: #01949,#02195

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01949)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01948,#01951
--------N-21E3--SF41-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET
	AH = E3h subfn 41h
	DS:SI -> request buffer (see #01951)
	ES:DI -> reply buffer (see #01949)
Return: AL = status (see #01950)
Desc:	add the specified object to an object's group property
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h,AX=F217h/SF=41h

(Table 01950)
Values for NetWare function status:
 00h	successful
 96h	server out of memory
 E9h	member already exists
 EAh	member does not exist
 EBh	not a group property
 F0h	wildcard not allowed
 F8h	can't write property
 F9h	not permitted to read property
 FBh	no such property
 FCh	no such object
 FEh	server bindery locked
 FFh	bindery failure
SeeAlso: #01946,#01961

Format of NetWare "Add Bindery Object to Set" request buffer:
Offset	Size	Description	(Table 01951)
 00h	WORD	length of following data (max 75h)
 02h	BYTE	41h (subfunction "Add Bindery Object to Set")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name
 06h  N BYTEs	object name
	BYTE	length of property name (01h-0Fh)
      N BYTEs	property name
	WORD	(big-endian) type of member object
	BYTE	length of member object's name
      N BYTEs	member object's name
SeeAlso: #01949
--------N-21E3--SF42-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET
	AH = E3h subfn 42h
	DS:SI -> request buffer (see #01952)
	ES:DI -> reply buffer (see #01953)
Return: AL = status (see #01950)
Desc:	delete the specified object from a set property
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h,AX=F217h/SF=42h

Format of NetWare "Delete Bindery Object from Set" request buffer:
Offset	Size	Description	(Table 01952)
 00h	WORD	length of following data (max 75h)
 02h	BYTE	42h (subfunction "Delete Bindery Object from Set")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name
 06h  N BYTEs	object name
	BYTE	length of property name (01h-0Fh)
      N BYTEs	property name
	WORD	(big-endian) type of member object
	BYTE	length of member object's name
      N BYTEs	member object's name
SeeAlso: #01953

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01953)
 00h	WORD	(call) 0000h (no data returned)
SeeAlso: #01952,#01954,#01955,#01956
--------N-21E3--SF43-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET
	AH = E3h subfn 43h
	DS:SI -> request buffer (see #01954)
	ES:DI -> reply buffer (see #01953)
Return: AL = status (see #01950)
Desc:	determine whether the specified object is a member of the given set
	  property
Notes:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
	the caller must have read access to the property
SeeAlso: AH=E3h/SF=41h,AH=E3h/SF=42h,AX=F217h/SF=43h

Format of NetWare "Is Bindery Object in Set?" request buffer:
Offset	Size	Description	(Table 01954)
 00h	WORD	length of following data (max 75h)
 02h	BYTE	43h (subfunction "Is Bindery Object In Set")
 03h	WORD	(big-endian) type of object
 05h	BYTE	length of object's name
 06h  N BYTEs	object's name
	BYTE	length of property's name
      N BYTEs	property's name
	WORD	(big-endian) type of member object
	BYTE	length of member object's name
      N BYTEs	member object's name
SeeAlso: #01953
--------N-21E3--SF44-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY
	AH = E3h subfn 44h
	DS:SI -> request buffer (see #01955)
	ES:DI -> reply buffer (see #01953)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E3h/SF=45h,AX=F217h/SF=44h

Format of NetWare "Close Bindery" request buffer:
Offset	Size	Description	(Table 01955)
 00h	WORD	0001h (length of following data)
 02h	BYTE	44h (subfunction "Close Bindery")
SeeAlso: #01953,#01956
--------N-21E3--SF45-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY
	AH = E3h subfn 45h
	DS:SI -> request buffer (see #01956)
	ES:DI -> reply buffer (see #01953)
Return: AL = status
	    00h successful
Notes:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
	the bindery may only be opened by the supervisor or an object with
	  equivalent privileges
SeeAlso: AH=E3h/SF=44h,AX=F217h/SF=45h

Format of NetWare "Open Bindery" request buffer:
Offset	Size	Description	(Table 01956)
 00h	WORD	0001h (length of following data)
 02h	BYTE	45h (subfunction "Open Bindery")
SeeAlso: #01953,#01955
--------N-21E3--SF46-------------------------
INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL
	AH = E3h subfn 46h
	DS:SI -> request buffer (see #01957)
	ES:DI -> reply buffer (see #01958)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AX=F217h/SF=46h

Format of NetWare "Get Bindery Access Level" request buffer:
Offset	Size	Description	(Table 01957)
 00h	WORD	0001h (length of following data)
 02h	BYTE	46h (subfunction "Get Bindery Access Level")
SeeAlso: #01958,#02189

Format of NetWare "Get Bindery Access Level" reply buffer:
Offset	Size	Description	(Table 01958)
 00h	WORD	0005h (length of following buffer)
 02h	BYTE	security levels
 03h	DWORD	(big-endian) object ID
SeeAlso: #01957,#02189
--------N-21E3--SF47-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS
	AH = E3h subfn 47h
	DS:SI -> request buffer (see #01959)
	ES:DI -> reply buffer (see #01960)
Return: AL = status (00h,96h,F0h,F1h,FCh,FEh,FFh) (see #01961)
Desc:	iterate through the directories to which an object is a trustee
Note:	this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AX=F217h/SF=47h

Format of NetWare "Scan Bindery Object Trustee Paths" request buffer:
Offset	Size	Description	(Table 01959)
 00h	WORD	0008h (length of following data)
 02h	BYTE	47h (subfunction "Scan Bindery Object Trustee Paths")
 03h	BYTE	volume number (00h-1Fh)
 04h	WORD	(big-endian) last sequence number (FFFFh on first call)
 06h	DWORD	(big-endian) object ID
SeeAlso: #01960,#02190

Format of NetWare "Scan Bindery Object Trustee Paths" reply buffer:
Offset	Size	Description	(Table 01960)
 00h	WORD	(call) length of following results buffer (max 107h)
 02h	WORD	(big-endian) next sequence number
 04h	DWORD	(big-endian) object ID
 08h	BYTE	trustee directory rights (see #01849 at AH=E2h/SF=03h)
 09h	BYTE	length of trustee path
 0Ah  N BYTEs	trustee path
SeeAlso: #01959,#02190
--------N-21E3--SF64-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE
	AH = E3h subfn 64h
	DS:SI -> request buffer (see #01962)
	ES:DI -> reply buffer (see #01963)
Return: AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh)
	      (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on a workstation with supervisor privileges
SeeAlso: AH=E3h/SF=65h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Bh
SeeAlso: AX=F217h/SF=64h

(Table 01961)
Values for NetWare function status:
 00h (0)	successful
 96h (150)	server out of memory
 99h (153)	directory full
 9Bh (155)	invalid directory handle
 9Ch (156)	invalid path
 D0h (208)	queue error
 D1h (209)	no such queue
 D2h (210)	no server for queue
 D3h (211)	no queue rights
 D4h (212)	queue full
 D5h (213)	no queue job
 D6h (214)	no job rights
 D7h (215)	queue servicing error
 D8h (216)	queue not active
 D9h (217)	station is not a server
 DAh (218)	queue halted
 DBh (219)	too many queue servers
 EDh (237)	property already exists
 EEh (238)	object already exists
 EFh (239)	invalid name
 F0h (240)	wildcard not allowed
 F1h (241)	invalid bindery security level
 F5h (245)	not permitted to create object
 F7h (247)	not permitted to create property
 FCh (252)	no such object
 FEh (254)	server bindery locked
 FFh (255)	bindery failure
SeeAlso: #01950,#02002,#01680,#02860 at INT 2F/AX=7A20h/BX=0000h

Format of NetWare "Create Queue" request buffer:
Offset	Size	Description	(Table 01962)
 00h	WORD	length of following data (max ABh)
 02h	BYTE	64h (subfunction "Create Queue")
 03h	WORD	(big-endian) queue type
 05h	BYTE	length of queue's name (01h-2Fh)
 06h  N BYTEs	queue's name
	BYTE	directory handle or 00h
	BYTE	length of path name (01h-76h)
      N BYTEs	path name of directory in which to create queue subdirectory
SeeAlso: #01963,#02198

Format of NetWare "Create Queue" reply buffer:
Offset	Size	Description	(Table 01963)
 00h	WORD	(call) 0004h (size of following results buffer)
 02h	DWORD	(big-endian) object ID of queue
SeeAlso: #01962,#02198
--------N-21E3--SF65-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE
	AH = E3h subfn 65h
	DS:SI -> request buffer (see #01964)
	ES:DI -> reply buffer (see #01969)
Return: AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h)
	    FFh hardware failure
Desc:	abort all active jobs, detach all job servers, remove all job entries,
	  delete all job files, remove the queue object and its properties
	  from the bindery, and delete the queue's subdirectory
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must have SUPERVISOR privileges
SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=70h
SeeAlso: AX=F217h/SF=65h

Format of NetWare "Destroy Queue" request buffer:
Offset	Size	Description	(Table 01964)
 00h	WORD	0005h (length of following data)
 02h	BYTE	65h (subfunction "Destroy Queue")
 03h	DWORD	(big-endian) object ID of queue
SeeAlso: #01969
--------N-21E3--SF66-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS (OLD)
	AH = E3h subfn 66h
	DS:SI -> request buffer (see #01965)
	ES:DI -> reply buffer (see #01966)
Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on a workstation which is security-equivalent to a
	  member of the queue's Q_USERS or Q_OPERATORS properties
SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=67h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
SeeAlso: AX=F217h/SF=66h

Format of NetWare "Read Queue Current Status (old)" request buffer:
Offset	Size	Description	(Table 01965)
 00h	WORD	0005h (length of following data)
 02h	BYTE	66h (subfunction "Read Queue Current Status")
 03h	DWORD	(big-endian) object ID of queue
SeeAlso: #01966,#02199 at AX=F217h/SF=66h

Format of NetWare "Read Queue Current Status (old)" reply buffer:
Offset	Size	Description	(Table 01966)
 00h	WORD	(call) 0085h (size of following results)
 02h	DWORD	(big-endian) object ID of queue
 06h	BYTE	status of queue (see #01967)
 07h	BYTE	number of jobs in queue (00h-FAh)
 08h	BYTE	number of servers attached to queue (00h-19h)
 09h 25 DWORDs	list of object IDs of attached servers
 6Dh 25 BYTEs	list of attached servers' stations
 86h	BYTE	(call) maximum number of servers to return
SeeAlso: #01965,#02199 at AX=F217h/SF=66h

Bitfields for NetWare queue status:
Bit(s)	Description	(Table 01967)
 0	operator disabled addition of new jobs
 1	operator refuses additional job servers attaching
 2	operator disabled job servicing
SeeAlso: #01966,#01968
--------N-21E3--SF67-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS (OLD)
	AH = E3h subfn 67h
	DS:SI -> request buffer (see #01968)
	ES:DI -> reply buffer (see #01969)
Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must have operator privileges
SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
SeeAlso: AX=F217h/SF=67h

Format of NetWare "Set Queue Current Status (old)" request buffer:
Offset	Size	Description	(Table 01968)
 00h	WORD	0006h (length of following data)
 02h	BYTE	67h (subfunction "Set Queue Current Status")
 03h	DWORD	(big-endian) object ID of queue
 07h	BYTE	queue status (see #01967)
SeeAlso: #01969

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01969)
 00h	WORD	(call) 0000h (no results returned)
--------N-21E3--SF68-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE
	AH = E3h subfn 68h
	DS:SI -> request buffer (see #01970)
	ES:DI -> reply buffer (see #01972)
Return: AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh)
		(see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on a workstation which is security-equivalent to a
	  member of the queue's Q_USER property
SeeAlso: AX=B807h,AH=E0h"SPOOLING",AH=E3h/SF=69h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
SeeAlso: AX=F217h/SF=68h

Format of NetWare "Create Queue Job and File" request buffer:
Offset	Size	Description	(Table 01970)
 00h	WORD	0107h (length of following data)
 02h	BYTE	68h (subfunction "Close File and Start Queue Job")
 03h	DWORD	(big-endian) object ID of queue
 07h 256 BYTEs	job structure (see #01971)
SeeAlso: #01972,#02200

Format of NetWare old-style job structure:
Offset	Size	Description	(Table 01971)
 00h	BYTE	client station
 01h	BYTE	client task number
 02h	DWORD	(big-endian) object ID of client
 06h	DWORD	(big-endian) object ID of target server
		FFFFFFFh if any server acceptable
 0Ah  6 BYTEs	target execution time (year,month,day,hour,minute,second)
		FFFFFFFFFFFFh to execute as soon as possible
 10h  6 BYTEs	job entry time (year,month,day,hour,minute,second)
 16h	WORD	(big-endian) job number
 18h	WORD	(big-endian) job type
 1Ah	BYTE	job position
 1Bh	BYTE	job control flags (see #01980)
 1Ch 14 BYTEs	ASCIZ job file name
 2Ah  6 BYTEs	job file handle
 30h	BYTE	server station
 31h	BYTE	server task number
 32h	DWORD	(big-endian) object ID of server
 36h 50 BYTEs	ASCIZ job description string
 68h 152 BYTEs	client record area
SeeAlso: #01970,#02210

Format of NetWare "Create Queue Job and File" reply buffer:
Offset	Size	Description	(Table 01972)
 00h	WORD	(call) 0036h (size of following results buffer)
 02h	BYTE	client station
 03h	BYTE	client task number
 04h	DWORD	(big-endian) object ID of client
 08h	DWORD	(big-endian) object ID of target server
 0Ch  6 BYTEs	target execution time (year,month,day,hour,minute,second)
 12h  6 BYTEs	job entry time (year,month,day,hour,minute,second)
 18h	WORD	(big-endian) job number
 1Ah	WORD	(big-endian) job type
 1Ch	BYTE	job position
 1Dh	BYTE	job control flags (see #01980)
 1Eh 14 BYTEs	ASCIZ job file name
 2Ch  6 BYTEs	job file handle
 32h	BYTE	server station
 33h	BYTE	server task number
 34h	DWORD	(big-endian) object ID of server or 00000000h
SeeAlso: #01970,#02200
--------N-21E3--SF69-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB (OLD)
	AH = E3h subfn 69h
	DS:SI -> request buffer (see #01973)
	ES:DI -> reply buffer (see #01974)
Return: AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on the workstation which created the job
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=69h

Format of NetWare "Close File and Start Queue Job (old)" request buffer:
Offset	Size	Description	(Table 01973)
 00h	WORD	0007h (length of following data)
 02h	BYTE	69h (subfunction "Close File and Start Queue Job")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
SeeAlso: #01974

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01974)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01973,#01975
--------N-21E3--SF6A-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE (OLD)
	AH = E3h subfn 6Ah
	DS:SI -> request buffer (see #01975)
	ES:DI -> reply buffer (see #01974)
Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must have created the job or be an operator
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Ah

Format of NetWare "Remove Job From Queue (old)" request buffer:
Offset	Size	Description	(Table 01975)
 00h	WORD	0007h (length of following data)
 02h	BYTE	6Ah (subfunction "Remove Job From Queue (old)")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
--------N-21E3--SF6B-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST (OLD)
	AH = E3h subfn 6Bh
	DS:SI -> request buffer (see #01976)
	ES:DI -> reply buffer (see #01977)
Return: AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on a workstation which is security-equivalent to a
	  member of the Q_USERS or Q_OPERATORS properties
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Bh

Format of NetWare "Get Queue Job List (old)" request buffer:
Offset	Size	Description	(Table 01976)
 00h	WORD	0005h (length of following data)
 02h	BYTE	6Bh (subfunction "Get Queue Job List (old)")
 03h	DWORD	(big-endian) object ID of queue
SeeAlso: #01977

Format of NetWare "Get Queue Job List (old)" reply buffer:
Offset	Size	Description	(Table 01977)
 00h	WORD	(call) size of following results buffer (max 1F6h)
 02h	WORD	(big-endian) job count
 04h  N WORDs	(big-endian) list of job numbers by position in queue
	WORD	maximum job numbers
SeeAlso: #01976
--------N-21E3--SF6C-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY (OLD)
	AH = E3h subfn 6Ch
	DS:SI -> request buffer (see #01978)
	ES:DI -> reply buffer (see #01979)
Return: AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on a workstation which is security-equivalent to a
	  member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh,AX=F217h/SF=6Ch

Format of NetWare "Read Queue Job Entry (old)" request buffer:
Offset	Size	Description	(Table 01978)
 00h	WORD	0007h (length of following data)
 02h	BYTE	6Ch (subfunction "Read Queue Job Entry (old)")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
SeeAlso: #01979

Format of NetWare "Read Queue Job Entry (old)" reply buffer:
Offset	Size	Description	(Table 01979)
 00h	WORD	(call) 0100h (size of following results)
 02h	BYTE	client station number
 03h	BYTE	client task number
 04h	DWORD	object ID of client
 08h	DWORD	(big-endian) object ID of target server
		FFFFFFFFh if any server acceptable
 0Ch  6 BYTEs	target execution time (year,month,day,hour,minute,second)
		FFFFFFFFFFFFh if serviced as soon as possible
 12h  6 BYTEs	job entry time (year,month,day,hour,minute,second)
 18h	WORD	(big-endian) job number
 1Ah	WORD	(big-endian) job type
 1Ch	BYTE	job position
 1Dh	BYTE	job control flags (see #01980)
 1Eh 14 BYTEs	ASCIZ job filename
 2Ch  6 BYTEs	job file handle
 32h	BYTE	server station
 33h	BYTE	server task number
 34h	DWORD	object ID of server
 38h 50 BYTEs	ASCIZ job description string
 6Ah 152 BYTEs	client record area
SeeAlso: #01978

Bitfields for NetWare job control flags:
Bit(s)	Description	(Table 01980)
 3	job will be serviced automatically if connection broken
 4	job remains in queue after server aborts job
 5	client has not filled associated job file
 6	User Hold--job advances, but cannot be serviced until this is
	  cleared by user or operator
 7	Operator Hold--job advances, but cannot be serviced until this is
	  cleared by an operator
SeeAlso: #01979
--------N-21E3--SF6D-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY (OLD)
	AH = E3h subfn 6Dh
	DS:SI -> request buffer (see #01981)
	ES:DI -> reply buffer (see #01983)
Return: AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be an operator or the user who created the job
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Eh
SeeAlso: AX=F217h/SF=6Dh

Format of NetWare "Change Queue Job Entry" request buffer:
Offset	Size	Description	(Table 01981)
 00h	WORD	0105h (length of following data)
 02h	BYTE	6Dh (subfunction "Change Queue Job Entry")
 03h	DWORD	(big-endian) object ID of queue
 07h 256 BYTEs	job structure (see #01971)
SeeAlso: #01983
--------N-21E3--SF6E-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION
	AH = E3h subfn 6Eh
	DS:SI -> request buffer (see #01982)
	ES:DI -> reply buffer (see #01983)
Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be an operator
	if the specified position is greater than the number of jobs in the
	  queue, the job is placed at the end of the queue
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Dh
SeeAlso: AX=F217h/SF=6Eh

Format of NetWare "Change Queue Job Position" request buffer:
Offset	Size	Description	(Table 01982)
 00h	WORD	0008h (length of following data)
 02h	BYTE	6Eh (subfunction "Change Queue Job Position")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
 09h	BYTE	new position in queue
		(01h = first, FAh [250] = last position in full queue)
SeeAlso: #01983

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01983)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01981,#01982,#01984
--------N-21E3--SF6F-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE
	AH = E3h subfn 6Fh
	DS:SI -> request buffer (see #01984)
	ES:DI -> reply buffer (see #01983)
Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh)
		(see also AH=E3h/SF=64h)
	    FFh bindery failure, or no such property, or no such member
Desc:	attach the calling job server to the specified queue
Notes:	this function is supported by Advanced NetWare 2.1+
	a queue may have up to 25 job servers attached
	the calling workstation must be security-equivalent to a member of the
	  queue's Q_SERVERS property
SeeAlso: AH=E3h/SF=70h,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
SeeAlso: AX=F217h/SF=6Fh

Format of NetWare "Attach Queue Server to Queue" request buffer:
Offset	Size	Description	(Table 01984)
 00h	WORD	0005h (length of following data)
 02h	BYTE	6Fh (subfunction "Attach Queue Server To Queue")
 03h	DWORD	(big-endian) object ID of queue
SeeAlso: #01983,#01985
--------N-21E3--SF70-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE
	AH = E3h subfn 70h
	DS:SI -> request buffer (see #01985)
	ES:DI -> reply buffer (see #01983)
Return: AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see #01961)
Desc:	remove the calling job server from the specified queue's list of
	  servers
Notes:	this function is supported by Advanced NetWare 2.1+
	the caller must have previously attached itself to the queue
SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
SeeAlso: AX=F217h/SF=70h

Format of NetWare "Detach Queue Server From Queue" request buffer:
Offset	Size	Description	(Table 01985)
 00h	WORD	0005h (length of following data)
 02h	BYTE	70h (subfunction "Detach Queue Server From Queue")
 03h	DWORD	(big-endian) object ID of queue
SeeAlso: #01983,#01984
--------N-21E3--SF71-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE
	AH = E3h subfn 71h
	DS:SI -> request buffer (see #01986)
	ES:DI -> reply buffer (see #01972)
Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
		(see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	the caller must be on a workstation which is security-equivalent to a
	  member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
SeeAlso: AX=F217h/SF=71h

Format of NetWare "Service Queue Job and Open File" request buffer:
Offset	Size	Description	(Table 01986)
 00h	WORD	0007h (length of following data)
 02h	BYTE	71h (subfunction "Service Queue Job and Open File")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) target job type
		FFFFh any
SeeAlso: #01972,#01987
--------N-21E3--SF72-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE
	AH = E3h subfn 72h
	DS:SI -> request buffer (see #01987)
	ES:DI -> reply buffer (see #01989)
Return: AL = status (00h,96h,D0h,D1h,D6h) (see #01961)
Desc:	inform the Queue Management System (QMS) that the queue server has
	  completed a job
Notes:	this function is supported by Advanced NetWare 2.1+
	the caller must be a job server which has previously obtained a job
	  for servicing
SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=73h,AH=E3h/SF=76h
SeeAlso: AX=F217h/SF=72h

Format of NetWare "Finish Servicing Queue Job and File (old)" request buffer:
Offset	Size	Description	(Table 01987)
 00h	WORD	000Bh (length of following data)
 02h	BYTE	72h (subfunction "Finish Servicing Queue Job and File (old)")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
 09h	DWORD	(big-endian) charge
SeeAlso: #01989,#01986,#01998
--------N-21E3--SF73-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE
	AH = E3h subfn 73h
	DS:SI -> request buffer (see #01988)
	ES:DI -> reply buffer (see #01989)
Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961)
Desc:	inform the Queue Management System (QMS) that the queue server is
	  unable to service a previously-accepted job
Notes:	this function is supported by Advanced NetWare 2.1+
	this is an old version of the call (see AH=E3h/SF=84h)
	only a job server which previously accepted a job for servicing may
	  call this function
SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=76h,AH=E3h/SF=84h
SeeAlso: AX=F217h/SF=73h

Format of NetWare "Abort Servicing Queue Job and File (old)" request buffer:
Offset	Size	Description	(Table 01988)
 00h	WORD	0007h (length of following data)
 02h	BYTE	73h (subfunction "Abort Servicing Queue Job and File (old)")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
SeeAlso: #01989,#01987

Format of NetWare reply buffer:
Offset	Size	Description	(Table 01989)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01987,#01988,#01990,#01991
--------N-21E3--SF74-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS (OLD)
	AH = E3h subfn 74h
	DS:SI -> request buffer (see #01990)
	ES:DI -> reply buffer (see #01989)
Return: AL = status (00h,96h,D0h,D1h,D5h,D9h) (see #01961)
Desc:	temporarily assume the login identity of the client submitting the
	  job being serviced
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be a job server which has obtained a job for servicing
SeeAlso: AH=E3h/SF=75h,AX=F217h/SF=74h

Format of NetWare "Change to Client Rights (old)" request buffer:
Offset	Size	Description	(Table 01990)
 00h	WORD	0007h (length of following data)
 02h	BYTE	74h (subfunction "Change To Client Rights (old)")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
SeeAlso: #01989,#01991
--------N-21E3--SF75-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS
	AH = E3h subfn 75h
	DS:SI -> request buffer (see #01991)
	ES:DI -> reply buffer (see #01989)
Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh) (see #01961)
Desc:	restore server's own identity after assuming the login identity of the
	  client submitting the job being serviced
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be a job server which has previously changed its identity
SeeAlso: AH=E3h/SF=74h,AX=F217h/SF=75h

Format of NetWare "Restore Queue Server Rights" request buffer:
Offset	Size	Description	(Table 01991)
 00h	WORD	0001h (length of following data)
 02h	BYTE	75h (subfunction "Change To Client Rights")
SeeAlso: #01989,#01990
--------N-21E3--SF76-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS OLD
	AH = E3h subfn 76h
	DS:SI -> request buffer (see #01992)
	ES:DI -> reply buffer (see #01993)
Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on a workstation which is security-equivalent to a
	  member of the Q_USERS or Q_OPERATORS properties
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=77h,AH=E3h/SF=78h
SeeAlso: AX=F217h/SF=76h

Format of NetWare "Read Queue Server Current Status (old)" request buffer:
Offset	Size	Description	(Table 01992)
 00h	WORD	000Ah (length of following data)
 02h	BYTE	76h (subfunction "Read Queue Server Current Status (old)")
 03h	DWORD	(big-endian) object ID of queue
 07h	DWORD	(big-endian) object ID of server
 0Bh	BYTE	server station
SeeAlso: #01993

Format of NetWare "Read Queue Server Current Status (old)" reply buffer:
Offset	Size	Description	(Table 01993)
 00h	WORD	(call) 0040h (size of following results)
 02h 64 BYTEs	server status record (format depends on server)
		first four bytes should contain estimated "price" for an
		  average job
SeeAlso: #01992,#02203
--------N-21E3--SF77-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE SERVER CURRENT STATUS
	AH = E3h subfn 77h
	DS:SI -> request buffer (see #01994)
	ES:DI -> reply buffer (see #01995)
Return: AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see #01961)
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be a job server which has attached itself to the queue
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=76h,AH=E3h/SF=78h
SeeAlso: AX=F217h/SF=77h

Format of NetWare "Set Queue Server Current Status" request buffer:
Offset	Size	Description	(Table 01994)
 00h	WORD	0045h (length of following data)
 02h	BYTE	77h (subfunction "Set Queue Server Current Status")
 03h	DWORD	(big-endian) object ID of queue
 07h 64 BYTEs	server status record (format depends on server)
		first four bytes should contain estimated "price" for an
		  average job
SeeAlso: #01995

Format of NetWare "Set Queue Server Current Status" reply buffer:
Offset	Size	Description	(Table 01995)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01994
--------N-21E3--SF78-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE (OLD)
	AH = E3h subfn 78h
	DS:SI -> request buffer (see #01996)
	ES:DI -> reply buffer (see #01997)
Return: AL = status (see also #01961)
	    00h successful
Notes:	this function is supported by Advanced NetWare 2.1+
	caller must be on a workstation which is security-equivalent to a
	  member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=71h,AX=F217h/SF=78h

Format of NetWare "Get Queue Job's File Size (old)" request buffer:
Offset	Size	Description	(Table 01996)
 00h	WORD	0007h (length of following data)
 02h	BYTE	78h (subfunction "Get Queue Job's File Size (old)")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
SeeAlso: #01997,#02204 at AX=F217h/SF=78h

Format of NetWare "Get Queue Job's File Size (old)" reply buffer:
Offset	Size	Description	(Table 01997)
 00h	WORD	(call) 000Ah (size of following results)
 02h	DWORD	(big-endian) object ID of queue
 06h	WORD	(big-endian) job number
 08h	DWORD	(big-endian) size of job file in bytes
SeeAlso: #01996,#02204 at AX=F217h/SF=78h
--------N-21E3--SF83-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB
	AH = E3h subfn 83h
	DS:SI -> request buffer (see #01998)
	ES:DI -> reply buffer (see #01999)
Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961)
Desc:	inform the Queue Management System (QMS) that the queue server has
	 completed servicing a previously-accepted job
Notes:	this function is supported by Advanced NetWare 3.1+
	this variant of Abort Servicing Queue Job allows use of the high
	  connection byte in the NCP packet header, unlike AH=E3h/SF=73h
SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=84h
SeeAlso: AX=F217h/SF=83h

Format of NetWare "Finish Servicing Queue Job" request buffer:
Offset	Size	Description	(Table 01998)
 00h	WORD	0007h (length of following data)
 02h	BYTE	84h (subfunction "Abort Servicing Queue Job")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
 09h	DWORD	(big-endian) charge for job
SeeAlso: #01999,#01987

Format of NetWare "Finish Servicing Queue Job" reply buffer:
Offset	Size	Description	(Table 01999)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #01998
--------N-21E3--SF84-------------------------
INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB
	AH = E3h subfn 84h
	DS:SI -> request buffer (see #02000)
	ES:DI -> reply buffer (see #02001)
Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #01961)
Desc:	inform the Queue Management System (QMS) that the queue server is
	  unable to service a previously-accepted job
Notes:	this function is supported by Advanced NetWare 3.1+
	this variant of Abort Servicing Queue Job allows use of the high
	  connection byte in the NCP packet header, unlike AH=E3h/SF=73h
SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
SeeAlso: AX=F217h/SF=84h

Format of NetWare "Abort Servicing Queue Job" request buffer:
Offset	Size	Description	(Table 02000)
 00h	WORD	0007h (length of following data)
 02h	BYTE	84h (subfunction "Abort Servicing Queue Job")
 03h	DWORD	(big-endian) object ID of queue
 07h	WORD	(big-endian) job number
SeeAlso: #02001

Format of NetWare "Abort Servicing Queue Job" reply buffer:
Offset	Size	Description	(Table 02001)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #02000
--------N-21E3--SF96-------------------------
INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS
	AH = E3h subfn 96h
	DS:SI -> request buffer (see #02003)
	ES:DI -> reply buffer (see #02004)
Return: AL = status (00h,C0h,C1h) (see #02002)
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=E3h/SF=97h,AH=E3h/SF=98h,AH=E3h/SF=99h,AX=F217h/SF=96h

(Table 02002)
Values for NetWare function status:
 00h	successful
 C0h	no account privileges
 C1h	no account balance
 C2h	credit limit exceeded
 C3h	too many holds on account
 C6h	no console rights
SeeAlso: #01961

Format of NetWare "Get Account Status" request buffer:
Offset	Size	Description	(Table 02003)
 00h	WORD	length of following data (max 33h)
 02h	BYTE	96h (subfunction "Get Account Status")
 03h	WORD	(big-endian) type of bindery object
 05h	BYTE	length of object name (01h to 2Fh)
 06h  N BYTEs	object name
SeeAlso: #02004,#02224 at AX=F217h/SF=96h

Format of NetWare "Get Account Status" reply buffer:
Offset	Size	Description	(Table 02004)
 00h	WORD	(call) length of following buffer space
 02h	DWORD	(big-endian) account balance
 06h	DWORD	(big-endian) credit limit
		signed number indicating lowest allowable account balance
 0Ah 120 BYTEs	reserved
 82h	DWORD	(big-endian) object ID, server 1
 86h	DWORD	(big-endian) hold amount, server 1
	...
 F8h	DWORD	(big-endian) object ID, server 16
 FCh	DWORD	(big-endian) hold amount, server 16
Note:	the reply buffer lists the servers which have placed holds on a portion
	  of the account balance, and the amount reserved by each
SeeAlso: #02003,#02224 at AX=F217h/SF=96h
--------N-21E3--SF97-------------------------
INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE
	AH = E3h subfn 97h
	DS:SI -> request buffer (see #02005)
	ES:DI -> reply buffer (see #02007)
Return: AL = status (00h,C0h-C2h) (see #02002)
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=98h,AX=F217h/SF=97h

Format of NetWare "Submit Account Charge" request buffer:
Offset	Size	Description	(Table 02005)
 00h	WORD	length of following data (max 13Fh)
 02h	BYTE	97h (subfunction "Submit Account Charge")
 03h	WORD	(big-endian) service type
 05h	DWORD	(big-endian) amount to be charged to account
 09h	DWORD	(big-endian) amount of prior hold to be cancelled
 0Dh	WORD	(big-endian) type of bindery object
 0Fh	WORD	(big-endian) type of comment
		8000h-FFFFh reserved for experimental use
 11h	BYTE	length of object's name
 12h  N BYTEs	object name
	BYTE	length of comment
      N BYTEs	comment
SeeAlso: #02007
--------N-21E3--SF98-------------------------
INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD
	AH = E3h subfn 98h
	DS:SI -> request buffer (see #02006)
	ES:DI -> reply buffer (see #02007)
Return: AL = status (00h,C0h-C3h) (see #02002)
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=97h,AX=F217h/SF=98h

Format of NetWare "Submit Account Hold" request buffer:
Offset	Size	Description	(Table 02006)
 00h	WORD	length of following data (max 37h)
 02h	BYTE	98h (subfunction "Submit Account Hold")
 03h	DWORD	(big-endian) amount of account balance to reserve
 07h	WORD	(big-endian) type of bindery object
 09h	BYTE	length of object's name
 0Ah  N BYTEs	object name
SeeAlso: #02007

Format of NetWare reply buffer:
Offset	Size	Description	(Table 02007)
 00h	WORD	0000h (no data returned)
SeeAlso: #02005,#02006,#02008,#02009
--------N-21E3--SF99-------------------------
INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE
	AH = E3h subfn 99h
	DS:SI -> request buffer (see #02008)
	ES:DI -> reply buffer (see #02007)
Return: AL = status (00h,C0h) (see #02002)
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=E3h/SF=96h,AX=F217h/SF=99h

Format of NetWare "Submit Account Note" request buffer:
Offset	Size	Description	(Table 02008)
 00h	WORD	length of following data (max 137h)
 02h	BYTE	99h (subfunction "Submit Account Note")
 03h	WORD	(big-endian) type of service
 05h	WORD	(big-endian) type of bindery object
 07h	WORD	(big-endian) type of comment
		8000h-FFFFh reserved for experimental use
 09h	BYTE	length of object's name
 0Ah  N BYTEs	object name
	BYTE	length of comment
      N BYTEs	comment
SeeAlso: #02007
--------N-21E3--SFC8-------------------------
INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES
	AH = E3h subfn C8h
	DS:SI -> request buffer (see #02009)
	ES:DI -> reply buffer (see #02007)
Return: AL = status (00h,C6h) (see #02002)
Desc:	determine whether the caller is a console operator
Notes:	this function is supported by Advanced NetWare 2.1+
	NetWare determines console privileges by checking the file server's
	  OPERATOR property for the caller's object ID
SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h,AX=F217h/SF=C8h

Format of NetWare "Check Console Privileges" request buffer:
Offset	Size	Description	(Table 02009)
 00h	WORD	0001h (length of following data)
 02h	BYTE	C8h (subfunction "Check Console Privileges")
SeeAlso: #02007
--------N-21E3--SFC9-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS
	AH = E3h subfn C9h
	DS:SI -> request buffer (see #02010)
	ES:DI -> reply buffer (see #02011)
Return: AL = status
	    00h successful
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must be attached to the file server
SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E8h,AX=F217h/SF=C9h

Format of NetWare "Get File Server Description Strings" request buffer:
Offset	Size	Description	(Table 02010)
 00h	WORD	0001h (length of following data)
 02h	BYTE	C9h (subfunction "Get File Server Description Strings")
SeeAlso: #02011,#02225 at AX=F217h/SF=C9h

Format of NetWare "Get File Server Description Strings" reply buffer:
Offset	Size	Description	(Table 02011)
 00h	WORD	(call) 0200h (size of following results buffer)
 02h	var	ASCIZ name of company distributing this copy of NetWare
	var	ASCIZ version and revision
      9 BYTEs	ASCIZ revision date (mm/dd/yy)
	var	ASCIZ copyright notice
SeeAlso: #02010,#02225 at AX=F217h/SF=C9h
--------N-21E3--SFCA-------------------------
INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME
	AH = E3h subfn CAh
	DS:SI -> request buffer (see #02012)
	ES:DI -> reply buffer (see #02014)
Return: AL = status (00h,C6h) (see #02002)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=2Bh"DATE",AH=2Dh"TIME",AH=E3h/SF=C8h,AH=E7h"Novell",AX=F217h/SF=CAh
SeeAlso: AX=F214h

Format of NetWare "Set File Server Date and Time" request buffer:
Offset	Size	Description	(Table 02012)
 00h	WORD	0007h (length of following data)
 02h	BYTE	CAh (subfunction "Set File Server Date And Time")
 03h	BYTE	year (00-79 = 2000-2079, 80-99 = 1980-1999)
 04h	BYTE	month (1-12)
 05h	BYTE	day (1-31)
 06h	BYTE	hour (0-23)
 07h	BYTE	minute
 08h	BYTE	second
SeeAlso: #02014,#02106 at AX=F214h
--------N-21E3--SFCB-------------------------
INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN
	AH = E3h subfn CBh
	DS:SI -> request buffer (see #02013)
	ES:DI -> reply buffer (see #02014)
Return: AL = status (00h,C6h) (see #02002)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CCh,AH=E3h/SF=D3h,AX=F217h/SF=CBh

Format of NetWare "Disable File Server Login" request buffer:
Offset	Size	Description	(Table 02013)
 00h	WORD	0001h (length of following data)
 02h	BYTE	CBh (subfunction "Disable File Server Login")
SeeAlso: #02014,#02015

Format of NetWare reply buffer:
Offset	Size	Description	(Table 02014)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #02012,#02013,#02015
--------N-21E3--SFCC-------------------------
INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN
	AH = E3h subfn CCh
	DS:SI -> request buffer (see #02015)
	ES:DI -> reply buffer (see #02014)
Return: AL = status (00h,C6h) (see #02002)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AX=F217h/SF=CCh

Format of NetWare "Enable File Server Login" request buffer:
Offset	Size	Description	(Table 02015)
 00h	WORD	0001h (length of following data)
 02h	BYTE	CCh (subfunction "Enable File Server Login")
SeeAlso: #02014
--------N-21E3--SFCD-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS
	AH = E3h subfn CDh
	DS:SI -> request buffer (see #02016)
	ES:DI -> reply buffer (see #02017)
Return: AL = status (00h,C6h) (see #02002)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CCh

Format of NetWare "Get File Server Login Status" request buffer:
Offset	Size	Description	(Table 02016)
 00h	WORD	0001h (length of following data)
 02h	BYTE	CDh (subfunction "Get File Server Login Status")
SeeAlso: #02017,#02226 at AX=F217h/SF=CDh

Format of NetWare "Get File Server Login Status" reply buffer:
Offset	Size	Description	(Table 02017)
 00h	WORD	(call) 0001h (size of following results buffer)
 02h	BYTE	login state (00h disabled, 01h enabled)
SeeAlso: #02016,#02226 at AX=F217h/SF=CDh
--------N-21E3--SFCE-------------------------
INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES
	AH = E3h subfn CEh
	DS:SI -> request buffer (see #02018)
	ES:DI -> reply buffer (see #02020)
Return: AL = status (00h,C6h) (see #02002)
Desc:	all files marked for deletion on the file server are purged, regardless
	  of which workstation actually erased them
Notes:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
	the calling workstation must have console operator privileges
SeeAlso: AH=13h,AH=E2h/SF=10h,AH=E3h/SF=C8h,AX=F217h/SF=CEh,AX=F244h

Format of NetWare "Purge All Erased Files" request buffer:
Offset	Size	Description	(Table 02018)
 00h	WORD	0001h (length of following data)
 02h	BYTE	CEh (subfunction "Purge All Erased Files")
SeeAlso: #02020
--------N-21E3--SFCF-------------------------
INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING
	AH = E3h subfn CFh
	DS:SI -> request buffer (see #02019)
	ES:DI -> reply buffer (see #02020)
Return: AL = status (00h,C6h) (see #02002)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D0h

Format of NetWare "Disable Transaction Tracking" request buffer:
Offset	Size	Description	(Table 02019)
 00h	WORD	0001h (length of following data)
 02h	BYTE	CFh (subfunction "Disable Transaction Tracking")
SeeAlso: #02020,#02021

Format of NetWare reply buffer:
Offset	Size	Description	(Table 02020)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #02018,#02019,#02021
--------N-21E3--SFD0-------------------------
INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING
	AH = E3h subfn D0h
	DS:SI -> request buffer (see #02021)
	ES:DI -> reply buffer (see #02020)
Return: AL = status (00h,C6h) (see #02025)
Desc:	restart transaction tracking after being stopped either explicitly by
	  AH=E3h/SF=CFh or automatically due to a full transaction volume
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AX=F217h/SF=D0h

Format of NetWare "Enable Transaction Tracking" request buffer:
Offset	Size	Description	(Table 02021)
 00h	WORD	0001h (length of following data)
 02h	BYTE	D0h (subfunction "Enable Transaction Tracking")
SeeAlso: #02020,#02019
--------N-21E3--SFD1-------------------------
INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST
	AH = E3h subfn D1h
	DS:SI -> request buffer (see #02022)
	ES:DI -> reply buffer (see #02024)
Return: AL = status (00h,C6h) (see #02025)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
	the broadcast message will not be received by workstations which have
	  disabled broadcasts with AH=E1h/SF=02h
SeeAlso: AH=E1h/SF=02h,AH=E1h/SF=09h,AH=E3h/SF=C8h,AH=E3h/SF=D3h
SeeAlso: AX=F217h/SF=D1h

Format of NetWare "Send Console Broadcast" request buffer:
Offset	Size	Description	(Table 02022)
 00h	WORD	length of following data (max A2h)
 02h	BYTE	D1h (subfunction "Send Console Broadcast")
 03h	BYTE	number of connections to receive message
		00h = all, else specific list below
 04h  N BYTEs	connection list
	BYTE	length of message (max 3Ch)
      N BYTEs	message
SeeAlso: #02024
--------N-21E3--SFD2-------------------------
INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER
	AH = E3h subfn D2h
	DS:SI -> request buffer (see #02023)
	ES:DI -> reply buffer (see #02024)
Return: AL = status (00h,C6h) (see #02025)
Desc:	close the open files and release all file locks for a connection,
	  abort transactions if a TTS file server, and detach from the file
	  server
Notes:	this function is supported by Advanced NetWare 2.1+
	the caller must have SUPERVISOR privileges
SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h,AX=F217h/SF=D2h,AX=F217h/SF=FEh

Format of NetWare "Clear Connection Number" request buffer:
Offset	Size	Description	(Table 02023)
 00h	WORD	0002h (length of following data)
 02h	BYTE	D2h (subfunction "Clear Connection Number")
 03h	BYTE	connection number
SeeAlso: #02024,#02277

Format of NetWare reply buffer:
Offset	Size	Description	(Table 02024)
 00h	WORD	(call) 0000h (no results returned)
SeeAlso: #02022,#02023,#02026
--------N-21E3--SFD3-------------------------
INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER
	AH = E3h subfn D3h
	DS:SI -> request buffer (see #02026)
	ES:DI -> reply buffer (see #02024)
Return: AL = status (00h,C6h,FFh) (see #02025)
Desc:	take down the file server
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have SUPERVISOR privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CFh,AH=E3h/SF=D1h

(Table 02025)
Values for NetWare function status:
 00h	successful
 C6h	no console rights
 FFh	files open
SeeAlso: #02002,#02053

Format of NetWare "Down File Server" request buffer:
Offset	Size	Description	(Table 02026)
 00h	WORD	0002h (length of following data)
 02h	BYTE	D3h (subfunction "Down File Server")
 03h	BYTE	flag: force down even if files open if nonzero
SeeAlso: #02024
--------N-21E3--SFD4-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS
	AH = E3h subfn D4h
	DS:SI -> request buffer (see #02027)
	ES:DI -> reply buffer (see #02028)
Return: AL = status (00h,C6h) (see #02025)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
SeeAlso: AX=F217h/SF=D4h

Format of NetWare "Get File System Statistics" request buffer:
Offset	Size	Description	(Table 02027)
 00h	WORD	0001h (length of following data)
 02h	BYTE	D4h (subfunction "Get File System Statistics")
SeeAlso: #02028,#02227 at AX=F217h/SF=D4h

Format of NetWare "Get File System Statistics" reply buffer:
Offset	Size	Description	(Table 02028)
 00h	WORD	(call) 0028h (size of following results buffer)
 02h	DWORD	clock ticks since system started
 06h	WORD	maximum open files set by configuration
 08h	WORD	maximum files open concurrently
 0Ah	WORD	current number of open files
 0Ch	DWORD	total files opened
 10h	DWORD	total file read requests
 14h	DWORD	total file write requests
 18h	WORD	current changed FATs
 1Ah	WORD	total changed FATs
 1Ch	WORD	number of FAT write errors
 1Eh	WORD	number of fatal FAT write errors
 20h	WORD	number of FAT scan errors
 22h	WORD	maximum concurrently-indexed files
 24h	WORD	current number of indexed files
 26h	WORD	number of attached indexed files
 28h	WORD	number of indexed files available
Note:	all fields except the first are big-endian
SeeAlso: #02027,#02227 at AX=F217h/SF=D4h
--------N-21E3--SFD5-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS
	AH = E3h subfn D5h
	DS:SI -> request buffer (see #02029)
	ES:DI -> reply buffer (see #02030)
Return: AL = status (00h,C6h) (see #02025)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AH=E3h/SF=D0h,AH=E3h/SF=E8h
SeeAlso: AX=F217h/SF=D5h

Format of NetWare "Get Transaction Tracking Statistics" request buffer:
Offset	Size	Description	(Table 02029)
 00h	WORD	0001h (length of following data)
 02h	BYTE	D5h (subfunction "TTS Get Statistics")
SeeAlso: #02030,#02228 at AX=F217h/SF=D5h

Format of NetWare "Get Transaction Tracking Statistics" reply buffer:
Offset	Size	Description	(Table 02030)
 00h	WORD	(call) length of following results buffer (max 1BCh)
 02h	DWORD	(big-endian) clock ticks since system started
 06h	BYTE	transaction tracking supported if nonzero
		(all following fields are invalid if zero)
 07h	BYTE	transaction tracking enabled
 08h	WORD	(big-endian) transaction volume number
 0Ah	WORD	(big-endian) maximum simultaneous transactions configured
 0Ch	WORD	(big-endian) maximum simultaneous transactions since startup
 0Eh	WORD	(big-endian) current transactions in progress
 10h	DWORD	(big-endian) total transactions performed
 14h	DWORD	(big-endian) total write transactions
 18h	DWORD	(big-endian) total transactions backed out
 1Ch	WORD	(big-endian) number of unfilled backout requests
 1Eh	WORD	(big-endian) disk blocks used for transaction tracking
 20h	DWORD	(big-endian) blocks allocated for tracked-file FATs
 24h	DWORD	(big-endian) number of file size changes during a transaction
 28h	DWORD	(big-endian) number of file truncations during a transaction
 2Ch	BYTE	number of records following
 2Dh	Active Transaction Records [array]
	Offset	Size	Description
	 00h	BYTE	logical connection number
	 01h	BYTE	task number
SeeAlso: #02029,#02228 at AX=F217h/SF=D5h
--------N-21E3--SFD6-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS
	AH = E3h subfn D6h
	DS:SI -> request buffer (see #02031)
	ES:DI -> reply buffer (see #02032)
Return: AL = status (00h,C6h) (see #02025)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D5h,AH=E3h/SF=D8h,AH=E3h/SF=D9h,AH=E3h/SF=E6h
SeeAlso: AX=F217h/SF=D6h

Format of NetWare "Get Disk Cache Statistics" request buffer:
Offset	Size	Description	(Table 02031)
 00h	WORD	0001h (length of following data)
 02h	BYTE	D6h (subfunction "Get Disk Cache Statistics")
SeeAlso: #02032,#02229 at AX=F217h/SF=D6h

Format of NetWare "Get Disk Cache Statistics" reply buffer:
Offset	Size	Description	(Table 02032)
 00h	WORD	(call) 004Eh (length of following results buffer)
 02h	DWORD	clock ticks since system started
 06h	WORD	number of cache buffers
 08h	WORD	size of cache buffer in bytes
 0Ah	WORD	number of dirty cache buffers
 0Ch	DWORD	number of cache read requests
 10h	DWORD	number of cache write requests
 14h	DWORD	number of cache hits
 18h	DWORD	number of cache misses
 1Ch	DWORD	number of physical read requests
 20h	DWORD	number of physical write requests
 24h	WORD	number of physical read errors
 26h	WORD	number of physical write errors
 28h	DWORD	cache get requests
 2Ch	DWORD	cache full write requests
 30h	DWORD	cache partial write requests
 34h	DWORD	background dirty writes
 38h	DWORD	background aged writes
 3Ch	DWORD	total cache writes
 40h	DWORD	number of cache allocations
 44h	WORD	thrashing count
 46h	WORD	number of times LRU block was dirty
 48h	WORD	number of reads on cache blocks not yet filled by writes
 4Ah	WORD	number of times a fragmented write occurred
 4Ch	WORD	number of cache hits on unavailable block
 4Eh	WORD	number of times a cache block was scrapped
Note:	all fields except the first are big-endian
SeeAlso: #02031,#02229 at AX=F217h/SF=D6h
--------N-21E3--SFD7-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE
	AH = E3h subfn D7h
	DS:SI -> request buffer (see #02033)
	ES:DI -> reply buffer (see #02034)
Return: AL = status (00h,C6h) (see #02025)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
SeeAlso: AX=F217h/SF=D7h

Format of NetWare "Get Drive Mapping Table" request buffer:
Offset	Size	Description	(Table 02033)
 00h	WORD	0001h (length of following data)
 02h	BYTE	D7h (subfunction "Get Drive Mapping Table")
SeeAlso: #02034,#02230 at AX=F217h/SF=D7h

Format of NetWare "Get Drive Mapping Table" reply buffer:
Offset	Size	Description	(Table 02034)
 00h	WORD	(call) 00ECh (length of following results buffer)
 02h	DWORD	(big-endian) clock tick elapsed since system started
 06h	BYTE	fault tolerance (SFT) level
 07h	BYTE	number of logical drives attached to server
 08h	BYTE	number of physical drives attached to server
 09h  5 BYTEs	disk channel types (00h none, 01h XT, 02h AT, 03h SCSI,
		  04h disk coprocessor drive, 32h-FFh value-added drive types)
 0Eh	WORD	(big-endian) number of outstanding controller commands
 10h 32 BYTEs	drive mapping table (FFh = no such drive)
 30h 32 BYTEs	drive mirror table (secondary physical drive, FFh = none)
 50h 32 BYTEs	dead mirror table (last drive mapped to, FFh if never mirrored)
 70h	BYTE	physical drive being remirrored (FFh = none)
 71h	BYTE	reserved
 72h	DWORD	(big-endian) remirrored block
 76h 60 BYTEs	SFT error table (internal error counters)
SeeAlso: #02033,#02230 at AX=F217h/SF=D7h
--------N-21E3--SFD8-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS
	AH = E3h subfn D8h
	DS:SI -> request buffer (see #02035)
	ES:DI -> reply buffer (see #02036)
Return: AL = status (00h,C6h) (see #02025)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E9h,AX=F217h/SF=D8h

Format of NetWare "Get Physical Disk Statistics" request buffer:
Offset	Size	Description	(Table 02035)
 00h	WORD	0002h (length of following data)
 02h	BYTE	D8h (subfunction "Get Physical Disk Statistics")
 03h	BYTE	physical disk number
SeeAlso: #02036,#02231 at AX=F217h/SF=D8h

Format of NetWare "Get Physical Disk Statistics" reply buffer:
Offset	Size	Description	(Table 02036)
 00h	WORD	(call) 005Dh (size of following results record)
 02h	DWORD	(big-endian) clock ticks since system started
 06h	BYTE	physical disk channel
 07h	BYTE	flag: drive removable if nonzero
 08h	BYTE	physical drive type
 09h	BYTE	drive number within controller
 0Ah	BYTE	controller number
 0Bh	BYTE	controller type
 0Ch	DWORD	(big-endian) size of drive in 4K disk blocks
 10h	WORD	(big-endian) number of cylinders on drive
 12h	BYTE	number of heads
 13h	BYTE	number of sectors per track
 14h 64 BYTEs	ASCIZ drive make and model
 54h	WORD	(big-endian) number of I/O errors
 56h	DWORD	(big-endian) start of Hot Fix table
 5Ah	WORD	(big-endian) size of Hot Fix table
 5Ch	WORD	(big-endian) number of Hot Fix blocks available
 5Eh	BYTE	flag: Hot Fix disabled if nonzero
SeeAlso: #02035,#02231 at AX=F217h/SF=D8h
--------N-21E3--SFD9-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS
	AH = E3h subfn D9h
	DS:SI -> request buffer (see #02037)
	ES:DI -> reply buffer (see #02038)
Return: AL = status (00h,C6h) (see #02025)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D8h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
SeeAlso: AX=F217h/SF=D9h

Format of NetWare "Get Disk Channel Statistics" request buffer:
Offset	Size	Description	(Table 02037)
 00h	WORD	0002h (length of following data)
 02h	BYTE	D9h (subfunction "Get Disk Channel Statistics")
 03h	BYTE	channel number
SeeAlso: #02038,#02232 at AX=F217h/SF=D9h

Format of NetWare "Get Disk Channel Statistics" reply buffer:
Offset	Size	Description	(Table 02038)
 00h	WORD	(call) 00A8h (size of following results record)
 02h	DWORD	(big-endian) clock ticks since system started
 06h	WORD	(big-endian) channel run state (see #02039)
 08h	WORD	(big-endian) channel synchronization state (see #02040)
 0Ah	BYTE	driver type
 0Bh	BYTE	major version of driver
 0Ch	BYTE	minor version of driver
 0Dh 65 BYTEs	ASCIZ driver description
 4Eh	WORD	(big-endian) first I/O address used
 50h	WORD	(big-endian) length of first I/O address
 52h	WORD	(big-endian) second I/O address used
 54h	WORD	(big-endian) length of second I/O address
 56h  3 BYTEs	first shared memory address
 59h  2 BYTEs	length of first shared memory address
 5Bh  3 BYTEs	second shared memory address
 5Eh  2 BYTEs	length of second shared memory address
 60h	BYTE	first interrupt number in-use flag
 61h	BYTE	first interrupt number used
 62h	BYTE	second interrupt number in-use flag
 63h	BYTE	second interrupt number used
 64h	BYTE	first DMA channel in-use flag
 65h	BYTE	first DMA channel used
 66h	BYTE	second DMA channel in-use flag
 67h	BYTE	second DMA channel used
 68h	BYTE	flags
 69h	BYTE	reserved
 6Ah 80 BYTEs	ASCIZ configuration description
SeeAlso: #02037,#02232 at AX=F217h/SF=D9h

(Table 02039)
Values for channel run state:
 0000h	running
 0001h	being stopped
 0002h	stopped
 0003h	nonfunctional
SeeAlso: #02038,#02040

(Table 02040)
Values for channel synchronization state:
 0000h	not in use
 0002h	used by NetWare, no other requests
 0004h	used by NetWare, other requests
 0006h	in use, not needed by NetWare
 0008h	in use, needed by NetWare
 000Ah	channel released, NetWare should use it
SeeAlso: #02038,#02039
--------N-21E3--SFDA-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION
	AH = E3h subfn DAh
	DS:SI -> request buffer (see #02041)
	ES:DI -> reply buffer (see #02042)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h,AH=E3h/SF=E5h
SeeAlso: AX=F217h/SF=DAh

Format of NetWare "Get Connection's Task Information" request buffer:
Offset	Size	Description	(Table 02041)
 00h	WORD	0003h (length of following data)
 02h	BYTE	DAh (subfunction "Get Connection's Task Information")
 03h	WORD	(big-endian) logical connection number
SeeAlso: #02042,#02233 at AX=F217h/SF=DAh

Format of NetWare "Get Connection's Task Information" reply buffer:
Offset	Size	Description	(Table 02042)
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	BYTE	lock status of connection (see #02043)
 03h	var	Lock Status Information (see #02044)
 N	BYTE	number of records following
 N+1	Active Task Information Records [array]
	Offset	Size	Description
	 00h	BYTE	task number (01h-FFh)
	 01h	BYTE	task state
			01h in TTS explicit transaction
			02h in TTS implicit transaction
			04h shared fileset lock active
SeeAlso: #02041,#02233 at AX=F217h/SF=DAh

(Table 02043)
Values for lock status of connection:
 00h	no locks
 01h	waiting on physical record lock
 02h	waiting on file lock
 03h	waiting on logical record lock
 04h	waiting on semaphore
SeeAlso: #02042,#02044

Format of Lock Status Information:
Offset	Size	Description	(Table 02044)
---lock status 00h---
 no fields
---lock status 01h---
 00h	BYTE	number of waiting task
 01h	DWORD	start address
 05h	DWORD	end address
 09h	BYTE	volume number
 0Ah	WORD	directory entry number
 0Ch 14 BYTEs	ASCIZ filename
---lock status 02h---
 00h	BYTE	number of waiting task
 01h	BYTE	volume number
 02h	WORD	directory entry number
 04h 14 BYTEs	ASCIZ filename
---lock status 03h---
 00h	BYTE	number of waiting task
 01h	BYTE	length of record name
 02h  N BYTEs	ASCIZ record name
---lock status 04h---
 00h	BYTE	number of waiting task
 01h	BYTE	length of semaphore's name
 02h  N BYTEs	ASCIZ semaphore name
SeeAlso: #02042,#02043
--------N-21E3--SFDB-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES (OLD)
	AH = E3h subfn DBh
	DS:SI -> request buffer (see #02045)
	ES:DI -> reply buffer (see #02046)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E2h/SF=1Ah,AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DCh,AH=E3h/SF=DFh
SeeAlso: AH=E3h/SF=E1h,AX=F217h/SF=DBh

Format of NetWare "Get Connection's Open Files (old)" request buffer:
Offset	Size	Description	(Table 02045)
 00h	WORD	0005h (length of following data)
 02h	BYTE	DBh (subfunction "Get Connection's Open Files")
 03h	WORD	(big-endian) logical connection number
 05h	WORD	(big-endian) last record seen (0000h on first call)
SeeAlso: #02046,#02234 at AX=F217h/SF=DBh

Format of NetWare "Get Connection's Open Files (old)" reply buffer:
Offset	Size	Description	(Table 02046)
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" field on next call)
		0000h if no more records
 04h	BYTE	number of records following
 05h	var	array of File Information Records (see #02047)
SeeAlso: #02045,#02234 at AX=F217h/SF=DBh

Format of NetWare File Information Record:
Offset	Size	Description	(Table 02047)
 00h	BYTE	task number
 01h	BYTE	lock flags (see #02048)
 02h	BYTE	access flags (see #02049)
 03h	BYTE	lock type
		00h no lock
		FEh file lock
		FFh locked by Begin Share File Set
 04h	BYTE	volume number (00h-1Fh)
 05h	WORD	(big-endian) directory entry number
 07h 14 BYTEs	ASCIZ filename
SeeAlso: #02046

Bitfields for lock flags:
Bit(s)	Description	(Table 02048)
 0	file is locked
 1	file opened Shareable
 2	logged
 3	file opened Normal
 6	TTS holding lock
 7	Transaction Flag set on file
SeeAlso: #02047,#02049

Bitfields for access flags:
Bit(s)	Description	(Table 02049)
 0	file open for reading by calling station
 1	file open for writing by calling station
 2	deny reads by other stations
 3	deny writes by other stations
 4	file detached
 5	TTS Holding Detach
 6	TTS Holding Open
SeeAlso: #02047,#02048
--------N-21E3--SFDC-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE
	AH = E3h subfn DCh
	DS:SI -> request buffer (see #02050)
	ES:DI -> reply buffer (see #02051)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h
SeeAlso: AX=F217h/SF=DCh

Format of NetWare "Get Connections Using a File" request buffer:
Offset	Size	Description	(Table 02050)
 00h	WORD	length of following data (max 104h)
 02h	BYTE	DCh (subfunction "Get Connections Using a File")
 03h	WORD	(big-endian) last record (0000h on first call)
 05h	BYTE	directory handle
 06h	BYTE	length of file path
 07h  N BYTEs	ASCIZ file path
SeeAlso: #02051,#02235 at AX=F217h/SF=DCh

Format of NetWare "Get Connections Using a File" reply buffer:
Offset	Size	Description	(Table 02051)
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	(big-endian) count of tasks which have opened or logged file
 04h	WORD	(big-endian) count of tasks which have opened file
 06h	WORD	(big-endian) count of opens for reading
 08h	WORD	(big-endian) count of opens for writing
 0Ah	WORD	(big-endian) deny read count
 0Ch	WORD	(big-endian) deny write count
 0Eh	WORD	next request record (place in "last record" field on next call)
		0000h if no more records
 10h	BYTE	locked flag
		00h not locked exclusively
		else locked exclusively
 11h	BYTE	number of records following
 12h	var	array of File Usage Information Records (see #02052)
SeeAlso: #02050,#02235 at AX=F217h/SF=DCh

Format of NetWare File Usage Information Record:
Offset	Size	Description	(Table 02052)
 00h	WORD	(big-endian) logical connection number
 02h	BYTE	task number
 03h	BYTE	lock flags (see #02048)
 04h	BYTE	access flags (see #02049)
 05h	BYTE	lock type
		00h no lock
		FEh file lock
		FFh locked by Begin Share File Set
--------N-21E3--SFDD-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE
	AH = E3h subfn DDh
	DS:SI -> request buffer (see #02054)
	ES:DI -> reply buffer (see #02055)
Return: AL = status (00h,C6h,FFh) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DEh,AH=E3h/SF=DFh,AX=F217h/SF=DDh

(Table 02053)
Values for NetWare function status:
 00h	successful
 C6h	no console rights
 FFh	file not open
SeeAlso: #02025,#02094

Format of NetWare "Get Phys Record Locks by Conn and File" request buffer:
Offset	Size	Description	(Table 02054)
 00h	WORD	0016h (length of following data)
 02h	BYTE	DDh (subfunction "Get Physical Record Locks by Connection and
		  File")
 03h	WORD	(big-endian) logical connection number
 05h	WORD	(big-endian) last record seen (0000h on first call)
 07h	BYTE	volume number (00h-1Fh)
 08h	WORD	(big-endian) directory handle
 0Ah 14 BYTEs	ASCIZ filename
SeeAlso: #02055,#02236 at AX=F217h/SF=DDh

Format of NetWare "Get Phys Record Locks by Conn and File" reply buffer:
Offset	Size	Description	(Table 02055)
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" on next call)
		0000h if no more records
 04h	BYTE	number of physical record locks
 05h	BYTE	number of records following
 06h	var	array of Physical Record Lock Info records (see #02056)
SeeAlso: #02054,#02236 at AX=F217h/SF=DDh

Format of NetWare Physical Record Lock Info:
Offset	Size	Description	(Table 02056)
 00h	BYTE	task number
 01h	BYTE	lock status (see #02057)
 02h	DWORD	(big-endian) starting offset of record in file
 06h	DWORD	(big-endian) ending offset of record in file
SeeAlso: #02055

Bitfields for lock status:
Bit(s)	Description	(Table 02057)
 0	exclusive lock
 1	shareable lock
 2	logged
 6	lock held by TTS
SeeAlso: #02056
--------N-21E3--SFDE-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE
	AH = E3h subfn DEh
	DS:SI -> request buffer (see #02058)
	ES:DI -> reply buffer (see #02059)
Return: AL = status (00h,C6h,FFh) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AX=F217h/SF=DEh

Format of NetWare "Get Physical Record Locks by File" request buffer:
Offset	Size	Description	(Table 02058)
 00h	WORD	length of following data (max 104h)
 02h	BYTE	DEh (subfunction "Get Physical Record Locks by File")
 03h	WORD	(big-endian) last record seen (0000h on first call)
 05h	BYTE	directory handle
 06h	BYTE	length of filename
 07h  N BYTEs	ASCIZ filename
SeeAlso: #02059,#02237 at AX=F217h/SF=DEh

Format of NetWare "Get Physical Record Locks by File" reply buffer:
Offset	Size	Description	(Table 02059)
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" on next call)
		0000h if no more records
 04h	BYTE	number of physical record locks
 05h	BYTE	number of records following
 06h	var	array of Physical Record Lock Info records (see #02060)
SeeAlso: #02058,#02237 at AX=F217h/SF=DEh

Format of NetWare Physical Record Lock Info:
Offset	Size	Description	(Table 02060)
 00h	WORD	(big-endian) number of tasks logging record
 02h	WORD	(big-endian) number of tasks with shareable lock
 04h	DWORD	(big-endian) starting offset of record in file
 08h	DWORD	(big-endian) ending offset of record in file
 0Ch	WORD	(big-endian) logical connection number
 0Eh	BYTE	task number
 0Fh	BYTE	lock type
		00h none
		FEh file lock
		FFh Begin Share File Set lock
SeeAlso: #02059
--------N-21E3--SFDF-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION
	AH = E3h subfn DFh
	DS:SI -> request buffer (see #02061)
	ES:DI -> reply buffer (see #02062)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=E0h,AH=E3h/SF=E2h
SeeAlso: AX=F217h/SF=DFh

Format of NetWare "Get Logical Records by Connection" request buffer:
Offset	Size	Description	(Table 02061)
 00h	WORD	0005h (length of following data)
 02h	BYTE	DFh (subfunction "Get Logical Records By Connection")
 03h	WORD	(big-endian) logical connection number
 05h	WORD	(big-endian) last record seen (0000h on first call)
SeeAlso: #02062,#02238 at AX=F217h/SF=DFh

Format of NetWare "Get Logical Records by Connection" reply buffer:
Offset	Size	Description	(Table 02062)
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" field on next call)
		0000h if no more locked records
 04h	BYTE	number of records following
 05h	var	array of Logical Lock Information Records (see #02063)
SeeAlso: #02061,#02238 at AX=F217h/SF=DFh

Format of NetWare Logical Lock Information Record:
Offset	Size	Description	(Table 02063)
 00h	BYTE	task number
 01h	BYTE	lock status (see #02057)
 02h	BYTE	length of logical lock's name
 03h  N BYTEs	logical lock's name
SeeAlso: #02062
--------N-21E3--SFE0-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION
	AH = E3h subfn E0h
	DS:SI -> request buffer (see #02064)
	ES:DI -> reply buffer (see #02065)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
SeeAlso: AX=F217h/SF=E0h

Format of NetWare "Get Logical Record Information" request buffer:
Offset	Size	Description	(Table 02064)
 00h	WORD	length of following data (max 67h)
 02h	BYTE	E0h (subfunction "Get Logical Record Information")
 03h	WORD	(big-endian) last record seen (0000h on first call)
 05h	BYTE	length of logical record's name
 06h  N BYTEs	logical record's name
SeeAlso: #02065,#02239 at AH=E3h/SF=E0h

Format of NetWare "Get Logical Record Information" reply buffer:
Offset	Size	Description	(Table 02065)
 00h	WORD	(call) size of following results record (max 200h)
 02h	WORD	(big-endian) number of logical connections logging the record
 04h	WORD	(big-endian) number of logical connections with shareable lock
 06h	WORD	(big-endian) next request record (place in "last record" field
		  on next call)
 08h	BYTE	locked exclusively if nonzero
 09h	BYTE	number of records following
 0Ah	var	array of Task Information Records (see #02066)
SeeAlso: #02064,#02239 at AH=E3h/SF=E0h

Format of NetWare Task Information Record:
Offset	Size	Description	(Table 02066)
 00h	WORD	(big-endian) logical connection number
 02h	BYTE	task number
 03h	BYTE	lock status (see #02057)
SeeAlso: #02065
--------N-21E3--SFE1-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES
	AH = E3h subfn E1h
	DS:SI -> request buffer (see #02067)
	ES:DI -> reply buffer (see #02068)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
SeeAlso: AX=F217h/SF=E1h

Format of NetWare "Get Connection's Semaphores" request buffer:
Offset	Size	Description	(Table 02067)
 00h	WORD	0005h (length of following data)
 02h	BYTE	E1h (subfunction "Get Connection's Semaphores")
 03h	WORD	(big-endian) logical connection number
 05h	WORD	(big-endian) last record seen (0000h on first call)
SeeAlso: #02068,#02240 at AX=F217h/SF=E1h

Format of NetWare "Get Connection's Semaphores" reply buffer:
Offset	Size	Description	(Table 02068)
 00h	WORD	(call) size of following results record (max 1FEh)
 02h	WORD	next request record (place in "last record" field on next call)
 04h	BYTE	number of records following
 05h	var	array of Semaphore Information Records (see #02069)
SeeAlso: #02067,#02240 at AX=F217h/SF=E1h

Format of NetWare Semaphore Information Record:
Offset	Size	Description	(Table 02069)
 00h	WORD	(big-endian) open count
 02h	BYTE	semaphore value (-128 to 127)
 03h	BYTE	task number
 04h	BYTE	lock type
 05h	BYTE	length of semaphore's name
 06h  N BYTEs	semaphore's name
     14 BYTEs	filename
SeeAlso: #02068
--------N-21E3--SFE2-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION
	AH = E3h subfn E2h
	DS:SI -> request buffer (see #02070)
	ES:DI -> reply buffer (see #02071)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E1h,AX=F217h/SF=E2h

Format of NetWare "Get Semaphore Information" request buffer:
Offset	Size	Description	(Table 02070)
 00h	WORD	length of following data (max 83h)
 02h	BYTE	E2h (subfunction "Get LAN Driver's Configuration Information")
 03h	WORD	(big-endian) last record seen (0000h on first call)
 05h	BYTE	length of semaphore's name (01h-7Fh)
 06h  N BYTEs	semaphore's name
SeeAlso: #02071,#02241 at AX=F217h/SF=E2h

Format of NetWare "Get Semaphore Information" reply buffer:
Offset	Size	Description	(Table 02071)
 00h	WORD	(call) size of following results buffer (max 1FEh)
 02h	WORD	next request record (place in "last record" on next call)
		0000h if no more
 04h	WORD	(big-endian) number of logical connections opening semaphore
 06h	BYTE	semaphore value (-127 to 128)
 07h	BYTE	number of records following
 08h	var	array of Semaphore Information records (see #02072)
SeeAlso: #02071,#02241 at AX=F217h/SF=E2h

Format of NetWare Semaphore Information:
Offset	Size	Description	(Table 02072)
 00h	WORD	(big-endian) logical connection number
 02h	BYTE	task number
SeeAlso: #02071
--------N-21E3--SFE3-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO
	AH = E3h subfn E3h
	DS:SI -> request buffer (see #02073)
	ES:DI -> reply buffer (see #02074)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	the calling workstation must have console operator privileges
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E7h,AH=E3h/SF=E8h,AX=F217h/SF=E3h

Format of NetWare "Get LAN Driver's Configuration Info" request buffer:
Offset	Size	Description	(Table 02073)
 00h	WORD	0002h (length of following data)
 02h	BYTE	E3h (subfunction "Get LAN Driver's Configuration Information")
 03h	BYTE	LAN board (00h-03h)
SeeAlso: #02074,#02242 at AX=F217h/SF=E3h

Format of NetWare "Get LAN Driver's Configuration Info" reply buffer:
Offset	Size	Description	(Table 02074)
 00h	WORD	(call) 00ACh (size of following results buffer)
 02h  4 BYTEs	network number
 06h  6 BYTEs	node number
 0Ch	BYTE	LAN driver installed (00h no--remaining fields invalid)
 0Dh	BYTE	option number selected at configuration time
 0Eh 160 BYTEs	configuration text
		ASCIZ hardware type
		ASCIZ hardware settings
SeeAlso: #02073,#02242 at AX=F217h/SF=E3h
--------N-21E3--SFE5-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS
	AH = E3h subfn E5h
	DS:SI -> request buffer (see #02075)
	ES:DI -> reply buffer (see #02076)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	one must have console operator privileges to get statistics for logical
	  connections other than one's own
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=E1h
SeeAlso: AX=F217h/SF=E5h

Format of NetWare "Get Connection's Usage Statistics" request buffer:
Offset	Size	Description	(Table 02075)
 00h	WORD	0003h (length of following data)
 02h	BYTE	E5h (subfunction "Get Connection's Usage Statistics")
 03h	WORD	(big-endian) logical connection number
SeeAlso: #02076,#02243 at AX=F217h/SF=E5h

Format of NetWare "Get Connection's Usage Statistics" reply buffer:
Offset	Size	Description	(Table 02076)
 00h	WORD	(call) 0014h (size of following results record)
 02h	DWORD	(big-endian) clock ticks since server started
 06h  6 BYTEs	bytes read
 0Ch  6 BYTEs	bytes written
 12h	DWORD	(big-endian) total request packets
SeeAlso: #02075,#02243 at AX=F217h/SF=E5h
--------N-21E3--SFE6-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT
	AH = E3h subfn E6h
	DS:SI -> request buffer (see #02077)
	ES:DI -> reply buffer (see #02078)
Return: AL = status (00h,C6h) (see #02053)
Notes:	this function is supported by Advanced NetWare 2.1+
	one must have console operator privileges to get the free space for
	  other bindery objects
SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E8h,AH=E3h/SF=E9h

Format of NetWare "Get Bindery Object Disk Space Left" request buffer:
Offset	Size	Description	(Table 02077)
 00h	WORD	0005h (length of following data)
 02h	BYTE	E6h (subfunction "Get Bindery Object Disk Space Left")
 03h	DWORD	(big-endian) object ID
SeeAlso: #02078,#02244 at AX=F217h/SF=E6h

Format of NetWare "Get Bindery Object Disk Space Left" reply buffer:
Offset	Size	Description	(Table 02078)
 00h	WORD	(call) 000Fh (size of following results buffer)
 02h	DWORD	(big-endian) clock ticks elapsed since server started
 06h	DWORD	(big-endian) object ID
 0Ah	DWORD	(big-endian) 4K disk blocks available to user
 0Eh	BYTE	restrictions (00h enforced, FFh not enforced)
SeeAlso: #02077,#02244 at AX=F217h/SF=E6h
--------N-21E3--SFE7-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS
	AH = E3h subfn E7h
	DS:SI -> request buffer (see #02079)
	ES:DI -> reply buffer (see #02080)
Return: AL = status
	    00h successful
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=D3h,AH=E3h/SF=E8h
SeeAlso: AH=E7h"Novell",AX=F217h/SF=E7h

Format of NetWare "Get File Server LAN I/O Statistics" request buffer:
Offset	Size	Description	(Table 02079)
 00h	WORD	0001h (length of following data)
 02h	BYTE	E7h (subfunction "Get File Server LAN I/O Statistics")
SeeAlso: #02080,#02245 at AX=F217h/SF=E7h

Format of NetWare "Get File Server LAN I/O Statistics" reply buffer:
Offset	Size	Description	(Table 02080)
 00h	WORD	(call) 0042h (size of following results buffer)
 02h	DWORD	clock ticks since system started
 06h	WORD	total routing buffers
 08h	WORD	maximum routing buffers used
 0Ah	WORD	current routing buffers used
 0Ch	DWORD	total file service packets
 10h	WORD	number of file service packets buffered
 12h	WORD	number of invalid connection packets
 14h	WORD	packets with bad logical connection numbers
 16h	WORD	number of packets received during processing
 18h	WORD	number of requests reprocessed
 1Ah	WORD	packets with bad sequence numbers
 1Ch	WORD	number of duplicate replies sent
 1Eh	WORD	number of acknowledgements sent
 20h	WORD	number of packets with bad request types
 22h	WORD	requests to attach to ws for which a request is being processed
 24h	WORD	requests to attach from ws which is already attaching
 26h	WORD	number of forged detach requests
 28h	WORD	detach requests with bad connection number
 2Ah	WORD	requests to detach from ws for which requests pending
 2Ch	WORD	number of cancelled replies
 2Eh	WORD	packets discarded due to excessive hop count
 30h	WORD	packets discarded due to unknown net
 32h	WORD	incoming packets discarded for lack of DGroup buffer
 34h	WORD	outgoing packets discarded due to lack of buffer
 36h	WORD	received packets destined for B,C, or D side drivers
 38h	DWORD	number of NetBIOS packets propagated through net
 3Ch	DWORD	total number of non-file-service packets
 40h	DWORD	total number of routed packets
Note:	all fields except the first are big-endian
SeeAlso: #02080,#02245 at AX=F217h/SF=E7h
--------N-21E3--SFE8-------------------------
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION
	AH = E3h subfn E8h
	DS:SI -> request buffer (see #02081)
	ES:DI -> reply buffer (see #02082)
Return: AL = status (00h,C6h) (see #02053)
Note:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E7h
SeeAlso: AX=F217h/SF=E8h

Format of NetWare "Get File Server Misc Information" request buffer:
Offset	Size	Description	(Table 02081)
 00h	WORD	0001h (length of following data)
 02h	BYTE	E8h (subfunction "Get File Server Misc Information")
SeeAlso: #02082,#02246 at AX=F217h/SF=E8h

Format of NetWare "Get File Server Misc Information" reply buffer:
Offset	Size	Description	(Table 02082)
 00h	WORD	(call) size of following results buffer (max 0048h)
 02h	DWORD	(big-endian) clock ticks since system started
 06h	BYTE	CPU type
		00h Motorola 68000
		01h Intel 8086, 8088, or V20
		02h Intel 80286+
 07h	BYTE	reserved
 08h	BYTE	number of service processes in server
 09h	BYTE	server utilization in percent
 0Ah	WORD	(big-endian) maximum bindery objects set by configuration
		0000h = unlimited
 0Ch	WORD	(big-endian) maximum number of bindery objects used
 0Eh	WORD	(big-endian) current number of bindery objects in use
 10h	WORD	(big-endian) total server memory in KB
 12h	WORD	(big-endian) wasted server memory in KB
		normally 0000h
 14h	WORD	number of records following (01h-03h)
 16h	var	array of Dynamic Memory Information records (see #02083)
SeeAlso: #02081,#02246 at AX=F217h/SF=E8h

Format of NetWare Dynamic Memory Information:
Offset	Size	Description	(Table 02083)
 00h	DWORD	(big-endian) total dynamic space
 04h	DWORD	(big-endian) maximum dynamic space used
 08h	DWORD	(big-endian) current dynamic space usage
--------N-21E3--SFE9-------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION
	AH = E3h subfn E9h
	DS:SI -> request buffer (see #02084)
	ES:DI -> reply buffer (see #02085)
Return: AL = status
	    00h successful
Notes:	this function is supported by Advanced NetWare 2.1+
SeeAlso: AH=DAh,AH=E2h/SF=15h,AX=F217h/SF=E9h

Format of NetWare "Get Volume Information" request buffer:
Offset	Size	Description	(Table 02084)
 00h	WORD	0002h (length of following data)
 02h	BYTE	E9h (subfunction "Get Volume Information")
 03h	BYTE	directory handle
SeeAlso: #02085,#02247 at AX=F217h/SF=E9h

Format of NetWare "Get Volume Information" reply buffer:
Offset	Size	Description	(Table 02085)
 00h	WORD	(call) 0028h (length of following results buffer)
 02h	DWORD	(big-endian) elapsed system time
 06h	BYTE	volume number
 07h	BYTE	logical drive number
 08h	WORD	(big-endian) sectors per block
 0Ah	WORD	(big-endian) starting block
 0Ch	WORD	(big-endian) total blocks on volume
 0Eh	WORD	(big-endian) blocks available on volume
 10h	WORD	(big-endian) total directory slots
 12h	WORD	(big-endian) directory slots available
 14h	WORD	(big-endian) maximum directory entries actually used
 16h	BYTE	flag: volume hashed if nonzero
 17h	BYTE	flag: volume cached if nonzero
 18h	BYTE	flag: volume removable if nonzero
 19h	BYTE	flag: volume mounted if nonzero
 1Ah 16 BYTEs	NUL-padded volume name
SeeAlso: #02084,#02247 at AX=F217h/SF=E9h
--------N-21E4-------------------------------
INT 21 O - Novell NetWare - SET FILE ATTRIBUTES (FCB)
	AH = E4h
	CL = file attributes (see #02086)
	DX:DX -> FCB (see #01345 at AH=0Fh)
Return: AL = error code
Note:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
SeeAlso: AX=4301h

Bitfields for NetWare file attributes:
Bit(s)	Description	(Table 02086)
 0	read only
 1	hidden
 2	system
 7	shareable
--------v-21E4-------------------------------
INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK
	AH = E4h
Return: AH = 04h if resident
SeeAlso: AH=E1h"VIRUS",AH=E7h"VIRUS"
--------E-21E400-----------------------------
INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER
	AX = E400h
	???
Return: ???
Note:	protected mode only???
--------T-21E400-----------------------------
INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
	AX = E400h
Return: AL = program status
	    00h if DoubleDOS not present
	    01h if running in visible DoubleDOS partition
	    02h if running in the invisible DoubleDOS partition
SeeAlso: AH=E5h"DoubleDOS",AX=F400h
--------E-21E402-----------------------------
INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE
	AX = E402h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=E403h
--------E-21E403-----------------------------
INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE
	AX = E403h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=E402h
--------N-21E5-------------------------------
INT 21 O - Novell NetWare - UPDATE FILE SIZE (FCB)
	AH = E5h
	DS:DX -> FCB (see #01345 at AH=0Fh)
Return: AL = (unreliable) return code
Notes:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
	on success, NetWare sets AL to zero; on errors it restores AL
--------T-21E5-------------------------------
INT 21 - DoubleDOS - OTHER PROGRAM STATUS
	AH = E5h
Return: AL = status
	    00h no program in other partition
	    01h program in other partition is running
	    02h program in other partition is suspended
SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"
--------E-21E500-----------------------------
INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY
	AX = E500h
	???
Return: ???
SeeAlso: AX=E501h
--------E-21E501-----------------------------
INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION
	AX = E501h
	???
Return: ???
SeeAlso: AX=E500h
--------E-21E6-------------------------------
INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE
	AH = E6h
	???
Return: ???
SeeAlso: AH=E2h"OS/286"
--------N-21E6-------------------------------
INT 21 O - Novell NetWare - COPY FILE TO FILE (FCB)
	AH = E6h
	CX:DX = number of bytes to copy
	DS:SI -> opened source FCB
	ES:DI -> opened destination FCB
Return: AL = error code
	CX = ???
	DX = ???
Note:	this function was added in NetWare 4.0, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
--------E-21E7-------------------------------
INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT
	AH = E7h
	???
Return: ???
SeeAlso: AH=E8h"OS/286",AH=E9h"OS/286",AH=EAh"OS/286"
--------N-21E7-------------------------------
INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME
	AH = E7h
	DS:DX -> date/time buffer (see #02087)
Return: AL = error code
	    00h successful
	    FFh unsuccessful
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
	  Alloy NTNX, and Banyan VINES
SeeAlso: AH=2Ah,AH=2Ch,AX=5FC0h,AH=E3h/SF=CAh,AX=F214h

Format of NetWare date/time buffer:
Offset	Size	Description	(Table 02087)
 00h	BYTE	year (80-99 = 1980-1999, 0-79 = 2000-2079)
 01h	BYTE	month (1=Jan)
 02h	BYTE	day
 03h	BYTE	hours
 04h	BYTE	minutes
 05h	BYTE	seconds
 06h	BYTE	day of week (0 = Sunday) (Novell and NTNX only)
SeeAlso: #02106
--------v-21E7-------------------------------
INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK
	AH = E7h
Return: AH = 78h if resident
SeeAlso: AH=E4h"VIRUS",AX=EC59h
--------E-21E8-------------------------------
INT 21 - OS/286, OS/386 - SEGMENT CREATION
	AH = E8h
	AL = type
	    00h data segment
	    01h data window/alias
	    02h real segment
	    03h real window/alias
		CX:DX = size in bytes
		SI:BX -> start of desired memory block
		Return:	AX = selector
	    06h shareable segment
	???
Return: ???
SeeAlso: AH=E7h"OS/286",AH=E9h"OS/286"
--------N-21E8-------------------------------
INT 21 O - Novell NetWare, Alloy NTNX - SET FCB RE-OPEN MODE
	AH = E8h
	DL = mode
	    00h no automatic re-open
	    01h auto re-open
Return: AL = error code
Desc:	provided backward compatibility with a bug in CP/M and early DOS vers
Note:	this function was added in NetWare 4.6, but was removed some time prior
	  to Advanced NetWare 2.15, and is no longer listed in current Novell
	  documentation
--------T-21E8-------------------------------
INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
	AH = E8h
	AL = program for which to set flags (00h this program, 01h other)
	DX = keyboard control flags (see #02088)
Return: DX = previous flags
Notes:	disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
	  disabling any of the other keystrokes disables them completely
	identical to AH=F8h
SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS"
SeeAlso: AH=F8h"DoubleDOS"

Bitfields for DoubleDOS keyboard control flags:
Bit(s)	Description	(Table 02088)
 0	menu
 1	exchange
 2	entire keyboard enable/disable
 3	Ctrl-C
 4	Ctrl-PrtSc
 5	Alt/Erase
 6	Ctrl-Break
 7	Ctrl-NumLock
 8	shift-PrtSc
 9-13	undefined
 14	cancel key (clear keyboard buffer)
 15	suspend key
Note:	setting a enables the corresponding key or operatin, clearing a
	  disables it
--------E-21E9-------------------------------
INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS
	AH = E9h
	AL = function
	    01h change code segment parameters
	    02h change data segment parameters
	    05h adjust segment limit
	    06h change segment base address
	???
Return: ???
SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=EAh"OS/286",AH=EDh"OS/286"
SeeAlso: INT 31/AX=0007h,INT 31/AX=0008h
--------T-21E9-------------------------------
INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
	AH = E9h
	AL = new priority (see #02089)
Return: AL = priority setting if AL=05h on entry
Note:	identical to AH=F9h
SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS"

(Table 02089)
Values for DoubleDOS timesharing priority:
 00h	visible program gets 70%, invisible gets 30% (default)
 01h	visible program gets 50%, invisible gets 50%
 02h	visible program gets 30%, invisible gets 70%
 03h	Top program gets 70%, bottom program gets 30%
 04h	Top program gets 30%, bottom program gets 70%
 05h	get current priority
--------N-21E900-----------------------------
INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE
	AX = E900h
	DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31)
Return: AL = directory handle
	AH = flags (drive not mapped if none set)
	    bit 0: permanent handle
	    bit 1: temporary handle
	    bit 7: mapped to local drive
Note:	this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=01h,AH=E2h/SF=0Ah
--------v-21E900-----------------------------
INT 21 - VIRUS - "Dark End" - INSTALLATION CHECK
	AX = E900h
Return: AX = 1234h if resident
SeeAlso: AX=DEFEh"VIRUS",AX=EC27h"VIRUS"
--------N-21E905-----------------------------
INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY
	AX = E905h
	BL = drive number (0=default, 1=A:, ...)
	DS:DX -> ASCIZ path for fake root (may include server name or be empty)
Return: CF set on error
	    AL = error code (03h,0Fh,11h) (see #01680 at AH=59h/BX=0000h)
	CF clear if successful
Note:	if drive is not currently mapped, a drive mapping will be created
SeeAlso: AX=E906h
--------N-21E906-----------------------------
INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY
	AX = E906h
	BL = drive number (0=default, 1=A:, ...)
Return: AL = completion code
Note:	drive remains mapped
SeeAlso: AX=E905h
--------N-21E907-----------------------------
INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH
	AX = E907h
	BL = drive number (0=default, 1=A:, ...)
Return: AL = number of directories below the fake root
	    FFh if no fake root assigned
SeeAlso: AX=E905h
--------N-21E908BL00-------------------------
INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS
	AX = E908h
	BL = 00h	don't return '.' or '..' during directory scans
	   = nonzero	directory scans will return '.' or '..' entries
Return: BL = previous show-dots setting
--------N-21E909-----------------------------
INT 21 - Novell NetWare - NetWare shell - CONVERT DOS FILE HANDLE TO NETWARE
	AX = E909h
	BX = DOS file handle
Return: AX = 0000h if successful
	    BX:CX:DX = NetWare file handle
Notes:	this function is partially a reverse of "AttachHandle" (AH=B4h)
	many NetWare 3.x functions use a four-byte file handle, which appears
	  to be the high four bytes of the six-byte NetWare handle
SeeAlso: AH=B4h"NetWare"
--------E-21EA-------------------------------
INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT
	AH = EAh
	???
Return: ???
Note:	protected mode only???
SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=E9h"OS/286"
--------N-21EA-------------------------------
INT 21 - Novell NetWare, Alloy NTNX - RETURN SHELL VERSION
	AH = EAh
	AL = return version environment string
	    00h		don't return string
	    nonzero	get environment string
		ES:DI -> 40-byte buffer for string
		Return: buffer filled with three null-terminated entries:
			major operating system
			version
			hardware type
Return: AH = operating system (00h = MS-DOS)
	AL = hardware type
	    00h IBM PC
	    01h Victor 9000
	BH = major shell version
	BL = minor shell version
	CH = (v3.01+) shell type
	    00h conventional memory
	    01h expanded memory
	    02h extended memory
	CL = shell revision number
Note:	this function is supported by NetWare 4.6 and Advanced NetWare 1.0+
SeeAlso: INT DF"Victor"
--------T-21EA-------------------------------
INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
	AH = EAh
Return: task switching turned off
SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS"
SeeAlso: INT FA"DoubleDOS"
--------N-21EB-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE
	AH = EBh
	DS:DX -> ASCIZ filename
	if function C6h lock mode 01h:
	    AL = flags
		00h log file only
		01h lock as well as log file
		    BP = lock timeout in timer ticks (1/18 second)
			0000h = don't wait if file already locked
Return: AL = status (see #02090)
Desc:	add the location and size of the specified file to the log table and
	  optionally lock the file
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=BCh"NetWare",AH=CAh,AH=D0h,AH=ECh"NetWare",AH=EDh"NetWare"

(Table 02090)
Values for NetWare status:
 00h	successful
 96h	no dynamic memory for file
 FEh	timed out
 FFh	failed
SeeAlso: #02053
--------T-21EB-------------------------------
INT 21 - DoubleDOS - TURN ON TASK SWITCHING
	AH = EBh
Return: task switching turned on
SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS"
SeeAlso: INT FB"DoubleDOS"
--------E-21EB00-----------------------------
INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS
	AX = EB00h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=EB02h,AX=EB04h,INT 31/AX=0506h
--------E-21EB02-----------------------------
INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET
	AX = EB02h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=EB00h,AX=EB04h
--------E-21EB03-----------------------------
INT 21 - OS/386 VMM - FREE MAPPED PAGES
	AX = EB03h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=EB05h,INT 31/AX=0801h
--------E-21EB04-----------------------------
INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET
	AX = EB04h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=EB00h,AX=EB02h
--------E-21EB05-----------------------------
INT 21 - OS/386 VMM - MAP PAGES
	AX = EB05h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=EB03h,INT 31/AX=0800h
--------E-21EB06-----------------------------
INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY
	AX = EB06h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=EB07h,INT 31/AX=0600h
--------E-21EB07-----------------------------
INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES
	AX = EB07h
	???
Return: ???
Note:	protected mode only???
SeeAlso: AX=EB06h,INT 31/AX=0601h
--------E-21EC-------------------------------
INT 21 - OS/286, OS/386 - BLOCK TRANSFER
	AH = ECh
	???
Return: ???
--------N-21EC-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE
	AH = ECh
	DS:DX -> ASCIZ filename
Return: AL = status
	    00h successful
	    FFh file not found
Desc:	unlock the specified file but retain it in the log table
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=CDh,AH=EBh"NetWare",AH=EDh"NetWare"
--------T-21EC-------------------------------
INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
	AH = ECh
Return: ES = segment of virtual screen
Desc:	determine the address of the virtual screen to which the program
	  should write instead of the actual video memory, so that the
	  multitasked programs do not interfere with each other's output
Notes:	screen address can change if task-switching is on!
	identical to AH=FCh
SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"
--------v-21EC27-----------------------------
INT 21 - VIRUS - "Halloween.1839" - INSTALLATION CHECK
	AX = EC27h
Return: AX = 4A52h ("JR") if resident
SeeAlso: AH=E7h"VIRUS",AX=E900h"VIRUS",AX=EC59h"VIRUS"
--------v-21EC59-----------------------------
INT 21 - VIRUS - "Terror" - INSTALLATION CHECK
	AX = EC59h
Return: BP = EC59h if resident
SeeAlso: AX=EC27h"VIRUS",AH=EEh"VIRUS"
--------E-21ED-------------------------------
INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR
	AH = EDh
	???
Return: ???
Note:	protected mode only???
SeeAlso: AH=E9h"OS/286"
--------N-21ED-------------------------------
INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE
	AH = EDh
	DS:DX -> ASCIZ filename
Return: AL = status
	    00h successful
	    FFh no files found
Desc:	unlock the file and remove it from the log table
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=CBh"NetWare",AH=CEh,AH=CFh,AH=EBh"NetWare",AH=ECh"NetWare"
--------N-21EE-------------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS
	AH = EEh
Return: CX:BX:AX = six-byte physical address
Note:	this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
	  Alloy NTNX
SeeAlso: AH=E3h/SF=13h
--------T-21EE-------------------------------
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
SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"
--------v-21EE-------------------------------
INT 21 - VIRUS - "Jerusalem-G", "Pregnant", "Barrotes" - INSTALLATION CHECK
	AH = EEh
Return: AX = 0300h if "Jerusalem-G" resident
	AL = 05h if "Pregnant" resident
	AL = FEh if "Barrotes" resident
SeeAlso: AH=DDh"VIRUS",AX=EC59h,AX=EEE7h"VIRUS"
--------v-21EEE7-----------------------------
INT 21 - VIRUS - "GingerBread" - INSTALLATION CHECK
	AX = EEE7h
Return: AX = D703h if installed
SeeAlso: AH=EEh"VIRUS",AH=EFh"VIRUS"
--------v-21EF-------------------------------
INT 21 - VIRUS - "Mabuhay"/"June 12th" - INSTALLATION CHECK
	AH = EFh
Return: AX = 025Bh if resident
SeeAlso: AX=EC27h"VIRUS",AH=EEh"VIRUS",AH=F0h"VIRUS"
--------N-21EF00-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE
	AX = EF00h
Return: ES:SI -> network shell's 32-byte drive handle table
	AX = 0000h
Notes:	this function is supported by Advanced NetWare 1.0+
	each byte in the drive handle table contains the directory handle for
	  the corresponding drive, or 00h if not mapped to a directory
SeeAlso: AX=EF01h,AX=EF02h,AX=EF03h,AX=EF04h
--------N-21EF01-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE
	AX = EF01h
Return: ES:SI -> network shell's 32-byte drive flag table (see #02091)
	AX = 0000h
Notes:	this function is supported by Advanced NetWare 1.0+
	each byte in the drive flag table corresponds to a drive
SeeAlso: AX=EF00h,AX=EF02h,AX=EF03h

(Table 02091)
Values in NetWare drive flag table:
 00h	drive is not mapped
 01h	permanent network drive
 02h	temporary network drive
 80h	mapped to local drive
 81h	local drive used as permanent network drive
 82h	local drive used as temporary network drive
--------N-21EF02-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID TABLE
	AX = EF02h
Return: ES:SI -> network shell's 32-byte drive conection ID table
	AX = 0000h
Notes:	this function is supported by Advanced NetWare 1.0+
	each byte in the connection ID table corresponds to a drive and
	  contains either the connection ID (1-8) of the server for that drive
	  or 00h if the drive is not mapped to a file server
SeeAlso: AX=EF01h,AX=EF03h,AX=F002h
--------N-21EF03-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID TABLE
	AX = EF03h
Return: ES:SI -> network shell's connection ID table (see #02092)
	AX = 0000h
Note:	this function is supported by Advanced NetWare 1.0+
SeeAlso: AX=EF00h,AX=EF02h,AX=EF04h,AX=F002h

Format of NetWare connection ID table [one entry of eight-element array]:
Offset	Size	Description	(Table 02092)
 00h	BYTE	in-use flag
		E0h AES temporary
		F8h IPX in critical section
		FAh processing
		FBh holding
		FCh AES waiting
		FDh waiting
		FEh receiving
		FFh sending
 01h	BYTE	order number assigned to server (1-8)
 02h	DWORD	(big-endian) file server's network address
 06h  6 BYTEs	(big-endian) file server's node address
 0Ch	WORD	(big-endian) socket number
 0Eh	WORD	(big-endian) base receive timeout in clock ticks
 10h  6 BYTEs	(big-endian) preferred routing node
 16h	BYTE	packet sequence number
 17h	BYTE	connection number (FFh = no connection)
 18h	BYTE	connection status (00h if active)
 19h	WORD	(big-endian) maximum receive timeout in clock ticks
 1Bh	WORD	connection number (if > FAh)
 1Dh	BYTE	major version of NetWare
 1Eh	BYTE	minor version of NetWare
 1Fh	BYTE	server flags
		bit 0: server is burst enabled
--------N-21EF04-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME TABLE
	AX = EF04h
Return: ES:SI -> network shell's file server name table (see #02093)
	AX = 0000h
Note:	this function is supported by Advanced NetWare 1.0+
SeeAlso: AX=EF03h

Format of file server name table:
Offset	Size	Description	(Table 02093)
 00h 48 BYTEs	ASCIZ server name for first entry in connection ID table
 30h 48 BYTEs	ASCIZ server name for second entry in connection ID table
	...
150h 48 BYTEs	ASCIZ server name for eighth entry in connection ID table
--------T-21F0-------------------------------
INT 21 - DoubleDOS - MENU CONTROL
	AH = F0h
	AL = subfunction
	    01h exchange tasks
	    73h resume invisible job if suspended
	    74h kill other job
	    75h suspend invisible job
Note:	identical to AH=E0h
SeeAlso: AH=E0h"DoubleDOS"
--------v-21F0-------------------------------
INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK
	AH = F0h
Return: AX = 0300h if resident
SeeAlso: AH=EEh"VIRUS",AX=F078h"VIRUS"
--------N-21F000-----------------------------
INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID
	AX = F000h
	DL = connection ID of prefered file server (1-8) or 00h for none
Notes:	this function is supported by Advanced NetWare 1.0+
	the preferred connection ID is set to 00h by the shell on EOJ
SeeAlso: AH=D6h,AX=EF03h,AX=F001h,AX=F002h,AX=F005h
--------N-21F001-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID
	AX = F001h
Return: AL = connection ID of preferred file server (1-8), 00h if not set
Notes:	this function is supported by Advanced NetWare 1.0+
	the preferred connection ID is set to 00h by the shell on EOJ
SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
--------N-21F002-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID
	AX = F002h
Return: AL = connection ID of current default file server (1-8) (see AX=EF03h)
Note:	this function is supported by Advanced NetWare 1.0+
SeeAlso: AX=EF03h,AX=F000h,AX=F004h
--------N-21F003-----------------------------
INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS
	AX = F003h
Return: AH = status
	    00h not active
	    FFh active
		AL = connection ID (01h-08h)
Note:	this function is supported by Advanced NetWare 1.0+
SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h,AH=DFh/DL=04h
--------N-21F004-----------------------------
INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID
	AX = F004h
	DL = connection ID of primary file server (1-8) or 00h for none
Note:	this function is supported by Advanced NetWare 2.0+
SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
--------N-21F005-----------------------------
INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID
	AX = F005h
Return: AL = connection ID of primary file server (1-8), 00h if not set
Notes:	this function is supported by Advanced NetWare 2.0+
	by default, the primary file server is the one from which the login
	  script executed; it is set to 00h if the workstation is not logged in
	  and when it detaches from its primary file server
SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F004h
--------v-21F078-----------------------------
INT 21 - VIRUS - "Burgler/H" - INSTALLATION CHECK
	AX = F078h
Return: AX = 0000h if installed
SeeAlso: AH=F0h"VIRUS",AH=F1h"VIRUS"
--------N-21F1-------------------------------
INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION
	AH = F1h
	AL = subfunction
	    00h attach to file server
		DL = preferred file server (01h-08h)
	    01h detach from file server
		DL = connection ID
	    02h logout from file server
		DL = connection ID
Return: AL = status (see #02094)
Note:	these functions are supported by Advanced NetWare 1.0+
SeeAlso: AH=D7h"NetWare",AH=E3h/SF=14h

(Table 02094)
Values for NetWare function status:
 00h	successful
 F8h	already attached to server
 F9h	connection table full
 FAh	no more server slots
 FCh	unknown file server
 FEh	server bindery locked
 FFh	no response from server, or connection does not exist
SeeAlso: #02053,#02350
--------T-21F1-------------------------------
INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
	AH = F1h
SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS"
SeeAlso: AH=F8h"DoubleDOS"
--------v-21F1-------------------------------
INT 21 - VIRUS - "F1-337" - ???
	AH = F1h
	???
Return: ???
SeeAlso: AH=F0h"VIRUS",AX=F1E9h
--------v-21F1E9-----------------------------
INT 21 - VIRUS - "Tremor" - INSTALLATION CHECK
	AX = F1E9h
Return: AX = installation state
	    CADEh installed, and calling program is infected
	    F100h not installed (normal DOS return value)
	    else  installed, but calling program is not infected
SeeAlso: AH=F1h"VIRUS",AX=F2AAh
--------N-21F2-------------------------------
INT 21 u - Novell NetWare v3.01+ shell interface - MULTIPLEXOR
	AH = F2h
	AL = function (see #02095)
	    (subfunction stored in various places in the request packet,
	    depending on function number; see individual entries)
	CX = length of request buffer
	DX = length of reply buffer (0000h if no reply packet)
	DS:SI -> request buffer
	ES:DI -> reply buffer (ignored if DX=0000h)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled as appropriate for function
Note:	this is a multiplexor providing a "raw" interface to the underlying
	  NetWare Core Protocol.  Many functions which were accessed via a
	  separate AH function in older versions can also be accessed here,
	  but some NetWare 3.x calls appear to be available only here.
SeeAlso: AX=F244h,AX=F268h/SF=3Dh,#02875

(Table 02095)
Values for NetWare Core Protocol functions:
Fnc/Subfn	Description
01h	File Set Lock
02h	File Release Lock
03h	Log File (old)					(see AX=F203h)
04h	Lock File Set (old)				(see AX=F204h)
05h	Release File				(see AH=CCh,AH=ECh"NetWare")
06h	Release File Set				(see AH=CDh"NetWare")
07h	Clear File					(see AH=CEh,AX=F207h)
08h	Clear File Set					(see AX=F208h)
09h	Log Logical Record (old)			(see AH=D0h"NetWare")
0Ah	Lock Logical Record Set (old)			(see AX=F20Ah)
0Bh	Clear Logical Record				(see AX=F20Bh)
0Ch	Release Logical Record				(see AH=D2h"NetWare")
0Dh	Release Logical Record Set			(see AH=D3h"NetWare")
0Eh	Clear Logical Record Set			(see AX=F20Eh)
0Fh	Allocate Resource				(see AH=D8h"NetWare")
10h	Deallocate Resource				(see AH=D9h"NetWare")
11h/xxh	print spooling					(see AH=E0h"NetWare")
11h/06h Get Printer Status
11h/0Ah	Get Printer Queue
12h	Get Volume Info with Number			(see AH=DAh"NetWare")
13h	Get Station Number				(see AH=DCh"NetWare")
14h	Get File Server Date and Time (NW v2.2+)	(see AH=E7h"NetWare")
15h/01h Get Broadcast Message (old)			(see AX=F215h/SF=01h)
15h/02h Disable Broadcasts				(see AX=F215h/SF=02h)
15h/03h Enable Broadcasts				(see AX=F215h/SF=03h)
15h/08h Check Pipe Status		(see AH=E1h/SF=08h,AX=F215h/SF=08h)
15h/09h Broadcast to Console		(see AH=E1h/SF=09h,AX=F215h/SF=09h)
15h/0Bh Get Broadcast Message				(see AX=F215h/SF=0Bh)
16h/00h Set Directory Handle				(see AX=F216h/SF=00h)
16h/01h Get Directory Path				(see AX=F216h/SF=01h)
16h/02h Scan Directory Information			(see AX=F216h/SF=02h)
16h/03h	Get Effective Directory Rights (old)		(see AX=F216h/SF=03h)
16h/04h Modify Maximum Rights Mask			(see AX=F216h/SF=04h)
16h/05h Get Volume Number				(see AX=F216h/SF=05h)
16h/06h Get Volume Name					(see AX=F216h/SF=06h)
16h/0Ah Create Directory				(see AX=F216h/SF=0Ah)
16h/0Bh Delete Directory				(see AX=F216h/SF=0Bh)
16h/0Ch Scan Directory for Trustees			(see AX=F216h/SF=0Ch)
16h/0Dh Add Trustee to Directory			(see AX=F216h/SF=0Dh)
16h/0Eh Delete Trustee from Directory			(see AX=F216h/SF=0Eh)
16h/0Fh	Rename Directory				(see AX=F216h/SF=0Fh)
16h/10h Purge Erased Files (old)			(see AX=F216h/SF=10h)
16h/11h Recover Erased File (old)			(see AX=F216h/SF=11h)
16h/12h Alloc Permanent Directory Handle		(see AX=F216h/SF=12h)
16h/13h Alloc Temporary Directory Handle		(see AX=F216h/SF=13h)
16h/14h Deallocate Directory Handle			(see AX=F216h/SF=14h)
16h/15h Get Volume Info with Handle			(see AX=F216h/SF=15h)
16h/16h Alloc Special Temporary Directory Handle	(see AX=F216h/SF=16h)
16h/19h Set Directory Information			(see AX=F216h/SF=19h)
16h/1Ah Get Path Name of Volume-Directory Number Pair	(see AX=F216h/SF=1Ah)
16h/1Bh	Scan Salvageable Files (old)			(see AX=F216h/SF=1Bh)
16h/1Ch	Recover Salvageable File (old)			(see AX=F216h/SF=1Ch)
16h/1Dh	Purge Salvageable File (old)			(see AX=F216h/SF=1Dh)
16h/1Eh	Scan a Directory				(see AX=F216h/SF=1Eh)
16h/1Fh	Get Directory Entry				(see AX=F216h/SF=1Fh)
16h/20h	Scan Volume's User Disk Restrictions		(see AX=F216h/SF=20h)
16h/21h	Add User Disk Space Restriction			(see AX=F216h/SF=21h)
16h/22h	Remove User Disk Space Restrictions		(see AX=F216h/SF=22h)
16h/23h	Scan Directory Space Restrictions		(see AX=F216h/SF=23h)
16h/24h	Set Directory Disk Space Restriction		(see AX=F216h/SF=24h)
16h/25h	Set Directory File Information			(see AX=F216h/SF=25h)
16h/26h	Scan File or Directory For Extended Trustees	(see AX=F216h/SF=26h)
16h/27h	Add Extended Trustee to Directory or File	(see AX=F216h/SF=27h)
16h/28h	Scan Directory Disk Space			(see AX=F216h/SF=28h)
16h/29h	Get Object Disk Usage and Restrictions		(see AX=F216h/SF=29h)
16h/2Ah	Get Effective Rights				(see AX=F216h/SF=2Ah)
16h/2Bh	Remove Extended Trustee from Dir or File	(see AX=F216h/SF=2Bh)
16h/2Ch	Get Volume Usage				(see AX=F216h/SF=2Ch)
16h/2Dh	Get Directory Information			(see AX=F216h/SF=2Dh)
16h/2Eh	Rename or Move					(see AX=F216h/SF=2Eh)
16h/2Fh	Get Name Space Information			(see AX=F216h/SF=2Fh)
16h/30h	Get Name Space Directory Entry			(see AX=F216h/SF=30h)
16h/31h	Open Data Stream				(see AX=F216h/SF=31h)
16h/32h	Get Object Effective Rights			(see AX=F216h/SF=32h)
16h/33h	Get Extended Volume Info			(see AX=F216h/SF=33h)
17h/01h Change User Password (old)			(see AX=F217h/SF=01h)
17h/02h Get User Connection List (old)			(see AX=F217h/SF=02h)
17h/0Ch Verify Serialization				(see AX=F217h/SF=0Ch)
17h/0Eh Get Disk Utilization				(see AX=F217h/SF=0Eh)
17h/0Fh Scan File Information				(see AX=F217h/SF=0Fh)
17h/10h Set File Information				(see AX=F217h/SF=10h)
17h/11h Get File Server Information			(see AX=F217h/SF=11h)
17h/12h Get Network Serial Number			(see AX=F217h/SF=12h)
17h/13h Get Internet Address (old)			(see AX=F217h/SF=13h)
17h/14h Login Object					(see AX=F217h/SF=14h)
17h/15h Get Object Connection List (old)		(see AX=F217h/SF=15h)
17h/16h	Get Connection Information (old)		(see AX=F217h/SF=1Ch)
17h/17h	Get Encryption Key				(see AX=F217h/SF=17h)
17h/18h	Login Object Encrypted				(see AX=F217h/SF=18h)
17h/1Ah Get Internet Address				(see AX=F217h/SF=1Ah)
17h/1Bh Get Object Connection List			(see AX=F217h/SF=1Bh)
17h/1Ch	Get Connection Information			(see AX=F217h/SF=1Ch)
17h/1Fh	Get Connection List from Object			(see AX=F217h/SF=1Fh)
17h/32h Create Bindery Object				(see AX=F217h/SF=32h)
17h/33h Delete Bindery Object				(see AX=F217h/SF=33h)
17h/34h Rename Bindery Object				(see AX=F217h/SF=34h)
17h/35h Get Bindery Object ID				(see AX=F217h/SF=35h)
17h/36h Get Bindery Object Name				(see AX=F217h/SF=36h)
17h/37h Scan Bindery Object				(see AX=F217h/SF=37h)
17h/38h Change Bindery Object Security			(see AX=F217h/SF=38h)
17h/39h Create Property					(see AX=F217h/SF=39h)
17h/3Ah Delete Property					(see AX=F217h/SF=3Ah)
17h/3Bh Change Property Security			(see AX=F217h/SF=3Bh)
17h/3Ch Scan Property					(see AX=F217h/SF=3Ch)
17h/3Dh Read Property Value				(see AX=F217h/SF=3Dh)
17h/3Eh Write Property Value				(see AX=F217h/SF=3Eh)
17h/3Fh Verify Bindery Object Password			(see AX=F217h/SF=3Fh)
17h/40h Change Bindery Object Password			(see AX=F217h/SF=40h)
17h/41h Add Bindery Object to Set			(see AX=F217h/SF=41h)
17h/42h Delete Bindery Object from Set			(see AX=F217h/SF=42h)
17h/43h Is Bindery Object in Set			(see AX=F217h/SF=43h)
17h/44h Close Bindery					(see AX=F217h/SF=44h)
17h/45h Open Bindery					(see AX=F217h/SF=45h)
17h/46h Get Bindery Access Level			(see AX=F217h/SF=46h)
17h/47h Scan Bindery Object Trustee Paths		(see AX=F217h/SF=47h)
17h/48h	Get Bindery Object Access Level			(see AX=F217h/SF=48h)
17h/49h	Is Station a Manager?				(see AX=F217h/SF=49h)
17h/4Ah	Keyed Verify Bindery Object Password		(see AX=F217h/SF=4Ah)
17h/4Bh	Keyed Change Bindery Object Password		(see AX=F217h/SF=4Bh)
17h/4Ch	List Relations of an Object			(see AX=F217h/SF=4Ch)
17h/64h Create Queue					(see AX=F217h/SF=64h)
17h/65h Destroy Queue					(see AX=F217h/SF=65h)
17h/66h Read Queue Current Status (old)			(see AX=F217h/SF=66h)
17h/67h Set Queue Current Status (old)			(see AX=F217h/SF=67h)
17h/68h Create Queue Job and File (old)			(see AX=F217h/SF=68h)
17h/69h Close File and Start Queue Job (old)		(see AX=F217h/SF=69h)
17h/6Ah Remove Job From Queue (old)			(see AX=F217h/SF=6Ah)
17h/6Bh Get Queue Job List (old)			(see AX=F217h/SF=6Bh)
17h/6Ch Read Queue Job Entry (old)			(see AX=F217h/SF=6Ch)
17h/6Dh Change Queue Job Entry (old)			(see AX=F217h/SF=6Dh)
17h/6Eh Change Queue Job Position			(see AX=F217h/SF=6Eh)
17h/6Fh Attach Queue Server to Queue			(see AX=F217h/SF=6Fh)
17h/70h Detach Queue Server from Queue			(see AX=F217h/SF=70h)
17h/72h Finish Servicing Queue Job (old)		(see AX=F217h/SF=72h)
17h/74h Change to Client Rights (old)			(see AX=F217h/SF=74h)
17h/75h Restore Queue Server Rights			(see AX=F217h/SF=75h)
17h/76h Read Queue Server Current Status (old)		(see AX=F217h/SF=76h)
17h/77h Set Queue Server Current Status			(see AX=F217h/SF=77h)
17h/78h Get Queue Job File Size (old)			(see AX=F217h/SF=78h)
17h/79h Create Queue Job and File			(see AX=F217h/SF=79h)
17h/7Ah Read Queue Job Entry				(see AX=F217h/SF=7Ah)
17h/7Bh Change Queue Job Entry				(see AX=F217h/SF=7Bh)
17h/7Dh Read Queue Current Status			(see AX=F217h/SF=7Dh)
17h/7Eh Set Queue Current Status			(see AX=F217h/SF=7Eh)
17h/7Fh Close File and Start Queue Job			(see AX=F217h/SF=7Fh)
17h/80h Remove Job From Queue				(see AX=F217h/SF=80h)
17h/81h Get Queue Job List				(see AX=F217h/SF=81h)
17h/82h Change Job Priority				(see AX=F217h/SF=82h)
17h/83h Finish Servicing Queue Job			(see AX=F217h/SF=83h)
17h/85h Change to Client Rights				(see AX=F217h/SF=85h)
17h/86h Read Queue Server Current Status		(see AX=F217h/SF=86h)
17h/87h Get Queue Job File Size				(see AX=F217h/SF=87h)
17h/96h Get Account Status				(see AX=F217h/SF=96h)
17h/97h Submit Account Charge				(see AX=F217h/SF=97h)
17h/98h Submit Account Hold				(see AX=F217h/SF=98h)
17h/99h Submit Account Note				(see AX=F217h/SF=99h)
17h/C8h Check Console Privileges			(see AX=F217h/SF=C8h)
17h/C9h Get File Server Description Strings		(see AX=F217h/SF=C9h)
17h/CAh Set File Server Date and Time			(see AX=F217h/SF=CAh)
17h/CBh Disable File Server Login			(see AX=F217h/SF=CBh)
17h/CCh Enable File Server Login			(see AX=F217h/SF=CCh)
17h/CDh Get File Server Login Status			(see AX=F217h/SF=CDh)
17h/CEh Purge All Erased Files				(see AX=F217h/SF=CEh)
17h/CFh Disable Transaction Tracking			(see AX=F217h/SF=CFh)
17h/D0h Enable Transaction Tracking			(see AX=F217h/SF=D0h)
17h/D2h Clear Connection Number (Logout Station)	(see AX=F217h/SF=D2h)
17h/D3h Down File Server				(see AX=F217h/SF=D3h)
17h/D4h Get File System Statistics			(see AX=F217h/SF=D4h)
17h/D5h Get Transaction Tracking Statistics		(see AX=F217h/SF=D5h)
17h/D6h Get Disk Cache Statistics			(see AX=F217h/SF=D6h)
17h/D7h Get Drive Mapping Table				(see AX=F217h/SF=D7h)
17h/D8h Get Physical Disk Statistics			(see AX=F217h/SF=D8h)
17h/D9h Get Disk Channel Statistics			(see AX=F217h/SF=D9h)
17h/DAh Get Connection's Task Information (NW v2.2)	(see AX=F217h/SF=DAh)
17h/DBh Get Connection's Open Files (old) (NW v2.2)	(see AX=F217h/SF=DBh)
17h/DCh Get Connections Using a File (NW v2.2)		(see AX=F217h/SF=DCh)
17h/DDh Get Physical Record Locks by Connection and File (old)
17h/DEh	Get Physical Record Locks by File (old)		(see AX=F217h/SF=DEh)
17h/DFh Get Logical Records by Connection (old)		(see AX=F217h/SF=DFh)
17h/E0h Get Logical Record Information (old)		(see AX=F217h/SF=E0h)
17h/E1h Get Connection's Semaphores (old)		(see AX=F217h/SF=E1h)
17h/E2h Get Semaphore Information (old)			(see AX=F217h/SF=E2h)
17h/E3h Get LAN Driver's Configuration Information	(see AX=F217h/SF=E3h)
17h/E5h Get Connection's Usage Statistics (NW v2.2)	(see AX=F217h/SF=E5h)
17h/E6h Get Object's Remaining Disk Space		(see AX=F217h/SF=E6h)
17h/E7h Get File Server LAN I/O Statistics		(see AX=F217h/SF=E7h)
17h/E8h Get File Server Misc Information		(see AX=F217h/SF=E8h)
17h/E9h Get Volume Information				(see AX=F217h/SF=E9h)
17h/EAh Get Connection's Task Information (NW v3.11+)	(see AX=F217h/SF=EAh)
17h/EBh	Get Connection's Open Files (NW v3.11+)		(see AX=F217h/SF=EBh)
17h/ECh	Get Connections Using a File (NW v3.11+)	(see AX=F217h/SF=ECh)
17h/EDh Get Physical Record Locks by Connection and File (see AX=F217h/SF=EDh)
17h/EEh	Get Physical Record Locks by File		(see AX=F217h/SF=EEh)
17h/EFh Get Logical Records by Connection		(see AX=F217h/SF=EFh)
17h/F0h Get Logical Record Information			(see AX=F217h/SF=F0h)
17h/F1h Get Connection's Semaphores			(see AX=F217h/SF=F1h)
17h/F2h Get Semaphore Information			(see AX=F217h/SF=F2h)
17h/F3h Map Directory Number to Path			(see AX=F217h/SF=F3h)
17h/F4h	Convert Path to Directory Entry			(see AX=F217h/SF=F4h)
17h/F5h Get File Server Extended Misc Information	(see AX=F217h/SF=F5h)
17h/F6h Get Volume Extended Information			(see AX=F217h/SF=F6h)
17h/FEh Clear Connection Number Greater than 250	(see AX=F217h/SF=FEh)
18h	End of Job					(see AH=D6h"NetWare")
19h	Logout (old)					(see AH=D7h"NetWare")
1Ah	Log Physical Record (old)			(see AH=BCh"NetWare")
1Bh	Lock Physical Record Set (old)			(see AX=F21Bh)
1Ch	Release Physical Record				(see AH=BDh"NetWare")
1Dh	Release Physical Record Set			(see AH=C3h"NetWare")
1Eh	Clear Physical Record				(see AX=F21Eh)
1Fh	Clear Physical Record Set			(see AX=F21Fh)
20h/xxh	semaphore services				(see AX=C501h"NetWare")
20h/00h Open Semaphore (old)				(see AX=C500h"NetWare")
20h/01h Examine Semaphore (old)				(see AX=C501h"NetWare")
20h/02h Wait on Semaphore (old)				(see AX=C502h"NetWare")
20h/03h Signal Semaphore (old)				(see AX=C503h"NetWare")
20h/04h Close Semaphore (old)				(see AX=C504h"NetWare")
21h	Negotiate Buffer Size
22h/00h	TTS Is Available				(see AX=C702h"NetWare")
22h/01h	TTS Begin Transaction				(see AX=C700h"NetWare")
22h/02h	TTS End Transaction				(see AX=C701h"NetWare")
22h/03h	TTS Abort Transaction				(see AX=C703h"NetWare")
22h/04h	TTS Transaction Status				(see AX=C704h"NetWare")
22h/05h	TTS Get Application Thresholds			(see AX=C705h"NetWare")
22h/06h	TTS Set Application Thresholds			(see AX=C706h"NetWare")
22h/07h	TTS Get Workstation Thresholds			(see AX=C707h"NetWare")
22h/08h	TTS Set Workstation Thresholds			(see AX=C708h"NetWare")
22h/09h	TTS Get Control Flags
22h/0Ah	TTS Set Control Flags
23h/01h	AFP Create Directory				(see AX=F223h/SF=01h)
23h/02h	AFP Create File					(see AX=F223h/SF=02h)
23h/03h	AFP Delete					(see AX=F223h/SF=03h)
23h/04h	AFP Get Entry ID From Name			(see AX=F223h/SF=04h)
23h/05h	AFP Get File Information			(see AX=F223h/SF=05h)
23h/06h	AFP Get Entry ID From NetWare Handle		(see AX=F223h/SF=06h)
23h/07h	AFP Rename					(see AX=F223h/SF=07h)
23h/08h	AFP Open File Fork				(see AX=F223h/SF=08h)
23h/09h	AFP Set File Information			(see AX=F223h/SF=09h)
23h/0Ah	AFP Scan File Information			(see AX=F223h/SF=0Ah)
23h/0Bh	AFP Alloc Temporary Dir Handle			(see AX=F223h/SF=0Bh)
23h/0Ch	AFP Get Entry ID From Path Name			(see AX=F223h/SF=0Ch)
23h/0Dh AFP 2.0 Create Directory			(see AX=F223h/SF=0Dh)
23h/0Eh AFP 2.0 Create File				(see AX=F223h/SF=0Eh)
23h/10h AFP 2.0 Set File Information			(see AX=F223h/SF=10h)
23h/11h AFP 2.0 Scan File Information			(see AX=F223h/SF=11h)
23h/12h AFP Get DOS Name from Entry ID			(see AX=F223h/SF=12h)
23h/13h AFP Get Macintosh Info on Deleted File		(see AX=F223h/SF=13h)
3Dh	Commit File
3Eh	File Search Initialize (FindFirst)		(see AX=F23Eh)
3Fh	File Search Continue (FindNext)			(see AX=F23Fh)
40h	Search File
42h	Close File					(see AX=F242h)
43h	File Create					(see AX=F243h)
44h	File Erase					(see AX=F244h)
45h	File Rename
46h	Set File Attributes
47h	Get File Size					(see AX=F247h)
48h	File Read
49h	File Write
4Ah	File Server Copy				(see AX=F24Ah)
4Bh	Set File Time and Date
4Ch	File Open
4Dh	Create New File					(see AX=F24Dh)
4Eh	Allow Task Access to File			(see AX=F24Eh)
4Fh	Set Extended File Attributes			(see AH=B6h"NetWare")
54h	Open Create File				(see also AX=6C00h)
55h	Get Sparse File Data Block Bit Map
56h/xx	extended attribute services (OS/2)
56h/01h	Close Extended Attribute Handle			(see AX=F256h/SF=01h)
56h/02h	Write Extended Attribute			(see AX=F256h/SF=02h)
56h/03h	Read Extended Attribute				(see AX=F256h/SF=03h)
56h/04h	Enumerate Extended Attributes			(see AX=F256h/SF=04h)
56h/05h	Duplicate Extended Attributes			(see AX=F256h/SF=05h)
57h/01h	Open/Create File or Subdirectory		(see AX=F257h/SF=01h)
57h/02h	Initialize Search, continue with 57h/03h	(see AX=F257h/SF=02h)
57h/03h	Scan NS Entry Info				(see AX=F257h/SF=03h)
57h/04h	Rename or Move File or Subdirectory		(see AX=F257h/SF=04h)
57h/05h	Scan File or Subdirectory for Trustees		(see AX=F257h/SF=05h)
57h/06h	Obtain File or Subdirectory Information		(see AX=F257h/SF=06h)
57h/07h	Modify File or Subdirectory DOS Information	(see AX=F257h/SF=07h)
57h/08h	Delete File/Directory				(see AX=F257h/SF=08h)
57h/09h	Set Short Directory Handle			(see AX=F257h/SF=09h)
57h/0Ah	Add Trustee Set					(see AX=F257h/SF=0Ah)
57h/0Bh	Delete Trustee					(see AX=F257h/SF=0Bh)
57h/0Ch	Allocate Short Directory Handle			(see AX=F257h/SF=0Ch)
57h/10h Scan Salvageable Files				(see AX=F257h/SF=10h)
57h/11h Recover Salvageable File			(see AX=F257h/SF=11h)
57h/12h Purge Salvageable File				(see AX=F257h/SF=12h)
57h/13h	Get NS Information				(see AX=F257h/SF=13h)
57h/15h	Get Path String from Short Directory Handle	(see AX=F257h/SF=15h)
57h/16h	Generate Directory Base and Volume Number	(see AX=F257h/SF=16h)
57h/17h	Get Name Space Info				(see AX=F257h/SF=17h)
57h/18h Get Name Spaces Loaded				(see AX=F257h/SF=18h)
57h/19h	Write Name Space Info				(see AX=F257h/SF=19h)
57h/1Ah	Read Extended Name Space Info			(see AX=F257h/SF=1Ah)
57h/1Bh	Write Extended Name Space Info			(see AX=F257h/SF=1Bh)
57h/1Ch	Get NS Full Path String				(see AX=F257h/SF=1Ch)
57h/1Dh	Get Effective Directory Rights			(see AX=F257h/SF=1Dh)
58h/01h	Get Volume Audit Statistics			(see AX=F258h/SF=01h)
58h/02h	Add Audit Property				(see AX=F258h/SF=02h)
58h/03h	Login as Volume Auditor				(see AX=F258h/SF=03h)
58h/04h Change Auditor Password				(see AX=F258h/SF=04h)
58h/05h Check Audit Access				(see AX=F258h/SF=05h)
58h/06h	Remove Audit Property				(see AX=F258h/SF=06h)
58h/07h	Disable Auditing on Volume			(see AX=F258h/SF=07h)
58h/08h	Enable Auditing on Volume			(see AX=F258h/SF=08h)
58h/09h	Is User Audited?				(see AX=F258h/SF=09h)
58h/0Ah	Read Auditing Bit Map				(see AX=F258h/SF=0Ah)
58h/0Bh	Read Audit Config Header			(see AX=F258h/SF=0Bh)
58h/0Dh	Logout as Volume Auditor			(see AX=F258h/SF=0Dh)
58h/0Eh	Reset Auditing File				(see AX=F258h/SF=0Eh)
58h/0Fh	Reset Audit History File			(see AX=F258h/SF=0Fh)
58h/10h	Write Auditing Bit Map				(see AX=F258h/SF=10h)
58h/11h	Write Audit Config Header			(see AX=F258h/SF=11h)
58h/13h	Get Auditing Flags				(see AX=F258h/SF=13h)
58h/14h	Close Old Auditing File				(see AX=F258h/SF=14h)
58h/15h	Delete Old Auditing File			(see AX=F258h/SF=15h)
58h/16h	Check Audit Level Two Access			(see AX=F258h/SF=16h)
5Ah/01h	Get DM (Data Migration) Info			(see AX=F25Ah/SF=01h)
5Ah/80h Move File Data to DM				(see AX=F25Ah/SF=80h)
5Ah/81h DM File Information				(see AX=F25Ah/SF=81h)
5Ah/82h Volume DM Status				(see AX=F25Ah/SF=82h)
5Ah/83h Get Migration or Status Information		(see AX=F25Ah/SF=83h)
5Ah/84h DM Support Module Information			(see AX=F25Ah/SF=84h)
5Ah/85h Move File Data from DM				(see AX=F25Ah/SF=85h)
5Ah/86h Get or Set Default Support Module		(see AX=F25Ah/SF=86h)
61h	Negotiate LIP Buffer, packet signing, and IPX checksums
65h	Packet Burst Connection
68h/xxh NetWare 4.x directory services (subfn at DS:[SI+11h])
68h/01h NDS resolve name				(see AX=F268h/SF=01h)
68h/03h	NDS read property
68h/04h NDS Get Bindery Context				(see AX=F268h/SF=04h)
68h/05h NDS Monitor Connection				(see AX=F268h/SF=05h)
68h/16h NDS List Partitions				(see AX=F268h/SF=16h)
68h/35h NDS get server address				(see AX=F268h/SF=35h)
68h/36h NDS set keys
68h/39h NDS begin login
68h/3Ah NDS finish login
68h/3Bh NDS begin authenticate
68h/3Ch NDS finish authenticate
68h/3Dh NDS Logout					(see AX=F268h/SF=3Dh)
68h/C8h Get DS Auditing Statistics			(see AX=F268h/SF=C8h)
69h	Log File					(see AX=F269h)
6Ah	Lock File Set					(see AX=F26Ah)
6Bh	Log Logical Record	!!!APIREF09 line 1430
6Ch	Lock Logical Record Set				(see AX=F26Ch)
6Dh	Log Physical Record
6Eh	Lock Physical Record Set			(see AX=F26Eh)
6Fh/00h Open Semaphore					(see AX=F26Fh/SF=00h)
6Fh/01h Close Semaphore					(see AX=F26Fh/SF=01h)
6Fh/02h Wait on Semaphore				(see AX=F26Fh/SF=02h)
6Fh/03h Signal Semaphore				(see AX=F26Fh/SF=03h)
6Fh/04h Examine Semaphore				(see AX=F26Fh/SF=04h)
72h	NetWare 4.x Time Services			(see AX=F272h)
7Bh/01h	Get Cache Information				(see AX=F27Bh/SF=01h)
7Bh/02h	Get File Server Information			(see AX=F27Bh/SF=02h)
7Bh/03h	Get NetWare File Systems Information
7Bh/04h	Get User Information				(see AX=F27Bh/SF=04h)
7Bh/05h	Get Packet Burst Information
7Bh/06h	Get IPX/SPX Information				(see AX=F27Bh/SF=06h)
7Bh/07h	Get Garbage Collection Information
7Bh/08h	Get CPU Information				(see AX=F27Bh/SF=08h)
7Bh/09h	Get Volume Switch Information			(see AX=F27Bh/SF=09h)
7Bh/0Ah	Get NLM Loaded List				(see AX=F27Bh/SF=0Ah)
7Bh/0Bh	Get NLM Information				(see AX=F27Bh/SF=0Bh)
7Bh/0Ch	Get Directory Cache Information
7Bh/0Dh	Get OS Version Information			(see AX=F27Bh/SF=0Dh)
7Bh/0Eh	Get Active Connection List by Type
7Bh/0Fh	Get NLM's Resource Tag List
7Bh/14h	Get Active LAN Board List			(see AX=F27Bh/SF=14h)
7Bh/15h	Get LAN Configuration Information		(see AX=F27Bh/SF=15h)
7Bh/16h	Get LAN Common Counters Information		(see AX=F27Bh/SF=16h)
7Bh/17h	Get LAN Custom Counters Information
7Bh/18h	Get LAN Config Strings
7Bh/19h	Get LSL Information
7Bh/1Ah	Get LSL Logical Board Statistics
7Bh/1Eh	Get Media Manager Object Information
7Bh/1Fh	Get Media Manager Object List
7Bh/20h	Get Media Manager Object Children List
7Bh/21h	Get Volume Segment List
7Bh/28h	Get Active Protocol Stacks
7Bh/29h	Get Protocol Stack Configuration Information	(see AX=F27Bh/SF=29h)
7Bh/2Ah	Get Protocol Stack Statistics Information
7Bh/2Bh	Get Protocol Stack Custom Information
7Bh/2Ch	Get Protocol Stack Numbers By Media Number
7Bh/2Dh	Get Protocol Stack Numbers By LAN Board Number
7Bh/2Eh	Get Media Name by Media Number
7Bh/2Fh	Get Loaded Media Number List
7Bh/32h	Get General Router and SAP Information
7Bh/33h	Get Network Router Information			(see AX=F27Bh/SF=33h)
7Bh/34h	Get Network Routers Information
7Bh/35h	Get Known Networks Information			(see AX=F27Bh/SF=35h)
7Bh/36h	Get Server Information
7Bh/38h	Get Known Servers Information			(see AX=F27Bh/SF=38h)
7Bh/3Ch	Get Server Set Commands Information		(see AX=F27Bh/SF=3Ch)
7Bh/3Dh	Get Server Set Categories			(see AX=F27Bh/SF=3Dh)
Note:	the subfunction is stored at DS:SI for AL=56h,57h, DS:SI+2 for
	  AL=15h-17h,23h
--------T-21F2-------------------------------
INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
	AH = F2h
	AL = character
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	    00h successful
	    01h buffer full (128 characters)
SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS"
SeeAlso: AH=F8h"DoubleDOS"
--------N-21F203-----------------------------
INT 21 - Novell NetWare - LOG FILE (OLD)
	AX = F203h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02477 at AX=F269h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F204h,AX=F269h,AH=EBh"NetWare"
--------N-21F204-----------------------------
INT 21 - Novell NetWare - LOCK FILE SET (OLD)
	AX = F204h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02096)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F203h,AX=F26Ah,AH=CBh"NetWare"

Format of NetWare "Lock File Set (old)" request packet:
Offset	Size	Description	(Table 02096)
 00h	WORD	lock timeout in clock ticks (0000h = don't wait)
--------N-21F207-----------------------------
INT 21 - Novell NetWare - CLEAR FILE
	AX = F207h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02097)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=CEh,AH=EDh"NetWare",AH=F2h"NetWare",AX=F208h

Format of NetWare "Clear File" request packet:
Offset	Size	Description	(Table 02097)
 00h	BYTE	directory handle
 01h	BYTE	length of filename
 02h  N BYTEs	filename
SeeAlso: #02098
--------N-21F208-----------------------------
INT 21 - Novell NetWare - CLEAR FILE SET
	AX = F208h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02098)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=CFh"NetWare",AH=F2h"NetWare",AX=F207h

Format of NetWare "Clear File Set" request packet:
Offset	Size	Description	(Table 02098)
 00h	BYTE	lock flag (nonzero to lock)
SeeAlso: #02097
--------N-21F20A-----------------------------
INT 21 - Novell NetWare - LOCK LOGICAL RECORD SET (OLD)
	AX = F20Ah
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02479 at AX=F26Ch)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F204h,AX=F26Ch,AH=D1h"NetWare"
--------N-21F20B-----------------------------
INT 21 - Novell NetWare - CLEAR LOGICAL RECORD
	AX = F20Bh
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02099)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=D4h"NetWare",AH=F2h"NetWare",AX=F207h,AX=F20Eh

Format of NetWare "Clear Logical Record" request packet:
Offset	Size	Description	(Table 02099)
 00h	BYTE	length of record name (max 128)
 01h  N BYTEs	logical record name
SeeAlso: #02100
--------N-21F20E-----------------------------
INT 21 - Novell NetWare - CLEAR LOGICAL RECORD SET
	AX = F20Eh
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02100)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=D5h"NetWare",AH=F2h"NetWare",AX=F207h,AX=F20Bh

Format of NetWare "Clear Logical Record Set" request packet:
Offset	Size	Description	(Table 02100)
 00h	BYTE	lock flag
SeeAlso: #02099
--------N-21F211SF06-------------------------
INT 21 - Novell NetWare - GET PRINTER STATUS
	AX = F211h subfn 06h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02101)
	ES:DI -> reply buffer (see #02102)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=E0h"NetWare",AH=F2h"Novell",AX=F211h/SF=0Ah

Format of NetWare "Get Printer Status" request packet:
Offset	Size	Description	(Table 02101)
 00h	WORD	length of following data
 02h	BYTE	06h (subfunction "Get Printer Status")
 03h	BYTE	target printer number (00h-04h)
SeeAlso: #02102,#01814

Format of NetWare "Get Printer Status" reply packet:
Offset	Size	Description	(Table 02102)
 00h	BYTE	flag: printer halted if FFh
 01h	BYTE	flag: printer off-line if FFh
 02h	BYTE	current form type
 03h	BYTE	redirected printer number
SeeAlso: #02101
--------N-21F211SF0A-------------------------
INT 21 - Novell NetWare - GET PRINTER QUEUE
	AX = F211h subfn 0Ah
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02103)
	ES:DI -> reply buffer
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F211h/SF=06h

Format of NetWare "Get Printer Queue" request packet:
Offset	Size	Description	(Table 02103)
 00h	WORD	length of following data
 02h	BYTE	0Ah (subfunction "Get Printer Queue")
	???
--------N-21F212-----------------------------
INT 21 - Novell NetWare - GET VOLUME INFO WITH NUMBER
	AX = F212h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02104)
	ES:DI -> reply buffer (see #02105)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=15h,AX=F217h/SF=E9h

Format of NetWare "Get Volume Info with Number" request packet:
Offset	Size	Description	(Table 02104)
 00h	BYTE	volume number
SeeAlso: #02105

Format of NetWare "Get Volume Info with Number" reply packet:
Offset	Size	Description	(Table 02105)
 00h	WORD	sectors per cluster
 02h	WORD	total clusters in volume
 04h	WORD	free clusters
 06h	WORD	total directory entries for volume (FFFFh if not relevant)
 08h	WORD	available directory entries (FFFFh if not relevant)
 0Ah 16 BYTEs	volume name
 1Ah	WORD	removability
		0000h fixed media
		FFFFh removable
SeeAlso: #02104
--------N-21F214CX0000-----------------------
INT 21 - Novell NetWare - GET FILE SERVER DATE AND TIME
	AX = F214h
	CX = 0000h (no request packet)
	DX = length of reply packet in bytes
	ES:DI -> buffer for reply packet (see #02106)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"NetWare",AH=E3h/SF=CAh,AH=E7h"NetWare"

Format of NetWare "Get File Server Date and Time" reply packet:
Offset	Size	Description	(Table 02106)
 00h	BYTE	year-1900 (80-179)
 01h	BYTE	month (1-12)
 02h	BYTE	day (1-31)
 03h	BYTE	hour
 04h	BYTE	minute
 05h	BYTE	second
 06h	BYTE	day of week
SeeAlso: #02012 at AH=E3h/SF=CAh,#02087 at AH=E7h
--------N-21F215SF01-------------------------
INT 21 - Novell NetWare - GET BROADCAST MESSAGE (OLD)
	AX = F215h subfn 01h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01822 at AH=E1h/SF=01h)
	ES:DI -> reply buffer (see #02107)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E1h/SF=01h,AX=F215h/SF=02h,AX=F215h/SF=0Bh

Format of NetWare "Get Broadcast Message (Old)" reply packet:
Offset	Size	Description	(Table 02107)
 00h	BYTE	length of message (00h-37h)
		00h if no broadcast messages pending
 01h  N BYTEs	message (no control characters or characters > 7Eh)
SeeAlso: #01821,#01822
--------N-21F215SF02-------------------------
INT 21 - Novell NetWare - DISABLE BROADCASTS
	AX = F215h subfn 02h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01823 at AH=E1h/SF=02h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E1h/SF=02h,AX=F215h/SF=01h,AX=F215h/SF=03h
--------N-21F215SF03-------------------------
INT 21 - Novell NetWare - ENABLE BROADCASTS
	AX = F215h subfn 03h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01824 at AH=E1h/SF=03h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E1h/SF=03h,AX=F215h/SF=01h,AX=F215h/SF=02h
--------N-21F215SF08-------------------------
INT 21 - Novell NetWare - CHECK PIPE STATUS
	AX = F215h subfn 08h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01835 at AH=E1h/SF=08h)
	ES:DI -> reply buffer (see #02108)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E1h/SF=08h,AX=F215h/SF=09h

Format of NetWare "Check Pipe Status" reply packet:
Offset	Size	Description	(Table 02108)
 00h	BYTE	number of connections
 01h  N BYTEs	list of pipe statuses
		00h open
		FEh incomplete
		FFh closed
SeeAlso: #01835,#01836
--------N-21F215SF09-------------------------
INT 21 - Novell NetWare - BROADCAST TO CONSOLE
	AX = F215h subfn 09h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01837 at AH=E1h/SF=09h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
Note:	requires Access Control rights to the target directory or its parent
SeeAlso: AH=E1h/SF=09h,AH=F2h"NetWare",AX=F215h/SF=08h
--------N-21F215SF0B-------------------------
INT 21 - Novell NetWare - GET BROADCAST MESSAGE
	AX = F215h subfn 0Bh
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02109)
	ES:DI -> reply buffer (see #02110)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E1h/SF=01h,AX=F215h/SF=01h

Format of NetWare "Get Broadcast Message" request packet:
Offset	Size	Description	(Table 02109)
 00h	WORD	length of following data
 02h	BYTE	0Bh (subfunction "Get Broadcast Message")
SeeAlso: #02110,#01821

Format of NetWare "Get Broadcast Message" reply packet:
Offset	Size	Description	(Table 02110)
 00h	BYTE	length of message
 01h  N BYTEs	message
SeeAlso: #02109,#01822
--------N-21F216SF00-------------------------
INT 21 - Novell NetWare - SET DIRECTORY HANDLE
	AX = F216h subfn 00h
	CX = length of request buffer in bytes
	DX = 0000h (no reply buffer)
	DS:SI -> request buffer (see #01840 at AH=E2h/SF=00h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=00h,AX=F216h/SF=01h
--------N-21F216SF01-------------------------
INT 21 - Novell NetWare - GET DIRECTORY PATH
	AX = F216h subfn 01h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01842 at AH=E2h/SF=01h)
	ES:DI -> reply buffer (see #01843)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=01h,AX=F216h/SF=00h
--------N-21F216SF02-------------------------
INT 21 - Novell NetWare - SCAN DIRECTORY INFORMATION
	AX = F216h subfn 02h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01844 at AH=E2h/SF=02h)
	ES:DI -> reply buffer (see #02111)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=02h,AX=F216h/SF=01h,AX=F216h/SF=03h

Format of NetWare "Scan Directory Information" reply packet:
Offset	Size	Description	(Table 02111)
 00h 16 BYTEs	subdirectory name
 10h	DWORD	(big-endian) date and time of creation (see #01846)
 14h	DWORD	(big-endian) object ID of owner
 18h	BYTE	maximum directory rights (see #01849)
 19h	BYTE	unused
 1Ah	WORD	(big-endian) subdirectory number
SeeAlso: #01844,#01845 at AH=E2h/SF=02h
--------N-21F216SF03-------------------------
INT 21 - Novell NetWare - GET EFFECTIVE DIRECTORY RIGHTS (OLD)
	AX = F216h subfn 03h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01847 at AH=E2h/SF=03h)
	ES:DI -> reply buffer (see #02112)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=E2h/SF=03h,AX=F216h/SF=02h,AX=F216h/SF=04h,AX=F257h/SF=1Dh

Format of NetWare "Get Effective Directory Rights (old)" reply buffer:
Offset	Size	Description	(Table 02112)
 00h	BYTE	effective directory rights (see #01849 at AH=E2h/SF=03h)
SeeAlso: #01847,#01848 at AH=E2h/SF=03h
--------N-21F216SF04-------------------------
INT 21 - Novell NetWare - MODIFY MAXIMUM RIGHTS MASK
	AX = F216h subfn 04h
	CX = length of request buffer in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01850 at AH=E2h/SF=04h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=04h,AX=F216h/SF=03h,AX=F216h/SF=05h
--------N-21F216SF05-------------------------
INT 21 - Novell NetWare - GET VOLUME NUMBER
	AX = F216h subfn 05h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01852 at AH=E2h/SF=05h)
	ES:DI -> reply buffer (see #02113)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=05h,AX=F216h/SF=02h,AX=F216h/SF=06h

Format of NetWare "Get Volume Number" reply packet:
Offset	Size	Description	(Table 02113)
 00h	BYTE	volume number
SeeAlso: #01852 at AH=E2h/SF=05h
--------N-21F216SF06-------------------------
INT 21 - Novell NetWare - GET VOLUME NAME
	AX = F216h subfn 06h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01854 at AH=E2h/SF=06h)
	ES:DI -> reply buffer (see #02114)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=06h,AX=F216h/SF=05h,AX=F216h/SF=0Ah

Format of NetWare "Get Volume Name" reply packet:
Offset	Size	Description	(Table 02114)
SeeAlso: #01854,#01855 at AH=E2h/SF=06h
--------N-21F216SF0A-------------------------
INT 21 - Novell NetWare - CREATE DIRECTORY
	AX = F216h subfn 0Ah
	CX = length of request buffer in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01856 at AH=E2h/SF=0Ah)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=39h,AH=F2h"Novell",AH=E2h/SF=0Ah,AX=F216h/SF=0Bh
--------N-21F216SF0B-------------------------
INT 21 - Novell NetWare - DELETE DIRECTORY
	AX = F216h subfn 0Bh
	CX = length of request buffer in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01858 at AH=E2h/SF=0Bh)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=3Ah,AH=F2h"Novell",AH=E2h/SF=0Bh,AX=F216h/SF=0Ah
--------N-21F216SF0C-------------------------
INT 21 - Novell NetWare - SCAN DIRECTORY FOR TRUSTEES
	AX = F216h subfn 0Ch
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #01859 at AH=E2h/SF=0Ch)
	ES:DI -> reply buffer (see #02115)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Ch,AX=F216h/SF=0Dh

Format of NetWare "Scan Directory For Trustees" reply packet:
Offset	Size	Description	(Table 02115)
 02h 16 BYTEs	directory name
 12h  4 BYTEs	date and time of creation
 16h	DWORD	(big-endian) object ID of owner
 1Ah  5 DWORDs	(big-endian) object IDs of Trustees 0 through 4
		00000000h = end of group
 2Eh  5 BYTEs	directory rights for Trustees 0 through 4 (see #01849)
SeeAlso: #01859 at AH=E2h/SF=0Ch
--------N-21F216SF0D-------------------------
INT 21 - Novell NetWare - ADD TRUSTEE TO DIRECTORY
	AX = F216h subfn 0Dh
	CX = length of request buffer in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01861 at AH=E2h/SF=0Dh)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
Note:	requires Access Control rights to the target directory or its parent
SeeAlso: AH=F2h"NetWare",AH=E2h/SF=0Dh,AX=F216h/SF=0Ch,AX=F216h/SF=0Eh
--------N-21F216SF0E-------------------------
INT 21 - Novell NetWare - DELETE TRUSTEE FROM DIRECTORY
	AX = F216h subfn 0Eh
	CX = length of request buffer in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01862 at AH=E2h/SF=0Eh)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Eh,AX=F216h/SF=0Ch,AX=F216h/SF=0Dh
--------N-21F216SF0F-------------------------
INT 21 - Novell NetWare - RENAME DIRECTORY
	AX = F216h subfn 0Fh
	CX = length of request buffer in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01864 at AH=E2h/SF=0Fh)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=0Fh,AX=F216h/SF=0Ah
--------N-21F216SF10-------------------------
INT 21 - Novell NetWare - PURGE ERASED FILES (OLD)
	AX = F216h subfn 10h
	CX = length of request buffer in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01865 at AH=E2h/SF=10h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=10h,AX=F216h/SF=11h
--------N-21F216SF11-------------------------
INT 21 - Novell NetWare - RECOVER ERASED FILE (OLD)
	AX = F216h subfn 11h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01867 at AH=E2h/SF=11h)
	ES:DI -> reply buffer (see #02116)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=11h,AX=F216h/SF=10h

Format of NetWare "Recover Erased File (Old)" reply packet:
Offset	Size	Description	(Table 02116)
 02h 15 BYTEs	ASCIZ name of erased file
 11h 15 BYTEs	ASCIZ name under which file was restored
SeeAlso: #01867,#01868 at AH=E2h/SF=11h
--------N-21F216SF12-------------------------
INT 21 - Novell NetWare - ALLOCATE PERMANENT DIRECTORY HANDLE
	AX = F216h subfn 12h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01869 at AH=E2h/SF=12h)
	ES:DI -> reply buffer (see #02118)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=16h,AH=E2h/SF=12h

Format of NetWare IPX fragment list entry:
Offset	Size	Description	(Table 02117)
 00h	DWORD	-> fragment data
 04h	WORD	size of fragment in bytes

Format of NetWare "Allocate Permanent Directory Handle" reply packet:
Offset	Size	Description	(Table 02118)
 00h	BYTE	new directory handle
 01h	BYTE	access rights
SeeAlso: #01869,#01873,#02117
--------N-21F216SF13-------------------------
INT 21 - Novell NetWare - ALLOCATE TEMPORARY DIRECTORY HANDLE
	AX = F216h subfn 13h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01871 at AH=E2h/SF=13h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=12h,AX=F216h/SF=16h,AH=E2h/SF=13h
--------N-21F216SF14-------------------------
INT 21 - Novell NetWare - DEALLOCATE DIRECTORY HANDLE
	AX = F216h subfn 14h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01872 at AH=E2h/SF=14h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=14h,AX=F216h/SF=13h,AX=F216h/SF=16h
--------N-21F216SF15-------------------------
INT 21 - Novell NetWare - GET VOLUME INFO WITH HANDLE
	AX = F216h subfn 15h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01874 at AH=E2h/SF=15h)
	ES:DI -> reply buffer (see #02119)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=15h,AX=F212h,AX=F216h/SF=13h

Format of NetWare "Get Volume Info With Handle" reply packet:
Offset	Size	Description	(Table 02119)
 00h	WORD	(big-endian) sectors per block
 02h	WORD	(big-endian) total blocks on volume
 04h	WORD	(big-endian) blocks available on volume
 06h	WORD	(big-endian) total directory slots
 08h	WORD	(big-endian) directory slots available
 0Ah 16 BYTEs	NUL-padded volume name
 1Ah	WORD	(big-endian) flag: volume removable if nonzero
SeeAlso: #01874 at AH=E2h/SF=15h
--------N-21F216SF16-------------------------
INT 21 - Novell NetWare v2+ - ALLOCATE SPECIAL TEMPORARY DIRECTORY HANDLE
	AX = F216h subfn 16h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01876 at AH=E2h/SF=16h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=12h,AX=F216h/SF=13h,AH=E2h/SF=16h
--------N-21F216SF17-------------------------
INT 21 - Novell NetWare - SAVE DIRECTORY HANDLE
	AX = F216h subfn 17h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01877 at AH=E2h/SF=17h)
	ES:DI -> reply buffer (see #02120)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=17h,AX=F216h/SF=18h

Format of NetWare "Save Directory Handle" reply packet:
Offset	Size	Description	(Table 02120)
 00h 16 BYTEs	save buffer
SeeAlso: #01877,#01878,#02121
--------N-21F216SF18-------------------------
INT 21 - Novell NetWare - RESTORE DIRECTORY HANDLE
	AX = F216h subfn 18h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01879 at AH=E2h/SF=18h)
	ES:DI -> reply buffer (see #02121)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=18h,AX=F216h/SF=17h

Format of NetWare "Restore Directory Handle" reply packet:
Offset	Size	Description	(Table 02121)
 00h	BYTE	new directory handle
 01h	BYTE	effective rights (see #01849)
SeeAlso: #01880,#02120
--------N-21F216SF19-------------------------
INT 21 - Novell NetWare - SET DIRECTORY INFORMATION
	AX = F216h subfn 19h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01881 at AH=E2h/SF=19h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=19h,AX=F216h/SF=17h
--------N-21F216SF1A-------------------------
INT 21 - Novell NetWare - GET PATH NAME OF VOLUME-DIRECTORY NUMBER PAIR
	AX = F216h subfn 1Ah
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01883 at AH=E2h/SF=1Ah)
	ES:DI -> reply buffer (see #02122)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=1Ah,AX=F216h/SF=0Eh

Format of NetWare "Get Path Name Of Volume-Dir Number Pair" reply packet:
Offset	Size	Description	(Table 02122)
 00h 256 BYTEs	path
SeeAlso: #01883,#01884 at AH=E2h/SF=1Ah
--------N-21F216SF1B-------------------------
INT 21 - Novell NetWare - SCAN SALVAGEABLE FILES (OLD)
	AX = F216h subfn 1Bh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02123)
	ES:DI -> reply buffer (see #02124)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Ch,AX=F216h/SF=1Dh,AX=F257h/SF=10h

Format of NetWare "Scan Salvageable Files (Old)" request packet:
Offset	Size	Description	(Table 02123)
 00h	WORD	length of following data
 02h	BYTE	1Bh (subfunction "Scan Salvageable Files (Old)")
 03h	BYTE	directory handle
 04h	DWORD	last sequence number (set to FFFFFFFFh before first call)
SeeAlso: #02124,#02399

Format of NetWare "Scan Salvageable Files (Old)" reply packet:
Offset	Size	Description	(Table 02124)
 00h	DWORD	next sequence number
 04h	WORD	subdirectory
 06h	DWORD	attributes
 0Ah	BYTE	unique ID
 0Bh	BYTE	flags
 0Ch	BYTE	name space
 0Dh	BYTE	length of filename
 0Eh 14 BYTEs	filename
 1Ah	DWORD	creation date and time
 1Eh	DWORD	owner ID
 22h	DWORD	last-backup date and time
 26h	DWORD	last-backup ID
 2Ah	DWORD	last-modified date and time
 2Eh	WORD	???
 30h	DWORD	last-modified ID
 34h	DWORD	file size
 38h 44 BYTEs	reserved
 62h	WORD	inherited rights mask
 64h	WORD	last-access date
 66h	DWORD	deleted file's time
 6Ah	DWORD	deletion date and time
 6Eh	DWORD	ID of deletor
 72h 16 BYTEs	reserved
SeeAlso: #02123,#02400
--------N-21F216SF1C-------------------------
INT 21 - Novell NetWare - RECOVER SALVAGEABLE FILE (OLD)
	AX = F216h subfn 1Ch
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02125)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F216h/SF=1Dh,AX=F257h/SF=11h

Format of NetWare "Recover Salvageable File (Old)" request packet:
Offset	Size	Description	(Table 02125)
 00h	WORD	length of following data
 02h	BYTE	1Ch (subfunction "Recover Salvageable File (Old)")
 03h	BYTE	directory handle
 04h	DWORD	sequence number (set to ? before first call)
 08h	BYTE	length of filename
 09h  N BYTEs	filename in DOS format
	BYTE	length of new name for recovered file
      N BYTEs	recovered filename in NetWare VOLUME:DIRECTORY/.../FILE format
SeeAlso: #02401
--------N-21F216SF1D-------------------------
INT 21 - Novell NetWare - PURGE SALVAGEABLE FILE (OLD)
	AX = F216h subfn 1Dh
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02126)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Bh,AX=F216h/SF=1Ch,AX=F257h/SF=12h

Format of NetWare "Purge Salvageable File (old)" request packet:
Offset	Size	Description	(Table 02126)
 00h	WORD	length of following data
 02h	BYTE	1Dh (subfunction "Purge Salvageable File (Old)")
 03h	BYTE	directory handle
 04h	DWORD	directory entry
 08h	DWORD	sequence number from Scan Salvageable Files
--------N-21F216SF1E-------------------------
INT 21 - Novell NetWare - SCAN A DIRECTORY
	AX = F216h subfn 1Eh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02127)
	ES:DI -> reply buffer (see #02128)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E2h/SF=02h,AX=F216h/SF=1Fh

Format of NetWare "Scan A Directory" request packet:
Offset	Size	Description	(Table 02127)
 00h	WORD	length of following data
 02h	BYTE	1Eh (subfunction "Scan A Directory")
 03h	BYTE	directory handle
 04h	BYTE	search attributes
 05h	DWORD	sequence number
 09h	BYTE	length of search filespec
 0Ah  N BYTEs	search filespec
SeeAlso: #02128

Format of NetWare "Scan A Directory" reply packet:
Offset	Size	Description	(Table 02128)
 00h	DWORD	sequence number (copy into next request packet)
 04h	DWORD	subdirectory
 08h	DWORD	attributes
 0Ch	BYTE	unique ID
 0Dh	BYTE	flags
 0Eh	BYTE	name space
 0Fh	BYTE	length of filename
---DOS file---
 10h 12 BYTEs	DOS filename
 1Ch	DWORD	creation date and time
 20h	DWORD	owner ID
 24h	DWORD	last-archived date and time
 28h	DWORD	last-archived ID
 2Ch	DWORD	last-updated date and time
 30h	DWORD	last-updated ID
 34h	DWORD	file size
 38h 44 BYTEs	reserved
 64h	WORD	inherited rights mask
 66h	WORD	last-accessed date
 68h 28 BYTEs	reserved
---DOS subdirectory---
 10h 12 BYTEs	DOS directory name
 1Ch	DWORD	creation date and time
 20h	DWORD	owner ID
 24h	DWORD	last-archived date and time
 28h	DWORD	last-archived ID
 2Ch	DWORD	last-updated date and time
 30h	DWORD	next trustee entry
 34h 48 BYTEs	reserved
 64h	DWORD	maximum space
 68h	WORD	inherited rights mask
 6Ah 26 BYTEs	unused
SeeAlso: #02127
--------N-21F216SF1F-------------------------
INT 21 - Novell NetWare - GET DIRECTORY ENTRY
	AX = F216h subfn 1Fh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02129)
	ES:DI -> reply buffer
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=1Eh

Format of NetWare "Get Directory Entry" request packet:
Offset	Size	Description	(Table 02129)
 00h	WORD	length of following data
 02h	BYTE	1Fh (subfunction "Get Directory Entry")
	???
--------N-21F216SF20-------------------------
INT 21 - Novell NetWare - SCAN VOLUME'S USER DISK RESTRICTIONS
	AX = F216h subfn 20h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02130)
	ES:DI -> reply buffer (see #02131)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=23h,AX=F216h/SF=29h

Format of NetWare "Scan Volume's User Disk Restrictions" request packet:
Offset	Size	Description	(Table 02130)
 00h	WORD	length of following data
 02h	BYTE	20h (subfunction "Scan Volume's User Disk Restrictions")
 03h	BYTE	volume number
 04h	DWORD	sequence number (set to 00000000h before first call)
SeeAlso: #02131

Format of NetWare "Scan Volume's User Disk Restrictions" reply packet:
Offset	Size	Description	(Table 02131)
 00h	BYTE	number of entries returned (max 12)
 01h 2N DWORDs	restriction entries [array]
		Offset	Size	Description
		 00h	DWORD	object ID
		 04h	DWORD	maximum usage allowed (in 4K blocks)
SeeAlso: #02130
--------N-21F216SF21-------------------------
INT 21 - Novell NetWare v3+ - ADD USER DISK SPACE RESTRICTION
	AX = F216h subfn 21h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02132)
	ES:DI -> reply buffer (ignored)
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AX=F216h/SF=20h,AX=F216h/SF=22h,AX=F216h/SF=24h

Format of NetWare "Add User Disk Space Restriction" request buffer:
Offset	Size	Description	(Table 02132)
 00h	WORD	000Ah (length of following data)
 02h	BYTE	21h (subfunction "Add User Disk Space Restriction")
 03h	BYTE	volume number
 04h	DWORD	(big-endian) object ID
 08h	DWORD	(big-endian) disk space limit in 4K blocks
		00000000h to 40000000h
--------N-21F216SF22-------------------------
INT 21 - Novell NetWare - REMOVE USER DISK SPACE RESTRICTIONS
	AX = F216h subfn 22h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02133)
	ES:DI -> reply buffer
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=21h,AX=F216h/SF=23h

Format of NetWare "Remove User Disk Space Restrictions" request packet:
Offset	Size	Description	(Table 02133)
 00h	WORD	length of following data
 02h	BYTE	22h (subfunction "Remove User Disk Space Restrictions")
	???
--------N-21F216SF23-------------------------
INT 21 - Novell NetWare - SCAN DIRECTORY SPACE RESTRICTIONS
	AX = F216h subfn 23h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02134)
	ES:DI -> reply buffer (see #02135)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=21h,AX=F216h/SF=22h

Format of NetWare "Scan Directory Space Restrictions" request packet:
Offset	Size	Description	(Table 02134)
 00h	WORD	length of following data
 02h	BYTE	23h (subfunction "Scan Directory Space Restrictions")
 03h	BYTE	directory handle
SeeAlso: #02135

Format of NetWare "Scan Directory Space Restrictions" reply packet:
Offset	Size	Description	(Table 02135)
 00h	BYTE	number of entries returned
 01h 10N BYTEs	restrictions [array]
		Offset	Size	Description
		 00h	WORD	depth of directory from root
		 02h	DWORD	maximum space allowed for files in directory
		 04h	DWORD	current space used by files in directory
SeeAlso: #02134
--------N-21F216SF24-------------------------
INT 21 - Novell NetWare v3+ - SET DIRECTORY DISK SPACE RESTRICTION
	AX = F216h subfn 24h
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02136)
	ES:DI -> reply buffer (ignored)
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AX=F216h/SF=21h,AX=F216h/SF=22h,AX=F216h/SF=23h,AX=F216h/SF=25h

Format of NetWare "Set Directory Disk Space Restriction" request buffer:
Offset	Size	Description	(Table 02136)
 00h	WORD	0006h (length of following data)
 02h	BYTE	24h (subfunction "Set Directory Disk Space Restriction")
 03h	BYTE	directory handle
 04h	DWORD	(big-endian) disk space limit in 4K blocks
		00000000h to remove restriction, negative to set to 0 blocks
--------N-21F216SF25-------------------------
INT 21 - Novell NetWare - SET DIRECTORY/FILE INFORMATION
	AX = F216h subfn 25h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02137)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=02h

Format of NetWare "Set Directory/File Information" request packet:
Offset	Size	Description	(Table 02137)
 00h	WORD	length of following data
 02h	BYTE	25h (subfunction "Set Directory/File Information")
 03h	BYTE	directory handle
 04h	BYTE	search attributes
 05h	DWORD	sequence number
 09h	DWORD	change bits
 0Dh	DWORD	directory number
 11h	DWORD	attributes
 15h	BYTE	unique ID
 16h	BYTE	flags
 17h	BYTE	name space (see #02387)
 18h	BYTE	length of directory/file name
 19h 12 BYTEs	directory/file name
 25h	DWORD	creation date and time
 29h	DWORD	(big-endian) owner ID
 2Dh	DWORD	last-backup date and time
 31h	DWORD	(big-endian) last-backup ID
 35h	DWORD	last-modification date and time
 39h	DWORD	(big-endian) last-modification ID
 3Dh	DWORD	file size
 41h	DWORD	data fork first FAT
 45h	DWORD	next trustee entry
 49h 36 BYTEs	reserved
 6Dh	WORD	inherited rights mask
 6Fh	WORD	last-access date
 71h 20 BYTEs	reserved
 85h	DWORD	primary entry
 89h	DWORD	name list
--------N-21F216SF26-------------------------
INT 21 - Novell NetWare v3+ - SCAN FILE OR DIRECTORY FOR EXTENDED TRUSTEES
	AX = F216h subfn 26h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02138)
	ES:DI -> reply buffer (see #02139)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
Desc:	get up to 20 extended trustee entries per call for a file or directory

Format of NetWare "Scan File/Directory for Extended Trustees" request buffer:
Offset	Size	Description	(Table 02138)
 00h	WORD	length of following data
 02h	BYTE	26h (subfunc "Scan File or Directory For Extended Trustees")
 03h	BYTE	directory handle
 04h	BYTE	sequence number
		00h for first call, increment by number of returned entries
 05h	BYTE	length of path
 06h  N BYTEs	pathname
SeeAlso: #02138

Format of NetWare "Scan File/Directory for Extended Trustees" reply buffer:
Offset	Size	Description	(Table 02139)
 00h	BYTE	number of entries returned (max 20)
 01h 20 DWORDs	(big-endian) list of object IDs
 51h 20 WORDs	list of associated trustee rights
SeeAlso: #02139
--------N-21F216SF27-------------------------
INT 21 - Novell NetWare v3+ - ADD EXTENDED TRUSTEE TO DIRECTORY OR FILE
	AX = F216h subfn 27h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02140)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)

Format of NetWare "Add Extended Trustee to Directory or File" request buffer:
Offset	Size	Description	(Table 02140)
 00h	WORD	length of following data
 02h	BYTE	27h (subfunction "Add Extended Trustee to Directory or File")
 03h	BYTE	directory handle
 04h	DWORD	(big-endian) object ID
 08h	WORD	trustee rights (see #02141)
 0Ah	BYTE	path length
 0Bh  N BYTEs	path name

Bitfields for NetWare trustee rights:
Bit(s)	Description	(Table 02141)
 0	read
 1	write
 3	create
 4	delete
 5	access
 6	file
 7	modify
 8	supervisor
--------N-21F216SF28-------------------------
INT 21 - Novell NetWare - SCAN DIRECTORY DISK SPACE
	AX = F216h subfn 28h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02142)
	ES:DI -> reply buffer (see #02143)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=02h,AX=F216h/SF=20h

Format of NetWare "Scan Directory Disk Space" request packet:
Offset	Size	Description	(Table 02142)
 00h	WORD	length of following data
 02h	BYTE	28h (subfunction "Scan Directory Disk Space")
 03h	BYTE	directory handle
 04h	BYTE	search attributes
 05h	DWORD	sequence number (set to FFFFFFFFh before first call)
 09h	BYTE	length of filespec
 0Ah  N BYTEs	search filespec
SeeAlso: #02143

Format of NetWare "Scan Directory Disk Space" reply packet:
Offset	Size	Description	(Table 02143)
 00h	DWORD	next sequence number
 04h	DWORD	(big-endian) subdirectory number
 08h	DWORD	(big-endian) attributes
 0Ch	BYTE	unique ID
 0Dh	BYTE	flags
 0Eh	BYTE	name space (see #02387)
 0Fh	BYTE	length of name
 10h 12 BYTEs	name
 1Ch	DWORD	creation date and time
 20h	DWORD	owner ID
 24h	DWORD	date and time last backed up
 28h	DWORD	last-backup ID
 2Ch	DWORD	date and time last modified
 30h	DWORD	last-modification ID
 34h	DWORD	data fork size
 38h	DWORD	data fork first FAT
 3Ch	DWORD	next trustee entry
 40h 36 BYTEs	reserved
 64h	WORD	inherited rights mask
 66h	WORD	last-access date
 68h	DWORD	deleted file date and time
 6Ch	DWORD	date and time file was deleted
 70h	DWORD	deleted ID
 74h  8 BYTEs	undefined
 7Ch	DWORD	primary entry
 80h	DWORD	name list
 84h	DWORD	other file fork size
SeeAlso: #02142
--------N-21F216SF29-------------------------
INT 21 - Novell NetWare v3+ - GET OBJECT DISK USAGE AND RESTRICTIONS
	AX = F216h subfn 29h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02144)
	ES:DI -> reply buffer (see #02145)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled
Note:	this function returns successfully, showing no restriction, if an
	  invalid object ID is specified
SeeAlso: AX=F216h/SF=24h,AX=F216h/SF=33h

Format of NetWare "Get Object Disk Restrictions" request buffer:
Offset	Size	Description	(Table 02144)
 00h	WORD	0006h (length of following data)
 02h	BYTE	21h (subfunction "Get Object Disk Restrictions")
 03h	BYTE	volume number
 04h	DWORD	(big-endian) object ID
SeeAlso: #02145

Format of NetWare "Get Object Disk Restrictions" reply buffer:
Offset	Size	Description	(Table 02145)
 00h	DWORD	disk space limit
 04h	DWORD	disk space currently in use by object
SeeAlso: #02144
--------N-21F216SF2A-------------------------
INT 21 - Novell NetWare - GET EFFECTIVE RIGHTS
	AX = F216h subfn 2Ah
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02146)
	ES:DI -> reply buffer (see #02147)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=32h

Format of NetWare "Get Effective Rights" request packet:
Offset	Size	Description	(Table 02146)
 00h	WORD	length of following data
 02h	BYTE	2Ah (subfunction "Get Effective Rights")
	???
--------N-21F216SF2B-------------------------
INT 21 - Novell NetWare - REMOVE EXTENDED TRUSTEE FROM DIR OR FILE
	AX = F216h subfn 2Bh
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02117,#02147)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=26h,AX=F216h/SF=27h

Format of NetWare "Remove Extended Trustee From Dir Or File" request packet:
Offset	Size	Description	(Table 02147)
 00h	WORD	length of following data
 02h	BYTE	2Bh (subfunction "Remove Extended Trustee From Dir Or File")
 03h	BYTE	directory handle
 04h	DWORD	trustee's object ID
 08h	BYTE	unused
 09h	BYTE	length of pathname
 0Ah  N BYTEs	directory path in form VOLUME:DIRECTORY/.../DIRECTORY
--------N-21F216SF2C-------------------------
INT 21 - Novell NetWare - GET VOLUME USAGE
	AX = F216h subfn 2Ch
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02148)
	ES:DI -> reply buffer (see #02149)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=20h,AX=F216h/SF=29h

Format of NetWare "Get Volume Usage" request packet:
Offset	Size	Description	(Table 02148)
 00h	WORD	length of following data
 02h	BYTE	2Ch (subfunction "Get Volume Usage")
	???
--------N-21F216SF2D-------------------------
INT 21 - Novell NetWare - GET DIRECTORY INFORMATION
	AX = F216h subfn 2Dh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02149)
	ES:DI -> reply buffer (see #02150)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=2Ch,AX=F216h/SF=2Eh

Format of NetWare "Get Directory Information" request packet:
Offset	Size	Description	(Table 02149)
 00h	WORD	length of following data
 02h	BYTE	2Dh (subfunction "Get Directory Information")
 03h	BYTE	directory handle
SeeAlso: #02150

Format of NetWare "Get Directory Information" reply packet:
Offset	Size	Description	(Table 02150)
 00h	DWORD	total blocks
 04h	DWORD	available blocks
 08h	DWORD	total number of directory entries
 0Ch	DWORD	number of available directory entries
 10h  4 BYTEs	reserved
 14h	BYTE	sectors per block
 15h	BYTE	length of volume name
 16h  N BYTEs	volume name
SeeAlso: #02149
--------N-21F216SF2E-------------------------
INT 21 - Novell NetWare - RENAME OR MOVE
	AX = F216h subfn 2Eh
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #02151)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F217h/SF=34h,AX=F223h/SF=07h,AX=F244h

Format of NetWare "Rename Or Move" request packet:
Offset	Size	Description	(Table 02151)
 00h	WORD	length of following data
 02h	BYTE	2Eh (subfunction "Rename Or Move")
 03h	BYTE	source directory handle
 04h	BYTE	search attributes
 05h	BYTE	source path component count
 06h  N BYTEs	source path
	BYTE	destination directory handle
	BYTE	destination path component count
      N BYTEs	destination path
--------N-21F216SF2F-------------------------
INT 21 - Novell NetWare - GET NAME SPACE INFORMATION
	AX = F216h subfn 2Fh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02152)
	ES:DI -> reply buffer (see #02153)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=30h,AX=F257h/SF=18h

Format of NetWare "Get Name Space Information" request packet:
Offset	Size	Description	(Table 02152)
 00h	WORD	length of following data
 02h	BYTE	2Fh (subfunction "Get Name Space Information")
 03h	BYTE	volume number
SeeAlso: #02153

Format of NetWare "Get Name Space Information" request packet:
Offset	Size	Description	(Table 02153)
 00h	BYTE	length of namespace name
 01h  N BYTEs	name of namespace
	BYTE	number of data streams
	var	data stream information [one entry per data stream]
		Offset	Size	Description
		 00h	BYTE	associated name space
		 01h	BYTE	length of data stream name
		 02h  N BYTEs	data stream name
	BYTE	number of loaded name spaces
	BYTE	bitmap of loaded name spaces
      N BYTEs	list of name spaces being used
	BYTE	index number
SeeAlso: #02152
--------N-21F216SF30-------------------------
INT 21 - Novell NetWare - GET NAME SPACE DIRECTORY ENTRY
	AX = F216h subfn 30h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02154)
	ES:DI -> reply buffer (see #02155)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=2Fh

Format of NetWare "Get Name Space Directory Entry" request packet:
Offset	Size	Description	(Table 02154)
 00h	WORD	length of following data
 02h	BYTE	30h (subfunction "Get Name Space Directory Entry")
 03h	BYTE	volume number
 04h	DWORD	sequence number (set to 00000000h before first call)
 08h	BYTE	name space (see #02387)
SeeAlso: #02155

Format of NetWare "Get Name Space Directory Entry" request packet:
Offset	Size	Description	(Table 02155)
 00h	DWORD	next sequence number
 04h	DWORD	subdirectory
 08h	DWORD	attributes
 0Ch	BYTE	unique ID
 0Dh	BYTE	flags
 0Eh	BYTE	name space (see #02387)
 0Fh	BYTE	length of name
 10h 12 BYTEs	filename
 1Ch	DWORD	creation date and time
 20h	DWORD	(big-endian) owner ID
 24h	DWORD	last-backup date and time
 28h	DWORD	(big-endian) last-backup ID
 2Ch	DWORD	last-modification date and time
---DOS file---
 30h	DWORD	(big-endian) last-modification ID
 34h	DWORD	file size
 38h 44 BYTEs	reserved
 64h	WORD	inherited rights mask
 66h	WORD	last-access date
 68h 28 BYTEs	reserved
---DOS subdirectory---
 30h	DWORD	next trustee entry
 34h 48 BYTEs	reserved
 64h	WORD	maximum space
 66h	WORD	inherited rights mask
 68h 26 BYTEs	reserved
---Macintosh subdirectory---
 10h 32 BYTEs	Mac filename
 30h	DWORD	resource fork
 34h	DWORD	resource fork size
 38h 32 BYTEs	Finder information
 58h  6 BYTEs	ProDOS information
 5Eh 38 BYTEs	reserved
SeeAlso: #02154
--------N-21F216SF31-------------------------
INT 21 - Novell NetWare - OPEN DATA STREAM
	AX = F216h subfn 31h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02156)
	ES:DI -> reply buffer (see #02157)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F216h/SF=30h

Format of NetWare "Open Data Stream" request packet:
Offset	Size	Description	(Table 02156)
 00h	WORD	length of following data
 02h	BYTE	31h (subfunction "Open Data Stream")
 03h	BYTE	data stream
 04h	BYTE	directory handle
 05h	BYTE	file attributes
 06h	BYTE	open rights
 07h	BYTE	length of filename
 08h  N BYTEs	filename (8.3)
SeeAlso: #02157

Format of NetWare "Open Data Stream" reply packet:
Offset	Size	Description	(Table 02157)
 00h	DWORD	file handle
SeeAlso: #02156
--------N-21F216SF32-------------------------
INT 21 - Novell NetWare v2.2+ - GET OBJECT EFFECTIVE RIGHTS
	AX = F216h subfn 32h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02158)
	ES:DI -> reply buffer (see #02159)
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled
SeeAlso: AX=F216h/SF=29h

Format of NetWare "Get Object Effective Rights" request buffer:
Offset	Size	Description	(Table 02158)
 00h	WORD	length of following data
 02h	BYTE	32h (subfunction "Get Object Effective Rights")
 03h	DWORD	object ID
 07h	BYTE	directory handle
 08h	var	counted path string
SeeAlso: #02159

Format of NetWare "Get Object Effective Rights" reply buffer:
Offset	Size	Description	(Table 02159)
 00h	WORD	object's effective rights
 02h  6 BYTEs	reserved
SeeAlso: #02158
--------N-21F216SF33-------------------------
INT 21 - Novell NetWare v2.2+ - GET EXTENDED VOLUME INFORMATION
	AX = F216h subfn 33h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02160)
	ES:DI -> reply buffer (see #02161)
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled
SeeAlso: AX=F216h/SF=29h

Format of NetWare "Get Extended Volume Information" request buffer:
Offset	Size	Description	(Table 02160)
 00h	WORD	length of following data
 02h	BYTE	33h (subfunction "Get Extended Volume Information")
---v2.2---
 03h	BYTE	volume ID
---v4.x---
 03h	DWORD	volume number
SeeAlso: #02161

Format of NetWare "Get Extended Volume Information" reply buffer:
Offset	Size	Description	(Table 02161)
 00h	WORD	length of returned data
 02h	DWORD	volume type
 06h	DWORD	status flag bits
		bit 0: suballocation
		bit 1: compressoin
		bit 2: migration
		bit 3: auditing
 0Ah	DWORD	sector size
 0Eh	DWORD	sectors per cluster
 12h	DWORD	total clusters in volume
 16h	DWORD	free clusters
 1Ah	DWORD	freeable suballocated clusters
 1Eh	DWORD	freeable in-limbo sectors
 22h	DWORD	non-freeable in-limbo sectors
 26h	DWORD	non-freeable available suballocated sectors
 2Ah	DWORD	unuable suballocated sectors
 2Eh	DWORD	total suballocated clusters
 32h	DWORD	number of data streams
 36h	DWORD	number of in-limbo data streams
 3Ah	DWORD	age of oldest deleted file in clock ticks
 3Eh	DWORD	number of compressed data streams
 42h	DWORD	number of compressed in-limbo data streams
 46h	DWORD	number of uncompressable data streams
 4Ah	DWORD	number of precompressed sectors
 4Eh	DWORD	number of compressed sectors
 52h	DWORD	number of migrated files
 56h	DWORD	number of migrated sectors
 5Ah	DWORD	number of clusters used by FAT
 5Eh	DWORD	number of clusters used by directories
 62h	DWORD	number of clusters used by extended directories
 66h	DWORD	total number of directory entries
 6Ah	DWORD	number of unused directory entries
 6Eh	DWORD	total number of extended directory extants
 72h	DWORD	number of unused extended directory extants
 76h	DWORD	number of extended attributes defined (see AX=F256h/SF=04h)
 7Ah	DWORD	number of extended-attribute extants used
 7Eh	DWORD	object ID for Directory Services
 82h	DWORD	date and time volume last modified
 86h	var	counted volume name string
SeeAlso: #02160
--------N-21F217SF01-------------------------
INT 21 - Novell NetWare - CHANGE USER PASSWORD (OLD)
	AX = F217h subfn 01h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet (see #01891 at AH=E3h/SF=01h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
Note:	this function requires an object of type USER, unlike the newer
	  password changing function AX=F217h/SF=40h
SeeAlso: AH=F2h"Novell",AH=E3h/SF=01h,AX=F217h/SF=02h,AX=F217h/SF=40h
--------N-21F217SF02-------------------------
INT 21 - Novell NetWare - GET USER CONNECTION LIST (OLD)
	AX = F217h subfn 02h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01892 at AH=E3h/SF=02h)
	ES:DI -> reply buffer (see #02162)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=02h,AX=F217h/SF=01h,AX=F217h/SF=0Ch

Format of NetWare "Get User Connection List (old)" reply packet:
Offset	Size	Description	(Table 02162)
 00h	BYTE	length of connection list
 01h	BYTE	number of bytes in connection list
 02h  N BYTEs	list of connection numbers in use by user
SeeAlso: #01892
--------N-21F217SF0C-------------------------
INT 21 - Novell NetWare - VERIFY SERIALIZATION
	AX = F217h subfn 0Ch
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01896 at AH=E3h/SF=0Ch)
	ES:DI -> reply buffer (see #02163)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Ch,AX=F217h/SF=12h

Format of NetWare "Verify Serialization" reply packet:
Offset	Size	Description	(Table 02163)
 00h	WORD	server application number
SeeAlso: #01896
--------N-21F217SF0E-------------------------
INT 21 - Novell NetWare - GET DISK UTILIZATION
	AX = F217h subfn 0Eh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01900 at AH=E3h/SF=0Eh)
	ES:DI -> reply buffer (see #02164)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Eh,AX=F217h/SF=D6h

Format of NetWare "Get Disk Utilization" reply packet:
Offset	Size	Description	(Table 02164)
 00h	BYTE	volume number (00h-1Fh)
 01h	DWORD	(big-endian) object ID
 05h	WORD	(big-endian) directories used by object
 07h	WORD	(big-endian) files created by object
 09h	WORD	(big-endian) disk blocks used by object-created files
SeeAlso: #01900 at AH=E3h/SF=0Eh
--------N-21F217SF0F-------------------------
INT 21 - Novell NetWare - SCAN FILE INFORMATION
	AX = F217h subfn 0Fh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01903 at AH=E3h/SF=0Fh)
	ES:DI -> reply buffer (see #02165)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=0Fh,AX=F217h/SF=10h

Format of NetWare "Scan File Information" reply packet:
Offset	Size	Description	(Table 02165)
 00h	WORD	next sequence number (place in request buffer for next call)
 02h 14 BYTEs	ASCIZ filename
 10h	BYTE	file attributes (see #01420 at AX=4301h)
 11h	BYTE	extended file attributes (see #01804 at AH=B6h)
 12h	DWORD	(big-endian) file size in bytes
 16h	WORD	(big-endian) file's creation date (see #01666 at AX=5700h)
 18h	WORD	(big-endian) date of last access (see #01665 at AX=5700h)
 1Ah	DWORD	(big-endian) date and time of last update (see #01846)
 1Eh	DWORD	(big-endian) object ID of owner
 22h	DWORD	(big-endian) date and time last archived (see #01846)
 26h 55 BYTEs	reserved
SeeAlso: #01903 at AH=E3h/SF=0Fh
--------N-21F217SF10-------------------------
INT 21 - Novell NetWare - SET FILE INFORMATION
	AX = F217h subfn 10h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01905 at AH=E3h/SF=10h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=10h,AX=F217h/SF=0Fh
--------N-21F217SF11-------------------------
INT 21 - Novell NetWare - GET FILE SERVER INFORMATION
	AX = F217h subfn 11h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01907 at AH=E3h/SF=11h)
	ES:DI -> reply buffer (see #02166)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=11h,AX=F217h/SF=F1h

Format of NetWare "Get File Server Information" reply packet:
Offset	Size	Description	(Table 02166)
 00h 48 BYTEs	server's name
 30h	BYTE	NetWare version
 31h	BYTE	NetWare subversion (0-99)
 32h	WORD	(big-endian) number of connections supported
		NetWare 4.01 reportedly returns maximum simulataneously-used
		  connections
 34h	WORD	(big-endian) number of connections in use
 36h	WORD	(big-endian) maximum connected volumes
---Advanced NetWare 2.1+ ---
 38h	BYTE	operating system revision number
 39h	BYTE	fault tolerance (SFT) level
 3Ah	BYTE	TTS level
 3Bh	WORD	(big-endian) maximum simultaneously-used connections
		NetWare 4.01 reportedly returns number of connections in use
 3Dh	BYTE	accounting version
 3Eh	BYTE	VAP version
 3Fh	BYTE	queueing version
 40h	BYTE	print server version
 41h	BYTE	virtual console version
 42h	BYTE	security restrictions level
 43h	BYTE	internetwork bridge version
 44h 60 BYTEs	reserved
SeeAlso: #01907
--------N-21F217SF12-------------------------
INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
	AX = F217h subfn 12h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01909 at AH=E3h/SF=12h)
	ES:DI -> reply buffer (see #02167)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=12h,AX=F217h/SF=0Ch

Format of NetWare "Get Network Serial Number" reply packet:
Offset	Size	Description	(Table 02167)
 00h   4 BYTEs	(big-endian) NetWare server serial number
 04h   2 BYTEs	(big-endian) NetWare application serial number
SeeAlso: #01909 at AH=E3h/SF=12h
--------N-21F217SF13-------------------------
INT 21 - Novell NetWare - GET INTERNET ADDRESS (OLD)
	AX = F217h subfn 13h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01911 at AH=E3h/SF=13h)
	ES:DI -> reply buffer (see #02168)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=13h,AX=F217h/SF=1Ah

Format of NetWare "Get Internet Address (old)" reply packet:
Offset	Size	Description	(Table 02168)
 00h  4 BYTEs	network number
 04h  6 BYTEs	physical node address
 0Ah  2 BYTEs	socket number
SeeAlso: #01911 at AH=E3h/SF=13h,#02174
--------N-21F217SF14-------------------------
INT 21 - Novell NetWare - LOGIN OBJECT
	AX = F217h subfn 14h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01913 at AH=E3h/SF=14h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=14h,AX=F216h/SF=18h,AX=F217h/SF=CCh
SeeAlso: AX=F258h/SF=03h,AX=F268h/SF=3Dh
--------N-21F217SF15-------------------------
INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST (OLD)
	AX = F217h subfn 15h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #01915 at AH=E3h/SF=15h)
	ES:DI -> reply buffer (see #02169)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=15h,AX=F217h/SF=1Bh

Format of NetWare "Get Object Connection List (old)" reply packet:
Offset	Size	Description	(Table 02169)
 00h	BYTE	number of connections
 01h  N BYTEs	connection list
SeeAlso: #01915
--------N-21F217SF16-------------------------
INT 21 - Novell NetWare - GET CONNECTION INFORMATION (OLD)
	AX = F217h subfn 16h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02170)
	ES:DI -> reply buffer (see #02171)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled
SeeAlso: AH=F2h"Novell",AX=F217h/SF=1Ch,AX=F217h/SF=1Fh

Format of NetWare "Get Connection Information (old)" request packet:
Offset	Size	Description	(Table 02170)
 00h	WORD	0002h (length of following data)
 02h	BYTE	16h (subfunction "Get Connection Information (old)")
 03h	BYTE	target connection number
Note:	connection numbers greater than the maximum supported by the server
	  can cause ABENDs
SeeAlso: #02171

Format of NetWare "Get Connection Information (old)" reply packet:
Offset	Size	Description	(Table 02171)
 00h	DWORD	(big-endian) unique user ID, 00000000h if no one logged in
 04h	WORD	(big-endian) user type
 06h 48 BYTEs	user name
 36h  7 BYTEs	login time (see #02087)
 3Dh	BYTE	reserved
SeeAlso: #02170
--------N-21F217SF17-------------------------
INT 21 - Novell NetWare - GET ENCRYPTION KEY
	AX = F217h subfn 17h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02172)
	ES:DI -> reply buffer
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F217h/SF=18h,AX=F217h/SF=4Ah,AX=F217h/SF=4Bh

Format of NetWare "Get Encryption Key" request packet:
Offset	Size	Description	(Table 02172)
 00h	WORD	length of following data
 02h	BYTE	17h (subfunction "Get Encryption Key")
	???
--------N-21F217SF18-------------------------
INT 21 - Novell NetWare - LOGIN OBJECT ENCRYPTED
	AX = F217h subfn 18h
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02173)
	ES:DI -> reply buffer
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F217h/SF=14h,AX=F217h/SF=17h

Format of NetWare "Login Object Encrypted" request packet:
Offset	Size	Description	(Table 02173)
 00h	WORD	length of following data
 02h	BYTE	18h (subfunction "Login Object Encrypted")
	???
--------N-21F217SF1A-------------------------
INT 21 - Novell NetWare - GET INTERNET ADDRESS
	AX = F217h subfn 1Ah
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02174)
	ES:DI -> reply buffer (see #02175)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F217h/SF=13h

Format of NetWare "Get Internet Address" request packet:
Offset	Size	Description	(Table 02174)
 00h	WORD	length of following data
 02h	BYTE	1Ah (subfunction "Get Internet Address")
 03h	DWORD	target connection ID
SeeAlso: #02175

Format of NetWare "Get Internet Address" reply packet:
Offset	Size	Description	(Table 02175)
 00h  4 BYTEs	network number
 04h  6 BYTEs	physical node address
 0Ah  2 BYTEs	socket number
 0Ch	BYTE	connection type
		00h not in use
		02h NCP
		03h AFP
SeeAlso: #02174
--------N-21F217SF1B-------------------------
INT 21 - Novell NetWare - GET OBJECT CONNECTION LIST
	AX = F217h subfn 1Bh
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02176)
	ES:DI -> reply buffer (see #02177)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AX=F217h/SF=15h

Format of NetWare "Get Object Connection List" request packet:
Offset	Size	Description	(Table 02176)
 00h	WORD	length of following data
 02h	BYTE	1Bh (subfunction "Get Object Connection List")
 03h	DWORD	search connection number
		set to highest connection number returned by previous call, or
		  00000000h before first call
 07h	WORD	object type
 09h	BYTE	length of object's name
 0Ah  N BYTEs	object name
SeeAlso: #02177

Format of NetWare "Get Object Connection List" reply packet:
Offset	Size	Description	(Table 02177)
 00h	BYTE	length of connection number list
 01h  N WORDs	array of server connection numbers
SeeAlso: #02176
--------N-21F217SF1C-------------------------
INT 21 - Novell NetWare v3+ - GET CONNECTION INFORMATION
	AX = F217h subfn 1Ch
	CX = length of request packet in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request packet (see #02178)
	ES:DI -> reply buffer (see #02179)
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled
SeeAlso: AH=F2h"Novell",AX=F217h/SF=16h,AX=F217h/SF=1Fh

Format of NetWare "Get Connection Information" request packet:
Offset	Size	Description	(Table 02178)
 00h	WORD	0005h (length of following data)
 02h	BYTE	1Ch (subfunction "Get Connection Information")
 03h	DWORD	target connection number
Note:	connection numbers greater than the maximum supported by the server
	  can cause ABENDs
SeeAlso: #02179,#02170

Format of NetWare "Get Connection Information" reply packet:
Offset	Size	Description	(Table 02179)
 00h	DWORD	(big-endian) unique user ID, 00000000h if no one logged in
 04h	WORD	(big-endian) user type
 06h 48 BYTEs	user name
 36h  7 BYTEs	login time (see #02087)
 3Dh	BYTE	reserved
SeeAlso: #02178,#02171
--------N-21F217SF1D-------------------------
INT 21 - Novell NetWare v4 - CHANGE CONNECTION STATE
	AX = F217h subfn 1Dh
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02180)
	ES:DI -> reply buffer
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled

Format of NetWare "Change Connection State" requst buffer:
Offset	Size	Description	(Table 02180)
 00h	WORD	length of following data
 02h	BYTE	1Dh (subfunction "Change Connection State")
 03h	DWORD	new state
--------N-21F217SF1E-------------------------
INT 21 - Novell NetWare v4 - SET WATCHDOG DELAY INTERVAL
	AX = F217h subfn 1Eh
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02181)
	ES:DI -> reply buffer
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled

Format of NetWare "Set Watchdog Delay Interval" request buffer:
Offset	Size	Description	(Table 02181)
 00h	WORD	length of following data
 02h	BYTE	1Eh (subfunction "Set Watchdog Delay Interval")
 03h	DWORD	interval in minutes
--------N-21F217SF1F-------------------------
INT 21 - Novell NetWare v4 - GET CONNECTION LIST
	AX = F217h subfn 1Fh
	CX = length of request buffer in bytes
	DX = length of reply buffer in bytes
	DS:SI -> request buffer (see #02182)
	ES:DI -> reply buffer (see #02183)
Return: AL = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
	reply buffer filled

Format of NetWare "Get Connection List" request buffer:
Offset	Size	Description	(Table 02182)
 00h	WORD	length of following data
 02h	BYTE	1Fh (subfunction "Get Connection List")
 03h	DWORD	object ID
 07h	DWORD	??? (initialize to FFFFFFFFh before first call)
SeeAlso: #02183

Format of NetWare "Get Connection List" reply buffer:
Offset	Size	Description	(Table 02183)
 00h	WORD	number of connections following (max 50)
 02h 50 DWORDs	connection numbers
SeeAlso: #02182
--------N-21F217SF32-------------------------
INT 21 - Novell NetWare - CREATE BINDERY OBJECT
	AX = F217h subfn 32h
	CX = length of request packet in bytes
	DX = 0000h (no reply packet)
	DS:SI -> request packet	(see #01921 at AH=E3h/SF=32h)
	ES:DI ignored
Return: AX = status (see #02860 at INT 2F/AX=7A20h/BX=0000h)
SeeAlso: AH=F2h"Novell",AH=E3h/SF=32h,AX=F217h/SF=33h,AX=F217h/SF=34h
--------!---Section--------------------------
