home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / CLIPPER / MISC / INTER34A.ZIP / INTERRUP.D < prev    next >
Encoding:
Text File  |  1993-04-03  |  330.7 KB  |  9,129 lines

  1. Interrupt List, part 4 of 8
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. --------D-215F00-----------------------------
  4. INT 21 - DOS 3.1+ network - GET REDIRECTION MODE
  5.     AX = 5F00h
  6.     BL = redirection type
  7.         03h printer
  8.         04h disk drive
  9. Return: CF set on error
  10.         AX = error code (see AH=59h)
  11.     CF clear if successful
  12.         BH = redirection state
  13.         00h off
  14.         01h on
  15. Note:    calls INT 2F/AX=111Eh with AX on top of the stack
  16. SeeAlso: AX=5F01h,INT 2F/AX=111Eh
  17. --------D-215F01-----------------------------
  18. INT 21 - DOS 3.1+ network - SET REDIRECTION MODE
  19.     AX = 5F01h
  20.     BL = redirection type
  21.         03h printer
  22.         04h disk drive
  23.     BH = redirection state
  24.         00h off
  25.         01h on
  26. Return: CF set on error
  27.         AX = error code (see AH=59h)
  28.     CF clear if successful
  29. Notes:    when redirection is off, the local device (if any) rather than the
  30.       remote device is used
  31.     calls INT 2F/AX=111Eh with AX on top of the stack
  32. SeeAlso: AX=5F00h,INT 2F/AX=111Eh
  33. --------D-215F02-----------------------------
  34. INT 21 - DOS 3.1+ network, Banyan VINES, PC-NFS - GET REDIRECTION LIST ENTRY
  35.     AX = 5F02h
  36.     BX = redirection list index
  37.     CX = 0000h (LANtastic)
  38.     DS:SI -> 16-byte buffer for ASCIZ device name
  39.     ES:DI -> 128-byte buffer for ASCIZ network name
  40. Return: CF clear if successful
  41.         BH = device status
  42.         00h valid
  43.         01h invalid
  44.         BL = device type
  45.         03h printer
  46.         04h disk drive
  47.         CX = user data previously set with AX=5F03h
  48.         DS:SI and ES:DI buffers filled
  49.         DX,BP destroyed
  50.     CF set on error
  51.         AX = error code (01h,12h) (see AH=59h)
  52. Notes:    this function is passed through to INT 2F/AX=111Eh
  53.     error code 12h is returned if BX is greater than the size of the list
  54.     also supported by Banyan VINES, PC-NFS, and LANtastic
  55. SeeAlso: AX=5F03h,INT 2F/AX=111Eh
  56. --------D-215F03-----------------------------
  57. INT 21 - DOS 3.1+ network, Banyan VINES, LANtastic - REDIRECT DEVICE
  58.     AX = 5F03h
  59.     BL = device type
  60.         03h printer
  61.         04h disk drive
  62.     CX = user data to save
  63.         0000h for LANtastic
  64.     DS:SI -> ASCIZ local device name (16 bytes max)
  65.     ES:DI -> ASCIZ network name + ASCIZ password (128 bytes max total)
  66. Return: CF clear if successful
  67.     CF set on error
  68.         AX = error code (01h,03h,05h,08h,0Fh,12h) (see AH=59h)
  69. Notes:    if device type is disk drive, DS:SI must point at either a null string
  70.       or a string consisting the drive letter followed by a colon; if a
  71.       null string, the network attempts to access the destination without
  72.       redirecting a local drive
  73.     calls INT 2F/AX=111Eh with AX on top of the stack
  74. SeeAlso: AX=5F02h,AX=5F04h,INT 2F/AX=111Eh
  75. --------D-215F04-----------------------------
  76. INT 21 - DOS 3.1+ network, Banyan VINES, LANtastic - CANCEL REDIRECTION
  77.     AX = 5F04h
  78.     DS:SI -> ASCIZ device name or path
  79. Return: CF clear if successful
  80.     CF set on error
  81.         AX = error code (01h,03h,05h,08h,0Fh,12h) (see AH=59h)
  82. Notes:    the DS:SI string must be either a local device name, a drive letter
  83.       followed by a colon, or a network directory beginning with two
  84.       backslashes
  85.     calls INT 2F/AX=111Eh with AX on top of the stack
  86. SeeAlso: AX=5F03h,INT 2F/AX=111Eh
  87. --------D-215F05-----------------------------
  88. INT 21 - DOS 4.x + Microsoft Networks - GET REDIRECTION LIST EXTENDED ENTRY
  89.     AX = 5F05h
  90.     BX = redirection list index
  91.     DS:SI -> buffer for ASCIZ source device name
  92.     ES:DI -> buffer for destination ASCIZ network path
  93. Return: CF set on error
  94.         AX = error code (see AH=59h)
  95.     CF clear if successful
  96.         BH = device status flag (bit 0 clear if valid)
  97.         BL = device type (03h if printer, 04h if drive)
  98.         CX = stored parameter value (user data)
  99.         BP = NETBIOS local session number
  100.         DS:SI buffer filled
  101.         ES:DI buffer filled
  102. Notes:    the local session number allows sharing the redirector's session number
  103.     if an error is caused on the NETBIOS LSN, the redirector may be unable
  104.       to correctly recover from errors
  105.     calls INT 2F/AX=111Eh with AX on top of the stack
  106. SeeAlso: AX=5F06h"Network",INT 2F/AX=111Eh
  107. --------O-215F05-----------------------------
  108. INT 21 - STARLITE architecture - MAP LOCAL DRIVE LETTER TO REMOTE FILE SYSTEM
  109.     AX = 5F05h
  110.     DL = drive number (0=A:)
  111.     DS:SI -> ASCIZ name of the object to map the drive to
  112. Return: CF set on error
  113.         AX = error code (see AH=59h)
  114.     CF clear if successful
  115. SeeAlso: AX=5F06h"STARLITE"
  116. --------N-215F06-----------------------------
  117. INT 21 U - Network - GET FULL REDIRECTION LIST
  118.     AX = 5F06h
  119.     ???
  120. Return: ???
  121. Notes:    similar to AX=5F02h and AX=5F05h, but also returns redirections
  122.       excluded from those calls for various reasons
  123.     calls INT 2F/AX=111Eh with AX on top of the stack
  124. SeeAlso: AX=5F05h"DOS",INT 2F/AX=111Eh
  125. --------O-215F06-----------------------------
  126. INT 21 - STARLITE architecture - UNMAP DRIVE LETTER
  127.     AX = 5F06h
  128.     DL = drive to be unmapped (0=A:)
  129. Return: CF set on error
  130.         AX = error code (see AH=59h)
  131.     CF clear if successful
  132. SeeAlso: AX=5F05h"STARLITE"
  133. --------D-215F07-----------------------------
  134. INT 21 - DOS 5+ - ENABLE DRIVE
  135.     AX = 5F07h
  136.     DL = drive number (0=A:)
  137. Return: CF clear if successful
  138.     CF set on error
  139.         AX = error code (0Fh) (see AH=59h)
  140. Note:    simply sets the "valid" bit in the drive's CDS
  141. SeeAlso: AH=52h,AX=5F08h"DOS"
  142. --------O-215F07-----------------------------
  143. INT 21 - STARLITE architecture - MAKE NAMED OBJECT AVAILABLE ON NETWORK
  144.     AX = 5F07h
  145.     DS:SI -> ASCIZ name of object to offer to network
  146.     ES:DI -> ASCIZ name under which object will be known on the network
  147.         MUST begin with three slashes
  148. Return: CF set on error
  149.         AX = error code (see AH=59h)
  150.     CF clear if successful
  151. SeeAlso: AX=5F08h"STARLITE"
  152. --------D-215F08-----------------------------
  153. INT 21 - DOS 5+ - DISABLE DRIVE
  154.     AX = 5F08h
  155.     DL = drive number (0=A:)
  156. Return: CF clear if successful
  157.     CF set on error
  158.         AX = error code (0Fh) (see AH=59h)
  159. Note:    simply clears the "valid" bit in the drive's CDS
  160. SeeAlso: AH=52h,AX=5F07h"DOS"
  161. --------O-215F08-----------------------------
  162. INT 21 - STARLITE architecture - REMOVE GLOBAL NETWORK NAME OF OBJECT
  163.     AX = 5F08h
  164.     DS:SI -> ASCIZ network name (not local name) of object to unshare
  165. Return: CF set on error
  166.         AX = error code (see AH=59h)
  167.     CF clear if successful
  168. SeeAlso: AX=5F07h"STARLITE"
  169. --------O-215F09-----------------------------
  170. INT 21 - STARLITE architecture - BIND TO NETWORK DEVICE
  171.     AX = 5F09h
  172.     DS:DX -> ASCIZ name of the device driver to attach to
  173. Return: CF set on error
  174.         AX = error code (see AH=59h)
  175.     CF clear if successful
  176. Note:    the STARLITE distributed file system can attach to multiple networks
  177.       simultaneously
  178. SeeAlso: AX=5F0Ah
  179. --------O-215F0A-----------------------------
  180. INT 21 - STARLITE architecture - DETACH FROM NETWORK DEVICE
  181.     AX = 5F0Ah
  182.     DS:DX -> ASCIZ name of device driver to detach from
  183. Return: CF set on error
  184.         AX = error code (see AH=59h)
  185.     CF clear if successful
  186. SeeAlso: AX=5F09h
  187. --------N-215F30-----------------------------
  188. INT 21 U - LAN Manager Enhanced DOS - ???
  189.     AX = 5F30h
  190.     ???
  191. Return: ???
  192. --------N-215F32-----------------------------
  193. INT 21 u - Named Pipes - LOCAL DosQNmPipeInfo
  194.     AX = 5F32h
  195.     BX = handle
  196.     CX = size of _PIPEINFO structure
  197.     DX = level (must be 0001h)
  198.     DS:SI -> _PIPEINFO structure (see below)
  199. Return: CF clear if successful
  200.         _PIPEINFO structure filled in
  201.     CF set on error
  202.         AX = error code
  203. Note:    this function was introduced by LAN Manager but is also supported by
  204.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  205.       Machines, and others
  206. SeeAlso: AX=5F33h,AX=5F34h
  207.  
  208. Format of _PIPEINFO structure:
  209. Offset    Size    Description
  210.  00h    WORD    size of outgoing buffer
  211.  02h    WORD    size of incoming buffer
  212.  04h    BYTE    maximum number of instances allowed
  213.  05h    BYTE    current number of instances
  214.  06h    BYTE    length of the name (including terminating NUL)
  215.  07h  N BYTEs    name
  216. --------N-215F33-----------------------------
  217. INT 21 u - Named Pipes - LOCAL DosQNmPHandState
  218.     AX = 5F33h
  219.     BX = handle
  220. Return: CF clear if successful
  221.         AH = pipe mode bit mask (see below)
  222.         AL = maximum number of instances
  223.     CF set on error
  224.         AX = error code
  225. Note:    this function was introduced by LAN Manager but is also supported by
  226.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  227.       Machines, and others
  228. SeeAlso: AX=5F32h,AX=5F34h
  229.  
  230. Bitfields for pipe mode:
  231.  bit 7    set if nonblocking, clear if blocking
  232.  bit 6    set if server end, clear if client end
  233.  bit 2    set if write in message mode, clear if write in byte mode
  234.  bit 0    set if read in message mode, clear if read in byte mode
  235. --------N-215F34-----------------------------
  236. INT 21 u - Named Pipes - LOCAL DosSetNmPHandState
  237.     AX = 5F34h
  238.     BX = handle
  239.     CX = pipe mode bit mask
  240.         bit 15: set if nonblocking, clear if blocking
  241.         bit  8: set if read in message mode, clear if read in byte mode
  242. Return: CF clear if successful
  243.     CF set if error
  244.         AX = error code
  245. Note:    this function was introduced by LAN Manager but is also supported by
  246.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  247.       Machines, and others
  248. SeeAlso: AX=5F32h,AX=5F33h,AX=5F36h
  249. --------N-215F35-----------------------------
  250. INT 21 u - Named Pipes - LOCAL DosPeekNmPipe
  251.     AX = 5F35h
  252.     BX = handle
  253.     CX = buffer length
  254.     DS:SI -> buffer
  255. Return: CF clear if successful
  256.         CX = bytes read
  257.         SI = bytes left in the pipe
  258.         DX = bytes left in the current message
  259.         DI = pipe status
  260.         0001h disconnected
  261.         0002h listening
  262.         0003h connected
  263.         0004h closing
  264.     CF set if error
  265.         AX = error code
  266. Note:    this function was introduced by LAN Manager but is also supported by
  267.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  268.       Machines, and others
  269. SeeAlso: AX=5F38h,AX=5F39h,AX=5F51h
  270. --------N-215F36-----------------------------
  271. INT 21 u - Named Pipes - LOCAL DosTransactNmPipe
  272.     AX = 5F36h
  273.     BX = handle
  274.     CX = in buffer length
  275.     DS:SI -> in buffer
  276.     DX = out buffer length
  277.     ES:DI -> out buffer
  278. Return: CF clear if successful
  279.         CX = bytes read
  280.     CF set on error
  281.         AX = error code
  282. Note:    this function was introduced by LAN Manager but is also supported by
  283.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  284.       Machines, and others
  285. SeeAlso: AX=5F34h,AX=5F37h
  286. --------N-215F37-----------------------------
  287. INT 21 u - Named Pipes - DosCallNmPipe
  288.     AX = 5F37h
  289.     DS:SI -> DosCallNmPipe stack frame (see below)
  290. Return: CF clear if successful
  291.         CX = bytes read
  292.     CF set on error
  293.         AX = error code
  294. Note:    this function was introduced by LAN Manager but is also supported by
  295.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  296.       Machines, and others
  297. SeeAlso: AX=5F36h,AX=5F38h
  298.  
  299. Format of DosCallNmPipe stack frame:
  300. Offset    Size    Description
  301.  00h    DWORD    timeout
  302.  04h    DWORD    -> bytes read WORD (not used!!)
  303.  08h    WORD    out buffer length
  304.  0Ah    DWORD    address of out buffer
  305.  0Eh    WORD    in buffer length
  306.  10h    DWORD    address of in buffer
  307.  14h    DWORD    address of pipe name
  308. --------N-215F38-----------------------------
  309. INT 21 u - Named Pipes - LOCAL DosWaitNmPipe
  310.     AX = 5F38h
  311.     DS:DX -> pipe name
  312.     BX:CX = timeout value
  313. Return: CF clear if successful
  314.     CF set if error
  315.         AX = error code
  316. Note:    this function was introduced by LAN Manager but is also supported by
  317.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  318.       Machines, and others
  319. SeeAlso: AX=5F37h,AX=5F39h
  320. --------N-215F39-----------------------------
  321. INT 21 U - Named Pipes - LOCAL DosRawReadNmPipe
  322.     AX = 5F39h
  323.     BX = handle
  324.     CX = buffer length
  325.     DS:DX -> buffer
  326. Return: CF clear if successful
  327.         CX = bytes read
  328.     CF set if error
  329.         AX = error code
  330. Notes:    this function was introduced by LAN Manager but is also supported by
  331.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  332.       Machines, and others
  333.     not documented in the LAN Manager Toolkit
  334. SeeAlso: AX=5F35h,AX=5F3Ah,INT 2F/AX=1186h
  335. --------N-215F3A-----------------------------
  336. INT 21 U - Named Pipes - LOCAL DosRawWriteNmPipe
  337.     AX = 5F3Ah
  338.     BX = handle
  339.     CX = buffer length
  340.     DS:DX -> buffer
  341. Return: CF clear if successful
  342.         CX = bytes written
  343.     CF set if error
  344.         AX = error code
  345. Notes:    this function was introduced by LAN Manager but is also supported by
  346.       the Novell DOS Named Pipe Extender, Banyan VINES, OS/2 Virtual DOS
  347.       Machines, and others
  348.     not documented in the LAN Manager Toolkit
  349. SeeAlso: AX=5F39h,AX=5F3Bh,INT 2F/AX=118Fh
  350. --------N-215F3B-----------------------------
  351. INT 21 u - LAN Manager Enhanced DOS - NetHandleSetInfo
  352.     AX = 5F3Bh
  353.     BX = handle
  354.     CX = handle_info_1 structure length or sizeof DWORD
  355.     DI = parameter number to set
  356.         0000h all
  357.         0001h number of milliseconds
  358.         0002h number of characters
  359.     DS:DX -> handle_info_1 structure (DI=0000h) (see below)
  360.         or DWORD (DI=0001h or 0002h)
  361.     SI = level of information (0001h)
  362. Return: CF clear if successful
  363.         CX = total bytes available
  364.     CF set if error
  365.         AX = error code
  366. SeeAlso: AX=5F3Ch
  367.  
  368. Format of handle_info_1 structure:
  369. Offset    Size    Description
  370.  00h    DWORD    number of milliseconds which workstations collects data before
  371.         it sends the data to the named pipe
  372.  04h    DWORD    number of characters which workstations collects before it
  373.         sends the data to the named pipe
  374. --------N-215F3C-----------------------------
  375. INT 21 u - LAN Manager Enhanced DOS - NetHandleGetInfo
  376.     AX = 5F3Ch
  377.     BX = handle
  378.     CX = length of handle_info_1 structure
  379.     DS:DX -> handle_info_1 structure (see AX=5F3Bh)
  380.     SI = level of information (must be 0001h)
  381. Return: CF clear if successful
  382.         CX = total bytes available
  383.     CF set if error
  384.         AX = error code
  385. SeeAlso: AX=5F3Bh
  386. --------N-215F3D-----------------------------
  387. INT 21 U - LAN Manager Enhanced DOS - WRITE MAILSLOT???
  388.     AX = 5F3Dh
  389.     ???
  390. Return: ???
  391. --------N-215F3E-----------------------------
  392. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetSpecialSMB
  393.     AX = 5F3Eh
  394.     ???
  395. Return: ???
  396. Note:    This function is not documented anywhere in the LAN Manager 2.x Toolkit
  397.       but was documented in LAN Manager 1.x manuals.
  398. --------N-215F3F-----------------------------
  399. INT 21 U - LAN Manager Enhanced DOS - REMOTE API CALL
  400.     AX = 5F3Fh
  401.     CX = api number
  402.     ES:DI -> data descriptor
  403.     ES:SI -> parameter descriptor
  404.     ES:DX -> auxiliary descriptor (if DX <> 0)
  405.     ???
  406. Return: ???
  407. --------N-215F40-----------------------------
  408. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetMessageBufferSend
  409.     AX = 5F40h
  410.     DS:DX -> NetMessageBufferSend parameter structure (see below)
  411. Return: AX = error code
  412.  
  413. Format of NetMessageBufferSend parameter structure:
  414. Offset    Size    Description
  415.  00h    DWORD    -> recipient name (name for specific user, name* for domain
  416.              name wide, * for broadcast)
  417.  04h    DWORD    -> buffer
  418.  08h    WORD    length of buffer
  419. --------N-215F41-----------------------------
  420. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceEnum
  421.     AX = 5F41h
  422.     BL = level of detail (0000h, 0001h or 0002h)
  423.     CX = buffer length
  424.     ES:DI -> buffer of service_info_0, service_info_1, or service_info_2
  425.         (see below)
  426. Return: CF clear if successful
  427.         CX = entries read
  428.         DX = total available
  429.     CF set on error
  430.         AX = error code
  431.  
  432. Format of service_info_0 structure:
  433. Offset    Size    Description
  434.  00h 16 BYTEs    name
  435.  
  436. Format of service_info_1 structure:
  437. Offset    Size    Description
  438.  00h 16 BYTEs    name
  439.  10h    WORD    status bitmask (see below)
  440.  12h    DWORD    status code (see below)
  441.          (also see Microsoft LAN Manager Programmer's Reference)
  442.  16h    WORD    process id
  443.  
  444. Format of service_info_2 structure:
  445. Offset    Size    Description
  446.  00h 16 BYTEs    name
  447.  10h    WORD    status bitmask (see below)
  448.  12h    DWORD    status code (see below)
  449.  16h    WORD    process id
  450.  18h 64 BYTEs    text
  451.  
  452. Bitfields for status bitmask:
  453.  bits 0,1    00 uninstall
  454.          01 install pending
  455.         10 uninstall pending
  456.         11 installed
  457.  bits 2,3    00 active
  458.          01 Continue pending
  459.         10 Pause pending
  460.         11 paused
  461.  bit 4    uninstallable
  462.  bit 5    pausable
  463.  bit 8    disk redirector paused
  464.  bit 9    spooled device redirector paused (printing)
  465.  bit 10    communication device redirector paused
  466.  
  467. Values for status code:
  468.  high word
  469.     3051 Bad parameter value
  470.     3052 A parameter is missing
  471.     3053 An unknown parameter was specified
  472.     3054 The resource is insufficient
  473.     3055 Configuration is faulty
  474.     3056 An MS-DOS or MS OS/2 error occured
  475.     3057 An internal error occured
  476.     3058 An ambiguous parameter name was given
  477.     3059 A duplicate parameter exists
  478.     3060 The service was terminated by NetSeviceControl when it did not respond
  479.     3061 The service program file could not be executed
  480.     3062 The subservice failed to start
  481.     3063 There is a conflict in the value or use of these parameters
  482.     3064 There is a problem with the file
  483.  low word
  484.     3070 There is insufficient memory
  485.     3071 There is insufficeient disk space
  486.     3072 Unable to create thread
  487.     3073 Unable to create process
  488.     3074 A security failure occured
  489.     3075 There is bad or missing default path
  490.     3076 Network software is not installed
  491.     3077 Server software is not installed
  492.     3078 The server could not access the UAS database
  493.     3079 The action requires user-level security
  494.     3080 The log directory is invalid
  495.     3081 The LAN group specificed could not be used
  496.     3082 The computername is being used as a message alias on another computer
  497.     3083 The workstation failed to announce the servername
  498.     3084 The user accounts system is not configured properly
  499. --------N-215F42-----------------------------
  500. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServiceControl
  501.     AX = 5F42h
  502.     DH = opcode
  503.         00h interrogate status
  504.         01h pause
  505.         02h continue
  506.         03h uninstall
  507.     DL = argument
  508.         01h disk resource
  509.         02h print resource
  510.         04h communications resource (not implemented for DOS)
  511.     ES:BX -> NetServiceControl parameter structure (see below)
  512. Return: CF clear if successful
  513.     CF set on error
  514.         AX = error code
  515.  
  516. Format of NetServiceControl parameter structure:
  517. Offset    Size    Description
  518.  00h    DWORD    -> service name
  519.  04h    WORD    result buffer size
  520.  06h    DWORD    -> result buffer as service_info_2 structure
  521. --------N-215F43-----------------------------
  522. INT 21 u - LAN Manager Enhanced DOS - LOCAL DosPrintJobGetId
  523.     AX = 5F43h
  524.     BX = handle of remote print job
  525.     CX = size of PRIDINFO struture
  526.     ES:DI -> PRIDINFO structure (see below)
  527. Return: CF clear if successful
  528.         PRIDINFO filled in
  529.     CF set on error
  530.         AX = error code
  531.  
  532. Format of PRIDINFO structure:
  533. Offset    Size    Description
  534.  00h    WORD    job id
  535.  02h 16 BYTEs    server name
  536.  12h 13 BYTEs    queue name
  537.  1Fh  1 BYTE    pad
  538. --------N-215F44-----------------------------
  539. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetWkstaGetInfo
  540.     AX = 5F44h
  541.     BX = information level (00h, 01h, or 0Ah)
  542.     CX = buffer size
  543.     ES:DI = buffer in which to store info
  544. Return: AX = error code
  545.     DX = amount of buffer used (or required)
  546. SeeAlso: AX=5F45h,AX=5F49h
  547. --------N-215F45-----------------------------
  548. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetWkstaSetInfo
  549.     AX = 5F45h
  550.     BX = level (0000h or 0001h)
  551.     CX = buffer size
  552.     DX = parameter to set
  553.     ES:DI -> buffer
  554. Return: CF clear if successful
  555.     CF set if error
  556.         AX = error code
  557. SeeAlso: AX=5F44h
  558. --------N-215F46-----------------------------
  559. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseEnum
  560.     AX = 5F46h
  561.     BX = level (0000h or 0001h)
  562.     CX = size of buffer
  563.     ES:DI -> buffer of use_info_0 or use_info_1 structures (see below)
  564. Return: CF clear if successful
  565.         CX = entries read
  566.         DX = total available entries
  567.     CF set if error
  568.         AX = error code
  569. SeeAlso: AX=5F47h,AX=5F48h,AX=5F4Ch
  570.         
  571. Format of use_info_0 structure:
  572. Offset    Size    Description
  573.  00h  9 BYTEs    local device name
  574.  09h    BYTE    padding
  575.  0Ah    DWORD    -> remote device name in UNC form \\server\share
  576.  
  577. Format of use_info_1 structure:
  578. Offset    Size    Description
  579.  00h  9 BYTEs    Local device name
  580.  09h    BYTE    padding
  581.  0Ah    DWORD    -> remote device name in UNC form \\server\share
  582.  0Eh    DWORD    -> password
  583.  10h    WORD    ignored
  584.  12h    WORD    use type (-1 wildcard, 0 disk, 1 print, 2 com, 3 ipc)
  585.  14h    WORD    ignored
  586.  16h    WORD    ignored
  587. --------N-215F47-----------------------------
  588. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseAdd
  589.     AX = 5F47h
  590.     BX = level (0001h)
  591.     CX = size of use_info_1 structure
  592.     ES:DI -> use_info_1 structure (see AX=5F46h)
  593. Return: CF clear on success
  594.     CF set on error
  595.         AX = error code
  596. SeeAlso: AX=5F46h,AX=5F48h
  597. --------N-215F48-----------------------------
  598. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetUseDel
  599.     AX = 5F48h
  600.     BX = force level
  601.         0000h no force        
  602.         0001h force
  603.         0002h lots of force
  604.     ES:DI -> buffer as either the local device name or UNC remote name
  605. Return: CF clear on success
  606.     CF set on error
  607.         AX = error code
  608. SeeAlso: AX=5F46h,AX=5F48h,AX=5F49h
  609. --------N-215F49-----------------------------
  610. INT 21 u - LAN Manager Enhanced DOS - NetUseGetInfo
  611.     AX = 5F49h
  612.     DS:DX -> NetUseGetInfo parameter structure
  613. Return: CF clear on success
  614.         DX = total available
  615.     CF set on error
  616.         AX = error code
  617. SeeAlso: AX=5F44h,AX=5F47h
  618.  
  619. Format of NetUseGetInfo parameter structure:
  620. Offset    Size    Description
  621.  00h    DWORD    pointer to either the local device name or UNC remote name
  622.  04h    WORD    level of information (0000h or 0001h)
  623.  06h    DWORD    pointer to buffer of use_info_0 or use_info_1 structures
  624.  0Ah    WORD    length of buffer
  625. --------N-215F4A-----------------------------
  626. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteCopy
  627.     AX = 5F4Ah
  628.     DS:DX -> NetRemoteCopy parameter structure
  629. Return: CF clear if successful
  630.     CF set on error
  631.         AX = error code
  632. SeeAlso: AX=5F4Bh
  633.  
  634. Format of NetRemoteCopy parameter structure:
  635. Offset    Size    Description
  636.  00h    DWORD    -> source name as UNC
  637.  04h    DWORD    -> destination name as UNC
  638.  08h    DWORD    -> source password
  639.  0Ch    DWORD    -> destination password
  640.  10h    WORD    destination open bitmap
  641.         if destination path exists
  642.             0000h open fails
  643.             0001h file is appended
  644.             0002h file is overwritten
  645.         if destination path doesn't exist
  646.             0000h open fails
  647.             0010h file is created
  648.  12h    WORD    copy control bitmap (see below)
  649.  14h    DWORD    -> copy_info buffer
  650.  18h    WORD    length of copy_info buffer
  651.  
  652. Bitfields for copy control:
  653.  bit 0    destination must be a file
  654.  bit 1    destination must be a directory
  655.  bit 2    destination is opened in ascii mode instead of binary
  656.  bit 3    source is opened in ascii mode instead of binary
  657.  bit 4    verify all write operations
  658. --------N-215F4B-----------------------------
  659. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetRemoteMove
  660.     AX = 5F4Bh
  661.     DS:DX -> NetRemoteMove parameter structure
  662. Return: CF clear if successful
  663.     CF set on error
  664.         AX = error code
  665. SeeAlso: AX=5F4Ah
  666.  
  667. Format of NetRemoteMove parameter structure:
  668. Offset    Size    Description
  669.  00h    DWORD    -> source name as UNC
  670.  04h    DWORD    -> destination name as UNC
  671.  08h    DWORD    -> source password
  672.  0Ch    DWORD    -> destination password
  673.  10h    WORD    destination open bitmap
  674.         if destination path exists
  675.             0000h open fails
  676.             0001h file is appended
  677.             0002h file is overwritten
  678.         if destination path doesn't exist
  679.             0000h open fails
  680.             0010h file is created
  681.  12h    WORD    move control bitmap
  682.             0001h destination must be a file
  683.             0002h destination must be a directory
  684.  14h    DWORD    -> move_info buffer
  685.  18h    WORD    length of move_info buffer
  686. --------N-215F4C-----------------------------
  687. INT 21 u - LAN Manager Enhanced DOS - LOCAL NetServerEnum
  688.     AX = 5F4Ch
  689.     BX = level (0000h or 0001h)
  690.     CX = buffer length
  691.     ES:DI -> buffer in which to store information
  692. Return: CF clear if successful
  693.         ES:DI -> server_info_X structures (depending on level) (see below)
  694.         BX = entries read
  695.         CX = total entries available
  696.     CF set on error
  697.         AX = error code
  698. Notes:    this function is also supported by the Novell DOS Named Pipe Extender
  699.     this function has been obseleted by NetServerEnum2          
  700. SeeAlso: AX=5F53h
  701.  
  702. Format of server_info_0 structure:
  703. Offset    Size    Description
  704.  00h 16 BYTEs    name
  705.  
  706. Format of server_info_1 structure:
  707. Offset    Size    Description
  708.  00h 16 BYTEs    name
  709.  10h    BYTE    major version in lower nibble             
  710.  11h    BYTE    minor version
  711.  12h    DWORD    server type bitmask (see below)
  712.  16h    DWORD    -> comment string
  713.  
  714. Bitfields for server type:
  715.  bit 0    workstation
  716.  bit 1    server
  717.  bit 2    SQL server
  718.  bit 3    primary domain controller
  719.  bit 4    backup domain controller
  720.  bit 5    time server
  721.  bit 6    Apple File Protocol (AFP) server
  722.  bit 7    Novell server
  723.  bit 8    Domain Member (v2.1+)
  724.  bit 9    Print Queue server (v2.1+)
  725.  bit 10    Dialin server (v2.1+)
  726.  bit 11    Unix server (v2.1+)
  727. --------N-215F4D-----------------------------
  728. INT 21 u - LAN Manager Enhanced DOS - DosMakeMailslot
  729.     AX = 5F4Dh
  730.     BX = message size
  731.     CX = mailslot size (must be bigger than message size by at least 1)
  732.                (minimum 1000h, maximum FFF6h)
  733.                (buffer must be 9 bytes bigger than this)
  734.     DS:SI -> name
  735.     ES:DI -> memory buffer
  736. Return: CF clear if successful
  737.         AX = handle
  738.     CF set on error
  739.         AX = error code
  740. SeeAlso: AX=5F4Eh,AX=5F4Fh,AX=5F50h,AX=5F51h
  741. --------N-215F4E-----------------------------
  742. INT 21 u - LAN Manager Enhanced DOS - DosDeleteMailslot
  743.     AX = 5F4Eh
  744.     BX = handle
  745. Return: CF clear if successful
  746.         ES:DI -> memory to be freed (allocated during DosMakeMailslot)
  747.     CF set on error
  748.         AX = error code
  749. SeeAlso: AX=5F4Dh,AX=5F4Fh
  750. --------N-215F4F-----------------------------
  751. INT 21 u - LAN Manager Enhanced DOS - DosMailslotInfo
  752.     AX = 5F4Fh
  753.     BX = handle
  754. Return: CF clear if successful
  755.         AX = max message size
  756.         BX = mailslot size
  757.         CX = next message size
  758.         DX = next message priority
  759.         SI = number of messages waiting
  760.     CF set on error
  761.         AX = error code
  762. SeeAlso: AX=5F4Dh,AX=5F4Eh,AX=5F50h
  763. --------N-215F50-----------------------------
  764. INT 21 u - LAN Manager Enhanced DOS - DosReadMailslot
  765.     AX = 5F50h
  766.     BX = handle
  767.     DX:CX = timeout
  768.     ES:DI -> buffer
  769. Return: CF clear if successful
  770.         AX = bytes read
  771.         CX = next item's size
  772.         DX = next item's priority
  773.     CF set on error
  774.         AX = error code
  775. SeeAlso: AX=5F4Dh,AX=5F4Fh,AX=5F51h,AX=5F52h
  776. --------N-215F51-----------------------------
  777. INT 21 u - LAN Manager Enhanced DOS - DosPeekMailslot
  778.     AX = 5F51h
  779.     BX = handle
  780.     ES:DI -> buffer
  781. Return: CF clear if successful
  782.         AX = bytes read
  783.         CX = next item's size
  784.         DX = next item's priority
  785.     CF set on error
  786.         AX = error code
  787. SeeAlso: AX=5F35h,AX=5F4Fh,AX=5F50h,AX=5F52h
  788. --------N-215F52-----------------------------
  789. INT 21 u - LAN Manager Enhanced DOS - DosWriteMailslot
  790.     AX = 5F52h
  791.     BX = class
  792.     CX = length of buffer
  793.     DX = priority
  794.     ES:DI -> DosWriteMailslot parameter structure (see below)
  795.     DS:SI -> mailslot name
  796. Return: CF clear if successful
  797.     CF set on error
  798.         AX = error code
  799. SeeAlso: AX=5F4Fh,AX=5F50h,AX=5F51h
  800.  
  801. Format of DosWriteMailslot parameter structure:
  802. Offset    Size    Description
  803.  00h    DWORD    timeout
  804.  04h    DWORD    -> buffer
  805. --------N-215F53-----------------------------
  806. INT 21 u - LAN Manager Enhanced DOS - NetServerEnum2
  807.     AX = 5F53h
  808.     DS:SI -> NetServerEnum2 parameter structure (see below)
  809. Return: CF clear if successful
  810.         BX = entries read
  811.         CX = total entries available
  812.     CF set on error
  813.         AX = error code
  814. SeeAlso: AX=5F4Ch
  815.         
  816. Format of NetServerEnum2 parameter structure:
  817. Offset    Size    Description
  818.  00h    WORD    level (0000h or 0001h)
  819.  02h    DWORD    -> buffer as array of server_info_??? structures
  820.  06h    WORD    length of buffer
  821.  08h    DWORD    server type bitmask (see below)
  822.  0Ch    DWORD    -> Domain name (may be 0000h:0000h for all local domains)
  823.  
  824. Bitfields for server type:
  825.  bit 0    workstation
  826.  bit 1    server
  827.  bit 2    SQL server
  828.  bit 3    primary domain controller
  829.  bit 4    backup domain controller
  830.  bit 5    time server
  831.  bit 6    Apple File Protocol (AFP) server
  832.  bit 7    Novell server
  833.  bit 8    Domain Member (v2.1+)
  834.  bit 9    Print Queue server (v2.1+)
  835.  bit 10    Dialin server (v2.1+)
  836.  bit 11    Unix server (v2.1+)
  837. Note:    set all bits (FFFFFFFFh) for All Types
  838.  
  839. Format of server_info_0 structure:
  840. Offset    Size    Description
  841.  00h 16 BYTEs    name
  842.  
  843. Format of server_info_1 structure:
  844. Offset    Size    Description
  845.  00h 16 BYTEs    name
  846.  10h    BYTE    major version in lower nibble             
  847.  11h    BYTE    minor version
  848.  12h    DWORD    server type (bits 0-11) (see above)
  849.  16h    DWORD    -> comment string
  850. --------N-215F55----------------------------
  851. INT 21 U - LAN Manager Enhanced DOS - KILL ALL CONNECTIONS???
  852.     AX = 5F55h
  853.     BX = ???
  854. Return: CF clear if successful
  855.     CF set on error
  856.         AX = error code
  857. --------N-215F80-----------------------------
  858. INT 21 - LANtastic - GET LOGIN ENTRY
  859.     AX = 5F80h
  860.     BX = login entry index (0-based)
  861.     ES:DI -> 16-byte buffer for machine name
  862. Return: CF clear if successful
  863.         buffer filled with machine name ("\\" prefix removed)
  864.         DL = adapter number (v3+)
  865.     CF set on error
  866.         AX = error code
  867. Note:    the login entry index corresponds to the value BX used in AX=5F83h
  868. SeeAlso: AX=5F83h
  869. --------N-215F81-----------------------------
  870. INT 21 - LANtastic - LOGIN TO SERVER
  871.     AX = 5F81h
  872.     ES:DI -> ASCIZ login path followed immediately by ASCIZ password
  873.     BL = adapter number
  874.         FFh try all valid adapters
  875.         00h-07h try only specified adapter
  876. Return: CF clear if successful
  877.     CF set on error
  878.         AX = error code
  879. Notes:    login path is of form "\\machine\username"
  880.     if no password is used, the string at ES:DI must be terminated with
  881.       three NULs for compatibility with LANtastic v3.0.
  882. SeeAlso: AX=5F82h,AX=5F84h
  883. --------N-215F82-----------------------------
  884. INT 21 - LANtastic - LOGOUT FROM SERVER
  885.     AX = 5F82h
  886.     ES:DI -> ASCIZ server name (in form "\\machine")
  887. Return: CF clear if successful
  888.     CF set on error
  889.         AX = error code
  890. SeeAlso: AX=5F81h,AX=5F88h,AX=5FCBh
  891. --------N-215F83-----------------------------
  892. INT 21 - LANtastic - GET USERNAME ENTRY
  893.     AX = 5F83h
  894.     BX = login entry index (0-based)
  895.     ES:DI -> 16-byte buffer for username currently logged into
  896. Return: CF clear if successful
  897.         DL = adapter number (v3+)
  898.     CF set on error
  899.         AX = error code
  900. Note:    the login entry index corresponds to the value BX used in AX=5F80h
  901. SeeAlso: AX=5F80h
  902. --------N-215F84-----------------------------
  903. INT 21 - LANtastic - GET INACTIVE SERVER ENTRY
  904.     AX = 5F84h
  905.     BX = server index not currently logged into
  906.     ES:DI -> 16-byte buffer for server name which is available for logging
  907.         in to ("\\" prefix omitted)
  908. Return: CF clear if successful
  909.         DL = adapter number to non-logged in server is on
  910.     CF set on error
  911.         AX = error code
  912. SeeAlso: AX=5F81h
  913. --------N-215F85-----------------------------
  914. INT 21 - LANtastic - CHANGE PASSWORD
  915.     AX = 5F85h
  916.     ES:DI -> buffer containing "\\machine\oldpassword" 00h "newpassword"00h
  917. Return: CF clear if successful
  918.     CF set on error
  919.         AX = error code
  920. Notes:    must be logged into the named machine
  921.     this function is illegal for group accounts
  922. --------N-215F86-----------------------------
  923. INT 21 - LANtastic - DISABLE ACCOUNT
  924.     AX = 5F86h
  925.     ES:DI -> ASCIZ machine name and password in form "\\machine\password"
  926. Return: CF clear if successful
  927.     CF set on error
  928.         AX = error code
  929. Note:    must be logged into the named machine and concurrent logins set to 1
  930.       by NET_MGR.  Requires system manager to re-enable account.
  931. --------N-215F87-----------------------------
  932. INT 21 - LANtastic v3+ - GET ACCOUNT
  933.     AX = 5F87h
  934.     DS:SI -> 128-byte buffer for account information (see below)
  935.     ES:DI -> ASCIZ machine name in form "\\machine"
  936. Return:    CF clear if successful
  937.     CF set on error
  938.         AX = error code
  939.     BX destroyed
  940. Note:    must be logged into the specified machine
  941.  
  942. Format of user account structure:
  943. Offset    Size    Description
  944.  00h 16 BYTEs    blank-padded username (zero-padded for v4.x)
  945.  10h 16 BYTEs    reserved (00h)
  946.  20h 32 BYTEs    user description
  947.  40h    BYTE    privilege bits (see below)
  948.  41h    BYTE    maximum concurrent users
  949.  42h 42 BYTEs    bit map for disallowed half hours, beginning on Sunday
  950.         (bit set if half-hour not an allowed time)
  951.  6Ch    WORD    internal (0002h)
  952.  6Eh  2 WORDs    last login time
  953.  72h  2 WORDs    account expiration date (MS-DOS-format year/month:day)
  954.  76h  2 WORDs    password expiration date (0 = none)
  955.  7Ah    BYTE    number of days to extend password after change (1-31)
  956.         00h if no extension required
  957. ---v3.x---
  958.  7Bh  5 BYTEs    reserved
  959. ---v4.x---
  960.  7Bh    BYTE    storage for first letter of user name when deleted (first
  961.         character is changed to 00h when deleting account)
  962.  7Ch    BYTE    extended privileges
  963.  7Dh  3 BYTEs    reserved
  964.  
  965. Bitfields for privilege bits:
  966.  bit 7    bypass access control lists
  967.  bit 6    bypass queue protection
  968.  bit 5    treat as local process
  969.  bit 4    bypass mail protection
  970.  bit 3    allow audit entry creation
  971.  bit 2    system manager
  972.  bit 0    user cannot change password
  973. --------N-215F88-----------------------------
  974. INT 21 - LANtastic v4.0+ - LOGOUT FROM ALL SERVERS
  975.     AX = 5F88h
  976. Return:    CF clear if successful
  977.     CF set on error
  978.         AX = error code
  979. SeeAlso: AX=5F82h
  980. --------N-215F97-----------------------------
  981. INT 21 - LANtastic - COPY FILE
  982.     AX = 5F97h
  983.     CX:DX = number of bytes to copy (FFFFFFFFh = entire file)
  984.     SI = source file handle
  985.     DI = destination file handle
  986. Return: CF clear if successful
  987.         DX:AX = number of bytes copied
  988.     CF set on error
  989.         AX = error code
  990. Note:    copy is performed by server
  991. --------N-215F98-----------------------------
  992. INT 21 - LANtastic - SEND UNSOLICITED MESSAGE
  993.     AX = 5F98h
  994.     DS:SI -> message buffer (see below)
  995. Return: CF clear if successful
  996.     CF set on error
  997.         AX = error code
  998. Note:    v4.1- return no errors
  999. SeeAlso: AX=5F99h
  1000.  
  1001. Format of message buffer:
  1002. Offset    Size    Description
  1003.  00h    BYTE    reserved
  1004.  01h    BYTE    message type
  1005.         00h general 
  1006.         01h server warning
  1007.         02h-7Fh reserved
  1008.         80h-FFh user-defined
  1009.  02h 16 BYTEs    ASCIZ destination machine name
  1010.  12h 16 BYTEs    ASCIZ server name which user must be logged into
  1011.  22h 16 BYTEs    ASCIZ user name
  1012.  32h 16 BYTEs    ASCIZ originating machine name (filled in when received)
  1013.  42h 80 BYTEs    message text
  1014. --------N-215F99-----------------------------
  1015. INT 21 - LANtastic - GET LAST RECEIVED UNSOLICITED MESSAGE
  1016.     AX = 5F99h
  1017.     ES:DI -> messsage buffer (see AX=5F98h for format)
  1018. Return: CF clear if successful
  1019.     CF set on error
  1020.         AX = error code
  1021. SeeAlso: AX=5F98h
  1022. --------N-215F9A-----------------------------
  1023. INT 21 - LANtastic - GET MESSAGE PROCESSING FLAGS
  1024.     AX = 5F9Ah
  1025. Return: CF clear if successful
  1026.         DL = bits describing processing for received unsolicited messages
  1027.         bit 0: beep before message is delivered
  1028.         bit 1: deliver message to message service
  1029.         bit 2: pop up message automatically (v3+)
  1030.     CF set on error
  1031.         AX = error code
  1032. SeeAlso: AX=5F9Bh,AX=5F9Ch,AX=5F9Dh
  1033. --------N-215F9B-----------------------------
  1034. INT 21 - LANtastic - SET MESSAGE PROCESSING FLAG
  1035.     AX = 5F9Bh
  1036.     DL = bits describing processing for received unsolicited messages
  1037.          (see AX=5F9Ah)
  1038. Return: CF clear if successful
  1039.     CF set on error
  1040.         AX = error code
  1041. SeeAlso: AX=5F9Ah,AX=5F9Eh
  1042. --------N-215F9C-----------------------------
  1043. INT 21 - LANtastic v3+ - POP UP LAST RECEIVED MESSAGE
  1044.     AX = 5F9Ch
  1045.     CX = time to leave on screen in clock ticks
  1046.     DH = 0-based screen line on which to place message
  1047. Return:    CF clear if successful
  1048.     CF set on error
  1049.         AX = error code (0Bh)
  1050. Notes:    the original screen contents are restored when the message is removed
  1051.     the message will not appear, and an error will be returned, if the
  1052.       screen is in a graphics mode
  1053. SeeAlso: AX=5F9Ah
  1054. --------N-215F9D-----------------------------
  1055. INT 21 - LANtastic v4.1+ - GET REDIRECTOR CONTROL BITS
  1056.     AX = 5F9Dh
  1057. Return:    DL = redirector control bits
  1058.         bit 7: set to notify on print job completion
  1059. SeeAlso: AX=5F9Ah,AX=5F9Eh
  1060. --------N-215F9E-----------------------------
  1061. INT 21 - LANtastic v4.1+ - SET REDIRECTOR CONTROL BITS
  1062.     AX = 5F9Eh
  1063.     DL = redirector control bits (see AH = 5F9Dh)
  1064. Return: nothing
  1065. SeeAlso: AX=5F9Bh,AX=5F9Dh
  1066. --------N-215FA0-----------------------------
  1067. INT 21 - LANtastic - GET QUEUE ENTRY
  1068.     AX = 5FA0h
  1069.     BX = queue entry index (0000h is first entry)
  1070.     DS:SI -> buffer for queue entry (see below)
  1071.     ES:DI -> ASCIZ server name in form "\\name"
  1072. Return: CF clear if successful
  1073.     CF set on error
  1074.         AX = error code
  1075.     BX = entry index for next queue entry (BX-1 is current index)
  1076. SeeAlso: AX=5FA1h,AX=5FA2h
  1077.  
  1078. Format of queue entry:
  1079. Offset    Size    Description
  1080.  00h    BYTE    status of entry
  1081.         00h empty
  1082.         01h being updated
  1083.         02h being held
  1084.         03h waiting for despool
  1085.         04h being despooled
  1086.         05h canceled
  1087.         06h spooled file could not be accessed
  1088.         07h destination could not be accessed
  1089.         08h rush job
  1090.  01h    DWORD    size of spooled file
  1091.  05h    BYTE    type of entry
  1092.         00h printer queue file
  1093.         01h message
  1094.         02h local file
  1095.         03h remote file
  1096.         04h to remote modem
  1097.         05h batch processor file
  1098.  06h    BYTE    output control
  1099.         bit 6: don't delete (for mail)
  1100.         bit 5: mail file contains voice mail (v3+)
  1101.         bit 4: mail message has been read
  1102.         bit 3: response has been requested for this mail
  1103.  07h    WORD    number of copies
  1104.  09h    DWORD    sequence number of queue entry
  1105.  0Dh 48 BYTEs    pathname of spooled file
  1106.  3Dh 16 BYTEs    user who spooled file
  1107.  4Dh 16 BYTEs    name of machine from which file was spooled
  1108.  5Dh    WORD    date file was spooled (see AX=5700h)
  1109.  5Fh    WORD    time file was spooled (see AX=5700h)
  1110.  61h 17 BYTEs    ASCIZ destination device or user name
  1111.  72h 48 BYTEs    comment field
  1112. --------N-215FA1-----------------------------
  1113. INT 21 - LANtastic - SET QUEUE ENTRY
  1114.     AX = 5FA1h
  1115.     BX = handle of opened queue entry
  1116.     DS:SI -> queue entry (see AX=5FA0h)
  1117. Return: CF clear if successful
  1118.     CF set on error
  1119.         AX = error code
  1120. Notes:    the only queue entry fields which may be changed are output control,
  1121.       number of copies, destination device, and comment
  1122.     the handle in BX is that from a create or open (INT 21/AH=3Ch,3Dh)
  1123.       call on the file "\\server\\@MAIL" or "\\server\@name" (for
  1124.       printer queue entries)
  1125. SeeAlso: AX=5FA0h,AX=5FA2h,AX=5FA9h
  1126. --------N-215FA2-----------------------------
  1127. INT 21 - LANtastic - CONTROL QUEUE
  1128.     AX = 5FA2h
  1129.     BL = control command
  1130.         00h start despooling (privileged)
  1131.         01h halt despooling (privileged)
  1132.         02h halt despooling at end of job (privileged)
  1133.         03h pause despooler at end of job (privileged)
  1134.         04h print single job (privileged)
  1135.         05h restart current job (privileged)
  1136.         06h cancel the current job
  1137.         07h hold queue entry
  1138.         08h release a held queue entry
  1139.         09h make queue entry a rushed job (privileged)
  1140.     CX:DX = sequence number to control (commands 06h-09h)
  1141.     DX = physical printer number (commands 00h-05h)
  1142.         00h-02h LPT1-LPT3
  1143.         03h,04h COM1,COM2
  1144.         other    all printers
  1145.     ES:DI -> ASCIZ server name in form "\\machine"
  1146. Return: CF clear if successful
  1147.     CF set on error
  1148.         AX = error code
  1149. --------N-215FA3-----------------------------
  1150. INT 21 - LANtastic v3+ - GET PRINTER STATUS
  1151.     AX = 5FA3h
  1152.     BX = physical printer number (00h-02h = LPT1-LPT3, 03h-04h = COM1-COM2)
  1153.     DS:SI -> buffer for printer status (see below)
  1154.     ES:DI -> ASCIZ server name in form "\\machine"
  1155. Return: CF clear if successful
  1156.     CF set on error
  1157.         AX = error code
  1158.     BX = next physical printer number
  1159. Note:    you must be logged in to the specified server
  1160.  
  1161. Format of printer status:
  1162. Offset    Size    Description
  1163.  00h    BYTE    printer state
  1164.         bit 7: printer paused
  1165.         bits 0-6: 0 printer disabled
  1166.               1 will stop at end of job
  1167.               2 print multiple jobs
  1168.  01h    WORD    queue index of print job being despooled
  1169.         FFFFh if not despooling--ignore all following fields
  1170.  03h    WORD    actual characters per second being output
  1171.  05h    DWORD    number of characters actually output so far
  1172.  09h    DWORD    number of bytes read from spooled file so far
  1173.  0Dh    WORD    copies remaining to print
  1174. --------N-215FA4-----------------------------
  1175. INT 21 - LANtastic v3+ - GET STREAM INFO
  1176.     AX = 5FA4h
  1177.     BX = 0-based stream index number
  1178.     DS:SI -> buffer for stream information (see below)
  1179.     ES:DI -> ASCIZ machine name in form "\\machine"
  1180. Return: CF clear if successful
  1181.     CF set on error
  1182.         AX = error code
  1183.     BX = next stream number
  1184. SeeAlso: AX=5FA5h
  1185.  
  1186. Format of stream information:
  1187. Offset    Size    Description
  1188.  00h    BYTE    queueing of jobs for logical printer (0=disabled,other=enabled)
  1189.  01h 11 BYTEs    logical printer resource template (may contain ? wildcards)
  1190. --------N-215FA5-----------------------------
  1191. INT 21 - LANtastic v3+ - SET STREAM INFO
  1192.     AX = 5FA5h
  1193.     BX = 0-based stream index number
  1194.     DS:SI -> buffer containing stream information (see AX=5FA4h)
  1195.     ES:DI -> ASCIZ machine name in form "\\machine"
  1196. Return: CF clear if successful
  1197.     CF set on error
  1198.         AX = error code
  1199. SeeAlso: AX=5FA4h
  1200. --------N-215FA7-----------------------------
  1201. INT 21 - LANtastic - CREATE USER AUDIT ENTRY
  1202.     AX = 5FA7h
  1203.     DS:DX -> ASCIZ reason code (max 8 bytes)
  1204.     DS:SI -> ASCIZ variable reason string (max 128 bytes)
  1205.     ES:DI -> ASCIZ machine name in form "\\machine"
  1206. Return: CF clear if successful
  1207.     CF set on error
  1208.         AX = error code
  1209. Note:    you must be logged in to the specified server and have the "U"
  1210.       privilege to execute this call
  1211. --------N-215FA9-----------------------------
  1212. INT 21 - LANtastic v4.1+ - SET EXTENDED QUEUE ENTRY
  1213.     AX = 5FA9h
  1214.     BX = handle of opened queue entry
  1215.     DS:SI -> queue entry (see AX=5FA0h)
  1216. Return: CF clear if successful
  1217.     CF set on error
  1218.         AX = error code
  1219. Note:    functions exactly the same as AX=5FA1h except the spooled filename is
  1220.       also set.  This call supports    direct despooling.
  1221. SeeAlso: AX=5FA1h
  1222. --------N-215FB0-----------------------------
  1223. INT 21 - LANtastic - GET ACTIVE USER INFORMATION
  1224.     AX = 5FB0h
  1225.     BX = server login entry index
  1226.     DS:SI -> buffer for active user entry (see below)
  1227.     ES:DI -> ASCIZ machine name in form "\\server"
  1228. Return: CF clear if successful
  1229.     CF set on error
  1230.         AX = error code
  1231.     BX = next login index
  1232. SeeAlso: AX=5FB2h
  1233.  
  1234. Format of active user entry:
  1235. Offset    Size    Description
  1236.  00h    WORD    virtual circuit number
  1237.  02h    BYTE    login state (see below)
  1238.  03h    BYTE    last command issued (see below)
  1239.  04h  5 BYTEs    number of I/O bytes (40-bit unsigned number)
  1240.  09h  3 BYTEs    number of server requests (24-bit unsigned)
  1241.  0Ch 16 BYTEs    name of user who is logged in
  1242.  1Ch 16 BYTEs    name of remote logged in machine
  1243.  2Ch    BYTE    extended privileges (v4+???)
  1244.         bit 0: user cannot change his password
  1245.  2Dh    WORD    time left in minutes (0000h = unlimited) (v4+???)
  1246.  
  1247. Bitfields for login state:
  1248.  bit 0    fully logged in
  1249.  bit 1    remote program load login
  1250.  bit 2    user has system manager privileges
  1251.  bit 3    user can create audit entries
  1252.  bit 4    bypass mail protection
  1253.  bit 5    treat as local process
  1254.  bit 6    bypass queue protection
  1255.  bit 7    bypass access control lists
  1256.  
  1257. Values for last command:
  1258.  00h    login
  1259.  01h    process termination
  1260.  02h    open file
  1261.  03h    close file
  1262.  04h    create file
  1263.  05h    create new file
  1264.  06h    create unique file
  1265.  07h    commit data to disk
  1266.  08h    read file
  1267.  09h    write file
  1268.  0Ah    delete file
  1269.  0Bh    set file attributes
  1270.  0Ch    lock byte range
  1271.  0Dh    unlock byte range
  1272.  0Eh    create subdirectory
  1273.  0Fh    remove subdirectory
  1274.  10h    rename file
  1275.  11h    find first matching file
  1276.  12h    find next matching file
  1277.  13h    get disk free space
  1278.  14h    get a queue entry
  1279.  15h    set a queue entry
  1280.  16h    control the queue
  1281.  17h    return login information
  1282.  18h    return link description
  1283.  19h    seek on file
  1284.  1Ah    get server's time
  1285.  1Bh    create audit entry
  1286.  1Ch    open file in multitude of modes
  1287.  1Dh    change password
  1288.  1Eh    disable account
  1289.  1Fh    local server file copy
  1290. ---v3+---
  1291.  20h    get username from account file
  1292.  21h    translate server's logical path
  1293.  22h    make indirect file
  1294.  23h    get indirect file contents
  1295.  24h    get physical printer status
  1296.  25h    get logical print stream info
  1297.  26h    set logical print stream info
  1298.  27h    get user's account record
  1299. ---v4+---
  1300.  28h    request server shutdown
  1301.  29h    cancel server shutdown
  1302.  2Ah    stuff server's keyboard
  1303.  2Bh    write then commit data to disk
  1304.  2Ch    set extended queue entry
  1305.  2Dh    terminate user from server
  1306.  2Eh    enable/disable logins
  1307.  2Fh    flush server caches
  1308.  30h    change username
  1309.  31h    get extended queue entry
  1310.     (same as get queue, but can return named fields blanked)
  1311. --------N-215FB1-----------------------------
  1312. INT 21 - LANtastic - GET SHARED DIRECTORY INFORMATION
  1313.     AX = 5FB1h
  1314.     DS:SI -> 64-byte buffer for link description
  1315.     ES:DI -> ASCIZ machine and shared directory name in form
  1316.          "\\machine\shared-resource"
  1317. Return: CF clear if successful
  1318.         CX = access control list privileges for requesting user (see below)
  1319.     CF set on error
  1320.         AX = error code
  1321.  
  1322. Bitfields for access control list:
  1323.  bit 4    (I) allow expansion of indirect files
  1324.  bit 5    (A) allow attribute changing
  1325.  bit 6    (P) allow physical access to device
  1326.  bit 7    (E) allow program execution
  1327.  bit 8    (N) allow file renaming
  1328.  bit 9    (K) allow directory deletion
  1329.  bit 10    (D) allow file deletion
  1330.  bit 11    (L) allow file/directory lookups
  1331.  bit 12    (M) allow directory creation
  1332.  bit 13    (C) allow file creation
  1333.  bit 14    (W) allow open for write and writing
  1334.  bit 15    (R) allow open for read and reading
  1335. --------N-215FB2-----------------------------
  1336. INT 21 - LANtastic v3+ - GET USERNAME FROM ACCOUNT FILE
  1337.     AX = 5FB2h
  1338.     BX = username entry index (0 for first)
  1339.     DS:SI -> 16-byte buffer for username
  1340.     ES:DI -> ASCIZ server name in form "\\machine"
  1341. Return: CF clear if successful
  1342.     CF set on error
  1343.         AX = error code
  1344.     BX = next queue entry index
  1345. SeeAlso: AX=5FB0h
  1346. --------N-215FB3-----------------------------
  1347. INT 21 - LANtastic v3+ - TRANSLATE PATH
  1348.     AX = 5FB3h
  1349.     DS:SI -> 128-byte buffer for ASCIZ result
  1350.     ES:DI -> full ASCIZ path, including server name
  1351.     DX = types of translation to be performed
  1352.         bit 0: expand last component as indirect file
  1353.         bit 1: return actual path relative to server's physical disk
  1354. Return: CF clear if successful
  1355.     CF set on error
  1356.         AX = error code
  1357. Note:    always expands any indirect files along the path
  1358. SeeALso: AX=5FB4h,INT 21/AH=60h
  1359. --------N-215FB4-----------------------------
  1360. INT 21 - LANtastic v3+ - CREATE INDIRECT FILE
  1361.     AX = 5FB4h
  1362.     DS:SI -> 128-byte buffer containing ASCIZ contents of indirect file
  1363.     ES:DI -> full ASCIZ path of indirect file to create, incl machine name
  1364. Return: CF clear if successful
  1365.     CF set on error
  1366.         AX = error code
  1367. Note:    the contents of the indirect file may be any valid server-relative path
  1368. SeeAlso: AX=5FB3h,AX=5FB5h
  1369. --------N-215FB5-----------------------------
  1370. INT 21 - LANtastic v3+ - GET INDIRECT FILE CONTENTS
  1371.     AX = 5FB5h
  1372.     DS:SI -> 128-byte buffer for ASCIZ indirect file contents
  1373.     ES:DI -> full ASCIZ path of indirect file
  1374. Return: CF clear if successful
  1375.     CF set on error
  1376.         AX = error code
  1377. SeeAlso: AX=5FB4h
  1378. --------N-215FB6-----------------------------
  1379. INT 21 - LANtastic v4.1+ - SET AUTO-LOGIN DEFAULTS
  1380.     AX = 5FB6h
  1381.     ES:DI -> pointer to ASCIZ default user name, immediately followed by
  1382.         ASCIZ password
  1383.     BL = adapter number to use for default login attempt
  1384.         FFh try all valid adapters
  1385.         00h-05h try adapter 0-5 explicitly
  1386. Return: CF clear if successful
  1387.     CF set on error
  1388.         AX = error code
  1389. Notes:    call with ES:DI -> two nulls to disable auto-login
  1390. SeeAlso: AX=5FB7h
  1391. --------N-215FB7-----------------------------
  1392. INT 21 - LANtastic v4.1+ - GET AUTO-LOGIN DEFAULTS
  1393.     AX = 5FB7h
  1394.     ES:DI -> pointer to 16-byte buffer to store ASCIZ auto-login user name
  1395. Return: CF clear if successful
  1396.         DL = adapter number used for default login attempt
  1397.         FFh all valid adapters will be tried
  1398.         00h-05h specified adapter will be tried explicitly
  1399.     CF set on error
  1400.         AX = error code
  1401. SeeAlso: AX=5F81h,AX=5FB6h
  1402. --------N-215FC0-----------------------------
  1403. INT 21 - LANtastic - GET TIME FROM SERVER
  1404.     AX = 5FC0h
  1405.     DS:SI -> time block (see below)
  1406.     ES:DI -> ASCIZ server name to get time from
  1407. Return: CF clear if successful
  1408.     CF set on error
  1409.         AX = error code
  1410. SeeAlso: AH=E7h
  1411.  
  1412. Format of time block:
  1413. Offset    Size    Description
  1414.  00h    WORD    year
  1415.  02h    BYTE    day
  1416.  03h    BYTE    month
  1417.  04h    BYTE    minutes
  1418.  05h    BYTE    hour
  1419.  06h    BYTE    hundredths of second
  1420.  07h    BYTE    second
  1421. --------N-215FC8-----------------------------
  1422. INT 21 - LANtastic v4.0+ - SCHEDULE SERVER SHUTDOWN
  1423.     AX = 5FC8h
  1424.     ES:DI -> ASCIZ server name in form "\\machine"
  1425.     DS:SI -> ASCIZ reason string (80 characters)
  1426.     CX = number of minutes until shutdown (0 = immediate)
  1427.     DX = option flags (see below)
  1428. Return: CF clear if successful
  1429.     CF set on error
  1430.         AX = error code
  1431. SeeAlso: AH=5FC9h
  1432.  
  1433. Bitfields for option flags:
  1434.  bit 0    auto reboot
  1435.  bit 1    do not notify users
  1436.  bit 2    halt after shutdown
  1437.  bit 3    shutdown due to power fail (used by UPS)
  1438.  bits 4-7    reserved
  1439.  bits 8-14    user definable
  1440.  bit 15 reserved
  1441. --------N-215FC9-----------------------------
  1442. INT 21 - LANtastic v4.0+ - CANCEL SERVER SHUTDOWN
  1443.     AX = 5FC9h
  1444.     ES:DI -> ASCIZ server name in form "\\machine"
  1445. Return: CF clear if successful
  1446.     CF set on error
  1447.         AX = error code
  1448. Note:    you must have the "S" privilege to use this call
  1449. SeeAlso: AH=5FC8h
  1450. --------N-215FCA-----------------------------
  1451. INT 21 - LANtastic v4.0+ - STUFF SERVER KEYBOARD BUFFER
  1452.     AX = 5FCAh
  1453.     ES:DI -> ASCIZ server name in form "\\machine"
  1454.     DS:SI -> ASCIZ string to stuff (128 bytes)
  1455. Return: CF clear if successful
  1456.     CF set on error
  1457.         AX = error code
  1458. Note:    you must have the "S" privilege to use this call
  1459.     maximum number of characters that can be stuffed is determined by the
  1460.       server's RUN BUFFER SIZE.
  1461. SeeAlso: INT 16/AH=05h
  1462. --------N-215FCB-----------------------------
  1463. INT 21 - LANtastic v4.1+ - TERMINATE USER
  1464.     AX = 5FCBh
  1465.     ES:DI -> ASCIZ server name in form "\\machine"
  1466.     DS:SI -> blank-padded username.     A null char = wildcard.
  1467.     DS:DX -> blank-padded machine name.  A null char = wildcard.
  1468.     CX = minutes until termination (0 = immediate)
  1469. Return: CF clear if successful
  1470.     CF set on error
  1471.         AX = error code
  1472. Note:    you must have the "S" privilege to use this call
  1473.     you cannot log yourself out using this call
  1474. SeeAlso: AX=5F82h
  1475. --------N-215FCC-----------------------------
  1476. INT 21 - LANtastic v4.1+ - GET/SET SERVER CONTROL BITS
  1477.     AX = 5FCCh
  1478.     ES:DI -> ASCIZ server name in form "\\machine"
  1479.     CX = bit values (value of bits you want to set)    (see below)
  1480.     DX = bit mask (bits you are interested in, 0 = get only) (see below)
  1481. Return: CF clear if successful
  1482.         CX = control bits after call
  1483.         bit 0: disable logins
  1484.     CF set on error
  1485.         AX = error code
  1486. Note:    you must have the "S" privilege to SET, anyone can GET.
  1487. --------N-215FCD-----------------------------
  1488. INT 21 - LANtastic v4.1+ - FLUSH SERVER CACHES
  1489.     AX = 5FCDh
  1490.     ES:DI -> ASCIZ server name in form "\\machine"
  1491. Return: CF clear if successful
  1492.     CF set on error
  1493.         AX = error code
  1494. Note:    you must have the "S" privilege to use this call.
  1495. --------N-215FD0-----------------------------
  1496. INT 21 - LANtastic - GET REDIRECTED PRINTER TIMEOUT
  1497.     AX = 5FD0h
  1498. Return: CF clear if successful
  1499.         CX = redirected printer timeout in clock ticks of 55ms
  1500.         0000h if timeout disabled
  1501.     CF set on error
  1502.         AX = error code
  1503. SeeAlso: AX=5FD1h
  1504. --------N-215FD1-----------------------------
  1505. INT 21 - LANtastic - SET REDIRECTED PRINTER TIMEOUT
  1506.     AX = 5FD1h
  1507.     CX = printer timeout in clock ticks of 55ms, 0000h to disable timeouts
  1508. Return: CF clear if successful
  1509.     CF set on error
  1510.         AX = error code
  1511. SeeAlso: AX=5FD0h
  1512. --------N-215FE0-----------------------------
  1513. INT 21 C - LANtastic - GET DOS SERVICE VECTOR
  1514.     AX = 5FE0h
  1515. Return: CF clear if successful
  1516.         ES:BX -> current FAR service routine
  1517.     CF set on error
  1518.         AX = error code
  1519. Note:    the service routine is called by the LANtastic redirector whenever DOS
  1520.       may safely be called, permitting external TSRs and drivers to hook
  1521.       into LANtastic's DOS busy flag checking
  1522. SeeAlso: AX=5FE1h,INT 28,INT 2A/AH=84h
  1523. --------N-215FE1-----------------------------
  1524. INT 21 - LANtastic - SET DOS SERVICE VECTOR
  1525.     AX = 5FE1h
  1526.     ES:BX -> FAR routine to call when DOS services are available
  1527. Return: CF clear if successful
  1528.     CF set on error
  1529.         AX = error code
  1530. Note:    new handler must chain to previous handler as its first action
  1531. SeeAlso: AX=5FE0h
  1532. --------N-215FE2-----------------------------
  1533. INT 21 - LANtastic - GET MESSAGE SERVICE VECTOR
  1534.     AX = 5FE2h
  1535. Return: CF clear if successful
  1536.         ES:BX -> current FAR message service routine
  1537.     CF set on error
  1538.         AX = error code
  1539. SeeAlso: AX=5FE0h,AX=5FE3h
  1540. --------N-215FE3-----------------------------
  1541. INT 21 - LANtastic - SET MESSAGE SERVICE VECTOR
  1542.     AX = 5FE3h
  1543.     ES:BX -> FAR routine for processing network messages
  1544. Return: CF clear if successful
  1545.     CF set on error
  1546.         AX = error code
  1547. Notes:    handler must chain to previous handler as its first action
  1548.     on invocation, ES:BX -> just-received message
  1549. SeeAlso: AX=5FE2h
  1550. --------D-2160-------------------------------
  1551. INT 21 - DOS 3.0+ - "TRUENAME" - CANONICALIZE FILENAME OR PATH
  1552.     AH = 60h
  1553.     DS:SI -> ASCIZ filename or path
  1554.     ES:DI -> 128-byte buffer for canonicalized name
  1555. Return: CF set on error
  1556.         AX = error code
  1557.         02h invalid component in directory path or drive letter only
  1558.         03h malformed path or invalid drive letter
  1559.         ES:DI buffer unchanged
  1560.     CF clear if successful
  1561.         AH = 00h
  1562.         AL = destroyed (00h or 5Ch or last char of current dir on drive)
  1563.         buffer filled with qualified name of form D:\PATH\FILE.EXT or
  1564.           \\MACHINE\PATH\FILE.EXT
  1565. Desc:    determine the canonical name of the specified filename or path,
  1566.       corresponding to the undocumented TRUENAME command in COMMAND.COM
  1567. Notes:    the input path need not actually exist
  1568.     letters are uppercased, forward slashes converted to backslashes,
  1569.       asterisks converted to appropriate number of question marks, and
  1570.       file and directory names are truncated to 8.3 if necessary.
  1571.     '.' and '..' in the path are resolved
  1572.     filespecs on local drives always start with "d:", those on network
  1573.       drives always start with "\\"
  1574.     if path string is on a JOINed drive, the returned name is the one that
  1575.       would be needed if the drive were not JOINed; similarly for a
  1576.       SUBSTed, ASSIGNed, or network drive letter.    Because of this, it is
  1577.       possible to get a qualified name that is not legal under the current
  1578.       combination of SUBSTs, ASSIGNs, JOINs, and network redirections
  1579.     under DOS 3.3 through 6.00, a device name is translated differently if
  1580.       the device name does not have an explicit directory or the directory
  1581.       is \DEV (relative directory DEV from the root directory works
  1582.       correctly).  In these cases, the returned string consists of the
  1583.       unchanged device name and extension appended to the string X:/
  1584.       (forward slash instead of backward slash as in all other cases) where
  1585.       X is the default or explicit drive letter.
  1586.     functions which take pathnames require canonical paths if invoked via
  1587.       INT 21/AX=5D00h
  1588.     supported by OS/2 v1.1 compatibility box
  1589.     NetWare 2.1x does not support characters with the high bit set; early
  1590.       versions of NetWare 386 support such characters except in this call.
  1591.       In addition, NetWare returns error code 3 for the path "X:\"; one
  1592.       should use "X:\." instead.
  1593.     for DOS 3.3-6.0, the input and output buffers may be the same, as the
  1594.       canonicalized name is built in an internal buffer and copied to the
  1595.       specified output buffer as the very last step
  1596.     for DR DOS 6.0, this function is not automatically called when on a
  1597.       network.  Device drivers reportedly cannot make this call from their
  1598.       INIT function.  Using the same pointer for both input and output
  1599.       buffers is not supported in the April 1992 and earlier versions of
  1600.       DR DOS
  1601. SeeAlso: AX=5FB3h,INT 2F/AX=1123h,INT 2F/AX=1221h
  1602. --------D-2161-------------------------------
  1603. INT 21 - DOS 3+ - UNUSED
  1604.     AH = 61h
  1605. Return: AL = 00h
  1606. Note:    this function does nothing and returns immediately
  1607. --------O-2161-------------------------------
  1608. INT 21 U - OS/2 v1.x FAPI - OS/2 FILE SYSTEM FUNCTION
  1609.     AH = 61h
  1610.     details not yet available
  1611. Notes:    used by JOIN and SUBST to communicate with the OS/2 file system
  1612.     also supported by OS/2 v2.0+ Virtual DOS Machines
  1613. --------D-2162-------------------------------
  1614. INT 21 - DOS 3+ - GET CURRENT PSP ADDRESS
  1615.     AH = 62h
  1616. Return: BX = segment of PSP for current process
  1617. Notes:    under DOS 3+, this function does not use any of the DOS-internal stacks
  1618.       and may thus be called at any time, even during another INT 21h call
  1619.     the current PSP is not necessarily the caller's PSP
  1620.     identical to the undocumented AH=51h
  1621. SeeAlso: AH=50h,AH=51h
  1622. --------D-216300-----------------------------
  1623. INT 21 - DOS 2.25 only - GET LEAD BYTE TABLE ADDRESS
  1624.     AX = 6300h
  1625. Return: CF clear if successful
  1626.         DS:SI -> lead byte table (see below)
  1627.     CF set on error
  1628.         AX = error code (01h) (see AH=59h)
  1629. Notes:    does not preserve any registers other than SS:SP
  1630.     the US version of MS-DOS 3.30 treats this as an unused function,
  1631.       setting AL=00h and returning immediately
  1632. SeeAlso: AX=6301h,AH=07h,AH=08h,AH=0Bh
  1633.  
  1634. Format of lead byte table entry:
  1635. Offset    Size    Description
  1636.  00h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  1637.  02h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  1638.     ...
  1639.   N   2 BYTEs    00h,00h end flag
  1640. --------D-216300-----------------------------
  1641. INT 21 - Far East DOS 3.2+ - GET DOUBLE BYTE CHARACTER SET LEAD-BYTE TABLE
  1642.     AX = 6300h
  1643. Return: AL = error code
  1644.         00h successful
  1645.         DS:SI -> DBCS table (see below)
  1646.         all other registers except CS:IP and SS:SP destroyed
  1647.         FFh not supported
  1648. Notes:    probably identical to AH=63h/AL=00h for DOS 2.25
  1649.     the US version of MS-DOS 3.30 treats this as an unused function,
  1650.       setting AL=00h and returning immediately
  1651.     the US version of DOS 4.0+ accepts this function, but returns an empty
  1652.       list
  1653. SeeAlso: AX=6300h"DOS 2.25"
  1654.  
  1655. Format of DBCS table:
  1656. Offset    Size    Description
  1657.  00h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  1658.  02h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  1659.     ...
  1660.   N   2 BYTEs    00h,00h end flag
  1661. --------D-216301-----------------------------
  1662. INT 21 - DOS 2.25, Far East DOS 3.2+ - SET KOREAN (HANGEUL) INPUT MODE
  1663.     AX = 6301h
  1664.     DL = new mode
  1665.         00h return only full characters on DOS keyboard input functions
  1666.         01h    return partially-formed (interim) characters also
  1667. Return: AL = status
  1668.         00h successful
  1669.         FFh invalid mode
  1670. SeeAlso: AH=07h,AH=08h,AH=0Bh,AH=63h,AX=6302h
  1671. --------D-216302-----------------------------
  1672. INT 21 - DOS 2.25, Far East DOS 3.2+ - GET KOREAN (HANGEUL) INPUT MODE
  1673.     AX = 6302h
  1674. Return: AL = status
  1675.         00h successful
  1676.         DL = current input mode
  1677.             00h return only full characters (clears interim flag)
  1678.             01h return partial characters (sets interim flag)
  1679.         FFh not supported
  1680. SeeAlso: AH=07h,AH=08h,AH=0Bh,AH=63h,AX=6301h
  1681. --------D-2164-------------------------------
  1682. INT 21 - DOS 3.2+ internal - SET DEVICE DRIVER LOOKAHEAD FLAG
  1683.     AH = 64h
  1684.     AL = flag
  1685.         00h (default) call device driver function 5 (non-dest read)
  1686.             before INT 21/AH=01h,08h,0Ah
  1687.         nonzero don't call driver function 5
  1688. Return: nothing (MS-DOS)
  1689.     CF set, AX=error code??? (DR-DOS 5.0, which does not support this call)
  1690. Notes:    called by DOS 3.3+ PRINT.COM
  1691.     under MS-DOS, this function does not use any of the DOS-internal stacks
  1692.       and may thus be called at any time, even during another DOS call
  1693. SeeAlso: AH=01h,AH=08h,AH=0Ah,AX=5D06h
  1694. --------O-2164--DX0000-----------------------
  1695. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - ENABLE AUTOMATIC TITLE SWITCH
  1696.     AH = 64h
  1697.     DX = 0000h (function number)
  1698.     CX = 636Ch (magic value, "cl")
  1699.     BX = 0000h (indicates special request)
  1700. Note:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1701.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1702. SeeAlso: AH=64h/BX=0001h,INT 21/AH=4Bh
  1703. --------O-2164--DX0001-----------------------
  1704. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - SET SESSION TITLE
  1705.     AH = 64h
  1706.     DX = 0001h (function number)
  1707.     CX = 636Ch (magic value, "cl")
  1708.     BX = 0000h (indicates special request)
  1709.     ES:DI -> new ASCIZ title (max 12 char) or "" to restore default title
  1710. Note:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1711.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1712. SeeAlso: AH=64h/BX=0000h,AH=64h/BX=0002h,INT 15/AH=12h/BH=05h
  1713. --------O-2164--DX0002-----------------------
  1714. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - GET SESSION TITLE
  1715.     AH = 64h
  1716.     DX = 0002h (function number)
  1717.     CX = 636Ch (magic value, "cl")
  1718.     BX = 0000h (indicates special request)
  1719.     ES:DI -> 13-byte buffer for current title
  1720. Return: buffer filled (single 00h if title never changed)
  1721. Note:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1722.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1723. SeeAlso: AH=64h/BX=0000h,AH=64h/BX=0001h,INT 15/AH=12h/BH=05h
  1724. --------O-2164--DX0003-----------------------
  1725. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET LASTDRIVE
  1726.     AH = 64h
  1727.     DX = 0003h (function number)
  1728.     CX = 636Ch (magic value, "cl")
  1729.     BX = 0000h (indicates special request)
  1730. Return: AL = highest drive supported
  1731. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1732.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1733.     used by WinOS2
  1734. --------O-2164--DX0004-----------------------
  1735. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SIZE OF PTDA JFT
  1736.     AH = 64h
  1737.     DX = 0004h (function number)
  1738.     CX = 636Ch (magic value, "cl")
  1739.     BX = 0000h (indicates special request)
  1740. Return: AX = number of entries in OS/2 JFT for VDM
  1741. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1742.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1743.     in an OS/2 VDM, the DOS Job File Table in the PSP contains an index
  1744.       into the OS/2 JFT in the Per-Task Data Area rather than an SFT index
  1745.       because the OS/2 SFT can contain more than 255 entries
  1746. --------O-2164--DX0005-----------------------
  1747. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SECOND SFT FLAGS WORD
  1748.     AH = 64h
  1749.     DX = 0005h (function number)
  1750.     CX = 636Ch (magic value, "cl")
  1751.     BX = 0000h (indicates special request)
  1752.     DI = DOS file handle
  1753. Return: AX = value of second flags word from OS/2 SFT entry for file
  1754. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1755.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1756.     the OS/2 SFT has two flags words rather than DOS's one word, and this
  1757.       function provides access to the word which is not present in DOS
  1758. --------O-2164--DX0006-----------------------
  1759. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - UNLOAD DOSKRNL SYMBOLS & LOAD PROGR
  1760.     AH = 64h
  1761.     DX = 0006h (function number)
  1762.     CX = 636Ch (magic value, "cl")
  1763.     BX = 0000h (indicates special request)
  1764.     ES:DI -> ASCIZ filespec
  1765.     DS = base address for loading
  1766. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1767.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1768.     this function is only supported by the kernel debugging version of
  1769.       OS2KRNL
  1770. --------O-2164--DX0007-----------------------
  1771. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET WinOS2 CALL GATE ADDRESS
  1772.     AH = 64h
  1773.     DX = 0007h (function number)
  1774.     CX = 636Ch (magic value, "cl")
  1775.     BX = 0000h (indicates special request)
  1776. Return: AX = call gate address
  1777. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1778.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1779.     used by WinOS2 to make direct calls to OS2KRNL, bypassing the overhead
  1780.       of DOSKRNL
  1781. --------O-2164--DX0008-----------------------
  1782. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET LOADING MESSAGE
  1783.     AH = 64h
  1784.     DX = 0008h (function number)
  1785.     CX = 636Ch (magic value, "cl")
  1786.     BX = 0000h (indicates special request)
  1787. Return: DS:DX -> '$'-terminated message "Loading.  Please wait."
  1788. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  1789.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  1790.     this function permits National Language Support for the initial message
  1791.       displayed while WinOS2 starts a full-screen session
  1792. --------O-2164--CX636C-----------------------
  1793. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API support
  1794.     AH = 64h
  1795.     CX = 636Ch ("cl")
  1796.     BX = API ordinal
  1797.         0025h DOS32StartSession
  1798.         0082h DosGetCP
  1799.         00A7h DosQFSAttach
  1800.         00BFh DosEditName
  1801.         00CBh DosForceDelete
  1802.         0144h Dos32CreateEventSem
  1803.         0145h Dos32OpenEvenSem
  1804.         0146h Dos32CloseEventSem
  1805.         0147h Dos32ResetEventSem
  1806.         0148h Dos32PostEventSem
  1807.         0152h Dos32OpenMuxWaitSem
  1808.         0153h Dos32WaitMuxWaitSem
  1809.         0154h Dos32CloseMuxWaitSem
  1810.     other registers as appropriate for API call
  1811. Return: as appropriate for API call
  1812. --------D-2165-------------------------------
  1813. INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION
  1814.     AH = 65h
  1815.     AL = info ID
  1816.         01h get general internationalization info
  1817.         02h get pointer to uppercase table
  1818.         04h get pointer to filename uppercase table
  1819.         05h get pointer to filename terminator table
  1820.         06h get pointer to collating sequence table
  1821.         07h (DOS 4+) get pointer to Double-Byte Character Set table
  1822.     BX = code page (FFFFh=global code page)
  1823.     DX = country ID (FFFFh=current country)
  1824.     ES:DI -> country information buffer (see below)
  1825.     CX = size of buffer (>= 5)
  1826. Return: CF set on error
  1827.         AX = error code (see AH=59h)
  1828.     CF clear if succesful
  1829.         CX = size of country information returned
  1830.         ES:DI -> country information
  1831. Notes:    AL=05h appears to return same info for all countries and codepages; it
  1832.       has been documented for DOS 5+, but was undocumented in ealier
  1833.       versions
  1834.     NLSFUNC must be installed to get info for countries other than the
  1835.       default
  1836.     subfunctions 02h and 04h are identical under OS/2
  1837. SeeAlso: AH=38h,INT 2F/AX=1401h,INT 2F/AX=1402h,INT 2F/AX=14FEh
  1838.  
  1839. Format of country information:
  1840. Offset    Size    Description
  1841.  00h    BYTE    info ID
  1842. ---if info ID = 01h---
  1843.  01h    WORD    size
  1844.  03h    WORD    country ID
  1845.  05h    WORD    code page
  1846.  07h 34 BYTEs    country-dependent info (see AH=38h)
  1847. ---if info ID = 02h---
  1848.  01h    DWORD    pointer to uppercase table (see below)
  1849. ---if info ID = 04h---
  1850.  01h    DWORD    pointer to filename uppercase table (see below)
  1851. ---if info ID = 05h---
  1852.  01h    DWORD    pointer to filename character table (see below)
  1853. ---if info ID = 06h---
  1854.  01h    DWORD    pointer to collating table (see below)
  1855. ---if info ID = 07h (DOS 4+)---
  1856.  01h    DWORD    pointer to DBCS lead byte table (see below)
  1857.  
  1858. Format of uppercase table:
  1859. Offset    Size    Description
  1860.  00h    WORD    table size
  1861.  02h 128 BYTEs    uppercase equivalents (if any) of chars 80h to FFh
  1862.  
  1863. Format of collating table:
  1864. Offset    Size    Description
  1865.  00h    WORD    table size
  1866.  02h 256 BYTEs    values used to sort characters 00h to FFh
  1867.  
  1868. Format of filename terminator table:
  1869. Offset    Size    Description
  1870.  00h    WORD    table size (not counting this word)
  1871.  02h    BYTE    ??? (01h for MS-DOS 3.30-6.00)
  1872.  03h    BYTE    lowest permissible character value for filename
  1873.  04h    BYTE    highest permissible character value for filename
  1874.  05h    BYTE    ??? (00h for MS-DOS 3.30-6.00)
  1875.  06h    BYTE    first excluded character in range \ all characters in this
  1876.  07h    BYTE    last excluded character in range  / range are illegal
  1877.  08h    BYTE    ??? (02h for MS-DOS 3.30-6.00)
  1878.  09h    BYTE    number of illegal (terminator) characters
  1879.  0Ah  N BYTES    characters which terminate a filename:    ."/\[]:|<>+=;,
  1880. Note:    partially documented for DOS 5+, but undocumented for earlier versions
  1881.  
  1882. Format of filename uppercase table:
  1883. Offset    Size    Description
  1884.  00h    WORD    table size
  1885.  02h 128 BYTEs    uppercase equivalents (if any) of chars 80h to FFh
  1886.  
  1887. Format of DBCS lead byte table:
  1888. Offset    Size    Description
  1889.  00h    WORD    length
  1890.  02h 2N BYTEs    start/end for N lead byte ranges
  1891.     WORD    0000h    (end of table)
  1892. --------D-2165-------------------------------
  1893. INT 21 - DOS 4+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION
  1894.     AH = 65h
  1895.     AL = function
  1896.         20h capitalize character
  1897.         DL = character to capitalize
  1898.         Return: DL = capitalized character
  1899.         21h capitalize string
  1900.         DS:DX -> string to capitalize
  1901.         CX = length of string
  1902.         22h capitalize ASCIZ string
  1903.         DS:DX -> ASCIZ string to capitalize
  1904. Return: CF set on error
  1905.         AX = error code (see AH=59h)
  1906.     CF clear if successful
  1907. Note:    these calls have been documented for DOS 5+, but were undocumented in
  1908.       DOS 4.x.
  1909. --------D-216523-----------------------------
  1910. INT 21 U - DOS 4+ internal - DETERMINE IF CHARACTER REPRESENTS YES/NO RESPONSE
  1911.     AX = 6523h
  1912.     DL = character
  1913.     DH = second character of double-byte character (if applicable)
  1914. Return: CF set on error
  1915.     CF clear if successful
  1916.         AX = type
  1917.         00h no
  1918.         01h yes
  1919.         02h neither yes nor no
  1920. --------D-2165-------------------------------
  1921. INT 21 U - DOS 4+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION
  1922.     AH = 65h
  1923.     AL = function
  1924.         A0h capitalize filename character
  1925.         DL = character to capitalize
  1926.         Return: DL = capitalized character
  1927.         A1h capitalize counted filename string
  1928.         DS:DX -> filename string to capitalize
  1929.         CX = length of string
  1930.         A2h capitalize ASCIZ filename
  1931.         DS:DX -> ASCIZ filename to capitalize
  1932. Return: CF set on error
  1933.         AX = error code (see AH=59h)
  1934.     CF clear if successful
  1935. Note:    nonfunctional in DOS 4.00 through 6.00 due to a bug (the code sets a
  1936.       pointer depending on the high bit of AL, but doesn't clear the
  1937.       bit before branching by function number).
  1938. --------D-216601-----------------------------
  1939. INT 21 - DOS 3.3+ - GET GLOBAL CODE PAGE TABLE
  1940.     AX = 6601h
  1941. Return: CF set on error
  1942.         AX = error code (see AH=59h)
  1943.     CF clear if successful
  1944.         BX = active code page (see AX=6602h)
  1945.         DX = system code page
  1946. SeeAlso: AX=6602h
  1947. --------D-216602-----------------------------
  1948. INT 21 - DOS 3.3+ - SET GLOBAL CODE PAGE TABLE
  1949.     AX = 6602h
  1950.     BX = active code page (see below)
  1951.     DX = system code page (active page at boot time)
  1952. Return: CF set on error
  1953.         AX = error code (see AH=59h)
  1954.     CF clear if successful
  1955. SeeAlso: AX=6601h,INT 2F/AX=14FFh
  1956.  
  1957. Values for code page:
  1958.  437 US
  1959.  850 Multilingual
  1960.  852 Slavic/Latin II (DOS 5+)
  1961.  857 Turkish
  1962.  860 Portugal
  1963.  861 Iceland
  1964.  863 Canada (French)
  1965.  865 Norway/Denmark
  1966. --------D-2167-------------------------------
  1967. INT 21 - DOS 3.3+ - SET HANDLE COUNT
  1968.     AH = 67h
  1969.     BX = size of new file handle table for process
  1970. Return: CF clear if successful
  1971.     CF set on error
  1972.         AX = error code (see AH=59h)
  1973. Desc:    adjust the size of the per-process open file table, thus raising or
  1974.       lowering the limit on the number of files the caller can open
  1975.       simultaneously
  1976. Notes:    if BX <= 20, no action is taken if the handle limit has not yet been
  1977.       increased, and the table is copied back into the PSP if the limit
  1978.       is currently > 20 handles
  1979.     for file handle tables of > 20 handles, DOS 3.30 never reuses the
  1980.       same memory block, even if the limit is being reduced; this can lead
  1981.       to memory fragmentation as a new block is allocated and the existing
  1982.       one freed
  1983.     only the first 20 handles are copied to child processes in DOS 3.3-6.0
  1984.     increasing the file handles here will not, in general, increase the
  1985.       number of files that can be opened using the runtime library of a
  1986.       high-level language such as C
  1987. BUG:    the original release of DOS 3.30 allocates a full 64K for the handle
  1988.       table on requests for an even number of handles
  1989. SeeAlso: AH=26h,AH=86h
  1990. --------D-2168-------------------------------
  1991. INT 21 - DOS 3.3+ - "FFLUSH" - COMMIT FILE
  1992.     AH = 68h
  1993.     BX = file handle
  1994. Return: CF clear if successful
  1995.         all data still in DOS disk buffers is written to disk immediately,
  1996.           and the file's directory entry is updated
  1997.     CF set on error
  1998.         AX = error code (see AH=59h)
  1999. SeeAlso: AX=5D01h,AH=6Ah,INT 2F/AX=1107h
  2000. --------D-2169-------------------------------
  2001. INT 21 U - DOS 4+ internal - GET/SET DISK SERIAL NUMBER
  2002.     AH = 69h
  2003.     AL = subfunction
  2004.         00h    get serial number
  2005.         01h set serial number
  2006.     BL = drive (0=default, 1=A, 2=B, etc)
  2007.     DS:DX -> disk info (see below)
  2008. Return: CF set on error
  2009.         AX = error code (see AH=59h)
  2010.     CF clear if successful
  2011.         AX destroyed
  2012.         (AL = 00h) buffer filled with appropriate values from extended BPB
  2013.         (AL = 01h) extended BPB on disk set to values from buffer
  2014. Notes:    does not generate a critical error; all errors are returned in AX
  2015.     error 0005h given if no extended BPB on disk
  2016.     does not work on network drives (error 0001h)
  2017.     buffer after first two bytes is exact copy of bytes 27h thru 3Dh of
  2018.       extended BPB on disk
  2019.     this function is supported under Novell NetWare versions 2.0A through
  2020.       3.11; the returned serial number is the one a DIR would display,
  2021.       the volume label is the NetWare volume label, and the file system
  2022.       is set to "FAT16".
  2023.     the serial number is computed from the current date and time when the
  2024.       disk is created; the first part is the sum of the seconds/hundredths
  2025.       and month/day, the second part is the sum of the hours/minutes and
  2026.       year
  2027.     the volume label which is read or set is the one stored in the extended
  2028.       BPB on disks formatted with DOS 4.0+, rather than the special root
  2029.       directory entry used by the DIR command in COMMAND.COM (use AH=11h
  2030.       to find that volume label)
  2031. SeeAlso: AX=440Dh
  2032.  
  2033. Format of disk info:
  2034. Offset    Size    Description
  2035.  00h    WORD    info level (zero)
  2036.  02h    DWORD    disk serial number (binary)
  2037.  06h 11 BYTEs    volume label or "NO NAME    " if none present
  2038.  11h  8 BYTEs    (AL=00h only) filesystem type--string "FAT12   " or "FAT16   "
  2039. --------O-2169-------------------------------
  2040. INT 21 - DR-DOS 5.0 - NULL FUNCTION
  2041.     AH = 69h
  2042. Return: AL = 00h
  2043. SeeAlso: AH=18h
  2044. --------v-216969-----------------------------
  2045. INT 21 - VIRUS - "Rape-747" - INSTALLATION CHECK
  2046.     AX = 6969h
  2047. Return: AX = 0666h if resident
  2048. SeeAlso: AX=58CCh,AH=76h"VIRUS"
  2049. --------D-216A-------------------------------
  2050. INT 21 U - DOS 4+ - COMMIT FILE
  2051.     AH = 6Ah
  2052.     BX = file handle
  2053. Return: CF clear if successful
  2054.         AH = 68h
  2055.     CF set on error
  2056.         AX = error code (06h) (see AH=59h)
  2057. Note:    identical to AH=68h in DOS 5.0-6.0; not known whether this is the case
  2058.       in DOS 4.x
  2059. SeeAlso: AH=68h
  2060. --------D-216B-------------------------------
  2061. INT 21 U - DOS 4.0 internal - ???
  2062.     AH = 6Bh
  2063.     AL = subfunction
  2064.         00h ???
  2065.         DS:SI -> Current Directory Structure???
  2066.         CL = drive (1=A:)
  2067.         01h ???
  2068.         DS:SI -> ???
  2069.         CL = file handle???
  2070.         02h ???
  2071.         DS:SI -> Current Directory Structure???
  2072.         DI = ???
  2073.         CX = drive (1=A:)
  2074. Return: CF set on error
  2075.         AX = error code (see INT 21/AH=59h)
  2076.     CF clear if successful
  2077. Note:    passed through to INT 2F/AX=112Fh with AX on top of stack
  2078. SeeAlso: AH=6Bh"DOS 5",INT 2F/AX=112Fh
  2079. --------D-216B-------------------------------
  2080. INT 21 U - DOS 5+ - NULL FUNCTION
  2081.     AH = 6Bh
  2082. Return: AL = 00h
  2083. Note:    this function does nothing and returns immediately
  2084. SeeAlso: AH=6Bh"DOS 4"
  2085. --------D-216C00-----------------------------
  2086. INT 21 - DOS 4+ - EXTENDED OPEN/CREATE
  2087.     AX = 6C00h
  2088.     BL = open mode as in AL for normal open (see INT 21/AH=3Dh)
  2089.         bit 7: inheritance
  2090.         bits 4-6: sharing mode
  2091.         bit 3 reserved
  2092.         bits 0-2: access mode
  2093.     BH = flags
  2094.         bit 6 = auto commit on every write (see also AH=68h)
  2095.         bit 5 = return error rather than doing INT 24h
  2096.     CX = create attribute
  2097.         bits 6-15 reserved
  2098.         bit 5: archive
  2099.         bit 4: reserved
  2100.         bit 3: volume label
  2101.         bit 2: system
  2102.         bit 1: hidden
  2103.         bit 0: readonly
  2104.     DL = action if file exists/does not exists
  2105.         bits 7-4 action if file does not exist
  2106.             0000 fail
  2107.             0001 create
  2108.         bits 3-0 action if file exists
  2109.             0000 fail
  2110.             0001 open
  2111.             0010 replace/open
  2112.     DH = 00h (reserved)
  2113.     DS:SI -> ASCIZ file name
  2114. Return: CF set on error
  2115.        AX = error code (see AH=59h)
  2116.     CF clear if successful
  2117.        AX = file handle
  2118.        CX = status
  2119.         1 file opened
  2120.         2 file created
  2121.         3 file replaced
  2122. Note:    the PC LAN Program only supports DL=01h, DL=10h/sharing=compatibility,
  2123.       and DL=12h
  2124. SeeAlso: AH=3Ch,AH=3Dh,AX=6C01h
  2125. --------O-216C01-----------------------------
  2126. INT 21 U - OS/2 v2.0 - "DosOpen2"
  2127.     AX = 6C01h
  2128.     ???
  2129. Return: ???
  2130. Note:    this function is similar to AX=6C00h, but supports OS/2's extended
  2131.       attributes
  2132. SeeAlso: AX=6C00h,AH=6Fh
  2133. --------O-216D-------------------------------
  2134. INT 21 U - OS/2 v1.x FAPI - "DosMkDir2"
  2135.     AH = 6Dh
  2136.     ???
  2137. Return: ???
  2138. Note:    also supported by OS/2 v2.0+ Virtual DOS Machines
  2139. SeeAlso: AH=39h
  2140. --------O-216E-------------------------------
  2141. INT 21 U - OS/2 v1.x FAPI - "DosENumAttrib"
  2142.     AH = 6Eh
  2143.     ???
  2144. Return: ???
  2145. Note:    also supported by OS/2 v2.0+ Virtual DOS Machines
  2146. --------O-216F-------------------------------
  2147. INT 21 U - OS/2 v1.x FAPI - "DosQMaxEASize" - GET MAXIMUM SIZE OF EXTENDED ATTR
  2148.     AH = 6Fh
  2149.     ???
  2150. Return: ???
  2151. Note:    also supported by OS/2 v2.0+ Virtual DOS Machines
  2152. SeeAlso: AX=6C01h
  2153. ----------217070BX6060-----------------------
  2154. INT 21 - PCW Weather Card interface - GET DATA SEGMENT
  2155.     AX = 7070h
  2156.     BX = 6060h
  2157.     CX = 7070h
  2158.     DX = 7070h
  2159.     SX = 7070h
  2160.     DX = 7070h
  2161. Return: AX = segment of data structure
  2162. Notes:    the data structure is at offset 516 from this segment.
  2163.     the update byte is at offset 514 from this segment.  Updates are
  2164.       once per second while this byte is nonzero and it is decremented
  2165.       once per second.  While this byte is 0 updates are once per minute.
  2166. SeeAlso: AX=7070h/BX=7070h
  2167.  
  2168. Format of data structure:
  2169. Offset    Type    Description
  2170.  00h    WORD    hour
  2171.  02h    WORD    minute
  2172.  04h    WORD    second
  2173.  06h    WORD    day
  2174.  08h    WORD    month
  2175.  0Ah    WORD    year
  2176.  0Ch    WORD    ???
  2177.  0Eh    WORD    relative barometric pressure (in 1/100 inches)
  2178.  10h    WORD    ???
  2179.  12h    WORD    ???
  2180.  14h    WORD    temperature 1 (in 1/10 degrees F)
  2181.  16h    WORD    temperature 1 lowest (in 1/10 degrees F)
  2182.  18h    WORD    temperature 1 highest (in 1/10 degrees F)
  2183.  1Ah    WORD    temperature 2 (in 1/10 degrees F)
  2184.  1Ch    WORD    temperature 2 lowest (in 1/10 degrees F)
  2185.  1Eh    WORD    temperature 2 highest (in 1/10 degrees F)
  2186.  20h    WORD    wind speed (in MPH)
  2187.  22h    WORD    average of 60 wind speed samples (in MPH)
  2188.  24h    WORD    highest wind speed (in MPH)
  2189.  26h    WORD    wind chill factor  (in 1/10 degrees F)
  2190.  28h    WORD    lowest wind chill factor (in 1/10 degrees F)
  2191.  2Ah    WORD    ???
  2192.  2Ch    WORD    wind direction (in degrees)
  2193.  2Eh    WORD    accumulated daily rainfall (in 1/10 inches)
  2194.  30h    WORD    accumulated annual rainfall (in 1/10 inches)
  2195. ----------217070BX7070-----------------------
  2196. INT 21 - PCW Weather Card interface - INSTALLATION CHECK
  2197.     AX = 7070h
  2198.     BX = 7070h
  2199.     CX = 7070h
  2200.     DX = 7070h
  2201.     SX = 7070h
  2202.     DX = 7070h
  2203. Return: AX = 0070h
  2204.     BX = 0070h
  2205.     CX = 0070h
  2206.     DX = 0070h
  2207.     SX = 0070h
  2208.     DX = 0070h
  2209. SeeAlso: AX=7070h/BX=6060h,AX=8080h
  2210. --------v-2176-------------------------------
  2211. INT 21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK
  2212.     AH = 76h
  2213. Return: AL = 48h if resident
  2214. SeeAlso: AX=6969h,AX=7700h"VIRUS"
  2215. --------U-217761-----------------------------
  2216. INT 21 - WATCH.COM v3.2+ - INSTALLATION CHECK
  2217.     AX = 7761h ('wa')
  2218. Return: AX = 6177h
  2219. Note:    WATCH.COM is part of the "TSR" package by TurboPower Software
  2220. SeeAlso: INT 16/AX=7761h
  2221. --------v-217700-----------------------------
  2222. INT 21 - VIRUS - "Growing Block" - INSTALLATION CHECK
  2223.     AX = 7700h
  2224. Return: AX = 0920h if resident
  2225. SeeAlso: AH=76h,AH=7Fh
  2226. --------v-217F-------------------------------
  2227. INT 21 - VIRUS - "Squeaker" - INSTALLATION CHECK
  2228.     AH = 7Fh
  2229. Return: AH = 80h if resident
  2230. SeeAlso: AX=7700h,AH=83h"VIRUS"
  2231. --------D-2180-------------------------------
  2232. INT 21 - European MS-DOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND
  2233.     AH = 80h
  2234.     CX = mode
  2235.         0000h place child in zombie mode on exit to preserve exit code
  2236.         0001h discard child process and exit code on termination
  2237.     DS:DX -> ASCIZ full program name
  2238.     ES:BX -> parameter block (as for AX=4B00h)
  2239. Return: CF clear if successful
  2240.         AX = Command Subgroup ID (CSID)
  2241.     CF set on error
  2242.         AX = error code (see AH=59h)
  2243. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  2244.       by several other European OEMs; its release falls between mainstream
  2245.       versions 3.2 and 3.3
  2246. Desc:    asynchronously execute a program, creating a new process for it
  2247. Notes:    this function is called by the DETACH command
  2248.     there is a system-wide limit of 32 processes
  2249.     the CSID is used to identify all processes that have been spawned by
  2250.       a given process, whether directly or indirectly
  2251.     programs to be run in the background must use the new executable format
  2252.       (see AH=4Bh)
  2253.     background processes may only perform asynchronous (background) EXECs,
  2254.       either this function or AX=4B04h
  2255.     background processes may execute INT 11, INT 12, INT 21, INT 2A, and
  2256.       INT 2F at any time; they may execute INT 10 and INT 16 only while
  2257.       they have opened a popup screen via INT 2F/AX=1401h; no other
  2258.       interrupts may be executed from the background
  2259.     background processes may not use drive B: or overlay their code
  2260.       segments
  2261.     see AX=8700h for an installation check
  2262.     the "NE" new executable format made its first appearance in European
  2263.       MS-DOS 4.0
  2264. SeeAlso: AH=4Bh,AH=87h,INT 2F/AX=1400h"POPUP"
  2265. ----------218080-----------------------------
  2266. INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY
  2267.     AX = 8080h
  2268. Return: ???
  2269. SeeAlso: AX=7070h/BX=7070h
  2270. --------D-2181-------------------------------
  2271. INT 21 - European MS-DOS 4.0 - "FREEZE" - STOP A PROCESS
  2272.     AH = 81h
  2273.     BX = flag (00h freeze command subtree, 01h only specified process)
  2274.     CX = Process ID of head of command subtree
  2275. Return: CF clear if successful
  2276.     CF set on error
  2277.         AX = error code (no such process)
  2278. Desc:    temporarily suspend a process or a process and all of its children
  2279. Note:    if BX=0001h, this call will not return until the process is actually
  2280.       frozen, which may not be until after it unblocks from an I/O
  2281.       operation
  2282. SeeAlso: AH=82h,AH=89h,AX=8E00h,INT 15/AX=101Dh
  2283. --------D-2182-------------------------------
  2284. INT 21 - European MS-DOS 4.0 - "RESUME" - RESTART A PROCESS
  2285.     AH = 82h
  2286.     BX = flag (00h resume command subtree, 01h only specified process)
  2287.     CX = Process ID of head of command subtree
  2288. Return: CF clear if successful
  2289.     CF set on error
  2290.         AX = error code (no such process)
  2291. Desc:    restart a previously-suspended process or a process and all of its
  2292.       children
  2293. SeeAlso: AX=81h,INT 15/AX=101Eh
  2294. --------D-2183-------------------------------
  2295. INT 21 - European MS-DOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE
  2296.     AH = 83h
  2297.     AL = function
  2298.         00h get size
  2299.         01h set new size
  2300.         BX = new size in paragraphs
  2301. Return: CF clear if successful
  2302.         BX = current size (function 00h) or old size (function 01h)
  2303.     CF set on error
  2304.         AX = error code (01h,07h,0Dh)(see AH=59h)
  2305. Desc:    specify or determine how much memory may be allocated by the foreground
  2306.       process
  2307. Note:    if the partition size is set to 0000h, no partition management is done
  2308.       and all memory allocation is compatible with DOS 3.2.
  2309.     the partition size can be changed regardless of what use is being made
  2310.       of the changed memory; subsequent allocations will follow the
  2311.       partition rules (foreground processes may allocate only foreground
  2312.       memory; background processes allocate background memory first, then
  2313.       foreground memory)
  2314. SeeAlso: AH=48h,AH=4Ah
  2315. --------v-2183-------------------------------
  2316. INT 21 - VIRUS - "SVC" - INSTALLATION CHECK
  2317.     AH = 83h
  2318. Return: DX = 1990h if resident
  2319. SeeAlso: AH=76h,AH=84h"VIRUS"
  2320. --------v-2184-------------------------------
  2321. INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK
  2322.     AH = 84h
  2323. Return: DX = 1990h if resident
  2324.         BH = version number (major in high nybble, minor in low)
  2325. SeeAlso: AH=83h"VIRUS",AH=89h"VIRUS"
  2326. --------D-218400-----------------------------
  2327. INT 21 - European MS-DOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA
  2328.     AX = 8400h
  2329.     BX = size in bytes (0000h = 65536)
  2330.     CX = flags
  2331.         bit 6: zero-initialize segment
  2332.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  2333. Return: CF clear if successful
  2334.         AX = segment address of shared memory global object
  2335.     CF set on error
  2336.         AX = error code (06h,08h) (see AH=59h)
  2337. Desc:    create an area of memory which may be accessed by multiple processes
  2338. Notes:    shared memory objects are created as special files (thus the
  2339.       restriction on the name)
  2340.     on successful creation, the reference count is set to 1
  2341. SeeAlso: AX=8401h,AX=8402h,INT 15/AX=DE19h
  2342. --------D-218401-----------------------------
  2343. INT 21 - European MS-DOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA
  2344.     AX = 8401h
  2345.     CX = flags
  2346.         bit 7: writable segment (ignored by MS-DOS 4.0)
  2347.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  2348. Return: CF clear if successful
  2349.         AX = segment address of shared memory global object
  2350.         CX = size in bytes
  2351.     CF set on error
  2352.         AX = error code (invalid name)
  2353. Desc:    get address of a previously-created area of memory which may be
  2354.       accessed by multiple processes    
  2355. Note:    this call increments the reference count for the shared memory area
  2356. SeeAlso: AX=8400h,AX=8402h
  2357. --------D-218402-----------------------------
  2358. INT 21 - European MS-DOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA
  2359.     AX = 8402h
  2360.     BX = handle (segment address of shared memory object)
  2361. Return: CF clear if successful
  2362.     CF set on error
  2363.         AX = error code (no such name)
  2364. Desc:    indicate that the specified area of shared memory will no longer be
  2365.       used by the caller
  2366. Note:    the reference count is decremented and the shared memory area is
  2367.       deallocated if the new reference count is zero
  2368. SeeAlso: AX=8400h,AX=8401h,INT 15/AX=DE19h
  2369. --------D-2185-------------------------------
  2370. INT 21 U - European MS-DOS 4.0 - ???
  2371.     AH = 85h
  2372.     ???
  2373. Return: ???
  2374. --------D-2186-------------------------------
  2375. INT 21 - European MS-DOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE
  2376.     AH = 86h
  2377.     BX = total number of file handles in new table
  2378. Return: CF clear if successful
  2379.     CF set on error
  2380.         AX = error code (06h,08h) (see AH=59h)
  2381. Desc:    adjust the size of the per-process open file table, thus raising or
  2382.       lowering the limit on the number of files the caller can open
  2383.       simultaneously
  2384. Notes:    any currently-open files are copied to the new table
  2385.     if the table is increased beyond the default 20 handles, only the
  2386.       first 20 will be inherited by child processes
  2387.     error 06h is returned if the requested number of handles exceeds
  2388.       system limits or would require closing currently-open files
  2389. SeeAlso: AH=26h,AH=67h
  2390. --------D-2187-------------------------------
  2391. INT 21 - European MS-DOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER
  2392.     AH = 87h
  2393. Return: AX = PID
  2394.     BX = parent process's PID
  2395.     CX = Command Subgroup ID (CSID)
  2396. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  2397.       by several other European OEMs; its release falls between mainstream
  2398.       versions 3.2 and 3.3
  2399. Desc:    determine an identifier by which to access the calling process
  2400. Notes:    called by MS C v5.1 getpid() function
  2401.     this function apparently must return AX=0001h for INT 21/AH=80h to
  2402.       succeed
  2403.     one possible check for European MS-DOS 4.0 is to issue this call with
  2404.       AL=00h and check whether AL is nonzero on return
  2405. SeeAlso: AH=30h,AH=62h,AH=80h
  2406. Index:    installation check;European MS-DOS 4.0
  2407. --------D-2188-------------------------------
  2408. INT 21 U - European MS-DOS 4.0 - ???
  2409.     AH = 88h
  2410.     ???
  2411. Return: ???
  2412. SeeAlso: AH=87h
  2413. --------D-2189-------------------------------
  2414. INT 21 - European MS-DOS 4.0 - SLEEP
  2415.     AH = 89h
  2416.     CX = time in milliseconds or 0000h to give up time slice
  2417. Return: CF clear if successful
  2418.         CX = 0000h
  2419.     CF set on error
  2420.         AX = error code (interrupted system call)
  2421.         CX = sleep time remaining
  2422. Desc:    suspend the calling process for the specified duration
  2423. Notes:    the sleep interval is rounded up to the next higher increment of the
  2424.       scheduler clock, and may be extended further if other processes are
  2425.       running
  2426.     this call may be interrupted by signals (see AH=8Dh)
  2427.     reportedly called by Microsoft C 4.0 startup code
  2428.     background processes have higher priority than the foreground process,
  2429.       and should thus periodically yield the CPU
  2430. SeeAlso: AH=81h,INT 15/AX=1000h,INT 2F/AX=1680h,INT 7A/BX=000Ah
  2431. --------v-2189-------------------------------
  2432. INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK
  2433.     AH = 89h
  2434. Return: AX = 0123h if resident
  2435. SeeAlso: AH=84h"VIRUS",AH=90h"VIRUS"
  2436. --------D-218A-------------------------------
  2437. INT 21 - European MS-DOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE
  2438.     AH = 8Ah
  2439.     BL = range (00h command subtree, 01h any child)
  2440.     BH = suspend flag
  2441.         00h suspend if children exist but none are dead
  2442.         01h return if no dead children
  2443.     CX = Process ID of head of command subtree
  2444. Return: CF clear if successful
  2445.         AH = termination type
  2446.         00h normal termination
  2447.         01h aborted by Control-C
  2448.         02h aborted by I/O error
  2449.         03h terminate and stay resident
  2450.         04h aborted by signal
  2451.         05h aborted by program error
  2452.         AL = return code from child or aborting signal
  2453.         BX = PID of child (0000h if no dead children)
  2454.     CF set on error
  2455.         AX = error code (no child,interrupted system call)
  2456. Desc:    get return code from an asynchronously-executed child program,
  2457.       optionally waiting if no return code is available
  2458. SeeAlso: AH=4Bh,AH=4Dh,AH=80h,AH=8Dh
  2459. --------D-218B-------------------------------
  2460. INT 21 U - European MS-DOS 4.0 - ???
  2461.     AH = 8Bh
  2462.     ???
  2463. Return: ???
  2464. SeeAlso: AH=87h
  2465. --------D-218C-------------------------------
  2466. INT 21 - European MS-DOS 4.0 - SET SIGNAL HANDLER
  2467.     AH = 8Ch
  2468.     AL = signal number (see below)
  2469.     BL = action (see below)
  2470.     DS:DX -> signal handler
  2471. Return: CF clear if successful
  2472.         AL = previous action
  2473.         ES:BX -> previous signal handler
  2474.     CF set on error
  2475.         AX = error code (01h,invalid SigNumber or Action) (see AH=59h)
  2476. Desc:    set the routine which will be invoked on a number of exceptional
  2477.       conditions
  2478. Note:    all signals will be sent to the most recently installed handler
  2479. SeeAlso: AH=8Dh
  2480.  
  2481. Values for signal number:
  2482.  01h    SIGINTR        Control-C or user defined interrupt key
  2483.  08h    SIGTERM        program termination
  2484.  09h    SIGPIPE        broken pipe
  2485.  0Dh    SIGUSER1    reserved for user definition
  2486.  0Eh    SIGUSER2    reserved for user definition
  2487.  
  2488. Values for signal action:
  2489.  00h    SIG_DFL        terminate process on receipt
  2490.  01h    SIG_IGN        ignore signal
  2491.  02h    SIG_GET        signal is accepted
  2492.  03h    SIG_ERR        sender gets error
  2493.  04h    SIG_ACK        acknowledge received signal and clear it, but don't
  2494.             change current setting
  2495.  
  2496. Signal handler is called with:
  2497.     AL = signal number
  2498.     AH = signal argument
  2499. Return: RETF, CF set: terminate process
  2500.     RETF, CF clear, ZF set: abort any interrupted system call with an error
  2501.     RETF, CF clear, ZF clear: restart any interrupted system call
  2502.     IRET: restart any interrupted system call
  2503. Note:    the signal handler may also perform a nonlocal GOTO by resetting the
  2504.       stack pointer and jumping; before doing so, it should dismiss the
  2505.       signal by calling this function with BL=04h
  2506. --------D-218D-------------------------------
  2507. INT 21 - European MS-DOS 4.0 - SEND SIGNAL
  2508.     AH = 8Dh
  2509.     AL = signal number (see AH=8Ch)
  2510.     BH = signal argument
  2511.     BL = action
  2512.         00h send to entire command subtree
  2513.         01h send only to specified process
  2514.     DX = Process ID
  2515. Return: CF clear if successful
  2516.     CF set on error
  2517.         AX = error code (01h,06h)(see AH=59h)
  2518. Desc:    invoke the exceptional-condition handler for the specified process
  2519. Note:    error 06h may be returned if one or more of the affected processes
  2520.       have an error handler for the signal
  2521. SeeAlso: AH=8Ch
  2522. --------D-218E00BH00-------------------------
  2523. INT 21 - European MS-DOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY
  2524.     AX = 8E00h
  2525.     BH = 00h
  2526.     BL = action
  2527.         00h set priority for command subtree
  2528.         01h set priority for specified process only
  2529.     CX = Process ID
  2530.     DH = 00h
  2531.     DL = change in priority (00h to get priority)
  2532. Return: CF clear if successful
  2533.         DL = process priority
  2534.         DH destroyed
  2535.     CF set on error
  2536.         AX = error code (01h,no such process)(see AH=59h)
  2537. Desc:    specify or determine the execution priority of the specified process
  2538.       or the process and all of its children
  2539. SeeAlso: AH=81h
  2540. --------D-218F-------------------------------
  2541. INT 21 U - European MS-DOS 4.0 - ???
  2542.     AH = 8Fh
  2543.     ???
  2544. Return: ???
  2545. SeeAlso: AH=87h
  2546. --------D-2190-------------------------------
  2547. INT 21 U - European MS-DOS 4.0 - ???
  2548.     AH = 90h
  2549.     ???
  2550. Return: ???
  2551. SeeAlso: AH=87h
  2552. --------v-2190-------------------------------
  2553. INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK
  2554.     AH = 90h
  2555. Return: AH = 01h if resident
  2556. SeeAlso: AH=89h"VIRUS",AX=9753h"VIRUS"
  2557. --------D-2191-------------------------------
  2558. INT 21 U - European MS-DOS 4.0 - ???
  2559.     AH = 91h
  2560.     ???
  2561. Return: ???
  2562. SeeAlso: AH=87h
  2563. --------D-2192-------------------------------
  2564. INT 21 U - European MS-DOS 4.0 - ???
  2565.     AH = 92h
  2566.     ???
  2567. Return: ???
  2568. SeeAlso: AH=87h
  2569. --------D-2193-------------------------------
  2570. INT 21 - European MS-DOS 4.0 - "PIPE" - CREATE A NEW PIPE
  2571.     AH = 93h
  2572.     CX = size in bytes
  2573. Return: CF clear if successful
  2574.         AX = read handle
  2575.         BX = write handle
  2576.     CF set on error
  2577.         AX = error code (08h) (see AH=59h)
  2578. Desc:    create a communications channel which may be used for interprocess
  2579.       data and command exchanges
  2580. SeeAlso: AH=3Ch,AH=3Fh,AH=40h,AH=84h
  2581. --------D-2194-------------------------------
  2582. INT 21 U - European MS-DOS 4.0 - ???
  2583.     AH = 94h
  2584.     ???
  2585. Return: ???
  2586. SeeAlso: AH=87h
  2587. --------D-2195-------------------------------
  2588. INT 21 - European MS-DOS 4.0 - HARD ERROR PROCESSING
  2589.     AH = 95h
  2590.     AL = new state
  2591.        00h enabled
  2592.        01h disabled, automatically fail hard errors
  2593. Return: AX = previous setting
  2594. Desc:    specify whether hard (critical) errors should automatically fail the
  2595.       system call or invoke an INT 24
  2596. SeeAlso: INT 24
  2597. --------D-2196-------------------------------
  2598. INT 21 U - European MS-DOS 4.0 - ???
  2599.     AH = 96h
  2600.     ???
  2601. Return: ???
  2602. --------D-2197-------------------------------
  2603. INT 21 U - European MS-DOS 4.0 - ???
  2604.     AH = 97h
  2605.     ???
  2606. Return: ???
  2607. --------v-219753-----------------------------
  2608. INT 21 - VIRUS - "Nina" - INSTALLATION CHECK
  2609.     AX = 9753h
  2610. Return: never (executes original program) if virus resident
  2611. SeeAlso: AH=90h"VIRUS",AX=A1D5h"VIRUS"
  2612. --------D-2198-------------------------------
  2613. INT 21 U - European MS-DOS 4.0 - ???
  2614.     AH = 98h
  2615.     ???
  2616. Return: ???
  2617. --------D-2199-------------------------------
  2618. INT 21 u - European MS-DOS 4.0 - "PBLOCK" - BLOCK A PROCESS
  2619.     AH = 99h
  2620.     DS:BX -> memory location to block on
  2621.     CX = timeout in milliseconds
  2622.     DH = nonzero if interruptible
  2623. Return: CF clear if awakened by event
  2624.         AX = 0000h
  2625.     CF set if unusual wakeup
  2626.         ZF set if timeout, clear if interrupted by signal
  2627.         AX = nonzero
  2628. Desc:    suspend calling process until another process sends a "restart" signal
  2629.       or a timeout occurs
  2630. SeeAlso: AH=9Ah,INT 2F/AX=0802h
  2631. --------D-219A-------------------------------
  2632. INT 21 u - European MS-DOS 4.0 - "PRUN" - UNBLOCK A PROCESS
  2633.     AH = 9Ah
  2634.     DS:BX -> memory location processes may have blocked on
  2635. Return: AX = number of processes awakened
  2636.     ZF set if no processes awakened
  2637. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  2638.       by several other European OEMs; its release falls between mainstream
  2639.       versions 3.2 and 3.3
  2640. Desc:    restart all processes waiting for the specified "restart" signal
  2641. SeeAlso: AH=99h,INT 2F/AX=0802h
  2642. --------I-21A0-------------------------------
  2643. INT 21 - Attachmate Extra - GET 3270 DISPLAY STATE
  2644.     AH = A0h
  2645. Return: AL = display status
  2646.         bit     7  : 0=windowed, 1=enlarged
  2647.         bits 6-3: current screen profile number 0-9
  2648.         bits 2-0: active window number
  2649.             0=PC, 1-4=host B-E, 5-6=notepad F-G
  2650.     BX = host window status (see below)
  2651. Program: Attachmate Extra is a 3270 emulator by Attachmate Corporation
  2652. SeeAlso: AH=A1h
  2653.  
  2654. Bitfields for host window status:
  2655.  bit 15    reserved
  2656.  bit 14 0=host E window installed, 1=not
  2657.  bit 13 0=host E terminal on, 1=off
  2658.  bit 12 0=host E window displayed, 1=not
  2659.  bit 11 reserved
  2660.  bit 10 0=host D window installed, 1=not
  2661.  bit 9    0=host D terminal on, 1=off
  2662.  bit 8    0=host D window displayed, 1=not
  2663.  bit 7    reserved
  2664.  bit 6    0=host C window installed, 1=not
  2665.  bit 5    0=host C terminal on, 1=off
  2666.  bit 4    0=host C window displayed, 1=not
  2667.  bit 3    reserved
  2668.  bit 2    0=host B window installed, 1=not
  2669.  bit 1    0=host B terminal on, 1=off
  2670.  bit 0    0=host B window displayed, 1=not
  2671. --------I-21A1-------------------------------
  2672. INT 21 - Attachmate Extra - SET 3270 DISPLAY STATE
  2673.     AH = A1h
  2674.     AL = set status byte
  2675.         bit     7  : 0=windowed, 1=enlarged
  2676.         bits 6-3: current screen profile number 0-9
  2677.         bits 2-0: active window number
  2678.             0=PC, 1-4=host B-E, 5-6=notepad F-G
  2679. SeeAlso: AH=A0h,AH=A2h
  2680. --------v-21A1D5-----------------------------
  2681. INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK
  2682.     AX = A1D5h
  2683. Return: AX = 900Dh if resident
  2684. SeeAlso: AX=9753h,AX=A55Ah
  2685. --------I-21A2-------------------------------
  2686. INT 21 - Attachmate Extra - SET HOST WINDOW STATE
  2687.     AH = A2h
  2688.     AL = set status byte
  2689.         bit     7  : 0=power off, 1=power on
  2690.         bit     6  : 0=not installed, 1=installed
  2691.         bits 5-3: reserved
  2692.         bits 2-0: window number 1-4=host B-E
  2693. SeeAlso: AH=A1h
  2694. --------I-21A3-------------------------------
  2695. INT 21 - Attachmate Extra - SEND KEYSTROKES TO HOST WINDOW
  2696.     AH = A3h
  2697.     AL = window number (1-4=host B-E)
  2698.     CX = 0001h
  2699.     DS:BX -> keystroke buffer
  2700.     DL = zero if keystroke buffer contains host function code,
  2701.          non-zero if keystroke buffer contains ASCII character
  2702. Return: CX = zero if character sent, non-zero if not
  2703.     BX incremented if CX=0
  2704.  
  2705. Values for host function code:
  2706.     00h=reserved    10h=PF16    20h=Clear    30h=SysRq
  2707.     01h=PF1        11h=PF17    21h=Print    31h=ErInp
  2708.     02h=PF2        12h=PF18    22h=Left    32h=ErEof
  2709.     03h=PF3        13h=PF19    23h=Right    33h=Ident
  2710.     04h=PF4        14h=PF20    24h=Up        34h=Test
  2711.     05h=PF5        15h=PF21    25h=Down    35h=Reset
  2712.     06h=PF6        16h=PF22    26h=Home    36h=DevCncl
  2713.     07h=PF7        17h=PF23    27h=Fast Left    37h=Dup
  2714.     08h=PF8        18h=PF24    28h=Fast Right    38h=FldMark
  2715.     09h=PF9        19h=Alt on    29h=Bksp    39h=Enter
  2716.     0Ah=PF10    1Ah=Alt off    2Ah=Insert    3Ah=CrSel
  2717.     0Bh=PF11    1Bh=Shift on    2Bh=Delete
  2718.     0Ch=PF12    1Ch=Shift off    2Ch=Backtab
  2719.     0Dh=PF13    1Dh=PA1        2Dh=Tab
  2720.     0Eh=PF14    1Eh=PA2        2Eh=Newline
  2721.     0Fh=PF15    1Fh=PA3        2Fh=Attn
  2722. --------I-21A4-------------------------------
  2723. INT 21 - Attachmate Extra - GET HOST WINDOW BUFFER ADDRESS
  2724.     AH = A4h
  2725.     AL = window number (1-4=host B-E)
  2726. Return: DS:BX -> 3270 display buffer
  2727. SeeAlso: AH=A5h,AH=B8h
  2728. --------I-21A5-------------------------------
  2729. INT 21 - Attachmate Extra - GET HOST WINDOW CURSOR POSITION
  2730.     AH = A5h
  2731.     AL = window number (1-4=host B-E)
  2732. Return: BX = cursor position (80 * row + column, where 0:0 is upper left)
  2733. Note:    if the host window is configured with the Extended Attribute (EAB)
  2734.       feature, multiply the cursor position by 2 to obtain the byte offset
  2735.       into the display buffer
  2736. SeeAlso: AH=A4h
  2737. --------v-21A55A-----------------------------
  2738. INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK
  2739.     AX = A55Ah
  2740. Return: AX = 5AA5h if resident
  2741. SeeAlso: AX=A1D5h,AX=AA00h
  2742. --------v-21AA00-----------------------------
  2743. INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK
  2744.     AX = AA00h
  2745. Return: AX = 00AAh if resident
  2746. SeeAlso: AX=A55Ah,AX=AA03h
  2747. --------v-21AA03-----------------------------
  2748. INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK
  2749.     AX = AA03h
  2750. Return: AX = 03AAh if resident
  2751. SeeAlso: AX=AA00h,AH=ABh
  2752. --------v-21AB-------------------------------
  2753. INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK
  2754.     AH = ABh
  2755. Return: AX = 5555h if resident
  2756. SeeAlso: AX=AA03h,AX=BBBBh"VIRUS"
  2757. --------I-21AF-------------------------------
  2758. INT 21 - Attachmate Extra - GET TRANSLATE TABLE ADDRESS
  2759.     AH = AFh
  2760. Return: DS:BX -> translate tables (see below)
  2761.  
  2762. Format of translate tables:
  2763. Offset    Size    Description
  2764.  00h 256 BYTEs    ASCII to 3270 buffer code translate table
  2765. 100h 256 BYTEs    3270 buffer code to ASCII translate table
  2766. 200h 256 BYTEs    3270 buffer code to EBCDIC translate table
  2767. 300h 256 BYTEs    EBCDIC to 3270 buffer code translate table
  2768. --------N-21B4-------------------------------
  2769. INT 21 U - Novell Netware - "AttachHandle" 
  2770.     AH = B4h
  2771.     DS:SI -> input buffer (see below)
  2772. Return: AX = handle or return code
  2773. Note:    this is an interface provided by NetWare to give DOS file access to
  2774.       NetWare files on non-DOS systems such as Macintosh, OS/2, and Unix
  2775.  
  2776. Format of input buffer:
  2777. Offset    Size    Description
  2778.  00h    BYTE    "WorkFileServer"
  2779.  01h    BYTE    access code
  2780.  02h    DWORD    "OpenHandle"
  2781.  06h    WORD    "OpenHandleCount"
  2782.  08h    DWORD    "OpenFileSize"
  2783. --------N-21B500-----------------------------
  2784. INT 21 U - Novell NetWare - VNETWARE.386 API - GET INSTANCE DATA
  2785.     AX = B500h
  2786. Return: ES:BX -> data
  2787.     CX = length
  2788. SeeAlso: AX=B501h,AX=B502h
  2789. --------N-21B501-----------------------------
  2790. INT 21 U - Novell NetWare - VNETWARE.386 API - END VIRTUAL MACHINE
  2791.     AX = B501h
  2792. SeeAlso: AX=B500h,AX=B502h
  2793. --------N-21B502-----------------------------
  2794. INT 21 U - Novell NetWare - VNETWARE.386 API - START VIRTUAL MACHINE
  2795.     AX = B502h
  2796. SeeAlso: AX=B500h,AX=B501h
  2797. --------N-21B5-------------------------------
  2798. INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL
  2799.     AH = B5h
  2800.     AL = subfunction
  2801.         03h get task mode
  2802.         Return: AH = 00h
  2803.             AL = current task mode byte
  2804.         04h get task mode pointer
  2805.         Return: ES:BX -> task mode byte
  2806. Notes:    the task mode byte specifies how task cleanup should be performed, but
  2807.       is declared to be version-dependent
  2808.     allows a program to disable the automatic cleanup for programs managing
  2809.       task swapping, etc.
  2810.  
  2811. Values for task mode byte in version 3.01:
  2812.  00h-03h reserved
  2813.  04h     no task cleanup
  2814. --------N-21B505-----------------------------
  2815. INT 21 U - Novell NetWare - VNETWARE.386 API - SET VIRTUAL MACHINE ID
  2816.     AX = B505h
  2817.     ???
  2818. Return: ???
  2819. SeeAlso: AX=B502h,AX=B506h
  2820. --------N-21B506-----------------------------
  2821. INT 21 U - Novell NetWare - VNETWARE.386 API - GET VIRTUAL MACH SUPPORT LEVEL
  2822.     AX = B506h
  2823. Return: AX = ??? (0002h)
  2824. SeeAlso: AX=B505h
  2825. --------N-21B6-------------------------------
  2826. INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES
  2827.     AH = B6h
  2828.     AL = subfunction
  2829.         00h get extended file attributes
  2830.         01h set extended file attributes
  2831.         CL = extended file attributes (see below)
  2832.     DS:DX -> ASCIZ pathname (max 255 bytes)
  2833. Return: CF set on error
  2834.         AL = error code
  2835.         8Ch caller lacks privileges
  2836.         FEh not permitted to search directory
  2837.         FFh file not found
  2838.     CF clear if successful
  2839.         AL = 00h (success)
  2840.         CL = current extended file attributes (see below)
  2841. Note:    this function is supported by Advanced NetWare 2.1+
  2842. SeeAlso: AX=4300h,AH=E3h/SF=0Fh
  2843.  
  2844. Bitfields for extended file attributes:
  2845.  bits 2-0  search mode (executables only)
  2846.     000 none (use shell's default search)
  2847.     001 search on all opens without path
  2848.     010 do not search
  2849.     011 search on read-only opens without path
  2850.     100 reserved
  2851.     101 search on all opens
  2852.     110 reserved
  2853.     111 search on all read-only opens
  2854.  bit 3    reserved
  2855.  bit 4    transactions on file tracked
  2856.  bit 5    file's FAT indexed
  2857.  bit 6    read audit (to be implemented)
  2858.  bit 7    write audit (to be implemented)
  2859. --------N-21B7-------------------------------
  2860. INT 21 U - Novell NetWare - "HoldFileModeSet" (obsolete)
  2861.     AH = B7h
  2862.     AL = new value for HoldFileFlag
  2863. Return: AL = previous value of HoldFileFlag
  2864. Note:    this function provided backward compatibility with a bug in early
  2865.       DOS versions and CP/M, but is no longer used or supported
  2866. --------I-21B8-------------------------------
  2867. INT 21 - Attachmate Extra - DISABLE HOST BUFFER UPDATES
  2868.     AH = B8h
  2869.     AL = window number (1-4=host B-E)
  2870.     DL = 01h
  2871. Notes:    only valid in CUT mode
  2872.     next AID keystroke (eg Enter) enables host buffer updates
  2873. SeeAlso: AH=A4h
  2874. --------N-21B800-----------------------------
  2875. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS
  2876.     AX = B800h
  2877.     CX = size of reply buffer (01h-3Fh)
  2878.     ES:BX -> reply buffer for capture flags table (see below)
  2879. Return: AL = status
  2880.         00h successful
  2881. Note:    this function is supported by Advanced NetWare 2.0+
  2882. SeeAlso: AX=B801h,AX=B802h,AH=DFh/DL=00h,AH=DFh/DL=04h
  2883.  
  2884. Format of capture flags table:
  2885. Offset    Size    Description
  2886.  00h    BYTE    status (used internally, should be set to 00h)
  2887.  01h    BYTE    print flags
  2888.         bit 2: print capture file if interrupted by loss of connection
  2889.         bit 3: no automatic form feed after print job
  2890.         bit 6: printing control sequences interpreted by print service
  2891.         bit 7: print banner page before capture file
  2892.  02h    BYTE    tab size (01h-12h, default 08h)
  2893.  03h    BYTE    printer number on server (00h-04h, default 00h)
  2894.  04h    BYTE    number of copies to print (00h-FFh, default 01h)
  2895.  05h    BYTE    form type required in printer (default 00h)
  2896.  06h    BYTE    reserved
  2897.  07h 13 BYTEs    text to be placed on banner page
  2898.  14h    BYTE    reserved
  2899.  15h    BYTE    default local printer (00h = LPT1)
  2900.  16h    WORD    timeout in clock ticks for flushing capture file on inactivity
  2901.         (big-endian)
  2902.         0000h = never timeout
  2903.  18h    BYTE    flush capture file on LPT close if nonzero
  2904.  19h    WORD    maximum lines per page (big-endian)
  2905.  1Bh    WORD    maximum characters per line (big-endian)
  2906.  1Dh 13 BYTEs    name of form required in printer
  2907.  2Ah    BYTE    LPT capture flag
  2908.         00h inactive, FFh LPT device is being captured
  2909.  2Bh    BYTE    file capture flag
  2910.         00h if no file specified, FFh if capturing to file
  2911.  2Ch    BYTE    timing out (00h if no timeout in effect, FFh if timeout counter
  2912.         running)
  2913.  2Dh    DWORD    address of printer setup string (big-endian)
  2914.  31h    DWORD    address of printer reset string (big-endian)
  2915.  35h    BYTE    target connection ID
  2916.  36h    BYTE    capture in progress if FFh
  2917.  37h    BYTE    job queued for printing if FFh
  2918.  38h    BYTE    print job valid if FFh
  2919.  39h    DWORD    bindery object ID of print queue if previous byte FFh
  2920.  3Dh    WORD    print job number (1-999) `````(big-endian)
  2921. --------N-21B801-----------------------------
  2922. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS
  2923.     AX = B801h
  2924.     CX = size of buffer (01h-3Fh)
  2925.     ES:BX -> buffer containing capture flags table (see below)
  2926. Return: AL = status
  2927.         00h successful
  2928. Note:    this function is supported by Advanced NetWare 2.0+
  2929. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  2930. --------N-21B802-----------------------------
  2931. INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS
  2932.     AX = B802h
  2933.     CX = size of reply buffer (01h-3Fh)
  2934.     DH = LPT port (00h-02h)
  2935.     ES:BX -> reply buffer for capture flags table (see AX=B800h)
  2936. Return: AL = status
  2937.         00h successful
  2938. Note:    this function is supported by Advanced NetWare 2.1+
  2939. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  2940. --------N-21B803-----------------------------
  2941. INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS
  2942.     AX = B803h
  2943.     CX = size of buffer (01h-3Fh)
  2944.     DH = LPT port (00h-02h)
  2945.     ES:BX -> buffer containing capture flags table (see below)
  2946. Return: AL = status
  2947.         00h successful
  2948. Note:    this function is supported by Advanced NetWare 2.1+
  2949. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  2950. --------N-21B804-----------------------------
  2951. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER
  2952.     AX = B804h
  2953. Return: DH = default LPT port (00h-02h)
  2954. Note:    this function is supported by Advanced NetWare 2.1+
  2955. SeeAlso: AX=B800h,AX=B805h,AH=DFh/DL=00h
  2956. --------N-21B805-----------------------------
  2957. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER
  2958.     AX = B805h
  2959.     DH = new default LPT port (00h-02h)
  2960. Return: AL = status
  2961.         00h successful
  2962. Note:    this function is supported by Advanced NetWare 2.1+
  2963. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h
  2964. --------N-21B806-----------------------------
  2965. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE
  2966.     AX = B806h
  2967.     DH = LPT port (00h-02h)
  2968.     BX:CX = print queue's object ID
  2969. Return: AL = status
  2970.         00h successful
  2971.         FFh job already set
  2972. Desc:    specify the print queue on which a print job is to be placed the next
  2973.       time a capture is started on the given printer port
  2974. Note:    this function is supported by Advanced NetWare 2.1+
  2975. SeeAlso: AX=B801h,AX=B807h,AX=E009h
  2976. --------N-21B807-----------------------------
  2977. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB
  2978.     AX = B807h
  2979.     DH = LPT port (00h-02h)
  2980.     BX = job number (see AH=E3h/SF=68h)
  2981.     SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h)
  2982. Return: AL = status
  2983.         00h successful
  2984.         FFh job already queued
  2985. Desc:    specify the capture file and print job to be used for subsequent
  2986.       output to the given printer port
  2987. Note:    this function is supported by Advanced NetWare 2.1+
  2988. SeeAlso: AX=B801h,AX=B806h,AX=E009h,AH=E3h/SF=68h
  2989. --------N-21B808-----------------------------
  2990. INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
  2991.     AX = B808h
  2992.     ES:BX -> 12-byte buffer for user name
  2993. Return: AL = status
  2994.         00h successful
  2995. Desc:    get the user name which is printed on the banner page
  2996. Notes:    this function is supported by Advanced NetWare 2.1+
  2997.     the default name is the login name of the user
  2998. SeeAlso: AX=B809h
  2999. --------N-21B809-----------------------------
  3000. INT 21 - Novell NetWare - PRINT SERVICES - SET BANNER USER NAME
  3001.     AX = B809h
  3002.     ES:BX -> 12-byte buffer containing user name
  3003. Return: AL = status
  3004.         00h successful
  3005. Desc:    specify the user name which is printed on the banner page
  3006. Notes:    this function is supported by Advanced NetWare 2.1+
  3007.     the default name is the login name of the user
  3008. SeeAlso: AX=B808h
  3009. --------N-21B9-------------------------------
  3010. INT 21 U - Novell NetWare - "SpecialAttachableFunction"
  3011.     AH = B9h
  3012.     AL = FFh to hook this function
  3013.         ES:BX -> function to invoke on AH=B9h when AL<>FFh
  3014. Note:    this function is no longer used or supported by current versions of
  3015.       NetWare
  3016. --------N-21BA-------------------------------
  3017. INT 21 U - Novell NetWare - "ReturnCommandComPointers"
  3018.     AH = BAh
  3019. Return: DX = environment segment
  3020.     ES:DI -> COMMAND.COM drive
  3021. Desc:    used to edit the COMSPEC and PATH variables in the master environment
  3022.       when mapping network drives
  3023. Note:    this function was documented in older Novell documents which are no
  3024.       longer available
  3025. --------N-21BB-------------------------------
  3026. INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS
  3027.     AH = BBh
  3028.     AL = new EOJ flag
  3029.         00h disable EOJs
  3030.         01h enable EOJs
  3031. Return: AL = old EOJ flag
  3032. Desc:    specify whether the network shell should automatically generate an
  3033.       End of Job call when the root command processor regains control
  3034. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3035.       Alloy NTNX
  3036. SeeAlso: AH=19h,AH=D6h
  3037. --------v-21BBBB-----------------------------
  3038. INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK
  3039.     AX = BBBBh
  3040. Return: AX = 6969h
  3041. SeeAlso: AH=ABh"VIRUS",AH=BEh"VIRUS"
  3042. --------N-21BC-------------------------------
  3043. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD
  3044.     AH = BCh
  3045.     AL = flags
  3046.         bit 0: lock as well as log record
  3047.         bit 1: non-exclusive lock
  3048.     BX = file handle
  3049.     CX:DX = starting offset in file
  3050.     SI:DI = length of region to lock
  3051.     BP = timeout in timer ticks (1/18 sec)
  3052.         0000h = don't wait if already locked
  3053. Return: AL = status
  3054.         00h successful
  3055.         96h no dynamic memory for file
  3056.         FEh timed out
  3057.         FFh failed
  3058. Desc:    add the specified physical record to the log table, optionally locking
  3059.       it
  3060. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3061.       Alloy NTNX
  3062. SeeAlso: AH=5Ch,AH=BDh,AH=BEh,AH=BFh,AH=C2h,AH=D0h
  3063. --------N-21BD-------------------------------
  3064. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD
  3065.     AH = BDh
  3066.     BX = file handle
  3067.     CX:DX = starting offset in file
  3068.     SI:DI = length of record
  3069. Return: AL = status
  3070.         00h successful
  3071.         FFh record not locked
  3072. Desc:    unlock the specified physical record but do not remove it from log
  3073.       table
  3074. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3075.       Alloy NTNX
  3076. SeeAlso: AH=BCh,AH=BEh"NetWare",AH=C0h,AH=C3h,AH=D2h
  3077. --------N-21BE-------------------------------
  3078. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD
  3079.     AH = BEh
  3080.     BX = file handle
  3081.     CX:DX = starting offset within file
  3082.     SI:DI = record length in bytes
  3083. Return: AL = status
  3084.         00h successful
  3085.         FFh specified record not locked
  3086. Desc:    unlock the physical record and remove it from the log table
  3087. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3088.       Alloy NTNX
  3089. SeeAlso: AH=5Ch,AH=BCh,AH=BDh,AH=C1h,AH=C4h,AH=D4h
  3090. --------v-21BE-------------------------------
  3091. INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK
  3092.     AH = BEh
  3093. Return: AX = 1234h if resident
  3094. SeeAlso: AX=BBBBh,AX=BE00h
  3095. --------v-21BE00-----------------------------
  3096. INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK
  3097.     AX = BE00h
  3098.     CF set
  3099. Return: CF clear if resident
  3100. SeeAlso: AH=BEh"VIRUS",AH=C0h"VIRUS"
  3101. --------N-21BF-------------------------------
  3102. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK RECORD (FCB)
  3103.     AH = BFh
  3104.     AL = flags
  3105.         bit 0: lock as well as log record
  3106.         bit 1: non-exclusive lock
  3107.     DS:DX -> opened FCB (see AH=0Fh)
  3108.     BX:CX = offset
  3109.     BP = lock timeout in timer ticks (1/18 sec) if AL nonzero
  3110.     SI:DI = length
  3111. Return: AL = error code (see AH=BCh)
  3112. Note:    this function was added in NetWare 4.6, but was removed some time prior
  3113.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  3114.       documentation
  3115. SeeAlso: AH=BCh,AH=C0h"NetWare",AH=C2h"NetWare"
  3116. --------N-21C0-------------------------------
  3117. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE RECORD (FCB)
  3118.     AH = C0h
  3119.     DS:DX -> non-extended FCB (see AH=0Fh)
  3120.     BX:CX = offset
  3121. Return: AL = error code (see AH=BCh)
  3122. Notes:    unlocks record but does not remove it from log table
  3123.     this function was added in NetWare 4.6, but was removed some time prior
  3124.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  3125.       documentation
  3126. SeeAlso: AH=BDh,AH=BFh,AH=C1h"NetWare",AH=C3h
  3127. --------v-21C0-------------------------------
  3128. INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK
  3129.     AH = C0h
  3130. Return: AX = 0300h if "Slow"/"Zerotime" resident
  3131.     AX = 1234h if "Solano" resident
  3132. SeeAlso: AX=BE00h,AH=C1h"VIRUS",AX=C301h"VIRUS"
  3133. --------N-21C1-------------------------------
  3134. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR RECORD (FCB)
  3135.     AH = C1h
  3136.     DS:DX -> opened FCB (see AH=0Fh)
  3137.     BX:CX = offset
  3138. Return: AL = error code (see AH=BCh)
  3139. Note:    unlocks record and removes it from log table
  3140.     this function was added in NetWare 4.6, but was removed some time prior
  3141.       to Advanced NetWare, and is no longer listed in current Novell
  3142.       documentation
  3143. SeeAlso: AH=BEh,AH=C0h"NetWare",AH=C4h
  3144. --------v-21C1-------------------------------
  3145. INT 21 - VIRUS - "Solano" - ???
  3146.     AH = C1h
  3147.     ???
  3148. Return: ???
  3149. SeeAlso: AH=C0h"VIRUS"
  3150. --------N-21C2-------------------------------
  3151. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET
  3152.     AH = C2h
  3153.     AL = flags
  3154.         bit 1: non-exclusive lock
  3155.     BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  3156. Return: AL = status
  3157.         00h successful
  3158.         FEh timed out
  3159.         FFh failed
  3160. Desc:    attempt to lock all physical records listed in the log table
  3161. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3162.       Alloy NTNX
  3163.     status FFh will be retuend if one or more physical records have been
  3164.       exclusively locked by another process
  3165. SeeAlso: AH=BFh,AH=C3h,AH=D1h
  3166. --------v-21C2-------------------------------
  3167. INT 21 - VIRUS - "Scott's Valley" - ???
  3168.     AH = C2h
  3169.     ???
  3170. Return: ???
  3171. SeeAlso: AH=C0h"VIRUS"
  3172. --------N-21C3-------------------------------
  3173. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECRD SET
  3174.     AH = C3h
  3175. Desc:    unlock all currently-locked physical records in the log table, but do
  3176.       not remove them from the table
  3177. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3178.       Alloy NTNX
  3179. SeeAlso: AH=BDh,AH=C0h,AH=C2h"NetWare",AH=C4h,AH=D3h
  3180. --------v-21C301DXF1F1-----------------------
  3181. INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK
  3182.     AX = C301h
  3183.     DX = F1F1h
  3184. Return: DX = 0E0Eh if resident
  3185. SeeAlso: AH=C0h"VIRUS",AX=C500h"VIRUS"
  3186. --------N-21C4-------------------------------
  3187. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET
  3188.     AH = C4h
  3189. Desc:    unlock all physical records in the log table and remove them from the
  3190.       log table
  3191. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3192.       Alloy NTNX
  3193. SeeAlso: AH=BEh,AH=C1h,AH=D5h
  3194. --------N-21C500-----------------------------
  3195. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE
  3196.     AX = C500h
  3197.     DS:DX -> semaphore name (counted string, max 127 bytes)
  3198.     CL = initial value for semaphore
  3199. Return: AL = status
  3200.         00h successful
  3201.         BL = number of processes having semaphore open
  3202.         CX:DX = semaphore handle
  3203.         FEh invalid name length
  3204.         FFh invalid semaphore value
  3205. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3206.       Alloy NTNX
  3207.     the semaphore's value is incremented by AX=C503h and decremented by
  3208.       AX=C502h
  3209. SeeAlso: AX=C501h,AX=C502h,AX=C503h,AX=C504h
  3210. --------v-21C500-----------------------------
  3211. INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK
  3212.     AX = C500h
  3213. Return: AX = 6731h if resident
  3214. SeeAlso: AX=C301h"VIRUS",AH=C6h"VIRUS"
  3215. --------N-21C501-----------------------------
  3216. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE
  3217.     AX = C501h
  3218.     CX:DX = semaphore handle
  3219. Return: AL = status
  3220.         00h successful
  3221.         CX = semaphore value (-127 to 127)
  3222.         DL = count of processes which have the semaphore open
  3223.         FFh invalid handle
  3224. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3225.       Alloy NTNX
  3226. SeeAlso: AX=C500h"NetWare",AX=C502h,AX=C504h
  3227. --------N-21C502-----------------------------
  3228. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE
  3229.     AX = C502h
  3230.     CX:DX = semaphore handle
  3231.     BP = timeout limit in timer ticks (1/18 sec)
  3232.         0000h return immediately if semaphore already zero or negative
  3233. Return: AL = status
  3234.         00h successful
  3235.         FEh timeout
  3236.         FFh invalid handle
  3237. Desc:    decrement the semaphore's value, optionally waiting until its value
  3238.       becomes positive before decrementing
  3239. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3240.       Alloy NTNX
  3241. SeeAlso: AX=C500h"NetWare",AX=C501h,AX=C503h
  3242. --------N-21C503-----------------------------
  3243. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE
  3244.     AX = C503h
  3245.     CX:DX = semaphore handle
  3246. Return: AL = status
  3247.         00h successful
  3248.         01h semaphore value overflowed
  3249.         FFh invalid handle
  3250. Desc:    increment the semaphore's value and signal the first process (if any)
  3251.       in the queue waiting on the semaphore
  3252. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3253.       Alloy NTNX
  3254. SeeAlso: AX=C500h"NetWare",AX=C502h
  3255. --------N-21C504-----------------------------
  3256. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE
  3257.     AX = C504h
  3258.     CX:DX = semaphore handle
  3259. Return: AL = status
  3260.         00h successful
  3261.         FFh invalid handle
  3262. Desc:    decrement the semaphore's open count, and delete the semaphore if the
  3263.       count reaches zero
  3264. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3265.       Alloy NTNX
  3266. SeeAlso: AX=C500h"NetWare",AX=C501h
  3267. --------N-21C6-------------------------------
  3268. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE
  3269.     AH = C6h
  3270.     AL = subfunction
  3271.         00h set old "compatibility" mode (default)
  3272.         01h set new extended locks mode 
  3273.         02h get lock mode
  3274. Return: AL = current lock mode
  3275. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  3276.       Alloy NTNX
  3277.     the locking mode should be 01h for NetWare 4.61+ and Advanced
  3278.       NetWare 1.0+ locking calls, and 00h for all older calls
  3279. SeeAlso: AH=BCh,AH=C4h,AH=D0h
  3280. --------v-21C6-------------------------------
  3281. INT 21 - VIRUS - "Socha" - INSTALLATION CHECK
  3282.     AH = C6h
  3283. Return: AL = 55h if resident
  3284. SeeAlso: AX=C500h"VIRUS",AX=C603h
  3285. --------v-21C603-----------------------------
  3286. INT 21 - VIRUS - "Yankee" or "MLTI" - INSTALLATION CHECK
  3287.     AX = C603h
  3288.     CF set
  3289. Return: CF clear if resident
  3290. SeeAlso: AX=C500h"VIRUS",AX=C700h"VIRUS"
  3291. --------N-21C700-----------------------------
  3292. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION
  3293.     AX = C700h
  3294. Return: CF clear if successful
  3295.         AL = 00h
  3296.     CF set on error
  3297.         AL = error code
  3298.         96h out of memory
  3299.         FEh implicit transaction already active, converted to explicit
  3300.         FFh explicit transaction already active
  3301. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3302. SeeAlso: AX=C701h,AX=C702h,AX=C703h
  3303. --------v-21C700-----------------------------
  3304. INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK
  3305.     AX = C700h
  3306. Return: AL = 07h if resident
  3307. SeeAlso: AX=C603h"VIRUS",AH=CBh"VIRUS"
  3308. --------N-21C701-----------------------------
  3309. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION
  3310.     AX = C701h
  3311. Return: AL = status
  3312.         00h successful
  3313.         CX:DX = transaction number
  3314.         FDh transaction tracking disabled
  3315.         FEh transaction ended records locked
  3316.         FFh no explicit transaction active
  3317.     CF clear except when AL=FFh
  3318. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3319. SeeAlso: AX=C700h"NetWare",AX=C703h
  3320. --------N-21C702-----------------------------
  3321. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK
  3322.     AX = C702h
  3323. Return: AL = status
  3324.         00h not available
  3325.         01h available
  3326.         FDh available but disabled
  3327. Desc:    determine whether the default file server supports TTS
  3328. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3329. --------N-21C703-----------------------------
  3330. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION
  3331.     AX = C703h
  3332. Return: CF clear if successful
  3333.         AL = 00h
  3334.     CF set on error
  3335.         AL = error code
  3336.         FDh transaction tracking disabled, no backout
  3337.         FEh transaction ended records locked
  3338.         FFh no explicit transaction active
  3339. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3340. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C704h
  3341. --------N-21C704-----------------------------
  3342. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS
  3343.     AX = C704h
  3344.     CX:DX = transaction number (see AX=C701h)
  3345. Return: AL = status
  3346.         00h successful
  3347.         FFh not yet written to disk
  3348. Desc:    verify that a transaction has actually been written to disk
  3349. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3350.     transactions are written to disk in the order in which they are ended,
  3351.       but it may take as much as five seconds for the data to be written
  3352. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C703h
  3353. --------N-21C705-----------------------------
  3354. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS
  3355.     AX = C705h
  3356. Return: AL = status
  3357.         00h successful
  3358.     CL = maximum logical record locks (default 0)
  3359.     CH = maximum physical record locks (default 0)
  3360. Desc:    get the per-application limits on record locks allowed before an
  3361.       implicit transaction is begun
  3362. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3363.     if either limit is FFh, implicit transactions are disabled for the
  3364.       corresponding lock type
  3365. SeeAlso: AX=C706h,AX=C707h
  3366. --------N-21C706-----------------------------
  3367. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS
  3368.     AX = C706h
  3369.     CL = maximum logical record locks (default 0)
  3370.     CH = maximum physical record locks (default 0)
  3371. Return: AL = status
  3372.         00h successful
  3373. Desc:    specify the per-application limits on record locks allowed before an
  3374.       implicit transaction is begun
  3375. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3376.     if either limit is set to FFh, implicit transactions are disabled for
  3377.       the corresponding lock type
  3378. SeeAlso: AX=C705h,AX=C708h
  3379. --------N-21C707-----------------------------
  3380. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS
  3381.     AX = C707h
  3382. Return: AL = status
  3383.         00h successful
  3384.     CL = maximum logical record locks (default 0)
  3385.     CH = maximum physical record locks (default 0)
  3386. Desc:    get the per-workstation limits on record locks allowed before an
  3387.       implicit transaction is begun
  3388. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3389.     if either limit is FFh, implicit transactions are disabled for the
  3390.       corresponding lock type
  3391. SeeAlso: AX=C705h,AX=C708h
  3392. --------N-21C708-----------------------------
  3393. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS
  3394.     AX = C708h
  3395.     CL = maximum logical record locks (default 0)
  3396.     CH = maximum physical record locks (default 0)
  3397. Return: AL = status
  3398.         00h successful
  3399. Desc:    specify the per-workstation limits on record locks allowed before an
  3400.       implicit transaction is begun
  3401. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3402.     if either limit is set to FFh, implicit transactions are disabled for
  3403.       the corresponding lock type
  3404. SeeAlso: AX=C706h,AX=C707h
  3405. --------N-21C8-------------------------------
  3406. INT 21 O - Novell NetWare - BEGIN LOGICAL FILE LOCKING
  3407.     AH = C8h
  3408.     if function C6h lock mode 00h:
  3409.         DL = mode
  3410.         00h no wait
  3411.         01h wait
  3412.     if function C6h lock mode 01h:
  3413.         BP = timeout in timer ticks (1/18 sec)
  3414. Return: AL = error code
  3415. Desc:    used to provide TTS support for applications which are not aware of
  3416.       Novell's Transaction Tracking System
  3417. Note:    this function was added in NetWare 4.0, but was removed some time prior
  3418.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  3419.       documentation
  3420. SeeAlso: AH=C9h
  3421. --------N-21C9-------------------------------
  3422. INT 21 O - Novell NetWare - END LOGICAL FILE LOCKING
  3423.     AH = C9h
  3424. Return: AL = error code
  3425. Desc:    used to provide TTS support for applications which are not aware of
  3426.       Novell's Transaction Tracking System
  3427. Note:    this function was added in NetWare 4.0, but was removed some time prior
  3428.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  3429.       documentation
  3430. SeeAlso: AH=C8h
  3431. --------N-21CA-------------------------------
  3432. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)
  3433.     AH = CAh
  3434.     DS:DX -> FCB (see AH=0Fh)
  3435.     if function C6h lock mode 01h:
  3436.         AL = log and lock flag
  3437.         00h log file only
  3438.         01h lock as well as log file
  3439.         BP = lock timeout in timer ticks (1/18 sec)
  3440. Return: AL = error code
  3441.         00h successful
  3442.         96h no dynamic memory for file
  3443.         FEh timeout
  3444.         FFh failed
  3445. Desc:    provides file locking support for FCBs
  3446. Note:    this function was added in NetWare 4.0, but was removed some time prior
  3447.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  3448.       documentation
  3449. SeeAlso: AH=CBh
  3450. --------v-21CA15-----------------------------
  3451. INT 21 - VIRUS - "Piter" - ???
  3452.     AX = CA15h
  3453.     ???
  3454. Return: ???
  3455. SeeAlso: AH=CCh"VIRUS"
  3456. --------N-21CB-------------------------------
  3457. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET
  3458.     AH = CBh
  3459.     if function C6h lock mode 00h:
  3460.         DL = mode
  3461.         00h no wait
  3462.         01h wait
  3463.     if function C6h lock mode 01h:
  3464.         BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  3465. Return: AL = status
  3466.         00h successful
  3467.         FEh timed out
  3468.         FFh failed
  3469. Desc:    attempt to lock all files listed in the log table
  3470. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3471.       Alloy NTNX
  3472.     status FFh will be returned if one or more of the files have already
  3473.       been exclusively locked by another process
  3474. SeeAlso: AH=CAh,AH=CDh,AH=D1h,AH=EBh
  3475. --------v-21CB-------------------------------
  3476. INT 21 - VIRUS - "Milous" - INSTALLATION CHECK
  3477.     AH = CBh
  3478. Return: AL = 07h if resident
  3479. SeeAlso: AX=C700h"VIRUS",AX=CB02h
  3480. --------v-21CB02-----------------------------
  3481. INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK
  3482.     AX = CB02h
  3483. Return: AX = 02CBh if resident
  3484. SeeAlso: AH=CBh"VIRUS",AH=CCh"VIRUS"
  3485. --------N-21CC-------------------------------
  3486. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE FILE (FCB)
  3487.     AH = CCh
  3488.     DS:DX -> FCB (see AH=0Fh)
  3489. Return: none
  3490. Desc:    unlocks file, but does not remove it from the log table or close it
  3491. Note:    this function was added in NetWare 4.0, but was removed some time prior
  3492.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  3493.       documentation
  3494. SeeAlso: AH=CAh,AH=CDh
  3495. --------v-21CC-------------------------------
  3496. INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK
  3497.     AH = CCh
  3498. Return: AX = 0700h if resident
  3499. SeeAlso: AX=CB02h,AH=CDh"VIRUS",AX=D000h"VIRUS"
  3500. --------N-21CD-------------------------------
  3501. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET
  3502.     AH = CDh
  3503. Return: none
  3504. Desc:    unlock all files listed in the log table, but don't remove them from
  3505.       the table
  3506. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3507.       Alloy NTNX
  3508. SeeAlso: AH=CBh,AH=CCh,AH=CFh,AH=D3h
  3509. --------v-21CD-------------------------------
  3510. INT 21 - VIRUS - "Westwood" - ???
  3511.     AH = CDh
  3512.     ???
  3513. Return: ???
  3514. SeeAlso: AH=CCh"VIRUS"
  3515. --------N-21CE-------------------------------
  3516. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR FILE (FCB)
  3517.     AH = CEh
  3518.     DS:DX -> FCB (see AH=0Fh)
  3519. Return: AL = error code
  3520. Desc:    unlocks file and removes it from log table, then closes all opened and
  3521.       logged occurrences
  3522. Note:    this function was added in NetWare 4.0, but was removed some time prior
  3523.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  3524.       documentation
  3525. SeeAlso: AH=CAh,AH=CFh,AH=EDh"NetWare"
  3526. --------N-21CF-------------------------------
  3527. INT 21 - LANstep - ???
  3528.     AH = CFh
  3529.     ???
  3530. Return: ???
  3531. Program: LANstep is a redesign of the Waterloo Microsystems PORT network
  3532. --------N-21CF-------------------------------
  3533. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET
  3534.     AH = CFh
  3535. Return: AL = 00h
  3536. Desc:    unlock and remove all files from log table
  3537. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3538.       Alloy NTNX
  3539. SeeAlso: AH=CAh,AH=CEh,AH=EBh"NetWare"
  3540. --------N-21D0-------------------------------
  3541. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD
  3542.     AH = D0h
  3543.     DS:DX -> record string (counted string, max 99 data bytes)
  3544.     if function C6h lock mode 01h: (Novell, NTNX only)
  3545.         AL = flags
  3546.         bit 0: lock as well as log the record
  3547.         bit 1: non-exclusive lock
  3548.         BP = lock timeout in timer ticks (1/18 sec)
  3549. Return: AL = status
  3550.         00h successful
  3551.         96h no dynamic memory for file
  3552.         FEh timed out
  3553.         FFh unsuccessful
  3554. Desc:    add the specified logical record name to the log table, and optionally
  3555.       lock the record
  3556. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  3557.       Banyan VINES, and Alloy NTNX
  3558.     locks on logical record names are advisory and may be ignored by other
  3559.       applications
  3560. SeeAlso: AH=BCh,AH=D1h,AH=D2h,AH=D4h,AH=EBh
  3561. --------v-21D000-----------------------------
  3562. INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK
  3563.     AX = D000h
  3564. Return: BX = 1234h if resident
  3565. SeeAlso: AH=CCh"VIRUS",AH=D5h"VIRUS",AX=D5AAh
  3566. --------N-21D1-------------------------------
  3567. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET
  3568.     AH = D1h
  3569.     AL = lock type (00h exclusive, 01h shareable)
  3570.     if function C6h lock mode 00h:
  3571.         DL = mode
  3572.         00h no wait
  3573.         01h wait
  3574.     if function C6h lock mode 01h: (Novell only)
  3575.        BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  3576.         0000h no wait
  3577. Return: AL = status (see AH=CBh)
  3578. Desc:    attempt to lock all logical record names listed in the log table
  3579. Notes:    this function is supported by NetWare 4.6+, Advanced Netware 1.0+,
  3580.       Banyan VINES, and Alloy NTNX
  3581.     status FFh will be returned if one or more logical records have been
  3582.       exclusively locked by another process
  3583.     locks on logical record names are advisory and may be ignored by other
  3584.       applications
  3585. SeeAlso: AH=C2h,AH=CBh,AH=D0h,AH=D3h,AH=D5h
  3586. --------N-21D2-------------------------------
  3587. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD
  3588.     AH = D2h
  3589.     DS:DX -> semaphore identifier (counted string up to 99 chars long)
  3590. Return: AL = status
  3591.         00h successful
  3592.         FFh no such record
  3593. Desc:    unlock the logical record name but do not remove it from the log table
  3594. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  3595.       Banyan VINES, and Alloy NTNX
  3596.     locks on logical record names are advisory and may be ignored by other
  3597.       applications
  3598. SeeAlso: AH=BDh,AH=D0h,AH=D3h,AH=D4h
  3599. --------N-21D3-------------------------------
  3600. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET
  3601.     AH = D3h
  3602. Desc:    unlock all currently-locked logical record names in the log table, but
  3603.       do not remove them from the table
  3604. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  3605.       Banyan VINES, and Alloy NTNX
  3606.     locks on logical record names are advisory and may be ignored by other
  3607.       applications
  3608. SeeAlso: AH=C3h,AH=CDh,AH=D1h,AH=D2h,AH=D5h
  3609. --------N-21D4-------------------------------
  3610. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD
  3611.     AH = D4h
  3612.     DS:DX -> logical record name (counted string up to 99 chars long)
  3613. Return: AL = status
  3614.         00h successful
  3615.         FFh no such record name
  3616. Desc:    unlock and remove the logical record name from the log table
  3617. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  3618.       Banyan VINES, and Alloy NTNX
  3619.     locks on logical record names are advisory and may be ignored by other
  3620.       applications
  3621. SeeAlso: AH=BEh,AH=D0h,AH=D2h,AH=D5h
  3622. --------N-21D5-------------------------------
  3623. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET
  3624.     AH = D5h
  3625. Return: AL = error code (see AH=D4h)
  3626. Desc:    unlock and remove all logical record name from the log table
  3627. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  3628.       Banyan VINES, and Alloy NTNX
  3629.     locks on logical record names are advisory and may be ignored by other
  3630.       applications
  3631. SeeAlso: AH=D1h,AH=D3h,AH=D4h
  3632. --------v-21D5-------------------------------
  3633. INT 21 - VIRUS - "Carfield" - ???
  3634.     AH = D5h
  3635.     ???
  3636. Return: ???
  3637. SeeAlso: AX=D5AAh,AH=F3h"Carfield"
  3638. --------v-21D5AA-----------------------------
  3639. INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK
  3640.     AX = D5AAh
  3641. Return: AX = 2A55h if "Diamond-A" resident
  3642.     AX = 2A03h if "Diamond-B"-family virus resident
  3643. SeeAlso: AX=D000h,AH=D5h"VIRUS",AX=D5AAh/BP=DEAAh
  3644. --------v-21D5AABPDEAA-----------------------
  3645. INT 21 - VIRUS - "Dir" - INSTALLATION CHECK
  3646.     AX = D5AAh
  3647.     BP = DEAAh
  3648. Return: SI = 4321h if resident
  3649. SeeAlso: AX=D5AAh,AX=DADAh"VIRUS"
  3650. --------N-21D6-------------------------------
  3651. INT 21 - Novell NetWare - WORKSTATION - END OF JOB
  3652.     AH = D6h
  3653.     BX = job flag (0000h current job, FFFFh all processes on workstation)
  3654. Return: AL = error code
  3655. Desc:    unlocks and clears all locked or logged files and records held by the
  3656.       process(es), closes all files, resets error and lock modes, and
  3657.       releases all network resources
  3658. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3659.       Alloy NTNX
  3660. SeeAlso: AH=BBh,AH=D7h
  3661. --------N-21D7-------------------------------
  3662. INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT
  3663.     AH = D7h
  3664. Return: AL = error code
  3665. Desc:    this function closes the caller's open files, logs it out from all
  3666.       file servers, detaches the workstation from all non-default file
  3667.       servers, and maps a drive to the default server's SYS:LOGIN directory
  3668. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3669.       Alloy NTNX
  3670. SeeAlso: AH=D6h,AH=E3h/SF=14h,AH=F1h
  3671. --------N-21D8-------------------------------
  3672. INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE
  3673.     AH = D8h
  3674.     DL = resource number
  3675. Return: AL = status
  3676.         00h successful
  3677.         FFh unsucessful
  3678. Note:    this function is no longer used or supported by NetWare, and is not
  3679.       documented in Novell documents
  3680. SeeAlso: AH=D9h
  3681. --------N-21D9-------------------------------
  3682. INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE
  3683.     AH = D9h
  3684.     DL = resource number
  3685. Return:    AL = status (see AH=D8h)
  3686. Note:    this function is no longer used or supported by NetWare, and is not
  3687.       documented in Novell documents
  3688. SeeAlso: AH=D8h
  3689. --------N-21DA-------------------------------
  3690. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER
  3691.     AH = DAh
  3692.     DL = volume number
  3693.     ES:DI -> reply buffer (see below)
  3694. Return: AL = 00h
  3695. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3696. SeeAlso: AH=36h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  3697.  
  3698. Format of reply buffer:
  3699. Offset    Size    Description
  3700.  00h    WORD    sectors/block
  3701.  02h    WORD    total blocks on volume
  3702.  04h    WORD    unused blocks
  3703.  06h    WORD    total directory entries
  3704.  08h    WORD    unused directory entries
  3705.  0Ah 16 BYTEs    volume name, null padded
  3706.  1Ah    WORD    removable flag, 0000h = not removable
  3707. Note:    all words are big-endian
  3708. --------v-21DADA-----------------------------
  3709. INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK
  3710.     AX = DADAh
  3711. Return: AH = A5h
  3712. SeeAlso: AX=D5AAh,AH=DAFEh"VIRUS"
  3713. --------v-21DAFE-----------------------------
  3714. INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK
  3715.     AX = DAFEh
  3716. Return: AX = 1234h if resident
  3717. SeeAlso: AX=DADAh,AH=DDh"VIRUS",AH=DEh"VIRUS"
  3718. --------N-21DB-------------------------------
  3719. INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES
  3720.     AH = DBh
  3721. Return: AL = number of local disks as set by LASTDRIVE in CONFIG.SYS
  3722. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3723.       Alloy NTNX
  3724. SeeAlso: AH=0Eh
  3725. --------N-21DC-------------------------------
  3726. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER
  3727.     AH = DCh
  3728. Return: AL = logical connection number
  3729.         00h if NetWare not loaded or this machine is a non-dedicated server
  3730.     CX = station number in ASCII (CL = first digit)
  3731. Notes:    this function is supported by NetWare 4.0+, Banyan VINES, and Alloy
  3732.       NTNX
  3733.     station number only unique for those PCs connected to same semaphore
  3734.       service
  3735. --------d-21DC-------------------------------
  3736. INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
  3737.     AH = DCh
  3738.     DX = state
  3739.         0000h turn on
  3740.         0001h turn off
  3741. SeeAlso: AX=FEDCh
  3742. --------N-21DD-------------------------------
  3743. INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE
  3744.     AH = DDh
  3745.     DL = error mode
  3746.         00h invoke INT 24 on critical I/O errors (default)
  3747.         01h return NetWare extended error code in AL
  3748.         02h return error code in AL, mapped to standard DOS error codes
  3749. Return: AL = previous error mode
  3750. Note:    this function is supported by Advanced NetWare 2.0+
  3751. SeeAlso: INT 24
  3752. --------v-21DD-------------------------------
  3753. INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???
  3754.     AH = DDh
  3755.     CX = number of bytes to copy
  3756.     DS:SI -> source of copy
  3757.     ES:DI -> destination of copy
  3758. Return: does not return normally; return address is caller's CS:0100h with
  3759.       AX = ???
  3760. SeeAlso: AH=E0h"VIRUS",AH=EEh"VIRUS"
  3761. --------v-21DE-------------------------------
  3762. INT 21 - VIRUS - "Durban" - INSTALLATION CHECK
  3763.     AH = DEh
  3764. Return: AH = DFh if resident
  3765. SeeAlso: AX=DAFEh,AX=DEDEh"VIRUS"
  3766. --------v-21DE-------------------------------
  3767. INT 21 - VIRUS - "April 1st EXE" - ???
  3768.     AH = DEh
  3769.     ???
  3770. Return: ???
  3771. --------N-21DE-------------------------------
  3772. INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE
  3773.     AH = DEh
  3774.     DL = broadcast mode
  3775.         00h receive server and workstation broadcasts (default)
  3776.         01h receive server broadcasts, discard user messages
  3777.         02h store server broadcasts for retrieval
  3778.         03h store all broadcasts for retrieval
  3779. Return: AL = new broadcast mode
  3780. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3781. --------N-21DE--DL04-------------------------
  3782. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE
  3783.     AH = DEh
  3784.     DL = 04h
  3785. Return: AL = current broadcast mode
  3786.         00h receive server and workstation broadcasts (default)
  3787.         01h receive server broadcasts, discard user message
  3788.         02h store server broadcasts for retrieval
  3789.         03h store all broadcasts for retrieval
  3790. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3791. --------N-21DE-------------------------------
  3792. INT 21 - Novell NetWare - SHELL TIMER INTERRUPT CHECKS
  3793.     AH = DEh
  3794.     DL = function
  3795.         05h disable shell timer interrupt checks
  3796.         06h enable shell timer interrupt checks
  3797. Return: ???
  3798. Note:    this function was added in NetWare 4.0, but is not listed in current
  3799.       Novell documentation and is probably no longer supported
  3800. --------v-21DEDE-----------------------------
  3801. INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
  3802.     AX = DEDEh
  3803. Return: AH = 41h if resident
  3804. SeeAlso: AH=DEh"VIRUS",AH=E0h"VIRUS"
  3805. --------N-21DF--DL00-------------------------
  3806. INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE
  3807.     AH = DFh
  3808.     DL = 00h
  3809. Return: AL = status
  3810.         00h successful
  3811. Desc:    this function redirects the default LPT to a capture file on the file
  3812.       server
  3813. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3814.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  3815.     a print job is queued when the first character of output is captured
  3816. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=03h
  3817. SeeAlso: AH=DFh/DL=04h,AX=F003h
  3818. --------N-21DF--DL01-------------------------
  3819. INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE
  3820.     AH = DFh
  3821.     DL = 01h
  3822. Return: AL = status
  3823.         00h successful
  3824. Desc:    stop redirecting the default LPT, close the capture file, and release
  3825.       the job in the print queue for printing
  3826. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3827.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  3828.     after this call, the default LPT defaults to local printing
  3829. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=02h,AH=DFh/DL=03h,AH=DFh/DL=05h
  3830. --------N-21DF--DL02-------------------------
  3831. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE
  3832.     AH = DFh
  3833.     DL = 02h
  3834. Return: AL = status
  3835.         00h successful
  3836. Desc:    this function ends the capture of the default LPT, removes the job from
  3837.       the print queue, and deletes the capture file unless it is a
  3838.       permanent capture file
  3839. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3840.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  3841.     after this call, the default LPT defaults to local printing
  3842. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=06h
  3843. --------N-21DF--DL03-------------------------
  3844. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE
  3845.     AH = DFh
  3846.     DL = 03h
  3847. Return: AL = status
  3848.         00h successful
  3849. Desc:    this function closes the current capture file for the default LPT
  3850.       and starts printing it if it is not a permanent capture file
  3851. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3852.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  3853.     if more data is sent to the LPT port after this call, a new capture
  3854.       file will be opeend
  3855. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=07h
  3856. --------N-21DF--DL04-------------------------
  3857. INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE
  3858.     AH = DFh
  3859.     DL = 04h
  3860.     DH = LPT port (00h-02h)
  3861. Return: AL = status
  3862.         00h successful
  3863. Desc:    this function redirects the specified LPT to a capture file on the file
  3864.       server
  3865. Notes:    this function is supported by Advanced NetWare 2.1+
  3866.     a print job is queued when the first character of output is captured
  3867. SeeAlso: AX=B800h,AH=DFh/DL=00h,AH=DFh/DL=05h,AH=DFh/DL=06h,AH=DFh/DL=07h
  3868. SeeAlso: AX=F003h
  3869. --------N-21DF--DL05-------------------------
  3870. INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE
  3871.     AH = DFh
  3872.     DL = 05h
  3873.     DH = LPT port (00h-02h)
  3874. Return: AL = status
  3875.         00h successful
  3876. Desc:    stop redirecting the specified LPT, close the capture file, and release
  3877.       the job in the print queue for printing
  3878. Notes:    this function is supported by Advanced NetWare 2.1+
  3879.     after this call, the specified LPT defaults to local printing
  3880. SeeAlso: AH=DFh/DL=01h,AH=DFh/DL=04h,AH=DFh/DL=06h,AH=DFh/DL=07h
  3881. --------N-21DF--DL06-------------------------
  3882. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE
  3883.     AH = DFh
  3884.     DL = 06h
  3885.     DH = LPT port (00h-02h)
  3886. Return: AL = status
  3887.         00h successful
  3888. Desc:    this function ends the capture of the specified LPT, removes the job
  3889.       from the print queue, and deletes the capture file unless it is a
  3890.       permanent capture file
  3891. Notes:    this function is supported by Advanced NetWare 2.1+
  3892.     after this call, the specified LPT defaults to local printing
  3893. SeeAlso: AH=DFh/DL=02h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=07h
  3894. --------N-21DF--DL07-------------------------
  3895. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE
  3896.     AH = DFh
  3897.     DL = 07h
  3898.     DH = LPT port (00h-02h)
  3899. Return: AL = status
  3900.         00h successful
  3901. Desc:    this function closes the current capture file for the specified LPT
  3902.       and starts printing it if it is not a permanent capture file
  3903. Notes:    this function is supported by Advanced NetWare 2.1+
  3904.     if more data is sent to the LPT port after this call, a new capture
  3905.       file will be opeend
  3906. SeeAlso: AH=DFh/DL=03h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=06h
  3907. --------O-21E0-------------------------------
  3908. INT 21 - Digital Research DOS Plus - CALL BDOS
  3909.     AH = E0h
  3910.     CL = BDOS function number (see INT E0"CP/M")
  3911.     other registers as appropriate for function
  3912. Return: as appropriate for function
  3913. SeeAlso: AX=4459h,INT E0"CP/M"
  3914. --------E-21E0-------------------------------
  3915. INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE
  3916.     AH = E0h
  3917.     ???
  3918. Return: ???
  3919. SeeAlso: AH=E1h"OS/286"
  3920. --------T-21E0-------------------------------
  3921. INT 21 - DoubleDOS - MENU CONTROL
  3922.     AH = E0h
  3923.     AL = subfunction
  3924.         01h exchange tasks
  3925.         73h resume invisible job if suspended
  3926.         74h kill other job
  3927.         75h suspend invisible job
  3928. Note:    identical to AH=F0h
  3929. SeeAlso: AH=F0h"DoubleDOS"
  3930. --------v-21E0-------------------------------
  3931. INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK
  3932.     AH = E0h
  3933. Return: AX = 0300h if "Jerusalem" resident
  3934.     AX = DADAh if "Armagedon" resident
  3935. SeeAlso: AH=DEh"VIRUS",AX=DEDEh"VIRUS",AX=E00Fh
  3936. --------N-21E0-------------------------------
  3937. INT 21 - Novell NetWare, Alloy NTNX - PRINT SPOOLING
  3938.     AH = E0h
  3939.     DS:SI -> request buffer (see below)
  3940.     ES:DI -> reply buffer
  3941. Return: AL = status
  3942. Note:    this function was added in NetWare 4.0, but is no longer listed in
  3943.       current Novell documentation and may no longer be supported
  3944. SeeAlso: AH-E3h/SF=68h
  3945.  
  3946. Format of request buffer:
  3947. Offset    Size    Description
  3948.  00h    WORD    length of following data
  3949.  02h    BYTE    subfunction
  3950.         00h spool data to a capture file
  3951.         01h close and queue capture file
  3952.         02h set spool flags
  3953.         03h spool existing file
  3954.         04h get spool queue entry
  3955.         05h remove entry from spool queue
  3956.  03h    ???
  3957. --------N-21E0--SF06-------------------------
  3958. INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS
  3959.     AH = E0h subfn 06h
  3960.     DS:SI -> request buffer (see below)
  3961.     ES:DI -> reply buffer (see below)
  3962. Return: AL = status
  3963.         00h successful
  3964.         FFh no such printer
  3965. Desc:    get current state of specified printer attached to the server
  3966. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3967.       Alloy NTNX
  3968.  
  3969. Format of request buffer:
  3970. Offset    Size    Description
  3971.  00h    WORD    0002h (length of following data)
  3972.  02h    BYTE    06h (subfunction "Get Printer Status")
  3973.  03h    BYTE    printer number (00h-04h)
  3974.  
  3975. Format of reply buffer:
  3976. Offset    Size    Description
  3977.  00h    WORD    (call) 0004h (size of following results buffer)
  3978.  02h    BYTE    flag: 00h printer active, FFh printer halted
  3979.  03h    BYTE    flag: 00h printer online, 01h printer offline
  3980.  04h    BYTE    current form type
  3981.  05h    BYTE    target printer number (00h-04h)
  3982.         same as number in request buffer unless rerouted by server
  3983.         console
  3984. --------N-21E0--SF09-------------------------
  3985. INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE
  3986.     AH = E0h subfn 09h
  3987.     DS:SI -> request buffer (see below)
  3988.     ES:DI -> reply buffer (see below)
  3989. Return: AL = status
  3990.         00h successful
  3991.         9Ch invalid path
  3992. Desc:    create a permanent capture file for the next print capture to be
  3993.       started
  3994. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3995.       Alloy NTNX
  3996.     the caller must have read, write, and create rights for the directory
  3997.       containing the capture file
  3998.  
  3999. Format of request buffer:
  4000. Offset    Size    Description
  4001.  00h    WORD    length of following data (max 102h)
  4002.  02h    BYTE    09h (subfunction "Specify Capture File")
  4003.  03h    BYTE    directory handle or 00h
  4004.  04h    BYTE    length of filename
  4005.  05h  N BYTEs    name of capture file
  4006.  
  4007. Format of reply buffer:
  4008. Offset    Size    Description
  4009.  00h    WORD    (call) 0000h (no results returned)
  4010. --------v-21E00F-----------------------------
  4011. INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK
  4012.     AX = E00Fh
  4013. Return: AX = 4C31h if resident
  4014. SeeAlso: AH=E0h"VIRUS",AH=E1h"VIRUS"
  4015. --------E-21E1-------------------------------
  4016. INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL
  4017.     AH = E1h
  4018.     ???
  4019. Return: ???
  4020. Note:    protected mode only???
  4021. SeeAlso: AH=E0h"OS/286",AH=E2h"OS/286",AH=E3h"OS/286",AX=250Eh,INT 31/AX=0301h
  4022. --------T-21E1-------------------------------
  4023. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  4024.     AH = E1h
  4025. SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  4026. SeeAlso: AH=F1h"DoubleDOS"
  4027. --------v-21E1-------------------------------
  4028. INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK
  4029.     AH = E1h
  4030. Return: AX = 0300h if "Mendoza" resident
  4031.     AX = 0400h if "Fu Manchu" resident
  4032. SeeAlso: AX=E00Fh,AH=E4h"VIRUS"
  4033. --------N-21E1--SF00-------------------------
  4034. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE
  4035.     AH = E1h subfn 00h
  4036.     DS:SI -> request buffer (see below)
  4037.     ES:DI -> reply buffer (see below)
  4038. Return: AL = status
  4039.         00h successful
  4040.         FEh I/O error or out of dynamic workspace
  4041. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4042. SeeAlso: AH=DEh"NetWare",AH=DEh/DL=04h,AH=E1h/SF=01h,AH=E1h/SF=04h
  4043. SeeAlso: AH=E1h/SF=09h
  4044.  
  4045. Format of request buffer:
  4046. Offset    Size    Description
  4047.  00h    WORD    length of following data (max 9Eh)
  4048.  02h    BYTE    00h (subfunction "Send Broadcast Message")
  4049.  03h    BYTE    number of connections (01h-64h)
  4050.  04h  N BYTEs    list of connections to receive broadcast message
  4051.     BYTE    length of message (01h-37h)
  4052.       N BYTEs    broadcast message (no control characters or characters > 7Eh)
  4053.  
  4054. Format of reply buffer:
  4055. Offset    Size    Description
  4056.  00h    WORD    (call) size of following results buffer (max 65h)
  4057.  02h    BYTE    number of connections
  4058.  03h  N BYTEs    list of per-connection results
  4059.         00h successful
  4060.         FCh message rejected due to lack of buffer space
  4061.         FDh invalid connection number
  4062.         FFh blocked (see also AH=E1h/SF=02h)
  4063. --------N-21E1--SF01-------------------------
  4064. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE
  4065.     AH = E1h subfn 01h
  4066.     DS:SI -> request buffer (see below)
  4067.     ES:DI -> reply buffer (see below)
  4068. Return: AL = status
  4069.         00h successful
  4070.         FCh full message queue
  4071.         FEh out of dynamic workspace
  4072. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4073. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=09h
  4074.  
  4075. Format of request buffer:
  4076. Offset    Size    Description
  4077.  00h    WORD    0001h (length of following data)
  4078.  02h    BYTE    01h (subfunction "Get Broadcast Message")
  4079.  
  4080. Format of reply buffer:
  4081. Offset    Size    Description
  4082.  00h    WORD    (call) size of following results buffer (max 38h)
  4083.  02h    BYTE    length of message (00h-37h)
  4084.         00h if no broadcast messages pending
  4085.  03h  N BYTEs    message (no control characters or characters > 7Eh)
  4086. --------N-21E1-------------------------------
  4087. INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE/DISABLE BROADCAST MESSAGES
  4088.     AH = E1h
  4089.     DS:SI -> request buffer (see below)
  4090.     ES:DI -> reply buffer
  4091. Return: AL = error code
  4092. Note:    these functions are supported by NetWare 4.0+ but are not listed in
  4093.       _NetWare_System_Calls--DOS_; they may be obsolete
  4094. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=04h,AH=E1h/SF=09h
  4095.  
  4096. Format of request buffer:
  4097. Offset    Size    Description
  4098.  00h    WORD    length of following data (max 9Eh)
  4099.  02h    BYTE    subfunction
  4100.         02h disable station broadcasts
  4101.         03h enable station broadcasts
  4102.  03h    ???
  4103.  
  4104. Format of reply buffer:
  4105. Offset    Size    Description
  4106.  00h    WORD    (call) size of following results buffer
  4107.  02h    ???
  4108. --------N-21E1--SF04-------------------------
  4109. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE
  4110.     AH = E1h subfn 04h
  4111.     DS:SI -> request buffer (see below)
  4112.     ES:DI -> reply buffer (see below)
  4113. Return: AL = status
  4114.         00h successful
  4115.         FEh I/O error or out of dynamic workspace
  4116. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4117.     message pipes use CPU time on the file server; IPX, SPX, or NetBIOS
  4118.       connections should be used for peer-to-peer communications as these
  4119.       protocols do not use file server time
  4120. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  4121.  
  4122. Format of request buffer:
  4123. Offset    Size    Description
  4124.  00h    WORD    length of following data (max E5h)
  4125.  02h    BYTE    04h (subfunction "Send Personal Message")
  4126.  03h    BYTE    number of connections (01h-64h)
  4127.  04h  N BYTEs    list of connections to receive broadcast message
  4128.     BYTE    length of message (01h-7Eh)
  4129.       N BYTEs    message (no control characters or characters > 7Eh)
  4130.  
  4131. Format of reply buffer:
  4132. Offset    Size    Description
  4133.  00h    WORD    (call) size of following results buffer (max 65h)
  4134.  02h    BYTE    number of connections
  4135.  03h  N BYTEs    list of per-connection results
  4136.         00h successful
  4137.         FCh message rejected because queue is full (contains 6 msgs)
  4138.         FDh incomplete pipe
  4139.         FFh failed
  4140. --------N-21E1--SF05-------------------------
  4141. INT 21 - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE
  4142.     AH = E1h subfn 05h
  4143.     DS:SI -> request buffer (see below)
  4144.     ES:DI -> reply buffer (see below)
  4145. Return: AL = status
  4146.         00h successful
  4147.         FEh out of dynamic workspace
  4148. Desc:    return the oldest message in the default file server's message queue
  4149.       for the calling workstation
  4150. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4151. SeeAlso: AH=E1h/SF=01h,AH=E1h/SF=04h,AH=E1h/SF=06h,AH=E1h/SF=08h
  4152.  
  4153. Format of request buffer:
  4154. Offset    Size    Description
  4155.  00h    WORD    0001h (length of following data)
  4156.  02h    BYTE    05h (subfunction "Get Personal Message")
  4157.  
  4158. Format of reply buffer:
  4159. Offset    Size    Description
  4160.  00h    WORD    (call) size of following results buffer (max 80h)
  4161.  02h    BYTE    connection number of sending station
  4162.  03h    BYTE    length of message (00h-7Eh)
  4163.         00h if no personal messages pending
  4164.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  4165. --------N-21E1--SF06-------------------------
  4166. INT 21 - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE
  4167.     AH = E1h subfn 06h
  4168.     DS:SI -> request buffer (see below)
  4169.     ES:DI -> reply buffer (see below)
  4170. Return: AL = status
  4171.         00h successful
  4172.         FEh out of dynamic workspace
  4173. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4174. SeeAlso: AH=E1h/SF=04h,AH=E1h/SF=07h,AH=E1h/SF=08h
  4175.  
  4176. Format of request buffer:
  4177. Offset    Size    Description
  4178.  00h    WORD    length of following data (max 66h)
  4179.  02h    BYTE    06h (subfunction "Open Message Pipe")
  4180.  03h    BYTE    number of pipes to open (01h-64h)
  4181.  04h  N BYTEs    list of connection numbers
  4182.  
  4183. Format of reply buffer:
  4184. Offset    Size    Description
  4185.  00h    WORD    (call) size of following results buffer (max 65h)
  4186.  02h    BYTE    number of connections
  4187.  03h  N BYTEs    list of results
  4188.         00h successful
  4189.         FEh incomplete (target half not yet created)
  4190.         FFh failed
  4191. --------N-21E1--SF07-------------------------
  4192. INT 21 - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE
  4193.     AH = E1h subfn 07h
  4194.     DS:SI -> request buffer (see below)
  4195.     ES:DI -> reply buffer (see below)
  4196. Return: AL = status
  4197.         00h successful
  4198.         FCh full message queue
  4199.         FEh out of dynamic workspace
  4200. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4201. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  4202.  
  4203. Format of request buffer:
  4204. Offset    Size    Description
  4205.  00h    WORD    length of following data (max 66h)
  4206.  02h    BYTE    07h (subfunction "Close Message Pipe")
  4207.  03h    BYTE    number of pipes to close (01h-64h)
  4208.  04h  N BYTEs    list of connection numbers
  4209.  
  4210. Format of reply buffer:
  4211. Offset    Size    Description
  4212.  00h    WORD    (call) size of following results buffer (max 65h)
  4213.  02h    BYTE    number of connections
  4214.  03h  N BYTEs    list of results
  4215.         00h successful
  4216.         FDh failed
  4217.         FFh no such pipe
  4218. --------N-21E1--SF08-------------------------
  4219. INT 21 - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS
  4220.     AH = E1h subfn 08h
  4221.     DS:SI -> request buffer (see below)
  4222.     ES:DI -> reply buffer (see below)
  4223. Return: AL = status (see below)
  4224. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4225. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=07h
  4226.  
  4227. Values for status:
  4228.  00h successful
  4229.  FCh full message queue
  4230.  FEh out of dynamic workspace
  4231.  
  4232. Format of request buffer:
  4233. Offset    Size    Description
  4234.  00h    WORD    length of following data (max 66h)
  4235.  02h    BYTE    08h (subfunction "Check Pipe Status")
  4236.  03h    BYTE    number of pipes to monitor (01h-64h)
  4237.  04h  N BYTEs    list of connection numbers
  4238.  
  4239. Format of reply buffer:
  4240. Offset    Size    Description
  4241.  00h    WORD    (call) size of following results buffer (max 65h)
  4242.  02h    BYTE    number of connections
  4243.  03h  N BYTEs    list of pipe statuses
  4244.         00h open
  4245.         FEh incomplete
  4246.         FFh closed
  4247. --------N-21E1--SF09-------------------------
  4248. INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE
  4249.     AH = E1h subfn 09h
  4250.     DS:SI -> request buffer (see below)
  4251.     ES:DI -> reply buffer (see below)
  4252. Return: AL = status (see AH=E1h/SF=09h)
  4253. Desc:    send a one-line message to the system console on the default file
  4254.       server
  4255. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  4256. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=01h,AH=E3h/SF=D1h
  4257.  
  4258. Format of request buffer:
  4259. Offset    Size    Description
  4260.  00h    WORD    length of following data (max 3Eh)
  4261.  02h    BYTE    09h (subfunction "Broadcast to Console")
  4262.  03h    BYTE    length of message (01h-3Ch)
  4263.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  4264.  
  4265. Format of reply buffer:
  4266. Offset    Size    Description
  4267.  00h    WORD    (call) 0000h (no results returned)
  4268. --------E-21E2-------------------------------
  4269. INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER
  4270.     AH = E2h
  4271.     ???
  4272. Return: ???
  4273. SeeAlso: AH=E0h"OS/286",AH=E1h"OS/286",AH=E6h"OS/286"
  4274. --------N-21E2-------------------------------
  4275. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  4276.     AH = E2h
  4277.     AL = character
  4278. Return: AL = 00h successful
  4279.          01h buffer full (128 characters)
  4280. SeeAlso: AH=E1h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  4281. SeeAlso: AH=F2h"DoubleDOS"
  4282. --------N-21E2--SF00-------------------------
  4283. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE
  4284.     AH = E2h subfn 00h
  4285.     DS:SI -> request buffer (see below)
  4286.     ES:DI -> reply buffer (see below)
  4287. Return: AL = status (00h,98h,9Bh,9Ch) (see below)
  4288. Desc:    set the target handle to reference the directory specified by the
  4289.       source handle and the source path; both handles must refer to the
  4290.       same file server
  4291. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4292.       Alloy NTNX
  4293.     the target handle is not changed if this function fails
  4294. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=12h,AH=E2h/SF=13h
  4295.  
  4296. Values for status:
  4297.  00h    successful
  4298.  84h    not permitted to create
  4299.  8Ah    not permitted to delete
  4300.  8Bh    not permitted to rename
  4301.  8Ch    not permitted to modify
  4302.  98h    nonexistent volume
  4303.  9Bh    invalid directory handle
  4304.  9Ch    invalid path
  4305.  9Eh    invalid filename
  4306.  9Fh    directory currently in use
  4307.  A0h    directory not empty
  4308.  FCh    no such bindery object
  4309.  
  4310. Format of request buffer:
  4311. Offset    Size    Description
  4312.  00h    WORD    length of following data (max 103h)
  4313.  02h    BYTE    00h (subfunction "Set Directory Handle")
  4314.  03h    BYTE    directory handle of target
  4315.  04h    BYTE    directory handle of source
  4316.  05h    BYTE    length of source directory path (01h-FFh)
  4317.  06h  N BYTEs    source directory path
  4318.  
  4319. Format of reply buffer:
  4320. Offset    Size    Description
  4321.  00h    WORD    (call) 0000h (no results returned)
  4322. --------N-21E2--SF01-------------------------
  4323. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH
  4324.     AH = E2h subfn 01h
  4325.     DS:SI -> request buffer (see below)
  4326.     ES:DI -> reply buffer (see below)
  4327. Return: AL = status (00h,9Bh) (see AH=E2h/SF=00h)
  4328. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4329.       Alloy NTNX
  4330. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=03h,AH=E2h/SF=1Ah,AH=E9h
  4331.  
  4332. Format of request buffer:
  4333. Offset    Size    Description
  4334.  00h    WORD    0002h (length of following data)
  4335.  02h    BYTE    01h (subfunction "Get Directory Path")
  4336.  03h    BYTE    directory handle
  4337.  
  4338. Format of reply buffer:
  4339. Offset    Size    Description
  4340.  00h    WORD    (call) length of following data buffer
  4341.  02h    BYTE    length of directory path (01h-FFh)
  4342.  03h  N BYTEs    full directory path including volume
  4343. --------N-21E2--SF02-------------------------
  4344. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION
  4345.     AH = E2h subfn 02h
  4346.     DS:SI -> request buffer (see below)
  4347.     ES:DI -> reply buffer (see below)
  4348. Return: AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)
  4349. Desc:    get information about the first or next subdirectory of the specified
  4350.       directory
  4351. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4352.       Alloy NTNX
  4353. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=03h,AH=E2h/SF=19h
  4354.  
  4355. Format of request buffer:
  4356. Offset    Size    Description
  4357.  00h    WORD    length of following data (max 104h)
  4358.  02h    BYTE    02h (subfunction "Scan Directory Information")
  4359.  03h    BYTE    directory handle
  4360.  04h    WORD    subdirectory number (big-endian)
  4361.         0000h for first call, returned subdir number + 1 on next call
  4362.  06h    BYTE    length of directory path
  4363.  07h  N BYTEs    directory path
  4364.  
  4365. Format of reply buffer:
  4366. Offset    Size    Description
  4367.  00h    WORD    (call) 001Ch (length of following data buffer)
  4368.  02h 16 BYTEs    subdirectory name
  4369.  12h    DWORD    date and time of creation (big-endian) (see below)
  4370.  16h    DWORD    object ID of owner (bid-endian)
  4371.  1Ah    BYTE    maximum directory rights (see AH=E2h/SF=03h)
  4372.  1Bh    BYTE    unused
  4373.  1Ch    WORD    subdirectory number (big-endian)
  4374.  
  4375. Bitfields for date and time:
  4376.  bits 31-25    year-1980
  4377.  bits 24-21    month
  4378.  bits 20-16    day
  4379.  bits 15-11    hour
  4380.  bits 10-5    minute
  4381.  bits 4-0    second
  4382. --------N-21E2--SF03-------------------------
  4383. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS
  4384.     AH = E2h subfn 03h
  4385.     DS:SI -> request buffer (see below)
  4386.     ES:DI -> reply buffer (see below)
  4387. Return: AL = status (00h,98h,9Bh) (see AH=E2h/SF=00h)
  4388. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4389.       Alloy NTNX
  4390. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=02h
  4391.  
  4392. Format of request buffer:
  4393. Offset    Size    Description
  4394.  00h    WORD    length of following data (max 102h)
  4395.  02h    BYTE    03h (subfunction "Get Effective Directory Rights")
  4396.  03h    BYTE    directory handle
  4397.  04h    BYTE    length of directory path (00h-FFh)
  4398.  05h  N BYTEs    directory path
  4399.  
  4400. Format of reply buffer:
  4401. Offset    Size    Description
  4402.  00h    WORD    (call) 0001h (length of following data buffer)
  4403.  02h    BYTE    effective directory rights (see below)
  4404.  
  4405. Bitfields for directory rights:
  4406.  bit 0    reading allowed
  4407.  bit 1    writing allowed
  4408.  bit 2    opens allowed
  4409.  bit 3    file creation allowed
  4410.  bit 4    deletion allowed
  4411.  bit 5    "parental" may create/delete subdirectories and
  4412.     grant/revoke trustee rights
  4413.  bit 6    directory search allowed
  4414.  bit 7    file attributes may be changed
  4415. --------N-21E2--SF04-------------------------
  4416. INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK
  4417.     AH = E2h subfn 04h
  4418.     DS:SI -> request buffer (see below)
  4419.     ES:DI -> reply buffer (see below)
  4420. Return: AL = status (00h,8Ch,98h,9Ch) (see AH=E2h/SF=00h)
  4421. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4422.       Alloy NTNX
  4423. SeeAlso: AH=E2h/SF=03h,AH=E2h/SF=0Ah,AH=E2h/SF=0Dh
  4424.  
  4425. Format of request buffer:
  4426. Offset    Size    Description
  4427.  00h    WORD    length of following data (max 104h)
  4428.  02h    BYTE    04h (subfunction "Modify Maximum Rights Mask")
  4429.  03h    BYTE    directory handle
  4430.  04h    BYTE    rights to grant (see AH=E2h/SF=03h)
  4431.  05h    BYTE    rights to revoke (see AH=E2h/SF=03h)
  4432.  06h    BYTE    length of directory path (00h-FFh)
  4433.  07h  N BYTEs    directory path
  4434. Note:    the rights specified at offset 05h are revoked first, and then the
  4435.       rights specified at offset 04h are added to the resulting rights
  4436.       mask
  4437.  
  4438. Format of reply buffer:
  4439. Offset    Size    Description
  4440.  00h    WORD    (call) 0000h (no results returned)
  4441. --------N-21E2--SF05-------------------------
  4442. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER
  4443.     AH = E2h subfn 05h
  4444.     DS:SI -> request buffer (see below)
  4445.     ES:DI -> reply buffer (see below)
  4446. Return: AL = status (00h,98h) (see AH=E2h/SF=00h)
  4447. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4448.       Alloy NTNX
  4449. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  4450.  
  4451. Format of request buffer:
  4452. Offset    Size    Description
  4453.  00h    WORD    length of following data (max 12h)
  4454.  02h    BYTE    05h (subfunction "Get Volume Number")
  4455.  03h    BYTE    length of volume name (01h-10h)
  4456.  04h  N BYTEs    volume name
  4457.  
  4458. Format of reply buffer:
  4459. Offset    Size    Description
  4460.  00h    WORD    (call) 0001h (length of following results buffer)
  4461.  02h    BYTE    volume number
  4462. --------N-21E2--SF06-------------------------
  4463. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME
  4464.     AH = E2h subfn 06h
  4465.     DS:SI -> request buffer (see below)
  4466.     ES:DI -> reply buffer (see below)
  4467. Return: AL = status (00h,98h) (see AH=E2h/SF=00h)
  4468. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4469.       Alloy NTNX
  4470. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E2h/SF=1Ah
  4471. SeeAlso: AH=E3h/SF=E9h
  4472.  
  4473. Format of request buffer:
  4474. Offset    Size    Description
  4475.  00h    WORD    0002h (length of following data)
  4476.  02h    BYTE    06h (subfunction "Get Volume Name")
  4477.  03h    BYTE    volume number
  4478.  
  4479. Format of reply buffer:
  4480. Offset    Size    Description
  4481.  00h    WORD    (call) 0011h (length of following results buffer)
  4482.  02h    BYTE    length of volume name
  4483.  03h 16 BYTEs    NUL-padded volume name
  4484. --------N-21E2--SF0A-------------------------
  4485. INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY
  4486.     AH = E2h subfn 0Ah
  4487.     DS:SI -> request buffer (see below)
  4488.     ES:DI -> reply buffer (see below)
  4489. Return: AL = status (00h,84h,98h,FCh) (see AH=E2h/SF=00h)
  4490. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4491.       Alloy NTNX
  4492. SeeAlso: AH=39h,AH=E2h/SF=0Bh,AH=E2h/SF=0Fh
  4493.  
  4494. Format of request buffer:
  4495. Offset    Size    Description
  4496.  00h    WORD    length of following data (max 103h)
  4497.  02h    BYTE    0Ah (subfunction "Create Directory")
  4498.  03h    BYTE    directory handle
  4499.  04h    BYTE    maximum directory rights (see AH=E2h/SF=01h)
  4500.  05h    BYTE    length of directory path (00h-FFh)
  4501.  06h  N BYTEs    directory path
  4502.  
  4503. Format of reply buffer:
  4504. Offset    Size    Description
  4505.  00h    WORD    (call) 0000h (no data returned)
  4506. --------N-21E2--SF0B-------------------------
  4507. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY
  4508.     AH = E2h subfn 0Bh
  4509.     DS:SI -> request buffer (see below)
  4510.     ES:DI -> reply buffer (see below)
  4511. Return: AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see AH=E2h/SF=00h)
  4512. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4513.       Alloy NTNX
  4514. SeeAlso: AH=3Ah,AH=E2h/SF=0Ah,AH=E2h/SF=0Fh
  4515.  
  4516. Format of request buffer:
  4517. Offset    Size    Description
  4518.  00h    WORD    length of following data (max 103h)
  4519.  02h    BYTE    0Bh (subfunction "Delete Directory")
  4520.  03h    BYTE    directory handle
  4521.  04h    BYTE    unused
  4522.  05h    BYTE    length of directory path (00h-FFh)
  4523.  06h  N BYTEs    directory path
  4524.  
  4525. Format of reply buffer:
  4526. Offset    Size    Description
  4527.  00h    WORD    (call) 0000h (no data returned)
  4528. --------N-21E2--SF0C-------------------------
  4529. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES
  4530.     AH = E2h subfn 0Ch
  4531.     DS:SI -> request buffer (see below)
  4532.     ES:DI -> reply buffer (see below)
  4533. Return: AL = status
  4534.         00h successful
  4535.         9Ch no more trustees
  4536. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4537. SeeAlso: AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  4538.  
  4539. Format of request buffer:
  4540. Offset    Size    Description
  4541.  00h    WORD    length of following data (max 103h)
  4542.  02h    BYTE    0Ch (subfunction "Scan Directory For Trustees")
  4543.  03h    BYTE    directory handle
  4544.  04h    BYTE    sequence number
  4545.         00h on first call, increment for each subsequent call
  4546.  05h    BYTE    length of directory path (00h-FFh)
  4547.  06h  N BYTEs    directory path
  4548.  
  4549. Format of reply buffer:
  4550. Offset    Size    Description
  4551.  00h    WORD    (call) 0031h (length of following results buffer)
  4552.  02h 16 BYTEs    directory name
  4553.  12h  4 BYTEs    date and time of creation
  4554.  16h    DWORD    object ID of owner (big-endian)
  4555.  1Ah  5 DWORDs    object IDs of Trustees 0 through 4 (big-endian)
  4556.         00000000h = end of group
  4557.  2Eh  5 BYTEs    directory rights for Trustees 0 through 4 (see AH=E2h/SF=03h)
  4558. --------N-21E2--SF0D-------------------------
  4559. INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY
  4560.     AH = E2h subfn 0Dh
  4561.     DS:SI -> request buffer (see below)
  4562.     ES:DI -> reply buffer (see below)
  4563. Return: AL = status (00h,8Ch,FCh) (see AH=E2h/SF=00h)
  4564. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4565.       Alloy NTNX
  4566. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  4567.  
  4568. Format of request buffer:
  4569. Offset    Size    Description
  4570.  00h    WORD    length of following data (max 107h)
  4571.  02h    BYTE    0Dh (subfunction "Add Trustee To Directory")
  4572.  03h    BYTE    directory handle
  4573.  04h    DWORD    object ID of trustee (big-endian)
  4574.  08h    BYTE    trustee directory rights (see AH=E2h/SF=01h)
  4575.  09h    BYTE    length of directory path (00h-FFh)
  4576.  0Ah  N BYTEs    directory path
  4577.  
  4578. Format of reply buffer:
  4579. Offset    Size    Description
  4580.  00h    WORD    (call) 0000h (no data returned)
  4581. --------N-21E2--SF0E-------------------------
  4582. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY
  4583.     AH = E2h subfn 0Eh
  4584.     DS:SI -> request buffer (see below)
  4585.     ES:DI -> reply buffer (see below)
  4586. Return: AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)
  4587. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4588.       Alloy NTNX
  4589. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh
  4590.  
  4591. Format of request buffer:
  4592. Offset    Size    Description
  4593.  00h    WORD    length of following data (max 107h)
  4594.  02h    BYTE    0Eh (subfunction "Delete Trustee From Directory")
  4595.  03h    BYTE    directory handle
  4596.  04h    DWORD    object ID of trustee (big-endian)
  4597.  08h    BYTE    unused
  4598.  09h    BYTE    length of directory path (00h-FFh)
  4599.  0Ah  N BYTEs    directory path
  4600.  
  4601. Format of reply buffer:
  4602. Offset    Size    Description
  4603.  00h    WORD    (call) 0000h (no data returned)
  4604. --------N-21E2--SF0F-------------------------
  4605. INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY
  4606.     AH = E2h subfn 0Fh
  4607.     DS:SI -> request buffer (see below)
  4608.     ES:DI -> reply buffer (see below)
  4609. Return: AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see AH=E2h/SF=00h)
  4610. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4611.       Alloy NTNX
  4612.     directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed
  4613. SeeAlso: AH=56h,AH=E2h/SF=0Ah,AH=E2h/SF=0Bh
  4614.  
  4615. Format of request buffer:
  4616. Offset    Size    Description
  4617.  00h    WORD    length of following data (max 111h)
  4618.  02h    BYTE    0Fh (subfunction "Rename Directory")
  4619.  03h    BYTE    directory handle
  4620.  04h    BYTE    length of directory path (00h-FFh)
  4621.  05h  N BYTEs    directory path
  4622.     BYTE    length of new directory name (01h-0Eh)
  4623.       N BYTEs    new directory name
  4624.  
  4625. Format of reply buffer:
  4626. Offset    Size    Description
  4627.  00h    WORD    (call) 0000h (no data returned)
  4628. --------N-21E2--SF10-------------------------
  4629. INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES
  4630.     AH = E2h subfn 10h
  4631.     DS:SI -> request buffer (see below)
  4632.     ES:DI -> reply buffer (see below)
  4633. Return: AL = status
  4634.         00h successful
  4635.         C6h no console rights
  4636. Desc:    purges files marked for deletion on the file server by the calling
  4637.       workstation
  4638. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4639.       Alloy NTNX
  4640. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=11h,AH=E3h/SF=CEh,AX=F244h
  4641.  
  4642. Format of request buffer:
  4643. Offset    Size    Description
  4644.  00h    WORD    0001h (length of following data)
  4645.  02h    BYTE    10h (subfunction "Purge Erased Files")
  4646.  
  4647. Format of reply buffer:
  4648. Offset    Size    Description
  4649.  00h    WORD    (call) 0000h (no results returned)
  4650. --------N-21E2--SF11-------------------------
  4651. INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE
  4652.     AH = E2h subfn 11h
  4653.     DS:SI -> request buffer (see below)
  4654.     ES:DI -> reply buffer (see below)
  4655. Return: AL = status
  4656.         00h successful
  4657.         98h nonexistent volume
  4658.         FFh no more erased files
  4659. Desc:    restores one file marked for deletion which has not yet been purged
  4660. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4661.       Alloy NTNX
  4662. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=10h,AH=E3h/SF=CEh,AX=F244h
  4663.  
  4664. Format of request buffer:
  4665. Offset    Size    Description
  4666.  00h    WORD    length of following data (max 13h)
  4667.  02h    BYTE    11h (subfunction "Restore Erased File")
  4668.  03h    BYTE    directory handle or 00h
  4669.  04h    BYTE    length of volume name
  4670.  05h  N BYTEs    volume name (including colon)
  4671. Note:    if both a directory handle and a volume name are specified, the volume
  4672.       name overrides the handle
  4673.  
  4674. Format of reply buffer:
  4675. Offset    Size    Description
  4676.  00h    WORD    (call) 001Eh (size of following results buffer)
  4677.  02h 15 BYTEs    ASCIZ name of erased file
  4678.  11h 15 BYTEs    ASCIZ name under which file was restored
  4679. --------N-21E2--SF12-------------------------
  4680. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE
  4681.     AH = E2h subfn 12h
  4682.     DS:SI -> request buffer (see below)
  4683.     ES:DI -> reply buffer (see below)
  4684. Return: AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)
  4685. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4686.       Alloy NTNX
  4687. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=13h,AH=E2h/SF=14h
  4688.  
  4689. Format of request buffer:
  4690. Offset    Size    Description
  4691.  00h    WORD    length of following data (max 103h)
  4692.  02h    BYTE    12h (subfunction "Alloc Permanent Directory Handle")
  4693.  03h    BYTE    directory handle
  4694.  04h    BYTE    drive ('A'-'Z')
  4695.  05h    BYTE    length of directory path
  4696.  06h  N BYTEs    directory path
  4697.  
  4698. Format of reply buffer:
  4699. Offset    Size    Description
  4700.  00h    WORD    (call) 0002h (size of following results buffer)
  4701.  02h    BYTE    new directory handle
  4702.  03h    BYTE    effective directory rights (see AH=E2h/SF=01h)
  4703. --------N-21E2--SF13-------------------------
  4704. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE
  4705.     AH = E2h subfn 13h
  4706.     DS:SI -> request buffer (see below)
  4707.     ES:DI -> reply buffer (see AH=E2h/SF=12h)
  4708. Return: AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)
  4709. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4710.       Alloy NTNX
  4711.     this call is the same as AH=E2h/SF=12h except that the directory handle
  4712.       will be automatically deallocated when the calling application
  4713.       executes an End of Job call (AH=D6h) or terminates
  4714. SeeAlso: AH=D6h,AH=E2h/SF=00h,AH=E2h/SF=12h,AH=E2h/SF=14h,AH=E2h/SF=16h
  4715.  
  4716. Format of request buffer:
  4717. Offset    Size    Description
  4718.  00h    WORD    length of following data (max 103h)
  4719.  02h    BYTE    13h (subfunction "Alloc Temporary Directory Handle")
  4720.  03h    BYTE    directory handle
  4721.  04h    BYTE    drive ('A'-'Z')
  4722.  05h    BYTE    length of directory path
  4723.  06h  N BYTEs    directory path
  4724. --------N-21E2--SF14-------------------------
  4725. INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE
  4726.     AH = E2h subfn 14h
  4727.     DS:SI -> request buffer (see below)
  4728.     ES:DI -> reply buffer (see below)
  4729. Return: AL = status (00h,9Bh) (see AH=E2h/SF=00h)
  4730. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4731.       Alloy NTNX
  4732. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=13h
  4733.  
  4734. Format of request buffer:
  4735. Offset    Size    Description
  4736.  00h    WORD    0002h (length of following data)
  4737.  02h    BYTE    14h (subfunction "Deallocate Directory Handle")
  4738.  03h    BYTE    directory handle
  4739.  
  4740. Format of reply buffer:
  4741. Offset    Size    Description
  4742.  00h    WORD    (call) 0000h (no returned data)
  4743. --------N-21E2--SF15-------------------------
  4744. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE
  4745.     AH = E2h subfn 15h
  4746.     DS:SI -> request buffer (see below)
  4747.     ES:DI -> reply buffer (see below)
  4748. Return: AL = status
  4749.         00h successful
  4750. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4751.       Alloy NTNX
  4752. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=06h,AH=E2h/SF=19h,AH=E3h/SF=E9h
  4753.  
  4754. Format of request buffer:
  4755. Offset    Size    Description
  4756.  00h    WORD    0002h (length of following data)
  4757.  02h    BYTE    15h (subfunction "Get Volume Info With Handle")
  4758.  03h    BYTE    directory handle
  4759.  
  4760. Format of reply buffer:
  4761. Offset    Size    Description
  4762.  00h    WORD    (call) 001Ch (length of following results buffer)
  4763.  02h    WORD    sectors per block (big-endian)
  4764.  04h    WORD    total blocks on volume (big-endian)
  4765.  06h    WORD    blocks available on volume (big-endian)
  4766.  08h    WORD    total directory slots  (big-endian)
  4767.  0Ah    WORD    directory slots available (big-endian)
  4768.  0Ch 16 BYTEs    NUL-padded volume name
  4769.  1Ch    WORD    flag: volume removable if nonzero (big-endian)
  4770. --------N-21E2--SF16-------------------------
  4771. INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE
  4772.     AH = E2h subfn 16h
  4773.     DS:SI -> request buffer (see below)
  4774.     ES:DI -> reply buffer
  4775. Return: AL = status
  4776. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX,
  4777.       but is not described in _NetWare_System_Calls--DOS_
  4778. SeeAlso: AH=E2h/SF=13h,AH=E2h/SF=14h
  4779.  
  4780. Format of request buffer:
  4781. Offset    Size    Description
  4782.  00h    WORD    length of following data
  4783.  02h    BYTE    16h (subfunction "Allocate Special Temporary Directory Handle")
  4784.     ???
  4785. --------N-21E2--SF17-------------------------
  4786. INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE
  4787.     AH = E2h subfn 17h
  4788.     DS:SI -> request buffer (see below)
  4789.     ES:DI -> reply buffer (see below)
  4790. Return: AL = status
  4791.         00h successful
  4792.         else network error code
  4793. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  4794. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  4795.  
  4796. Format of request buffer:
  4797. Offset    Size    Description
  4798.  00h    WORD    0002h (length of following data)
  4799.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  4800.  03h    BYTE    directory handle
  4801.  
  4802. Format of reply buffer:
  4803. Offset    Size    Description
  4804.  00h    WORD    (call) 0010h (length of following results buffer)
  4805.  02h 16    BYTEs    save buffer
  4806. --------N-21E2--SF18-------------------------
  4807. INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE
  4808.     AH = E2h subfn 18h
  4809.     DS:SI -> request buffer (see below)
  4810.     ES:DI -> reply buffer (see below)
  4811. Return: AL = status
  4812.         00h successful
  4813.         else network error code
  4814. Desc:    restore a previously saved directory handle to reproduce an executing
  4815.       environment, possibly on a different execution site
  4816. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  4817. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  4818.  
  4819. Format of request buffer:
  4820. Offset    Size    Description
  4821.  00h    WORD    0011h (length of following data)
  4822.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  4823.  03h 16 BYTEs    save buffer
  4824.  
  4825. Format of reply buffer:
  4826. Offset    Size    Description
  4827.  00h    WORD    (call) 0002h (length of following results buffer)
  4828.  02h    BYTE    new directory handle
  4829.  03h    BYTE    effective rights (see AH=E2h/SF=03h)
  4830. --------N-21E2--SF19-------------------------
  4831. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION
  4832.     AH = E2h subfn 19h
  4833.     DS:SI -> request buffer (see below)
  4834.     ES:DI -> reply buffer (see below)
  4835. Return: AL = status (00h,9Bh,9Ch) (see AH=E2h/SF=00h)
  4836. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4837. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=0Fh
  4838.  
  4839. Format of request buffer:
  4840. Offset    Size    Description
  4841.  00h    WORD    length of following data (max 10Bh)
  4842.  02h    BYTE    19h (subfunction "Set Directory Information")
  4843.  03h    BYTE    directory handle
  4844.  04h    DWORD    date and time of creation (big-endian)
  4845.  08h    DWORD    object ID of owner (big-endian)
  4846.  0Ch    BYTE    maximum directory rightes (see AH=E2h/SF=03h)
  4847.  0Dh    BYTE    length of directory path
  4848.  0Eh  N BYTEs    directory path
  4849.  
  4850. Format of reply buffer:
  4851. Offset    Size    Description
  4852.  00h    WORD    (call) 0000h (no results returned)
  4853. --------N-21E2--SF1A-------------------------
  4854. INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY
  4855.     AH = E2h subfn 1Ah
  4856.     DS:SI -> request buffer (see below)
  4857.     ES:DI -> reply buffer (see below)
  4858. Return: AL = status
  4859.         00h successful
  4860. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4861.       Alloy NTNX
  4862. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=06h,AH=E3h/SF=D7h
  4863.  
  4864. Format of request buffer:
  4865. Offset    Size    Description
  4866.  00h    WORD    0004h (length of following data)
  4867.  02h    BYTE    1Ah (subfunction "Get Path From Directory Entry")
  4868.  03h    BYTE    volume number (00h-1Fh)
  4869.  04h    WORD    directory entry number (big-endian)
  4870.  
  4871. Format of reply buffer:
  4872. Offset    Size    Description
  4873.  00h    WORD    (call) size of following results record (max 200h)
  4874.  02h 256 BYTEs    path
  4875. --------E-21E3-------------------------------
  4876. INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT
  4877.     AH = E3h
  4878.     AL = interrupt number
  4879.     ???
  4880. Return: ???
  4881. Note:    protected mode only???
  4882. SeeAlso: AH=E1h"OS/286",INT 31/AX=0300h
  4883. --------T-21E3-------------------------------
  4884. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  4885.     AH = E3h
  4886.     AL = character
  4887. Return: AL = 00h successful
  4888.          01h buffer full (128 characters)
  4889. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS"
  4890. SeeAlso: AH=F3h"DoubleDOS"
  4891. --------N-21E3-------------------------------
  4892. INT 21 - Novell NetWare - CONNECTION CONTROL
  4893.     AH = E3h
  4894.     DS:SI -> request buffer (see below)
  4895.     ES:DI -> reply buffer (see below)
  4896. Return: AL = status
  4897.         00h successful
  4898.         else error code
  4899. Note:    supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  4900. SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h
  4901.  
  4902. Format of request buffer:
  4903. Offset    Size    Description
  4904.  00h    WORD    length of following data
  4905.  02h    BYTE    subfunction number
  4906.         00h login
  4907.         01h change password
  4908.         02h map user to station set
  4909.         03h map object to number
  4910.         04h map number to object
  4911.         05h get station's logged information
  4912.         06h get station's root mask (obsolete)
  4913.         07h map group name to number
  4914.         08h map number to group name
  4915.         09h get memberset M of group G
  4916.     var    depends on subfunction
  4917. Notes:    the above subfunctions are not described in _NetWare_System_Calls--DOS_
  4918.     see separate entries below for other subfunctions
  4919.  
  4920. Format of reply buffer:
  4921. Offset    Size    Description
  4922.  00h    WORD    (call) length of following buffer space for results
  4923.     var    depends on subfunction
  4924.  
  4925. Format of object property:
  4926. Offset    Size    Description
  4927.  00h 1-16 BYTEs    property name
  4928.   N    BYTE    flags
  4929.         bit 0: property is dynamic
  4930.         bit 1: property is a set rather than an item
  4931.  N+1    BYTE    security levels (see below)
  4932.     ???
  4933.  
  4934. Names of well-known properties:
  4935.  ACCOUNT_BALANCE
  4936.  ACCOUNT_SERVERS
  4937.  GROUP_MEMBERS
  4938.  GROUPS_I'M_IN
  4939.  IDENTIFICATION        user's name
  4940.  LOGIN_CONTROL
  4941.  NET_ADDRESS
  4942.  OPERATORS
  4943.  PASSWORD
  4944.  SECURITY_EQUALS
  4945.  
  4946. Values for security levels:
  4947.  00h    "anyone" everyone may access
  4948.  01h    "logged" only logged-in clients may access
  4949.  02h    "object" only clients logged-in with object's name, type, and password
  4950.  03h    "supervisor" only clients logged-in with supervisor privileges
  4951.  04h    "NetWare" only NetWare may access
  4952. Note:    the above values are stored in a nybble; the high half-byte is write
  4953.       access and the low half-byte is read access
  4954.  
  4955. Values for object type:
  4956.  0000h    unknown
  4957.  0001h    user
  4958.  0002h    user group
  4959.  0003h    print queue
  4960.  0004h    file server
  4961.  0005h    job server
  4962.  0006h    gateway
  4963.  0007h    print server
  4964.  0008h    archive queue
  4965.  0009h    archive server
  4966.  000Ah    job queue
  4967.  000Bh    administration
  4968.  0026h    remote bridge server
  4969.  0047h    advertising print server
  4970.  0048h-8000h reserved
  4971.  FFFFh    wild (used only for finding objects)
  4972. --------N-21E3--SF0A-------------------------
  4973. INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA
  4974.     AH = E3h subfn 0Ah
  4975.     DS:SI -> request buffer (see below)
  4976.     ES:DI -> reply buffer (see below)
  4977. Return: AL = status
  4978.         00h successful
  4979. Desc:    change the login directory for the calling workstation
  4980. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4981.       Alloy NTNX
  4982. SeeAlso: AH=D7h,AH=E3h/SF=14h
  4983.  
  4984. Format of request buffer:
  4985. Offset    Size    Description
  4986.  00h    WORD    length of following data (max 102h)
  4987.  02h    BYTE    0Ah (subfunction "Enter Login Area")
  4988.  03h    BYTE    number of local drives
  4989.  04h    BYTE    length of subdirectory name (00h-FFh)
  4990.  05h  N BYTEs    name of subdirectory under SYS:LOGIN where to find the login
  4991.         utility
  4992.  
  4993. Format of reply buffer:
  4994. Offset    Size    Description
  4995.  00h    WORD    (call) 0000h (no data returned)
  4996. --------N-21E3--SF0C-------------------------
  4997. INT 21 U - Novell Netware - VERIFY NETWORK SERIAL NUMBER
  4998.     AH = E3h subfn 0Ch
  4999.     DS:SI -> request buffer (see below)
  5000.     ES:DI -> reply buffer (see below)
  5001. Return: AL = status
  5002.         00h successful
  5003. Note:    if the network serial number to be verified is correct, the reply
  5004.       buffer will contain the corresponding application number
  5005. SeeAlso: AH=E3h/SF=12h
  5006.  
  5007. Format of request buffer:
  5008. Offset    Size    Description
  5009.  00h    WORD    0005h (length of following data)
  5010.  02h    BYTE    0Ch (subfunction "Verify Network Serial Number")
  5011.  03h    DWORD    network serial number to verify (big-endian)
  5012.  
  5013. Format of reply buffer:
  5014. Offset    Size    Description
  5015.  00h    WORD    (call) 0002h (size of following results buffer)
  5016.  02h    WORD    application number (big-endian)
  5017. --------N-21E3--SF0D-------------------------
  5018. INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE
  5019.     AH = E3h subfn 0Dh
  5020.     DS:SI -> request buffer (see below)
  5021.     ES:DI -> reply buffer (see below)
  5022. Return: AL = status
  5023.         00h successful
  5024. Desc:    append a line to the default file server's NET$LOG.MSG file
  5025. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  5026.       Alloy NTNX
  5027. SeeAlso: AH=E1h/SF=09h
  5028.  
  5029. Format of request buffer:
  5030. Offset    Size    Description
  5031.  00h    WORD    length of following data (max 52h)
  5032.  02h    BYTE    0Dh (subfunction "Log Network Message")
  5033.  03h    BYTE    length of message (01h-50h)
  5034.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  5035. --------N-21E3--SF0E-------------------------
  5036. INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION
  5037.     AH = E3h subfn 0Eh
  5038.     DS:SI -> request buffer (see below)
  5039.     ES:DI -> reply buffer (see below)
  5040. Return: AL = status
  5041.         00h successful
  5042.         98h nonexistent volume
  5043.         F2h not permitted to read object
  5044. Notes:    this function is supported by Advanced NetWare 2.1+
  5045.     the caller must have bindery object read privileges
  5046. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  5047.  
  5048. Format of request buffer:
  5049. Offset    Size    Description
  5050.  00h    WORD    0005h (length of following data)
  5051.  02h    BYTE    0Eh (subfunction "Get Disk Utilization")
  5052.  03h    BYTE    volume number (00h-1Fh)
  5053.  04h    DWORD    object ID (big-endian)
  5054.  
  5055. Format of reply buffer:
  5056. Offset    Size    Description
  5057.  00h    WORD    (call) 000Bh (size of following results buffer)
  5058.  02h    BYTE    volume number (00h-1Fh)
  5059.  03h    DWORD    object ID (big-endian)
  5060.  07h    WORD    directories used by object (big-endian)
  5061.  09h    WORD    files created by object (big-endian)
  5062.  0Bh    WORD    disk blocks used by object-created files (big-endian)
  5063. --------N-21E3--SF0F-------------------------
  5064. INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION
  5065.     AH = E3h subfn 0Fh
  5066.     DS:SI -> request buffer (see below)
  5067.     ES:DI -> reply buffer (see below)
  5068. Return: AL = status
  5069.         00h successful
  5070.         89h not permitted to search directory
  5071.         FFh no more matching files
  5072. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5073. SeeAlso: AH=B6h,AH=E3h/SF=10h
  5074.  
  5075. Format of request buffer:
  5076. Offset    Size    Description
  5077.  00h    WORD    length of following data (max 105h)
  5078.  02h    BYTE    0Fh (subfunction "Scan File Information")
  5079.  03h    WORD    sequence number (big-endian)
  5080.         FFFFh on first call
  5081.  05h    BYTE    directory handle or 00h
  5082.  06h    BYTE    search attributes (see AX=4301h)
  5083.  07h    BYTE    length of filespec
  5084.  08h  N BYTEs    ASCIZ uppercase filespec
  5085.  
  5086. Format of reply buffer:
  5087. Offset    Size    Description
  5088.  00h    WORD    (call) 005Eh (size of following results buffer)
  5089.  02h    WORD    next sequence number (place in request buffer for next call)
  5090.  04h 14 BYTEs    ASCIZ filename
  5091.  12h    BYTE    file attributes (see AX=4301h for format)
  5092.  13h    BYTE    extended file attributes (see AH=B6h for format)
  5093.  14h    DWORD    file size in bytes (big-endian)
  5094.  18h    WORD    file's creation date (big-endian) (see AX=5700h for format)
  5095.  1Ah    WORD    date of last access (big-endian) (see AX=5700h for format)
  5096.  1Ch    DWORD    date and time of last update (big-endian) (see AH=E2h/SF=02h)
  5097.  20h    DWORD    object ID of owner (big-endian)
  5098.  24h    DWORD    date and time last archived (big-endian) (see AH=E2h/SF=02h)
  5099.  28h 55 BYTEs    reserved
  5100. Note:    the official documentation erroneously lists the field at offset 04h as
  5101.       15 bytes and thus shifts the remaining fields by one byte
  5102. --------N-21E3--SF10-------------------------
  5103. INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION
  5104.     AH = E3h subfn 10h
  5105.     DS:SI -> request buffer (see below)
  5106.     ES:DI -> reply buffer (see below)
  5107. Return: AL = status
  5108.         00h successful
  5109. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5110.     the caller must have modify privileges on the directory containing the
  5111.       file
  5112. SeeAlso: AH=B6h,AH=E3h/SF=0Fh
  5113.  
  5114. Format of request buffer:
  5115. Offset    Size    Description
  5116.  00h    WORD    length of following data (max 151h)
  5117.  02h    BYTE    10h (subfunction "Set File Information")
  5118.  03h    BYTE    file attributes (see AX=4301h for format)
  5119.  04h    BYTE    extended file attributes (see AH=B6h for format)
  5120.  05h  4 BYTEs    reserved
  5121.  09h    WORD    file's creation date (big-endian) (see AX=5700h for format) 
  5122.  0Bh    WORD    date of last access (big-endian) (see AX=5700h for format)
  5123.  0Dh    DWORD    date and time of last update (big-endian) (see AH=E2h/SF=02h)
  5124.  11h    DWORD    object ID of owner (big-endian)
  5125.  15h    DWORD    date and time last archived (big-endian) (see AH=E2h/SF=02h)
  5126.  19h 56 BYTEs    reserved
  5127.  51h    BYTE    directory handle or 00h
  5128.  52h    BYTE    search attributes (see AX=4301h for format)
  5129.  53h    BYTE    length of filename
  5130.  54h  N BYTEs    filename
  5131. Format of reply buffer:
  5132. Offset    Size    Description
  5133.  00h    WORD    (call) 0000h (no results returned)
  5134. --------N-21E3--SF11-------------------------
  5135. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION
  5136.     AH = E3h subfn 11h
  5137.     DS:SI -> request buffer (see below)
  5138.     ES:DI -> reply buffer (see below)
  5139. Return: AL = status
  5140.         00h successful
  5141. Desc:    determine the version of software installed on the file server and
  5142.       how it is configured
  5143. Note:    this function is supported by Advanced NetWare 2.1+
  5144. SeeAlso: AH=E3h/SF=0Eh,AE3h/SF=12h,AH=E3h/SF=CDh,AH=E3h/SF=D3h,AH=E3h/SF=E7h
  5145. SeeAlso: AH=E7h
  5146.  
  5147. Format of request buffer:
  5148. Offset    Size    Description
  5149.  00h    WORD    0001h (length of following data)
  5150.  02h    BYTE    11h (subfunction "Get File Server Information")
  5151.  
  5152. Format of reply buffer:
  5153. Offset    Size    Description
  5154.  00h    WORD    (call) 0080h (size of following results buffer)
  5155.  02h 48 BYTEs    server's name
  5156.  32h    BYTE    NetWare version
  5157.  33h    BYTE    NetWare subversion (0-99)
  5158.  34h    WORD    number of connections supported (big-endian)
  5159.  36h    WORD    number of connections in use (big-endian)
  5160.  38h    WORD    maximum connected volumes (big-endian)
  5161. ---Advanced NetWare 2.1+ ---
  5162.  3Ah    BYTE    operating system revision number
  5163.  3Bh    BYTE    fault tolerance (SFT) level
  5164.  3Ch    BYTE    TTS level
  5165.  3Dh    WORD    maximum simultaneously-used connections (big-endian)
  5166.  3Fh    BYTE    accounting version
  5167.  40h    BYTE    VAP version
  5168.  41h    BYTE    queueing version
  5169.  42h    BYTE    print server version
  5170.  43h    BYTE    virtual console version
  5171.  44h    BYTE    security restrictions level
  5172.  45h    BYTE    internetwork bridge version
  5173.  46h 60 BYTEs    reserved
  5174. --------N-21E3--SF12--------------------
  5175. INT 21 - Novell NetWare - GET SERIAL NUMBER
  5176.     AH = E3h subfn 12h
  5177.     DS:SI -> request buffer (see below)
  5178.     ES:DI -> reply buffer (see below)
  5179. Return: AL = status
  5180.         00h successful
  5181. Desc:    return the serial number and application number for the software
  5182.       installed on the file server
  5183. Note:    this function is supported by Advanced Netware 2.1+
  5184. SeeAlso: AH=E3h/SF=0Ch,AH=E3h/SF=11h
  5185.  
  5186. Format of request buffer:
  5187. offset     size    description
  5188.  00h     WORD    0001h (length of following data)
  5189.  02h     BYTE    12h (subfunction "Get Serial Number")
  5190.  
  5191. Format of reply buffer:
  5192. offset     size    description
  5193.  00h     WORD    (call) 0006h (size of following results buffer)
  5194.  02h   4 BYTEs    Netware software serial number (big-endian)
  5195.  06h   2 BYTEs    Netware software application number (big-endian)
  5196. --------N-21E3--SF13-------------------------
  5197. INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS
  5198.     AH = E3h subfn 13h
  5199.     DS:SI -> request buffer (see below)
  5200.     ES:DI -> reply buffer (see below)
  5201. Return: AL = status
  5202.         00h successful
  5203. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5204. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AH=EEh"NetWare"
  5205.  
  5206. Format of request buffer:
  5207. Offset    Size    Description
  5208.  00h    WORD    0002h (length of following data)
  5209.  02h    BYTE    13h (subfunction "Get Internet Address")
  5210.  03h    BYTE    logical connection number (01h-64h)
  5211.  
  5212. Format of reply buffer:
  5213. Offset    Size    Description
  5214.  00h    WORD    (call) 000Ch (length of following results buffer)
  5215.  02h  4 BYTEs    network number
  5216.  06h  6 BYTEs    physical node address
  5217.  0Ch  2 BYTEs    socket number
  5218. --------N-21E3--SF14-------------------------
  5219. INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER
  5220.     AH = E3h subfn 14h
  5221.     DS:SI -> request buffer (see below)
  5222.     ES:DI -> reply buffer (see below)
  5223. Return: AL = status
  5224.         00h successful
  5225. Desc:    this function retrieves a list indicating the connection numbers under
  5226.       which a bindery object is logged into the default file server
  5227. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5228. SeeAlso: AH=D7h"NetWare",AH=F1h"NetWare"
  5229.  
  5230. Format of request buffer:
  5231. Offset    Size    Description
  5232.  00h    WORD    length of following data (max B3h)
  5233.  02h    BYTE    14h (subfunction "Login To File Server")
  5234.  03h    WORD    type of object (big-endian)
  5235.  05h    BYTE    length of object's name (01h-2Fh)
  5236.  06h  N BYTEs    object's name
  5237.     BYTE    length of password
  5238.       N BYTEs    password
  5239.  
  5240. Format of reply buffer:
  5241. Offset    Size    Description
  5242.  00h    WORD    (call) 0000h (no data returned)
  5243. --------N-21E3--SF15-------------------------
  5244. INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION NUMBERS
  5245.     AH = E3h subfn 15h
  5246.     DS:SI -> request buffer (see below)
  5247.     ES:DI -> reply buffer (see below)
  5248. Return: AL = status
  5249.         00h successful
  5250. Desc:    this function retrieves a list indicating the connection numbers under
  5251.       which a bindery object is logged into the default file server
  5252. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5253. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h
  5254.  
  5255. Format of request buffer:
  5256. Offset    Size    Description
  5257.  00h    WORD    length of following data (max 33h)
  5258.  02h    BYTE    15h (subfunction "Get Object Connection Numbers")
  5259.  03h    WORD    type of object (big-endian)
  5260.  05h    BYTE    length of object's name (01h-2Fh)
  5261.  06h  N BYTEs    object's name
  5262.  
  5263. Format of reply buffer:
  5264. Offset    Size    Description
  5265.  00h    WORD    (call) length of following results buffer (max 65h)
  5266.  02h    BYTE    number of connections
  5267.  03h  N BYTEs    connection list
  5268. --------N-21E3--SF16-------------------------
  5269. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION
  5270.     AH = E3h subfn 16h
  5271.     DS:SI -> request buffer (see below)
  5272.     ES:DI -> reply buffer (see below)
  5273. Return: AL = status
  5274.         00h successful
  5275. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5276. SeeAlso: AH=D7h,AH=DCh"NetWare",AH=E3h/SF=14h
  5277.  
  5278. Format of request buffer:
  5279. Offset    Size    Description
  5280.  00h    WORD    0002h (length of following data)
  5281.  02h    BYTE    16h (subfunction "Get Connection Information")
  5282.  03h    BYTE    logical connection number (01h-64h)
  5283.  
  5284. Format of reply buffer:
  5285. Offset    Size    Description
  5286.  00h    WORD    (call) 003Eh (length of following results buffer)
  5287.  02h    DWORD    object ID for object logged in on the connection (big-endian)
  5288.         00000000h if no object logged in
  5289.  06h    WORD    type of object (big-endian)
  5290.  08h 48 BYTEs    name of object
  5291.  38h  7 BYTEs    login time (see below)
  5292. Note:    much of the Novell documentation incorrectly states the reply buffer
  5293.       length as 3Dh (62) instead of 3Eh (63)
  5294.  
  5295. Format of login time:
  5296. Offset    Size    Description
  5297.  00h    BYTE    year (80-99 = 1980-1999, 00-79 = 2000-2079)
  5298.  01h    BYTE    month (1-12)
  5299.  02h    BYTE    day (1-31)
  5300.  03h    BYTE    hour (0-23)
  5301.  04h    BYTE    minute (0-59)
  5302.  05h    BYTE    second (0-59)
  5303.  06h    BYTE    day of week (0 = Sunday)
  5304. --------N-21E3--SF32-------------------------
  5305. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT
  5306.     AH = E3h subfn 32h
  5307.     DS:SI -> request buffer (see below)
  5308.     ES:DI -> reply buffer (see below)
  5309. Return: AL = status (see below)
  5310. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5311. SeeAlso: AH=E3h/SF=33h,AH=E3h/SF=34h,AH=E3h/SF=38h,AH=E3h/SF=39h
  5312.  
  5313. Values for status:
  5314.  00h successful
  5315.  96h server out of memory
  5316.  EEh object already exists
  5317.  EFh invalid name
  5318.  F0h wildcard not allowed
  5319.  F1h invalid bindery security level
  5320.  F3h not permitted to rename object
  5321.  F4h not permitted to delete objects
  5322.  F5h not permitted to create objects
  5323.  FCh no such object
  5324.  FEh server bindery locked
  5325.  FFh bindery failure
  5326.  
  5327. Format of request buffer:
  5328. Offset    Size    Description
  5329.  00h    WORD    length of following data (max 35h)
  5330.  02h    BYTE    32h (subfunction "Create Bindery Object")
  5331.  03h    BYTE    object flag
  5332.         00h static
  5333.         01h dynamic
  5334.  04h    BYTE    object security levels
  5335.  05h    WORD    type of object (big-endian)
  5336.  07h    BYTE    length of object's name
  5337.  08h  N BYTEs    object's name
  5338.  
  5339. Format of reply buffer:
  5340. Offset    Size    Description
  5341.  00h    WORD    0000h (no data returned)
  5342. --------N-21E3--SF33-------------------------
  5343. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT
  5344.     AH = E3h subfn 33h
  5345.     DS:SI -> request buffer (see below)
  5346.     ES:DI -> reply buffer (see below)
  5347. Return: AL = status (see AH=E3h/SF=32h)
  5348. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5349. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=34h
  5350.  
  5351. Format of request buffer:
  5352. Offset    Size    Description
  5353.  00h    WORD    length of following data (max 33h)
  5354.  02h    BYTE    33h (subfunction "Delete Bindery Object")
  5355.  03h    WORD    type of object (big-endian)
  5356.  05h    BYTE    length of object's name (01h-2Fh)
  5357.  06h  N BYTEs    object's name
  5358.  
  5359. Format of reply buffer:
  5360. Offset    Size    Description
  5361.  00h    WORD    (call) 0000h (no data returned)
  5362. --------N-21E3--SF34-------------------------
  5363. INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT
  5364.     AH = E3h subfn 34h
  5365.     DS:SI -> request buffer (see below)
  5366.     ES:DI -> reply buffer (see below)
  5367. Return: AL = status (see AH=E3h/SF=32h)
  5368. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5369. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h
  5370.  
  5371. Format of request buffer:
  5372. Offset    Size    Description
  5373.  00h    WORD    length of following data (max 63h)
  5374.  02h    BYTE    34h (subfunction "Rename Bindery Object")
  5375.  03h    WORD    type of object (big-endian)
  5376.  05h    BYTE    length of object's name (01h-2Fh)
  5377.  06h  N BYTEs    object's name
  5378.     BYTE    length of new name (01h-2Fh)
  5379.       N BYTEs    new name
  5380.  
  5381. Format of reply buffer:
  5382. Offset    Size    Description
  5383.  00h    WORD    (call) 0000h (no data returned)
  5384. --------N-21E3--SF35-------------------------
  5385. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID
  5386.     AH = E3h subfn 35h
  5387.     DS:SI -> request buffer (see below)
  5388.     ES:DI -> reply buffer (see below)
  5389. Return: AL = status
  5390.         00h successful
  5391.         96h server out of memory
  5392.         FCh no such object
  5393.         FEh    server bindery locked
  5394.         FFh    bindery failure
  5395. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5396.     the requesting workstation must be logged into the file server with
  5397.       read access to the bindery object
  5398. SeeAlso: AH=E3h/SF=36h,AH=E3h/SF=44h
  5399.  
  5400. Format of request buffer:
  5401. Offset    Size    Description
  5402.  00h    WORD    length of following data (max 33h)
  5403.  02h    BYTE    35h (subfunction "Get Bindery Object ID")
  5404.  03h    WORD    type of object (big-endian)
  5405.  05h    BYTE    length of object's name
  5406.  06h  N BYTEs    object's name
  5407.  
  5408. Format of reply buffer:
  5409. Offset    Size    Description
  5410.  00h    WORD    (call) 0036h (length of following buffer space)
  5411.  02h    DWORD    object ID (big-endian)
  5412.  06h    WORD    type of object (big-endian)
  5413.  08h 48 BYTEs    object name
  5414. --------N-21E3--SF36-------------------------
  5415. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME
  5416.     AH = E3h subfn 36h
  5417.     DS:SI -> request buffer (see below)
  5418.     ES:DI -> reply buffer (see below)
  5419. Return: AL = status (see below)
  5420. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5421.     the requesting workstation must be logged into the file server with
  5422.       read access to the bindery object
  5423. SeeAlso: AH=E3h/SF=35h,AH=E3h/SF=44h
  5424.  
  5425. Values for status:
  5426.  00h successful
  5427.  96h server out of memory
  5428.  EFh invalid name
  5429.  F0h wildcard not allowed
  5430.  FCh no such object
  5431.  FEh server bindery locked
  5432.  FFh bindery failure
  5433.  
  5434. Format of request buffer:
  5435. Offset    Size    Description
  5436.  00h    WORD    0005h (length of following data)
  5437.  02h    BYTE    36h (subfunction "Get Bindery Object Name")
  5438.  03h    DWORD    object ID (big-endian)
  5439.  
  5440. Format of reply buffer:
  5441. Offset    Size    Description
  5442.  00h    WORD    (call) 0036h (length of following buffer space)
  5443.  02h    DWORD    object ID (big-endian)
  5444.  06h    WORD    type of object (big-endian)
  5445.  08h 48 BYTEs    object name
  5446. --------N-21E3--SF37-------------------------
  5447. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT
  5448.     AH = E3h subfn 37h
  5449.     DS:SI -> request buffer (see below)
  5450.     ES:DI -> reply buffer (see below)
  5451. Return: AL = status (see AH=E3h/SF=36h)
  5452. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5453.     the requesting workstation must be logged into the file server with
  5454.       read access to the bindery object
  5455. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AH=E3h/SF=38h,AH=E3h/SF=3Ch
  5456.  
  5457. Format of request buffer:
  5458. Offset    Size    Description
  5459.  00h    WORD    length of following data (max 37h)
  5460.  02h    BYTE    37h (subfunction "Scan Bindery Object")
  5461.  03h    DWORD    last object ID (big-endian)
  5462.  07h    WORD    type of object (big-endian)
  5463.  09h    BYTE    length of object's name
  5464.  0Ah  N BYTEs    object's name
  5465.  
  5466. Format of reply buffer:
  5467. Offset    Size    Description
  5468.  00h    WORD    (call) 0039h (length of following buffer space)
  5469.  02h    DWORD    object ID (big-endian)
  5470.         FFFFFFFFh for first call
  5471.  06h    WORD    type of object (big-endian)
  5472.  08h    BYTE    length of object's name (01h-2Fh)
  5473.  09h  N BYTEs    object name
  5474.     BYTE    object flag (00h static, 01h dynamic)
  5475.     BYTE    object's security levels
  5476.     BYTE    object properties flag (00h no, FFh yes)
  5477. --------N-21E3--SF38-------------------------
  5478. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY
  5479.     AH = E3h subfn 38h
  5480.     DS:SI -> request buffer (see below)
  5481.     ES:DI -> reply buffer (see below)
  5482. Return: AL = status
  5483.         00h successful
  5484.         96h server out of memory
  5485.         F0h    wildcard not allowed
  5486.         F1h invalid bindery security level
  5487.         FBh    no such property
  5488.         FCh    no such object
  5489.         FEh    server bindery locked
  5490.         FFh    bindery failure
  5491. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5492. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  5493.  
  5494. Format of request buffer:
  5495. Offset    Size    Description
  5496.  00h    WORD    length of following data (max 34h)
  5497.  02h    BYTE    38h (subfunction "Change Bindery Object Security")
  5498.  03h    BYTE    new security levels
  5499.  04h    WORD    type of object (big-endian)
  5500.  06h    BYTE    length of object's name (01h-2Fh)
  5501.  07h  N BYTEs    object name
  5502.  
  5503. Format of reply buffer:
  5504. Offset    Size    Description
  5505.  00h    WORD    (call) 0000h (no data returned)
  5506. --------N-21E3--SF39-------------------------
  5507. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY
  5508.     AH = E3h subfn 39h
  5509.     DS:SI -> request buffer (see below)
  5510.     ES:DI -> reply buffer (see below)
  5511. Return: AL = status (see below)
  5512. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5513. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  5514.  
  5515. Values for status:
  5516.  00h successful
  5517.  96h server out of memory
  5518.  EDh property already exists
  5519.  EFh invalid name
  5520.  F0h wildcard not allowed
  5521.  F1h invalid bindery security level
  5522.  F6h not permitted to delete properties
  5523.  F7h not permitted to create properties
  5524.  FBh no such property
  5525.  FCh no such object
  5526.  FEh server bindery locked
  5527.  FFh bindery failure
  5528.  
  5529. Format of request buffer:
  5530. Offset    Size    Description
  5531.  00h    WORD    length of following data (max 45h)
  5532.  02h    BYTE    39h (subfunction "Create Property")
  5533.  03h    WORD    type of object (big-endian)
  5534.  05h    BYTE    length of object's name (01h-2Fh)
  5535.  06h  N BYTEs    object's name
  5536.     BYTE    property flags
  5537.     BYTE    property security levels
  5538.     BYTE    length of property's name (01h-0Fh)
  5539.       N BYTEs    property's name
  5540.  
  5541. Format of reply buffer:
  5542. Offset    Size    Description
  5543.  00h    WORD    (call) 0000h (no data returned)
  5544. --------N-21E3--SF3A-------------------------
  5545. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY
  5546.     AH = E3h subfn 3Ah
  5547.     DS:SI -> request buffer (see below)
  5548.     ES:DI -> reply buffer (see below)
  5549. Return: AL = status (see AH=E3h/SF=39h)
  5550. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5551. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=39h
  5552.  
  5553. Format of request buffer:
  5554. Offset    Size    Description
  5555.  00h    WORD    length of following data (max 43h)
  5556.  02h    BYTE    3Ah (subfunction "Delete Property")
  5557.  03h    WORD    type of object (big-endian)
  5558.  05h    BYTE    length of object's name (01h-2Fh)
  5559.  06h  N BYTEs    object's name
  5560.     BYTE    length of property's name (01h-0Fh)
  5561.       N BYTEs    property's name
  5562.  
  5563. Format of reply buffer:
  5564. Offset    Size    Description
  5565.  00h    WORD    (call) 0000h (no data returned)
  5566. --------N-21E3--SF3B-------------------------
  5567. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY
  5568.     AH = E3h subfn 3Bh
  5569.     DS:SI -> request buffer (see below)
  5570.     ES:DI -> reply buffer (see below)
  5571. Return: AL = status
  5572.         00h successful
  5573.         96h server out of memory
  5574.         F0h    wildcard not allowed
  5575.         F1h invalid bindery security level
  5576.         FBh    no such property
  5577.         FCh    no such object
  5578.         FEh    server bindery locked
  5579.         FFh    bindery failure
  5580. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5581. SeeAlso: AH=E3h/SF=38h
  5582.  
  5583. Format of request buffer:
  5584. Offset    Size    Description
  5585.  00h    WORD    length of following data (max 44h)
  5586.  02h    BYTE    3Bh (subfunction "Change Property Security")
  5587.  03h    WORD    type of object (big-endian)
  5588.  05h    BYTE    length of object's name (01h-2Fh)
  5589.  06h  N BYTEs    object name
  5590.     BYTE    new property security levels
  5591.     BYTE    length of property's name
  5592.       N BYTEs    property name
  5593.  
  5594. Format of reply buffer:
  5595. Offset    Size    Description
  5596.  00h    WORD    (call) 0000h (no data returned)
  5597. --------N-21E3--SF3C-------------------------
  5598. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY
  5599.     AH = E3h subfn 3Ch
  5600.     DS:SI -> request buffer (see below)
  5601.     ES:DI -> reply buffer (see below)
  5602. Return: AL = status
  5603.         00h successful
  5604.         96h server out of memory
  5605.         F0h    wildcard not allowed
  5606.         F1h invalid bindery security level
  5607.         FBh    no such property
  5608.         FCh    no such object
  5609.         FEh    server bindery locked
  5610.         FFh    bindery failure
  5611. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5612. SeeAlso: AH=E3h/SF=37h,AH=E3h/SF=3Bh
  5613.  
  5614. Format of request buffer:
  5615. Offset    Size    Description
  5616.  00h    WORD    length of following data (max 47h)
  5617.  02h    BYTE    3Ch (subfunction "Scan Property")
  5618.  03h    WORD    type of object (big-endian)
  5619.  05h    BYTE    length of object's name (01h-2Fh)
  5620.  06h  N BYTEs    object name
  5621.     DWORD    sequence number (big-endian)
  5622.         FFFFFFFFh for first call
  5623.     BYTE    length of property's name (01h-0Fh)
  5624.       N BYTEs    property's name
  5625.  
  5626. Format of reply buffer:
  5627. Offset    Size    Description
  5628.  00h    WORD    (call) 0018h (length of following results buffer)
  5629.  02h 16 BYTEs    property name
  5630.  12h    BYTE    property flags
  5631.  13h    BYTE    property security levels
  5632.  14h    DWORD    sequence number (big-endian)
  5633.  18h    BYTE    property value flag (00h no, FFh yes)
  5634.  19h    BYTE    more properties (00h no, FFh yes)
  5635. --------N-21E3--SF3D-------------------------
  5636. INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE
  5637.     AH = E3h subfn 3Dh
  5638.     DS:SI -> request buffer (see below)
  5639.     ES:DI -> reply buffer (see below)
  5640. Return: AL = status (see below)
  5641. Desc:    retrieve one 128-byte segment of the specified property's value
  5642. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5643. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  5644.  
  5645. Values for status:
  5646.  00h successful
  5647.  96h server out of memory
  5648.  E8h not item property
  5649.  ECh no such segment
  5650.  F0h wildcard not allowed
  5651.  F1h invalid bindery security level
  5652.  F8h not permitted to write property
  5653.  F9h not permitted to read property
  5654.  FBh no such property
  5655.  FCh no such object
  5656.  FEh server bindery locked
  5657.  FFh bindery failure
  5658.  
  5659. Format of request buffer:
  5660. Offset    Size    Description
  5661.  00h    WORD    length of following data (max 44h)
  5662.  02h    BYTE    3Dh (subfunction "Read Property Value")
  5663.  03h    WORD    type of object (big-endian)
  5664.  05h    BYTE    length of object's name (01h-2Fh)
  5665.  06h  N BYTEs    object name
  5666.     BYTE    segment number (01h on first call, increment until done)
  5667.     BYTE    length of property's name (01h-0Fh)
  5668.       N BYTEs    property name
  5669.  
  5670. Format of reply buffer:
  5671. Offset    Size    Description
  5672.  00h    WORD    (call) 0082h (length of following results buffer)
  5673.  02h 128 BYTEs    property's value
  5674.  82h    BYTE    more segments (00h no, FFh yes)
  5675.  83h    BYTE    property's flags
  5676. --------N-21E3--SF3E-------------------------
  5677. INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE
  5678.     AH = E3h subfn 3Eh
  5679.     DS:SI -> request buffer (see below)
  5680.     ES:DI -> reply buffer (see below)
  5681. Return: AL = status (see AH=E3h/SF=3Dh)
  5682. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5683. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  5684.  
  5685. Format of request buffer:
  5686. Offset    Size    Description
  5687.  00h    WORD    length of following data (max C5h)
  5688.  02h    BYTE    3Eh (subfunction "Write Property Value")
  5689.  03h    WORD    type of object (big-endian)
  5690.  05h    BYTE    length of object's name (01h-2Fh)
  5691.  06h  N BYTEs    object name
  5692.     BYTE    segment number (01h on first call, increment until done)
  5693.     BYTE    erase remaining segments (00h no, FFh yes)
  5694.     BYTE    length of property's name (01h-0Fh)
  5695.       N BYTEs    property name
  5696.     128 BYTEs    property value segment
  5697.  
  5698. Format of reply buffer:
  5699. Offset    Size    Description
  5700.  00h    WORD    (call) 0000h (no data returned)
  5701. --------N-21E3--SF3F-------------------------
  5702. INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD
  5703.     AH = E3h subfn 3Fh
  5704.     DS:SI -> request buffer (see below)
  5705.     ES:DI -> reply buffer (see below)
  5706. Return: AL = status (see below)
  5707. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5708. SeeAlso: AH=E3h/SF=40h
  5709.  
  5710. Values for status:
  5711.  00h successful
  5712.  96h server out of memory
  5713.  F0h wildcard not allowed
  5714.  FBh no such property
  5715.  FCh no such object
  5716.  FEh server bindery locked
  5717.  FFh bindery failure: no such object, bad password, no password for object,
  5718.              or invalid old password
  5719.  
  5720. Format of request buffer:
  5721. Offset    Size    Description
  5722.  00h    WORD    length of following data (max 133h)
  5723.  02h    BYTE    3Fh (subfunction "Verify Bindery Object Password")
  5724.  03h    WORD    type of object (big-endian)
  5725.  05h    BYTE    length of object's name (01h-2Fh)
  5726.  06h  N BYTEs    object name
  5727.     BYTE    length of password (00h-7Fh)
  5728.       N BYTEs    password
  5729.  
  5730. Format of reply buffer:
  5731. Offset    Size    Description
  5732.  00h    WORD    (call) 0000h (no data returned)
  5733. --------N-21E3--SF40-------------------------
  5734. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD
  5735.     AH = E3h subfn 40h
  5736.     DS:SI -> request buffer (see below)
  5737.     ES:DI -> reply buffer (see below)
  5738. Return: AL = status (see AH=E3h/SF=3Fh)
  5739. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5740. SeeAlso: AH=E3h/SF=3Fh,AH=E3h/SF=41h
  5741.  
  5742. Format of request buffer:
  5743. Offset    Size    Description
  5744.  00h    WORD    length of following data (max 133h)
  5745.  02h    BYTE    40h (subfunction "Change Bindery Object Password")
  5746.  03h    WORD    type of object (big-endian)
  5747.  05h    BYTE    length of object's name (01h-2Fh)
  5748.  06h  N BYTEs    object name
  5749.     BYTE    length of old password (00h-7Fh)
  5750.       N BYTEs    old password
  5751.     BYTE    length of new password (00h-7Fh)
  5752.       N BYTEs    new password
  5753.  
  5754. Format of reply buffer:
  5755. Offset    Size    Description
  5756.  00h    WORD    (call) 0000h (no data returned)
  5757. --------N-21E3--SF41-------------------------
  5758. INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET
  5759.     AH = E3h subfn 41h
  5760.     DS:SI -> request buffer (see below)
  5761.     ES:DI -> reply buffer (see below)
  5762. Return: AL = status (see below)
  5763. Desc:    add the specified object to a set property
  5764. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5765. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  5766.  
  5767. Values for status:
  5768.  00h successful
  5769.  96h server out of memory
  5770.  E9h member already exists
  5771.  EAh member does not exist
  5772.  EBh not a group property
  5773.  F0h wildcard not allowed
  5774.  F8h can't write property
  5775.  F9h not permitted to read property
  5776.  FBh no such property
  5777.  FCh no such object
  5778.  FEh server bindery locked
  5779.  FFh bindery failure
  5780.  
  5781. Format of request buffer:
  5782. Offset    Size    Description
  5783.  00h    WORD    length of following data (max 75h)
  5784.  02h    BYTE    41h (subfunction "Add Bindery Object to Set")
  5785.  03h    WORD    type of object (big-endian)
  5786.  05h    BYTE    length of object's name
  5787.  06h  N BYTEs    object name
  5788.     BYTE    length of property name (01h-0Fh)
  5789.       N BYTEs    property name
  5790.     WORD    type of member object (big-endian)
  5791.     BYTE    length of member object's name
  5792.       N BYTEs    member object's name
  5793.  
  5794. Format of reply buffer:
  5795. Offset    Size    Description
  5796.  00h    WORD    (call) 0000h (no data returned)
  5797. --------N-21E3--SF42-------------------------
  5798. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET
  5799.     AH = E3h subfn 42h
  5800.     DS:SI -> request buffer (see below)
  5801.     ES:DI -> reply buffer (see below)
  5802. Return: AL = status (see AH=E3h/SF=41h)
  5803. Desc:    delete the specified object from a set property
  5804. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5805. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  5806.  
  5807. Format of request buffer:
  5808. Offset    Size    Description
  5809.  00h    WORD    length of following data (max 75h)
  5810.  02h    BYTE    42h (subfunction "Delete Bindery Object from Set")
  5811.  03h    WORD    type of object (big-endian)
  5812.  05h    BYTE    length of object's name
  5813.  06h  N BYTEs    object name
  5814.     BYTE    length of property name (01h-0Fh)
  5815.       N BYTEs    property name
  5816.     WORD    type of member object (big-endian)
  5817.     BYTE    length of member object's name
  5818.       N BYTEs    member object's name
  5819.  
  5820. Format of reply buffer:
  5821. Offset    Size    Description
  5822.  00h    WORD    (call) 0000h (no data returned)
  5823. --------N-21E3--SF43-------------------------
  5824. INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET
  5825.     AH = E3h subfn 43h
  5826.     DS:SI -> request buffer (see below)
  5827.     ES:DI -> reply buffer (see below)
  5828. Return: AL = status (see AH=E3h/SF=41h)
  5829. Desc:    determine whether the specified object is a member of the given set
  5830.       property
  5831. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5832.     the caller must have read access to the property
  5833. SeeAlso: AH=E3h/SF=41h,AH=E3h/SF=42h
  5834.  
  5835. Format of request buffer:
  5836. Offset    Size    Description
  5837.  00h    WORD    length of following data (max 75h)
  5838.  02h    BYTE    43h (subfunction "Is Bindery Object In Set")
  5839.  03h    WORD    type of object (big-endian)
  5840.  05h    BYTE    length of object's name
  5841.  06h  N BYTEs    object's name
  5842.     BYTE    length of property's name
  5843.       N BYTEs    property's name
  5844.     WORD    type of member object (big-endian)
  5845.     BYTE    length of member object's name
  5846.       N BYTEs    member object's name
  5847.  
  5848. Format of reply buffer:
  5849. Offset    Size    Description
  5850.  00h    WORD    (call) 0000h (no data returned)
  5851. --------N-21E3--SF44-------------------------
  5852. INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY
  5853.     AH = E3h subfn 44h
  5854.     DS:SI -> request buffer (see below)
  5855.     ES:DI -> reply buffer (see below)
  5856. Return: AL = status
  5857.         00h successful
  5858. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5859. SeeAlso: AH=E3h/SF=45h
  5860.  
  5861. Format of request buffer:
  5862. Offset    Size    Description
  5863.  00h    WORD    0001h (length of following data)
  5864.  02h    BYTE    44h (subfunction "Close Bindery")
  5865.  
  5866. Format of reply buffer:
  5867. Offset    Size    Description
  5868.  00h    WORD    (call) 0000h (no data returned)
  5869. --------N-21E3--SF45-------------------------
  5870. INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY
  5871.     AH = E3h subfn 45h
  5872.     DS:SI -> request buffer (see below)
  5873.     ES:DI -> reply buffer (see below)
  5874. Return: AL = status
  5875.         00h successful
  5876. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5877.     the bindery may only be opened by the supervisor or an object with
  5878.       equivalent privileges
  5879. SeeAlso: AH=E3h/SF=44h
  5880.  
  5881. Format of request buffer:
  5882. Offset    Size    Description
  5883.  00h    WORD    0001h (length of following data)
  5884.  02h    BYTE    45h (subfunction "Open Bindery")
  5885.  
  5886. Format of reply buffer:
  5887. Offset    Size    Description
  5888.  00h    WORD    (call) 0000h (no data returned)
  5889. --------N-21E3--SF46-------------------------
  5890. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL
  5891.     AH = E3h subfn 46h
  5892.     DS:SI -> request buffer (see below)
  5893.     ES:DI -> reply buffer (see below)
  5894. Return: AL = status
  5895.         00h successful
  5896. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5897.  
  5898. Format of request buffer:
  5899. Offset    Size    Description
  5900.  00h    WORD    0001h (length of following data)
  5901.  02h    BYTE    46h (subfunction "Get Bindery Access Level")
  5902.  
  5903. Format of reply buffer:
  5904. Offset    Size    Description
  5905.  00h    WORD    0005h (length of following buffer)
  5906.  02h    BYTE    security levels
  5907.  03h    DWORD    object ID (big-endian)
  5908. --------N-21E3--SF47-------------------------
  5909. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS
  5910.     AH = E3h subfn 47h
  5911.     DS:SI -> request buffer (see below)
  5912.     ES:DI -> reply buffer (see below)
  5913. Return: AL = status
  5914.         00h successful
  5915.         96h server out of memory
  5916.         F0h wildcard not allowed
  5917.         F1h invalid bindery security level
  5918.         FCh no such object
  5919.         FEh server bindery locked
  5920.         FFh bindery failure
  5921. Desc:    iterate through the directories to which an object is a trustee
  5922. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5923. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AH=E2h/SF=0Eh
  5924.  
  5925. Format of request buffer:
  5926. Offset    Size    Description
  5927.  00h    WORD    0008h (length of following data)
  5928.  02h    BYTE    47h (subfunction "Scan Bindery Object Trustee Paths")
  5929.  03h    BYTE    volume number (00h-1Fh)
  5930.  04h    WORD    last sequence number (big-endian)
  5931.         00h on first call
  5932.  06h    DWORD    object ID (big-endian)
  5933.  
  5934. Format of reply buffer:
  5935. Offset    Size    Description
  5936.  00h    WORD    (call) length of following results buffer (max 107h)
  5937.  02h    WORD    next sequence number (big-endian)
  5938.  04h    DWORD    object ID (big-endian)
  5939.  08h    BYTE    trustee directory rights (see AH=E2h/SF=03h)
  5940.  09h    BYTE    length fo trustee path
  5941.  0Ah  N BYTEs    trustee path
  5942. --------N-21E3--SF64-------------------------
  5943. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE
  5944.     AH = E3h subfn 64h
  5945.     DS:SI -> request buffer (see below)
  5946.     ES:DI -> reply buffer (see below)
  5947. Return: AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh)
  5948.         (see below)
  5949. Notes:    this function is supported by Advanced NetWare 2.1+
  5950.     caller must be on a workstation with supervisor privileges
  5951. SeeAlso: AH=E3h/SF=65h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Bh
  5952.  
  5953. Values for status:
  5954.  00h    successful
  5955.  96h    server out of memory
  5956.  99h    directory full
  5957.  9Bh    invalid directory handle
  5958.  9Ch    invalid path
  5959.  D0h    queue error
  5960.  D1h    no such queue
  5961.  D2h    no server for queue
  5962.  D3h    no queue rights
  5963.  D4h    queue full
  5964.  D5h    no queue job
  5965.  D6h    no job rights
  5966.  D7h    queue servicing error
  5967.  D9h    station is not a server
  5968.  DAh    queue halted
  5969.  DBh    too many queue servers
  5970.  EDh    property already exists
  5971.  EEh    object already exists
  5972.  EFh    invalid name
  5973.  F0h    wildcard not allowed
  5974.  F1h    invalid bindery security level
  5975.  F5h    not permitted to create object
  5976.  F7h    not permitted to create property
  5977.  FCh    no such object
  5978.  FEh    server bindery locked
  5979.  FFh    bindery failure
  5980.  
  5981. Format of request buffer:
  5982. Offset    Size    Description
  5983.  00h    WORD    length of following data (max ABh)
  5984.  02h    BYTE    64h (subfunction "Create Queue")
  5985.  03h    WORD    queue type (big-endian)
  5986.  05h    BYTE    length of queue's name (01h-2Fh)
  5987.  06h  N BYTEs    queue's name
  5988.     BYTE    directory handle or 00h
  5989.     BYTE    length of path name (01h-76h)
  5990.       N BYTEs    path name of directory in which to create queue subdirectory
  5991.  
  5992. Format of reply buffer:
  5993. Offset    Size    Description
  5994.  00h    WORD    (call) 0004h (size of following results buffer)
  5995.  02h    DWORD    object ID of queue (big-endian)
  5996. --------N-21E3--SF65-------------------------
  5997. INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE
  5998.     AH = E3h subfn 65h
  5999.     DS:SI -> request buffer (see below)
  6000.     ES:DI -> reply buffer (see below)
  6001. Return: AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h)
  6002.         FFh hardware failure
  6003. Desc:    abort all active jobs, detach all job servers, remove all job entries,
  6004.       delete all job files, remove the queue object and its properties
  6005.       from the bindery, and delete the queue's subdirectory
  6006. Notes:    this function is supported by Advanced NetWare 2.1+
  6007.     caller must have SUPERVISOR privileges
  6008. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=70h
  6009.  
  6010. Format of request buffer:
  6011. Offset    Size    Description
  6012.  00h    WORD    0005h (length of following data)
  6013.  02h    BYTE    65h (subfunction "Destroy Queue")
  6014.  03h    DWORD    object ID of queue (big-endian)
  6015.  
  6016. Format of reply buffer:
  6017. Offset    Size    Description
  6018.  00h    WORD    (call) 0000h (no results returned)
  6019. --------N-21E3--SF66-------------------------
  6020. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS
  6021.     AH = E3h subfn 66h
  6022.     DS:SI -> request buffer (see below)
  6023.     ES:DI -> reply buffer (see below)
  6024. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  6025. Notes:    this function is supported by Advanced NetWare 2.1+
  6026.     caller must be on a workstation which is security-equivalent to a
  6027.       member of the queue's Q_USERS or Q_OPERATORS properties
  6028. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=67h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  6029.  
  6030. Format of request buffer:
  6031. Offset    Size    Description
  6032.  00h    WORD    0005h (length of following data)
  6033.  02h    BYTE    66h (subfunction "Read Queue Current Status")
  6034.  03h    DWORD    object ID of queue (big-endian)
  6035.  
  6036. Format of reply buffer:
  6037. Offset    Size    Description
  6038.  00h    WORD    (call) 0085h (size of following results)
  6039.  02h    DWORD    object ID of queue (big-endian)
  6040.  06h    BYTE    status of queue
  6041.         bit 0: operator disabled addition of new jobs
  6042.         bit 1: operator refuses additional job servers attaching
  6043.         bit 2: operator disabled job servicing
  6044.  07h    BYTE    number of jobs in queue (00h-FAh)
  6045.  08h    BYTE    number of servers attached to queue (00h-19h)
  6046.  09h 25 DWORDs    list of object IDs of attached servers
  6047.  6Dh 25 BYTEs    list of attached servers' stations
  6048.  86h    BYTE    (call) maximum number of servers to return
  6049. --------N-21E3--SF67-------------------------
  6050. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS
  6051.     AH = E3h subfn 67h
  6052.     DS:SI -> request buffer (see below)
  6053.     ES:DI -> reply buffer (see below)
  6054. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see AH=E3h/SF=64h)
  6055. Notes:    this function is supported by Advanced NetWare 2.1+
  6056.     caller must have operator privileges
  6057. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  6058.  
  6059. Format of request buffer:
  6060. Offset    Size    Description
  6061.  00h    WORD    0006h (length of following data)
  6062.  02h    BYTE    67h (subfunction "Set Queue Current Status")
  6063.  03h    DWORD    object ID of queue (big-endian)
  6064.  07h    BYTE    queue status
  6065.         bit 0: operator disabled addition of new jobs
  6066.         bit 1: operator refuses additional job servers attaching
  6067.         bit 2: operator disabled job servicing
  6068.  
  6069. Format of reply buffer:
  6070. Offset    Size    Description
  6071.  00h    WORD    (call) 0000h (no results returned)
  6072. --------N-21E3--SF68-------------------------
  6073. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE
  6074.     AH = E3h subfn 68h
  6075.     DS:SI -> request buffer (see below)
  6076.     ES:DI -> reply buffer (see below)
  6077. Return: AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh)
  6078.         (see AH=E3h/SF=64h)
  6079. Notes:    this function is supported by Advanced NetWare 2.1+
  6080.     caller must be on a workstation which is security-equivalent to a
  6081.       member of the queue's Q_USER property
  6082. SeeAlso: AH=E0h"SPOOLING",AH=E3h/SF=69h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  6083.  
  6084. Format of request buffer:
  6085. Offset    Size    Description
  6086.  00h    WORD    0107h (length of following data)
  6087.  02h    BYTE    68h (subfunction "Close File and Start Queue Job")
  6088.  03h    DWORD    object ID of queue (big-endian)
  6089.  07h    BYTE    client station
  6090.  08h    BYTE    client task number
  6091.  09h    DWORD    object ID of client (big-endian)
  6092.  0Dh    DWORD    object ID of target server (big-endian)
  6093.         FFFFFFFh if any server acceptable
  6094.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  6095.         FFFFFFFFFFFFh to execute as soon as possible
  6096.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  6097.  1Dh    WORD    job number (big-endian)
  6098.  1Fh    WORD    job type (big-endian)
  6099.  21h    BYTE    job position
  6100.  22h    BYTE    job control flags
  6101.  23h 14 BYTEs    ASCIZ job file name
  6102.  31h  6 BYTEs    job file handle
  6103.  37h    BYTE    server station
  6104.  38h    BYTE    server task number
  6105.  39h    DWORD    object ID of server (big-endian)
  6106.  3Dh 50 BYTEs    ASCIZ job description string
  6107.  6Fh 152 BYTEs    client record area
  6108.  
  6109. Format of reply buffer:
  6110. Offset    Size    Description
  6111.  00h    WORD    (call) 0036h (size of following results buffer)
  6112.  02h    BYTE    client station
  6113.  03h    BYTE    client task number
  6114.  04h    DWORD    object ID of client (big-endian)
  6115.  08h    DWORD    object ID of target server (big-endian)
  6116.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  6117.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  6118.  18h    WORD    job number (big-endian)
  6119.  1Ah    WORD    job type (big-endian)
  6120.  1Ch    BYTE    job position
  6121.  1Dh    BYTE    job control flags
  6122.  1Eh 14 BYTEs    ASCIZ job file name
  6123.  2Ch  6 BYTEs    job file handle
  6124.  32h    BYTE    server station
  6125.  33h    BYTE    server task number
  6126.  34h    DWORD    object ID of server or 00000000h (big-endian)
  6127. --------N-21E3--SF69-------------------------
  6128. INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB
  6129.     AH = E3h subfn 69h
  6130.     DS:SI -> request buffer (see below)
  6131.     ES:DI -> reply buffer (see below)
  6132. Return: AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  6133. Notes:    this function is supported by Advanced NetWare 2.1+
  6134.     caller must be on the workstation which created the job
  6135. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  6136.  
  6137. Format of request buffer:
  6138. Offset    Size    Description
  6139.  00h    WORD    0007h (length of following data)
  6140.  02h    BYTE    69h (subfunction "Close File and Start Queue Job")
  6141.  03h    DWORD    object ID of queue (big-endian)
  6142.  07h    WORD    job number (big-endian)
  6143.  
  6144. Format of reply buffer:
  6145. Offset    Size    Description
  6146.  00h    WORD    (call) 0000h (no results returned)
  6147. --------N-21E3--SF6A-------------------------
  6148. INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE
  6149.     AH = E3h subfn 6Ah
  6150.     DS:SI -> request buffer (see below)
  6151.     ES:DI -> reply buffer (see below)
  6152. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  6153. Notes:    this function is supported by Advanced NetWare 2.1+
  6154.     caller must have created the job or be an operator
  6155. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  6156.  
  6157. Format of request buffer:
  6158. Offset    Size    Description
  6159.  00h    WORD    0007h (length of following data)
  6160.  02h    BYTE    6Ah (subfunction "Remove Job From Queue")
  6161.  03h    DWORD    object ID of queue (big-endian)
  6162.  07h    WORD    job number (big-endian)
  6163.  
  6164. Format of reply buffer:
  6165. Offset    Size    Description
  6166.  00h    WORD    (call) 0000h (no results returned)
  6167. --------N-21E3--SF6B-------------------------
  6168. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST
  6169.     AH = E3h subfn 6Bh
  6170.     DS:SI -> request buffer (see below)
  6171.     ES:DI -> reply buffer (see below)
  6172. Return: AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  6173. Notes:    this function is supported by Advanced NetWare 2.1+
  6174.     caller must be on a workstation which is security-equivalent to a
  6175.       member of the Q_USERS or Q_OPERATORS properties
  6176. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  6177.  
  6178. Format of request buffer:
  6179. Offset    Size    Description
  6180.  00h    WORD    0005h (length of following data)
  6181.  02h    BYTE    6Bh (subfunction "Get Queue Job List")
  6182.  03h    DWORD    object ID of queue (big-endian)
  6183.  
  6184. Format of reply buffer:
  6185. Offset    Size    Description
  6186.  00h    WORD    (call) size of following results buffer (max 1F6h)
  6187.  02h    WORD    job count (big-endian)
  6188.  04h  N WORDs    list of job numbers by position in queue (big-endian)
  6189.     WORD    maximum job numbers
  6190. --------N-21E3--SF6C-------------------------
  6191. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY
  6192.     AH = E3h subfn 6Ch
  6193.     DS:SI -> request buffer (see below)
  6194.     ES:DI -> reply buffer (see below)
  6195. Return: AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  6196. Notes:    this function is supported by Advanced NetWare 2.1+
  6197.     caller must be on a workstation which is security-equivalent to a
  6198.       member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  6199. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  6200.  
  6201. Format of request buffer:
  6202. Offset    Size    Description
  6203.  00h    WORD    0007h (length of following data)
  6204.  02h    BYTE    6Ch (subfunction "Read Queue Job Entry")
  6205.  03h    DWORD    object ID of queue (big-endian)
  6206.  07h    WORD    job number (big-endian)
  6207.  
  6208. Format of reply buffer:
  6209. Offset    Size    Description
  6210.  00h    WORD    (call) 0100h (size of following results)
  6211.  02h    BYTE    client station number
  6212.  03h    BYTE    client task number
  6213.  04h    DWORD    object ID of client
  6214.  08h    DWORD    object ID of target server (big-endian)
  6215.         FFFFFFFFh if any server acceptable
  6216.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  6217.         FFFFFFFFFFFFh if serviced as soon as possible
  6218.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  6219.  18h    WORD    job number (big-endian)
  6220.  1Ah    WORD    job type (big-endian)
  6221.  1Ch    BYTE    job position
  6222.  1Dh    BYTE    job control flags
  6223.         bit 3: job will be serviced automatically if connection broken
  6224.         bit 4: job remains in queue after server aborts job
  6225.         bit 5: client has not filled associated job file
  6226.         bit 6: User Hold--job advances, but cannot be serviced until
  6227.             this bit is cleared by user or operator
  6228.         bit 7: Operator Hold--job advances, but cannot be serviced
  6229.             until this bit is cleared by an operator
  6230.  1Eh 14 BYTEs    ASCIZ job filename
  6231.  2Ch  6 BYTEs    job file handle
  6232.  32h    BYTE    server station
  6233.  33h    BYTE    server task number
  6234.  34h    DWORD    object ID of server
  6235.  38h 50 BYTEs    ASCIZ job description string
  6236.  6Ah 152 BYTEs    client record area
  6237. --------N-21E3--SF6D-------------------------
  6238. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY
  6239.     AH = E3h subfn 6Dh
  6240.     DS:SI -> request buffer (see below)
  6241.     ES:DI -> reply buffer (see below)
  6242. Return: AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see AH=E3h/SF=64h)
  6243. Notes:    this function is supported by Advanced NetWare 2.1+
  6244.     caller must be an operator or the user who created the job
  6245. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Eh
  6246.  
  6247. Format of request buffer:
  6248. Offset    Size    Description
  6249.  00h    WORD    0105h (length of following data)
  6250.  02h    BYTE    6Dh (subfunction "Change Queue Job Entry")
  6251.  03h    DWORD    object ID of queue (big-endian)
  6252.  07h    BYTE    client station number
  6253.  08h    BYTE    client task number
  6254.  09h    DWORD    object ID of client
  6255.  0Dh    DWORD    object ID of target server (big-endian)
  6256.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  6257.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  6258.  1Dh    WORD    job number (big-endian)
  6259.  1Fh    WORD    job type (big-endian)
  6260.  21h    BYTE    job position
  6261.  22h    BYTE    job control flags
  6262.         bit 3: job will be serviced automatically if connection broken
  6263.         bit 4: job remains in queue after server aborts job
  6264.         bit 5: client has not filled associated job file
  6265.         bit 6: User Hold--job advances, but cannot be serviced until
  6266.             this bit is cleared by user or operator
  6267.         bit 7: Operator Hold--job advances, but cannot be serviced
  6268.             until this bit is cleared by an operator
  6269.  23h 14 BYTEs    ASCIZ job filename
  6270.  31h  6 BYTEs    job file handle
  6271.  37h    BYTE    server station
  6272.  38h    BYTE    server task number
  6273.  39h    DWORD    object ID of server
  6274.  3Dh 50 BYTEs    ASCIZ job description string
  6275.  6Fh 152 BYTEs    client record area
  6276.  
  6277. Format of reply buffer:
  6278. Offset    Size    Description
  6279.  00h    WORD    (call) 0000h (no results returned)
  6280. --------N-21E3--SF6E-------------------------
  6281. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION
  6282.     AH = E3h subfn 6Eh
  6283.     DS:SI -> request buffer (see below)
  6284.     ES:DI -> reply buffer (see below)
  6285. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  6286. Notes:    this function is supported by Advanced NetWare 2.1+
  6287.     caller must be an operator
  6288.     if the specified position is greater than the number of jobs in the
  6289.       queue, the job is placed at the end of the queue
  6290. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Dh
  6291.  
  6292. Format of request buffer:
  6293. Offset    Size    Description
  6294.  00h    WORD    0008h (length of following data)
  6295.  02h    BYTE    6Eh (subfunction "Change Queue Job Position")
  6296.  03h    DWORD    object ID of queue (big-endian)
  6297.  07h    WORD    job number (big-endian)
  6298.  09h    BYTE    new position in queue (01h-FAh)
  6299.  
  6300. Format of reply buffer:
  6301. Offset    Size    Description
  6302.  00h    WORD    (call) 0000h (no results returned)
  6303. --------N-21E3--SF6F-------------------------
  6304. INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE
  6305.     AH = E3h subfn 6Fh
  6306.     DS:SI -> request buffer (see below)
  6307.     ES:DI -> reply buffer (see below)
  6308. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh)
  6309.         (see also AH=E3h/SF=64h)
  6310.         FFh bindery failure, or no such property, or no such member
  6311. Desc:    attach the calling job server to the specified queue
  6312. Notes:    this function is supported by Advanced NetWare 2.1+
  6313.     a queue may have up to 25 job servers attached
  6314.     the calling workstation must be security-equivalent to a member of the
  6315.       queue's Q_SERVERS property
  6316. SeeAlso: AH=E3h/SF=70h,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  6317.  
  6318. Format of request buffer:
  6319. Offset    Size    Description
  6320.  00h    WORD    0005h (length of following data)
  6321.  02h    BYTE    6Fh (subfunction "Attach Queue Server To Queue")
  6322.  03h    DWORD    object ID of queue (big-endian)
  6323.  
  6324. Format of reply buffer:
  6325. Offset    Size    Description
  6326.  00h    WORD    (call) 0000h (no results returned)
  6327. --------N-21E3--SF70-------------------------
  6328. INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE
  6329.     AH = E3h subfn 70h
  6330.     DS:SI -> request buffer (see below)
  6331.     ES:DI -> reply buffer (see below)
  6332. Return: AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see AH=E3h/SF=64h)
  6333. Desc:    remove the calling job server from the specified queue's list of
  6334.       servers
  6335. Notes:    this function is supported by Advanced NetWare 2.1+
  6336.     the caller must have previously attached itself to the queue
  6337. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  6338.  
  6339. Format of request buffer:
  6340. Offset    Size    Description
  6341.  00h    WORD    0005h (length of following data)
  6342.  02h    BYTE    70h (subfunction "Detach Queue Server From Queue")
  6343.  03h    DWORD    object ID of queue (big-endian)
  6344.  
  6345. Format of reply buffer:
  6346. Offset    Size    Description
  6347.  00h    WORD    (call) 0000h (no results returned)
  6348. --------N-21E3--SF71-------------------------
  6349. INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE
  6350.     AH = E3h subfn 71h
  6351.     DS:SI -> request buffer (see below)
  6352.     ES:DI -> reply buffer (see AH=E3h/SF=68h)
  6353. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  6354.         (see AH=E3h/SF=64h)
  6355. Notes:    this function is supported by Advanced NetWare 2.1+
  6356.     the caller must be on a workstation which is security-equivalent to a
  6357.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  6358. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  6359.  
  6360. Format of request buffer:
  6361. Offset    Size    Description
  6362.  00h    WORD    0007h (length of following data)
  6363.  02h    BYTE    71h (subfunction "Service Queue Job and Open File")
  6364.  03h    DWORD    object ID of queue (big-endian)
  6365.  07h    WORD    target job type (big-endian)
  6366.         FFFFh any
  6367. --------N-21E3--SF72-------------------------
  6368. INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE
  6369.     AH = E3h subfn 72h
  6370.     DS:SI -> request buffer (see below)
  6371.     ES:DI -> reply buffer (see below)
  6372. Return: AL = status (00h,96h,D0h,D1h,D6h) (see AH=E3h/SF=64h)
  6373. Desc:    inform the Queue Management System (QMS) that the queue server has
  6374.       completed a job
  6375. Notes:    this function is supported by Advanced NetWare 2.1+
  6376.     the caller must be a job server which has previously obtained a job
  6377.       for servicing
  6378. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=73h,AH=E3h/SF=76h
  6379.  
  6380. Format of request buffer:
  6381. Offset    Size    Description
  6382.  00h    WORD    000Bh (length of following data)
  6383.  02h    BYTE    72h (subfunction "Finish Servicing Queue Job and File")
  6384.  03h    DWORD    object ID of queue (big-endian)
  6385.  07h    WORD    job number (big-endian)
  6386.  09h    DWORD    charge (big-endian)
  6387.  
  6388. Format of reply buffer:
  6389. Offset    Size    Description
  6390.  00h    WORD    (call) 0000h (no results returned)
  6391. --------N-21E3--SF73-------------------------
  6392. INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE
  6393.     AH = E3h subfn 73h
  6394.     DS:SI -> request buffer (see below)
  6395.     ES:DI -> reply buffer (see below)
  6396. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see AH=E3h/SF=64h)
  6397. Desc:    inform the Queue Management System (QMS) that the queue server is
  6398.       unable to service a previously-accepted job
  6399. Note:    this function is supported by Advanced NetWare 2.1+
  6400. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=76h
  6401.  
  6402. Format of request buffer:
  6403. Offset    Size    Description
  6404.  00h    WORD    0007h (length of following data)
  6405.  02h    BYTE    73h (subfunction "Abort Servicing Queue Job and File")
  6406.  03h    DWORD    object ID of queue (big-endian)
  6407.  07h    WORD    job number (big-endian)
  6408.  
  6409. Format of reply buffer:
  6410. Offset    Size    Description
  6411.  00h    WORD    (call) 0000h (no results returned)
  6412. --------N-21E3--SF74-------------------------
  6413. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS
  6414.     AH = E3h subfn 74h
  6415.     DS:SI -> request buffer (see below)
  6416.     ES:DI -> reply buffer (see below)
  6417. Return: AL = status (00h,96h,D0h,D1h,D5h,D9h) (see AH=E3h/SF=64h)
  6418. Desc:    temporarily assume the login identity of the client submitting the
  6419.       job being serviced
  6420. Notes:    this function is supported by Advanced NetWare 2.1+
  6421.     caller must be a job server which has obtained a job for servicing
  6422. SeeAlso: AH=E3h/SF=75h
  6423.  
  6424. Format of request buffer:
  6425. Offset    Size    Description
  6426.  00h    WORD    0007h (length of following data)
  6427.  02h    BYTE    74h (subfunction "Change To Client Rights")
  6428.  03h    DWORD    object ID of queue (big-endian)
  6429.  07h    WORD    job number (big-endian)
  6430.  
  6431. Format of reply buffer:
  6432. Offset    Size    Description
  6433.  00h    WORD    (call) 0000h (no results returned)
  6434. --------N-21E3--SF75-------------------------
  6435. INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS
  6436.     AH = E3h subfn 75h
  6437.     DS:SI -> request buffer (see below)
  6438.     ES:DI -> reply buffer (see below)
  6439. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  6440.         (see AH=E3h/SF=64h)
  6441. Desc:    restore server's own identity after assuming the login identity of the
  6442.       client submitting the job being serviced
  6443. Notes:    this function is supported by Advanced NetWare 2.1+
  6444.     caller must be a job server which has previously changed its identity
  6445. SeeAlso: AH=E3h/SF=74h
  6446.  
  6447. Format of request buffer:
  6448. Offset    Size    Description
  6449.  00h    WORD    0001h (length of following data)
  6450.  02h    BYTE    75h (subfunction "Change To Client Rights")
  6451.  
  6452. Format of reply buffer:
  6453. Offset    Size    Description
  6454.  00h    WORD    (call) 0000h (no results returned)
  6455. --------N-21E3--SF76-------------------------
  6456. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS
  6457.     AH = E3h subfn 76h
  6458.     DS:SI -> request buffer (see below)
  6459.     ES:DI -> reply buffer (see below)
  6460. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  6461. Notes:    this function is supported by Advanced NetWare 2.1+
  6462.     caller must be on a workstation which is security-equivalent to a
  6463.       member of the Q_USERS or Q_OPERATORS properties
  6464. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=77h,AH=E3h/SF=78h
  6465.  
  6466. Format of request buffer:
  6467. Offset    Size    Description
  6468.  00h    WORD    000Ah (length of following data)
  6469.  02h    BYTE    76h (subfunction "Read Queue Server Current Status")
  6470.  03h    DWORD    object ID of queue (big-endian)
  6471.  07h    DWORD    object ID of server (big-endian)
  6472.  0Bh    BYTE    server station
  6473.  
  6474. Format of reply buffer:
  6475. Offset    Size    Description
  6476.  00h    WORD    (call) 0040h (size of following results)
  6477.  02h 64 BYTEs    server status record (format depends on server)
  6478.         first four bytes should contain estimated "price" for an
  6479.         average job
  6480. --------N-21E3--SF77-------------------------
  6481. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE SERVER CURRENT STATUS
  6482.     AH = E3h subfn 77h
  6483.     DS:SI -> request buffer (see below)
  6484.     ES:DI -> reply buffer (see below)
  6485. Return: AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see AH=E3h/SF=64h)
  6486. Notes:    this function is supported by Advanced NetWare 2.1+
  6487.     caller must be a job server which has attached itself to the queue
  6488. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=76h,AH=E3h/SF=78h
  6489.  
  6490. Format of request buffer:
  6491. Offset    Size    Description
  6492.  00h    WORD    0045h (length of following data)
  6493.  02h    BYTE    77h (subfunction "Set Queue Server Current Status")
  6494.  03h    DWORD    object ID of queue (big-endian)
  6495.  02h 64 BYTEs    server status record (format depends on server)
  6496.         first four bytes should contain estimated "price" for an
  6497.         average job
  6498.  
  6499. Format of reply buffer:
  6500. Offset    Size    Description
  6501.  00h    WORD    (call) 0000h (no results returned)
  6502. --------N-21E3--SF78-------------------------
  6503. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE
  6504.     AH = E3h subfn 78h
  6505.     DS:SI -> request buffer (see below)
  6506.     ES:DI -> reply buffer (see below)
  6507. Return: AL = status (see also AH=E3h/SF=64h)
  6508.         00h successful
  6509. Notes:    this function is supported by Advanced NetWare 2.1+
  6510.     caller must be on a workstation which is security-equivalent to a
  6511.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  6512. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=71h
  6513.  
  6514. Format of request buffer:
  6515. Offset    Size    Description
  6516.  00h    WORD    0007h (length of following data)
  6517.  02h    BYTE    78h (subfunction "Get Queue Job's File Size")
  6518.  03h    DWORD    object ID of queue (big-endian)
  6519.  07h    WORD    job number (big-endian)
  6520.  
  6521. Format of reply buffer:
  6522. Offset    Size    Description
  6523.  00h    WORD    (call) 000Ah (size of following results)
  6524.  02h    DWORD    object ID of queue (big-endian)
  6525.  06h    WORD    job number (big-endian)
  6526.  08h    DWORD    size of job file in bytes (big-endian)
  6527. --------N-21E3--SF96-------------------------
  6528. INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS
  6529.     AH = E3h subfn 96h
  6530.     DS:SI -> request buffer (see below)
  6531.     ES:DI -> reply buffer (see below)
  6532. Return: AL = status (00h,C0h,C1h) (see below)
  6533. Note:    this function is supported by Advanced NetWare 2.1+
  6534. SeeAlso: AH=E3h/SF=97h,AH=E3h/SF=98h,AH=E3h/SF=99h
  6535.  
  6536. Values for status:
  6537.  00h successful
  6538.  C0h no account privileges
  6539.  C1h no account balance
  6540.  C2h credit limit exceeded
  6541.  C3h too many holds on account
  6542.  
  6543. Format of request buffer:
  6544. Offset    Size    Description
  6545.  00h    WORD    length of following data (max 33h)
  6546.  02h    BYTE    96h (subfunction "Get Account Status")
  6547.  03h    WORD    type of bindery object (big-endian)
  6548.  05h    BYTE    length of object name (01h to 2Fh)
  6549.  06h  N BYTEs    object name
  6550.  
  6551. Format of reply buffer:
  6552. Offset    Size    Description
  6553.  00h    WORD    (call) length of following buffer space
  6554.  02h    DWORD    account balance (big-endian)
  6555.  06h    DWORD    credit limit (big-endian)
  6556.         signed number indicating lowest allowable account balance
  6557.  0Ah 120 BYTEs    reserved
  6558.  82h    DWORD    object ID, server 1 (big-endian)
  6559.  86h    DWORD    hold amount, server 1 (big-endian)
  6560.     ...
  6561.  F8h    DWORD    object ID, server 16 (big-endian)
  6562.  FCh    DWORD    hold amount, server 16 (big-endian)
  6563. Note:    the reply buffer lists the servers which have placed holds on a portion
  6564.       of the account balance, and the amount reserved by each
  6565. --------N-21E3--SF97-------------------------
  6566. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE
  6567.     AH = E3h subfn 97h
  6568.     DS:SI -> request buffer (see below)
  6569.     ES:DI -> reply buffer (see below)
  6570. Return: AL = status (00h,C0h-C2h) (see AH=E3h/SF=96h)
  6571. Note:    this function is supported by Advanced NetWare 2.1+
  6572. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=98h
  6573.  
  6574. Format of request buffer:
  6575. Offset    Size    Description
  6576.  00h    WORD    length of following data (max 13Fh)
  6577.  02h    BYTE    97h (subfunction "Submit Account Charge")
  6578.  03h    WORD    service type (big-endian)
  6579.  05h    DWORD    amount to be charged to account (big-endian)
  6580.  09h    DWORD    amount of prior hold to be cancelled (big-endian)
  6581.  0Dh    WORD    type of bindery object (big-endian)
  6582.  0Fh    WORD    type of comment (big-endian)
  6583.         8000h-FFFFh reserved for experimental use
  6584.  11h    BYTE    length of object's name
  6585.  12h  N BYTEs    object name
  6586.     BYTE    length of comment
  6587.       N BYTEs    comment
  6588.  
  6589. Format of reply buffer:
  6590. Offset    Size    Description
  6591.  00h    WORD    0000h (no data returned)
  6592. --------N-21E3--SF98-------------------------
  6593. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD
  6594.     AH = E3h subfn 98h
  6595.     DS:SI -> request buffer (see below)
  6596.     ES:DI -> reply buffer (see below)
  6597. Return: AL = status (00h,C0h-C3h) (see AH=E3h/SF=96h)
  6598. Note:    this function is supported by Advanced NetWare 2.1+
  6599. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=97h
  6600.  
  6601. Format of request buffer:
  6602. Offset    Size    Description
  6603.  00h    WORD    length of following data (max 37h)
  6604.  02h    BYTE    98h (subfunction "Submit Account Hold")
  6605.  03h    DWORD    amount of account balance to reserve (big-endian)
  6606.  07h    WORD    type of bindery object
  6607.  09h    BYTE    length of object's name
  6608.  0Ah  N BYTEs    object name
  6609.  
  6610. Format of reply buffer:
  6611. Offset    Size    Description
  6612.  00h    WORD    0000h (no data returned)
  6613. --------N-21E3--SF99-------------------------
  6614. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE
  6615.     AH = E3h subfn 99h
  6616.     DS:SI -> request buffer (see below)
  6617.     ES:DI -> reply buffer (see below)
  6618. Return: AL = status
  6619.         00h successful
  6620.         C0h    no account privileges
  6621. Note:    this function is supported by Advanced NetWare 2.1+
  6622. SeeAlso: AH=E3h/SF=96h
  6623.  
  6624. Format of request buffer:
  6625. Offset    Size    Description
  6626.  00h    WORD    length of following data (max 137h)
  6627.  02h    BYTE    99h (subfunction "Submit Account Note")
  6628.  03h    WORD    type of service (big-endian)
  6629.  05h    WORD    type of bindery object (big-endian)
  6630.  07h    WORD    type of comment (big-endian)
  6631.         8000h-FFFFh reserved for experimental use
  6632.  09h    BYTE    length of object's name
  6633.  0Ah  N BYTEs    object name
  6634.     BYTE    length of comment
  6635.       N BYTEs    comment
  6636.  
  6637. Format of reply buffer:
  6638. Offset    Size    Description
  6639.  00h    WORD    0000h (no data returned)
  6640. --------N-21E3--SFC8-------------------------
  6641. INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES
  6642.     AH = E3h subfn C8h
  6643.     DS:SI -> request buffer (see below)
  6644.     ES:DI -> reply buffer (see below)
  6645. Return: AL = status
  6646.         00h successful
  6647.         C6h no console rights
  6648. Desc:    determine whether the caller is a console operator
  6649. Notes:    this function is supported by Advanced NetWare 2.1+
  6650.     NetWare determines console privileges by checking the file server's
  6651.       OPERATOR property for the caller's object ID
  6652. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  6653.  
  6654. Format of request buffer:
  6655. Offset    Size    Description
  6656.  00h    WORD    0001h (length of following data)
  6657.  02h    BYTE    C8h (subfunction "Check Console Privileges")
  6658.  
  6659. Format of reply buffer:
  6660. Offset    Size    Description
  6661.  00h    WORD    (call) 0000h (no results returned)
  6662. --------N-21E3--SFC9-------------------------
  6663. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS
  6664.     AH = E3h subfn C9h
  6665.     DS:SI -> request buffer (see below)
  6666.     ES:DI -> reply buffer (see below)
  6667. Return: AL = status
  6668.         00h successful
  6669. Notes:    this function is supported by Advanced NetWare 2.1+
  6670.     the calling workstation must be attached to the file server
  6671. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E8h
  6672.  
  6673. Format of request buffer:
  6674. Offset    Size    Description
  6675.  00h    WORD    0001h (length of following data)
  6676.  02h    BYTE    C9h (subfunction "Get File Server Description Strings")
  6677.  
  6678. Format of reply buffer:
  6679. Offset    Size    Description
  6680.  00h    WORD    (call) 0200h (size of following results buffer)
  6681.  02h    var    ASCIZ name of company distributing this copy of NetWare
  6682.     var    ASCIZ version and revision
  6683.       9 BYTEs    ASCIZ revision date (mm/dd/yy)
  6684.     var    ASCIZ copyright notice
  6685. --------N-21E3--SFCA-------------------------
  6686. INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME
  6687.     AH = E3h subfn CAh
  6688.     DS:SI -> request buffer (see below)
  6689.     ES:DI -> reply buffer (see below)
  6690. Return: AL = status
  6691.         00h successful
  6692.         C6h no console rights
  6693. Notes:    this function is supported by Advanced NetWare 2.1+
  6694.     the calling workstation must have console operator privileges
  6695. SeeAlso: AH=2Bh,AH=2Dh,AH=E3h/SF=C8h,AH=E7h
  6696.  
  6697. Format of request buffer:
  6698. Offset    Size    Description
  6699.  00h    WORD    0007h (length of following data)
  6700.  02h    BYTE    CAh (subfunction "Set File Server Date And Time")
  6701.  03h    BYTE    year (00-79 = 2000-2079, 80-99 = 1980-1999)
  6702.  04h    BYTE    month (1-12)
  6703.  05h    BYTE    day (1-31)
  6704.  06h    BYTE    hour (0-23)
  6705.  07h    BYTE    minute
  6706.  08h    BYTR    second
  6707.  
  6708. Format of reply buffer:
  6709. Offset    Size    Description
  6710.  00h    WORD    (call) 0000h (no results returned)
  6711. --------N-21E3--SFCB-------------------------
  6712. INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN
  6713.     AH = E3h subfn CBh
  6714.     DS:SI -> request buffer (see below)
  6715.     ES:DI -> reply buffer (see below)
  6716. Return: AL = status
  6717.         00h successful
  6718.         C6h no console rights
  6719. Notes:    this function is supported by Advanced NetWare 2.1+
  6720.     the calling workstation must have console operator privileges
  6721. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CCh,AH=E3h/SF=D3h
  6722.  
  6723. Format of request buffer:
  6724. Offset    Size    Description
  6725.  00h    WORD    0001h (length of following data)
  6726.  02h    BYTE    CBh (subfunction "Disable File Server Login")
  6727.  
  6728. Format of reply buffer:
  6729. Offset    Size    Description
  6730.  00h    WORD    (call) 0000h (no results returned)
  6731. --------N-21E3--SFCC-------------------------
  6732. INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN
  6733.     AH = E3h subfn CCh
  6734.     DS:SI -> request buffer (see below)
  6735.     ES:DI -> reply buffer (see below)
  6736. Return: AL = status
  6737.         00h successful
  6738.         C6h no console rights
  6739. Notes:    this function is supported by Advanced NetWare 2.1+
  6740.     the calling workstation must have console operator privileges
  6741. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh
  6742.  
  6743. Format of request buffer:
  6744. Offset    Size    Description
  6745.  00h    WORD    0001h (length of following data)
  6746.  02h    BYTE    CCh (subfunction "Enable File Server Login")
  6747.  
  6748. Format of reply buffer:
  6749. Offset    Size    Description
  6750.  00h    WORD    (call) 0000h (no results returned)
  6751. --------N-21E3--SFCD-------------------------
  6752. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS
  6753.     AH = E3h subfn CDh
  6754.     DS:SI -> request buffer (see below)
  6755.     ES:DI -> reply buffer (see below)
  6756. Return: AL = status
  6757.         00h successful
  6758.         C6h no console rights
  6759. Notes:    this function is supported by Advanced NetWare 2.1+
  6760.     the calling workstation must have console operator privileges
  6761. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CCh
  6762.  
  6763. Format of request buffer:
  6764. Offset    Size    Description
  6765.  00h    WORD    0001h (length of following data)
  6766.  02h    BYTE    CDh (subfunction "Get File Server Login Status")
  6767.  
  6768. Format of reply buffer:
  6769. Offset    Size    Description
  6770.  00h    WORD    (call) 0001h (size of following results buffer)
  6771.  02h    BYTE    login state (00h disabled, 01h enabled)
  6772. --------N-21E3--SFCE-------------------------
  6773. INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES
  6774.     AH = E3h subfn CEh
  6775.     DS:SI -> request buffer (see below)
  6776.     ES:DI -> reply buffer (see below)
  6777. Return: AL = status
  6778.         00h successful
  6779.         C6h no console rights
  6780. Desc:    all files marked for deletion on the file server are purged, regardless
  6781.       of which workstation actually erased them
  6782. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  6783.       Alloy NTNX
  6784.     the calling workstation must have console operator privileges
  6785. SeeAlso: AH=13h,AH=E2h/SF=10h,AH=E3h/SF=C8h,AX=F244h
  6786.  
  6787. Format of request buffer:
  6788. Offset    Size    Description
  6789.  00h    WORD    0001h (length of following data)
  6790.  02h    BYTE    CEh (subfunction "Purge All Erased Files")
  6791.  
  6792. Format of reply buffer:
  6793. Offset    Size    Description
  6794.  00h    WORD    (call) 0000h (no results returned)
  6795. --------N-21E3--SFCF-------------------------
  6796. INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING
  6797.     AH = E3h subfn CFh
  6798.     DS:SI -> request buffer (see below)
  6799.     ES:DI -> reply buffer (see below)
  6800. Return: AL = status
  6801.         00h successful
  6802.         C6h no console rights
  6803. Notes:    this function is supported by Advanced NetWare 2.1+
  6804.     the calling workstation must have console operator privileges
  6805. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D0h
  6806.  
  6807. Format of request buffer:
  6808. Offset    Size    Description
  6809.  00h    WORD    0001h (length of following data)
  6810.  02h    BYTE    CFh (subfunction "Disable Transaction Tracking")
  6811.  
  6812. Format of reply buffer:
  6813. Offset    Size    Description
  6814.  00h    WORD    (call) 0000h (no results returned)
  6815. --------N-21E3--SFD0-------------------------
  6816. INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING
  6817.     AH = E3h subfn D0h
  6818.     DS:SI -> request buffer (see below)
  6819.     ES:DI -> reply buffer (see below)
  6820. Return: AL = status
  6821.         00h successful
  6822.         C6h no console rights
  6823. Desc:    restart transaction tracking after being stopped either explicitly by
  6824.       AH=E3h/SF=CFh or automatically due to a full transaction volume
  6825. Notes:    this function is supported by Advanced NetWare 2.1+
  6826.     the calling workstation must have console operator privileges
  6827. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh
  6828.  
  6829. Format of request buffer:
  6830. Offset    Size    Description
  6831.  00h    WORD    0001h (length of following data)
  6832.  02h    BYTE    D0h (subfunction "Enable Transaction Tracking")
  6833.  
  6834. Format of reply buffer:
  6835. Offset    Size    Description
  6836.  00h    WORD    (call) 0000h (no results returned)
  6837. --------N-21E3--SFD1-------------------------
  6838. INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST
  6839.     AH = E3h subfn D1h
  6840.     DS:SI -> request buffer (see below)
  6841.     ES:DI -> reply buffer (see below)
  6842. Return: AL = status
  6843.         00h successful
  6844.         C6h no console rights
  6845. Notes:    this function is supported by Advanced NetWare 2.1+
  6846.     the calling workstation must have console operator privileges
  6847.     the broadcast message will not be received by workstations which have
  6848.       disabled broadcasts with AH=E1h/SF=02h
  6849. SeeAlso: AH=E1h/SF=02h,AH=E1h/SF=09h,AH=E3h/SF=C8h,AH=E3h/SF=D3h
  6850.  
  6851. Format of request buffer:
  6852. Offset    Size    Description
  6853.  00h    WORD    length of following data (max A2h)
  6854.  02h    BYTE    D1h (subfunction "Send Console Broadcast")
  6855.  03h    BYTE    number of connections to receive message 
  6856.         00h = all, else specific list below
  6857.  04h  N BYTEs    connection list
  6858.     BYTE    length of message (max 3Ch)
  6859.       N BYTEs    message
  6860.  
  6861. Format of reply buffer:
  6862. Offset    Size    Description
  6863.  00h    WORD    (call) 0000h (no results returned)
  6864. --------N-21E3--SFD2-------------------------
  6865. INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER
  6866.     AH = E3h subfn D2h
  6867.     DS:SI -> request buffer (see below)
  6868.     ES:DI -> reply buffer (see below)
  6869. Return: AL = status
  6870.         00h successful
  6871.         C6h no console rights
  6872. Desc:    close the open files and release all file locks for a connection,
  6873.       abort transactions if a TTS file server, and detach from the file
  6874.       server
  6875. Notes:    this function is supported by Advanced NetWare 2.1+
  6876.     the caller must have SUPERVISOR privileges
  6877. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  6878.  
  6879. Format of request buffer:
  6880. Offset    Size    Description
  6881.  00h    WORD    0002h (length of following data)
  6882.  02h    BYTE    D2h (subfunction "Clear Connection Number")
  6883.  03h    BYTE    connection number
  6884.  
  6885. Format of reply buffer:
  6886. Offset    Size    Description
  6887.  00h    WORD    (call) 0000h (no results returned)
  6888. --------N-21E3--SFD3-------------------------
  6889. INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER
  6890.     AH = E3h subfn D3h
  6891.     DS:SI -> request buffer (see below)
  6892.     ES:DI -> reply buffer (see below)
  6893. Return: AL = status
  6894.         00h successful
  6895.         C6h no console rights
  6896.         FFh files open
  6897. Desc:    take down the file server
  6898. Notes:    this function is supported by Advanced NetWare 2.1+
  6899.     the calling workstation must have SUPERVISOR privileges
  6900. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CFh,AH=E3h/SF=D1h
  6901.  
  6902. Format of request buffer:
  6903. Offset    Size    Description
  6904.  00h    WORD    0002h (length of following data)
  6905.  02h    BYTE    D3h (subfunction "Down File Server")
  6906.  03h    BYTE    flag: force down even if files open if nonzero
  6907.  
  6908. Format of reply buffer:
  6909. Offset    Size    Description
  6910.  00h    WORD    (call) 0000h (no results returned)
  6911. --------N-21E3--SFD4-------------------------
  6912. INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS
  6913.     AH = E3h subfn D4h
  6914.     DS:SI -> request buffer (see below)
  6915.     ES:DI -> reply buffer (see below)
  6916. Return: AL = status
  6917.         00h successful
  6918.         C6h no console rights
  6919. Notes:    this function is supported by Advanced NetWare 2.1+
  6920.     the calling workstation must have console operator privileges
  6921. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  6922.  
  6923. Format of request buffer:
  6924. Offset    Size    Description
  6925.  00h    WORD    0001h (length of following data)
  6926.  02h    BYTE    D4h (subfunction "Get File System Statistics")
  6927.  
  6928. Format of reply buffer:
  6929. Offset    Size    Description
  6930.  00h    WORD    (call) 0028h (size of following results buffer)
  6931.  02h    DWORD    clock ticks since system started
  6932.  06h    WORD    maximum open files set by configuration
  6933.  08h    WORD    maximum files open concurrently
  6934.  0Ah    WORD    current number of open files
  6935.  0Ch    DWORD    total files opened
  6936.  10h    DWORD    total file read requests
  6937.  14h    DWORD    total file write requests
  6938.  18h    WORD    current changed FATs
  6939.  1Ah    WORD    total changed FATs
  6940.  1Ch    WORD    number of FAT write errors
  6941.  1Eh    WORD    number of fatal FAT write errors
  6942.  20h    WORD    number of FAT scan errors
  6943.  22h    WORD    maximum concurrently-indexed files
  6944.  24h    WORD    current number of indexed files
  6945.  26h    WORD    number of attached indexed files
  6946.  28h    WORD    number of indexed files available
  6947. Note:    all fields except the first are big-endian
  6948. --------N-21E3--SFD5-------------------------
  6949. INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS
  6950.     AH = E3h subfn D5h
  6951.     DS:SI -> request buffer (see below)
  6952.     ES:DI -> reply buffer (see below)
  6953. Return: AL = status
  6954.         00h successful
  6955.         C6h no console rights
  6956. Notes:    this function is supported by Advanced NetWare 2.1+
  6957.     the calling workstation must have console operator privileges
  6958. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AH=E3h/SF=D0h,AH=E3h/SF=E8h
  6959.  
  6960. Format of request buffer:
  6961. Offset    Size    Description
  6962.  00h    WORD    0001h (length of following data)
  6963.  02h    BYTE    D5h (subfunction "TTS Get Statistics")
  6964.  
  6965. Format of reply buffer:
  6966. Offset    Size    Description
  6967.  00h    WORD    (call) length of following results buffer (max 1BCh)
  6968.  02h    DWORD    clock ticks since system started (big-endian)
  6969.  06h    BYTE    transaction tracking supported if nonzero
  6970.         (all following fields are invalid if zero)
  6971.  07h    BYTE    transaction tracking enabled
  6972.  08h    WORD    transaction volume number (big-endian)
  6973.  0Ah    WORD    maximum simultaneous transactions configured (big-endian)
  6974.  0Ch    WORD    maximum simultaneous transactions since startup (big-endian)
  6975.  0Eh    WORD    current transactions in progress (big-endian)
  6976.  10h    DWORD    total transactions performed (big-endian)
  6977.  14h    DWORD    total write transactions (big-endian)
  6978.  18h    DWORD    total transactions backed out (big-endian)
  6979.  1Ch    WORD    number of unfilled backout requests (big-endian)
  6980.  1Eh    WORD    disk blocks used for transaction tracking (big-endian)
  6981.  20h    DWORD    blocks allocated for tracked-file FATs (big-endian)
  6982.  24h    DWORD    number of file size changes during a transaction (big-endian)
  6983.  28h    DWORD    number of file truncations during a transaction (big-endian)
  6984.  2Ch    BYTE    number of records following
  6985.  2Dh    Active Transaction Records [array]
  6986.     Offset    Size    Description
  6987.      00h    BYTE    logical connection number
  6988.      01h    BYTE    task number
  6989. --------N-21E3--SFD6-------------------------
  6990. INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS
  6991.     AH = E3h subfn D6h
  6992.     DS:SI -> request buffer (see below)
  6993.     ES:DI -> reply buffer (see below)
  6994. Return: AL = status
  6995.         00h successful
  6996.         C6h no console rights
  6997. Notes:    this function is supported by Advanced NetWare 2.1+
  6998.     the calling workstation must have console operator privileges
  6999. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D5h,AH=E3h/SF=D8h,AH=E3h/SF=D9h,AH=E3h/SF=E6h
  7000.  
  7001. Format of request buffer:
  7002. Offset    Size    Description
  7003.  00h    WORD    0001h (length of following data)
  7004.  02h    BYTE    D6h (subfunction "Get Disk Cache Statistics")
  7005.  
  7006. Format of reply buffer:
  7007. Offset    Size    Description
  7008.  00h    WORD    (call) 004Eh (length of following results buffer)
  7009.  02h    DWORD    clock ticks since system started (big-endian)
  7010.  06h    WORD    number of cache buffers (big-endian)
  7011.  08h    WORD    size of cache buffer in bytes (big-endian)
  7012.  0Ah    WORD    number of dirty cache buffers (big-endian)
  7013.  0Ch    DWORD    number of cache read requests (big-endian)
  7014.  10h    DWORD    number of cache write requests (big-endian)
  7015.  14h    DWORD    number of cache hits (big-endian)
  7016.  18h    DWORD    number of cache misses (big-endian)
  7017.  1Ch    DWORD    number of physical read requests (big-endian)
  7018.  20h    DWORD    number of physical write requests (big-endian)
  7019.  24h    WORD    number of physical read errors (big-endian)
  7020.  26h    WORD    number of physical write errors (big-endian)
  7021.  28h    DWORD    cache get requests (big-endian)
  7022.  2Ch    DWORD    cache full write requests (big-endian)
  7023.  30h    DWORD    cache partial write requests (big-endian)
  7024.  34h    DWORD    background dirty writes (big-endian)
  7025.  38h    DWORD    background aged writes (big-endian)
  7026.  3Ch    DWORD    total cache writes (big-endian)
  7027.  40h    DWORD    number of cache allocations (big-endian)
  7028.  44h    WORD    thrashing count (big-endian)
  7029.  46h    WORD    number of times LRU block was dirty (big-endian)
  7030.  48h    WORD    number of reads on cache blocks not yet filled by writes
  7031.         (big-endian)
  7032.  4Ah    WORD    number of times a fragmented write occurred (big-endian)
  7033.  4Ch    WORD    number of cache hits on unavailable block (big-endian)
  7034.  4Eh    WORD    number of times a cache block was scrapped (big-endian)
  7035. --------N-21E3--SFD7-------------------------
  7036. INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE
  7037.     AH = E3h subfn D7h
  7038.     DS:SI -> request buffer (see below)
  7039.     ES:DI -> reply buffer (see below)
  7040. Return: AL = status
  7041.         00h successful
  7042.         C6h no console rights
  7043. Notes:    this function is supported by Advanced NetWare 2.1+
  7044.     the calling workstation must have console operator privileges
  7045. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  7046.  
  7047. Format of request buffer:
  7048. Offset    Size    Description
  7049.  00h    WORD    0001h (length of following data)
  7050.  02h    BYTE    D7h (subfunction "Get Drive Mapping Table")
  7051.  
  7052. Format of reply buffer:
  7053. Offset    Size    Description
  7054.  00h    WORD    (call) 00ECh (length of following results buffer)
  7055.  02h    DWORD    clock tick elapsed since system started (big-endian)
  7056.  06h    BYTE    fault tolerance (SFT) level
  7057.  07h    BYTE    number of logical drives attached to server
  7058.  08h    BYTE    number of physical drives attached to server
  7059.  09h  5 BYTEs    disk channel types (00h none, 01h XT, 02h AT, 03h SCSI, 
  7060.         04h disk coprocessor drive, 32h-FFh value-added drive types)
  7061.  0Eh    WORD    number of outstanding controller commands (big-endian)
  7062.  10h 32 BYTEs    drive mapping table (FFh = no such drive)
  7063.  30h 32 BYTEs    drive mirror table (secondary physical drive, FFh = none)
  7064.  50h 32 BYTEs    dead mirror table (last drive mapped to, FFh if never mirrored)
  7065.  70h    BYTE    physical drive being remirrored (FFh = none)
  7066.  71h    BYTE    reserved
  7067.  72h    DWORD    remirrored block (big-endian)
  7068.  76h 60 BYTEs    SFT error table (internal error counters)
  7069. --------N-21E3--SFD8-------------------------
  7070. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS
  7071.     AH = E3h subfn D8h
  7072.     DS:SI -> request buffer (see below)
  7073.     ES:DI -> reply buffer (see below)
  7074. Return: AL = status
  7075.         00h successful
  7076.         C6h no console rights
  7077. Notes:    this function is supported by Advanced NetWare 2.1+
  7078.     the calling workstation must have console operator privileges
  7079. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E9h
  7080.  
  7081. Format of request buffer:
  7082. Offset    Size    Description
  7083.  00h    WORD    0002h (length of following data)
  7084.  02h    BYTE    D8h (subfunction "Get Physical Disk Statistics")
  7085.  03h    BYTE    physical disk number
  7086.  
  7087. Format of reply buffer:
  7088. Offset    Size    Description
  7089.  00h    WORD    (call) 005Dh (size of following results record)
  7090.  02h    DWORD    clock ticks since system started (big-endian)
  7091.  06h    BYTE    physical disk channel
  7092.  07h    BYTE    flag: drive removable if nonzero
  7093.  08h    BYTE    physical drive type
  7094.  09h    BYTE    drive number within controller
  7095.  0Ah    BYTE    controller number
  7096.  0Bh    BYTE    controller type
  7097.  0Ch    DWORD    size of drive in 4K disk blocks (big-endian)
  7098.  10h    WORD    number of cylinders on drive (big-endian)
  7099.  12h    BYTE    number of heads
  7100.  13h    BYTE    number of sectors per track
  7101.  14h 64 BYTEs    ASCIZ drive make and model
  7102.  54h    WORD    number of I/O errors (big-endian)
  7103.  56h    DWORD    start of Hot Fix table (big-endian)
  7104.  5Ah    WORD    size of Hot Fix table (big-endian)
  7105.  5Ch    WORD    number of Hot Fix blocks available (big-endian)
  7106.  5Eh    BYTE    flag: Hot Fix disabled if nonzero
  7107. --------N-21E3--SFD9-------------------------
  7108. INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS
  7109.     AH = E3h subfn D9h
  7110.     DS:SI -> request buffer (see below)
  7111.     ES:DI -> reply buffer (see below)
  7112. Return: AL = status
  7113.         00h successful
  7114.         C6h no console rights
  7115. Notes:    this function is supported by Advanced NetWare 2.1+
  7116.     the calling workstation must have console operator privileges
  7117. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D8h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  7118.  
  7119. Format of request buffer:
  7120. Offset    Size    Description
  7121.  00h    WORD    0002h (length of following data)
  7122.  02h    BYTE    D9h (subfunction "Get Disk Channel Statistics")
  7123.  03h    BYTE    channel number
  7124.  
  7125. Format of reply buffer:
  7126. Offset    Size    Description
  7127.  00h    WORD    (call) 00A8h (size of following results record)
  7128.  02h    DWORD    clock ticks since system started (big-endian)
  7129.  06h    WORD    channel run state (big-endian) (see below)
  7130.  08h    WORD    channel synchronization state (big-endian) (see below)
  7131.  0Ah    BYTE    driver type
  7132.  0Bh    BYTE    major version of driver
  7133.  0Ch    BYTE    minor version of driver
  7134.  0Dh 65 BYTEs    ASCIZ driver description
  7135.  4Eh    WORD    first I/O address used (big-endian)
  7136.  50h    WORD    length of first I/O address (big-endian)
  7137.  52h    WORD    second I/O address used (big-endian)
  7138.  54h    WORD    length of second I/O address (big-endian)
  7139.  56h  3 BYTEs    first shared memory address
  7140.  59h  2 BYTEs    length of first shared memory address
  7141.  5Bh  3 BYTEs    second shared memory address
  7142.  5Eh  2 BYTEs    length of second shared memory address
  7143.  60h    BYTE    first interrupt number in-use flag
  7144.  61h    BYTE    first interrupt number used
  7145.  62h    BYTE    second interrupt number in-use flag
  7146.  63h    BYTE    second interrupt number used
  7147.  64h    BYTE    first DMA channel in-use flag
  7148.  65h    BYTE    first DMA channel used
  7149.  66h    BYTE    second DMA channel in-use flag
  7150.  67h    BYTE    second DMA channel used
  7151.  68h    BYTE    flags
  7152.  69h    BYTE    reserved
  7153.  6Ah 80 BYTEs    ASCIZ configuration description
  7154.  
  7155. Values for channel run state:
  7156.  0000h running
  7157.  0001h being stopped
  7158.  0002h stopped
  7159.  0003h nonfunctional
  7160.  
  7161. Values for channel synchronization state:
  7162.  0000h    not in use
  7163.  0002h    used by NetWare, no other requests
  7164.  0004h    used by NetWare, other requests
  7165.  0006h    in use, not needed by NetWare
  7166.  0008h    in use, needed by NetWare
  7167.  000Ah    channel released, NetWare should use it
  7168. --------N-21E3--SFDA-------------------------
  7169. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION
  7170.     AH = E3h subfn DAh
  7171.     DS:SI -> request buffer (see below)
  7172.     ES:DI -> reply buffer (see below)
  7173. Return: AL = status
  7174.         00h successful
  7175.         C6h no console rights
  7176. Notes:    this function is supported by Advanced NetWare 2.1+
  7177.     the calling workstation must have console operator privileges
  7178. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h,AH=E3h/SF=E5h
  7179.  
  7180. Format of request buffer:
  7181. Offset    Size    Description
  7182.  00h    WORD    0003h (length of following data)
  7183.  02h    BYTE    DAh (subfunction "Get Connection's Task Information")
  7184.  03h    WORD    logical connection number (big-endian)
  7185.  
  7186. Format of reply buffer:
  7187. Offset    Size    Description
  7188.  00h    WORD    (call) size of following results record (max 1FEh)
  7189.  02h    BYTE    lock status of connection (see below)
  7190.  03h    var    Lock Status Information (see below)
  7191.  N    BYTE    number of records following
  7192.  N+1    Active Task Information Records [array]
  7193.     Offset    Size    Description
  7194.      00h    BYTE    task number (01h-FFh)
  7195.      01h    BYTE    task state
  7196.             01h in TTS explicit transaction
  7197.             02h in TTS implicit transaction
  7198.             04h shared fileset lock active
  7199.  
  7200. Values for lock status of connection:
  7201.  00h no locks
  7202.  01h waiting on physical record lock
  7203.  02h waiting on file lock
  7204.  03h waiting on logical record lock
  7205.  04h waiting on semaphore
  7206.  
  7207. Format of Lock Status Information:
  7208. Offset    Size    Description
  7209. ---lock status 00h---
  7210.  no fields
  7211. ---lock status 01h---
  7212.  00h    BYTE    number of waiting task
  7213.  01h    DWORD    start address
  7214.  05h    DWORD    end address
  7215.  09h    BYTE    volume number
  7216.  0Ah    WORD    directory entry number
  7217.  0Ch 14 BYTEs    ASCIZ filename
  7218. ---lock status 02h---
  7219.  00h    BYTE    number of waiting task
  7220.  01h    BYTE    volume number
  7221.  02h    WORD    directory entry number
  7222.  04h 14 BYTEs    ASCIZ filename
  7223. ---lock status 03h---
  7224.  00h    BYTE    number of waiting task
  7225.  01h    BYTE    length of record name
  7226.  02h  N BYTEs    ASCIZ record name
  7227. ---lock status 04h---
  7228.  00h    BYTE    number of waiting task
  7229.  01h    BYTE    length of semaphore's name
  7230.  02h  N BYTEs    ASCIZ semaphore name
  7231. --------N-21E3--SFDB-------------------------
  7232. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES
  7233.     AH = E3h subfn DBh
  7234.     DS:SI -> request buffer (see below)
  7235.     ES:DI -> reply buffer (see below)
  7236. Return: AL = status
  7237.         00h successful
  7238.         C6h no console rights
  7239. Notes:    this function is supported by Advanced NetWare 2.1+
  7240.     the calling workstation must have console operator privileges
  7241. SeeAlso: AH=E2h/SF=1Ah,AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DCh,AH=E3h/SF=DFh
  7242. SeeAlso: AH=E3h/SF=E1h
  7243.  
  7244. Format of request buffer:
  7245. Offset    Size    Description
  7246.  00h    WORD    0005h (length of following data)
  7247.  02h    BYTE    DBh (subfunction "Get Connection's Open Files")
  7248.  03h    WORD    logical connection number (big-endian)
  7249.  05h    WORD    last record seen (big-endian)
  7250.         0000h on first call
  7251.  
  7252. Format of reply buffer:
  7253. Offset    Size    Description
  7254.  00h    WORD    (call) size of following results record (max 1FEh)
  7255.  02h    WORD    next request record (place in "last record" field on next call)
  7256.         0000h if no more records
  7257.  04h    BYTE    number of records following
  7258.  05h    var    array of File Information Records (see below)
  7259.  
  7260. Format of File Information Record:
  7261. Offset    Size    Description
  7262.  00h    BYTE    task number
  7263.  01h    BYTE    lock flags (see below)
  7264.  02h    BYTE    access flags (see below)
  7265.  03h    BYTE    lock type
  7266.         00h no lock
  7267.         FEh file lock
  7268.         FFh locked by Begin Share File Set
  7269.  04h    BYTE    volume number (00h-1Fh)
  7270.  05h    WORD    directory entry (big-endian)
  7271.  07h 14 BYTEs    ASCIZ filename
  7272.  
  7273. Bitfields for lock flags:
  7274.  bit 0    file is locked
  7275.  bit 1    file opened Shareable
  7276.  bit 2    logged
  7277.  bit 3    file opened Normal
  7278.  bit 6    TTS holding lock
  7279.  bit 7    Transaction Flag set on file
  7280.  
  7281. Bitfields for access flags:
  7282.  bit 0    file open for reading by calling station
  7283.  bit 1    file open for writing by calling station
  7284.  bit 2    deny reads by other stations
  7285.  bit 3    deny writes by other stations
  7286.  bit 4    file detached
  7287.  bit 5    TTS Holding Detach
  7288.  bit 6    TTS Holding Open
  7289. --------N-21E3--SFDC-------------------------
  7290. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE
  7291.     AH = E3h subfn DCh
  7292.     DS:SI -> request buffer (see below)
  7293.     ES:DI -> reply buffer (see below)
  7294. Return: AL = status
  7295.         00h successful
  7296.         C6h no console rights
  7297. Notes:    this function is supported by Advanced NetWare 2.1+
  7298.     the calling workstation must have console operator privileges
  7299. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h
  7300.  
  7301. Format of request buffer:
  7302. Offset    Size    Description
  7303.  00h    WORD    length of following data (max 104h)
  7304.  02h    BYTE    DCh (subfunction "Get Connections Using a File")
  7305.  03h    WORD    last record (big-endian)
  7306.         0000h on first call
  7307.  05h    BYTE    directory handle
  7308.  06h    BYTE    length of file path
  7309.  07h  N BYTEs    ASCIZ file path
  7310.  
  7311. Format of reply buffer:
  7312. Offset    Size    Description
  7313.  00h    WORD    (call) size of following results record (max 1FEh)
  7314.  02h    WORD    count of tasks which have opened or logged file (big-endian)
  7315.  04h    WORD    count of tasks which have opened file (big-endian)
  7316.  06h    WORD    count of opens for reading (big-endian)
  7317.  08h    WORD    count of opens for writing (big-endian)
  7318.  0Ah    WORD    deny read count (big-endian)
  7319.  0Ch    WORD    deny write count (big-endian)
  7320.  0Eh    WORD    next request record (place in "last record" field on next call)
  7321.         0000h if no more records
  7322.  10h    BYTE    locked flag
  7323.         00h not locked exclusively
  7324.         else locked exclusively
  7325.  11h    BYTE    number of records following
  7326.  12h    var    array of File Usage Information Records (see below)
  7327.  
  7328. Format of File Usage Information Record:
  7329. Offset    Size    Description
  7330.  00h    WORD    logical connection number (big-endian)
  7331.  02h    BYTE    task number
  7332.  03h    BYTE    lock flags (see AH=E3h/SF=DBh)
  7333.  04h    BYTE    access flags (see AH=E3h/SF=DBh)
  7334.  05h    BYTE    lock type
  7335.         00h no lock
  7336.         FEh file lock
  7337.         FFh locked by Begin Share File Set
  7338. --------N-21E3--SFDD-------------------------
  7339. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE
  7340.     AH = E3h subfn DDh
  7341.     DS:SI -> request buffer (see below)
  7342.     ES:DI -> reply buffer (see below)
  7343. Return: AL = status
  7344.         00h successful
  7345.         C6h no console rights
  7346.         FFh file not open
  7347. Notes:    this function is supported by Advanced NetWare 2.1+
  7348.     the calling workstation must have console operator privileges
  7349. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DEh,AH=E3h/SF=DFh
  7350.  
  7351. Format of request buffer:
  7352. Offset    Size    Description
  7353.  00h    WORD    0016h (length of following data)
  7354.  02h    BYTE    DDh (subfunction "Get Physical Record Locks by Connection and
  7355.             File")
  7356.  03h    WORD    logical connection number (big-endian)
  7357.  05h    WORD    last record seen (big-endian)
  7358.         0000h on first call
  7359.  07h    BYTE    volume number (00h-1Fh)
  7360.  08h    WORD    directory handle (big-endian)
  7361.  0Ah 14 BYTEs    ASCIZ filename
  7362.  
  7363. Format of reply buffer:
  7364. Offset    Size    Description
  7365.  00h    WORD    (call) size of following results record (max 1FEh)
  7366.  02h    WORD    next request record (place in "last record" on next call)
  7367.         0000h if no more records
  7368.  04h    BYTE    number of physical record locks
  7369.  05h    BYTE    number of records following
  7370.  06h    var    array of Physical Record Lock Info records (see below)
  7371.  
  7372. Format of Physical Record Lock Info:
  7373. Offset    Size    Description
  7374.  00h    BYTE    task number
  7375.  01h    BYTE    lock status (see below)
  7376.  02h    DWORD    starting offset of record in file (big-endian)
  7377.  06h    DWORD    ending offset of record in file (big-endian)
  7378.  
  7379. Bitfields for lock status:
  7380.  bit 0    exclusive lock
  7381.  bit 1    shareable lock
  7382.  bit 2    logged
  7383.  bit 6    lock held by TTS
  7384. --------N-21E3--SFDE-------------------------
  7385. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE
  7386.     AH = E3h subfn DEh
  7387.     DS:SI -> request buffer (see below)
  7388.     ES:DI -> reply buffer (see below)
  7389. Return: AL = status
  7390.         00h successful
  7391.         C6h no console rights
  7392.         FFh file not open
  7393. Notes:    this function is supported by Advanced NetWare 2.1+
  7394.     the calling workstation must have console operator privileges
  7395. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh
  7396.  
  7397. Format of request buffer:
  7398. Offset    Size    Description
  7399.  00h    WORD    length of following data (max 104h)
  7400.  02h    BYTE    DEh (subfunction "Get Physical Record Locks by File")
  7401.  03h    WORD    last record seen (big-endian)
  7402.         0000h on first call
  7403.  05h    BYTE    directory handle
  7404.  06h    BYTE    length of filename
  7405.  07h  N BYTEs    ASCIZ filename
  7406.  
  7407. Format of reply buffer:
  7408. Offset    Size    Description
  7409.  00h    WORD    (call) size of following results record (max 1FEh)
  7410.  02h    WORD    next request record (place in "last record" on next call)
  7411.         0000h if no more records
  7412.  04h    BYTE    number of physical record locks
  7413.  05h    BYTE    number of records following
  7414.  06h    var    array of Physical Record Lock Info records (see below)
  7415.  
  7416. Format of Physical Record Lock Info:
  7417. Offset    Size    Description
  7418.  00h    WORD    number of tasks logging record (big-endian)
  7419.  02h    WORD    number of tasks with shareable lock (big-endian)
  7420.  04h    DWORD    starting offset of record in file (big-endian)
  7421.  08h    DWORD    ending offset of record in file (big-endian)
  7422.  0Ch    WORD    logical connection number (big-endian)
  7423.  0Eh    BYTE    task number
  7424.  0Fh    BYTE    lock type
  7425.         00h none
  7426.         FEh file lock
  7427.         FFh Begin Share File Set lock
  7428. --------N-21E3--SFDF-------------------------
  7429. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION
  7430.     AH = E3h subfn DFh
  7431.     DS:SI -> request buffer (see below)
  7432.     ES:DI -> reply buffer (see below)
  7433. Return: AL = status
  7434.         00h successful
  7435.         C6h no console rights
  7436. Notes:    this function is supported by Advanced NetWare 2.1+
  7437.     the calling workstation must have console operator privileges
  7438. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=E0h,AH=E3h/SF=E2h
  7439.  
  7440. Format of request buffer:
  7441. Offset    Size    Description
  7442.  00h    WORD    0005h (length of following data)
  7443.  02h    BYTE    DFh (subfunction "Get Logical Records By Connection")
  7444.  03h    WORD    logical connection number (big-endian)
  7445.  05h    WORD    last record seen (big-endian)
  7446.         0000h on first call
  7447.  
  7448. Format of reply buffer:
  7449. Offset    Size    Description
  7450.  00h    WORD    (call) size of following results record (max 1FEh)
  7451.  02h    WORD    next request record (place in "last record" field on next call)
  7452.         0000h if no more locked records
  7453.  09h    BYTE    number of records following
  7454.  0Ah    var    array of Logical Lock Information Records (see below)
  7455.  
  7456. Format of Logical Lock Information Record:
  7457. Offset    Size    Description
  7458.  00h    BYTE    task number
  7459.  01h    BYTE    lock status (see AH=E3h/SF=DDh)
  7460.  02h    BYTE    length of logical lock's name
  7461.  03h  N BYTEs    logical lock's name
  7462. --------N-21E3--SFE0-------------------------
  7463. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION
  7464.     AH = E3h subfn E0h
  7465.     DS:SI -> request buffer (see below)
  7466.     ES:DI -> reply buffer (see below)
  7467. Return: AL = status
  7468.         00h successful
  7469.         C6h no console rights
  7470. Notes:    this function is supported by Advanced NetWare 2.1+
  7471.     the calling workstation must have console operator privileges
  7472. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  7473.  
  7474. Format of request buffer:
  7475. Offset    Size    Description
  7476.  00h    WORD    length of following data (max 67h)
  7477.  02h    BYTE    E0h (subfunction "Get Logical Record Information")
  7478.  03h    WORD    last record seen (big-endian)
  7479.         0000h on first call
  7480.  05h    BYTE    length of logical record's name
  7481.  06h  N BYTEs    logical record's name
  7482.  
  7483. Format of reply buffer:
  7484. Offset    Size    Description
  7485.  00h    WORD    (call) size of following results record (max 200h)
  7486.  02h    WORD    number of logical connections logging the record (big-endian)
  7487.  04h    WORD    number of logical connections with shareable lock (big-endian)
  7488.  06h    WORD    next request record (place in "last record" field on next call)
  7489.  08h    BYTE    locked exclusively if nonzero
  7490.  09h    BYTE    number of records following
  7491.  0Ah    var    array of Task Information Records (see below)
  7492.  
  7493. Format of Task Information Record:
  7494. Offset    Size    Description
  7495.  00h    WORD    logical connection number (big-endian)
  7496.  02h    BYTE    task number
  7497.  03h    BYTE    lock status (see AH=E3h/SF=DDh)
  7498. --------N-21E3--SFE1-------------------------
  7499. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES
  7500.     AH = E3h subfn E1h
  7501.     DS:SI -> request buffer (see below)
  7502.     ES:DI -> reply buffer (see below)
  7503. Return: AL = status
  7504.         00h successful
  7505.         C6h no console rights
  7506. Notes:    this function is supported by Advanced NetWare 2.1+
  7507.     the calling workstation must have console operator privileges
  7508. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  7509.  
  7510. Format of request buffer:
  7511. Offset    Size    Description
  7512.  00h    WORD    0005h (length of following data)
  7513.  02h    BYTE    E1h (subfunction "Get Connection's Semaphores")
  7514.  03h    WORD    logical connection number (big-endian)
  7515.  05h    WORD    last record seen (big-endian)
  7516.         0000h on first call
  7517.  
  7518. Format of reply buffer:
  7519. Offset    Size    Description
  7520.  00h    WORD    (call) size of following results record (max 1FEh)
  7521.  02h    WORD    next request record (place in "last record" field on next call)
  7522.  04h    BYTE    number of records following
  7523.  05h    var    array of Semaphore Information Records
  7524.  
  7525. Format of Semaphore Information Record:
  7526. Offset    Size    Description
  7527.  00h    WORD    open count (big-endian)
  7528.  02h    BYTE    semaphore value (-128 to 127)
  7529.  03h    BYTE    task number
  7530.  04h    BYTE    lock type
  7531.  05h    BYTE    length of semaphore's name
  7532.  06h  N BYTEs    semaphore's name
  7533.      14 BYTEs    filename
  7534. --------N-21E3--SFE2-------------------------
  7535. INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION
  7536.     AH = E3h subfn E2h
  7537.     DS:SI -> request buffer (see below)
  7538.     ES:DI -> reply buffer (see below)
  7539. Return: AL = status
  7540.         00h successful
  7541.         C6h no console rights
  7542. Notes:    this function is supported by Advanced NetWare 2.1+
  7543.     the calling workstation must have console operator privileges
  7544. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E1h
  7545.  
  7546. Format of request buffer:
  7547. Offset    Size    Description
  7548.  00h    WORD    length of following data (max 83h)
  7549.  02h    BYTE    E2h (subfunction "Get LAN Driver's Configuration Information")
  7550.  03h    WORD    last record seen (big-endian)
  7551.         0000h on first call
  7552.  05h    BYTE    length of semaphore's name (01h-7Fh)
  7553.  06h  N BYTEs    semaphore's name
  7554.  
  7555. Format of reply buffer:
  7556. Offset    Size    Description
  7557.  00h    WORD    (call) size of following results buffer (max 1FEh)
  7558.  02h    WORD    next request record (place in "last record" on next call)
  7559.         0000h if no more
  7560.  04h    WORD    number of logical connections opening semaphore (big-endian)
  7561.  06h    BYTE    semaphore value (-127 to 128)
  7562.  07h    BYTE    number of records following
  7563.  08h    var    array of Semaphore Information records (see below)
  7564.  
  7565. Format of Semaphore Information:
  7566. Offset    Size    Description
  7567.  00h    WORD    logical connection number (big-endian)
  7568.  02h    BYTE    task number
  7569. --------N-21E3--SFE3-------------------------
  7570. INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO
  7571.     AH = E3h subfn E3h
  7572.     DS:SI -> request buffer (see below)
  7573.     ES:DI -> reply buffer (see below)
  7574. Return: AL = status
  7575.         00h successful
  7576.         C6h no console rights
  7577. Notes:    this function is supported by Advanced NetWare 2.1+
  7578.     the calling workstation must have console operator privileges
  7579. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  7580.  
  7581. Format of request buffer:
  7582. Offset    Size    Description
  7583.  00h    WORD    0002h (length of following data)
  7584.  02h    BYTE    E3h (subfunction "Get LAN Driver's Configuration Information")
  7585.  03h    BYTE    LAN board (00h-03h)
  7586.  
  7587. Format of reply buffer:
  7588. Offset    Size    Description
  7589.  00h    WORD    (call) 00ACh (size of following results buffer)
  7590.  02h  4 BYTEs    network number
  7591.  06h  6 BYTEs    node number
  7592.  0Ch    BYTE    LAN driver installed (00h no--remaining fields invalid)
  7593.  0Dh    BYTE    option number selected at configuration time
  7594.  0Eh 160 BYTEs    configuration text
  7595.         ASCIZ hardware type
  7596.         ASCIZ hardware settings
  7597. --------N-21E3--SFE5-------------------------
  7598. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS
  7599.     AH = E3h subfn E5h
  7600.     DS:SI -> request buffer (see below)
  7601.     ES:DI -> reply buffer (see below)
  7602. Return: AL = status
  7603.         00h successful
  7604.         C6h no console rights
  7605. Notes:    this function is supported by Advanced NetWare 2.1+
  7606.     one must have console operator privileges to get statistics for logical
  7607.       connections other than one's own
  7608. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=E1h
  7609.  
  7610. Format of request buffer:
  7611. Offset    Size    Description
  7612.  00h    WORD    0003h (length of following data)
  7613.  02h    BYTE    E5h (subfunction "Get Connection's Usage Statistics")
  7614.  03h    WORD    logical connection number (big-endian)
  7615.  
  7616. Format of reply buffer:
  7617. Offset    Size    Description
  7618.  00h    WORD    (call) 0014h (size of following results record)
  7619.  02h    DWORD    clock ticks since server started (big-endian)
  7620.  06h  6 BYTEs    bytes read
  7621.  0Ch  6 BYTEs    bytes written
  7622.  12h    DWORD    total request packets (big-endian)
  7623. --------N-21E3--SFE6-------------------------
  7624. INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT
  7625.     AH = E3h subfn E6h
  7626.     DS:SI -> request buffer (see below)
  7627.     ES:DI -> reply buffer (see below)
  7628. Return: AL = status
  7629.         00h successful
  7630.         C6h no console rights
  7631. Notes:    this function is supported by Advanced NetWare 2.1+
  7632.     one must have console operator privileges to get the free space for
  7633.       other bindery objects
  7634. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E8h,AH=E3h/SF=E9h
  7635.  
  7636. Format of request buffer:
  7637. Offset    Size    Description
  7638.  00h    WORD    0005h (length of following data)
  7639.  02h    BYTE    E6h (subfunction "Get Bindery Object Disk Space Left")
  7640.  03h    DWORD    object ID (big-endian)
  7641.  
  7642. Format of reply buffer:
  7643. Offset    Size    Description
  7644.  00h    WORD    (call) 000Fh (size of following results buffer)
  7645.  02h    DWORD    clock ticks elapsed since server started (big-endian)
  7646.  06h    DWORD    object ID (big-endian)
  7647.  0Ah    DWORD    4K disk blocks available to user (big-endian)
  7648.  0Eh    BYTE    restrictions (00h enforced, FFh not enforced)
  7649. --------N-21E3--SFE7-------------------------
  7650. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS
  7651.     AH = E3h subfn E7h
  7652.     DS:SI -> request buffer (see below)
  7653.     ES:DI -> reply buffer (see below)
  7654. Return: AL = status
  7655.         00h successful
  7656. Note:    this function is supported by Advanced NetWare 2.1+
  7657. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=D3h,AH=E3h/SF=E8h,AH=E7h
  7658.  
  7659. Format of request buffer:
  7660. Offset    Size    Description
  7661.  00h    WORD    0001h (length of following data)
  7662.  02h    BYTE    E7h (subfunction "Get File Server LAN I/O Statistics")
  7663.  
  7664. Format of reply buffer:
  7665. Offset    Size    Description
  7666.  00h    WORD    (call) 0042h (size of following results buffer)
  7667.  02h    DWORD    clock ticks since system started
  7668.  06h    WORD    total routing buffers
  7669.  08h    WORD    maximum routing buffers used
  7670.  0Ah    WORD    current routing buffers used
  7671.  0Ch    DWORD    total file service packets
  7672.  10h    WORD    number of file service packets buffered
  7673.  12h    WORD    number of invalid connection packets
  7674.  14h    WORD    packets with bad logical connection numbers
  7675.  16h    WORD    number of packets received during processing
  7676.  18h    WORD    number of requests reprocessed
  7677.  1Ah    WORD    packets with bad sequence numbers
  7678.  1Ch    WORD    number of duplicate replies sent
  7679.  1Eh    WORD    number of acknowledgements sent
  7680.  20h    WORD    number of packets with bad request types
  7681.  22h    WORD    requests to attach to ws for which a request is being processed
  7682.  24h    WORD    requests to attach from ws which is already attaching
  7683.  26h    WORD    number of forged detach requests
  7684.  28h    WORD    detach requests with bad connection number
  7685.  2Ah    WORD    requests to detach from ws for which requests pending
  7686.  2Ch    WORD    number of cancelled replies
  7687.  2Eh    WORD    packets discarded due to excessive hop count
  7688.  30h    WORD    packets discarded due to unknown net
  7689.  32h    WORD    incoming packets discarded for lack of DGroup buffer
  7690.  34h    WORD    outgoing packets discarded due to lack of buffer
  7691.  36h    WORD    received packets destined for B,C, or D side drivers
  7692.  38h    DWORD    number of NetBIOS packets propagated through net
  7693.  3Ch    DWORD    total number of non-file-service packets
  7694.  40h    DWORD    total number of routed packets
  7695. Note:    all fields except the first are big-endian
  7696. --------N-21E3--SFE8-------------------------
  7697. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION
  7698.     AH = E3h subfn E8h
  7699.     DS:SI -> request buffer (see below)
  7700.     ES:DI -> reply buffer (see below)
  7701. Return: AL = status
  7702.         00h successful
  7703.         C6h no console rights
  7704. Note:    this function is supported by Advanced NetWare 2.1+
  7705. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E7h
  7706.  
  7707. Format of request buffer:
  7708. Offset    Size    Description
  7709.  00h    WORD    0001h (length of following data)
  7710.  02h    BYTE    E8h (subfunction "Get File Server Misc Information")
  7711.  
  7712. Format of reply buffer:
  7713. Offset    Size    Description
  7714.  00h    WORD    (call) size of following results buffer (max 0048h)
  7715.  02h    DWORD    clock ticks since system started
  7716.  06h    BYTE    CPU type
  7717.         00h Motorola 68000
  7718.         01h Intel 8086, 8088, or V20
  7719.         02h Intel 80286+
  7720.  07h    BYTE    reserved
  7721.  08h    BYTE    number of service processes in server
  7722.  09h    BYTE    server utilization in percent
  7723.  0Ah    WORD    maximum bindery objects set by configuration (big-endian)
  7724.         0000h = unlimited
  7725.  0Ch    WORD    maximum number of bindery objects used (big-endian)
  7726.  0Eh    WORD    current number of bindery objects in use (big-endian)
  7727.  10h    WORD    total server memory in K (big-endian)
  7728.  12h    WORD    wasted server memory in K (big-endian)
  7729.         normally 0000h
  7730.  14h    WORD    number of records following (01h-03h)
  7731.  16h    var    array of Dynamic Memory Information records (see below)
  7732.  
  7733. Format of Dynamic Memory Information:
  7734. Offset    Size    Description
  7735.  00h    DWORD    total dynamic space (big-endian)
  7736.  04h    DWORD    maximum dynamic space used (big-endian)
  7737.  08h    DWORD    current dynamic space usage (big-endian)
  7738. --------N-21E3--SFE9-------------------------
  7739. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION
  7740.     AH = E3h subfn E9h
  7741.     DS:SI -> request buffer (see below)
  7742.     ES:DI -> reply buffer (see below)
  7743. Return: AL = status
  7744.         00h successful
  7745. Notes:    this function is supported by Advanced NetWare 2.1+
  7746. SeeAlso: AH=DAh,AH=E2h/SF=15h
  7747.  
  7748. Format of request buffer:
  7749. Offset    Size    Description
  7750.  00h    WORD    0002h (length of following data)
  7751.  02h    BYTE    E9h (subfunction "Get Volume Information")
  7752.  03h    BYTE    directory handle
  7753.  
  7754. Format of reply buffer:
  7755. Offset    Size    Description
  7756.  00h    WORD    (call) 0028h (length of following results buffer)
  7757.  02h    DWORD    elapsed system time (big-endian)
  7758.  06h    BYTE    volume number
  7759.  07h    BYTE    logical drive number
  7760.  08h    WORD    sectors per block (big-endian)
  7761.  0Ah    WORD    starting block (big-endian)
  7762.  0Ch    WORD    total blocks on volume (big-endian)
  7763.  0Eh    WORD    blocks available on volume (big-endian)
  7764.  10h    WORD    total directory slots (big-endian)
  7765.  12h    WORD    directory slots available (big-endian)
  7766.  14h    WORD    maximum directory entries actually used (big-endian)
  7767.  16h    BYTE    flag: volume hashed if nonzero
  7768.  17h    BYTE    flag: volume cached if nonzero
  7769.  18h    BYTE    flag: volume removable if nonzero
  7770.  19h    BYTE    flag: volume mounted if nonzero
  7771.  1Ah 16 BYTEs    NUL-padded volume name
  7772. --------N-21E4-------------------------------
  7773. INT 21 O - Novell NetWare - SET FILE ATTRIBUTES (FCB)
  7774.     AH = E4h
  7775.     CL = file attributes (see below)
  7776.     DX:DX -> FCB (see AH=0Fh)
  7777. Return: AL = error code
  7778. Note:    this function was added in NetWare 4.0, but was removed some time prior
  7779.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  7780.       documentation
  7781. SeeAlso: AX=4301h
  7782.  
  7783. Bitfields for file attributes:
  7784.  bit 0    read only
  7785.  bit 1    hidden
  7786.  bit 2    system
  7787.  bit 7    shareable
  7788. --------v-21E4-------------------------------
  7789. INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK
  7790.     AH = E4h
  7791. Return: AH = 04h if resident
  7792. SeeAlso: AH=E1h"VIRUS",AH=E7h"VIRUS"
  7793. --------T-21E400-----------------------------
  7794. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  7795.     AX = E400h
  7796. Return: AL = 00h if DoubleDOS not present
  7797.        = 01h if running in visible DoubleDOS partition
  7798.        = 02h if running in the invisible DoubleDOS partition
  7799. SeeAlso: AH=E5h"DoubleDOS",AX=F400h
  7800. --------E-21E400-----------------------------
  7801. INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER
  7802.     AX = E400h
  7803.     ???
  7804. Return: ???
  7805. Note:    protected mode only???
  7806. --------E-21E402-----------------------------
  7807. INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE
  7808.     AX = E402h
  7809.     ???
  7810. Return: ???
  7811. Note:    protected mode only???
  7812. SeeAlso: AX=E403h
  7813. --------E-21E403-----------------------------
  7814. INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE
  7815.     AX = E403h
  7816.     ???
  7817. Return: ???
  7818. Note:    protected mode only???
  7819. SeeAlso: AX=E402h
  7820. --------N-21E5-------------------------------
  7821. INT 21 O - Novell NetWare - UPDATE FILE SIZE (FCB)
  7822.     AH = E5h
  7823.     DS:DX -> FCB (see AH=0Fh)
  7824. Return: AL = (unreliable) return code
  7825. Notes:    this function was added in NetWare 4.0, but was removed some time prior
  7826.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  7827.       documentation
  7828.     on success, NetWare sets AL to zero; on errors it restores AL
  7829. Return: AL = error code
  7830. --------T-21E5-------------------------------
  7831. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  7832.     AH = E5h
  7833. Return: AL = 00h no program in other partition
  7834.        = 01h program in other partition is running
  7835.        = 02h program in other partition is suspended
  7836. SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"
  7837. --------E-21E500-----------------------------
  7838. INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY
  7839.     AX = E500h
  7840.     ???
  7841. Return: ???
  7842. SeeAlso: AX=E501h
  7843. --------E-21E501-----------------------------
  7844. INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION
  7845.     AX = E501h
  7846.     ???
  7847. Return: ???
  7848. SeeAlso: AX=E500h
  7849. --------N-21E6-------------------------------
  7850. INT 21 O - Novell NetWare - COPY FILE TO FILE (FCB)
  7851.     AH = E6h
  7852.     CX:DX = number of bytes to copy
  7853.     DS:SI -> opened source FCB
  7854.     ES:DI -> opened destination FCB
  7855. Return: AL = error code
  7856.     CX = ???
  7857.     DX = ???
  7858. Note:    this function was added in NetWare 4.0, but was removed some time prior
  7859.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  7860.       documentation
  7861. --------E-21E6-------------------------------
  7862. INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE
  7863.     AH = E6h
  7864.     ???
  7865. Return: ???
  7866. SeeAlso: AH=E2h"OS/286"
  7867. --------N-21E7-------------------------------
  7868. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME
  7869.     AH = E7h
  7870.     DS:DX -> date/time buffer (see below)
  7871. Return: AL = error code
  7872.         00h successful
  7873.         FFh unsuccessful
  7874. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  7875.       Alloy NTNX, and Banyan VINES
  7876. SeeAlso: AH=2Ah,AH=2Ch,AX=5FC0h,AH=E3h/SF=CAh
  7877.  
  7878. Format of date/time buffer:
  7879. Offset    Size    Description
  7880.  00h    BYTE    year (80-99 = 1980-1999, 0-79 = 2000-2079)
  7881.  01h    BYTE    month (1=Jan)
  7882.  02h    BYTE    day
  7883.  03h    BYTE    hours
  7884.  04h    BYTE    minutes
  7885.  05h    BYTE    seconds
  7886.  06h    BYTE    day of week (0 = Sunday) (Novell and NTNX only)
  7887. --------E-21E7-------------------------------
  7888. INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT
  7889.     AH = E7h
  7890.     ???
  7891. Return: ???
  7892. SeeAlso: AH=E8h"OS/286",AH=E9h"OS/286",AH=EAh"OS/286"
  7893. --------v-21E7-------------------------------
  7894. INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK
  7895.     AH = E7h
  7896. Return: AH = 78h if resident
  7897. SeeAlso: AH=E4h"VIRUS",AX=EC59h
  7898. --------N-21E8-------------------------------
  7899. INT 21 O - Novell NetWare, Alloy NTNX - SET FCB RE-OPEN MODE
  7900.     AH = E8h
  7901.     DL = mode
  7902.         00h no automatic re-open
  7903.         01h auto re-open
  7904. Return: AL = error code
  7905. Desc:    provided backward compatibility with a bug in CP/M and early DOS vers
  7906. Note:    this function was added in NetWare 4.6, but was removed some time prior
  7907.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  7908.       documentation
  7909. --------E-21E8-------------------------------
  7910. INT 21 - OS/286, OS/386 - SEGMENT CREATION
  7911.     AH = E8h
  7912.     AL = type
  7913.         00h data segment
  7914.         01h data window/alias
  7915.         02h real segment
  7916.         03h real window/alias
  7917.         06h shareable segment
  7918.     ???
  7919. Return: ???
  7920. SeeAlso: AH=E7h"OS/286",AH=E9h"OS/286"
  7921. --------T-21E8-------------------------------
  7922. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  7923.     AH = E8h
  7924.     AL = 00h set flags for this program
  7925.        = 01h set flags for other program
  7926.     DX = keyboard control flags (see below)
  7927. Return: DX = previous flags
  7928. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  7929.       disabling any of the other keystrokes disables them completely
  7930.     identical to AH=F8h
  7931. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS"
  7932. SeeAlso: AH=F8h"DoubleDOS"
  7933.  
  7934. Bitfields for keyboard control flags:
  7935.  bit 0    menu
  7936.  bit 1    exchange
  7937.  bit 2    entire keyboard enable/disable
  7938.  bit 3    Ctrl-C
  7939.  bit 4    Ctrl-PrtSc
  7940.  bit 5    Alt/Erase
  7941.  bit 6    Ctrl-Break
  7942.  bit 7    Ctrl-NumLock
  7943.  bit 8    shift-PrtSc
  7944.  bit 9-13 undefined
  7945.  bit 14    cancel key (clear keyboard buffer)
  7946.  bit 15    suspend key
  7947. Note:    setting a bit enables the corresponding key or operatin, clearing a
  7948.       bit disables it
  7949. --------E-21E9-------------------------------
  7950. INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS
  7951.     AH = E9h
  7952.     AL = function
  7953.         01h change code segment parameters
  7954.         02h    change data segment parameters
  7955.         05h adjust segment limit
  7956.         06h change segment base address
  7957.     ???
  7958. Return: ???
  7959. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=EAh"OS/286",AH=EDh"OS/286"
  7960. SeeAlso: INT 31/AX=0007h,INT 31/AX=0008h
  7961. --------T-21E9-------------------------------
  7962. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  7963.     AH = E9h
  7964.     AL = 00h visible program gets 70%, invisible gets 30% (default)
  7965.        = 01h visible program gets 50%, invisible gets 50%
  7966.        = 02h visible program gets 30%, invisible gets 70%
  7967.        = 03h Top program gets 70%, bottom program gets 30%
  7968.        = 04h Top program gets 30%, bottom program gets 70%
  7969.        = 05h get current priority
  7970.         Return: AL = priority setting
  7971. Note:    identical to AH=F9h
  7972. SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS"
  7973. --------N-21E900-----------------------------
  7974. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE
  7975.     AX = E900h
  7976.     DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31)
  7977. Return: AL = directory handle
  7978.     AH = flags (drive not mapped if none set)
  7979.         bit 0: permanent handle
  7980.         bit 1: temporary handle
  7981.         bit 7: mapped to local drive
  7982. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  7983.       Alloy NTNX
  7984. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=01h,AH=E2h/SF=0Ah
  7985. --------N-21E905-----------------------------
  7986. INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY
  7987.     AX = E905h
  7988.     BL = drive number (0=default, 1=A:, ...)
  7989.     DS:DX -> ASCIZ path for fake root (may include server name or be empty)
  7990. Return: CF set on error
  7991.         AL = error code (03h,0Fh,11h) (see AH=59h)
  7992.     CF clear if successful
  7993. Note:    if drive is not currently mapped, a drive mapping will be created
  7994. SeeAlso: AX=E906h
  7995. --------N-21E906-----------------------------
  7996. INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY
  7997.     AX = E906h
  7998.     BL = drive number (0=default, 1=A:, ...)
  7999. Note:    drive remains mapped
  8000. SeeAlso: AX=E905h
  8001. --------N-21E907-----------------------------
  8002. INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH
  8003.     AX = E907h
  8004.     BL = drive number (0=default, 1=A:, ...)
  8005. Return: AL = number of directories below the fake root
  8006.         FFh if no fake root assigned
  8007. SeeAlso: AX=E905h
  8008. --------N-21E908BL00-------------------------
  8009. INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS
  8010.     AX = E908h
  8011.     BL = 00h    don't return '.' or '..' during directory scans
  8012.        = nonzero    directory scans will return '.' or '..' entries
  8013. Return: BL = previous show-dots setting
  8014. --------N-21EA-------------------------------
  8015. INT 21 - Novell NetWare, Alloy NTNX - RETURN SHELL VERSION
  8016.     AH = EAh
  8017.     AL = return version environment string
  8018.         00h        don't return string
  8019.         nonzero    return string in 40-byte buffer pointed to by ES:DI
  8020.         Return: buffer filled with three null-terminated entries:
  8021.             major operating system
  8022.             version
  8023.             hardware type
  8024. Return: AH = operating system (00h = MS-DOS)
  8025.     AL = hardware type
  8026.         00h IBM PC
  8027.         01h Victor 9000
  8028.     BH = major shell version
  8029.     BL = minor shell version
  8030.     CH = (v3.01+) shell type
  8031.         00h conventional memory
  8032.         01h expanded memory
  8033.         02h extended memory
  8034.     CL = shell revision number
  8035. Note:    this function is supported by NetWare 4.6 and Advanced NetWare 1.0+
  8036. --------T-21EA-------------------------------
  8037. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  8038.     AH = EAh
  8039. Return: task switching turned off
  8040. SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS"
  8041. SeeAlso: INT FA"DoubleDOS"
  8042. --------E-21EA-------------------------------
  8043. INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT
  8044.     AH = EAh
  8045.     ???
  8046. Return: ???
  8047. Note:    protected mode only???
  8048. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=E9h"OS/286"
  8049. --------N-21EB-------------------------------
  8050. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE
  8051.     AH = EBh
  8052.     DS:DX -> ASCIZ filename
  8053.     if function C6h lock mode 01h:
  8054.         AL = flags
  8055.         00h log file only
  8056.         01h lock as well as log file
  8057.             BP = lock timeout in timer ticks (1/18 second)
  8058.             0000h = don't wait if file already locked
  8059. Return: AL = error code
  8060.         00h successful
  8061.         96h no dynamic memory for file
  8062.         FEh timed out
  8063.         FFh failed
  8064. Desc:    add the location and size of the specified file to the log table and
  8065.       optionally lock the file
  8066. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  8067.       Alloy NTNX
  8068. SeeAlso: AH=BCh"NetWare",AH=CAh,AH=D0h,AH=ECh"NetWare",AH=EDh"NetWare"
  8069. --------T-21EB-------------------------------
  8070. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  8071.     AH = EBh
  8072. Return: task switching turned on
  8073. SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS"
  8074. SeeAlso: INT FB"DoubleDOS"
  8075. --------E-21EB00-----------------------------
  8076. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS
  8077.     AX = EB00h
  8078.     ???
  8079. Return: ???
  8080. Note:    protected mode only???
  8081. SeeAlso: AX=EB02h,AX=EB04h,INT 31/AX=0506h
  8082. --------E-21EB02-----------------------------
  8083. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET
  8084.     AX = EB02h
  8085.     ???
  8086. Return: ???
  8087. Note:    protected mode only???
  8088. SeeAlso: AX=EB00h,AX=EB04h
  8089. --------E-21EB03-----------------------------
  8090. INT 21 - OS/386 VMM - FREE MAPPED PAGES
  8091.     AX = EB03h
  8092.     ???
  8093. Return: ???
  8094. Note:    protected mode only???
  8095. SeeAlso: AX=EB05h,INT 31/AX=0801h
  8096. --------E-21EB04-----------------------------
  8097. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET
  8098.     AX = EB04h
  8099.     ???
  8100. Return: ???
  8101. Note:    protected mode only???
  8102. SeeAlso: AX=EB00h,AX=EB02h
  8103. --------E-21EB05-----------------------------
  8104. INT 21 - OS/386 VMM - MAP PAGES
  8105.     AX = EB05h
  8106.     ???
  8107. Return: ???
  8108. Note:    protected mode only???
  8109. SeeAlso: AX=EB03h,INT 31/AX=0800h
  8110. --------E-21EB06-----------------------------
  8111. INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY
  8112.     AX = EB06h
  8113.     ???
  8114. Return: ???
  8115. Note:    protected mode only???
  8116. SeeAlso: AX=EB07h,INT 31/AX=0600h
  8117. --------E-21EB07-----------------------------
  8118. INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES
  8119.     AX = EB07h
  8120.     ???
  8121. Return: ???
  8122. Note:    protected mode only???
  8123. SeeAlso: AX=EB06h,INT 31/AX=0601h
  8124. --------N-21EC-------------------------------
  8125. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE
  8126.     AH = ECh
  8127.     DS:DX -> ASCIZ filename
  8128. Return: AL = status
  8129.         00h successful
  8130.         FFh file not found
  8131. Desc:    unlock the specified file but retain it in the log table
  8132. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  8133.       Alloy NTNX
  8134. SeeAlso: AH=CDh,AH=EBh"NetWare",AH=EDh"NetWare"
  8135. --------T-21EC-------------------------------
  8136. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  8137.     AH = ECh
  8138. Return: ES = segment of virtual screen
  8139. Desc:    determine the address of the virtual screen to which the program
  8140.       should write instead of the actual video memory, so that the
  8141.       multitasked programs do not interfere with each other's output
  8142. Notes:    screen address can change if task-switching is on!!
  8143.     identical to AH=FCh
  8144. SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"
  8145. --------E-21EC-------------------------------
  8146. INT 21 - OS/286, OS/386 - BLOCK TRANSFER
  8147.     AH = ECh
  8148.     ???
  8149. Return: ???
  8150. --------v-21EC59-----------------------------
  8151. INT 21 - VIRUS - "Terror" - INSTALLATION CHECK
  8152.     AX = EC59h
  8153. Return: BP = EC59h if resident
  8154. SeeAlso: AH=E7h"VIRUS",AH=EEh"VIRUS"
  8155. --------N-21ED-------------------------------
  8156. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE
  8157.     AH = EDh
  8158.     DS:DX -> ASCIZ filename
  8159. Return: AL = status
  8160.         00h successful
  8161.         FFh no files found
  8162. Desc:    unlock the file and remove it from the log table
  8163. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  8164.       Alloy NTNX
  8165. SeeAlso: AH=CBh"NetWare",AH=CEh,AH=CFh,AH=EBh"NetWare",AH=ECh"NetWare"
  8166. --------E-21ED-------------------------------
  8167. INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR
  8168.     AH = EDh
  8169.     ???
  8170. Return: ???
  8171. Note:    protected mode only???
  8172. SeeAlso: AH=E9h"OS/286"
  8173. --------N-21EE-------------------------------
  8174. INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS
  8175.     AH = EEh
  8176. Return: CX:BX:AX = six-byte physical address
  8177. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  8178.       Alloy NTNX
  8179. SeeAlso: AH=E3h/SF=13h
  8180. --------T-21EE-------------------------------
  8181. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  8182.     AH = EEh
  8183.     AL = number of 55ms time slices to give away
  8184. Return: returns after giving away time slices
  8185. SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"
  8186. --------v-21EE-------------------------------
  8187. INT 21 - VIRUS - "Jerusalem-G", "Pregnant" - INSTALLATION CHECK
  8188.     AH = EEh
  8189. Return: AX = 0300h if "Jerusalem-G" resident
  8190.     AL = 05h if "Pregnant" resident
  8191. SeeAlso: AH=DDh"VIRUS",AX=EC59h,AH=F0h"VIRUS"
  8192. --------N-21EF00-----------------------------
  8193. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE
  8194.     AX = EF00h
  8195. Return: ES:SI -> network shell's 32-byte drive handle table
  8196.     AX = 0000h
  8197. Notes:    this function is supported by Advanced NetWare 1.0+
  8198.     each byte in the drive handle table contains the directory handle for
  8199.       the corresponding drive, or 00h if not mapped to a directory
  8200. SeeAlso: AX=EF01h,AX=EF02h,AX=EF03h,AX=EF04h
  8201. --------N-21EF01-----------------------------
  8202. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE
  8203.     AX = EF01h
  8204. Return: ES:SI -> network shell's 32-byte drive flag table (see below)
  8205.     AX = 0000h
  8206. Notes:    this function is supported by Advanced NetWare 1.0+
  8207.     each byte in the drive flag table corresponds to a drive
  8208. SeeAlso: AX=EF00h,AX=EF02h,AX=EF03h
  8209.  
  8210. Values in drive flag table:
  8211.  00h    drive is not mapped
  8212.  01h    permanent network drive
  8213.  02h    temporary network drive
  8214.  80h    mapped to local drive
  8215.  81h    local drive used as permanent network drive
  8216.  82h    local drive used as temporary network drive
  8217. --------N-21EF02-----------------------------
  8218. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID TABLE
  8219.     AX = EF02h
  8220. Return: ES:SI -> network shell's 32-byte drive conection ID table
  8221.     AX = 0000h
  8222. Notes:    this function is supported by Advanced NetWare 1.0+
  8223.     each byte in the connection ID table corresponds to a drive and
  8224.       contains either the connection ID (1-8) of the server for that drive
  8225.       or 00h if the drive is not mapped to a file server
  8226. SeeAlso: AX=EF01h,AX=EF03h,AX=F002h
  8227. --------N-21EF03-----------------------------
  8228. INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID TABLE
  8229.     AX = EF03h
  8230. Return: ES:SI -> network shell's connection ID table (see below)
  8231.     AX = 0000h
  8232. Note:    this function is supported by Advanced NetWare 1.0+
  8233. SeeAlso: AX=EF00h,AX=EF02h,AX=EF04h,AX=F002h
  8234.  
  8235. Format of connection ID table [one entry of eight-element array]:
  8236. Offset    Size    Description
  8237.  00h    BYTE    in use flag
  8238.         E0h AES temporary
  8239.         F8h IPX in critical section
  8240.         FAh processing
  8241.         FBh holding
  8242.         FCh AES waiting
  8243.         FDh waiting
  8244.         FEh receiving
  8245.         FFh sending
  8246.  01h    BYTE    order number assigned to server (1-8)
  8247.  02h    DWORD    file server's network address (big-endian)
  8248.  06h  6 BYTEs    file server's node address (big-endian)
  8249.  0Ch    WORD    socket number (big-endian)
  8250.  0Eh    WORD    base receive timeout in clock ticks (big-endian)
  8251.  10h  6 BYTEs    preferred routing node (big-endian)
  8252.  16h    BYTE    packet sequence number
  8253.  17h    BYTE    connection number (FFh = no connection)
  8254.  18h    BYTE    connection status (00h if active)
  8255.  19h    WORD    maximum receive timeout in clock ticks (big-endian)
  8256.  1Bh  5 BYTEs    reserved
  8257. --------N-21EF04-----------------------------
  8258. INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME TABLE
  8259.     AX = EF04h
  8260. Return: ES:SI -> network shell's file server name table (see below)
  8261.     AX = 0000h
  8262. Notes:    this function is supported by Advanced NetWare 1.0+
  8263.     the name table consists of eight 48-byte entries, each consisting of
  8264.       an ASCIZ server name for the corresponding entry in the connection
  8265.       ID table
  8266. SeeAlso: AX=EF03h
  8267. --------T-21F0-------------------------------
  8268. INT 21 - DoubleDOS - MENU CONTROL
  8269.     AH = F0h
  8270.     AL = subfunction
  8271.         01h exchange tasks
  8272.         73h resume invisible job if suspended
  8273.         74h kill other job
  8274.         75h suspend invisible job
  8275. Note:    identical to AH=E0h
  8276. SeeAlso: AH=E0h"DoubleDOS"
  8277. --------v-21F0-------------------------------
  8278. INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK
  8279.     AH = F0h
  8280. Return: AX = 0300h if resident
  8281. SeeAlso: AH=EEh"VIRUS",AH=F1h"VIRUS"
  8282. --------N-21F000-----------------------------
  8283. INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID
  8284.     AX = F000h
  8285.     DL = connection ID of prefered file server (1-8) or 00h for none
  8286. Notes:    this function is supported by Advanced NetWare 1.0+
  8287.     the preferred connection ID is set to 00h by the shell on EOJ
  8288. SeeAlso: AH=D6h,AX=EF03h,AX=F001h,AX=F002h,AX=F005h
  8289. --------N-21F001-----------------------------
  8290. INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID
  8291.     AX = F001h
  8292. Return: AL = connection ID of preferred file server (1-8), 00h if not set
  8293. Notes:    this function is supported by Advanced NetWare 1.0+
  8294.     the preferred connection ID is set to 00h by the shell on EOJ
  8295. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  8296. --------N-21F002-----------------------------
  8297. INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID
  8298.     AX = F002h
  8299. Return: AL = connection ID of current default file server (1-8) (see AX=EF03h)
  8300. Note:    this function is supported by Advanced NetWare 1.0+
  8301. SeeAlso: AX=EF03h,AX=F000h,AX=F004h
  8302. --------N-21F003-----------------------------
  8303. INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS
  8304.     AX = F003h
  8305. Return: AH = status
  8306.         00h not active
  8307.         FFh active
  8308.         AL = connection ID (01h-08h)
  8309. Note:    this function is supported by Advanced NetWare 1.0+
  8310. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h,AH=DFh/DL=04h
  8311. --------N-21F004-----------------------------
  8312. INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID
  8313.     AX = F004h
  8314.     DL = connection ID of primary file server (1-8) or 00h for none
  8315. Note:    this function is supported by Advanced NetWare 2.0+
  8316. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  8317. --------N-21F005-----------------------------
  8318. INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID
  8319.     AX = F005h
  8320. Return: AL = connection ID of primary file server (1-8), 00h if not set
  8321. Notes:    this function is supported by Advanced NetWare 2.0+
  8322.     by default, the primary file server is the one from which the login
  8323.       script executed; it is set to 00h if the workstation is not logged in
  8324.       and when it detaches from its primary file server
  8325. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F004h
  8326. --------N-21F1-------------------------------
  8327. INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION
  8328.     AH = F1h
  8329.     AL = subfunction
  8330.         00h attach to file server
  8331.         DL = preferred file server (01h-08h)
  8332.         01h detach from file server
  8333.         DL = connection ID
  8334.         02h logout from file server
  8335.         DL = connection ID
  8336. Return: AL = status
  8337.         00h successful
  8338.         F8h already attached to server
  8339.         F9h connection table full
  8340.         FAh no more server slots
  8341.         FCh unknown file server
  8342.         FEh server bindery locked
  8343.         FFh no response from server, or connection does not exist
  8344. Note:    these functions are supported by Advanced NetWare 1.0+
  8345. SeeAlso: AH=D7h"NetWare",AH=E3h/SF=14h
  8346. --------T-21F1-------------------------------
  8347. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  8348.     AH = F1h
  8349. SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS"
  8350. SeeAlso: AH=F8h"DoubleDOS"
  8351. --------v-21F1-------------------------------
  8352. INT 21 - VIRUS - "F1-337" - ???
  8353.     AH = F1h
  8354.     ???
  8355. Return: ???
  8356. SeeAlso: AH=F0h"VIRUS",AX=F2AAh
  8357. --------N-21F2-------------------------------
  8358. INT 21 u - Novell NetWare v3.01+ shell interface - MULTIPLEXOR
  8359.     AH = F2h
  8360.     AL = function
  8361.         15h broadcast services (see AH=E1h"NetWare")
  8362.         16h file/directory services (see AH=E2h"NetWare")
  8363.         17h connection control (see AH=E3h"NetWare")
  8364.     CX = length of request buffer in bytes
  8365.     DX = length of reply buffer in bytes
  8366.     DS:SI -> request buffer (contents vary by function)
  8367.     ES:DI -> reply buffer (contents vary by function)
  8368. Return: AL = status
  8369.     reply buffer filled as appropriate for function
  8370. Note:    this is a multiplexor providing a "raw" interface to the underlying
  8371.       Netware Core Protocol.  Many functions which were accessed via a
  8372.       separate AH function in older versions can also be accessed here
  8373.       (the function number in AL is added to CCh to get the old function
  8374.       number which is desired), but some NetWare 3.x calls appear to be
  8375.       available only here.
  8376. SeeAlso: AX=F244h
  8377. --------T-21F2-------------------------------
  8378. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  8379.     AH = F2h
  8380.     AL = character
  8381. Return: AL = 00h successful
  8382.          01h buffer full (128 characters)
  8383. SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS"
  8384. SeeAlso: AH=F8h"DoubleDOS"
  8385. --------N-21F244-----------------------------
  8386. INT 21 - Novell NetWare - FILE SERVICES - ERASE FILES
  8387.     AX = F244h
  8388.     DS:SI -> request buffer (see below)
  8389.     ES:DI -> reply buffer (ignored???)
  8390. Return: AL = status
  8391.         00h successful
  8392.         98h nonexistent volume
  8393.         9Bh invaid directory handle
  8394.         9Ch invalid path
  8395.         FFh no files found
  8396. Note:    this function only marks the file for deletion; use AH=E2h/SF=CEh to
  8397.       actually delete all marked files
  8398. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=0Bh,AH=E3h/SF=CEh
  8399.  
  8400. Format of request buffer:
  8401. Offset    Size    Description
  8402.  00h    BYTE    directory handle
  8403.  01h    BYTE    search attributes (see AX=4301h)
  8404.  02h    BYTE    length of filespec
  8405.  03h  N BYTEs    ASCIZ filespec (may include wildcards)
  8406. --------v-21F2AA-----------------------------
  8407. INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK
  8408.     AX = F2AAh
  8409. Return: AH = AAh if resident
  8410. SeeAlso: AH=F1h"VIRUS",AH=F3h"VIRUS"
  8411. --------N-21F3-------------------------------
  8412. INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY
  8413.     AH = F3h
  8414.     ES:DI -> request buffer (see below)
  8415. Return: AL = status/error code
  8416.     CX:DX = number of bytes copied
  8417. Notes:    this function is supported by Advanced NetWare 2.0+
  8418.     both source and destination must be on the same file server
  8419. SeeAlso: AH=3Ch,AH=3Fh
  8420.  
  8421. Format of request buffer:
  8422. Offset    Size    Description
  8423.  00h    WORD    source file handle (as returned by AH=3Ch or AH=3Dh)
  8424.  02h    WORD    destination file handle
  8425.  04h    DWORD    starting offset in source
  8426.  08h    DWORD    starting offset in destination
  8427.  0Ch    DWORD    number of bytes to copy
  8428. --------T-21F3-------------------------------
  8429. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  8430.     AH = F3h
  8431.     AL = character
  8432. Return: AL = 00h successful
  8433.          01h buffer full (128 characters)
  8434. SeeAlso: AH=E3h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  8435. SeeAlso: AH=F8h"DoubleDOS"
  8436. --------v-21F3-------------------------------
  8437. INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK
  8438.     AH = F3h
  8439. Return: AX = 0400h if resident
  8440. SeeAlso: AH=D5h"Carfield",AX=F2AAh,AH=F7h"VIRUS"
  8441. --------T-21F400-----------------------------
  8442. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  8443.     AX = F400h
  8444. Return: AL = 00h if DoubleDOS not present
  8445.        = 01h if running in visible DoubleDOS partition
  8446.        = 02h if running in the invisible DoubleDOS partition
  8447. SeeAlso: AX=E400h,AH=F5h"DoubleDOS"
  8448. --------T-21F5-------------------------------
  8449. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  8450.     AH = F5h
  8451. Return: AL = 00h no program in other partition
  8452.        = 01h program in other partition is running
  8453.        = 02h program in other partition is suspended
  8454. SeeAlso: AH=E5h"DoubleDOS",AX=F400h"DoubleDOS"
  8455. --------v-21F7-------------------------------
  8456. INT 21 - VIRUS - "GP1" - INSTALLATION CHECK
  8457.     AH = F7h
  8458. Return: AX = 0300h if resident
  8459. SeeAlso: AH=F0h"VIRUS",AH=FBh"VIRUS"
  8460. --------D-21F8-------------------------------
  8461. INT 21 - DOS v2.11 - SET OEM INT 21 HANDLER
  8462.     AH = F8h
  8463.     DS:DX -> OEM INT 21 handler for functions F9h to FFh
  8464.          FFFFh:FFFFh disables OEM handler
  8465. Notes:    this function is supported by Toshiba T1000 ROM MS-DOS 2.11
  8466.     calls to AH=F9h through AH=FFH will return AL=00h if no handler set
  8467.     handler is called with all registers exactly as set by caller, and
  8468.       should exit with IRET
  8469. SeeAlso: AH=F9h"OEM"
  8470. --------T-21F8-------------------------------
  8471. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  8472.     AH = F8h
  8473.     AL = 00h set flags for this program
  8474.        = 01h set flags for other program
  8475.     DX = keyboard control flags (see AH=E8h"DoubleDOS")
  8476. Return: DX = previous flags
  8477. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  8478.       disabling any of the other keystrokes disables them completely
  8479.     this function is identical to AH=E8h
  8480. SeeAlso: AH=E8h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  8481. SeeAlso: AH=F3h"DoubleDOS"
  8482. --------D-21F9-------------------------------
  8483. INT 21 - DOS v2.11 - OEM FUNCTION
  8484.     AH = F9h
  8485. SeeAlso: AH=F8h"OEM",AH=FAh"OEM"
  8486. --------T-21F9-------------------------------
  8487. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  8488.     AH = F9h
  8489.     AL = 00h visible program gets 70%, invisible gets 30% (default)
  8490.        = 01h visible program gets 50%, invisible gets 50%
  8491.        = 02h visible program gets 30%, invisible gets 70%
  8492.        = 03h Top program gets 70%, bottom program gets 30%
  8493.        = 04h Top program gets 30%, bottom program gets 70%
  8494.        = 05h get current priority
  8495.         Return: AL = priority setting
  8496. Note:    identical to AH=E9h
  8497. SeeAlso: AH=E9h"DoubleDOS",AH=FAh"DoubleDOS",AH=FBh"DoubleDOS"
  8498. --------D-21FA-------------------------------
  8499. INT 21 - DOS v2.11 - OEM FUNCTION
  8500.     AH = FAh
  8501. SeeAlso: AH=F8h"OEM",AH=F9h"OEM",AH=FBh"OEM"
  8502. --------T-21FA-------------------------------
  8503. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  8504.     AH = FAh
  8505. Return: task switching turned off
  8506. SeeAlso: AH=EAh"DoubleDOS",AH=F9h"DoubleDOS",AH=FBh"DoubleDOS"
  8507. SeeAlso: INT FA"DoubleDOS"
  8508. --------v-21FA--DX5945-----------------------
  8509. INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API
  8510.     AH = FAh
  8511.     DX = 5945h
  8512.     AL = function (00h-02h for VDEFEND, 00h-07h for VSAFE and VWATCH)
  8513. Return: varies by function
  8514. Note:    this API is identical to the API on INT 13/AH=FAh and INT 16/AH=FAh,
  8515.       so it is listed in its entirety only under INT 16/AX=FA00h and
  8516.       following
  8517. SeeAlso: INT 13/AX=FA00h,INT 16/AX=FA00h
  8518. --------D-21FB-------------------------------
  8519. INT 21 - DOS v2.11 - OEM FUNCTION
  8520.     AH = FBh
  8521. SeeAlso: AH=F8h"OEM",AH=FAh"OEM",AH=FCh"OEM"
  8522. --------T-21FB-------------------------------
  8523. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  8524.     AH = FBh
  8525. Return: task switching turned on
  8526. SeeAlso: AH=EBh"DoubleDOS",AH=F9h"DoubleDOS",AH=FAh"DoubleDOS"
  8527. SeeAlso: INT FB"DoubleDOS"
  8528. --------v-21FB-------------------------------
  8529. INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK
  8530.     AH = FBh
  8531. Return: AH = 00h if resident
  8532. SeeAlso: AH=F7h"VIRUS",AX=FB0Ah
  8533. --------v-21FB0A-----------------------------
  8534. INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK
  8535.     AX = FB0Ah
  8536. Return: AX = 0AFBh if resident
  8537. SeeAlso: AH=FBh"VIRUS",AH=FCh"VIRUS"
  8538. --------D-21FC-------------------------------
  8539. INT 21 - DOS v2.11 - OEM FUNCTION
  8540.     AH = FCh
  8541. SeeAlso: AH=F8h"OEM",AH=FBh"OEM",AH=FDh"OEM"
  8542. --------T-21FC-------------------------------
  8543. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  8544.     AH = FCh
  8545. Return: ES = segment of virtual screen
  8546. Desc:    Determine the address of the virtual screen to which the program
  8547.       should write instead of the actual video memory, so that the
  8548.       multitasked programs do not interfere with each other's output.
  8549. Notes:    screen address can change if task-switching is on!!
  8550.     identical to AH=ECh
  8551. SeeAlso: AH=ECh"DoubleDOS",INT FC"DoubleDOS"
  8552. --------v-21FC-------------------------------
  8553. INT 21 - VIRUS - "Troi" - INSTALLATION CHECK
  8554.     AH = FCh
  8555. Return: AL = A5h if resident
  8556. SeeAlso: AH=FB0Ah"VIRUS",AH=FDh"VIRUS"
  8557. --------D-21FD-------------------------------
  8558. INT 21 - DOS v2.11 - OEM FUNCTION
  8559.     AH = FDh
  8560. SeeAlso: AH=F8h"OEM",AH=FCh"OEM",AH=FEh"DOS"
  8561. --------v-21FD-------------------------------
  8562. INT 21 - VIRUS - "Border" - INSTALLATION CHECK
  8563.     AH = FDh
  8564. Return: AH = 13h if resident
  8565. SeeAlso: AH=FCh"VIRUS",AH=FEh"VIRUS"
  8566. --------D-21FE-------------------------------
  8567. INT 21 - DOS v2.11 - OEM FUNCTION
  8568.     AH = FEh
  8569. SeeAlso: AH=F8h"OEM",AH=FDh"OEM",AH=FFh"OEM"
  8570. --------T-21FE-------------------------------
  8571. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  8572.     AH = FEh
  8573.     AL = number of 55ms time slices to give away
  8574. Return: returns after giving away time slices
  8575. SeeAlso: AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  8576. --------v-21FE-------------------------------
  8577. INT 21 - VIRUS - "483" - INSTALLATION CHECK
  8578.     AH = FEh
  8579. Return: AH = 00h if resident
  8580. SeeAlso: AH=FDh"VIRUS",AX=FE01h
  8581. --------v-21FE01-----------------------------
  8582. INT 21 - VIRUS - "Flip" - INSTALLATION CHECK
  8583.     AX = FE01h
  8584. Return: AX = 01FEh if resident
  8585. SeeAlso: AH=FEh"VIRUS",AX=FE02h
  8586. --------v-21FE02-----------------------------
  8587. INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK
  8588.     AX = FE02h
  8589. Return: AX = 01FDh if resident
  8590. SeeAlso: AX=FE01h,AX=FEDCh"VIRUS"
  8591. --------d-21FEDC-----------------------------
  8592. INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK
  8593.     AX = FEDCh
  8594. Return: AX = CDEFh if installed
  8595. Program: the PCMANAGE/DCOMPRES combination from PC Magazine permits
  8596.       infrequently-used files to be compressed to save space and
  8597.       transparently expanded when accessed
  8598. SeeAlso: AH=DCh,INT 2D/AL=10h"dLite"
  8599. --------v-21FEDC-----------------------------
  8600. INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK
  8601.     AX = FEDCh
  8602. Return: AL = DCh if resident
  8603. SeeAlso: AX=FE02h,AH=FFh"VIRUS"
  8604. --------D-21FF-------------------------------
  8605. INT 21 - DOS v2.11 - OEM FUNCTION
  8606.     AH = FFh
  8607. SeeAlso: AH=F8h"OEM",AH=FEh"OEM"
  8608. --------K-21FF-------------------------------
  8609. INT 21 - CED (Command EDitor) - INSTALLABLE COMMANDS
  8610.     AH = FFH
  8611.     AL = subfunction
  8612.         00h add installable command
  8613.            BL = mode - bit 0 = 1 callable from DOS prompt
  8614.                bit 1 = 1 callable from application
  8615.            DS:SI -> CR-terminated command name
  8616.            ES:DI -> FAR routine entry point
  8617.         01h remove installable command
  8618.            DS:SI -> CR-terminated command name
  8619.         02h reserved, may be used to test for CED installation
  8620. Return: CF clear if successful
  8621.     CF set on error
  8622.         AX = 01h invalid function
  8623.          02h command not found (subfunction 01h only)
  8624.          08h insufficient memory (subfunction 00h only)
  8625.          0Eh bad data (subfunction 00h only)
  8626.     AH = FFh if CED not installed
  8627. Program: CED is a shareware DOS command-line enhancer by Christopher J. Dunford
  8628. SeeAlso: AX=0A00h
  8629. --------E-21FF-------------------------------
  8630. INT 21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS
  8631.     AH = FFh
  8632.     AL = function
  8633.         01h create file
  8634.         02h open file
  8635.         03h get file statistics
  8636.         04h get time of day
  8637.         05h set time of day
  8638.         06h stat
  8639.         07h system
  8640. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  8641.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  8642. SeeAlso: INT 10/AH=FFh"GO32"
  8643. --------K-21FF-------------------------------
  8644. INT 21 - DOSED.COM - INSTALLATION CHECK
  8645.     AH = FFh
  8646.     DS:SI -> "DOSED"
  8647.     ES = 0000h
  8648. Return: ES:DI -> "DOSED" if installed
  8649. Program: DOSED is a free DOS commandline editor/history buffer by Sverre H.
  8650.       Huseby
  8651. --------N-21FF-------------------------------
  8652. INT 21 - Topware Network Operating System - ???
  8653.     AH = FFh
  8654.     ???
  8655. Return: ???
  8656. SeeAlso: INT 2F/AX=FF00h
  8657. --------v-21FF-------------------------------
  8658. INT 21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK
  8659.     AH = FFh
  8660. Return: AH = 00h if "Tumen 0.5" or "Hero" resident
  8661.     AX = 0400h if "Sunday" resident
  8662. SeeAlso: AX=FEDCh"VIRUS",AX=FF0Fh
  8663. --------E-21FF-------------------------------
  8664. INT 21 UP - Rational Systems DOS/4GW - API
  8665.     AH = FFh
  8666.     DH = function (00h-17h) (see also separate entries below)
  8667.     DL = subfunction or argument
  8668. Return: CF clear if valid function number
  8669.         AX = status???
  8670.     CF set if invalid function
  8671. SeeAlso: INT 15/AX=BFDCh
  8672. --------E-21FF--DH02-------------------------
  8673. INT 21 UP - Rational Systems DOS/4GW - SET ???
  8674.     AH = FFh
  8675.     DH = 02h
  8676.     DL = ???
  8677. Return: CF clear
  8678. --------E-21FF--DH05-------------------------
  8679. INT 21 UP - Rational Systems DOS/4GW - ???
  8680.     AH = FFh
  8681.     DH = 05h
  8682.     BX = ???
  8683. Return: ???
  8684. --------E-21FF--DH06-------------------------
  8685. INT 21 UP - Rational Systems DOS/4GW - ???
  8686.     AH = FFh
  8687.     DH = 06h
  8688.     BX = ???
  8689. Return: ???
  8690. --------E-21FF--DH07-------------------------
  8691. INT 21 UP - Rational Systems DOS/4GW - ???
  8692.     AH = FFh
  8693.     DH = 07h
  8694.     BX = ???
  8695. Return: ???
  8696. --------E-21FF--DH08-------------------------
  8697. INT 21 UP - Rational Systems DOS/4GW - ???
  8698.     AH = FFh
  8699.     DH = 08h
  8700.     BX = ???
  8701.     CX = ???
  8702.     ES = ???
  8703. Return: ???
  8704. --------E-21FF--DH09-------------------------
  8705. INT 21 UP - Rational Systems DOS/4GW - GET ???
  8706.     AH = FFh
  8707.     DH = 09h
  8708. Return: ES:BX -> ???
  8709. --------E-21FF--DH0A-------------------------
  8710. INT 21 UP - Rational Systems DOS/4GW - ???
  8711.     AH = FFh
  8712.     DH = 0Ah
  8713.     AL = ???
  8714.     BX = ???
  8715.     CX = ???
  8716. Return: ES = ??? or 0000h
  8717. --------E-21FF--DH0B-------------------------
  8718. INT 21 UP - Rational Systems DOS/4GW - ???
  8719.     AH = FFh
  8720.     DH = 0Bh
  8721.     AL = ???
  8722.     BX = ???
  8723.     CX = ???
  8724. Return: ???
  8725. --------E-21FF--DH0C-------------------------
  8726. INT 21 UP - Rational Systems DOS/4GW - GET/SET ???
  8727.     AH = FFh
  8728.     DH = 0Ch
  8729.     DL = ??? (00h or 01h)
  8730. Return: CF clear if successful
  8731.         AL = previous value of ???
  8732.     CF set on error (DL out of range)
  8733.         AX = FFFFh
  8734. --------E-21FF--DH0D-------------------------
  8735. INT 21 UP - Rational Systems DOS/4GW - ???
  8736.     AH = FFh
  8737.     DH = 0Dh
  8738.     ???
  8739. Return: ???
  8740. --------E-21FF--DH0E-------------------------
  8741. INT 21 UP - Rational Systems DOS/4GW - ???
  8742.     AH = FFh
  8743.     DH = 0Eh
  8744. Return: DX:AX -> XBRK structure (see INT 15/AX=BF02h)
  8745.     BX = ???
  8746.     CX = ???
  8747. SeeAlso: INT 15/AX=BF02h
  8748. --------E-21FF--DH0F-------------------------
  8749. INT 21 UP - Rational Systems DOS/4GW - ???
  8750.     AH = FFh
  8751.     DH = 0Fh
  8752.     ???
  8753. Return: ???
  8754. --------E-21FF--DH10-------------------------
  8755. INT 21 UP - Rational Systems DOS/4GW - ???
  8756.     AH = FFh
  8757.     DH = 10h
  8758.     AL = ???
  8759.     BX = ???
  8760.     CX = ???
  8761.     DI = ???
  8762.     SI = ???
  8763. Return: ???
  8764. Note:    among other things, frees two memory blocks via INT 21/AH=49h
  8765. --------E-21FF--DH11-------------------------
  8766. INT 21 UP - Rational Systems DOS/4GW - NOP
  8767.     AH = FFh
  8768.     DH = 11h
  8769. --------E-21FF--DH12-------------------------
  8770. INT 21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS
  8771.     AH = FFh
  8772.     DH = 12h
  8773.     DS:SI -> new ???
  8774.     ES:DI -> new ???
  8775. Return: DS:SI -> previous ???
  8776.     ES:DI -> previous ???
  8777. --------E-21FF--DH13-------------------------
  8778. INT 21 UP - Rational Systems DOS/4GW - ???
  8779.     AH = FFh
  8780.     DH = 13h
  8781.     AL = ???
  8782.     ES = ???
  8783. Return: ???
  8784. --------E-21FF--DH14-------------------------
  8785. INT 21 UP - Rational Systems DOS/4GW - ???
  8786.     AH = FFh
  8787.     DH = 14h
  8788.     BX = ???
  8789.     CX = ???
  8790. Return: CF clear
  8791.         AX = ???
  8792.         DX = ???
  8793. --------E-21FF--DH15-------------------------
  8794. INT 21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS
  8795.     AH = FFh
  8796.     DH = 15h
  8797. Return: CF clear
  8798.         DX:AX -> FAR function for ???
  8799.         CX:BX -> FAR function for ???
  8800.         SI:DI -> FAR function for ???
  8801. --------E-21FF--DH16-------------------------
  8802. INT 21 UP - Rational Systems DOS/4GW - GET ???
  8803.     AH = FFh
  8804.     DH = 16h
  8805. Return: AX = ???
  8806. --------E-21FF--DH17-------------------------
  8807. INT 21 UP - Rational Systems DOS/4GW - ???
  8808.     AH = FFH
  8809.     DH = 17h
  8810.     AL = ???
  8811.     DL = ???
  8812. Return: ???
  8813. --------E-21FF00DX0078-----------------------
  8814. INT 21 - Rational Systems DOS/4G - INSTALLATION CHECK
  8815.     AX = FF00h
  8816.     DX = 0078h
  8817. Return: AL <> 00h if installed
  8818.         GS = segment of kernel if nonzero
  8819. SeeAlso: INT 15/AX=BF02h
  8820. --------v-21FF0F-----------------------------
  8821. INT 21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK
  8822.     AX = FF0Fh
  8823. Return: AX = 0101h if resident
  8824. Program: FLU_SHOT+ is an antivirus/antitrojan program by Ross M. Greenberg and
  8825.       Software Concepts Design
  8826. Note:    the "PSQR/1720" virus calls this function to determine whether
  8827.       FLU_SHOT+ is present
  8828. SeeAlso: AH=FFh"VIRUS",AX=FF10h
  8829. --------v-21FF10-----------------------------
  8830. INT 21 - VIRUS - "Twins" - INSTALLATION CHECK
  8831.     AX = FF10h
  8832. Return: AL = 07h if resident
  8833. SeeAlso: AX=FF0Fh,AX=FFFEh
  8834. --------v-21FFFE-----------------------------
  8835. INT 21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK
  8836.     AX = FFFEh
  8837. Return: AX = 0815h if resident
  8838. SeeAlso: AX=FF10h,AX=FFFFh
  8839. --------v-21FFFF-----------------------------
  8840. INT 21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK
  8841.     AX = FFFFh
  8842. Return: AX = 0000h if "Ontario" resident
  8843.     AX = 1992h if "Year 1992"/"B1M92" resident
  8844. SeeAlso: AX=FF0Fh,AX=FFFFh/CX=0000h,INT 6B"VIRUS"
  8845. --------v-21FFFFCX0000-----------------------
  8846. INT 21 - VIRUS - "Revenge" - INSTALLATION CHECK
  8847.     AX = FFFFh
  8848.     CX = 0000h
  8849. Return: CX = 0006h if resident
  8850. SeeAlso: AX=FFFFh,INT 6B"VIRUS"
  8851. --------D-22---------------------------------
  8852. INT 22 - DOS 1+ - PROGRAM TERMINATION ADDRESS
  8853. Desc:    this vector specifies the address of the routine which is to be given
  8854.       control after a program is terminated; it should never be called
  8855.       directly, since it does not point at an interrupt handler
  8856. Notes:    this vector is restored from the DWORD at offset 0Ah in the PSP during
  8857.       termination, and then a FAR JMP is performed to the address in INT 22
  8858.     normally points at the instruction immediately following INT 21/AH=4Bh
  8859.       call which loaded the current program
  8860. SeeAlso: INT 20,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  8861. --------G-22---------------------------------
  8862. INT 22 - COMTROL HOSTESS i/ISA DEBUGGER - CHANGE FIRMWARE DEBUGGING PORT
  8863.     AL = new firmware debugging port
  8864. Return: ???
  8865. SeeAlso: INT 21"COMTROL HOSTESS",INT 23"COMTROL HOSTESS"
  8866. --------D-23---------------------------------
  8867. INT 23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER
  8868. ---DOS 1.x---
  8869. Return: AH = 00h abort program
  8870.     if all registers preserved, restart DOS call
  8871. ---DOS 2+---
  8872.     CF clear
  8873. Return: all registers preserved
  8874.     return via RETF or RETF 2 with CF set
  8875.         DOS will abort program with errorlevel 0
  8876.     else (RETF/RETF 2 with CF clear or IRET)
  8877.         interrupted DOS call is restarted
  8878. Notes:    this interrupt is invoked whenever DOS detects a ^C or ^Break; it
  8879.       should never be called directly
  8880.     MS-DOS 1.25 also invokes INT 23 on a divide overflow (INT 00)
  8881.     DOS remembers the stack pointer before calling INT 23, and if it is
  8882.       not the same on return, pops and discards the top word; this is what
  8883.       permits a return with RETF as well as IRET or RETF 2
  8884.     any DOS call may safely be made within the INT 23 handler, although
  8885.       the handler must to check for a recursive invocation if it does
  8886.       call DOS
  8887. SeeAlso: INT 1B
  8888. --------G-23---------------------------------
  8889. INT 23 - COMTROL HOSTESS i/ISA DEBUGGER - GET CONFIGURATION INFORMATION
  8890.     AL = query type
  8891.         00h get old config map
  8892.         Return: AX = old config map
  8893.         01h get dual-ported RAM map
  8894.         Return: BX:AX = dual-ported RAM map
  8895.         02h get SCC port map
  8896.         Return: BX:AX = SCC port map
  8897. SeeAlso: INT 22"COMTROL HOSTESS",INT 26"COMTROL HOSTESS"
  8898. --------D-24---------------------------------
  8899. INT 24 - DOS 1+ - CRITICAL ERROR HANDLER
  8900. Note:    invoked when a critical (usually hardware) error is encountered; should
  8901.       never be called directly
  8902. SeeAlso: INT 21/AH=95h
  8903.  
  8904. Critical error handler is invoked with:
  8905.     AH = type and processing flags
  8906.         bit 7 clear = disk I/O error
  8907.           set    = -- if block device, bad FAT image in memory
  8908.               -- if char device, error code in DI
  8909.         bit 6  unused
  8910.         bit 5 = 1 if Ignore allowed, 0 if not (DOS 3+)
  8911.         bit 4 = 1 if Retry allowed, 0 if not (DOS 3+)
  8912.         bit 3 = 1 if Fail allowed, 0 if not (DOS 3+)
  8913.         bit 2 \ disk area of error    00 = DOS area  01 = FAT
  8914.         bit 1 /            10 = root dir  11 = data area
  8915.         bit 0 = 1 if write, 0 if read
  8916.     AL = drive number if AH bit 7 clear
  8917.     BP:SI -> device driver header (BP:[SI+4] bit 15 set if char device)
  8918.     DI low byte contains error code if AH bit 7 set
  8919.        00h write-protection violation attempted
  8920.        01h unknown unit for driver
  8921.        02h drive not ready
  8922.        03h unknown command given to driver
  8923.        04h data error (bad CRC)
  8924.        05h bad device driver request structure length
  8925.        06h seek error
  8926.        07h unknown media type
  8927.        08h sector not found
  8928.        09h printer out of paper
  8929.        0Ah write fault
  8930.        0Bh read fault
  8931.        0Ch general failure
  8932.        0Dh (DOS 3+) sharing violation
  8933.        0Eh (DOS 3+) lock violation
  8934.        0Fh invalid disk change
  8935.        10h (DOS 3+) FCB unavailable
  8936.        11h (DOS 3+) sharing buffer overflow
  8937.        12h (DOS 4+) code page mismatch
  8938.        13h (DOS 4+) out of input
  8939.        14h (DOS 4+) insufficient disk space
  8940.     STACK:    DWORD    return address for INT 24 call
  8941.         WORD    flags pushed by INT 24
  8942.         WORD    original AX on entry to INT 21
  8943.         WORD    BX
  8944.         WORD    CX
  8945.         WORD    DX
  8946.         WORD    SI
  8947.         WORD    DI
  8948.         WORD    BP
  8949.         WORD    DS
  8950.         WORD    ES
  8951.         DWORD    return address for INT 21 call
  8952.         WORD    flags pushed by INT 21
  8953. Handler must return:
  8954.     AL = action code
  8955.         00h ignore error and continue processing request
  8956.         01h retry operation
  8957.         02h terminate program through the equivalent of INT 21/AH=4Ch
  8958.             (INT 20h for DOS 1.x)
  8959.         03h fail system call in progress
  8960.     SS,SP,DS,ES,BX,CX,DX preserved
  8961. Notes:    the only DOS calls the handler may make are INT 21/AH=01h-0Ch,30h,59h
  8962.     if the handler returns to the application by popping the stack, DOS
  8963.       will be in an unstable state until the first call with AH > 0Ch
  8964.     for DOS 3.1+, IGNORE (AL=00h) is turned into FAIL (AL=03h) on network
  8965.       critical errors
  8966.     if IGNORE specified but not allowed, it is turned into FAIL
  8967.     if RETRY specified but not allowed, it is turned into FAIL
  8968.     if FAIL specified but not allowed, it is turned into ABORT
  8969.     (DOS 3+) if a critical error occurs inside the critical error handler,
  8970.       the DOS call is automatically failed
  8971. --------D-25---------------------------------
  8972. INT 25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M)
  8973.     AL = drive number (00h = A:, 01h = B:, etc)
  8974.     CX = number of sectors to read
  8975.     DX = starting logical sector number (0000h - highest sector on drive) 
  8976.     DS:BX -> buffer for data
  8977. Return: CF clear if successful
  8978.     CF set on error
  8979.         AH = status
  8980.          80h device failed to respond (timeout)
  8981.          40h seek operation failed
  8982.          20h controller failed
  8983.          10h data error (bad CRC)
  8984.          08h DMA failure
  8985.          04h requested sector not found
  8986.          03h write-protected disk (INT 26 only)
  8987.          02h bad address mark
  8988.          01h bad command
  8989.         AL = error code (same as passed to INT 24 in DI)
  8990.         AX = 0207h if more than 64K sectors on drive
  8991.     may destroy all other registers except segment registers
  8992. Notes:    original flags are left on stack, and must be popped by caller
  8993.     this call bypasses the DOS filesystem
  8994. BUG:    DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
  8995.       invalid drive number
  8996. SeeAlso: INT 13/AH=02h,INT 26
  8997. --------D-25---------------------------------
  8998. INT 25 - DOS 3.31+ - ABSOLUTE DISK READ (>32M hard-disk partition)
  8999.     AL = drive number (0=A, 1=B, etc)
  9000.     CX = FFFFh
  9001.     DS:BX -> disk read packet (see below)
  9002. Return: same as above
  9003. Notes:    partition is potentially >32M (and requires this form of the call) if
  9004.       bit 1 of device attribute word in device driver is set
  9005.     original flags are left on stack, and must be removed by caller
  9006.     this call bypasses the DOS filesystem
  9007. SeeAlso: INT 13/AH=02h,INT 26
  9008.  
  9009. Format of disk read packet:
  9010. Offset    Size    Description
  9011.  00h    DWORD    sector number
  9012.  04h    WORD    number of sectors to read
  9013.  06h    DWORD    transfer address
  9014. --------d-25CDCD-----------------------------
  9015. INT 25 - Stacker - GET DEVICE DRIVER ADDRESS
  9016.     AX = CDCDh
  9017.     DS:BX -> buffer for address (see below)
  9018.     CX = 0001h
  9019.     DX = 0000h
  9020. Return: AX = CDCDh if Stacker installed
  9021.         DS:BX buffer filled
  9022.  
  9023. Format of driver address buffer:
  9024. Offset    Size    Description
  9025.  00h    WORD    signature CDCDh
  9026.  02h    WORD    ??? 0001h
  9027.  04h    DWORD    pointer to start of Stacker device driver
  9028.  
  9029. Format of device driver:
  9030. Offset    Size    Description
  9031.  00h    WORD    signature A55Ah
  9032.  02h    WORD    Stacker version * 64h
  9033.  04h    WORD    offset of volume-specific information offset table
  9034.         (list of WORDs, one per drive, containing offsets to various
  9035.         information)
  9036.  06h 56 BYTEs    n/a
  9037.  3Eh    BYTE    volume number, set after INT 21/AX=4404h
  9038.         (use to index into volume-specific info offset table)
  9039.  3Fh 19 BYTEs    n/a
  9040.  52h  4 BYTEs    ASCII string "SWAP"
  9041.  56h 26 BYTEs    drive mapping table (one byte for each drive A: through Z:)
  9042.  
  9043. Format of Stacker boot record:
  9044. Offset    Size    Description
  9045. 1F0h  8 BYTEs    Stacker signature (first byte is CDh)
  9046. 1F8h    DWORD    pointer to start of Stacker device driver
  9047. 1FCh    WORD    Stacker volume number
  9048. 1FEh    WORD    ???
  9049. --------c-25--FFSI4358-----------------------
  9050. INT 25 - PC-CACHE.SYS - INSTALLATION CHECK
  9051.     AL = FFh
  9052.     SI = 4358h
  9053. Return: SI = 6378h if installed
  9054.         CX = segment of device driver PC-CACHE.SYS
  9055.         DX = version (major in DH, minor in DL)
  9056. Program: PC-CACHE.SYS is a small device driver used by PC-Cache v5.x to obtain
  9057.       access to certain disk drivers for devices such as Bernoulli drives
  9058. SeeAlso: INT 13/AH=A0h
  9059. --------D-26---------------------------------
  9060. INT 26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M)
  9061.     AL = drive number (00h = A:, 01h = B:, etc)
  9062.     CX = number of sectors to write
  9063.     DX = starting logical sector number (0000h - highest sector on drive) 
  9064.     DS:BX -> data to write
  9065. Return: CF clear if successful
  9066.     CF set on error
  9067.         AH = status
  9068.          80h device failed to respond (timeout)
  9069.          40h seek operation failed
  9070.          20h controller failed
  9071.          10h data error (bad CRC)
  9072.          08h DMA failure
  9073.          04h requested sector not found
  9074.          03h write-protected disk (INT 26 only)
  9075.          02h bad address mark
  9076.          01h bad command
  9077.         AL = error code (same as passed to INT 24 in DI)
  9078.         AX = 0207h if more than 64K sectors on drive
  9079.     may destroy all other registers except segment registers
  9080. Notes:    original flags are left on stack, and must be popped by caller
  9081.     this call bypasses the DOS filesystem, though DOS 5+ invalidates any
  9082.       disk buffers referencing sectors which are written with this call
  9083. BUG:    DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
  9084.       invalid drive number
  9085. SeeAlso: INT 13/AH=03h,INT 25
  9086. --------D-26---------------------------------
  9087. INT 26 - DOS 3.31+ - ABSOLUTE DISK WRITE (>32M hard-disk partition)
  9088.     AL = drive number (0=A, 1=B, etc)
  9089.     CX = FFFFh
  9090.     DS:BX -> disk write packet (see below)
  9091. Return: same as above
  9092. Notes:    partition is potentially >32M (and requires this form of the call) if
  9093.       bit 1 of device attribute word in device driver is set
  9094.     original flags are left on stack, and must be removed by caller
  9095.     this call bypasses the DOS filesystem, though DOS 5+ invalidates any
  9096.       disk buffers referencing sectors which are written with this call
  9097. SeeAlso: INT 13/AH=03h,INT 25
  9098.  
  9099. Format of disk write packet:
  9100. Offset    Size    Description
  9101.  00h    DWORD    sector number
  9102.  04h    WORD    number of sectors to read
  9103.  06h    DWORD    transfer address
  9104. --------G-26---------------------------------
  9105. INT 26 - COMTROL HOSTESS i/ISA DEBUGGER - ENTER/EXIT EXTENDED ADDRESSING MODE
  9106.     ???
  9107. Return: ???
  9108. SeeAlso: INT 23"COMTROL HOSTESS",INT 27"COMTROL HOSTESS"
  9109. --------D-27---------------------------------
  9110. INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT
  9111.     DX = number of bytes to keep resident (max FFF0h)
  9112.     CS = segment of PSP
  9113. Return: never
  9114. Notes:    this is an obsolete call
  9115.     INT 22, INT 23, and INT 24 are restored from the PSP
  9116.     does not close any open files
  9117.     the minimum number of bytes which will remain resident is 110h for
  9118.       DOS 2.x and 60h for DOS 3+; there is no minimum for DOS 1.x, which
  9119.       implements this service in COMMAND.COM rather than the DOS kernel
  9120. SeeAlso: INT 21/AH=31h
  9121. --------G-27---------------------------------
  9122. INT 27 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE REMOTE TURBO DEBUGGER KERNEL
  9123.     ???
  9124. Return: ???
  9125. Desc:    invoke a copy of the remote Turbo Debugger kernel on the Hostess i
  9126.       controller
  9127. SeeAlso: INT 20"COMTROL HOSTESS",INT 26"COMTROL HOSTESS"
  9128. ---------------------------------------------
  9129.