home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / dos / tools / inter47 / interrup.f < prev    next >
Text File  |  1995-08-13  |  342KB  |  8,900 lines

  1. Interrupt List, part 6 of 13
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  3. --------D-2160-------------------------------
  4. INT 21 - DOS 3.0+ - "TRUENAME" - CANONICALIZE FILENAME OR PATH
  5.     AH = 60h
  6.     DS:SI -> ASCIZ filename or path
  7.     ES:DI -> 128-byte buffer for canonicalized name
  8. Return: CF set on error
  9.         AX = error code
  10.         02h invalid component in directory path or drive letter only
  11.         03h malformed path or invalid drive letter
  12.         ES:DI buffer unchanged
  13.     CF clear if successful
  14.         AH = 00h
  15.         AL = destroyed (00h or 5Ch or last char of current dir on drive)
  16.         buffer filled with qualified name of form D:\PATH\FILE.EXT or
  17.           \\MACHINE\PATH\FILE.EXT
  18. Desc:    determine the canonical name of the specified filename or path,
  19.       corresponding to the undocumented TRUENAME command in COMMAND.COM
  20. Notes:    the input path need not actually exist
  21.     letters are uppercased, forward slashes converted to backslashes,
  22.       asterisks converted to appropriate number of question marks, and
  23.       file and directory names are truncated to 8.3 if necessary.  (DR-DOS
  24.       3.41 and 5.0 do not expand asterisks)
  25.     '.' and '..' in the path are resolved
  26.     filespecs on local drives always start with "d:", those on network
  27.       drives always start with "\\"
  28.     if path string is on a JOINed drive, the returned name is the one that
  29.       would be needed if the drive were not JOINed; similarly for a
  30.       SUBSTed, ASSIGNed, or network drive letter.    Because of this, it is
  31.       possible to get a qualified name that is not legal under the current
  32.       combination of SUBSTs, ASSIGNs, JOINs, and network redirections
  33.     under DOS 3.3 through 6.00, a device name is translated differently if
  34.       the device name does not have an explicit directory or the directory
  35.       is \DEV (relative directory DEV from the root directory works
  36.       correctly).  In these cases, the returned string consists of the
  37.       unchanged device name and extension appended to the string X:/
  38.       (forward slash instead of backward slash as in all other cases) where
  39.       X is the default or explicit drive letter.
  40.     functions which take pathnames require canonical paths if invoked via
  41.       INT 21/AX=5D00h
  42.     supported by OS/2 v1.1 compatibility box
  43.     NetWare 2.1x does not support characters with the high bit set; early
  44.       versions of NetWare 386 support such characters except in this call.
  45.       In addition, NetWare returns error code 3 for the path "X:\"; one
  46.       should use "X:\." instead.
  47.     for DOS 3.3-6.0, the input and output buffers may be the same, as the
  48.       canonicalized name is built in an internal buffer and copied to the
  49.       specified output buffer as the very last step
  50.     for DR DOS 6.0, this function is not automatically called when on a
  51.       network.  Device drivers reportedly cannot make this call from their
  52.       INIT function.  Using the same pointer for both input and output
  53.       buffers is not supported in the April 1992 and earlier versions of
  54.       DR DOS
  55.     Corel's CORELCDX and MSCDEX without the /S switch return canonical
  56.       names of the form "\\D.\A.\path", where "D" is the CD-ROM drive
  57.       letter and "A" appears to indicate the first physical CD-ROM drive;
  58.       MSCDEX with the /S switch returns a canonical name with embedded
  59.       blanks.  Novell DOS 7 NWCDEX as of the 11/16/94 update returns the
  60.       same canonical path as MSCDEX; earlier revisions returned
  61.       "Cdex.D:\path", where "D" is the CD-ROM drive letter
  62. SeeAlso: AX=5FB3h,AX=7160h,INT 2F/AX=1123h,INT 2F/AX=1221h
  63. --------D-2161-------------------------------
  64. INT 21 - DOS 3.0+ - UNUSED
  65.     AH = 61h
  66. Return: AL = 00h
  67. Note:    this function does nothing and returns immediately
  68. --------O-2161--BP6467-----------------------
  69. INT 21 U - OS/2 v1.x FAPI - OS/2 FILE SYSTEM JOIN/SUBST
  70.     AH = 61h
  71.     BP = 6467h ("dg")
  72.     AL = function
  73.         00h list
  74.         01h add
  75.         02h delete
  76.     BX = drive number
  77.     CX = size of buffer
  78.     SI = type (0002h JOIN, 0003h SUBST)
  79.     ES:DI -> buffer
  80. Return: ???
  81. Notes:    used by JOIN and SUBST to communicate with the OS/2 file system
  82.     also supported by OS/2 v2.0+ Virtual DOS Machines
  83. --------D-2162-------------------------------
  84. INT 21 - DOS 3.0+ - GET CURRENT PSP ADDRESS
  85.     AH = 62h
  86. Return: BX = segment of PSP for current process
  87. Notes:    this function does not use any of the DOS-internal stacks and may
  88.       thus be called at any time, even during another INT 21h call
  89.     the current PSP is not necessarily the caller's PSP
  90.     identical to the undocumented AH=51h
  91. SeeAlso: AH=50h,AH=51h
  92. --------D-216300-----------------------------
  93. INT 21 - DOS 2.25 only - GET LEAD BYTE TABLE ADDRESS
  94.     AX = 6300h
  95. Return: CF clear if successful
  96.         DS:SI -> lead byte table (see #0951)
  97.     CF set on error
  98.         AX = error code (01h) (see #0885 at AH=59h)
  99. Notes:    does not preserve any registers other than SS:SP
  100.     the US version of MS-DOS 3.30 treats this as an unused function,
  101.       setting AL=00h and returning immediately
  102. SeeAlso: AX=6301h,AH=07h,AH=08h,AH=0Bh
  103.  
  104. Format of double-byte character set lead byte table entry:
  105. Offset    Size    Description    (Table 0951)
  106.  00h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  107.  02h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  108.     ...
  109.   N   2 BYTEs    00h,00h end flag
  110. --------D-216300-----------------------------
  111. INT 21 - Far East DOS 3.2+ - GET DOUBLE BYTE CHARACTER SET LEAD-BYTE TABLE
  112.     AX = 6300h
  113. Return: AL = error code
  114.         00h successful
  115.         DS:SI -> DBCS table (see #0952)
  116.         all other registers except CS:IP and SS:SP destroyed
  117.         FFh not supported
  118. Notes:    probably identical to AH=63h/AL=00h for DOS 2.25
  119.     the US version of MS-DOS 3.30 treats this as an unused function,
  120.       setting AL=00h and returning immediately
  121.     the US version of DOS 4.0+ accepts this function, but returns an empty
  122.       list
  123. SeeAlso: AX=6300h"DOS 2.25"
  124.  
  125. Format of DBCS table:
  126. Offset    Size    Description    (Table 0952)
  127.  00h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  128.  02h  2 BYTEs    low/high ends of a range of leading byte of double-byte chars
  129.     ...
  130.   N   2 BYTEs    00h,00h end flag
  131. --------D-216301-----------------------------
  132. INT 21 - DOS 2.25, Far East DOS 3.2+ - SET KOREAN (HANGEUL) INPUT MODE
  133.     AX = 6301h
  134.     DL = new mode
  135.         00h return only full characters on DOS keyboard input functions
  136.         01h return partially-formed (interim) characters also
  137. Return: AL = status
  138.         00h successful
  139.         FFh invalid mode
  140. Note:    Novell DOS 7 simply stores DL in the caller's PSP (see #0603 at AH=26h)
  141. SeeAlso: AH=07h,AH=08h,AH=0Bh,AH=63h,AX=6302h
  142. --------D-216302-----------------------------
  143. INT 21 - DOS 2.25, Far East DOS 3.2+ - GET KOREAN (HANGEUL) INPUT MODE
  144.     AX = 6302h
  145. Return: AL = status
  146.         00h successful
  147.         DL = current input mode
  148.             00h return only full characters (clears interim flag)
  149.             01h return partial characters (sets interim flag)
  150.         FFh not supported
  151. Note:    Novell DOS 7 simply reads the value out of the caller's PSP, so it
  152.       can return values other than 00h or 01h if the last call to AX=6301h
  153.       used another value
  154. SeeAlso: AH=07h,AH=08h,AH=0Bh,AH=63h,AX=6301h
  155. --------v-216303------------------------
  156. INT 21 - VIRUS - "DOS IDLE" - INSTALLATION CHECK
  157.     AX = 6303h
  158. Return: BX = 6303h if resident
  159. SeeAlso: AX=5643h"VIRUS",AX=6304h"VIRUS",AX=9AD5h"VIRUS"
  160. --------v-216304------------------------
  161. INT 21 - VIRUS - "Replicator" - INSTALLATION CHECK
  162.     AX = 6304h
  163. Return: BX = 6304h if resident
  164. SeeAlso: AX=6303h"VIRUS",AX=6969h"VIRUS"
  165. --------D-2164-------------------------------
  166. INT 21 - DOS 3.2+ internal - SET DEVICE DRIVER LOOKAHEAD FLAG
  167.     AH = 64h
  168.     AL = flag
  169.         00h (default) call device driver function 5 (non-dest read)
  170.             before INT 21/AH=01h,08h,0Ah
  171.         nonzero don't call driver function 5
  172. Return: nothing (MS-DOS)
  173.     CF set, AX=error code??? (DR-DOS 5.0, which does not support this call)
  174. Notes:    this function is called by the DOS 3.3+ PRINT.COM
  175.     under MS-DOS, this function does not use any of the DOS-internal stacks
  176.       and may thus be called at any time, even during another DOS call
  177. SeeAlso: AH=01h,AH=08h,AH=0Ah,AX=5D06h
  178. --------O-2164--DX0000-----------------------
  179. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - ENABLE AUTOMATIC TITLE SWITCH
  180.     AH = 64h
  181.     DX = 0000h (function number)
  182.     CX = 636Ch (magic value, "cl")
  183.     BX = 0000h (indicates special request)
  184. Note:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  185.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  186. SeeAlso: AH=64h/DX=0001h,INT 21/AH=4Bh
  187. --------O-2164--DX0001-----------------------
  188. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - SET SESSION TITLE
  189.     AH = 64h
  190.     DX = 0001h (function number)
  191.     CX = 636Ch (magic value, "cl")
  192.     BX = 0000h (indicates special request)
  193.     ES:DI -> new ASCIZ title (max 12 char) or "" to restore default title
  194. Note:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  195.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  196. SeeAlso: AH=64h/DX=0000h,AH=64h/DX=0002h,INT 15/AH=12h/BH=05h
  197. --------O-2164--DX0002-----------------------
  198. INT 21 U - OS/2 v2.0+ Virtual DOS Machine - GET SESSION TITLE
  199.     AH = 64h
  200.     DX = 0002h (function number)
  201.     CX = 636Ch (magic value, "cl")
  202.     BX = 0000h (indicates special request)
  203.     ES:DI -> 13-byte buffer for current title
  204. Return: buffer filled (single 00h if title never changed)
  205. Note:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  206.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  207. SeeAlso: AH=64h/DX=0000h,AH=64h/DX=0001h,INT 15/AH=12h/BH=05h
  208. --------O-2164--DX0003-----------------------
  209. INT 21 U - OS/2 v2.1 Virtual DOS Machine - GET LASTDRIVE
  210.     AH = 64h
  211.     DX = 0003h (function number)
  212.     CX = 636Ch (magic value, "cl")
  213.     BX = 0000h (indicates special request)
  214. Return: AL = highest drive supported
  215. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  216.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  217.     used by WinOS2
  218.     not supported by OS/2 Warp 3.0, check list of lists instead (see #0840)
  219. SeeAlso: AH=52h
  220. --------O-2164--DX0004-----------------------
  221. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SIZE OF PTDA JFT
  222.     AH = 64h
  223.     DX = 0004h (function number)
  224.     CX = 636Ch (magic value, "cl")
  225.     BX = 0000h (indicates special request)
  226. Return: AX = number of entries in OS/2 JFT for VDM
  227. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  228.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  229.     in an OS/2 VDM, the DOS Job File Table in the PSP contains an index
  230.       into the OS/2 JFT in the Per-Task Data Area rather than an SFT index
  231.       because the OS/2 SFT can contain more than 255 entries
  232. --------O-2164--DX0005-----------------------
  233. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET SECOND SFT FLAGS WORD
  234.     AH = 64h
  235.     DX = 0005h (function number)
  236.     CX = 636Ch (magic value, "cl")
  237.     BX = 0000h (indicates special request)
  238.     DI = DOS file handle
  239. Return: AX = value of second flags word from OS/2 SFT entry for file
  240. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  241.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  242.     the OS/2 SFT has two flags words rather than DOS's one word, and this
  243.       function provides access to the word which is not present in DOS
  244. --------O-2164--DX0006-----------------------
  245. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - UNLOAD DOSKRNL SYMBOLS & LOAD PROGR
  246.     AH = 64h
  247.     DX = 0006h (function number)
  248.     CX = 636Ch (magic value, "cl")
  249.     BX = 0000h (indicates special request)
  250.     ES:DI -> ASCIZ filespec
  251.     DS = base address for loading
  252. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  253.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  254.     this function is only supported by the kernel debugging version of
  255.       OS2KRNL
  256. --------O-2164--DX0007-----------------------
  257. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET WinOS2 CALL GATE ADDRESS
  258.     AH = 64h
  259.     DX = 0007h (function number)
  260.     CX = 636Ch (magic value, "cl")
  261.     BX = 0000h (indicates special request)
  262. Return: AX = call gate address
  263. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  264.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  265.     used by WinOS2 to make direct calls to OS2KRNL, bypassing the overhead
  266.       of DOSKRNL
  267. --------O-2164--DX0008-----------------------
  268. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - GET LOADING MESSAGE
  269.     AH = 64h
  270.     DX = 0008h (function number)
  271.     CX = 636Ch (magic value, "cl")
  272.     BX = 0000h (indicates special request)
  273. Return: DS:DX -> '$'-terminated message "Loading.  Please wait."
  274. Notes:    if CX is not 636Ch on entry, INT 21/AH=6Ch is invoked, because a bug
  275.       in OS/2 1.x FAPI erroneously called AH=64h instead of AH=6Ch
  276.     this function permits National Language Support for the initial message
  277.       displayed while WinOS2 starts a full-screen session
  278. --------O-2164--CX636C-----------------------
  279. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API support
  280.     AH = 64h
  281.     CX = 636Ch ("cl")
  282.     BX = API ordinal (see #0953)
  283.     other registers as appropriate for API call
  284. Return: as appropriate for API call
  285. SeeAlso: AH=64h/BX=0025h,AH=64h/BX=00B6h,AH=64h/BX=00CBh
  286.  
  287. (Table 0953)
  288. Values for OS/2 API ordinal:
  289.  0025h    DOS32StartSession
  290.  0082h    DosGetCP
  291.  00B6h    DosQFSAttach
  292.  00BFh    DosEditName
  293.  00CBh    DosForceDelete
  294.  0144h    Dos32CreateEventSem
  295.  0145h    Dos32OpenEvenSem
  296.  0146h    Dos32CloseEventSem
  297.  0147h    Dos32ResetEventSem
  298.  0148h    Dos32PostEventSem
  299.  0149h    Dos32WaitEventSem
  300.  014Ah    Dos32QueryEventSem
  301.  014Bh    Dos32CreateMutexSem
  302.  014Ch    Dos32OpenMutexSem
  303.  014Dh    Dos32CloseMutexSem
  304.  014Eh    Dos32RequestMutexSem
  305.  014Fh    Dos32ReleaseMutexSem
  306.  0150h    Dos32QueryMutexSem
  307.  0151h    Dos32CreateMuxWaitSem
  308.  0152h    Dos32OpenMuxWaitSem
  309.  0153h    Dos32CloseMuxWaitSem
  310.  0154h    Dos32WaitMuxWaitSem
  311.  0155h    Dos32AddMuxWaitSem
  312.  0156h    Dos32DeleteMuxWaitSem
  313.  0157h    Dos32QueryMuxWaitSem
  314. --------O-2164--BX0025-----------------------
  315. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DOS32StartSession
  316.     AH = 64h
  317.     BX = 0025h (API ordinal)
  318.     CX = 636Ch ("cl")
  319.     DS:SI -> STARTDATA structure (see #0954)
  320. Return: AX = return code
  321. SeeAlso: AH=64h/CX=636Ch,AH=64h/BX=00B6h
  322.  
  323. Format of OS/2 Virtual DOS Machine STARTDATA structure:
  324. Offset    Size    Description    (Table 0954)
  325.  00h    WORD    length of structure (must be 0018h,001Eh,0020h,0032h,or 003Ch)
  326.  02h    WORD    relation of new process to caller (00h independent, 01h child)
  327.  04h    WORD    fore/background (00h foreground, 01h background)
  328.  06h    WORD    trace options (00h-02h, 00h = no trace)
  329.  08h    DWORD    pointer to ASCIZ program title (max 62 chars) or 0000h:0000h
  330.  0Ch    DWORD    pointer to ASCIZ program name (max 128 chars) or 0000h:0000h
  331.  10h    DWORD    pointer to ASCIZ program args (max 144 chars) or 0000h:0000h
  332.  14h    DWORD    "TermQ" (currently reserved, must be 00000000h)
  333.  18h    DWORD    pointer to environment (max 486 bytes) or 0000h:0000h
  334.  1Ch    WORD    inheritance (00h or 01h)
  335.  1Eh    WORD    session type
  336.         00h OS/2 session manager determines type (default)
  337.         01h OS/2 full-screen
  338.         02h OS/2 window
  339.         03h PM
  340.         04h VDM full-screen
  341.         07h VDM window
  342.  20h    DWORD    pointer to ASCIZ icon filename (max 128 chars) or 0000h:0000h
  343.  24h    DWORD    "PgmHandle" (currently reserved, must be 00000000h)
  344.  28h    WORD    "PgmControl"
  345.  2Ah    WORD    initial column
  346.  2Ch    WORD    initial row
  347.  2Eh    WORD    initial width
  348.  30h    WORD    initial height
  349.  32h    WORD    reserved (0)
  350.  34h    DWORD    "ObjectBuffer" (currently reserved, must be 00000000h)
  351.  38h    DWORD    "ObjectBufferLen" (currently reserved, must be 00000000h)
  352. --------O-2164--BX00B6-----------------------
  353. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosQFSAttach
  354.     AH = 64h
  355.     BX = 00B6h (API ordinal)
  356.     CX = 636Ch (magic value "cl")
  357.     DS = user's data segment
  358.     ES:DI -> FSQAttachStruc (see #0955)
  359. Return: CF set on error
  360.         AX = error code (see #0885 at AH=59h)
  361.     CF clear if successful
  362.         AX = 0000h
  363.         data buffer filled
  364. SeeAlso: AH=64h/CX=636Ch
  365.  
  366. Format of OS/2 Virtual DOS Machine FSQAttachStruc:
  367. Offset    Size    Description    (Table 0955)
  368.  00h    DWORD    reserved
  369.  04h    DWORD    pointer to the offset of the data buffer length
  370.  08h    DWORD    pointer to the offset of the data buffer
  371.  0Ch    WORD    FSA Info level
  372.  0Eh    WORD    ordinal index into table
  373.  10h    DWORD    pointer to the offset of the device name
  374. Notes:    The segment value of the buffer, buffer length, and device
  375.       name MUST all be the same.  It is defined on entry in the DS
  376.       register.  The details of each info level are defined in the
  377.       OS/2 CP Reference.
  378. --------O-2164--BX00CB-----------------------
  379. INT 21 U - OS/2 v2.1+ Virtual DOS Machine - OS/2 API DosForceDelete
  380.     AH = 64h
  381.     BX = 00CBh (API ordinal)
  382.     CX = 636Ch (magic value "cl")
  383.     DS:DX -> ASCIZ filename
  384. Return: CF clear if successful
  385.         AX destroyed
  386.     CF set on error
  387.         AX = error code (02h,03h,05h) (see #0885 at AH=59h)
  388. Desc:    delete a file without saving it to the undelete directory
  389. SeeAlso: AH=41h,AH=64h/CX=636Ch
  390. --------D-2165-------------------------------
  391. INT 21 - DOS 3.3+ - GET EXTENDED COUNTRY INFORMATION
  392.     AH = 65h
  393.     AL = info ID
  394.         01h get general internationalization info
  395.         02h get pointer to uppercase table
  396.         04h get pointer to filename uppercase table
  397.         05h get pointer to filename terminator table
  398.         06h get pointer to collating sequence table
  399.         07h (DOS 4.0+) get pointer to Double-Byte Character Set table
  400.     BX = code page (FFFFh=global code page)
  401.     DX = country ID (FFFFh=current country)
  402.     ES:DI -> country information buffer (see #0956)
  403.     CX = size of buffer (>= 5)
  404. Return: CF set on error
  405.         AX = error code (see #0885 at AH=59h)
  406.     CF clear if successful
  407.         CX = size of country information returned
  408.         ES:DI -> country information
  409. Notes:    AL=05h appears to return same info for all countries and codepages; it
  410.       has been documented for DOS 5+, but was undocumented in ealier
  411.       versions
  412.     NLSFUNC must be installed to get info for countries other than the
  413.       default
  414.     subfunctions 02h and 04h are identical under OS/2
  415. SeeAlso: AH=38h,INT 2F/AX=1401h,INT 2F/AX=1402h,INT 2F/AX=14FEh
  416.  
  417. Format of country information:
  418. Offset    Size    Description    (Table 0956)
  419.  00h    BYTE    info ID
  420. ---if info ID = 01h---
  421.  01h    WORD    size
  422.  03h    WORD    country ID
  423.  05h    WORD    code page
  424.  07h 34 BYTEs    country-dependent info (see AH=38h)
  425. ---if info ID = 02h---
  426.  01h    DWORD    pointer to uppercase table (see #0957)
  427. ---if info ID = 04h---
  428.  01h    DWORD    pointer to filename uppercase table (see #0958)
  429. ---if info ID = 05h---
  430.  01h    DWORD    pointer to filename character table (see #0959)
  431. ---if info ID = 06h---
  432.  01h    DWORD    pointer to collating table (see #0960)
  433. ---if info ID = 07h (DOS 4.0+)---
  434.  01h    DWORD    pointer to DBCS lead byte table (see #0961)
  435.  
  436. Format of uppercase table:
  437. Offset    Size    Description    (Table 0957)
  438.  00h    WORD    table size
  439.  02h 128 BYTEs    uppercase equivalents (if any) of chars 80h to FFh
  440.  
  441. Format of filename uppercase table:
  442. Offset    Size    Description    (Table 0958)
  443.  00h    WORD    table size
  444.  02h 128 BYTEs    uppercase equivalents (if any) of chars 80h to FFh
  445.  
  446. Format of filename terminator table:
  447. Offset    Size    Description    (Table 0959)
  448.  00h    WORD    table size (not counting this word)
  449.  02h    BYTE    ??? (01h for MS-DOS 3.30-6.00)
  450.  03h    BYTE    lowest permissible character value for filename
  451.  04h    BYTE    highest permissible character value for filename
  452.  05h    BYTE    ??? (00h for MS-DOS 3.30-6.00)
  453.  06h    BYTE    first excluded character in range \ all characters in this
  454.  07h    BYTE    last excluded character in range  / range are illegal
  455.  08h    BYTE    ??? (02h for MS-DOS 3.30-6.00)
  456.  09h    BYTE    number of illegal (terminator) characters
  457.  0Ah  N BYTEs    characters which terminate a filename:    ."/\[]:|<>+=;,
  458. Note:    partially documented for DOS 5+, but undocumented for earlier versions
  459.  
  460. Format of collating table:
  461. Offset    Size    Description    (Table 0960)
  462.  00h    WORD    table size
  463.  02h 256 BYTEs    values used to sort characters 00h to FFh
  464.  
  465. Format of DBCS lead byte table:
  466. Offset    Size    Description    (Table 0961)
  467.  00h    WORD    length
  468.  02h 2N BYTEs    start/end for N lead byte ranges
  469.     WORD    0000h    (end of table)
  470. --------D-2165-------------------------------
  471. INT 21 - DOS 4.0+ - COUNTRY-DEPENDENT CHARACTER CAPITALIZATION
  472.     AH = 65h
  473.     AL = function
  474.         20h capitalize character
  475.         DL = character to capitalize
  476.         Return: DL = capitalized character
  477.         21h capitalize string
  478.         DS:DX -> string to capitalize
  479.         CX = length of string
  480.         22h capitalize ASCIZ string
  481.         DS:DX -> ASCIZ string to capitalize
  482. Return: CF set on error
  483.         AX = error code (see #0885 at AH=59h)
  484.     CF clear if successful
  485. Note:    these calls have been documented for DOS 5+, but were undocumented in
  486.       DOS 4.x.
  487. --------D-216523-----------------------------
  488. INT 21 U - DOS 4.0+ - DETERMINE IF CHARACTER REPRESENTS YES/NO RESPONSE
  489.     AX = 6523h
  490.     DL = character
  491.     DH = second character of double-byte character (if applicable)
  492. Return: CF set on error
  493.     CF clear if successful
  494.         AX = type
  495.         00h no
  496.         01h yes
  497.         02h neither yes nor no
  498. --------D-2165-------------------------------
  499. INT 21 U - DOS 4.0+ internal - COUNTRY-DEPENDENT FILENAME CAPITALIZATION
  500.     AH = 65h
  501.     AL = function
  502.         A0h capitalize filename character
  503.         DL = character to capitalize
  504.         Return: DL = capitalized character
  505.         A1h capitalize counted filename string
  506.         DS:DX -> filename string to capitalize
  507.         CX = length of string
  508.         A2h capitalize ASCIZ filename
  509.         DS:DX -> ASCIZ filename to capitalize
  510. Return: CF set on error
  511.         AX = error code (see #0885 at AH=59h)
  512.     CF clear if successful
  513. Note:    nonfunctional in DOS 4.00 through 6.00 due to a bug (the code sets a
  514.       pointer depending on the high bit of AL, but doesn't clear the
  515.       bit before branching by function number).
  516. --------D-216601-----------------------------
  517. INT 21 - DOS 3.3+ - GET GLOBAL CODE PAGE TABLE
  518.     AX = 6601h
  519. Return: CF set on error
  520.         AX = error code (see #0885 at AH=59h)
  521.     CF clear if successful
  522.         BX = active code page (see #0962)
  523.         DX = system code page (see #0962)
  524. SeeAlso: AX=6602h
  525. --------D-216602-----------------------------
  526. INT 21 - DOS 3.3+ - SET GLOBAL CODE PAGE TABLE
  527.     AX = 6602h
  528.     BX = active code page (see #0962)
  529.     DX = system code page (active page at boot time)
  530. Return: CF set on error
  531.         AX = error code (see #0885 at AH=59h)
  532.     CF clear if successful
  533.         AX = EB41h (Novell NWDOS v7.0 when NLSFUNC not installed and
  534.           request was for previously-active code page)
  535. SeeAlso: AX=6601h,INT 2F/AX=14FFh
  536.  
  537. (Table 0962)
  538. Values for code page:
  539.  437    US
  540.  850    Multilingual
  541.  852    Slavic/Latin II (DOS 5+)
  542.  857    Turkish
  543.  860    Portugal
  544.  861    Iceland
  545.  863    Canada (French)
  546.  865    Norway/Denmark
  547. --------D-2167-------------------------------
  548. INT 21 - DOS 3.3+ - SET HANDLE COUNT
  549.     AH = 67h
  550.     BX = size of new file handle table for process
  551. Return: CF clear if successful
  552.     CF set on error
  553.         AX = error code (see #0885 at AH=59h)
  554. Desc:    adjust the size of the per-process open file table, thus raising or
  555.       lowering the limit on the number of files the caller can open
  556.       simultaneously
  557. Notes:    if BX <= 20, no action is taken if the handle limit has not yet been
  558.       increased, and the table is copied back into the PSP if the limit
  559.       is currently > 20 handles
  560.     for file handle tables of > 20 handles, DOS 3.30 never reuses the
  561.       same memory block, even if the limit is being reduced; this can lead
  562.       to memory fragmentation as a new block is allocated and the existing
  563.       one freed
  564.     only the first 20 handles are copied to child processes in DOS 3.3-6.0
  565.     increasing the file handles here will not, in general, increase the
  566.       number of files that can be opened using the runtime library of a
  567.       high-level language such as C
  568.     Novell DOS 7 reportedly terminates the calling program if the JFT is
  569.       being reduced in size and there are any open file handles beyond
  570.       the portion of the JFT being retained
  571. BUGS:    the original release of DOS 3.30 allocates a full 64K for the handle
  572.       table on requests for an even number of handles
  573.     DR-DOS 3.41 and 5.0 will lose track of any open file handles beyond
  574.       the portion of the JFT retained after the call; MS-DOS will indicate
  575.       error 04h if any of the JFT entries to be removed are open
  576. SeeAlso: AH=26h,AH=86h
  577. --------D-2168-------------------------------
  578. INT 21 - DOS 3.3+ - "FFLUSH" - COMMIT FILE
  579.     AH = 68h
  580.     BX = file handle
  581. Return: CF clear if successful
  582.         all data still in DOS disk buffers is written to disk immediately,
  583.           and the file's directory entry is updated
  584.     CF set on error
  585.         AX = error code (see #0885 at AH=59h)
  586. SeeAlso: AX=5D01h,AH=6Ah,INT 2F/AX=1107h
  587. --------D-2169-------------------------------
  588. INT 21 U - DOS 4.0+ internal - GET/SET DISK SERIAL NUMBER
  589.     AH = 69h
  590.     AL = subfunction
  591.         00h get serial number
  592.         01h set serial number
  593.     BL = drive (0=default, 1=A, 2=B, etc)
  594.     BH = info level (00h only for DOS; OS/2 allows other levels)
  595.     DS:DX -> disk info (see #0963)
  596. Return: CF set on error
  597.         AX = error code (see #0885 at AH=59h)
  598.     CF clear if successful
  599.         AX destroyed
  600.         (AL = 00h) buffer filled with appropriate values from extended BPB
  601.         (AL = 01h) extended BPB on disk set to values from buffer
  602. Notes:    does not generate a critical error; all errors are returned in AX
  603.     error 0005h given if no extended BPB on disk
  604.     does not work on network drives (error 0001h)
  605.     buffer after first two bytes is exact copy of bytes 27h thru 3Dh of
  606.       extended BPB on disk
  607.     this function is supported under Novell NetWare versions 2.0A through
  608.       3.11; the returned serial number is the one a DIR would display,
  609.       the volume label is the NetWare volume label, and the file system
  610.       is set to "FAT16".
  611.     this function is not supported by Novell DOS 7
  612.     the serial number is computed from the current date and time when the
  613.       disk is created; the first part is the sum of the seconds/hundredths
  614.       and month/day, the second part is the sum of the hours/minutes and
  615.       year
  616.     the volume label which is read or set is the one stored in the extended
  617.       BPB on disks formatted with DOS 4.0+, rather than the special root
  618.       directory entry used by the DIR command in COMMAND.COM (use AH=11h
  619.       to find that volume label)
  620. SeeAlso: AX=440Dh
  621.  
  622. Format of disk info:
  623. Offset    Size    Description    (Table 0963)
  624.  00h    WORD    info level (zero)
  625.  02h    DWORD    disk serial number (binary)
  626.  06h 11 BYTEs    volume label or "NO NAME    " if none present
  627.  11h  8 BYTEs    (AL=00h only) filesystem type--string "FAT12   " or "FAT16   "
  628. --------O-2169-------------------------------
  629. INT 21 - DR-DOS 5.0 - NULL FUNCTION
  630.     AH = 69h
  631. Return: AL = 00h
  632. SeeAlso: AH=18h
  633. --------v-216969-----------------------------
  634. INT 21 - VIRUS - "Rape-747" - INSTALLATION CHECK
  635.     AX = 6969h
  636. Return: AX = 0666h if resident
  637. SeeAlso: AX=58CCh,AX=6304h"VIRUS",AH=76h"VIRUS"
  638. --------d-2169FFDX0000-----------------------
  639. INT 21 U - CUBIT v4.00 - GET CUBIT INT 21 HANDLER
  640.     AX = 69FFh
  641.     DX = 0000h
  642.     BX = CB00h (magic value)
  643. Return: ES:BX -> CUBITR.EXE handler for INT 21
  644. Note:    the installation check consists of testing that the first eight bytes
  645.       at the returned interrupt handler are EBh 07h "CUBITR" (a short
  646.       jump around the signature followed by the signature); the byte
  647.       following the signature (i.e. ES:[BX+8]) indicates whether CUBITR
  648.       is active (01h) or disabled (00h)
  649. SeeAlso: AX=69FFh/DX=CFBFh
  650. Index:    installation check;CUBIT
  651. --------d-2169FFDXCFBF-----------------------
  652. INT 21 U - CUBIT v4.00 - UNINSTALL
  653.     AX = 69FFh
  654.     DX = CFBFh
  655.     CX = EFCFh
  656.     BX = CB00h (magic value)
  657. Return: ES:BX -> CUBITR.EXE handler for INT 21
  658.     CX = status
  659.         2020h successful
  660.         2222h failed
  661. Note:    if DX is neither 0000h nor CFBFh on entry, some other code is executed
  662. SeeAlso: AX=69FFh/DX=0000h
  663. --------D-216A-------------------------------
  664. INT 21 U - DOS 4.0+ - COMMIT FILE
  665.     AH = 6Ah
  666.     BX = file handle
  667. Return: CF clear if successful
  668.         AH = 68h
  669.     CF set on error
  670.         AX = error code (06h) (see #0885 at AH=59h)
  671. Note:    identical to AH=68h in DOS 5.0-6.0; not known whether this is the case
  672.       in DOS 4.x
  673. SeeAlso: AH=68h
  674. --------D-216B-------------------------------
  675. INT 21 U - DOS 4.0 internal - IFS IOCTL
  676.     AH = 6Bh
  677.     AL = subfunction
  678.         00h ???
  679.         DS:SI -> Current Directory Structure???
  680.         CL = drive (1=A:)
  681.         01h ???
  682.         DS:SI -> ???
  683.         CL = file handle???
  684.         02h ???
  685.         DS:SI -> Current Directory Structure???
  686.         DI = ???
  687.         CX = drive (1=A:)
  688. Return: CF set on error
  689.         AX = error code (see #0885 at INT 21/AH=59h)
  690.     CF clear if successful
  691. Note:    passed through to INT 2F/AX=112Fh with AX on top of stack
  692. SeeAlso: AH=6Bh"DOS 5",INT 2F/AX=112Fh
  693. --------D-216B-------------------------------
  694. INT 21 U - DOS 5+ - NULL FUNCTION
  695.     AH = 6Bh
  696. Return: AL = 00h
  697. Note:    this function does nothing and returns immediately
  698. SeeAlso: AH=6Bh"DOS 4"
  699. --------D-216C00-----------------------------
  700. INT 21 - DOS 4.0+ - EXTENDED OPEN/CREATE
  701.     AX = 6C00h
  702.     BL = open mode as in AL for normal open (see also AH=3Dh)
  703.         bit 7: inheritance
  704.         bits 4-6: sharing mode
  705.         bit 3 reserved
  706.         bits 0-2: access mode
  707.     BH = flags
  708.         bit 6 = auto commit on every write (see also AH=68h)
  709.         bit 5 = return error rather than doing INT 24h
  710.     CX = create attribute (see #0965)
  711.     DL = action if file exists/does not exist (see #0966)
  712.     DH = 00h (reserved)
  713.     DS:SI -> ASCIZ file name
  714. Return: CF set on error
  715.        AX = error code (see #0885 at AH=59h)
  716.     CF clear if successful
  717.        AX = file handle
  718.        CX = status (see #0964)
  719. Notes:    the PC LAN Program only supports DL=01h, DL=10h/sharing=compatibility,
  720.       and DL=12h
  721.     DR-DOS reportedly does not support this function and does not return
  722.       an "invalid function call" error when this function is used.
  723.     the documented bits of BX are stored in the SFT when the file is opened
  724.       (see #0853,#0854)
  725. BUG:    this function has bugs (at least in DOS 5.0 and 6.2) when used with
  726.       drives handled via the network redirector (INT 2F/AX=112Eh):
  727.         - CX (attribute) is not passed to the redirector if DL=11h,
  728.         - CX does not return the status, it is returned unchanged because
  729.           DOS does a PUSH CX/POP CX when calling the redirector.
  730. SeeAlso: AH=3Ch,AH=3Dh,AX=6C01h,AH=71h,INT 2F/AX=112Eh
  731.  
  732. (Table 0964)
  733. Values for extended open function status:
  734.  01h    file opened
  735.  02h    file created
  736.  03h    file replaced
  737.  
  738. Bitfields for file create attribute:
  739. Bit(s)    Description    (Table 0965)
  740.  6-15    reserved
  741.  5    archive
  742.  4    reserved
  743.  3    volume label
  744.  2    system
  745.  1    hidden
  746.  0    readonly
  747.  
  748. Bitfields for action:
  749. Bit(s)    Description    (Table 0966)
  750.  7-4    action if file does not exist
  751.     0000 fail
  752.     0001 create
  753.  3-0    action if file exists
  754.     0000 fail
  755.     0001 open
  756.     0010 replace/open
  757. --------O-216C01-----------------------------
  758. INT 21 U - OS/2 v2.0 - "DosOpen2"
  759.     AX = 6C01h
  760.     BL = open mode as in AL for normal open (see also AH=3Dh)
  761.         bit 7: inheritance
  762.         bits 4-6: sharing mode
  763.         bit 3 reserved
  764.         bits 0-2: access mode
  765.     BH = flags
  766.         bit 6 = auto commit on every write (see also AH=68h)
  767.         bit 5 = return error rather than doing INT 24h
  768.     CX = create attribute (see #0965)
  769.     DL = action if file exists/does not exist (see #0966)
  770.     DH = 00h (reserved)
  771.     DS:SI -> ASCIZ file name
  772.     ES:DI -> EAOP structure
  773. Return: CF set on error
  774.        AX = error code (see #0885 at AH=59h)
  775.     CF clear if successful
  776.        AX = file handle
  777.        CX = status (see #0964)
  778. Note:    this function is virtually identical to AX=6C00h, but supports OS/2's
  779.       extended attributes
  780. SeeAlso: AX=5704h,AX=6C00h,AH=6Fh"OS/2"
  781. --------D-216D-------------------------------
  782. INT 21 U - DOS 5+ ROM - FIND FIRST ROM PROGRAM
  783.     AH = 6Dh
  784.     DS:DX -> ASCIZ program name (may contain wildcrds)
  785. Return: CF clear if found
  786.         [DTA] = ROM search structure (see #0967)
  787.     CF set if not found
  788.         AX = error code
  789.         0002h name not found in ROM
  790.         0003h name contains colon or backslash
  791. Notes:    the '*' wildcard matches all remaining characters in a ROM program's
  792.       name; any following characters in the search mask are ignored up to
  793.       another asterisk, which must be matched by an asterisk in the
  794.       found program's name.
  795.     the search mask and program names may contain multiple periods
  796. SeeAlso: AH=1Ah,AH=4Eh,AH=6Eh,AX=6F00h,AX=6F02h
  797.  
  798. Format of ROM search structure:
  799. Offset    Size    Description    (Table 0967)
  800.  00h 13 BYTEs    ASCIZ name of found ROM program
  801.  0Dh    DWORD    address at which to resume search (do not modify)
  802.  11h    var    ASCIZ search mask passed in (do not modify)
  803. --------O-216D-------------------------------
  804. INT 21 U - OS/2 v1.x FAPI - "DosMkDir2"
  805.     AH = 6Dh
  806.     ???
  807. Return: ???
  808. Note:    also supported by OS/2 v2.0+ Virtual DOS Machines
  809. SeeAlso: AH=39h
  810. --------O-216D-------------------------------
  811. INT 21 U - Novell DOS 7 - NOP
  812.     AH = 6Dh
  813. Return: AX = 0000h
  814. Note:    this function invokes the same code as other NOP functions such as
  815.       AH=18h and AH=61h
  816. --------D-216E-------------------------------
  817. INT 21 U - DOS 5+ ROM - FIND NEXT ROM PROGRAM
  818.     AH = 6Eh
  819.     [DTA] = result of previous FindFirst ROM (see AH=6Dh)
  820. Return: CF clear if found
  821.         [DTA] = updated ROM search structure (see #0967)
  822.     CF set if not found
  823.         AX = 0012h (no more matches)
  824. SeeAlso: AH=4Fh,AH=6Dh
  825. --------O-216E-------------------------------
  826. INT 21 U - OS/2 v1.x FAPI - "DosENumAttrib"
  827.     AH = 6Eh
  828.     ???
  829. Return: ???
  830. Note:    also supported by OS/2 v2.0+ Virtual DOS Machines
  831. SeeAlso: AX=5703h,AH=6Fh"OS/2",INT 2F/AX=112Dh
  832. --------O-216F-------------------------------
  833. INT 21 U - OS/2 v1.x FAPI - "DosQMaxEASize" - GET MAXIMUM SIZE OF EXTENDED ATTR
  834.     AH = 6Fh
  835.     ???
  836. Return: ???
  837. Note:    also supported by OS/2 v2.0+ Virtual DOS Machines
  838. SeeAlso: AX=5703h,AX=6C01h,AH=6Eh"OS/2"
  839. --------D-216F00-----------------------------
  840. INT 21 U - DOS 5+ ROM - GET ROM SCAN START ADDRESS
  841.     AX = 6F00h
  842. Return: CF clear
  843.     AL = 00h
  844.     BX = current ROM scan starting segment
  845. SeeAlso: AH=6Dh,AX=6F01h,AX=6F02h
  846. --------D-216F01-----------------------------
  847. INT 21 U - DOS 5+ ROM - SET ROM SCAN START ADDRESS
  848.     AX = 6F01h
  849.     BX = new ROM scan starting address
  850. Return: CF clear
  851.     AL = 00h
  852. SeeAlso: AX=6F00h,AX=6F03h
  853. --------D-216F02-----------------------------
  854. INT 21 U - DOS 5+ ROM - GET EXCLUSION REGION LIST
  855.     AX = 6F02h
  856.     ES:BX -> buffer for exclusion region list (see #0968)
  857. Return: CF clear
  858.     AL = 00h
  859.     ES:BX = 0000h:0000h on error, unchanged if buffer filled
  860. SeeAlso: AX=6F00h,AX=6F03h
  861.  
  862. Format of ROM exclusion region list:
  863. Offset    Size    Description    (Table 0968)
  864.  00h    WORD    number of entries
  865.  02h 2N WORDs    start/end segments of N excluded regions
  866. --------D-216F03-----------------------------
  867. INT 21 U - DOS 5+ ROM - SET EXCLUSION REGION LIST
  868.     AX = 6F03h
  869.     DS:DX -> new exclusion region list (see #0968)
  870. Return: CF clear
  871.     AL = 00h
  872. Notes:    DOS saves only the pointer and assumes that the contents of the list
  873.       are never changed, and that regions do not overlap
  874.     if AL > 03h on entry, DOS returns CF set/AL=01h
  875. SeeAlso: AX=6F01h,AX=6F02h
  876. --------D-2170-------------------------------
  877. INT 21 - MS-DOS 7 (Windows95) - ??? (country-specific?)
  878.     AH = 70h
  879.     AL = subfunction
  880.         00h get ??? info
  881.         CX = buffer size (3Ah bytes needed)
  882.         ES:DI -> buffer
  883.         01h set above info
  884.         02h set ??? info
  885.         CX = buffer size >= 26h;
  886.         first three bytes are skipped, the rest is copied to somewhere
  887.           in the DOS data segment
  888. Return: CF clear if successful
  889.         ES:DI buffer filled (func 00h)
  890.         returned was (among others) "ENU USA GR"..."AM PM M/d/yy"...
  891.          "dddd,MMMMdd,yyyy" in the German Preview version, and "US"
  892.          instead of "GR" in the US build 450 version (with German
  893.          country setting)
  894.     CF set on error
  895.         AX = error code
  896.         7000h if function not supported
  897. ----------217070BX6060-----------------------
  898. INT 21 - PCW Weather Card interface - GET DATA SEGMENT
  899.     AX = 7070h
  900.     BX = 6060h
  901.     CX = 7070h
  902.     DX = 7070h
  903.     SI = 7070h
  904.     DI = 7070h
  905. Return: AX = segment of data structure (see #0969)
  906. Notes:    the data structure is at offset 516 from this segment
  907.     the update byte is at offset 514 from this segment.  Updates are
  908.       once per second while this byte is nonzero and it is decremented
  909.       once per second.  While this byte is 0 updates are once per minute.
  910. SeeAlso: AX=7070h/BX=7070h
  911.  
  912. Format of PCW Weather Card data structure:
  913. Offset    Type    Description    (Table 0969)
  914.  00h    WORD    hour
  915.  02h    WORD    minute
  916.  04h    WORD    second
  917.  06h    WORD    day
  918.  08h    WORD    month
  919.  0Ah    WORD    year
  920.  0Ch    WORD    ???
  921.  0Eh    WORD    relative barometric pressure (in 1/100 inches)
  922.  10h    WORD    ???
  923.  12h    WORD    ???
  924.  14h    WORD    temperature 1 (in 1/10 degrees F)
  925.  16h    WORD    temperature 1 lowest (in 1/10 degrees F)
  926.  18h    WORD    temperature 1 highest (in 1/10 degrees F)
  927.  1Ah    WORD    temperature 2 (in 1/10 degrees F)
  928.  1Ch    WORD    temperature 2 lowest (in 1/10 degrees F)
  929.  1Eh    WORD    temperature 2 highest (in 1/10 degrees F)
  930.  20h    WORD    wind speed (in MPH)
  931.  22h    WORD    average of 60 wind speed samples (in MPH)
  932.  24h    WORD    highest wind speed (in MPH)
  933.  26h    WORD    wind chill factor  (in 1/10 degrees F)
  934.  28h    WORD    lowest wind chill factor (in 1/10 degrees F)
  935.  2Ah    WORD    ???
  936.  2Ch    WORD    wind direction (in degrees)
  937.  2Eh    WORD    accumulated daily rainfall (in 1/10 inches)
  938.  30h    WORD    accumulated annual rainfall (in 1/10 inches)
  939. ----------217070BX7070-----------------------
  940. INT 21 - PCW Weather Card interface - INSTALLATION CHECK
  941.     AX = 7070h
  942.     BX = 7070h
  943.     CX = 7070h
  944.     DX = 7070h
  945.     SI = 7070h
  946.     DI = 7070h
  947. Return: AX = 0070h
  948.     BX = 0070h
  949.     CX = 0070h
  950.     DX = 0070h
  951.     SI = 0070h
  952.     DI = 0070h
  953. SeeAlso: AX=7070h/BX=6060h,AX=8080h
  954. --------D-2171-------------------------------
  955. INT 21 - MS-DOS 7 (Chicago) - LONG FILENAME FUNCTIONS
  956.     AH = 71h
  957.     AL = function
  958.         39h create directory
  959.         3Ah remove directory
  960.         3Bh set current directory
  961.         41h delete file
  962.         43h get file attributes (BL=00h), set file attributes (BL=01h)
  963.         47h get current directory
  964.         4Eh find first file
  965.         4Fh find next file
  966.         56h move (rename) file
  967.         6Ch create/open file
  968. Return: CF set on error
  969.         AX = error code
  970.         7100h if function not supported
  971.     CF clear if successful
  972.         other registers as for corresponding "old" DOS function
  973. Notes:    if error 7100h is returned, the old-style function should be called
  974.     AX=714Eh returns a "search handle" which must be passed to AX=714Fh;
  975.       when the search is complete, AX=71A1h must be called to terminate
  976.       the search
  977. SeeAlso: AH=39h,AH=3Ah,AH=3Bh,AH=41h,AH=43h,AH=47h,AH=4Eh,AH=4Fh,AH=56h,AH=6Ch
  978. SeeAlso: AX=714Eh,AX=714Fh,AX=71A0h,AX=71A1h
  979. --------D-21714ESI0000-----------------------
  980. INT 21 - Windows95 - LONG FILENAME - FIND FIRST MATCHING FILE
  981.     AX = 714Eh
  982.     SI = 0000h
  983.     DS:DX -> ASCIZ filespec
  984.     ES:DI -> FindData record (see #2695)
  985. Return: CF clear if successful
  986.         AX = filefind handle (needed to continue search)
  987.     CF set on error
  988.         AX = error code
  989.         7100h if function not supported
  990. Note:    this function is only available when IFSMgr is running, not under bare
  991.       MS-DOS 7
  992. SeeAlso: AX=714Fh,AX=71A1h
  993.  
  994. Format of Windows95 long filename FindData record:
  995. Offset    Size    Description    (Table 2695)
  996.  00h    DWORD    file attributes
  997.         bits 0-6 standard DOS attributes (see #0643 at INT 21/AX=4301h)
  998.         bit 8: temporary file
  999.  04h    QWORD    file creation time (number of 100ns intervals since 1/1/1601)
  1000.  0Ch    QWORD    last access time
  1001.  14h    QWORD    last modification time
  1002.  1Ch    DWORD    file size (high 32 bits)
  1003.  20h    DWORD    file size (low 32 bits)
  1004.  24h  8 BYTEs    reserved
  1005.  2Ch 260 BYTEs    ASCIZ full filename
  1006. 130h 14 BYTEs    ASCIZ short filename (for backward compatibility)
  1007. --------D-21714FSI0000-----------------------
  1008. INT 21 - Windows95 - LONG FILENAME - FIND NEXT MATCHING FILE
  1009.     AX = 714Fh
  1010.     SI = 0000h
  1011.     BX = filefind handle (from AX=714Eh)
  1012.     ES:DI -> FindData record (see #2695)
  1013. Return: CF clear if successful
  1014.     CF set on error
  1015.         AX = error code
  1016.         7100h if function not supported
  1017. Note:    this function is only available when IFSMgr is running, not under bare
  1018.       MS-DOS 7
  1019. SeeAlso: AX=714Eh,AX=71A1h
  1020. --------D-217160-----------------------------
  1021. INT 21 - Windows95 - LONG FILENAME - "TRUENAME" - CANONICALIZE FILENAME OR PATH
  1022.     AX = 7160h
  1023.     CX = ??? (apparently must be 0002h)
  1024.     DS:SI -> ASCIZ filename or path
  1025.     ES:DI -> 128-byte buffer for canonicalized name
  1026. Return: CF set on error
  1027.         AX = error code
  1028.         02h invalid component in directory path or drive letter only
  1029.         03h malformed path or invalid drive letter
  1030.         ES:DI buffer unchanged
  1031.     CF clear if successful
  1032.         AH = 00h
  1033.         AL = destroyed (00h or 5Ch or last char of current dir on drive)
  1034.         buffer filled with qualified name of form D:\PATH\FILE.EXT or
  1035.           \\MACHINE\PATH\FILE.EXT
  1036. Desc:    determine the canonical name of the specified filename or path,
  1037.       corresponding to the undocumented TRUENAME command in COMMAND.COM
  1038. SeeAlso: AH=60h
  1039. --------D-2171A0-----------------------------
  1040. INT 21 - Windows95 - LONG FILENAME - GET VOLUME INFORMATION
  1041.     AX = 71A0h
  1042.     DS:SI -> ASCIZ root name (e.g. "C:\")
  1043.     ES:DI -> buffer for file system name
  1044.     CX = size of ES:DI buffer
  1045. Return: CF clear if successful
  1046.         BX = flags (see below)
  1047.         CX = maximum length of file name [usually 255]
  1048.         DX = maximum length of path [usually 260]
  1049.         ES:DI buffer filled (ASCIZ, e.g. "FAT","NTFS","CDFS")
  1050.     CF set on error
  1051.         AX = error code
  1052.         7100h if function not supported
  1053. Note:    for the file system name buffer, 32 bytes should be sufficient; that's
  1054.      what is used in some sample code by Walter Oney from Microsoft.
  1055. SeeAlso: AX=714Eh
  1056.  
  1057. Bitfields for flags:
  1058. Bit(s)    Description
  1059.  0    searches are case sensitive
  1060.  1    preserves case in directory entries
  1061.  2    uses Unicode characters in file and directory names
  1062.  3-13    reserved (0)
  1063.  14    supports DOS long filename functions
  1064.  15    volume is compressed
  1065. --------D-2171A1-----------------------------
  1066. INT 21 - Windows95 - LONG FILENAME - "FindClose" - TERMINATE DIRECTORY SEARCH
  1067.     AX = 71A1h
  1068.     BX = filefind handle (from AX=714Eh)
  1069. Return: CF clear if successful
  1070.     CF set on error
  1071.        AX = error code
  1072.         7100h if function not supported
  1073. Notes:    this function must be called after starting a search with AX=714Eh,
  1074.       to indicate that the search handle returned by that function will
  1075.       no longer be used
  1076.     this function is only available when IFSMgr is running, not under bare
  1077.       MS-DOS 7
  1078. SeeAlso: AH=4Eh,AX=714Eh,AX=714Fh
  1079. --------D-2172-------------------------------
  1080. INT 21 - MS-DOS 7 (Windows95) - ???
  1081.     AH = 72h
  1082.     details not available
  1083. --------D-2173-------------------------------
  1084. INT 21 - MS-DOS 7 (Windows95) - DRIVE LOCKING ???
  1085.     AH = 73h
  1086.     AL = subfunction
  1087.         00h get ???: CL =
  1088.         00h: drive flag???
  1089.         01h: ??? flag
  1090.         01h set ???: CL =
  1091.         00h: drive flag???
  1092.             set to 06h if CH bit 1 =1, else to 00h
  1093.         01h: ??? flag
  1094.             set flag bit 3 to bit 3 of CH
  1095.     DL = drive (0=current, 1=A:, etc.)
  1096. Return: CF clear if successful
  1097.         for AL=00h:
  1098.         AL = value of CL on entry
  1099.         for CL=00h: AH = flag and 06h (i.e. bits 1 and 2 used)
  1100.         for CL=01h: AH = flag and 08h (i.e. bit 3 used)
  1101.         (flag being taken from a table of bytes)
  1102.     CF set on error
  1103.         AX = error code
  1104.         7300h if function not supported
  1105. --------v-2176-------------------------------
  1106. INT 21 - VIRUS - "Klaeren"/"Hate" - INSTALLATION CHECK
  1107.     AH = 76h
  1108. Return: AL = 48h if resident
  1109. SeeAlso: AX=6969h,AX=7700h"VIRUS"
  1110. --------v-217700-----------------------------
  1111. INT 21 - VIRUS - "Growing Block" - INSTALLATION CHECK
  1112.     AX = 7700h
  1113. Return: AX = 0920h if resident
  1114. SeeAlso: AH=76h,AX=7BCEh,AH=7Fh
  1115. --------V-217734-----------------------------
  1116. INT 21 U - SCROLLit v1.7 - INSTALLATION CHECK
  1117.     AX = 7734h
  1118. Return: DX = 3477h if installed
  1119.         AX = segment of resident code
  1120. Program: ScrollIt is a shareware backscroll utility by Bromfield Software
  1121.       Products
  1122. --------U-217761-----------------------------
  1123. INT 21 - WATCH.COM v3.2+ - INSTALLATION CHECK
  1124.     AX = 7761h ('wa')
  1125. Return: AX = 6177h
  1126. Note:    WATCH.COM is part of the "TSR" package by TurboPower Software
  1127. SeeAlso: INT 16/AX=7761h
  1128. --------v-217BCE-----------------------------
  1129. INT 21 - VIRUS - "Whisper"/"Taipan" - INSTALLATION CHECK???
  1130.     AX = 7BCEh
  1131. Return: ???
  1132. SeeAlso: AX=7700h,AH=7Fh"VIRUS"
  1133. --------v-217F-------------------------------
  1134. INT 21 - VIRUS - "Squeaker" - INSTALLATION CHECK
  1135.     AH = 7Fh
  1136. Return: AH = 80h if resident
  1137. SeeAlso: AX=7BCEh,AH=83h"VIRUS"
  1138. --------D-2180-------------------------------
  1139. INT 21 - European MS-DOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND
  1140.     AH = 80h
  1141.     CX = mode
  1142.         0000h place child in zombie mode on exit to preserve exit code
  1143.         0001h discard child process and exit code on termination
  1144.     DS:DX -> ASCIZ full program name
  1145.     ES:BX -> parameter block (as for AX=4B00h)
  1146. Return: CF clear if successful
  1147.         AX = Command Subgroup ID (CSID)
  1148.     CF set on error
  1149.         AX = error code (see #0885 at AH=59h)
  1150. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  1151.       by several other European OEMs; its release falls between mainstream
  1152.       versions 3.2 and 3.3
  1153. Desc:    asynchronously execute a program, creating a new process for it
  1154. Notes:    this function is called by the DETACH command
  1155.     there is a system-wide limit of 32 processes
  1156.     the CSID is used to identify all processes that have been spawned by
  1157.       a given process, whether directly or indirectly
  1158.     programs to be run in the background must use the new executable format
  1159.       (see #0809 at AH=4Bh)
  1160.     background processes may only perform asynchronous (background) EXECs,
  1161.       either this function or AX=4B04h
  1162.     background processes may execute INT 11, INT 12, INT 21, INT 2A, and
  1163.       INT 2F at any time; they may execute INT 10 and INT 16 only while
  1164.       they have opened a popup screen via INT 2F/AX=1401h; no other
  1165.       interrupts may be executed from the background
  1166.     background processes may not use drive B: or overlay their code
  1167.       segments
  1168.     see AX=8700h for an installation check
  1169.     the "NE" new executable format made its first appearance in European
  1170.       MS-DOS 4.0
  1171. SeeAlso: AH=4Bh,AH=87h,INT 2F/AX=1400h"POPUP"
  1172. ----------218080-----------------------------
  1173. INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY
  1174.     AX = 8080h
  1175. Return: ???
  1176. SeeAlso: AX=7070h/BX=7070h
  1177. --------D-2181-------------------------------
  1178. INT 21 - European MS-DOS 4.0 - "FREEZE" - STOP A PROCESS
  1179.     AH = 81h
  1180.     BX = flag (00h freeze command subtree, 01h only specified process)
  1181.     CX = Process ID of head of command subtree
  1182. Return: CF clear if successful
  1183.     CF set on error
  1184.         AX = error code (no such process)
  1185. Desc:    temporarily suspend a process or a process and all of its children
  1186. Note:    if BX=0001h, this call will not return until the process is actually
  1187.       frozen, which may not be until after it unblocks from an I/O
  1188.       operation
  1189. SeeAlso: AH=82h,AH=89h,AX=8E00h,INT 15/AX=101Dh
  1190. --------D-2182-------------------------------
  1191. INT 21 - European MS-DOS 4.0 - "RESUME" - RESTART A PROCESS
  1192.     AH = 82h
  1193.     BX = flag (00h resume command subtree, 01h only specified process)
  1194.     CX = Process ID of head of command subtree
  1195. Return: CF clear if successful
  1196.     CF set on error
  1197.         AX = error code (no such process)
  1198. Desc:    restart a previously-suspended process or a process and all of its
  1199.       children
  1200. SeeAlso: AH=81h,INT 15/AX=101Eh
  1201. --------D-2183-------------------------------
  1202. INT 21 - European MS-DOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE
  1203.     AH = 83h
  1204.     AL = function
  1205.         00h get size
  1206.         01h set new size
  1207.         BX = new size in paragraphs
  1208. Return: CF clear if successful
  1209.         BX = current size (function 00h) or old size (function 01h)
  1210.     CF set on error
  1211.         AX = error code (01h,07h,0Dh)(see #0885 at AH=59h)
  1212. Desc:    specify or determine how much memory may be allocated by the foreground
  1213.       process
  1214. Note:    if the partition size is set to 0000h, no partition management is done
  1215.       and all memory allocation is compatible with DOS 3.2.
  1216.     the partition size can be changed regardless of what use is being made
  1217.       of the changed memory; subsequent allocations will follow the
  1218.       partition rules (foreground processes may allocate only foreground
  1219.       memory; background processes allocate background memory first, then
  1220.       foreground memory)
  1221. SeeAlso: AH=48h,AH=4Ah
  1222. --------v-2183-------------------------------
  1223. INT 21 - VIRUS - "SVC" - INSTALLATION CHECK
  1224.     AH = 83h
  1225. Return: DX = 1990h if resident
  1226. SeeAlso: AH=76h,AH=84h"VIRUS"
  1227. --------v-2184-------------------------------
  1228. INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK
  1229.     AH = 84h
  1230. Return: DX = 1990h if resident
  1231.         BH = version number (major in high nybble, minor in low)
  1232. SeeAlso: AH=83h"VIRUS",AH=89h"VIRUS"
  1233. --------D-218400-----------------------------
  1234. INT 21 - European MS-DOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA
  1235.     AX = 8400h
  1236.     BX = size in bytes (0000h = 65536)
  1237.     CX = flags
  1238.         bit 6: zero-initialize segment
  1239.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  1240. Return: CF clear if successful
  1241.         AX = segment address of shared memory global object
  1242.     CF set on error
  1243.         AX = error code (06h,08h) (see #0885 at AH=59h)
  1244. Desc:    create an area of memory which may be accessed by multiple processes
  1245. Notes:    shared memory objects are created as special files (thus the
  1246.       restriction on the name)
  1247.     on successful creation, the reference count is set to 1
  1248. SeeAlso: AX=8401h,AX=8402h,INT 15/AX=DE19h
  1249. --------D-218401-----------------------------
  1250. INT 21 - European MS-DOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA
  1251.     AX = 8401h
  1252.     CX = flags
  1253.         bit 7: writable segment (ignored by MS-DOS 4.0)
  1254.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  1255. Return: CF clear if successful
  1256.         AX = segment address of shared memory global object
  1257.         CX = size in bytes
  1258.     CF set on error
  1259.         AX = error code (invalid name)
  1260. Desc:    get address of a previously-created area of memory which may be
  1261.       accessed by multiple processes
  1262. Note:    this call increments the reference count for the shared memory area
  1263. SeeAlso: AX=8400h,AX=8402h
  1264. --------D-218402-----------------------------
  1265. INT 21 - European MS-DOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA
  1266.     AX = 8402h
  1267.     BX = handle (segment address of shared memory object)
  1268. Return: CF clear if successful
  1269.     CF set on error
  1270.         AX = error code (no such name)
  1271. Desc:    indicate that the specified area of shared memory will no longer be
  1272.       used by the caller
  1273. Note:    the reference count is decremented and the shared memory area is
  1274.       deallocated if the new reference count is zero
  1275. SeeAlso: AX=8400h,AX=8401h,INT 15/AX=DE19h
  1276. --------D-2185-------------------------------
  1277. INT 21 U - European MS-DOS 4.0 - ???
  1278.     AH = 85h
  1279.     ???
  1280. Return: ???
  1281. --------D-2186-------------------------------
  1282. INT 21 - European MS-DOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE
  1283.     AH = 86h
  1284.     BX = total number of file handles in new table
  1285. Return: CF clear if successful
  1286.     CF set on error
  1287.         AX = error code (06h,08h) (see #0885 at AH=59h)
  1288. Desc:    adjust the size of the per-process open file table, thus raising or
  1289.       lowering the limit on the number of files the caller can open
  1290.       simultaneously
  1291. Notes:    any currently-open files are copied to the new table
  1292.     if the table is increased beyond the default 20 handles, only the
  1293.       first 20 will be inherited by child processes
  1294.     error 06h is returned if the requested number of handles exceeds
  1295.       system limits or would require closing currently-open files
  1296. SeeAlso: AH=26h,AH=67h
  1297. --------D-2187-------------------------------
  1298. INT 21 - European MS-DOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER
  1299.     AH = 87h
  1300. Return: AX = PID
  1301.     BX = parent process's PID
  1302.     CX = Command Subgroup ID (CSID)
  1303. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  1304.       by several other European OEMs; its release falls between mainstream
  1305.       versions 3.2 and 3.3
  1306. Desc:    determine an identifier by which to access the calling process
  1307. Notes:    called by MS C v5.1 getpid() function
  1308.     this function apparently must return AX=0001h for INT 21/AH=80h to
  1309.       succeed
  1310.     one possible check for European MS-DOS 4.0 is to issue this call with
  1311.       AL=00h and check whether AL is nonzero on return
  1312. SeeAlso: AH=30h,AH=62h,AH=80h
  1313. Index:    installation check;European MS-DOS 4.0
  1314. --------D-2188-------------------------------
  1315. INT 21 U - European MS-DOS 4.0 - ???
  1316.     AH = 88h
  1317.     ???
  1318. Return: ???
  1319. SeeAlso: AH=87h
  1320. --------D-2189-------------------------------
  1321. INT 21 - European MS-DOS 4.0 - SLEEP
  1322.     AH = 89h
  1323.     CX = time in milliseconds or 0000h to give up time slice
  1324. Return: CF clear if successful
  1325.         CX = 0000h
  1326.     CF set on error
  1327.         AX = error code (interrupted system call)
  1328.         CX = sleep time remaining
  1329. Desc:    suspend the calling process for the specified duration
  1330. Notes:    the sleep interval is rounded up to the next higher increment of the
  1331.       scheduler clock, and may be extended further if other processes are
  1332.       running
  1333.     this call may be interrupted by signals (see AH=8Dh)
  1334.     reportedly called by Microsoft C 4.0 startup code
  1335.     background processes have higher priority than the foreground process,
  1336.       and should thus periodically yield the CPU
  1337. SeeAlso: AH=81h,INT 15/AX=1000h,INT 2F/AX=1680h,INT 7A/BX=000Ah
  1338. --------v-2189-------------------------------
  1339. INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK
  1340.     AH = 89h
  1341. Return: AX = 0123h if resident
  1342. SeeAlso: AH=84h"VIRUS",AH=90h"VIRUS"
  1343. --------D-218A-------------------------------
  1344. INT 21 - European MS-DOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE
  1345.     AH = 8Ah
  1346.     BL = range (00h command subtree, 01h any child)
  1347.     BH = suspend flag
  1348.         00h suspend if children exist but none are dead
  1349.         01h return if no dead children
  1350.     CX = Process ID of head of command subtree
  1351. Return: CF clear if successful
  1352.         AH = termination type (see #0970)
  1353.         AL = return code from child or aborting signal
  1354.         BX = PID of child (0000h if no dead children)
  1355.     CF set on error
  1356.         AX = error code (no child,interrupted system call)
  1357. Desc:    get return code from an asynchronously-executed child program,
  1358.       optionally waiting if no return code is available
  1359. SeeAlso: AH=4Bh,AH=4Dh,AH=80h,AH=8Dh
  1360.  
  1361. (Table 0970)
  1362. Values for termination type:
  1363.  00h    normal termination
  1364.  01h    aborted by Control-C
  1365.  02h    aborted by I/O error
  1366.  03h    terminate and stay resident
  1367.  04h    aborted by signal
  1368.  05h    aborted by program error
  1369. --------D-218B-------------------------------
  1370. INT 21 U - European MS-DOS 4.0 - ???
  1371.     AH = 8Bh
  1372.     ???
  1373. Return: ???
  1374. SeeAlso: AH=87h
  1375. --------D-218C-------------------------------
  1376. INT 21 - European MS-DOS 4.0 - SET SIGNAL HANDLER
  1377.     AH = 8Ch
  1378.     AL = signal number (see #0971)
  1379.     BL = action (see #0972)
  1380.     DS:DX -> signal handler (see #0973)
  1381. Return: CF clear if successful
  1382.         AL = previous action
  1383.         ES:BX -> previous signal handler
  1384.     CF set on error
  1385.         AX = error code (01h,invalid SigNumber or Action)
  1386.           (see #0885 at AH=59h)
  1387. Desc:    set the routine which will be invoked on a number of exceptional
  1388.       conditions
  1389. Note:    all signals will be sent to the most recently installed handler
  1390. SeeAlso: AH=8Dh
  1391.  
  1392. (Table 0971)
  1393. Values for European MS-DOS 4.0 signal number:
  1394.  01h    SIGINTR        Control-C or user defined interrupt key
  1395.  08h    SIGTERM        program termination
  1396.  09h    SIGPIPE        broken pipe
  1397.  0Dh    SIGUSER1    reserved for user definition
  1398.  0Eh    SIGUSER2    reserved for user definition
  1399.  
  1400. (Table 0972)
  1401. Values for signal action:
  1402.  00h    SIG_DFL        terminate process on receipt
  1403.  01h    SIG_IGN        ignore signal
  1404.  02h    SIG_GET        signal is accepted
  1405.  03h    SIG_ERR        sender gets error
  1406.  04h    SIG_ACK        acknowledge received signal and clear it, but don't
  1407.               change current setting
  1408.  
  1409. (Table 0973)
  1410. Values signal handler is called with:
  1411.     AL = signal number (see #0971)
  1412.     AH = signal argument
  1413. Return: RETF, CF set: terminate process
  1414.     RETF, CF clear, ZF set: abort any interrupted system call with an error
  1415.     RETF, CF clear, ZF clear: restart any interrupted system call
  1416.     IRET: restart any interrupted system call
  1417. Note:    the signal handler may also perform a nonlocal GOTO by resetting the
  1418.       stack pointer and jumping; before doing so, it should dismiss the
  1419.       signal by calling this function with BL=04h
  1420. --------D-218D-------------------------------
  1421. INT 21 - European MS-DOS 4.0 - SEND SIGNAL
  1422.     AH = 8Dh
  1423.     AL = signal number (see #0971)
  1424.     BH = signal argument
  1425.     BL = action
  1426.         00h send to entire command subtree
  1427.         01h send only to specified process
  1428.     DX = Process ID
  1429. Return: CF clear if successful
  1430.     CF set on error
  1431.         AX = error code (01h,06h)(see #0885 at AH=59h)
  1432. Desc:    invoke the exceptional-condition handler for the specified process
  1433. Note:    error 06h may be returned if one or more of the affected processes
  1434.       have an error handler for the signal
  1435. SeeAlso: AH=8Ch
  1436. --------D-218E00BH00-------------------------
  1437. INT 21 - European MS-DOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY
  1438.     AX = 8E00h
  1439.     BH = 00h
  1440.     BL = action
  1441.         00h set priority for command subtree
  1442.         01h set priority for specified process only
  1443.     CX = Process ID
  1444.     DH = 00h
  1445.     DL = change in priority (00h to get priority)
  1446. Return: CF clear if successful
  1447.         DL = process priority
  1448.         DH destroyed
  1449.     CF set on error
  1450.         AX = error code (01h,no such process)(see #0885 at AH=59h)
  1451. Desc:    specify or determine the execution priority of the specified process
  1452.       or the process and all of its children
  1453. SeeAlso: AH=81h
  1454. --------D-218F-------------------------------
  1455. INT 21 U - European MS-DOS 4.0 - ???
  1456.     AH = 8Fh
  1457.     ???
  1458. Return: ???
  1459. SeeAlso: AH=87h
  1460. --------D-2190-------------------------------
  1461. INT 21 U - European MS-DOS 4.0 - ???
  1462.     AH = 90h
  1463.     ???
  1464. Return: ???
  1465. SeeAlso: AH=87h
  1466. --------v-2190-------------------------------
  1467. INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK
  1468.     AH = 90h
  1469. Return: AH = 01h if resident
  1470. SeeAlso: AH=89h"VIRUS",AX=9753h"VIRUS"
  1471. --------D-2191-------------------------------
  1472. INT 21 U - European MS-DOS 4.0 - ???
  1473.     AH = 91h
  1474.     ???
  1475. Return: ???
  1476. SeeAlso: AH=87h
  1477. --------D-2192-------------------------------
  1478. INT 21 U - European MS-DOS 4.0 - ???
  1479.     AH = 92h
  1480.     ???
  1481. Return: ???
  1482. SeeAlso: AH=87h
  1483. --------D-2193-------------------------------
  1484. INT 21 - European MS-DOS 4.0 - "PIPE" - CREATE A NEW PIPE
  1485.     AH = 93h
  1486.     CX = size in bytes
  1487. Return: CF clear if successful
  1488.         AX = read handle
  1489.         BX = write handle
  1490.     CF set on error
  1491.         AX = error code (08h) (see #0885 at AH=59h)
  1492. Desc:    create a communications channel which may be used for interprocess
  1493.       data and command exchanges
  1494. SeeAlso: AH=3Ch,AH=3Fh,AH=40h,AH=84h
  1495. --------D-2194-------------------------------
  1496. INT 21 U - European MS-DOS 4.0 - ???
  1497.     AH = 94h
  1498.     ???
  1499. Return: ???
  1500. SeeAlso: AH=87h
  1501. --------D-2195-------------------------------
  1502. INT 21 - European MS-DOS 4.0 - HARD ERROR PROCESSING
  1503.     AH = 95h
  1504.     AL = new state
  1505.        00h enabled
  1506.        01h disabled, automatically fail hard errors
  1507. Return: AX = previous setting
  1508. Desc:    specify whether hard (critical) errors should automatically fail the
  1509.       system call or invoke an INT 24
  1510. SeeAlso: INT 24
  1511. --------D-2196-------------------------------
  1512. INT 21 U - European MS-DOS 4.0 - ???
  1513.     AH = 96h
  1514.     ???
  1515. Return: ???
  1516. --------D-2197-------------------------------
  1517. INT 21 U - European MS-DOS 4.0 - ???
  1518.     AH = 97h
  1519.     ???
  1520. Return: ???
  1521. --------v-219753-----------------------------
  1522. INT 21 - VIRUS - "Nina" - INSTALLATION CHECK
  1523.     AX = 9753h
  1524. Return: never (executes original program) if virus resident
  1525. SeeAlso: AH=90h"VIRUS",AX=A1D5h"VIRUS",AX=9AD5h"VIRUS"
  1526. --------D-2198-------------------------------
  1527. INT 21 U - European MS-DOS 4.0 - ???
  1528.     AH = 98h
  1529.     ???
  1530. Return: ???
  1531. --------D-2199-------------------------------
  1532. INT 21 u - European MS-DOS 4.0 - "PBLOCK" - BLOCK A PROCESS
  1533.     AH = 99h
  1534.     DS:BX -> memory location to block on
  1535.     CX = timeout in milliseconds
  1536.     DH = nonzero if interruptable
  1537. Return: CF clear if awakened by event
  1538.         AX = 0000h
  1539.     CF set if unusual wakeup
  1540.         ZF set if timeout, clear if interrupted by signal
  1541.         AX = nonzero
  1542. Desc:    suspend calling process until another process sends a "restart" signal
  1543.       or a timeout occurs
  1544. SeeAlso: AH=9Ah,INT 2F/AX=0802h
  1545. --------D-219A-------------------------------
  1546. INT 21 u - European MS-DOS 4.0 - "PRUN" - UNBLOCK A PROCESS
  1547.     AH = 9Ah
  1548.     DS:BX -> memory location processes may have blocked on
  1549. Return: AX = number of processes awakened
  1550.     ZF set if no processes awakened
  1551. Program: European MS-DOS 4.0 was written for Siemens in Germany and then used
  1552.       by several other European OEMs; its release falls between mainstream
  1553.       versions 3.2 and 3.3
  1554. Desc:    restart all processes waiting for the specified "restart" signal
  1555. SeeAlso: AH=99h,INT 2F/AX=0802h
  1556. --------v-219AD5------------------------
  1557. INT 21 - VIRUS - "Massacre/Beavis" - INSTALLATION CHECK
  1558.     AX = 9AD5h
  1559. Return: AX = 9AD4h if resident
  1560. SeeAlso: AX=6969h"VIRUS",AX=A1D5h"VIRUS"
  1561. --------I-21A0-------------------------------
  1562. INT 21 - Attachmate Extra! - GET 3270 DISPLAY STATE
  1563.     AH = A0h
  1564. Return: AL = display status (see #0974)
  1565.     BX = host window status (see #0975)
  1566. Program: Attachmate Extra! is a 3270 emulator by Attachmate Corporation
  1567. SeeAlso: AH=A1h
  1568.  
  1569. Bitfields for Attachmate Extra! display status:
  1570. Bit(s)    Description    (Table 0974)
  1571.  7    0=windowed, 1=enlarged
  1572.  6-3    current screen profile number 0-9
  1573.  2-0    active window number (0=PC, 1-4=host B-E, 5-6=notepad F-G)
  1574.  
  1575. Bitfields for host window status:
  1576. Bit(s)    Description    (Table 0975)
  1577.  15    reserved
  1578.  14    0=host E window installed, 1=not
  1579.  13    0=host E terminal on, 1=off
  1580.  12    0=host E window displayed, 1=not
  1581.  11    reserved
  1582.  10    0=host D window installed, 1=not
  1583.  9    0=host D terminal on, 1=off
  1584.  8    0=host D window displayed, 1=not
  1585.  7    reserved
  1586.  6    0=host C window installed, 1=not
  1587.  5    0=host C terminal on, 1=off
  1588.  4    0=host C window displayed, 1=not
  1589.  3    reserved
  1590.  2    0=host B window installed, 1=not
  1591.  1    0=host B terminal on, 1=off
  1592.  0    0=host B window displayed, 1=not
  1593. --------I-21A1-------------------------------
  1594. INT 21 - Attachmate Extra! - SET 3270 DISPLAY STATE
  1595.     AH = A1h
  1596.     AL = new display status byte (see #0974)
  1597. SeeAlso: AH=A0h,AH=A2h
  1598. --------v-21A1D5-----------------------------
  1599. INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK
  1600.     AX = A1D5h
  1601. Return: AX = 900Dh if resident
  1602. SeeAlso: AX=9753h,AX=9AD5h,AX=A55Ah
  1603. --------I-21A2-------------------------------
  1604. INT 21 - Attachmate Extra! - SET HOST WINDOW STATE
  1605.     AH = A2h
  1606.     AL = new host window status byte (see #0976)
  1607. SeeAlso: AH=A1h
  1608.  
  1609. Bitfields for Attachmate Extra! host window status:
  1610. Bit(s)    Description    (Table 0976)
  1611.  7    0=power off, 1=power on
  1612.  6    0=not installed, 1=installed
  1613.  5-3    reserved
  1614.  2-0    window number 1-4=host B-E
  1615. --------I-21A3-------------------------------
  1616. INT 21 - Attachmate Extra! - SEND KEYSTROKES TO HOST WINDOW
  1617.     AH = A3h
  1618.     AL = window number (1-4=host B-E)
  1619.     CX = 0001h
  1620.     DS:BX -> keystroke buffer
  1621.     DL = zero if keystroke buffer contains host function code (see #0977),
  1622.           non-zero if keystroke buffer contains ASCII character
  1623. Return: CX = zero if character sent, non-zero if not
  1624.     BX incremented if CX=0
  1625.  
  1626. (Table 0977)
  1627. Values for Attachmate Extra! host function code:
  1628.  00h=reserved    10h=PF16    20h=Clear    30h=SysReq
  1629.  01h=PF1    11h=PF17    21h=Print    31h=ErInp
  1630.  02h=PF2    12h=PF18    22h=Left    32h=ErEof
  1631.  03h=PF3    13h=PF19    23h=Right    33h=Ident
  1632.  04h=PF4    14h=PF20    24h=Up        34h=Test
  1633.  05h=PF5    15h=PF21    25h=Down    35h=Reset
  1634.  06h=PF6    16h=PF22    26h=Home    36h=DevCncl
  1635.  07h=PF7    17h=PF23    27h=Fast Left    37h=Dup
  1636.  08h=PF8    18h=PF24    28h=Fast Right    38h=FldMark
  1637.  09h=PF9    19h=Alt on    29h=Bksp    39h=Enter
  1638.  0Ah=PF10    1Ah=Alt off    2Ah=Insert    3Ah=CrSel
  1639.  0Bh=PF11    1Bh=Shift on    2Bh=Delete
  1640.  0Ch=PF12    1Ch=Shift off    2Ch=Backtab
  1641.  0Dh=PF13    1Dh=PA1        2Dh=Tab
  1642.  0Eh=PF14    1Eh=PA2        2Eh=Newline
  1643.  0Fh=PF15    1Fh=PA3        2Fh=Attn
  1644. --------I-21A4-------------------------------
  1645. INT 21 - Attachmate Extra! - GET HOST WINDOW BUFFER ADDRESS
  1646.     AH = A4h
  1647.     AL = window number (1-4=host B-E)
  1648. Return: DS:BX -> 3270 display buffer
  1649. SeeAlso: AH=A5h,AH=B8h
  1650. --------I-21A5-------------------------------
  1651. INT 21 - Attachmate Extra! - GET HOST WINDOW CURSOR POSITION
  1652.     AH = A5h
  1653.     AL = window number (1-4=host B-E)
  1654. Return: BX = cursor position (80 * row + column, where 0:0 is upper left)
  1655. Note:    if the host window is configured with the Extended Attribute (EAB)
  1656.       feature, multiply the cursor position by 2 to obtain the byte offset
  1657.       into the display buffer
  1658. SeeAlso: AH=A4h
  1659. --------v-21A55A-----------------------------
  1660. INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK
  1661.     AX = A55Ah
  1662. Return: AX = 5AA5h if resident
  1663. SeeAlso: AX=A1D5h,AX=AA00h
  1664. --------v-21AA00-----------------------------
  1665. INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK
  1666.     AX = AA00h
  1667. Return: AX = 00AAh if resident
  1668. SeeAlso: AX=A55Ah,AX=AA03h
  1669. --------v-21AA03-----------------------------
  1670. INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK
  1671.     AX = AA03h
  1672. Return: AX = 03AAh if resident
  1673. SeeAlso: AX=AA00h,AH=ABh
  1674. --------v-21AB-------------------------------
  1675. INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK
  1676.     AH = ABh
  1677. Return: AX = 5555h if resident
  1678. SeeAlso: AX=AA03h,AX=ABCDh,AX=BBBBh"VIRUS"
  1679. --------v-21ABCD------------------------
  1680. INT 21 - VIRUS - "SuperVirus 2" - INSTALLATION CHECK
  1681.     AX = ABCDh
  1682. Return: AX = DCBAh if resident
  1683. SeeAlso: AH=ABh"VIRUS",AX=BBBBh"VIRUS"
  1684. --------I-21AF-------------------------------
  1685. INT 21 - Attachmate Extra! - GET TRANSLATE TABLE ADDRESS
  1686.     AH = AFh
  1687. Return: DS:BX -> translate tables (see #0978)
  1688.  
  1689. Format of Attachmate Extra! translate tables:
  1690. Offset    Size    Description    (Table 0978)
  1691.  00h 256 BYTEs    ASCII to 3270 buffer code translate table
  1692. 100h 256 BYTEs    3270 buffer code to ASCII translate table
  1693. 200h 256 BYTEs    3270 buffer code to EBCDIC translate table
  1694. 300h 256 BYTEs    EBCDIC to 3270 buffer code translate table
  1695. --------N-21B300-----------------------------
  1696. INT 21 U - Novell NetWare - CHECK LIP/PACKET SIGNING/IPX CHECKSUM SUPPORT???
  1697.     AX = B300h
  1698. Return: AX = 0000h if supported???
  1699. Note:    this function appeared with the packet signing/Large Internet Packets/
  1700.       IPX Checksum-aware NetWare shells
  1701. SeeAlso: AX=B301h,AX=B302h
  1702. --------N-21B301-----------------------------
  1703. INT 21 U - Novell NetWare - CHECK SIGNATURE LEVEL???
  1704.     AX = B301h
  1705. Return: AX = 0000h if supported???
  1706.         BX:CX indicate signature level (see #0979)
  1707. Note:    this function appeared with the packet signing/Large Internet Packets/
  1708.       IPX Checksum-aware NetWare shells
  1709. SeeAlso: AX=B300h,AX=B304h,#1581 at INT 2F/AX=7A20h/BX=0000h
  1710.  
  1711. (Table 0979)
  1712. Values for signature level indicator:
  1713.  0000h:0000h = signature level 0
  1714.  0002h:0000h = signature level 1
  1715.  0202h:0000h = signature level 2
  1716.  0202h:0202h = signature level 3
  1717. --------N-21B302-----------------------------
  1718. INT 21 U - Novell NetWare - START PACKET SIGNING
  1719.     AX = B302h
  1720.     CX = server connection (1-8)
  1721.     DS:SI -> 24-byte buffer containing ???
  1722. Return: ???
  1723. Notes:    this function appeared with the packet signing/Large Internet Packets/
  1724.       IPX Checksum-aware NetWare shells
  1725.     if packet signing is active, this call is required if and only if the
  1726.       last call successfully authenticated the workstation to the server
  1727. SeeAlso: AX=B300h,#1581
  1728. --------N-21B304-----------------------------
  1729. INT 21 U - Novell NetWare - SET SIGNATURE LEVEL
  1730.     AX = B304h
  1731.     BX:CX = new signature level (see AX=B301h)
  1732. Return: ???
  1733. Note:    this function appeared with the packet signing/Large Internet Packets/
  1734.       IPX Checksum-aware NetWare shells
  1735. SeeAlso: AX=B300h,AX=B301h,AX=B306h,#1581
  1736. --------N-21B306-----------------------------
  1737. INT 21 - Novell NetWare - RENEGOTIATE SECURITY LEVEL
  1738.     AX = B306h
  1739.     CX = server connection number (01h-08h)
  1740. Return: ???
  1741. Note:    this function appeared with the packet signing/Large Internet Packets/
  1742.       IPX Checksum-aware NetWare shells
  1743. SeeAlso: AX=B300h,AX=B304h,#1581
  1744. --------N-21B4-------------------------------
  1745. INT 21 U - Novell NetWare - "AttachHandle"
  1746.     AH = B4h
  1747.     DS:SI -> input buffer (see #0980)
  1748. Return: AX = DOS file handle or return code
  1749. Note:    this is an interface provided by NetWare to give DOS file access to
  1750.       NetWare files on non-DOS systems such as Macintosh, OS/2, and Unix
  1751. SeeAlso: AX=E909h
  1752.  
  1753. Format of Novell NetWare input buffer:
  1754. Offset    Size    Description    (Table 0980)
  1755.  00h    BYTE    "WorkFileServer"
  1756.  01h    BYTE    access code
  1757.  02h    DWORD    "OpenHandle"
  1758.  06h    WORD    "OpenHandleCount"
  1759.  08h    DWORD    "OpenFileSize"
  1760. Note:    the six bytes at 02h-07h appear to be the six-byte NetWare handle
  1761.       returned by AX=E909h
  1762. --------N-21B500-----------------------------
  1763. INT 21 U - Novell NetWare - VNETWARE.386 API - GET INSTANCE DATA
  1764.     AX = B500h
  1765. Return: ES:BX -> data
  1766.     CX = length
  1767. SeeAlso: AX=B501h,AX=B502h
  1768. --------N-21B501-----------------------------
  1769. INT 21 U - Novell NetWare - VNETWARE.386 API - END VIRTUAL MACHINE
  1770.     AX = B501h
  1771. SeeAlso: AX=B500h,AX=B502h
  1772. --------N-21B502-----------------------------
  1773. INT 21 U - Novell NetWare - VNETWARE.386 API - START VIRTUAL MACHINE
  1774.     AX = B502h
  1775. SeeAlso: AX=B500h,AX=B501h
  1776. --------N-21B5-------------------------------
  1777. INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL
  1778.     AH = B5h
  1779.     AL = subfunction
  1780.         03h get task mode
  1781.         Return: AH = 00h
  1782.             AL = current task mode byte (see #0981)
  1783.         04h get task mode pointer
  1784.         Return: ES:BX -> task mode byte
  1785. Notes:    the task mode byte specifies how task cleanup should be performed, but
  1786.       is declared to be version-dependent
  1787.     allows a program to disable the automatic cleanup for programs managing
  1788.       task swapping, etc.
  1789.  
  1790. (Table 0981)
  1791. Values for NetWare task mode byte in version 3.01:
  1792.  00h-03h reserved
  1793.  04h     no task cleanup
  1794. --------N-21B505-----------------------------
  1795. INT 21 U - Novell NetWare - VNETWARE.386 API - SET VIRTUAL MACHINE ID
  1796.     AX = B505h
  1797.     ???
  1798. Return: ???
  1799. SeeAlso: AX=B502h,AX=B506h
  1800. --------N-21B506-----------------------------
  1801. INT 21 U - Novell NetWare - VNETWARE.386 API - GET VIRTUAL MACH SUPPORT LEVEL
  1802.     AX = B506h
  1803. Return: AX = ??? (0002h)
  1804. SeeAlso: AX=B505h
  1805. --------N-21B507-----------------------------
  1806. INT 21 - Novell NetWare - NetWare Shell - GET NUMBER OF PACKET BURST BUFFERS
  1807.     AX = B507h
  1808. Return: AL = number of packet burst buffers (configured at shell load time)
  1809. --------N-21B6-------------------------------
  1810. INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES
  1811.     AH = B6h
  1812.     AL = subfunction
  1813.         00h get extended file attributes
  1814.         01h set extended file attributes
  1815.         CL = extended file attributes (see #0982)
  1816.     DS:DX -> ASCIZ pathname (max 255 bytes)
  1817. Return: CF set on error
  1818.         AL = error code
  1819.         8Ch caller lacks privileges
  1820.         FEh not permitted to search directory
  1821.         FFh file not found
  1822.     CF clear if successful
  1823.         AL = 00h (success)
  1824.         CL = current extended file attributes (see #0982)
  1825. Note:    this function is supported by Advanced NetWare 2.1+
  1826. SeeAlso: AX=4300h,AH=E3h/SF=0Fh
  1827.  
  1828. Bitfields for NetWare extended file attributes:
  1829. Bit(s)    Description    (Table 0982)
  1830.  2-0    search mode (executables only)
  1831.     000 none (use shell's default search)
  1832.     001 search on all opens without path
  1833.     010 do not search
  1834.     011 search on read-only opens without path
  1835.     100 reserved
  1836.     101 search on all opens
  1837.     110 reserved
  1838.     111 search on all read-only opens
  1839.  3    reserved
  1840.  4    transactions on file tracked
  1841.  5    file's FAT indexed
  1842.  6    read audit (to be implemented)
  1843.  7    write audit (to be implemented)
  1844. --------N-21B7-------------------------------
  1845. INT 21 U - Novell NetWare - "HoldFileModeSet" (obsolete)
  1846.     AH = B7h
  1847.     AL = new value for HoldFileFlag
  1848. Return: AL = previous value of HoldFileFlag
  1849. Note:    this function provided backward compatibility with a bug in early
  1850.       DOS versions and CP/M, but is no longer used or supported
  1851. --------I-21B8-------------------------------
  1852. INT 21 - Attachmate Extra! - DISABLE HOST BUFFER UPDATES
  1853.     AH = B8h
  1854.     AL = window number (1-4=host B-E)
  1855.     DL = 01h
  1856. Notes:    only valid in CUT mode
  1857.     next AID keystroke (eg Enter) enables host buffer updates
  1858. SeeAlso: AH=A4h
  1859. --------N-21B800-----------------------------
  1860. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS
  1861.     AX = B800h
  1862.     CX = size of reply buffer (01h-3Fh)
  1863.     ES:BX -> reply buffer for capture flags table (see #0983)
  1864. Return: AL = status
  1865.         00h successful
  1866. Note:    this function is supported by Advanced NetWare 2.0+
  1867. SeeAlso: AX=B801h,AX=B802h,AH=DFh/DL=00h,AH=DFh/DL=04h
  1868.  
  1869. Format of NetWare capture flags table:
  1870. Offset    Size    Description    (Table 0983)
  1871.  00h    BYTE    status (used internally, should be set to 00h)
  1872.  01h    BYTE    print flags (see #0984)
  1873.  02h    BYTE    tab size (01h-12h, default 08h)
  1874.  03h    BYTE    printer number on server (00h-04h, default 00h)
  1875.  04h    BYTE    number of copies to print (00h-FFh, default 01h)
  1876.  05h    BYTE    form type required in printer (default 00h)
  1877.  06h    BYTE    reserved
  1878.  07h 13 BYTEs    text to be placed on banner page
  1879.  14h    BYTE    reserved
  1880.  15h    BYTE    default local printer (00h = LPT1)
  1881.  16h    WORD    (big-endian) timeout in clock ticks for flushing capture file
  1882.           on inactivity, or 0000h to disable timeout
  1883.  18h    BYTE    flush capture file on LPT close if nonzero
  1884.  19h    WORD    (big-endian) maximum lines per page
  1885.  1Bh    WORD    (big-endian) maximum characters per line
  1886.  1Dh 13 BYTEs    name of form required in printer
  1887.  2Ah    BYTE    LPT capture flag
  1888.         00h inactive, FFh LPT device is being captured
  1889.  2Bh    BYTE    file capture flag
  1890.         00h if no file specified, FFh if capturing to file
  1891.  2Ch    BYTE    timing out (00h if no timeout in effect, FFh if timeout counter
  1892.           running)
  1893.  2Dh    DWORD    (big-endian) address of printer setup string
  1894.  31h    DWORD    (big-endian) address of printer reset string
  1895.  35h    BYTE    target connection ID
  1896.  36h    BYTE    capture in progress if FFh
  1897.  37h    BYTE    job queued for printing if FFh
  1898.  38h    BYTE    print job valid if FFh
  1899.  39h    DWORD    bindery object ID of print queue if previous byte FFh
  1900.  3Dh    WORD    (big-endian) print job number (1-999)
  1901.  
  1902. Bitfields for NetWare print flags:
  1903. Bit(s)    Description    (Table 0984)
  1904.  2    print capture file if interrupted by loss of connection
  1905.  3    no automatic form feed after print job
  1906.  6    printing control sequences interpreted by print service
  1907.  7    print banner page before capture file
  1908. --------N-21B801-----------------------------
  1909. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS
  1910.     AX = B801h
  1911.     CX = size of buffer (01h-3Fh)
  1912.     ES:BX -> buffer containing capture flags table (see #0983)
  1913. Return: AL = status
  1914.         00h successful
  1915. Note:    this function is supported by Advanced NetWare 2.0+
  1916. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  1917. --------N-21B802-----------------------------
  1918. INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS
  1919.     AX = B802h
  1920.     CX = size of reply buffer (01h-3Fh)
  1921.     DH = LPT port (00h-02h)
  1922.     ES:BX -> reply buffer for capture flags table (see #0983)
  1923. Return: AL = status
  1924.         00h successful
  1925. Note:    this function is supported by Advanced NetWare 2.1+
  1926. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  1927. --------N-21B803-----------------------------
  1928. INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS
  1929.     AX = B803h
  1930.     CX = size of buffer (01h-3Fh)
  1931.     DH = LPT port (00h-02h)
  1932.     ES:BX -> buffer containing capture flags table (see #0983)
  1933. Return: AL = status
  1934.         00h successful
  1935. Note:    this function is supported by Advanced NetWare 2.1+
  1936. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  1937. --------N-21B804-----------------------------
  1938. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER
  1939.     AX = B804h
  1940. Return: DH = default LPT port (00h-02h)
  1941. Note:    this function is supported by Advanced NetWare 2.1+
  1942. SeeAlso: AX=B800h,AX=B805h,AH=DFh/DL=00h
  1943. --------N-21B805-----------------------------
  1944. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER
  1945.     AX = B805h
  1946.     DH = new default LPT port (00h-02h)
  1947. Return: AL = status
  1948.         00h successful
  1949. Note:    this function is supported by Advanced NetWare 2.1+
  1950. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h
  1951. --------N-21B806-----------------------------
  1952. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE
  1953.     AX = B806h
  1954.     DH = LPT port (00h-02h)
  1955.     BX:CX = print queue's object ID
  1956. Return: AL = status
  1957.         00h successful
  1958.         FFh job already set
  1959. Desc:    specify the print queue on which a print job is to be placed the next
  1960.       time a capture is started on the given printer port
  1961. Note:    this function is supported by Advanced NetWare 2.1+
  1962. SeeAlso: AX=B801h,AX=B807h,AH=E0h/SF=09h
  1963. --------N-21B807-----------------------------
  1964. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB
  1965.     AX = B807h
  1966.     DH = LPT port (00h-02h)
  1967.     BX = job number (see AH=E3h/SF=68h)
  1968.     SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h)
  1969. Return: AL = status
  1970.         00h successful
  1971.         FFh job already queued
  1972. Desc:    specify the capture file and print job to be used for subsequent
  1973.       output to the given printer port
  1974. Note:    this function is supported by Advanced NetWare 2.1+
  1975. SeeAlso: AX=B801h,AX=B806h,AH=E0/SF=09h,AH=E3h/SF=68h
  1976. --------N-21B808-----------------------------
  1977. INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
  1978.     AX = B808h
  1979.     ES:BX -> 12-byte buffer for user name
  1980. Return: AL = status
  1981.         00h successful
  1982. Desc:    get the user name which is printed on the banner page
  1983. Notes:    this function is supported by Advanced NetWare 2.1+
  1984.     the default name is the login name of the user
  1985. SeeAlso: AX=B809h
  1986. --------N-21B809-----------------------------
  1987. INT 21 - Novell NetWare - PRINT SERVICES - SET BANNER USER NAME
  1988.     AX = B809h
  1989.     ES:BX -> 12-byte buffer containing user name
  1990. Return: AL = status
  1991.         00h successful
  1992. Desc:    specify the user name which is printed on the banner page
  1993. Notes:    this function is supported by Advanced NetWare 2.1+
  1994.     the default name is the login name of the user
  1995. SeeAlso: AX=B808h
  1996. --------N-21B9-------------------------------
  1997. INT 21 U - Novell NetWare - "SpecialAttachableFunction"
  1998.     AH = B9h
  1999.     AL = FFh to hook this function
  2000.         ES:BX -> function to invoke on AH=B9h when AL<>FFh
  2001. Note:    this function is no longer used or supported by current versions of
  2002.       NetWare
  2003. --------N-21BA-------------------------------
  2004. INT 21 U - Novell NetWare - "ReturnCommandComPointers"
  2005.     AH = BAh
  2006. Return: DX = environment segment
  2007.     ES:DI -> COMMAND.COM drive
  2008. Desc:    used to edit the COMSPEC and PATH variables in the master environment
  2009.       when mapping network drives
  2010. Note:    this function was documented in older Novell documents which are no
  2011.       longer available
  2012. --------N-21BB-------------------------------
  2013. INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS
  2014.     AH = BBh
  2015.     AL = new EOJ flag
  2016.         00h disable EOJs
  2017.         01h enable EOJs
  2018. Return: AL = old EOJ flag
  2019. Desc:    specify whether the network shell should automatically generate an
  2020.       End of Job call when the root command processor regains control
  2021. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2022.       Alloy NTNX
  2023. SeeAlso: AH=19h,AH=D6h
  2024. --------v-21BBBB-----------------------------
  2025. INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK
  2026.     AX = BBBBh
  2027. Return: AX = 6969h
  2028. SeeAlso: AH=ABh"VIRUS",AH=BEh"VIRUS"
  2029. --------N-21BC-------------------------------
  2030. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD
  2031.     AH = BCh
  2032.     AL = flags (see #0986)
  2033.     BX = file handle
  2034.     CX:DX = starting offset in file
  2035.     SI:DI = length of region to lock
  2036.     BP = timeout in timer ticks (1/18 sec)
  2037.         0000h = don't wait if already locked
  2038. Return: AL = status (see #0985)
  2039. Desc:    add the specified physical record to the log table, optionally locking
  2040.       it
  2041. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2042.       Alloy NTNX
  2043. SeeAlso: AH=5Ch,AH=BDh,AH=BEh,AH=BFh,AH=C2h,AH=D0h
  2044.  
  2045. (Table 0985)
  2046. Values for NetWare status:
  2047.  00h    successful
  2048.  96h    no dynamic memory for file
  2049.  FEh    timed out
  2050.  FFh    failed
  2051.  
  2052. Bitfields for NetWare flags:
  2053. Bit(s)    Description    (Table 0986)
  2054.  0    lock as well as log record
  2055.  1    non-exclusive lock
  2056. --------N-21BD-------------------------------
  2057. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD
  2058.     AH = BDh
  2059.     BX = file handle
  2060.     CX:DX = starting offset in file
  2061.     SI:DI = length of record
  2062. Return: AL = status
  2063.         00h successful
  2064.         FFh record not locked
  2065. Desc:    unlock the specified physical record but do not remove it from log
  2066.       table
  2067. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2068.       Alloy NTNX
  2069. SeeAlso: AH=BCh,AH=BEh"NetWare",AH=C0h,AH=C3h,AH=D2h
  2070. --------N-21BE-------------------------------
  2071. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD
  2072.     AH = BEh
  2073.     BX = file handle
  2074.     CX:DX = starting offset within file
  2075.     SI:DI = record length in bytes
  2076. Return: AL = status
  2077.         00h successful
  2078.         FFh specified record not locked
  2079. Desc:    unlock the physical record and remove it from the log table
  2080. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2081.       Alloy NTNX
  2082. SeeAlso: AH=5Ch,AH=BCh,AH=BDh,AH=C1h,AH=C4h,AH=D4h
  2083. --------v-21BE-------------------------------
  2084. INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK
  2085.     AH = BEh
  2086. Return: AX = 1234h if resident
  2087. SeeAlso: AX=BBBBh,AX=BE00h
  2088. --------v-21BE00-----------------------------
  2089. INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK
  2090.     AX = BE00h
  2091.     CF set
  2092. Return: CF clear if resident
  2093. SeeAlso: AH=BEh"VIRUS",AH=C0h"VIRUS"
  2094. --------N-21BF-------------------------------
  2095. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK RECORD (FCB)
  2096.     AH = BFh
  2097.     AL = flags (see #0986)
  2098.     DS:DX -> opened FCB (see #0574 at AH=0Fh)
  2099.     BX:CX = offset
  2100.     BP = lock timeout in timer ticks (1/18 sec) if AL nonzero
  2101.     SI:DI = length
  2102. Return: AL = error code (see #0985)
  2103. Note:    this function was added in NetWare 4.6, but was removed some time prior
  2104.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  2105.       documentation
  2106. SeeAlso: AH=BCh,AH=C0h"NetWare",AH=C2h"NetWare"
  2107. --------N-21C0-------------------------------
  2108. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE RECORD (FCB)
  2109.     AH = C0h
  2110.     DS:DX -> non-extended FCB (see #0574 at AH=0Fh)
  2111.     BX:CX = offset
  2112. Return: AL = error code (see #0985)
  2113. Notes:    unlocks record but does not remove it from log table
  2114.     this function was added in NetWare 4.6, but was removed some time prior
  2115.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  2116.       documentation
  2117. SeeAlso: AH=BDh,AH=BFh,AH=C1h"NetWare",AH=C3h
  2118. --------v-21C0-------------------------------
  2119. INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK
  2120.     AH = C0h
  2121. Return: AX = 0300h if "Slow"/"Zerotime" resident
  2122.     AX = 1234h if "Solano" resident
  2123. SeeAlso: AX=BE00h,AH=C1h"VIRUS",AX=C301h"VIRUS"
  2124. --------N-21C1-------------------------------
  2125. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR RECORD (FCB)
  2126.     AH = C1h
  2127.     DS:DX -> opened FCB (see #0574 at AH=0Fh)
  2128.     BX:CX = offset
  2129. Return: AL = error code (see #0985)
  2130. Note:    unlocks record and removes it from log table
  2131.     this function was added in NetWare 4.6, but was removed some time prior
  2132.       to Advanced NetWare, and is no longer listed in current Novell
  2133.       documentation
  2134. SeeAlso: AH=BEh,AH=C0h"NetWare",AH=C4h
  2135. --------v-21C1-------------------------------
  2136. INT 21 - VIRUS - "Solano" - ???
  2137.     AH = C1h
  2138.     ???
  2139. Return: ???
  2140. SeeAlso: AH=C0h"VIRUS"
  2141. --------N-21C2-------------------------------
  2142. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET
  2143.     AH = C2h
  2144.     AL = flags
  2145.         bit 1: non-exclusive lock
  2146.     BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  2147. Return: AL = status
  2148.         00h successful
  2149.         FEh timed out
  2150.         FFh failed
  2151. Desc:    attempt to lock all physical records listed in the log table
  2152. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2153.       Alloy NTNX
  2154.     status FFh will be returned if one or more physical records have been
  2155.       exclusively locked by another process
  2156. SeeAlso: AH=BFh,AH=C3h,AH=D1h
  2157. --------v-21C2-------------------------------
  2158. INT 21 - VIRUS - "Scott's Valley" - ???
  2159.     AH = C2h
  2160.     ???
  2161. Return: ???
  2162. SeeAlso: AH=C0h"VIRUS"
  2163. --------N-21C3-------------------------------
  2164. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECRD SET
  2165.     AH = C3h
  2166. Desc:    unlock all currently-locked physical records in the log table, but do
  2167.       not remove them from the table
  2168. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2169.       Alloy NTNX
  2170. SeeAlso: AH=BDh,AH=C0h,AH=C2h"NetWare",AH=C4h,AH=D3h
  2171. --------v-21C301DXF1F1-----------------------
  2172. INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK
  2173.     AX = C301h
  2174.     DX = F1F1h
  2175. Return: DX = 0E0Eh if resident
  2176. SeeAlso: AH=C0h"VIRUS",AX=C500h"VIRUS"
  2177. --------N-21C4-------------------------------
  2178. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET
  2179.     AH = C4h
  2180. Desc:    unlock all physical records in the log table and remove them from the
  2181.       log table
  2182. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2183.       Alloy NTNX
  2184. SeeAlso: AH=BEh,AH=C1h,AH=D5h
  2185. --------N-21C500-----------------------------
  2186. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE
  2187.     AX = C500h
  2188.     DS:DX -> semaphore name (counted string, max 127 bytes)
  2189.     CL = initial value for semaphore
  2190. Return: AL = status
  2191.         00h successful
  2192.         BL = number of processes having semaphore open
  2193.         CX:DX = semaphore handle
  2194.         03h name length greater than 127 (see Novell document FYI.A.4611)
  2195.         FEh invalid name length
  2196.         FFh invalid semaphore value
  2197. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2198.       Alloy NTNX
  2199.     the semaphore's value is incremented by AX=C503h and decremented by
  2200.       AX=C502h
  2201. SeeAlso: AX=C501h,AX=C502h,AX=C503h,AX=C504h
  2202. --------v-21C500-----------------------------
  2203. INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK
  2204.     AX = C500h
  2205. Return: AX = 6731h if resident
  2206. SeeAlso: AX=C301h"VIRUS",AH=C6h"VIRUS"
  2207. --------N-21C501-----------------------------
  2208. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE
  2209.     AX = C501h
  2210.     CX:DX = semaphore handle
  2211. Return: AL = status
  2212.         00h successful
  2213.         CX = semaphore value (-127 to 127)
  2214.         DL = count of processes which have the semaphore open
  2215.         FFh invalid handle
  2216. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2217.       Alloy NTNX
  2218. SeeAlso: AX=C500h"NetWare",AX=C502h,AX=C504h
  2219. --------N-21C502-----------------------------
  2220. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE
  2221.     AX = C502h
  2222.     CX:DX = semaphore handle
  2223.     BP = timeout limit in timer ticks (1/18 sec)
  2224.         0000h return immediately if semaphore already zero or negative
  2225. Return: AL = status
  2226.         00h successful
  2227.         FEh timeout
  2228.         FFh invalid handle
  2229. Desc:    decrement the semaphore's value, optionally waiting until its value
  2230.       becomes positive before decrementing
  2231. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2232.       Alloy NTNX
  2233. SeeAlso: AX=C500h"NetWare",AX=C501h,AX=C503h
  2234. --------N-21C503-----------------------------
  2235. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE
  2236.     AX = C503h
  2237.     CX:DX = semaphore handle
  2238. Return: AL = status
  2239.         00h successful
  2240.         01h semaphore value overflowed
  2241.         FFh invalid handle
  2242. Desc:    increment the semaphore's value and signal the first process (if any)
  2243.       in the queue waiting on the semaphore
  2244. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2245.       Alloy NTNX
  2246. SeeAlso: AX=C500h"NetWare",AX=C502h
  2247. --------N-21C504-----------------------------
  2248. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE
  2249.     AX = C504h
  2250.     CX:DX = semaphore handle
  2251. Return: AL = status
  2252.         00h successful
  2253.         FFh invalid handle
  2254. Desc:    decrement the semaphore's open count, and delete the semaphore if the
  2255.       count reaches zero
  2256. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2257.       Alloy NTNX
  2258. SeeAlso: AX=C500h"NetWare",AX=C501h
  2259. --------N-21C6-------------------------------
  2260. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE
  2261.     AH = C6h
  2262.     AL = subfunction
  2263.         00h set old "compatibility" mode (default)
  2264.         01h set new extended locks mode
  2265.         02h get lock mode
  2266. Return: AL = current lock mode
  2267. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  2268.       Alloy NTNX
  2269.     the locking mode should be 01h for NetWare 4.61+ and Advanced
  2270.       NetWare 1.0+ locking calls, and 00h for all older calls
  2271. SeeAlso: AH=BCh,AH=C4h,AH=D0h
  2272. --------v-21C6-------------------------------
  2273. INT 21 - VIRUS - "Socha" - INSTALLATION CHECK
  2274.     AH = C6h
  2275. Return: AL = 55h if resident
  2276. SeeAlso: AX=C500h"VIRUS",AX=C603h
  2277. --------v-21C603-----------------------------
  2278. INT 21 - VIRUS - "Yankee Doodle" or "MLTI" - INSTALLATION CHECK
  2279.     AX = C603h
  2280.     BX = version number (002Ch or 002Dh)
  2281.     CF set
  2282. Return: CF clear if resident
  2283.     ZF set if resident and input BX matches version
  2284. SeeAlso: AX=C500h"VIRUS",AX=C700h"VIRUS"
  2285. --------N-21C700-----------------------------
  2286. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION
  2287.     AX = C700h
  2288. Return: CF clear if successful
  2289.         AL = 00h
  2290.     CF set on error
  2291.         AL = error code
  2292.         96h out of memory
  2293.         FEh implicit transaction already active, converted to explicit
  2294.         FFh explicit transaction already active
  2295. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2296. SeeAlso: AX=C701h,AX=C702h,AX=C703h
  2297. --------v-21C700-----------------------------
  2298. INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK
  2299.     AX = C700h
  2300. Return: AL = 07h if resident
  2301. SeeAlso: AX=C603h"VIRUS",AH=CBh"VIRUS"
  2302. --------N-21C701-----------------------------
  2303. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION
  2304.     AX = C701h
  2305. Return: AL = status (00h,FDh-FFh) (see #0987)
  2306.         00h successful
  2307.         CX:DX = transaction number
  2308.     CF clear except when AL=FFh
  2309. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2310. SeeAlso: AX=C700h"NetWare",AX=C703h
  2311.  
  2312. (Table 0987)
  2313. Values for NetWare TTS status:
  2314.  00h    successful
  2315.  FDh    transaction tracking disabled
  2316.  FEh    transaction ended records locked
  2317.  FFh    no explicit transaction active
  2318. --------N-21C702-----------------------------
  2319. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK
  2320.     AX = C702h
  2321. Return: AL = status
  2322.         00h not available
  2323.         01h available
  2324.         FDh available but disabled
  2325. Desc:    determine whether the default file server supports TTS
  2326. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2327. --------N-21C703-----------------------------
  2328. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION
  2329.     AX = C703h
  2330. Return: CF clear if successful
  2331.         AL = 00h
  2332.     CF set on error
  2333.         AL = error code (FDh-FFh) (see #0987)
  2334. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2335. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C704h
  2336. --------N-21C704-----------------------------
  2337. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS
  2338.     AX = C704h
  2339.     CX:DX = transaction number (see AX=C701h)
  2340. Return: AL = status
  2341.         00h successful
  2342.         FFh not yet written to disk
  2343. Desc:    verify that a transaction has actually been written to disk
  2344. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2345.     transactions are written to disk in the order in which they are ended,
  2346.       but it may take as much as five seconds for the data to be written
  2347. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C703h
  2348. --------N-21C705-----------------------------
  2349. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS
  2350.     AX = C705h
  2351. Return: AL = status
  2352.         00h successful
  2353.     CL = maximum logical record locks (default 0)
  2354.     CH = maximum physical record locks (default 0)
  2355. Desc:    get the per-application limits on record locks allowed before an
  2356.       implicit transaction is begun
  2357. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2358.     if either limit is FFh, implicit transactions are disabled for the
  2359.       corresponding lock type
  2360. SeeAlso: AX=C706h,AX=C707h
  2361. --------N-21C706-----------------------------
  2362. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS
  2363.     AX = C706h
  2364.     CL = maximum logical record locks (default 0)
  2365.     CH = maximum physical record locks (default 0)
  2366. Return: AL = status
  2367.         00h successful
  2368. Desc:    specify the per-application limits on record locks allowed before an
  2369.       implicit transaction is begun
  2370. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2371.     if either limit is set to FFh, implicit transactions are disabled for
  2372.       the corresponding lock type
  2373. SeeAlso: AX=C705h,AX=C708h
  2374. --------N-21C707-----------------------------
  2375. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS
  2376.     AX = C707h
  2377. Return: AL = status
  2378.         00h successful
  2379.     CL = maximum logical record locks (default 0)
  2380.     CH = maximum physical record locks (default 0)
  2381. Desc:    get the per-workstation limits on record locks allowed before an
  2382.       implicit transaction is begun
  2383. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2384.     if either limit is FFh, implicit transactions are disabled for the
  2385.       corresponding lock type
  2386. SeeAlso: AX=C705h,AX=C708h
  2387. --------N-21C708-----------------------------
  2388. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS
  2389.     AX = C708h
  2390.     CL = maximum logical record locks (default 0)
  2391.     CH = maximum physical record locks (default 0)
  2392. Return: AL = status
  2393.         00h successful
  2394. Desc:    specify the per-workstation limits on record locks allowed before an
  2395.       implicit transaction is begun
  2396. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2397.     if either limit is set to FFh, implicit transactions are disabled for
  2398.       the corresponding lock type
  2399. SeeAlso: AX=C706h,AX=C707h
  2400. --------N-21C8-------------------------------
  2401. INT 21 O - Novell NetWare - BEGIN LOGICAL FILE LOCKING
  2402.     AH = C8h
  2403.     if function C6h lock mode 00h:
  2404.         DL = mode
  2405.         00h no wait
  2406.         01h wait
  2407.     if function C6h lock mode 01h:
  2408.         BP = timeout in timer ticks (1/18 sec)
  2409. Return: AL = error code
  2410. Desc:    used to provide TTS support for applications which are not aware of
  2411.       Novell's Transaction Tracking System
  2412. Note:    this function was added in NetWare 4.0, but was removed some time prior
  2413.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  2414.       documentation
  2415. SeeAlso: AH=C9h
  2416. --------N-21C9-------------------------------
  2417. INT 21 O - Novell NetWare - END LOGICAL FILE LOCKING
  2418.     AH = C9h
  2419. Return: AL = error code
  2420. Desc:    used to provide TTS support for applications which are not aware of
  2421.       Novell's Transaction Tracking System
  2422. Note:    this function was added in NetWare 4.0, but was removed some time prior
  2423.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  2424.       documentation
  2425. SeeAlso: AH=C8h
  2426. --------N-21CA-------------------------------
  2427. INT 21 O - Novell NetWare, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)
  2428.     AH = CAh
  2429.     DS:DX -> FCB (see #0574 at AH=0Fh)
  2430.     if function C6h lock mode 01h:
  2431.         AL = log and lock flag
  2432.         00h log file only
  2433.         01h lock as well as log file
  2434.         BP = lock timeout in timer ticks (1/18 sec)
  2435. Return: AL = error code
  2436.         00h successful
  2437.         96h no dynamic memory for file
  2438.         FEh timeout
  2439.         FFh failed
  2440. Desc:    provides file locking support for FCBs
  2441. Note:    this function was added in NetWare 4.0, but was removed some time prior
  2442.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  2443.       documentation
  2444. SeeAlso: AH=CBh
  2445. --------v-21CA15-----------------------------
  2446. INT 21 - VIRUS - "Piter" - ???
  2447.     AX = CA15h
  2448.     ???
  2449. Return: ???
  2450. SeeAlso: AH=CCh"VIRUS"
  2451. --------N-21CB-------------------------------
  2452. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET
  2453.     AH = CBh
  2454.     if function C6h lock mode 00h:
  2455.         DL = mode (00h no wait, 01h wait)
  2456.     if function C6h lock mode 01h:
  2457.         BP = lock timeout in timer ticks (1/18 sec), 0000h = no wait
  2458. Return: AL = status (00h,FEh,FFh) (see #0988)
  2459. Desc:    attempt to lock all files listed in the log table
  2460. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2461.       Alloy NTNX
  2462.     status FFh will be returned if one or more of the files have already
  2463.       been exclusively locked by another process
  2464. SeeAlso: AH=CAh,AH=CDh,AH=D1h,AH=EBh
  2465.  
  2466. (Table 0988)
  2467. Values for NetWare status:
  2468.  00h    successful
  2469.  FEh    timed out
  2470.  FFh    failed
  2471. --------v-21CB-------------------------------
  2472. INT 21 - VIRUS - "Milous" - INSTALLATION CHECK
  2473.     AH = CBh
  2474. Return: AL = 07h if resident
  2475. SeeAlso: AX=C700h"VIRUS",AX=CB02h
  2476. --------v-21CB02-----------------------------
  2477. INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK
  2478.     AX = CB02h
  2479. Return: AX = 02CBh if resident
  2480. SeeAlso: AH=CBh"VIRUS",AH=CCh"VIRUS"
  2481. --------N-21CC-------------------------------
  2482. INT 21 O - Novell NetWare, Alloy NTNX - RELEASE FILE (FCB)
  2483.     AH = CCh
  2484.     DS:DX -> FCB (see #0574 at AH=0Fh)
  2485. Return: none
  2486. Desc:    unlocks file, but does not remove it from the log table or close it
  2487. Note:    this function was added in NetWare 4.0, but was removed some time prior
  2488.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  2489.       documentation
  2490. SeeAlso: AH=CAh,AH=CDh
  2491. --------v-21CC-------------------------------
  2492. INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK
  2493.     AH = CCh
  2494. Return: AX = 0700h if resident
  2495. SeeAlso: AX=CB02h,AH=CDh"VIRUS",AX=D000h"VIRUS"
  2496. --------N-21CD-------------------------------
  2497. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET
  2498.     AH = CDh
  2499. Return: none
  2500. Desc:    unlock all files listed in the log table, but don't remove them from
  2501.       the table
  2502. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2503.       Alloy NTNX
  2504. SeeAlso: AH=CBh,AH=CCh,AH=CFh,AH=D3h
  2505. --------v-21CD-------------------------------
  2506. INT 21 - VIRUS - "Westwood" - ???
  2507.     AH = CDh
  2508.     ???
  2509. Return: ???
  2510. SeeAlso: AH=CCh"VIRUS"
  2511. --------N-21CE-------------------------------
  2512. INT 21 O - Novell NetWare, Alloy NTNX - CLEAR FILE (FCB)
  2513.     AH = CEh
  2514.     DS:DX -> FCB (see #0574 at AH=0Fh)
  2515. Return: AL = error code
  2516. Desc:    unlocks file and removes it from log table, then closes all opened and
  2517.       logged occurrences
  2518. Note:    this function was added in NetWare 4.0, but was removed some time prior
  2519.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  2520.       documentation
  2521. SeeAlso: AH=CAh,AH=CFh,AH=EDh"NetWare"
  2522. --------N-21CF-------------------------------
  2523. INT 21 - LANstep - ???
  2524.     AH = CFh
  2525.     ???
  2526. Return: ???
  2527. Program: LANstep is a redesign of the Waterloo Microsystems PORT network
  2528. --------N-21CF-------------------------------
  2529. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET
  2530.     AH = CFh
  2531. Return: AL = 00h
  2532. Desc:    unlock and remove all files from log table
  2533. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2534.       Alloy NTNX
  2535. SeeAlso: AH=CAh,AH=CEh,AH=EBh"NetWare"
  2536. --------N-21D0-------------------------------
  2537. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD
  2538.     AH = D0h
  2539.     DS:DX -> record string (counted string, max 99 data bytes)
  2540.     if function C6h lock mode 01h: (Novell, NTNX only)
  2541.         AL = flags
  2542.         bit 0: lock as well as log the record
  2543.         bit 1: non-exclusive lock
  2544.         BP = lock timeout in timer ticks (1/18 sec)
  2545. Return: AL = status
  2546.         00h successful
  2547.         96h no dynamic memory for file
  2548.         FEh timed out
  2549.         FFh unsuccessful
  2550. Desc:    add the specified logical record name to the log table, and optionally
  2551.       lock the record
  2552. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  2553.       Banyan VINES, and Alloy NTNX
  2554.     locks on logical record names are advisory and may be ignored by other
  2555.       applications
  2556. SeeAlso: AH=BCh,AH=D1h,AH=D2h,AH=D4h,AH=EBh
  2557. --------v-21D000-----------------------------
  2558. INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK
  2559.     AX = D000h
  2560. Return: BX = 1234h if resident
  2561. SeeAlso: AH=CCh"VIRUS",AH=D5h"VIRUS",AX=D5AAh
  2562. --------N-21D1-------------------------------
  2563. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET
  2564.     AH = D1h
  2565.     AL = lock type (00h exclusive, 01h shareable)
  2566.     if function C6h lock mode 00h:
  2567.         DL = mode (00h no wait, 01h wait)
  2568.     if function C6h lock mode 01h: (Novell only)
  2569.         BP = lock timeout in timer ticks (1/18 sec), 0000h no wait
  2570. Return: AL = status (see #0988)
  2571. Desc:    attempt to lock all logical record names listed in the log table
  2572. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  2573.       Banyan VINES, and Alloy NTNX
  2574.     status FFh will be returned if one or more logical records have been
  2575.       exclusively locked by another process
  2576.     locks on logical record names are advisory and may be ignored by other
  2577.       applications
  2578. SeeAlso: AH=C2h,AH=CBh,AH=D0h,AH=D3h,AH=D5h
  2579. --------N-21D2-------------------------------
  2580. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD
  2581.     AH = D2h
  2582.     DS:DX -> semaphore identifier (counted string up to 99 chars long)
  2583. Return: AL = status
  2584.         00h successful
  2585.         FFh no such record
  2586. Desc:    unlock the logical record name but do not remove it from the log table
  2587. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  2588.       Banyan VINES, and Alloy NTNX
  2589.     locks on logical record names are advisory and may be ignored by other
  2590.       applications
  2591. SeeAlso: AH=BDh,AH=D0h,AH=D3h,AH=D4h
  2592. --------v-21D2-------------------------------
  2593. INT 21 - VIRUS???
  2594.     AH = D2h
  2595.     ???
  2596. Return: ???
  2597. Note:    this call is intercepted by the Search&Destroy SDRes v27.03 bundled
  2598.       with Novell DOS 7, and is presumably some virus's installation check
  2599. SeeAlso: AH=4Ah/BX=00B6h
  2600. --------N-21D3-------------------------------
  2601. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET
  2602.     AH = D3h
  2603. Desc:    unlock all currently-locked logical record names in the log table, but
  2604.       do not remove them from the table
  2605. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  2606.       Banyan VINES, and Alloy NTNX
  2607.     locks on logical record names are advisory and may be ignored by other
  2608.       applications
  2609. SeeAlso: AH=C3h,AH=CDh,AH=D1h,AH=D2h,AH=D5h
  2610. --------N-21D4-------------------------------
  2611. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD
  2612.     AH = D4h
  2613.     DS:DX -> logical record name (counted string up to 99 chars long)
  2614. Return: AL = status (00h,FFh) (see #0989)
  2615. Desc:    unlock and remove the logical record name from the log table
  2616. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  2617.       Banyan VINES, and Alloy NTNX
  2618.     locks on logical record names are advisory and may be ignored by other
  2619.       applications
  2620. SeeAlso: AH=BEh,AH=D0h,AH=D2h,AH=D5h
  2621.  
  2622. (Table 0989)
  2623. Values for NetWare status:
  2624.  00h    successful
  2625.  FFh    no such record name
  2626. --------N-21D5-------------------------------
  2627. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET
  2628.     AH = D5h
  2629. Return: AL = error code (00h,FFh) (see #0989)
  2630. Desc:    unlock and remove all logical record name from the log table
  2631. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  2632.       Banyan VINES, and Alloy NTNX
  2633.     locks on logical record names are advisory and may be ignored by other
  2634.       applications
  2635. SeeAlso: AH=D1h,AH=D3h,AH=D4h
  2636. --------v-21D5-------------------------------
  2637. INT 21 - VIRUS - "Carfield" - ???
  2638.     AH = D5h
  2639.     ???
  2640. Return: ???
  2641. SeeAlso: AX=D5AAh,AH=F3h"Carfield"
  2642. --------v-21D5AA-----------------------------
  2643. INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK
  2644.     AX = D5AAh
  2645. Return: AX = 2A55h if "Diamond-A" resident
  2646.     AX = 2A03h if "Diamond-B"-family virus resident
  2647. SeeAlso: AX=D000h,AH=D5h"VIRUS",AX=D5AAh/BP=DEAAh
  2648. --------v-21D5AABPDEAA-----------------------
  2649. INT 21 - VIRUS - "Dir" - INSTALLATION CHECK
  2650.     AX = D5AAh
  2651.     BP = DEAAh
  2652. Return: SI = 4321h if resident
  2653. SeeAlso: AX=D5AAh,AX=DADAh"VIRUS"
  2654. --------N-21D6-------------------------------
  2655. INT 21 - Novell NetWare - WORKSTATION - END OF JOB
  2656.     AH = D6h
  2657.     BX = job flag (0000h current job, FFFFh all processes on workstation)
  2658. Return: AL = error code
  2659. Desc:    unlocks and clears all locked or logged files and records held by the
  2660.       process(es), closes all files, resets error and lock modes, and
  2661.       releases all network resources
  2662. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2663.       Alloy NTNX
  2664. SeeAlso: AH=BBh,AH=D7h
  2665. --------N-21D7-------------------------------
  2666. INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT
  2667.     AH = D7h
  2668. Return: AL = error code
  2669. Desc:    this function closes the caller's open files, logs it out from all
  2670.       file servers, detaches the workstation from all non-default file
  2671.       servers, and maps a drive to the default server's SYS:LOGIN directory
  2672. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2673.       Alloy NTNX
  2674. SeeAlso: AH=D6h,AH=E3h/SF=14h,AH=F1h
  2675. --------N-21D8-------------------------------
  2676. INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE
  2677.     AH = D8h
  2678.     DL = resource number
  2679. Return: AL = status (00h successful, FFh unsucessful)
  2680. Note:    this function is no longer used or supported by NetWare, and is not
  2681.       documented in Novell documents
  2682. SeeAlso: AH=D9h
  2683. --------N-21D9-------------------------------
  2684. INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE
  2685.     AH = D9h
  2686.     DL = resource number
  2687. Return: AL = status (00h successful, FFh unsucessful)
  2688. Note:    this function is no longer used or supported by NetWare, and is not
  2689.       documented in Novell documents
  2690. SeeAlso: AH=D8h
  2691. --------N-21DA-------------------------------
  2692. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER
  2693.     AH = DAh
  2694.     DL = volume number
  2695.     ES:DI -> reply buffer (see #0990)
  2696. Return: AL = 00h
  2697. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2698.     operator console rights are not required to make this call
  2699.     reported total blocks and total unused blocks include the Hot Fix
  2700.       Table; the NetWare shell's implementation of INT 21/AH=36h will
  2701.       report values larger than 268MB as 268MB.
  2702. SeeAlso: AH=36h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  2703.  
  2704. Format of NetWare reply buffer:
  2705. Offset    Size    Description    (Table 0990)
  2706.  00h    WORD    sectors/block
  2707.  02h    WORD    total blocks on volume
  2708.  04h    WORD    unused blocks
  2709.  06h    WORD    total directory entries
  2710.  08h    WORD    unused directory entries
  2711.  0Ah 16 BYTEs    volume name, null padded
  2712.  1Ah    WORD    removable flag, 0000h = not removable
  2713. Note:    all words are big-endian
  2714. --------v-21DADA-----------------------------
  2715. INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK
  2716.     AX = DADAh
  2717. Return: AH = A5h
  2718. SeeAlso: AX=D5AAh,AX=DAFEh"VIRUS"
  2719. --------v-21DAFE-----------------------------
  2720. INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK
  2721.     AX = DAFEh
  2722. Return: AX = 1234h if resident
  2723. SeeAlso: AX=DADAh,AH=DDh"VIRUS",AH=DEh"VIRUS"
  2724. --------N-21DB-------------------------------
  2725. INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES
  2726.     AH = DBh
  2727. Return: AL = number of local disks as set by LASTDRIVE in CONFIG.SYS
  2728. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2729.       Alloy NTNX
  2730. SeeAlso: AH=0Eh
  2731. --------N-21DC-------------------------------
  2732. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER
  2733.     AH = DCh
  2734. Return: AL = logical connection number
  2735.         00h if NetWare not loaded or this machine is a non-dedicated server
  2736.     CX = station number in ASCII (CL = first digit)
  2737. Notes:    this function is supported by NetWare 4.0+, Banyan VINES, and Alloy
  2738.       NTNX
  2739.     station number only unique for those PCs connected to same semaphore
  2740.       service
  2741. SeeAlso: AH=F2h"NetWare"
  2742. --------d-21DC-------------------------------
  2743. INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
  2744.     AH = DCh
  2745.     DX = state
  2746.         0000h turn on
  2747.         0001h turn off
  2748. SeeAlso: AX=FEDCh
  2749. --------N-21DD-------------------------------
  2750. INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE
  2751.     AH = DDh
  2752.     DL = error mode
  2753.         00h invoke INT 24 on critical I/O errors (default)
  2754.         01h return NetWare extended error code in AL
  2755.         02h return error code in AL, mapped to standard DOS error codes
  2756. Return: AL = previous error mode
  2757. Note:    this function is supported by Advanced NetWare 2.0+
  2758. SeeAlso: INT 24
  2759. --------v-21DD-------------------------------
  2760. INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???
  2761.     AH = DDh
  2762.     CX = number of bytes to copy
  2763.     DS:SI -> source of copy
  2764.     ES:DI -> destination of copy
  2765. Return: does not return normally; return address is caller's CS:0100h with
  2766.       AX = ???
  2767. SeeAlso: AX=DDEFh,AH=E0h"VIRUS",AH=EEh"VIRUS"
  2768. --------v-21DDEF------------------------
  2769. INT 21 - VIRUS- "GOLGI" - INSTALLATION CHECK
  2770.     AX = DDEFh
  2771. Return: AX = EFDDh if resident
  2772. SeeAlso: AH=DDh"VIRUS",AH=DEh"VIRUS"
  2773. --------v-21DE-------------------------------
  2774. INT 21 - VIRUS - "Durban" - INSTALLATION CHECK
  2775.     AH = DEh
  2776. Return: AH = DFh if resident
  2777. SeeAlso: AX=DAFEh,AX=DDEFh,AH=DEh"April 1st",AX=DEADh"90210"
  2778. --------v-21DE-------------------------------
  2779. INT 21 - VIRUS - "April 1st EXE" - ???
  2780.     AH = DEh
  2781.     ???
  2782. Return: ???
  2783. --------N-21DE-------------------------------
  2784. INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE
  2785.     AH = DEh
  2786.     DL = broadcast mode
  2787.         00h receive server and workstation broadcasts (default)
  2788.         01h receive server broadcasts, discard user messages
  2789.         02h store server broadcasts for retrieval
  2790.         03h store all broadcasts for retrieval
  2791. Return: AL = new broadcast mode
  2792. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2793. --------N-21DE--DL04-------------------------
  2794. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE
  2795.     AH = DEh
  2796.     DL = 04h
  2797. Return: AL = current broadcast mode
  2798.         00h receive server and workstation broadcasts (default)
  2799.         01h receive server broadcasts, discard user message
  2800.         02h store server broadcasts for retrieval
  2801.         03h store all broadcasts for retrieval
  2802. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  2803. --------N-21DE-------------------------------
  2804. INT 21 - Novell NetWare - SHELL TIMER INTERRUPT CHECKS
  2805.     AH = DEh
  2806.     DL = function
  2807.         05h disable shell timer interrupt checks
  2808.         06h enable shell timer interrupt checks
  2809. Return: ???
  2810. Note:    this function was added in NetWare 4.0, but is not listed in current
  2811.       Novell documentation and is probably no longer supported
  2812. --------v-21DEAD------------------------
  2813. INT 21 - VIRUS - "90210" - INSTALLATION CHECK
  2814.     AX = DEADh
  2815. Return: AX = AAAAh if resident
  2816. SeeAlso: AH=DEh"VIRUS",AX=DEADh"Shifting",AX=DEDEh"VIRUS"
  2817. --------v-21DEAD------------------------
  2818. INT 21 - VIRUS - "Shifting Objective" - RELOCATE CODE ???
  2819.     AX = DEADh
  2820. SeeAlso: AX=FEADh
  2821. SeeAlso: AX=DEADh"90210",AX=DEDEh"VIRUS"
  2822. --------v-21DEDE-----------------------------
  2823. INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
  2824.     AX = DEDEh
  2825. Return: AH = 41h if resident
  2826. SeeAlso: AX=DEADh"Shifting",AH=E0h"VIRUS"
  2827. --------N-21DF--DL00-------------------------
  2828. INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE
  2829.     AH = DFh
  2830.     DL = 00h
  2831. Return: AL = status
  2832.         00h successful
  2833. Desc:    this function redirects the default LPT to a capture file on the file
  2834.       server
  2835. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2836.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  2837.     a print job is queued when the first character of output is captured
  2838. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=03h
  2839. SeeAlso: AH=DFh/DL=04h,AX=F003h
  2840. --------N-21DF--DL01-------------------------
  2841. INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE
  2842.     AH = DFh
  2843.     DL = 01h
  2844. Return: AL = status
  2845.         00h successful
  2846. Desc:    stop redirecting the default LPT, close the capture file, and release
  2847.       the job in the print queue for printing
  2848. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2849.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  2850.     after this call, the default LPT defaults to local printing
  2851. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=02h,AH=DFh/DL=03h,AH=DFh/DL=05h
  2852. --------N-21DF--DL02-------------------------
  2853. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE
  2854.     AH = DFh
  2855.     DL = 02h
  2856. Return: AL = status
  2857.         00h successful
  2858. Desc:    this function ends the capture of the default LPT, removes the job from
  2859.       the print queue, and deletes the capture file unless it is a
  2860.       permanent capture file
  2861. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2862.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  2863.     after this call, the default LPT defaults to local printing
  2864. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=06h
  2865. --------N-21DF--DL03-------------------------
  2866. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE
  2867.     AH = DFh
  2868.     DL = 03h
  2869. Return: AL = status
  2870.         00h successful
  2871. Desc:    this function closes the current capture file for the default LPT
  2872.       and starts printing it if it is not a permanent capture file
  2873. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2874.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  2875.     if more data is sent to the LPT port after this call, a new capture
  2876.       file will be opeend
  2877. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=07h
  2878. --------N-21DF--DL04-------------------------
  2879. INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE
  2880.     AH = DFh
  2881.     DL = 04h
  2882.     DH = LPT port (00h-02h)
  2883. Return: AL = status
  2884.         00h successful
  2885. Desc:    this function redirects the specified LPT to a capture file on the file
  2886.       server
  2887. Notes:    this function is supported by Advanced NetWare 2.1+
  2888.     a print job is queued when the first character of output is captured
  2889. SeeAlso: AX=B800h,AH=DFh/DL=00h,AH=DFh/DL=05h,AH=DFh/DL=06h,AH=DFh/DL=07h
  2890. SeeAlso: AX=F003h
  2891. --------N-21DF--DL05-------------------------
  2892. INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE
  2893.     AH = DFh
  2894.     DL = 05h
  2895.     DH = LPT port (00h-02h)
  2896. Return: AL = status
  2897.         00h successful
  2898. Desc:    stop redirecting the specified LPT, close the capture file, and release
  2899.       the job in the print queue for printing
  2900. Notes:    this function is supported by Advanced NetWare 2.1+
  2901.     after this call, the specified LPT defaults to local printing
  2902. SeeAlso: AH=DFh/DL=01h,AH=DFh/DL=04h,AH=DFh/DL=06h,AH=DFh/DL=07h
  2903. --------N-21DF--DL06-------------------------
  2904. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE
  2905.     AH = DFh
  2906.     DL = 06h
  2907.     DH = LPT port (00h-02h)
  2908. Return: AL = status
  2909.         00h successful
  2910. Desc:    this function ends the capture of the specified LPT, removes the job
  2911.       from the print queue, and deletes the capture file unless it is a
  2912.       permanent capture file
  2913. Notes:    this function is supported by Advanced NetWare 2.1+
  2914.     after this call, the specified LPT defaults to local printing
  2915. SeeAlso: AH=DFh/DL=02h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=07h
  2916. --------N-21DF--DL07-------------------------
  2917. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE
  2918.     AH = DFh
  2919.     DL = 07h
  2920.     DH = LPT port (00h-02h)
  2921. Return: AL = status
  2922.         00h successful
  2923. Desc:    this function closes the current capture file for the specified LPT
  2924.       and starts printing it if it is not a permanent capture file
  2925. Notes:    this function is supported by Advanced NetWare 2.1+
  2926.     if more data is sent to the LPT port after this call, a new capture
  2927.       file will be opeend
  2928. SeeAlso: AH=DFh/DL=03h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=06h
  2929. --------T-21DF00DX534C-----------------------
  2930. INT 21 U - Software Carousel - INSTALLATION CHECK
  2931.     AX = DF00h
  2932.     DX = 534Ch ("SL")
  2933.     DI = 534Ch ("SL")
  2934. Return: AX = 00FFh if installed
  2935.         ???
  2936. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  2937. --------T-21DF01-----------------------------
  2938. INT 21 - Software Carousel - SWITCH TO ANOTHER TASK
  2939.     AX = DF01h
  2940.     BL = task number (00h = next task)
  2941. Return: AL = status
  2942.         00h Carousel not running
  2943.         01h successful
  2944.         FFh unsucessful
  2945.         AH = error code (01h,02h) (see #0991)
  2946.  
  2947. (Table 0991)
  2948. Values for Software Carousel error code:
  2949.  00h    invalid subfunction in AL
  2950.  01h    invalid task number
  2951.  02h    tried to switch to task with no memory size
  2952.  03h    tried to kill program in partition with no program running
  2953.  04h    tried to change size of an active memory partition
  2954.  05h    invalid memory size
  2955.  06h    tried to send command to task with a pending previous command
  2956. --------T-21DF02-----------------------------
  2957. INT 21 - Software Carousel - KILL PROGRAM IN MEMORY PARTITION
  2958.     AX = DF02h
  2959.     BL = task number
  2960. Return: AL = status
  2961.         00h Carousel not running
  2962.         01h successful
  2963.         FFh unsucessful
  2964.         AH = error code (01h,03h) (see #0991)
  2965. --------T-21DF03-----------------------------
  2966. INT 21 - Software Carousel - GET PARTITION SIZE AND PROGRAM STATUS
  2967.     AX = DF03h
  2968.     BL = task number
  2969. Return: AL = status
  2970.         00h Carousel not running
  2971.         01h successful
  2972.         BL = partition state (00h no program running, 01h prog running)
  2973.         DX = partition size in KB
  2974.         FFh unsucessful
  2975.         AH = error code (01h) (see #0991)
  2976. SeeAlso: AX=DF05h
  2977. --------T-21DF04-----------------------------
  2978. INT 21 - Software Carousel - GET PARTITION NAME
  2979.     AX = DF04h
  2980.     BL = task number
  2981. Return: AL = status
  2982.         00h Carousel not running
  2983.         01h successful
  2984.         CX = length of name (00h if default partition name)
  2985.         ES:BX -> partition name (if CX nonzero)
  2986.         FFh unsucessful
  2987.         AH = error code (01h) (see #0991)
  2988. SeeAlso: AX=DF06h
  2989. --------T-21DF05-----------------------------
  2990. INT 21 - Software Carousel - CHANGE PARTITION SIZE
  2991.     AX = DF05h
  2992.     BL = task number
  2993.     DX = new size in KB
  2994. Return: AL = status
  2995.         00h Carousel not running
  2996.         01h successful
  2997.         FFh unsucessful
  2998.         AH = error code (01h,04h,05h) (see #0991)
  2999.     BX = minimum size allowed
  3000.     CX = maximum size available
  3001. SeeAlso: AX=DF03h
  3002. --------T-21DF06-----------------------------
  3003. INT 21 - Software Carousel - CHANGE PARTITION NAME
  3004.     AX = DF06h
  3005.     BL = task number
  3006.     CX = length of new name (00h to use default, max 18h)
  3007.     DS:SI -> new name
  3008. Return: AL = status
  3009.         00h Carousel not running
  3010.         01h successful
  3011.         FFh unsucessful
  3012.         AH = error code (01h) (see #0991)
  3013. SeeAlso: AX=DF04h
  3014. --------T-21DF07-----------------------------
  3015. INT 21 - Software Carousel - SEND COMMAND TO MEMORY SECTION
  3016.     AX = DF07h
  3017.     BL = task number
  3018.     CX = length of command (max 8 chars)
  3019.     DS:SI -> command line
  3020. Return: AL = status
  3021.         00h Carousel not running
  3022.         01h successful
  3023.         FFh unsucessful
  3024.         AH = error code (01h,06h) (see #0991)
  3025. Note:    the maximum length seems too small and may be a typo for 80 characters
  3026. --------T-21DF08-----------------------------
  3027. INT 21 - Software Carousel - SELECTIVELY ENABLE/DISABLE MENU AND SWITCHING
  3028.     AX = DF08h
  3029.     BL = new state of keyboard (00h disabled, 01h enabled)
  3030. Return: AL = status
  3031.         00h Carousel not running
  3032.         01h successful
  3033. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  3034. Note:    when the keyboard is is disabled, the user may neither access the
  3035.       Carousel menu nor switch to another memory section
  3036. --------T-21DF09-----------------------------
  3037. INT 21 - Software Carousel - BOOT THE SYSTEM
  3038.     AX = DF09h
  3039. Return: AL = status
  3040.         00h Carousel not running
  3041.         FFh unsucessful
  3042.         AH = error code (01h,03h) (see #0991)
  3043. Note:    this function never returns if successful
  3044. --------T-21DF0A-----------------------------
  3045. INT 21 - Software Carousel - GET MEMORY SIZE/PARTITION NUMBER OF CURRENT TASK
  3046.     AX = DF0Ah
  3047. Return: AL = status
  3048.         00h Carousel not running
  3049.         01h successful
  3050.         BL = task number
  3051.         DX = memory size in KB
  3052.         FFh unsucessful
  3053.         AH = error code (01h,03h) (see #0991)
  3054. --------T-21DF0B-----------------------------
  3055. INT 21 - Software Carousel - SET TASK SWITCH CALLBACK
  3056.     AX = DF0Bh
  3057.     BH = interrupt number or 00h
  3058.     BL = function number to invoke on partition switch
  3059.     CL = function number to call when it is safe for resident programs
  3060.         to perform DOS calls
  3061.     DS:DX -> FAR function to call if BH=00h
  3062. Return: AL = status
  3063.         00h Carousel not running
  3064.         01h successful
  3065.         FFh unsucessful
  3066.         AH = error code (01h,03h) (see #0991)
  3067. Notes:    the specified interrupt or FAR function is called with AH set to the
  3068.       appropriate one of the values specified in BL and CL, and BL set to
  3069.       the new task number
  3070.     the function specified by CL will not be called until the notification
  3071.       is enabled with AX=DF0Ch
  3072. SeeAlso: AX=DF0Ch
  3073. --------T-21DF0C-----------------------------
  3074. INT 21 - Software Carousel - ENABLE DOS-CALL SAFETY NOTIFICATION
  3075.     AX = DF0Ch
  3076. Return: AL = status
  3077.         00h Carousel not running
  3078.         01h successful
  3079. Program: Software Carousel is a task switcher by SoftLogic Solutions, Inc.
  3080. SeeAlso: AX=DF0Bh
  3081. --------O-21E0-------------------------------
  3082. INT 21 - Digital Research DOS Plus - CALL BDOS
  3083.     AH = E0h
  3084.     CL = BDOS function number (see #2602 at INT E0"CP/M")
  3085.     other registers as appropriate for function
  3086. Return: as appropriate for function
  3087. SeeAlso: AX=4459h,INT E0"CP/M"
  3088. --------E-21E0-------------------------------
  3089. INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE
  3090.     AH = E0h
  3091.     ???
  3092. Return: ???
  3093. SeeAlso: AH=E1h"OS/286"
  3094. --------T-21E0-------------------------------
  3095. INT 21 - DoubleDOS - MENU CONTROL
  3096.     AH = E0h
  3097.     AL = subfunction
  3098.         01h exchange tasks
  3099.         73h resume invisible job if suspended
  3100.         74h kill other job
  3101.         75h suspend invisible job
  3102. Note:    identical to AH=F0h
  3103. SeeAlso: AH=F0h"DoubleDOS"
  3104. --------v-21E0-------------------------------
  3105. INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK
  3106.     AH = E0h
  3107. Return: AX = 0300h if "Jerusalem" resident
  3108.     AX = DADAh if "Armagedon" resident
  3109. SeeAlso: AH=DEh"VIRUS",AX=DEDEh"VIRUS",AX=E00Fh
  3110. --------N-21E0-------------------------------
  3111. INT 21 - Novell NetWare, Alloy NTNX - PRINT SPOOLING
  3112.     AH = E0h
  3113.     DS:SI -> request buffer (see #0992)
  3114.     ES:DI -> reply buffer
  3115. Return: AL = status
  3116. Note:    this function was added in NetWare 4.0, but is no longer listed in
  3117.       current Novell documentation and may no longer be supported
  3118. SeeAlso: AH-E3h/SF=68h
  3119.  
  3120. Format of NetWare request buffer:
  3121. Offset    Size    Description    (Table 0992)
  3122.  00h    WORD    length of following data
  3123.  02h    BYTE    subfunction
  3124.         00h spool data to a capture file
  3125.         01h close and queue capture file
  3126.         02h set spool flags
  3127.         03h spool existing file
  3128.         04h get spool queue entry
  3129.         05h remove entry from spool queue
  3130.  03h    ???
  3131. --------N-21E0--SF06-------------------------
  3132. INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS
  3133.     AH = E0h subfn 06h
  3134.     DS:SI -> request buffer (see #0993)
  3135.     ES:DI -> reply buffer (see #0994)
  3136. Return: AL = status
  3137.         00h successful
  3138.         FFh no such printer
  3139. Desc:    get current state of specified printer attached to the server
  3140. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3141.       Alloy NTNX
  3142.  
  3143. Format of NetWare "Get Printer Status" request buffer:
  3144. Offset    Size    Description    (Table 0993)
  3145.  00h    WORD    0002h (length of following data)
  3146.  02h    BYTE    06h (subfunction "Get Printer Status")
  3147.  03h    BYTE    printer number (00h-04h)
  3148. SeeAlso: #0994
  3149.  
  3150. Format of NetWare "Get Printer Status" reply buffer:
  3151. Offset    Size    Description    (Table 0994)
  3152.  00h    WORD    (call) 0004h (size of following results buffer)
  3153.  02h    BYTE    flag: 00h printer active, FFh printer halted
  3154.  03h    BYTE    flag: 00h printer online, 01h printer offline
  3155.  04h    BYTE    current form type
  3156.  05h    BYTE    target printer number (00h-04h)
  3157.         same as number in request buffer unless rerouted by server
  3158.           console
  3159. SeeAlso: #0993
  3160. --------N-21E0--SF09-------------------------
  3161. INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE
  3162.     AH = E0h subfn 09h
  3163.     DS:SI -> request buffer (see #0995)
  3164.     ES:DI -> reply buffer (see #0996)
  3165. Return: AL = status
  3166.         00h successful
  3167.         9Ch invalid path
  3168. Desc:    create a permanent capture file for the next print capture to be
  3169.       started
  3170. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3171.       Alloy NTNX
  3172.     the caller must have read, write, and create rights for the directory
  3173.       containing the capture file
  3174.  
  3175. Format of NetWare "Specify Capture File" request buffer:
  3176. Offset    Size    Description    (Table 0995)
  3177.  00h    WORD    length of following data (max 102h)
  3178.  02h    BYTE    09h (subfunction "Specify Capture File")
  3179.  03h    BYTE    directory handle or 00h
  3180.  04h    BYTE    length of filename
  3181.  05h  N BYTEs    name of capture file
  3182. SeeAlso: #0996
  3183.  
  3184. Format of NetWare reply buffer:
  3185. Offset    Size    Description    (Table 0996)
  3186.  00h    WORD    (call) 0000h (no results returned)
  3187. SeeAlso: #0995
  3188. --------v-21E00F-----------------------------
  3189. INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK
  3190.     AX = E00Fh
  3191. Return: AX = 4C31h if resident
  3192. SeeAlso: AH=E0h"VIRUS",AH=E1h"VIRUS"
  3193. --------E-21E1-------------------------------
  3194. INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL
  3195.     AH = E1h
  3196.     ???
  3197. Return: ???
  3198. Note:    protected mode only???
  3199. SeeAlso: AH=E0h"OS/286",AH=E2h"OS/286",AH=E3h"OS/286",AX=250Eh,INT 31/AX=0301h
  3200. --------T-21E1-------------------------------
  3201. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  3202.     AH = E1h
  3203. SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  3204. SeeAlso: AH=F1h"DoubleDOS"
  3205. --------v-21E1-------------------------------
  3206. INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK
  3207.     AH = E1h
  3208. Return: AX = 0300h if "Mendoza" resident
  3209.     AX = 0400h if "Fu Manchu" resident
  3210. SeeAlso: AX=E00Fh,AH=E4h"VIRUS"
  3211. --------N-21E1--SF00-------------------------
  3212. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE
  3213.     AH = E1h subfn 00h
  3214.     DS:SI -> request buffer (see #0997)
  3215.     ES:DI -> reply buffer (see #0998)
  3216. Return: AL = status
  3217.         00h successful
  3218.         FEh I/O error or out of dynamic workspace
  3219. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3220. SeeAlso: AH=DEh"NetWare",AH=DEh/DL=04h,AH=E1h/SF=01h,AH=E1h/SF=04h
  3221. SeeAlso: AH=E1h/SF=09h
  3222.  
  3223. Format of NetWare "Send Broadcast Message" request buffer:
  3224. Offset    Size    Description    (Table 0997)
  3225.  00h    WORD    length of following data (max 9Eh)
  3226.  02h    BYTE    00h (subfunction "Send Broadcast Message")
  3227.  03h    BYTE    number of connections (01h-64h)
  3228.  04h  N BYTEs    list of connections to receive broadcast message
  3229.     BYTE    length of message (01h-37h)
  3230.       N BYTEs    broadcast message (no control characters or characters > 7Eh)
  3231. SeeAlso: #0998
  3232.  
  3233. Format of NetWare "Send Broadcast Message" reply buffer:
  3234. Offset    Size    Description    (Table 0998)
  3235.  00h    WORD    (call) size of following results buffer (max 65h)
  3236.  02h    BYTE    number of connections
  3237.  03h  N BYTEs    list of per-connection results
  3238.         00h successful
  3239.         FCh message rejected due to lack of buffer space
  3240.         FDh invalid connection number
  3241.         FFh blocked (see also AH=E1h/SF=02h)
  3242. SeeAlso: #0997
  3243. --------N-21E1--SF01-------------------------
  3244. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE
  3245.     AH = E1h subfn 01h
  3246.     DS:SI -> request buffer (see #0999)
  3247.     ES:DI -> reply buffer (see #1000)
  3248. Return: AL = status
  3249.         00h successful
  3250.         FCh full message queue
  3251.         FEh out of dynamic workspace
  3252. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3253. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=09h
  3254.  
  3255. Format of NetWare "Get Broadcast Message" request buffer:
  3256. Offset    Size    Description    (Table 0999)
  3257.  00h    WORD    0001h (length of following data)
  3258.  02h    BYTE    01h (subfunction "Get Broadcast Message")
  3259. SeeAlso: #1000
  3260.  
  3261. Format of NetWare "Get Broadcast Message" reply buffer:
  3262. Offset    Size    Description    (Table 1000)
  3263.  00h    WORD    (call) size of following results buffer (max 38h)
  3264.  02h    BYTE    length of message (00h-37h)
  3265.         00h if no broadcast messages pending
  3266.  03h  N BYTEs    message (no control characters or characters > 7Eh)
  3267. SeeAlso: #0999
  3268. --------N-21E1-------------------------------
  3269. INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE/DISABLE BROADCAST MESSAGES
  3270.     AH = E1h
  3271.     DS:SI -> request buffer (see #1001)
  3272.     ES:DI -> reply buffer (see #1002)
  3273. Return: AL = error code
  3274. Note:    these functions are supported by NetWare 4.0+ but are not listed in
  3275.       _NetWare_System_Calls--DOS_; they may be obsolete
  3276. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=04h,AH=E1h/SF=09h
  3277.  
  3278. Format of NetWare "Enable/Disable Broadcast Messages" request buffer:
  3279. Offset    Size    Description    (Table 1001)
  3280.  00h    WORD    length of following data (max 9Eh)
  3281.  02h    BYTE    subfunction
  3282.         02h disable station broadcasts
  3283.         03h enable station broadcasts
  3284.  03h    ???
  3285. SeeAlso: #1002
  3286.  
  3287. Format of NetWare "Enable/Disable Broadcast Messages" reply buffer:
  3288. Offset    Size    Description    (Table 1002)
  3289.  00h    WORD    (call) size of following results buffer
  3290.  02h    ???
  3291. SeeAlso: #1001
  3292. --------N-21E1--SF04-------------------------
  3293. INT 21 O - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE
  3294.     AH = E1h subfn 04h
  3295.     DS:SI -> request buffer (see #1003)
  3296.     ES:DI -> reply buffer (see #1004)
  3297. Return: AL = status
  3298.         00h successful
  3299.         FEh I/O error or out of dynamic workspace
  3300. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  3301.     message pipes use CPU time on the file server; IPX, SPX, or NetBIOS
  3302.       connections should be used for peer-to-peer communications as these
  3303.       protocols do not use file server time
  3304. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  3305.  
  3306. Format of NetWare "Send Personal Message" request buffer:
  3307. Offset    Size    Description    (Table 1003)
  3308.  00h    WORD    length of following data (max E5h)
  3309.  02h    BYTE    04h (subfunction "Send Personal Message")
  3310.  03h    BYTE    number of connections (01h-64h)
  3311.  04h  N BYTEs    list of connections to receive broadcast message
  3312.     BYTE    length of message (01h-7Eh)
  3313.       N BYTEs    message (no control characters or characters > 7Eh)
  3314. SeeAlso: #1004
  3315.  
  3316. Format of NetWare "Send Personal Message" reply buffer:
  3317. Offset    Size    Description    (Table 1004)
  3318.  00h    WORD    (call) size of following results buffer (max 65h)
  3319.  02h    BYTE    number of connections
  3320.  03h  N BYTEs    list of per-connection results
  3321.         00h successful
  3322.         FCh message rejected because queue is full (contains 6 msgs)
  3323.         FDh incomplete pipe
  3324.         FFh failed
  3325. SeeAlso: #1003
  3326. --------N-21E1--SF05-------------------------
  3327. INT 21 O - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE
  3328.     AH = E1h subfn 05h
  3329.     DS:SI -> request buffer (see #1005)
  3330.     ES:DI -> reply buffer (see #1006)
  3331. Return: AL = status
  3332.         00h successful
  3333.         FEh out of dynamic workspace
  3334. Desc:    return the oldest message in the default file server's message queue
  3335.       for the calling workstation
  3336. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  3337. SeeAlso: AH=E1h/SF=01h,AH=E1h/SF=04h,AH=E1h/SF=06h,AH=E1h/SF=08h
  3338.  
  3339. Format of NetWare "Get Personal Message" request buffer:
  3340. Offset    Size    Description    (Table 1005)
  3341.  00h    WORD    0001h (length of following data)
  3342.  02h    BYTE    05h (subfunction "Get Personal Message")
  3343. SeeAlso: #1006
  3344.  
  3345. Format of NetWare "Get Personal Message" reply buffer:
  3346. Offset    Size    Description    (Table 1006)
  3347.  00h    WORD    (call) size of following results buffer (max 80h)
  3348.  02h    BYTE    connection number of sending station
  3349.  03h    BYTE    length of message (00h-7Eh)
  3350.         00h if no personal messages pending
  3351.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  3352. SeeAlso: #1005
  3353. --------N-21E1--SF06-------------------------
  3354. INT 21 O - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE
  3355.     AH = E1h subfn 06h
  3356.     DS:SI -> request buffer (see #1007)
  3357.     ES:DI -> reply buffer (see #1008)
  3358. Return: AL = status
  3359.         00h successful
  3360.         FEh out of dynamic workspace
  3361. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  3362. SeeAlso: AH=E1h/SF=04h,AH=E1h/SF=07h,AH=E1h/SF=08h
  3363.  
  3364. Format of NetWare "Open Message Pipe" request buffer:
  3365. Offset    Size    Description    (Table 1007)
  3366.  00h    WORD    length of following data (max 66h)
  3367.  02h    BYTE    06h (subfunction "Open Message Pipe")
  3368.  03h    BYTE    number of pipes to open (01h-64h)
  3369.  04h  N BYTEs    list of connection numbers
  3370. SeeAlso: #1008,#1009,#1012
  3371.  
  3372. Format of NetWare "Open Message Pipe" reply buffer:
  3373. Offset    Size    Description    (Table 1008)
  3374.  00h    WORD    (call) size of following results buffer (max 65h)
  3375.  02h    BYTE    number of connections
  3376.  03h  N BYTEs    list of results
  3377.         00h successful
  3378.         FEh incomplete (target half not yet created)
  3379.         FFh failed
  3380. SeeAlso: #1007,#1010,#1013
  3381. --------N-21E1--SF07-------------------------
  3382. INT 21 O - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE
  3383.     AH = E1h subfn 07h
  3384.     DS:SI -> request buffer (see #1009)
  3385.     ES:DI -> reply buffer (see #1010)
  3386. Return: AL = status
  3387.         00h successful
  3388.         FCh full message queue
  3389.         FEh out of dynamic workspace
  3390. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  3391. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  3392.  
  3393. Format of NetWare "Close Mesage Pipe" request buffer:
  3394. Offset    Size    Description    (Table 1009)
  3395.  00h    WORD    length of following data (max 66h)
  3396.  02h    BYTE    07h (subfunction "Close Message Pipe")
  3397.  03h    BYTE    number of pipes to close (01h-64h)
  3398.  04h  N BYTEs    list of connection numbers
  3399. SeeAlso: #1007,#1010
  3400.  
  3401. Format of NetWare "Close Message Pipe" reply buffer:
  3402. Offset    Size    Description    (Table 1010)
  3403.  00h    WORD    (call) size of following results buffer (max 65h)
  3404.  02h    BYTE    number of connections
  3405.  03h  N BYTEs    list of results
  3406.         00h successful
  3407.         FDh failed
  3408.         FFh no such pipe
  3409. SeeAlso: #1008,#1009
  3410. --------N-21E1--SF08-------------------------
  3411. INT 21 O - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS
  3412.     AH = E1h subfn 08h
  3413.     DS:SI -> request buffer (see #1012)
  3414.     ES:DI -> reply buffer (see #1013)
  3415. Return: AL = status (see #1011)
  3416. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0-2.x
  3417. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=07h
  3418.  
  3419. (Table 1011)
  3420. Values for NetWare function status:
  3421.  00h    successful
  3422.  FCh    full message queue
  3423.  FEh    out of dynamic workspace
  3424. SeeAlso: #1016
  3425.  
  3426. Format of NetWare "Check Pipe Status" request buffer:
  3427. Offset    Size    Description    (Table 1012)
  3428.  00h    WORD    length of following data (max 66h)
  3429.  02h    BYTE    08h (subfunction "Check Pipe Status")
  3430.  03h    BYTE    number of pipes to monitor (01h-64h)
  3431.  04h  N BYTEs    list of connection numbers
  3432. SeeAlso: #1007,#1013
  3433.  
  3434. Format of NetWare "Check Pipe Status" reply buffer:
  3435. Offset    Size    Description    (Table 1013)
  3436.  00h    WORD    (call) size of following results buffer (max 65h)
  3437.  02h    BYTE    number of connections
  3438.  03h  N BYTEs    list of pipe statuses
  3439.         00h open
  3440.         FEh incomplete
  3441.         FFh closed
  3442. SeeAlso: #1008,#1012
  3443. --------N-21E1--SF09-------------------------
  3444. INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE
  3445.     AH = E1h subfn 09h
  3446.     DS:SI -> request buffer (see #1014)
  3447.     ES:DI -> reply buffer (see #1015)
  3448. Return: AL = status (see #1011)
  3449. Desc:    send a one-line message to the system console on the default file
  3450.       server
  3451. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  3452. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=01h,AH=E3h/SF=D1h
  3453.  
  3454. Format of NetWare "Broadcast to Console" request buffer:
  3455. Offset    Size    Description    (Table 1014)
  3456.  00h    WORD    length of following data (max 3Eh)
  3457.  02h    BYTE    09h (subfunction "Broadcast to Console")
  3458.  03h    BYTE    length of message (01h-3Ch)
  3459.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  3460. SeeAlso: #1015
  3461.  
  3462. Format of NetWare reply buffer:
  3463. Offset    Size    Description    (Table 1015)
  3464.  00h    WORD    (call) 0000h (no results returned)
  3465. SeeAlso: #1014
  3466. --------E-21E2-------------------------------
  3467. INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER
  3468.     AH = E2h
  3469.     ???
  3470. Return: ???
  3471. SeeAlso: AH=E0h"OS/286",AH=E1h"OS/286",AH=E6h"OS/286"
  3472. --------N-21E2-------------------------------
  3473. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  3474.     AH = E2h
  3475.     AL = character
  3476. Return: AL = 00h successful
  3477.          01h buffer full (128 characters)
  3478. SeeAlso: AH=E1h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  3479. SeeAlso: AH=F2h"DoubleDOS"
  3480. --------N-21E2--SF00-------------------------
  3481. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE
  3482.     AH = E2h subfn 00h
  3483.     DS:SI -> request buffer (see #1017)
  3484.     ES:DI -> reply buffer (see #1018)
  3485. Return: AL = status (00h,98h,9Bh,9Ch) (see #1016)
  3486. Desc:    set the target handle to reference the directory specified by the
  3487.       source handle and the source path; both handles must refer to the
  3488.       same file server
  3489. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3490.       Alloy NTNX
  3491.     the target handle is not changed if this function fails
  3492. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=12h,AH=E2h/SF=13h
  3493.  
  3494. (Table 1016)
  3495. Values for NetWare function status:
  3496.  00h    successful
  3497.  84h    not permitted to create
  3498.  8Ah    not permitted to delete
  3499.  8Bh    not permitted to rename
  3500.  8Ch    not permitted to modify
  3501.  98h    nonexistent volume
  3502.  9Bh    invalid directory handle
  3503.  9Ch    invalid path
  3504.  9Eh    invalid filename
  3505.  9Fh    directory currently in use
  3506.  A0h    directory not empty
  3507.  C6h    no console rights
  3508.  FCh    no such bindery object
  3509. SeeAlso: #1011,#1043
  3510.  
  3511. Format of NetWare "Set Directory Handle" request buffer:
  3512. Offset    Size    Description    (Table 1017)
  3513.  00h    WORD    length of following data (max 103h)
  3514.  02h    BYTE    00h (subfunction "Set Directory Handle")
  3515.  03h    BYTE    directory handle of target
  3516.  04h    BYTE    directory handle of source
  3517.  05h    BYTE    length of source directory path (01h-FFh)
  3518.  06h  N BYTEs    source directory path
  3519.  
  3520. Format of NetWare reply buffer:
  3521. Offset    Size    Description    (Table 1018)
  3522.  00h    WORD    (call) 0000h (no results returned)
  3523. --------N-21E2--SF01-------------------------
  3524. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH
  3525.     AH = E2h subfn 01h
  3526.     DS:SI -> request buffer (see #1019)
  3527.     ES:DI -> reply buffer (see #1020)
  3528. Return: AL = status (00h,9Bh) (see #1016)
  3529. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3530.       Alloy NTNX
  3531. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=03h,AH=E2h/SF=1Ah,AH=E9h
  3532.  
  3533. Format of NetWare "Get Directory Path" request buffer:
  3534. Offset    Size    Description    (Table 1019)
  3535.  00h    WORD    0002h (length of following data)
  3536.  02h    BYTE    01h (subfunction "Get Directory Path")
  3537.  03h    BYTE    directory handle
  3538. SeeAlso: #1020,#1021
  3539.  
  3540. Format of NetWare "Get Directory Path" reply buffer:
  3541. Offset    Size    Description    (Table 1020)
  3542.  00h    WORD    (call) length of following data buffer
  3543.  02h    BYTE    length of directory path (01h-FFh)
  3544.  03h  N BYTEs    full directory path including volume
  3545. SeeAlso: #1019,#1022
  3546. --------N-21E2--SF02-------------------------
  3547. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION
  3548.     AH = E2h subfn 02h
  3549.     DS:SI -> request buffer (see #1021)
  3550.     ES:DI -> reply buffer (see #1022)
  3551. Return: AL = status (00h,98h,9Bh,9Ch) (see #1016)
  3552. Desc:    get information about the first or next subdirectory of the specified
  3553.       directory
  3554. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3555.       Alloy NTNX
  3556. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=03h,AH=E2h/SF=19h
  3557.  
  3558. Format of NetWare "Scan Directory Information" request buffer:
  3559. Offset    Size    Description    (Table 1021)
  3560.  00h    WORD    length of following data (max 104h)
  3561.  02h    BYTE    02h (subfunction "Scan Directory Information")
  3562.  03h    BYTE    directory handle
  3563.  04h    WORD    (big-endian) subdirectory number
  3564.         0000h for first call, returned subdir number + 1 on next call
  3565.  06h    BYTE    length of directory path
  3566.  07h  N BYTEs    directory path
  3567. SeeAlso: #1019,#1022
  3568.  
  3569. Format of NetWare "Scan Directory Information" reply buffer:
  3570. Offset    Size    Description    (Table 1022)
  3571.  00h    WORD    (call) 001Ch (length of following data buffer)
  3572.  02h 16 BYTEs    subdirectory name
  3573.  12h    DWORD    (big-endian) date and time of creation (see #1023)
  3574.  16h    DWORD    (big-endian) object ID of owner
  3575.  1Ah    BYTE    maximum directory rights (see #1026)
  3576.  1Bh    BYTE    unused
  3577.  1Ch    WORD    (big-endian) subdirectory number
  3578. SeeAlso: #1020,#1021
  3579.  
  3580. Bitfields for NetWare date and time:
  3581. Bit(s)    Description    (Table 1023)
  3582.  31-25    year-1980
  3583.  24-21    month
  3584.  20-16    day
  3585.  15-11    hour
  3586.  10-5    minute
  3587.  4-0    second
  3588. --------N-21E2--SF03-------------------------
  3589. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS
  3590.     AH = E2h subfn 03h
  3591.     DS:SI -> request buffer (see #1024)
  3592.     ES:DI -> reply buffer (see #1025)
  3593. Return: AL = status (00h,98h,9Bh) (see #1016)
  3594. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3595.       Alloy NTNX
  3596. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=02h
  3597.  
  3598. Format of NetWare "Get Effective Directory Rights" request buffer:
  3599. Offset    Size    Description    (Table 1024)
  3600.  00h    WORD    length of following data (max 102h)
  3601.  02h    BYTE    03h (subfunction "Get Effective Directory Rights")
  3602.  03h    BYTE    directory handle
  3603.  04h    BYTE    length of directory path (00h-FFh)
  3604.  05h  N BYTEs    directory path
  3605. SeeAlso: #1025,#1027
  3606.  
  3607. Format of NetWare "Get Effective Directory Rights" reply buffer:
  3608. Offset    Size    Description    (Table 1025)
  3609.  00h    WORD    (call) 0001h (length of following data buffer)
  3610.  02h    BYTE    effective directory rights (see #1026)
  3611. SeeAlso: #1024
  3612.  
  3613. Bitfields for NetWare directory rights:
  3614. Bit(s)    Description    (Table 1026)
  3615.  0    reading allowed
  3616.  1    writing allowed
  3617.  2    opens allowed
  3618.  3    file creation allowed
  3619.  4    deletion allowed
  3620.  5    "parental" may create/delete subdirectories and grant/revoke trustee
  3621.       rights
  3622.  6    directory search allowed
  3623.  7    file attributes may be changed
  3624. SeeAlso: #1025,#1027
  3625. --------N-21E2--SF04-------------------------
  3626. INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK
  3627.     AH = E2h subfn 04h
  3628.     DS:SI -> request buffer (see #1027)
  3629.     ES:DI -> reply buffer (see #1028)
  3630. Return: AL = status (00h,8Ch,98h,9Ch) (see #1016)
  3631. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3632.       Alloy NTNX
  3633. SeeAlso: AH=E2h/SF=03h,AH=E2h/SF=0Ah,AH=E2h/SF=0Dh
  3634.  
  3635. Format of NetWare "Modify Maximum Rights Mask" request buffer:
  3636. Offset    Size    Description    (Table 1027)
  3637.  00h    WORD    length of following data (max 104h)
  3638.  02h    BYTE    04h (subfunction "Modify Maximum Rights Mask")
  3639.  03h    BYTE    directory handle
  3640.  04h    BYTE    rights to grant (see #1026)
  3641.  05h    BYTE    rights to revoke (see #1026)
  3642.  06h    BYTE    length of directory path (00h-FFh)
  3643.  07h  N BYTEs    directory path
  3644. Note:    the rights specified at offset 05h are revoked first, and then the
  3645.       rights specified at offset 04h are added to the resulting rights
  3646.       mask
  3647. SeeAlso: #1024,#1028
  3648.  
  3649. Format of NetWare reply buffer:
  3650. Offset    Size    Description    (Table 1028)
  3651.  00h    WORD    (call) 0000h (no results returned)
  3652. SeeAlso: #1027
  3653. --------N-21E2--SF05-------------------------
  3654. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER
  3655.     AH = E2h subfn 05h
  3656.     DS:SI -> request buffer (see #1029)
  3657.     ES:DI -> reply buffer (see #1030)
  3658. Return: AL = status (00h,98h) (see #1016)
  3659. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3660.       Alloy NTNX
  3661. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  3662.  
  3663. Format of NetWare "Get Volume Number" request buffer:
  3664. Offset    Size    Description    (Table 1029)
  3665.  00h    WORD    length of following data (max 12h)
  3666.  02h    BYTE    05h (subfunction "Get Volume Number")
  3667.  03h    BYTE    length of volume name (01h-10h)
  3668.  04h  N BYTEs    volume name
  3669. SeeAlso: #1030
  3670.  
  3671. Format of NetWare "Get Volume Number" reply buffer:
  3672. Offset    Size    Description    (Table 1030)
  3673.  00h    WORD    (call) 0001h (length of following results buffer)
  3674.  02h    BYTE    volume number
  3675. SeeAlso: #1029
  3676. --------N-21E2--SF06-------------------------
  3677. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME
  3678.     AH = E2h subfn 06h
  3679.     DS:SI -> request buffer (see #1031)
  3680.     ES:DI -> reply buffer (see #1032)
  3681. Return: AL = status (00h,98h) (see #1016)
  3682. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3683.       Alloy NTNX
  3684. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E2h/SF=1Ah
  3685. SeeAlso: AH=E3h/SF=E9h
  3686.  
  3687. Format of NetWare "Get Volume Name" request buffer:
  3688. Offset    Size    Description    (Table 1031)
  3689.  00h    WORD    0002h (length of following data)
  3690.  02h    BYTE    06h (subfunction "Get Volume Name")
  3691.  03h    BYTE    volume number
  3692. SeeAlso: #1032
  3693.  
  3694. Format of NetWare "Get Volume Name" reply buffer:
  3695. Offset    Size    Description    (Table 1032)
  3696.  00h    WORD    (call) 0011h (length of following results buffer)
  3697.  02h    BYTE    length of volume name
  3698.  03h 16 BYTEs    NUL-padded volume name
  3699. SeeAlso: #1031
  3700. --------N-21E2--SF0A-------------------------
  3701. INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY
  3702.     AH = E2h subfn 0Ah
  3703.     DS:SI -> request buffer (see #1033)
  3704.     ES:DI -> reply buffer (see #1034)
  3705. Return: AL = status (00h,84h,98h,FCh) (see #1016)
  3706. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3707.       Alloy NTNX
  3708. SeeAlso: AH=39h,AH=E2h/SF=0Bh,AH=E2h/SF=0Fh
  3709.  
  3710. Format of NetWare "Create Directory" request buffer:
  3711. Offset    Size    Description    (Table 1033)
  3712.  00h    WORD    length of following data (max 103h)
  3713.  02h    BYTE    0Ah (subfunction "Create Directory")
  3714.  03h    BYTE    directory handle
  3715.  04h    BYTE    maximum directory rights (see #1026)
  3716.  05h    BYTE    length of directory path (00h-FFh)
  3717.  06h  N BYTEs    directory path
  3718. SeeAlso: #1034,#1035
  3719.  
  3720. Format of NetWare reply buffer:
  3721. Offset    Size    Description    (Table 1034)
  3722.  00h    WORD    (call) 0000h (no data returned)
  3723. SeeAlso: #1033,#1035
  3724. --------N-21E2--SF0B-------------------------
  3725. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY
  3726.     AH = E2h subfn 0Bh
  3727.     DS:SI -> request buffer (see #1035)
  3728.     ES:DI -> reply buffer (see #1034)
  3729. Return: AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see #1016)
  3730. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3731.       Alloy NTNX
  3732. SeeAlso: AH=3Ah,AH=E2h/SF=0Ah,AH=E2h/SF=0Fh
  3733.  
  3734. Format of NetWare "Delete Directory" request buffer:
  3735. Offset    Size    Description    (Table 1035)
  3736.  00h    WORD    length of following data (max 103h)
  3737.  02h    BYTE    0Bh (subfunction "Delete Directory")
  3738.  03h    BYTE    directory handle
  3739.  04h    BYTE    unused
  3740.  05h    BYTE    length of directory path (00h-FFh)
  3741.  06h  N BYTEs    directory path
  3742. SeeAlso: #1033,#1034
  3743. --------N-21E2--SF0C-------------------------
  3744. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES
  3745.     AH = E2h subfn 0Ch
  3746.     DS:SI -> request buffer (see #1036)
  3747.     ES:DI -> reply buffer (see #1037)
  3748. Return: AL = status (00h,9Ch) (see also #1016)
  3749.         9Ch no more trustees
  3750. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3751. SeeAlso: AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  3752.  
  3753. Format of NetWare "Scan Directory For Trustees" request buffer:
  3754. Offset    Size    Description    (Table 1036)
  3755.  00h    WORD    length of following data (max 103h)
  3756.  02h    BYTE    0Ch (subfunction "Scan Directory For Trustees")
  3757.  03h    BYTE    directory handle
  3758.  04h    BYTE    sequence number
  3759.         00h on first call, increment for each subsequent call
  3760.  05h    BYTE    length of directory path (00h-FFh)
  3761.  06h  N BYTEs    directory path
  3762. SeeAlso: #1037,#1038
  3763.  
  3764. Format of NetWare "Scan Directory For Trustees" reply buffer:
  3765. Offset    Size    Description    (Table 1037)
  3766.  00h    WORD    (call) 0031h (length of following results buffer)
  3767.  02h 16 BYTEs    directory name
  3768.  12h  4 BYTEs    date and time of creation
  3769.  16h    DWORD    (big-endian) object ID of owner
  3770.  1Ah  5 DWORDs    (big-endian) object IDs of Trustees 0 through 4
  3771.         00000000h = end of group
  3772.  2Eh  5 BYTEs    directory rights for Trustees 0 through 4 (see #1026)
  3773. SeeAlso: #1036,#1040
  3774. --------N-21E2--SF0D-------------------------
  3775. INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY
  3776.     AH = E2h subfn 0Dh
  3777.     DS:SI -> request buffer (see #1038)
  3778.     ES:DI -> reply buffer (see #1040)
  3779. Return: AL = status (00h,8Ch,FCh) (see #1016)
  3780. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3781.       Alloy NTNX
  3782. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  3783.  
  3784. Format of NetWare "Add Trustee To Directory" request buffer:
  3785. Offset    Size    Description    (Table 1038)
  3786.  00h    WORD    length of following data (max 107h)
  3787.  02h    BYTE    0Dh (subfunction "Add Trustee To Directory")
  3788.  03h    BYTE    directory handle
  3789.  04h    DWORD    (big-endian) object ID of trustee
  3790.  08h    BYTE    trustee directory rights (see #1026)
  3791.  09h    BYTE    length of directory path (00h-FFh)
  3792.  0Ah  N BYTEs    directory path
  3793. SeeAlso: #1040
  3794. --------N-21E2--SF0E-------------------------
  3795. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY
  3796.     AH = E2h subfn 0Eh
  3797.     DS:SI -> request buffer (see #1039)
  3798.     ES:DI -> reply buffer (see #1040)
  3799. Return: AL = status (00h,98h,9Bh,9Ch) (see #1016)
  3800. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3801.       Alloy NTNX
  3802. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh
  3803.  
  3804. Format of NetWare "Delete Trustee From Directory" request buffer:
  3805. Offset    Size    Description    (Table 1039)
  3806.  00h    WORD    length of following data (max 107h)
  3807.  02h    BYTE    0Eh (subfunction "Delete Trustee From Directory")
  3808.  03h    BYTE    directory handle
  3809.  04h    DWORD    (big-endian) object ID of trustee
  3810.  08h    BYTE    unused
  3811.  09h    BYTE    length of directory path (00h-FFh)
  3812.  0Ah  N BYTEs    directory path
  3813. SeeAlso: #1040
  3814.  
  3815. Format of NetWare reply buffer:
  3816. Offset    Size    Description    (Table 1040)
  3817.  00h    WORD    (call) 0000h (no data returned)
  3818. --------N-21E2--SF0F-------------------------
  3819. INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY
  3820.     AH = E2h subfn 0Fh
  3821.     DS:SI -> request buffer (see #1041)
  3822.     ES:DI -> reply buffer (see #1040)
  3823. Return: AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see #1016)
  3824. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3825.       Alloy NTNX
  3826.     directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed
  3827. SeeAlso: AH=56h,AH=E2h/SF=0Ah,AH=E2h/SF=0Bh
  3828.  
  3829. Format of NetWare "Rename Directory" request buffer:
  3830. Offset    Size    Description    (Table 1041)
  3831.  00h    WORD    length of following data (max 111h)
  3832.  02h    BYTE    0Fh (subfunction "Rename Directory")
  3833.  03h    BYTE    directory handle
  3834.  04h    BYTE    length of directory path (00h-FFh)
  3835.  05h  N BYTEs    directory path
  3836.     BYTE    length of new directory name (01h-0Eh)
  3837.       N BYTEs    new directory name
  3838. --------N-21E2--SF10-------------------------
  3839. INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES
  3840.     AH = E2h subfn 10h
  3841.     DS:SI -> request buffer (see #1042)
  3842.     ES:DI -> reply buffer (see #1040)
  3843. Return: AL = status (00h,C6h) (see #1043)
  3844. Desc:    purges files marked for deletion on the file server by the calling
  3845.       workstation
  3846. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3847.       Alloy NTNX
  3848. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=11h,AH=E3h/SF=CEh,AX=F244h
  3849.  
  3850. Format of NetWare "Purge Erased Files" request buffer:
  3851. Offset    Size    Description    (Table 1042)
  3852.  00h    WORD    0001h (length of following data)
  3853.  02h    BYTE    10h (subfunction "Purge Erased Files")
  3854. --------N-21E2--SF11-------------------------
  3855. INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE
  3856.     AH = E2h subfn 11h
  3857.     DS:SI -> request buffer (see #1044)
  3858.     ES:DI -> reply buffer (see #1045)
  3859. Return: AL = status (00h,98h,FFh) (see #1043)
  3860. Desc:    restores one file marked for deletion which has not yet been purged
  3861. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3862.       Alloy NTNX
  3863. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=10h,AH=E3h/SF=CEh,AX=F244h
  3864.  
  3865. (Table 1043)
  3866. Values for NetWare function status:
  3867.  00h    successful
  3868.  98h    nonexistent volume
  3869.  9Ch    invalid path
  3870.  C6h    no console rights
  3871.  FFh    no more erased files
  3872. SeeAlso: #1016,#1073
  3873.  
  3874. Format of NetWare "Restore Erased File" request buffer:
  3875. Offset    Size    Description    (Table 1044)
  3876.  00h    WORD    length of following data (max 13h)
  3877.  02h    BYTE    11h (subfunction "Restore Erased File")
  3878.  03h    BYTE    directory handle or 00h
  3879.  04h    BYTE    length of volume name
  3880.  05h  N BYTEs    volume name (including colon)
  3881. Note:    if both a directory handle and a volume name are specified, the volume
  3882.       name overrides the handle
  3883. SeeAlso: #1045
  3884.  
  3885. Format of NetWare "Restore Erased File" reply buffer:
  3886. Offset    Size    Description    (Table 1045)
  3887.  00h    WORD    (call) 001Eh (size of following results buffer)
  3888.  02h 15 BYTEs    ASCIZ name of erased file
  3889.  11h 15 BYTEs    ASCIZ name under which file was restored
  3890. SeeAlso: #1044
  3891. --------N-21E2--SF12-------------------------
  3892. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE
  3893.     AH = E2h subfn 12h
  3894.     DS:SI -> request buffer (see #1046)
  3895.     ES:DI -> reply buffer (see #1047)
  3896. Return: AL = status (00h,98h,9Ch) (see #1043)
  3897. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3898.       Alloy NTNX
  3899. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=13h,AH=E2h/SF=14h
  3900.  
  3901. Format of NetWare "Allocate Permanent Directory Handle" request buffer:
  3902. Offset    Size    Description    (Table 1046)
  3903.  00h    WORD    length of following data (max 103h)
  3904.  02h    BYTE    12h (subfunction "Allocate Permanent Directory Handle")
  3905.  03h    BYTE    directory handle
  3906.  04h    BYTE    drive ('A'-'Z')
  3907.  05h    BYTE    length of directory path
  3908.  06h  N BYTEs    directory path
  3909. SeeAlso: #1047,#1048
  3910.  
  3911. Format of NetWare reply buffer:
  3912. Offset    Size    Description    (Table 1047)
  3913.  00h    WORD    (call) 0002h (size of following results buffer)
  3914.  02h    BYTE    new directory handle
  3915.  03h    BYTE    effective directory rights (see #1026)
  3916. --------N-21E2--SF13-------------------------
  3917. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE
  3918.     AH = E2h subfn 13h
  3919.     DS:SI -> request buffer (see #1048)
  3920.     ES:DI -> reply buffer (see #1050)
  3921. Return: AL = status (00h,98h,9Ch) (see #1043)
  3922. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3923.       Alloy NTNX
  3924.     this call is the same as AH=E2h/SF=12h except that the directory handle
  3925.       will be automatically deallocated when the calling application
  3926.       executes an End of Job call (AH=D6h) or terminates
  3927. SeeAlso: AH=D6h,AH=E2h/SF=00h,AH=E2h/SF=12h,AH=E2h/SF=14h,AH=E2h/SF=16h
  3928.  
  3929. Format of NetWare "Allocate Temporary Directory Handle" request buffer:
  3930. Offset    Size    Description    (Table 1048)
  3931.  00h    WORD    length of following data (max 103h)
  3932.  02h    BYTE    13h (subfunction "Allocate Temporary Directory Handle")
  3933.  03h    BYTE    directory handle
  3934.  04h    BYTE    drive ('A'-'Z')
  3935.  05h    BYTE    length of directory path
  3936.  06h  N BYTEs    directory path
  3937. SeeAlso: #1046,#1049
  3938. --------N-21E2--SF14-------------------------
  3939. INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE
  3940.     AH = E2h subfn 14h
  3941.     DS:SI -> request buffer (see #1049)
  3942.     ES:DI -> reply buffer (see #1050)
  3943. Return: AL = status (00h,9Bh) (see #1016)
  3944. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3945.       Alloy NTNX
  3946. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=13h
  3947.  
  3948. Format of NetWare request buffer:
  3949. Offset    Size    Description    (Table 1049)
  3950.  00h    WORD    0002h (length of following data)
  3951.  02h    BYTE    14h (subfunction "Deallocate Directory Handle")
  3952.  03h    BYTE    directory handle
  3953.  
  3954. Format of NetWare reply buffer:
  3955. Offset    Size    Description    (Table 1050)
  3956.  00h    WORD    (call) 0000h (no returned data)
  3957. --------N-21E2--SF15-------------------------
  3958. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE
  3959.     AH = E2h subfn 15h
  3960.     DS:SI -> request buffer (see #1051)
  3961.     ES:DI -> reply buffer (see #1052)
  3962. Return: AL = status
  3963.         00h successful
  3964. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  3965.       Alloy NTNX
  3966. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=06h,AH=E2h/SF=19h,AH=E3h/SF=E9h
  3967.  
  3968. Format of NetWare request buffer:
  3969. Offset    Size    Description    (Table 1051)
  3970.  00h    WORD    0002h (length of following data)
  3971.  02h    BYTE    15h (subfunction "Get Volume Info With Handle")
  3972.  03h    BYTE    directory handle
  3973.  
  3974. Format of NetWare reply buffer:
  3975. Offset    Size    Description    (Table 1052)
  3976.  00h    WORD    (call) 001Ch (length of following results buffer)
  3977.  02h    WORD    (big-endian) sectors per block
  3978.  04h    WORD    (big-endian) total blocks on volume
  3979.  06h    WORD    (big-endian) blocks available on volume
  3980.  08h    WORD    (big-endian) total directory slots
  3981.  0Ah    WORD    (big-endian) directory slots available
  3982.  0Ch 16 BYTEs    NUL-padded volume name
  3983.  1Ch    WORD    (big-endian) flag: volume removable if nonzero
  3984. --------N-21E2--SF16-------------------------
  3985. INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE
  3986.     AH = E2h subfn 16h
  3987.     DS:SI -> request buffer (see #1053)
  3988.     ES:DI -> reply buffer
  3989. Return: AL = status
  3990. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX,
  3991.       but is not described in _NetWare_System_Calls--DOS_
  3992. SeeAlso: AH=E2h/SF=13h,AH=E2h/SF=14h
  3993.  
  3994. Format of NetWare request buffer:
  3995. Offset    Size    Description    (Table 1053)
  3996.  00h    WORD    length of following data
  3997.  02h    BYTE    16h (subfunction "Allocate Special Temporary Directory Handle")
  3998.     ???
  3999. --------N-21E2--SF17-------------------------
  4000. INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE
  4001.     AH = E2h subfn 17h
  4002.     DS:SI -> request buffer (see #1054)
  4003.     ES:DI -> reply buffer (see #1055)
  4004. Return: AL = status
  4005.         00h successful
  4006.         else network error code
  4007. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  4008. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  4009.  
  4010. Format of NetWare request buffer:
  4011. Offset    Size    Description    (Table 1054)
  4012.  00h    WORD    0002h (length of following data)
  4013.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  4014.  03h    BYTE    directory handle
  4015.  
  4016. Format of NetWare reply buffer:
  4017. Offset    Size    Description    (Table 1055)
  4018.  00h    WORD    (call) 0010h (length of following results buffer)
  4019.  02h 16 BYTEs    save buffer
  4020. --------N-21E2--SF18-------------------------
  4021. INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE
  4022.     AH = E2h subfn 18h
  4023.     DS:SI -> request buffer (see #1056)
  4024.     ES:DI -> reply buffer (see #1057)
  4025. Return: AL = status
  4026.         00h successful
  4027.         else network error code
  4028. Desc:    restore a previously saved directory handle to reproduce an executing
  4029.       environment, possibly on a different execution site
  4030. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  4031. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  4032.  
  4033. Format of NetWare request buffer:
  4034. Offset    Size    Description    (Table 1056)
  4035.  00h    WORD    0011h (length of following data)
  4036.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  4037.  03h 16 BYTEs    save buffer
  4038.  
  4039. Format of NetWare reply buffer:
  4040. Offset    Size    Description    (Table 1057)
  4041.  00h    WORD    (call) 0002h (length of following results buffer)
  4042.  02h    BYTE    new directory handle
  4043.  03h    BYTE    effective rights (see #1026)
  4044. --------N-21E2--SF19-------------------------
  4045. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION
  4046.     AH = E2h subfn 19h
  4047.     DS:SI -> request buffer (see #1058)
  4048.     ES:DI -> reply buffer (see #1059)
  4049. Return: AL = status (00h,9Bh,9Ch) (see #1016)
  4050. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4051. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=0Fh
  4052.  
  4053. Format of NetWare request buffer:
  4054. Offset    Size    Description    (Table 1058)
  4055.  00h    WORD    length of following data (max 10Bh)
  4056.  02h    BYTE    19h (subfunction "Set Directory Information")
  4057.  03h    BYTE    directory handle
  4058.  04h    DWORD    (big-endian) date and time of creation
  4059.  08h    DWORD    (big-endian) object ID of owner
  4060.  0Ch    BYTE    maximum directory rights (see #1026)
  4061.  0Dh    BYTE    length of directory path
  4062.  0Eh  N BYTEs    directory path
  4063.  
  4064. Format of NetWare reply buffer:
  4065. Offset    Size    Description    (Table 1059)
  4066.  00h    WORD    (call) 0000h (no results returned)
  4067. --------N-21E2--SF1A-------------------------
  4068. INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY
  4069.     AH = E2h subfn 1Ah
  4070.     DS:SI -> request buffer (see #1060)
  4071.     ES:DI -> reply buffer (see #1061)
  4072. Return: AL = status
  4073.         00h successful
  4074. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4075.       Alloy NTNX
  4076. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=06h,AH=E3h/SF=D7h
  4077.  
  4078. Format of NetWare request buffer:
  4079. Offset    Size    Description    (Table 1060)
  4080.  00h    WORD    0004h (length of following data)
  4081.  02h    BYTE    1Ah (subfunction "Get Path From Directory Entry")
  4082.  03h    BYTE    volume number (00h-1Fh)
  4083.  04h    WORD    (big-endian) directory entry number
  4084.  
  4085. Format of NetWare reply buffer:
  4086. Offset    Size    Description    (Table 1061)
  4087.  00h    WORD    (call) size of following results record (max 200h)
  4088.  02h 256 BYTEs    path
  4089. --------E-21E3-------------------------------
  4090. INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT
  4091.     AH = E3h
  4092.     AL = interrupt number
  4093.     ???
  4094. Return: ???
  4095. Note:    protected mode only???
  4096. SeeAlso: AH=E1h"OS/286",INT 31/AX=0300h
  4097. --------T-21E3-------------------------------
  4098. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  4099.     AH = E3h
  4100.     AL = character
  4101. Return: AL = status
  4102.         00h successful
  4103.         01h buffer full (128 characters)
  4104. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS"
  4105. SeeAlso: AH=F3h"DoubleDOS"
  4106. --------N-21E3-------------------------------
  4107. INT 21 - Novell NetWare - CONNECTION CONTROL
  4108.     AH = E3h
  4109.     DS:SI -> request buffer (see #1062)
  4110.     ES:DI -> reply buffer (see #1063)
  4111. Return: AL = status
  4112.         00h successful
  4113.         else error code
  4114. Note:    supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  4115. SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h
  4116.  
  4117. Format of NetWare request buffer:
  4118. Offset    Size    Description    (Table 1062)
  4119.  00h    WORD    length of following data
  4120.  02h    BYTE    subfunction number
  4121.         00h login
  4122.         01h change password
  4123.         02h map user to station set
  4124.         03h map object to number
  4125.         04h map number to object
  4126.         05h get station's logged information
  4127.         06h get station's root mask (obsolete)
  4128.         07h map group name to number
  4129.         08h map number to group name
  4130.         09h get memberset M of group G
  4131.     var    depends on subfunction
  4132. Notes:    the above subfunctions are not described in _NetWare_System_Calls--DOS_
  4133.     see separate entries below for other subfunctions
  4134. SeeAlso: #1063,#1064,#1067
  4135.  
  4136. Format of NetWare reply buffer:
  4137. Offset    Size    Description    (Table 1063)
  4138.  00h    WORD    (call) length of following buffer space for results
  4139.     var    depends on subfunction
  4140. SeeAlso: #1062
  4141.  
  4142. Format of NetWare object property:
  4143. Offset    Size    Description    (Table 1064)
  4144.  00h 1-16 BYTEs property name (see also #1065)
  4145.   N    BYTE    flags
  4146.         bit 0: property is dynamic
  4147.         bit 1: property is a set rather than an item
  4148.  N+1    BYTE    security levels (see #1066)
  4149.     ???
  4150.  
  4151. (Table 1065)
  4152. Values for names of well-known NetWare properties:
  4153.  ACCOUNT_BALANCE
  4154.  ACCOUNT_SERVERS
  4155.  GROUP_MEMBERS
  4156.  GROUPS_I'M_IN
  4157.  IDENTIFICATION        user's name
  4158.  LOGIN_CONTROL
  4159.  NET_ADDRESS
  4160.  OPERATORS
  4161.  PASSWORD
  4162.  SECURITY_EQUALS
  4163.  
  4164. (Table 1066)
  4165. Values for NetWare security levels:
  4166.  00h    "anyone" everyone may access
  4167.  01h    "logged" only logged-in clients may access
  4168.  02h    "object" only clients logged-in with object's name, type, and password
  4169.  03h    "supervisor" only clients logged-in with supervisor privileges
  4170.  04h    "NetWare" only NetWare may access
  4171. Note:    the above values are stored in a nybble; the high half-byte is write
  4172.       access and the low half-byte is read access
  4173.  
  4174. (Table 1067)
  4175. Values for NetWare object type:
  4176.  0000h    unknown
  4177.  0001h    user
  4178.  0002h    user group
  4179.  0003h    print queue
  4180.  0004h    file server
  4181.  0005h    job server
  4182.  0006h    gateway
  4183.  0007h    print server
  4184.  0008h    archive queue
  4185.  0009h    archive server
  4186.  000Ah    job queue
  4187.  000Bh    administration
  4188.  0021h    NAS SNA gateway
  4189.  0026h    remote bridge server
  4190.  0027h    TCPIP gateway
  4191.  002Dh    time synchronization server
  4192.  002Eh    archive server dynamic SAP
  4193.  0047h    advertising print server
  4194.  0053h    print queue uwer
  4195.  0048h-8000h reserved
  4196.  FFFFh    wild (used only for finding objects)
  4197. --------N-21E3--SF0A-------------------------
  4198. INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA
  4199.     AH = E3h subfn 0Ah
  4200.     DS:SI -> request buffer (see #1068)
  4201.     ES:DI -> reply buffer (see #1069)
  4202. Return: AL = status
  4203.         00h successful
  4204. Desc:    change the login directory for the calling workstation
  4205. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4206.       Alloy NTNX
  4207. SeeAlso: AH=D7h,AH=E3h/SF=14h
  4208.  
  4209. Format of NetWare request buffer:
  4210. Offset    Size    Description    (Table 1068)
  4211.  00h    WORD    length of following data (max 102h)
  4212.  02h    BYTE    0Ah (subfunction "Enter Login Area")
  4213.  03h    BYTE    number of local drives
  4214.  04h    BYTE    length of subdirectory name (00h-FFh)
  4215.  05h  N BYTEs    name of subdirectory under SYS:LOGIN where to find the login
  4216.           utility
  4217.  
  4218. Format of NetWare reply buffer:
  4219. Offset    Size    Description    (Table 1069)
  4220.  00h    WORD    (call) 0000h (no data returned)
  4221. --------N-21E3--SF0C-------------------------
  4222. INT 21 U - Novell NetWare - VERIFY NETWORK SERIAL NUMBER
  4223.     AH = E3h subfn 0Ch
  4224.     DS:SI -> request buffer (see #1070)
  4225.     ES:DI -> reply buffer (see #1071)
  4226. Return: AL = status
  4227.         00h successful
  4228. Note:    if the network serial number to be verified is correct, the reply
  4229.       buffer will contain the corresponding application number
  4230. SeeAlso: AH=E3h/SF=12h
  4231.  
  4232. Format of NetWare request buffer:
  4233. Offset    Size    Description    (Table 1070)
  4234.  00h    WORD    0005h (length of following data)
  4235.  02h    BYTE    0Ch (subfunction "Verify Network Serial Number")
  4236.  03h    DWORD    (big-endian) network serial number to verify
  4237.  
  4238. Format of NetWare reply buffer:
  4239. Offset    Size    Description    (Table 1071)
  4240.  00h    WORD    (call) 0002h (size of following results buffer)
  4241.  02h    WORD    (big-endian) application number
  4242. --------N-21E3--SF0D-------------------------
  4243. INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE
  4244.     AH = E3h subfn 0Dh
  4245.     DS:SI -> request buffer (see #1072)
  4246.     ES:DI -> reply buffer (see #1069)
  4247. Return: AL = status
  4248.         00h successful
  4249. Desc:    append a line to the default file server's NET$LOG.MSG file
  4250. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4251.       Alloy NTNX
  4252. SeeAlso: AH=E1h/SF=09h
  4253.  
  4254. Format of NetWare request buffer:
  4255. Offset    Size    Description    (Table 1072)
  4256.  00h    WORD    length of following data (max 52h)
  4257.  02h    BYTE    0Dh (subfunction "Log Network Message")
  4258.  03h    BYTE    length of message (01h-50h)
  4259.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  4260. --------N-21E3--SF0E-------------------------
  4261. INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION
  4262.     AH = E3h subfn 0Eh
  4263.     DS:SI -> request buffer (see #1074)
  4264.     ES:DI -> reply buffer (see #1075)
  4265. Return: AL = status (00h,98h,F2h) (see #1073)
  4266. Notes:    this function is supported by Advanced NetWare 2.1+
  4267.     the caller must have bindery object read privileges
  4268. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  4269.  
  4270. (Table 1073)
  4271. Values for NetWare function status:
  4272.  00h    successful
  4273.  98h    nonexistent volume
  4274.  F2h    not permitted to read object
  4275. SeeAlso: #1043,#1076
  4276.  
  4277. Format of NetWare request buffer:
  4278. Offset    Size    Description    (Table 1074)
  4279.  00h    WORD    0005h (length of following data)
  4280.  02h    BYTE    0Eh (subfunction "Get Disk Utilization")
  4281.  03h    BYTE    volume number (00h-1Fh)
  4282.  04h    DWORD    (big-endian) object ID
  4283.  
  4284. Format of NetWare reply buffer:
  4285. Offset    Size    Description    (Table 1075)
  4286.  00h    WORD    (call) 000Bh (size of following results buffer)
  4287.  02h    BYTE    volume number (00h-1Fh)
  4288.  03h    DWORD    (big-endian) object ID
  4289.  07h    WORD    (big-endian) directories used by object
  4290.  09h    WORD    (big-endian) files created by object
  4291.  0Bh    WORD    (big-endian) disk blocks used by object-created files
  4292. --------N-21E3--SF0F-------------------------
  4293. INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION
  4294.     AH = E3h subfn 0Fh
  4295.     DS:SI -> request buffer (see #1077)
  4296.     ES:DI -> reply buffer (see #1078)
  4297. Return: AL = status (see #1076)
  4298. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4299. SeeAlso: AH=B6h,AH=E3h/SF=10h
  4300.  
  4301. (Table 1076)
  4302. Values for NetWare function status:
  4303.  00h    successful
  4304.  89h    not permitted to search directory
  4305.  FFh    no more matching files
  4306. SeeAlso: #1073,#1094
  4307.  
  4308. Format of NetWare request buffer:
  4309. Offset    Size    Description    (Table 1077)
  4310.  00h    WORD    length of following data (max 105h)
  4311.  02h    BYTE    0Fh (subfunction "Scan File Information")
  4312.  03h    WORD    (big-endian) sequence number
  4313.         FFFFh on first call
  4314.  05h    BYTE    directory handle or 00h
  4315.  06h    BYTE    search attributes (see #0643 at AX=4301h)
  4316.  07h    BYTE    length of filespec
  4317.  08h  N BYTEs    ASCIZ uppercase filespec
  4318.  
  4319. Format of NetWare reply buffer:
  4320. Offset    Size    Description    (Table 1078)
  4321.  00h    WORD    (call) 005Eh (size of following results buffer)
  4322.  02h    WORD    next sequence number (place in request buffer for next call)
  4323.  04h 14 BYTEs    ASCIZ filename
  4324.  12h    BYTE    file attributes (see #0643 at AX=4301h)
  4325.  13h    BYTE    extended file attributes (see #0982 at AH=B6h)
  4326.  14h    DWORD    (big-endian) file size in bytes
  4327.  18h    WORD    (big-endian) file's creation date (see #0877 at AX=5700h)
  4328.  1Ah    WORD    (big-endian) date of last access (see #0876 at AX=5700h)
  4329.  1Ch    DWORD    (big-endian) date and time of last update (see #1023)
  4330.  20h    DWORD    (big-endian) object ID of owner
  4331.  24h    DWORD    (big-endian) date and time last archived (see #1023)
  4332.  28h 55 BYTEs    reserved
  4333. Note:    the official documentation erroneously lists the field at offset 04h as
  4334.       15 bytes and thus shifts the remaining fields by one byte
  4335. --------N-21E3--SF10-------------------------
  4336. INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION
  4337.     AH = E3h subfn 10h
  4338.     DS:SI -> request buffer (see #1079)
  4339.     ES:DI -> reply buffer (see #1080)
  4340. Return: AL = status
  4341.         00h successful
  4342. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4343.     the caller must have modify privileges on the directory containing the
  4344.       file
  4345. SeeAlso: AH=B6h,AH=E3h/SF=0Fh
  4346.  
  4347. Format of NetWare request buffer:
  4348. Offset    Size    Description    (Table 1079)
  4349.  00h    WORD    length of following data (max 151h)
  4350.  02h    BYTE    10h (subfunction "Set File Information")
  4351.  03h    BYTE    file attributes (see #0643 at AX=4301h)
  4352.  04h    BYTE    extended file attributes (see #0982 at AH=B6h)
  4353.  05h  4 BYTEs    reserved
  4354.  09h    WORD    (big-endian) file's creation date (see #0877 at AX=5700h)
  4355.  0Bh    WORD    (big-endian) date of last access (see #0876 at AX=5700h)
  4356.  0Dh    DWORD    (big-endian) date and time of last update (see #1023)
  4357.  11h    DWORD    (big-endian) object ID of owner
  4358.  15h    DWORD    (big-endian) date and time last archived (see #1023)
  4359.  19h 56 BYTEs    reserved
  4360.  51h    BYTE    directory handle or 00h
  4361.  52h    BYTE    search attributes (see #0643 at AX=4301h)
  4362.  53h    BYTE    length of filename
  4363.  54h  N BYTEs    filename
  4364.  
  4365. Format of NetWare reply buffer:
  4366. Offset    Size    Description    (Table 1080)
  4367.  00h    WORD    (call) 0000h (no results returned)
  4368. --------N-21E3--SF11-------------------------
  4369. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION
  4370.     AH = E3h subfn 11h
  4371.     DS:SI -> request buffer (see #1081)
  4372.     ES:DI -> reply buffer (see #1082)
  4373. Return: AL = status
  4374.         00h successful
  4375. Desc:    determine the version of software installed on the file server and
  4376.       how it is configured
  4377. Note:    this function is supported by Advanced NetWare 2.1+
  4378. SeeAlso: AH=E3h/SF=0Eh,AE3h/SF=12h,AH=E3h/SF=CDh,AH=E3h/SF=D3h,AH=E3h/SF=E7h
  4379. SeeAlso: AH=E7h
  4380.  
  4381. Format of NetWare request buffer:
  4382. Offset    Size    Description    (Table 1081)
  4383.  00h    WORD    0001h (length of following data)
  4384.  02h    BYTE    11h (subfunction "Get File Server Information")
  4385.  
  4386. Format of NetWare reply buffer:
  4387. Offset    Size    Description    (Table 1082)
  4388.  00h    WORD    (call) 0080h (size of following results buffer)
  4389.  02h 48 BYTEs    server's name
  4390.  32h    BYTE    NetWare version
  4391.  33h    BYTE    NetWare subversion (0-99)
  4392.  34h    WORD    (big-endian) number of connections supported
  4393.         NetWare 4.01 reportedly returns maximum simulataneously-used
  4394.           connections
  4395.  36h    WORD    (big-endian) number of connections in use
  4396.  38h    WORD    (big-endian) maximum connected volumes
  4397. ---Advanced NetWare 2.1+ ---
  4398.  3Ah    BYTE    operating system revision number
  4399.  3Bh    BYTE    fault tolerance (SFT) level
  4400.  3Ch    BYTE    TTS level
  4401.  3Dh    WORD    (big-endian) maximum simultaneously-used connections
  4402.         NetWare 4.01 reportedly returns number of connections in use
  4403.  3Fh    BYTE    accounting version
  4404.  40h    BYTE    VAP version
  4405.  41h    BYTE    queueing version
  4406.  42h    BYTE    print server version
  4407.  43h    BYTE    virtual console version
  4408.  44h    BYTE    security restrictions level
  4409.  45h    BYTE    internetwork bridge version
  4410.  46h 60 BYTEs    reserved
  4411. --------N-21E3--SF12-------------------------
  4412. INT 21 - Novell NetWare - GET NETWORK SERIAL NUMBER
  4413.     AH = E3h subfn 12h
  4414.     AL = 00h
  4415.     BX = CX = DX = 0000h
  4416.     DS:SI -> request buffer (see #1083)
  4417.     ES:DI -> reply buffer (see #1084)
  4418. Return: AL = status
  4419.         00h successful
  4420. Desc:    return the serial number and application number for the software
  4421.       installed on the file server
  4422. Notes:    this function is supported by Advanced NetWare 2.1+
  4423.     reportedly, the workstation crashes if AL,BX,CX, and DX are not all
  4424.       zero
  4425. SeeAlso: AH=E3h/SF=0Ch,AH=E3h/SF=11h
  4426.  
  4427. Format of NetWare request buffer:
  4428. offset     size    description    (Table 1083)
  4429.  00h     WORD    0001h (length of following data)
  4430.  02h     BYTE    12h (subfunction "Get Serial Number")
  4431.  
  4432. Format of NetWare reply buffer:
  4433. offset     size    description    (Table 1084)
  4434.  00h     WORD    (call) 0006h (size of following results buffer)
  4435.  02h   4 BYTEs    (big-endian) NetWare server serial number
  4436.  06h   2 BYTEs    (big-endian) NetWare application serial number
  4437. --------N-21E3--SF13-------------------------
  4438. INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS
  4439.     AH = E3h subfn 13h
  4440.     DS:SI -> request buffer (see #1085)
  4441.     ES:DI -> reply buffer (see #1086)
  4442. Return: AL = status
  4443.         00h successful
  4444. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4445. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AH=EEh"NetWare"
  4446.  
  4447. Format of NetWare request buffer:
  4448. Offset    Size    Description    (Table 1085)
  4449.  00h    WORD    0002h (length of following data)
  4450.  02h    BYTE    13h (subfunction "Get Internet Address")
  4451.  03h    BYTE    logical connection number (01h-64h)
  4452.  
  4453. Format of NetWare reply buffer:
  4454. Offset    Size    Description    (Table 1086)
  4455.  00h    WORD    (call) 000Ch (length of following results buffer)
  4456.  02h  4 BYTEs    network number
  4457.  06h  6 BYTEs    physical node address
  4458.  0Ch  2 BYTEs    socket number
  4459. --------N-21E3--SF14-------------------------
  4460. INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER
  4461.     AH = E3h subfn 14h
  4462.     DS:SI -> request buffer (see #1087)
  4463.     ES:DI -> reply buffer (see #1088)
  4464. Return: AL = status
  4465.         00h successful
  4466. Desc:    this function retrieves a list indicating the connection numbers under
  4467.       which a bindery object is logged into the default file server
  4468. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4469. SeeAlso: AH=D7h"NetWare",AH=F1h"NetWare"
  4470.  
  4471. Format of NetWare request buffer:
  4472. Offset    Size    Description    (Table 1087)
  4473.  00h    WORD    length of following data (max B3h)
  4474.  02h    BYTE    14h (subfunction "Login To File Server")
  4475.  03h    WORD    (big-endian) type of object
  4476.  05h    BYTE    length of object's name (01h-2Fh)
  4477.  06h  N BYTEs    object's name
  4478.     BYTE    length of password
  4479.       N BYTEs    password
  4480.  
  4481. Format of NetWare reply buffer:
  4482. Offset    Size    Description    (Table 1088)
  4483.  00h    WORD    (call) 0000h (no data returned)
  4484. --------N-21E3--SF15-------------------------
  4485. INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION NUMBERS
  4486.     AH = E3h subfn 15h
  4487.     DS:SI -> request buffer (see #1089)
  4488.     ES:DI -> reply buffer (see #1090)
  4489. Return: AL = status
  4490.         00h successful
  4491. Desc:    this function retrieves a list indicating the connection numbers under
  4492.       which a bindery object is logged into the default file server
  4493. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4494. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h
  4495.  
  4496. Format of NetWare request buffer:
  4497. Offset    Size    Description    (Table 1089)
  4498.  00h    WORD    length of following data (max 33h)
  4499.  02h    BYTE    15h (subfunction "Get Object Connection Numbers")
  4500.  03h    WORD    (big-endian) type of object
  4501.  05h    BYTE    length of object's name (01h-2Fh)
  4502.  06h  N BYTEs    object's name
  4503.  
  4504. Format of NetWare reply buffer:
  4505. Offset    Size    Description    (Table 1090)
  4506.  00h    WORD    (call) length of following results buffer (max 65h)
  4507.  02h    BYTE    number of connections
  4508.  03h  N BYTEs    connection list
  4509. --------N-21E3--SF16-------------------------
  4510. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION
  4511.     AH = E3h subfn 16h
  4512.     DS:SI -> request buffer (see #1091)
  4513.     ES:DI -> reply buffer (see #1092)
  4514. Return: AL = status
  4515.         00h successful
  4516. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4517. SeeAlso: AH=D7h,AH=DCh"NetWare",AH=E3h/SF=14h
  4518.  
  4519. Format of NetWare request buffer:
  4520. Offset    Size    Description    (Table 1091)
  4521.  00h    WORD    0002h (length of following data)
  4522.  02h    BYTE    16h (subfunction "Get Connection Information")
  4523.  03h    BYTE    logical connection number (01h-64h)
  4524.  
  4525. Format of NetWare reply buffer:
  4526. Offset    Size    Description    (Table 1092)
  4527.  00h    WORD    (call) 003Eh (length of following results buffer)
  4528.  02h    DWORD    (big-endian) object ID for object logged in on the connection
  4529.         00000000h if no object logged in
  4530.  06h    WORD    (big-endian) type of object
  4531.  08h 48 BYTEs    name of object
  4532.  38h  7 BYTEs    login time (see #1093)
  4533. Note:    much of the Novell documentation incorrectly states the reply buffer
  4534.       length as 3Fh instead of 40h, which corresponds to a results length
  4535.       of 3Dh (61) bytes instead of the correct 3Eh (62) bytes
  4536.  
  4537. Format of NetWare login time:
  4538. Offset    Size    Description    (Table 1093)
  4539.  00h    BYTE    year (80-99 = 1980-1999, 00-79 = 2000-2079)
  4540.  01h    BYTE    month (1-12)
  4541.  02h    BYTE    day (1-31)
  4542.  03h    BYTE    hour (0-23)
  4543.  04h    BYTE    minute (0-59)
  4544.  05h    BYTE    second (0-59)
  4545.  06h    BYTE    day of week (0 = Sunday)
  4546. --------N-21E3--SF32-------------------------
  4547. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT
  4548.     AH = E3h subfn 32h
  4549.     DS:SI -> request buffer (see #1095)
  4550.     ES:DI -> reply buffer (see #1096)
  4551. Return: AL = status (see #1094)
  4552. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4553. SeeAlso: AH=E3h/SF=33h,AH=E3h/SF=34h,AH=E3h/SF=38h,AH=E3h/SF=39h
  4554.  
  4555. (Table 1094)
  4556. Values for NetWare function status:
  4557.  00h    successful
  4558.  96h    server out of memory
  4559.  EEh    object already exists
  4560.  EFh    invalid name
  4561.  F0h    wildcard not allowed
  4562.  F1h    invalid bindery security level
  4563.  F3h    not permitted to rename object
  4564.  F4h    not permitted to delete objects
  4565.  F5h    not permitted to create objects
  4566.  FCh    no such object
  4567.  FEh    server bindery locked
  4568.  FFh    bindery failure
  4569. SeeAlso: #1076,#1101
  4570.  
  4571. Format of NetWare request buffer:
  4572. Offset    Size    Description    (Table 1095)
  4573.  00h    WORD    length of following data (max 35h)
  4574.  02h    BYTE    32h (subfunction "Create Bindery Object")
  4575.  03h    BYTE    object flag (00h static, 01h dynamic)
  4576.  04h    BYTE    object security levels
  4577.  05h    WORD    (big-endian) type of object
  4578.  07h    BYTE    length of object's name
  4579.  08h  N BYTEs    object's name
  4580.  
  4581. Format of NetWare reply buffer:
  4582. Offset    Size    Description    (Table 1096)
  4583.  00h    WORD    0000h (no data returned)
  4584. --------N-21E3--SF33-------------------------
  4585. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT
  4586.     AH = E3h subfn 33h
  4587.     DS:SI -> request buffer (see #1097)
  4588.     ES:DI -> reply buffer (see #1096)
  4589. Return: AL = status (see #1094)
  4590. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4591. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=34h
  4592.  
  4593. Format of NetWare request buffer:
  4594. Offset    Size    Description    (Table 1097)
  4595.  00h    WORD    length of following data (max 33h)
  4596.  02h    BYTE    33h (subfunction "Delete Bindery Object")
  4597.  03h    WORD    (big-endian) type of object
  4598.  05h    BYTE    length of object's name (01h-2Fh)
  4599.  06h  N BYTEs    object's name
  4600. --------N-21E3--SF34-------------------------
  4601. INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT
  4602.     AH = E3h subfn 34h
  4603.     DS:SI -> request buffer (see #1098)
  4604.     ES:DI -> reply buffer (see #1096)
  4605. Return: AL = status (see #1094)
  4606. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4607. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h
  4608.  
  4609. Format of NetWare request buffer:
  4610. Offset    Size    Description    (Table 1098)
  4611.  00h    WORD    length of following data (max 63h)
  4612.  02h    BYTE    34h (subfunction "Rename Bindery Object")
  4613.  03h    WORD    (big-endian) type of object
  4614.  05h    BYTE    length of object's name (01h-2Fh)
  4615.  06h  N BYTEs    object's name
  4616.     BYTE    length of new name (01h-2Fh)
  4617.       N BYTEs    new name
  4618. --------N-21E3--SF35-------------------------
  4619. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID
  4620.     AH = E3h subfn 35h
  4621.     DS:SI -> request buffer (see #1099)
  4622.     ES:DI -> reply buffer (see #1100)
  4623. Return: AL = status (00h,96h,FCh,FEh,FFh) (see #1101)
  4624. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4625.     the requesting workstation must be logged into the file server with
  4626.       read access to the bindery object
  4627. SeeAlso: AH=E3h/SF=36h,AH=E3h/SF=44h
  4628.  
  4629. Format of NetWare request buffer:
  4630. Offset    Size    Description    (Table 1099)
  4631.  00h    WORD    length of following data (max 33h)
  4632.  02h    BYTE    35h (subfunction "Get Bindery Object ID")
  4633.  03h    WORD    (big-endian) type of object
  4634.  05h    BYTE    length of object's name
  4635.  06h  N BYTEs    object's name
  4636.  
  4637. Format of NetWare reply buffer:
  4638. Offset    Size    Description    (Table 1100)
  4639.  00h    WORD    (call) 0036h (length of following buffer space)
  4640.  02h    DWORD    (big-endian) object ID
  4641.  06h    WORD    (big-endian) type of object
  4642.  08h 48 BYTEs    object name
  4643. --------N-21E3--SF36-------------------------
  4644. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME
  4645.     AH = E3h subfn 36h
  4646.     DS:SI -> request buffer (see #1102)
  4647.     ES:DI -> reply buffer (see #1103)
  4648. Return: AL = status (see #1101)
  4649. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4650.     the requesting workstation must be logged into the file server with
  4651.       read access to the bindery object
  4652. SeeAlso: AH=E3h/SF=35h,AH=E3h/SF=44h
  4653.  
  4654. (Table 1101)
  4655. Values for NetWare function status:
  4656.  00h    successful
  4657.  96h    server out of memory
  4658.  EFh    invalid name
  4659.  F0h    wildcard not allowed
  4660.  FCh    no such object
  4661.  FEh    server bindery locked
  4662.  FFh    bindery failure
  4663. SeeAlso: #1094,#1107
  4664.  
  4665. Format of NetWare request buffer:
  4666. Offset    Size    Description    (Table 1102)
  4667.  00h    WORD    0005h (length of following data)
  4668.  02h    BYTE    36h (subfunction "Get Bindery Object Name")
  4669.  03h    DWORD    (big-endian) object ID
  4670.  
  4671. Format of NetWare reply buffer:
  4672. Offset    Size    Description    (Table 1103)
  4673.  00h    WORD    (call) 0036h (length of following buffer space)
  4674.  02h    DWORD    (big-endian) object ID
  4675.  06h    WORD    (big-endian) type of object
  4676.  08h 48 BYTEs    object name
  4677. --------N-21E3--SF37-------------------------
  4678. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT
  4679.     AH = E3h subfn 37h
  4680.     DS:SI -> request buffer (see #1104)
  4681.     ES:DI -> reply buffer (see #1105)
  4682. Return: AL = status (see #1101)
  4683. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4684.     the requesting workstation must be logged into the file server with
  4685.       read access to the bindery object
  4686. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AH=E3h/SF=38h,AH=E3h/SF=3Ch
  4687.  
  4688. Format of NetWare request buffer:
  4689. Offset    Size    Description    (Table 1104)
  4690.  00h    WORD    length of following data (max 37h)
  4691.  02h    BYTE    37h (subfunction "Scan Bindery Object")
  4692.  03h    DWORD    (big-endian) last object ID
  4693.  07h    WORD    (big-endian) type of object
  4694.  09h    BYTE    length of object's name
  4695.  0Ah  N BYTEs    object's name
  4696.  
  4697. Format of NetWare reply buffer:
  4698. Offset    Size    Description    (Table 1105)
  4699.  00h    WORD    (call) 0039h (length of following buffer space)
  4700.  02h    DWORD    (big-endian) object ID
  4701.         FFFFFFFFh for first call
  4702.  06h    WORD    (big-endian) type of object
  4703.  08h 48 BYTEs    object name (counted string)
  4704.  38h    BYTE    object flag (00h static, 01h dynamic)
  4705.  39h    BYTE    object's security levels
  4706.  3Ah    BYTE    object properties flag (00h no, FFh yes)
  4707. --------N-21E3--SF38-------------------------
  4708. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY
  4709.     AH = E3h subfn 38h
  4710.     DS:SI -> request buffer (see #1106)
  4711.     ES:DI -> reply buffer (see #1109)
  4712. Return: AL = status (00h,96h,F0h,F1h,FBh,FCh,FEh,FFh) (see #1107)
  4713. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4714. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  4715.  
  4716. Format of NetWare request buffer:
  4717. Offset    Size    Description    (Table 1106)
  4718.  00h    WORD    length of following data (max 34h)
  4719.  02h    BYTE    38h (subfunction "Change Bindery Object Security")
  4720.  03h    BYTE    new security levels
  4721.  04h    WORD    (big-endian) type of object
  4722.  06h    BYTE    length of object's name (01h-2Fh)
  4723.  07h  N BYTEs    object name
  4724. --------N-21E3--SF39-------------------------
  4725. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY
  4726.     AH = E3h subfn 39h
  4727.     DS:SI -> request buffer (see #1108)
  4728.     ES:DI -> reply buffer (see #1109)
  4729. Return: AL = status (see #1107)
  4730. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4731. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  4732.  
  4733. (Table 1107)
  4734. Values for NetWare function status:
  4735.  00h    successful
  4736.  96h    server out of memory
  4737.  EDh    property already exists
  4738.  EFh    invalid name
  4739.  F0h    wildcard not allowed
  4740.  F1h    invalid bindery security level
  4741.  F6h    not permitted to delete properties
  4742.  F7h    not permitted to create properties
  4743.  FBh    no such property
  4744.  FCh    no such object
  4745.  FEh    server bindery locked
  4746.  FFh    bindery failure
  4747. SeeAlso: #1101,#1111
  4748.  
  4749. Format of NetWare request buffer:
  4750. Offset    Size    Description    (Table 1108)
  4751.  00h    WORD    length of following data (max 45h)
  4752.  02h    BYTE    39h (subfunction "Create Property")
  4753.  03h    WORD    (big-endian) type of object
  4754.  05h    BYTE    length of object's name (01h-2Fh)
  4755.  06h  N BYTEs    object's name
  4756.     BYTE    property flags
  4757.     BYTE    property security levels
  4758.     BYTE    length of property's name (01h-0Fh)
  4759.       N BYTEs    property's name
  4760.  
  4761. Format of NetWare reply buffer:
  4762. Offset    Size    Description    (Table 1109)
  4763.  00h    WORD    (call) 0000h (no data returned)
  4764. --------N-21E3--SF3A-------------------------
  4765. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY
  4766.     AH = E3h subfn 3Ah
  4767.     DS:SI -> request buffer (see #1110)
  4768.     ES:DI -> reply buffer (see #1109)
  4769. Return: AL = status (see #1107)
  4770. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4771. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=39h
  4772.  
  4773. Format of NetWare request buffer:
  4774. Offset    Size    Description    (Table 1110)
  4775.  00h    WORD    length of following data (max 43h)
  4776.  02h    BYTE    3Ah (subfunction "Delete Property")
  4777.  03h    WORD    (big-endian) type of object
  4778.  05h    BYTE    length of object's name (01h-2Fh)
  4779.  06h  N BYTEs    object's name
  4780.     BYTE    length of property's name (01h-0Fh)
  4781.       N BYTEs    property's name
  4782. --------N-21E3--SF3B-------------------------
  4783. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY
  4784.     AH = E3h subfn 3Bh
  4785.     DS:SI -> request buffer (see #1112)
  4786.     ES:DI -> reply buffer (see #1109)
  4787. Return: AL = status (see #1111)
  4788. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4789. SeeAlso: AH=E3h/SF=38h
  4790.  
  4791. (Table 1111)
  4792. Values for NetWare function status:
  4793.  00h    successful
  4794.  96h    server out of memory
  4795.  F0h    wildcard not allowed
  4796.  F1h    invalid bindery security level
  4797.  FBh    no such property
  4798.  FCh    no such object
  4799.  FEh    server bindery locked
  4800.  FFh    bindery failure
  4801. SeeAlso: #1107,#1115
  4802.  
  4803. Format of NetWare request buffer:
  4804. Offset    Size    Description    (Table 1112)
  4805.  00h    WORD    length of following data (max 44h)
  4806.  02h    BYTE    3Bh (subfunction "Change Property Security")
  4807.  03h    WORD    (big-endian) type of object
  4808.  05h    BYTE    length of object's name (01h-2Fh)
  4809.  06h  N BYTEs    object name
  4810.     BYTE    new property security levels
  4811.     BYTE    length of property's name
  4812.       N BYTEs    property name
  4813. --------N-21E3--SF3C-------------------------
  4814. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY
  4815.     AH = E3h subfn 3Ch
  4816.     DS:SI -> request buffer (see #1113)
  4817.     ES:DI -> reply buffer (see #1114)
  4818. Return: AL = status (00h,96h,F1h,FBh,FCh,FEh,FFh) (see #1111)
  4819. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4820. SeeAlso: AH=E3h/SF=37h,AH=E3h/SF=3Bh
  4821.  
  4822. Format of NetWare request buffer:
  4823. Offset    Size    Description    (Table 1113)
  4824.  00h    WORD    length of following data (max 47h)
  4825.  02h    BYTE    3Ch (subfunction "Scan Property")
  4826.  03h    WORD    (big-endian) type of object
  4827.  05h    BYTE    length of object's name (01h-2Fh)
  4828.  06h  N BYTEs    object name
  4829.     DWORD    (big-endian) sequence number
  4830.         FFFFFFFFh for first call
  4831.     BYTE    length of property's name (01h-0Fh)
  4832.       N BYTEs    property's name
  4833.  
  4834. Format of NetWare reply buffer:
  4835. Offset    Size    Description    (Table 1114)
  4836.  00h    WORD    (call) 0018h (length of following results buffer)
  4837.  02h 16 BYTEs    property name
  4838.  12h    BYTE    property flags
  4839.  13h    BYTE    property security levels
  4840.  14h    DWORD    (big-endian) sequence number
  4841.  18h    BYTE    property value flag (00h no, FFh yes)
  4842.  19h    BYTE    more properties (00h no, FFh yes)
  4843. --------N-21E3--SF3D-------------------------
  4844. INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE
  4845.     AH = E3h subfn 3Dh
  4846.     DS:SI -> request buffer (see #1116)
  4847.     ES:DI -> reply buffer (see #1117)
  4848. Return: AL = status (see #1115)
  4849. Desc:    retrieve one 128-byte segment of the specified property's value
  4850. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4851. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  4852.  
  4853. (Table 1115)
  4854. Values for NetWare function status:
  4855.  00h    successful
  4856.  96h    server out of memory
  4857.  E8h    not item property
  4858.  ECh    no such segment
  4859.  F0h    wildcard not allowed
  4860.  F1h    invalid bindery security level
  4861.  F8h    not permitted to write property
  4862.  F9h    not permitted to read property
  4863.  FBh    no such property
  4864.  FCh    no such object
  4865.  FEh    server bindery locked
  4866.  FFh    bindery failure
  4867. SeeAlso: #1111,#1120
  4868.  
  4869. Format of NetWare request buffer:
  4870. Offset    Size    Description    (Table 1116)
  4871.  00h    WORD    length of following data (max 44h)
  4872.  02h    BYTE    3Dh (subfunction "Read Property Value")
  4873.  03h    WORD    (big-endian) type of object
  4874.  05h    BYTE    length of object's name (01h-2Fh)
  4875.  06h  N BYTEs    object name
  4876.     BYTE    segment number (01h on first call, increment until done)
  4877.     BYTE    length of property's name (01h-0Fh)
  4878.       N BYTEs    property name
  4879.  
  4880. Format of NetWare reply buffer:
  4881. Offset    Size    Description    (Table 1117)
  4882.  00h    WORD    (call) 0082h (length of following results buffer)
  4883.  02h 128 BYTEs    property's value
  4884.  82h    BYTE    more segments (00h no, FFh yes)
  4885.  83h    BYTE    property's flags
  4886. --------N-21E3--SF3E-------------------------
  4887. INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE
  4888.     AH = E3h subfn 3Eh
  4889.     DS:SI -> request buffer (see #1118)
  4890.     ES:DI -> reply buffer (see #1119)
  4891. Return: AL = status (see #1115)
  4892. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4893. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  4894.  
  4895. Format of NetWare request buffer:
  4896. Offset    Size    Description    (Table 1118)
  4897.  00h    WORD    length of following data (max C5h)
  4898.  02h    BYTE    3Eh (subfunction "Write Property Value")
  4899.  03h    WORD    (big-endian) type of object
  4900.  05h    BYTE    length of object's name (01h-2Fh)
  4901.  06h  N BYTEs    object name
  4902.     BYTE    segment number (01h on first call, increment until done)
  4903.     BYTE    erase remaining segments (00h no, FFh yes)
  4904.     BYTE    length of property's name (01h-0Fh)
  4905.       N BYTEs    property name
  4906.     128 BYTEs    property value segment
  4907.  
  4908. Format of NetWare reply buffer:
  4909. Offset    Size    Description    (Table 1119)
  4910.  00h    WORD    (call) 0000h (no data returned)
  4911. --------N-21E3--SF3F-------------------------
  4912. INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD
  4913.     AH = E3h subfn 3Fh
  4914.     DS:SI -> request buffer (see #1121)
  4915.     ES:DI -> reply buffer (see #1119)
  4916. Return: AL = status (see #1120)
  4917. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4918. SeeAlso: AH=E3h/SF=40h
  4919.  
  4920. (Table 1120)
  4921. Values for NetWare function status:
  4922.  00h    successful
  4923.  96h    server out of memory
  4924.  F0h    wildcard not allowed
  4925.  FBh    no such property
  4926.  FCh    no such object
  4927.  FEh    server bindery locked
  4928.  FFh    bindery failure: no such object, bad password, no password for object,
  4929.       or invalid old password
  4930. SeeAlso: #1115,#1124
  4931.  
  4932. Format of NetWare request buffer:
  4933. Offset    Size    Description    (Table 1121)
  4934.  00h    WORD    length of following data (max 133h)
  4935.  02h    BYTE    3Fh (subfunction "Verify Bindery Object Password")
  4936.  03h    WORD    (big-endian) type of object
  4937.  05h    BYTE    length of object's name (01h-2Fh)
  4938.  06h  N BYTEs    object name
  4939.     BYTE    length of password (00h-7Fh)
  4940.       N BYTEs    password
  4941. --------N-21E3--SF40-------------------------
  4942. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD
  4943.     AH = E3h subfn 40h
  4944.     DS:SI -> request buffer (see #1122)
  4945.     ES:DI -> reply buffer (see #1123)
  4946. Return: AL = status (see #1120)
  4947. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4948. SeeAlso: AH=E3h/SF=3Fh,AH=E3h/SF=41h
  4949.  
  4950. Format of NetWare request buffer:
  4951. Offset    Size    Description    (Table 1122)
  4952.  00h    WORD    length of following data (max 133h)
  4953.  02h    BYTE    40h (subfunction "Change Bindery Object Password")
  4954.  03h    WORD    (big-endian) type of object
  4955.  05h    BYTE    length of object's name (01h-2Fh)
  4956.  06h  N BYTEs    object name
  4957.     BYTE    length of old password (00h-7Fh)
  4958.       N BYTEs    old password
  4959.     BYTE    length of new password (00h-7Fh)
  4960.       N BYTEs    new password
  4961.  
  4962. Format of NetWare reply buffer:
  4963. Offset    Size    Description    (Table 1123)
  4964.  00h    WORD    (call) 0000h (no data returned)
  4965. --------N-21E3--SF41-------------------------
  4966. INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET
  4967.     AH = E3h subfn 41h
  4968.     DS:SI -> request buffer (see #1125)
  4969.     ES:DI -> reply buffer (see #1123)
  4970. Return: AL = status (see #1124)
  4971. Desc:    add the specified object to a set property
  4972. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  4973. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  4974.  
  4975. (Table 1124)
  4976. Values for NetWare function status:
  4977.  00h    successful
  4978.  96h    server out of memory
  4979.  E9h    member already exists
  4980.  EAh    member does not exist
  4981.  EBh    not a group property
  4982.  F0h    wildcard not allowed
  4983.  F8h    can't write property
  4984.  F9h    not permitted to read property
  4985.  FBh    no such property
  4986.  FCh    no such object
  4987.  FEh    server bindery locked
  4988.  FFh    bindery failure
  4989. SeeAlso: #1120,#1135
  4990.  
  4991. Format of NetWare request buffer:
  4992. Offset    Size    Description    (Table 1125)
  4993.  00h    WORD    length of following data (max 75h)
  4994.  02h    BYTE    41h (subfunction "Add Bindery Object to Set")
  4995.  03h    WORD    (big-endian) type of object
  4996.  05h    BYTE    length of object's name
  4997.  06h  N BYTEs    object name
  4998.     BYTE    length of property name (01h-0Fh)
  4999.       N BYTEs    property name
  5000.     WORD    (big-endian) type of member object
  5001.     BYTE    length of member object's name
  5002.       N BYTEs    member object's name
  5003. --------N-21E3--SF42-------------------------
  5004. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET
  5005.     AH = E3h subfn 42h
  5006.     DS:SI -> request buffer (see #1126)
  5007.     ES:DI -> reply buffer (see #1127)
  5008. Return: AL = status (see #1124)
  5009. Desc:    delete the specified object from a set property
  5010. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5011. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  5012.  
  5013. Format of NetWare request buffer:
  5014. Offset    Size    Description    (Table 1126)
  5015.  00h    WORD    length of following data (max 75h)
  5016.  02h    BYTE    42h (subfunction "Delete Bindery Object from Set")
  5017.  03h    WORD    (big-endian) type of object
  5018.  05h    BYTE    length of object's name
  5019.  06h  N BYTEs    object name
  5020.     BYTE    length of property name (01h-0Fh)
  5021.       N BYTEs    property name
  5022.     WORD    (big-endian) type of member object
  5023.     BYTE    length of member object's name
  5024.       N BYTEs    member object's name
  5025.  
  5026. Format of NetWare reply buffer:
  5027. Offset    Size    Description    (Table 1127)
  5028.  00h    WORD    (call) 0000h (no data returned)
  5029. --------N-21E3--SF43-------------------------
  5030. INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET
  5031.     AH = E3h subfn 43h
  5032.     DS:SI -> request buffer (see #1128)
  5033.     ES:DI -> reply buffer (see #1127)
  5034. Return: AL = status (see #1124)
  5035. Desc:    determine whether the specified object is a member of the given set
  5036.       property
  5037. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5038.     the caller must have read access to the property
  5039. SeeAlso: AH=E3h/SF=41h,AH=E3h/SF=42h
  5040.  
  5041. Format of NetWare request buffer:
  5042. Offset    Size    Description    (Table 1128)
  5043.  00h    WORD    length of following data (max 75h)
  5044.  02h    BYTE    43h (subfunction "Is Bindery Object In Set")
  5045.  03h    WORD    (big-endian) type of object
  5046.  05h    BYTE    length of object's name
  5047.  06h  N BYTEs    object's name
  5048.     BYTE    length of property's name
  5049.       N BYTEs    property's name
  5050.     WORD    (big-endian) type of member object
  5051.     BYTE    length of member object's name
  5052.       N BYTEs    member object's name
  5053. --------N-21E3--SF44-------------------------
  5054. INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY
  5055.     AH = E3h subfn 44h
  5056.     DS:SI -> request buffer (see #1129)
  5057.     ES:DI -> reply buffer (see #1127)
  5058. Return: AL = status
  5059.         00h successful
  5060. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5061. SeeAlso: AH=E3h/SF=45h
  5062.  
  5063. Format of NetWare request buffer:
  5064. Offset    Size    Description    (Table 1129)
  5065.  00h    WORD    0001h (length of following data)
  5066.  02h    BYTE    44h (subfunction "Close Bindery")
  5067. --------N-21E3--SF45-------------------------
  5068. INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY
  5069.     AH = E3h subfn 45h
  5070.     DS:SI -> request buffer (see #1130)
  5071.     ES:DI -> reply buffer (see #1127)
  5072. Return: AL = status
  5073.         00h successful
  5074. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5075.     the bindery may only be opened by the supervisor or an object with
  5076.       equivalent privileges
  5077. SeeAlso: AH=E3h/SF=44h
  5078.  
  5079. Format of NetWare request buffer:
  5080. Offset    Size    Description    (Table 1130)
  5081.  00h    WORD    0001h (length of following data)
  5082.  02h    BYTE    45h (subfunction "Open Bindery")
  5083. --------N-21E3--SF46-------------------------
  5084. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL
  5085.     AH = E3h subfn 46h
  5086.     DS:SI -> request buffer (see #1131)
  5087.     ES:DI -> reply buffer (see #1132)
  5088. Return: AL = status
  5089.         00h successful
  5090. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5091.  
  5092. Format of NetWare request buffer:
  5093. Offset    Size    Description    (Table 1131)
  5094.  00h    WORD    0001h (length of following data)
  5095.  02h    BYTE    46h (subfunction "Get Bindery Access Level")
  5096.  
  5097. Format of NetWare reply buffer:
  5098. Offset    Size    Description    (Table 1132)
  5099.  00h    WORD    0005h (length of following buffer)
  5100.  02h    BYTE    security levels
  5101.  03h    DWORD    (big-endian) object ID
  5102. --------N-21E3--SF47-------------------------
  5103. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS
  5104.     AH = E3h subfn 47h
  5105.     DS:SI -> request buffer (see #1133)
  5106.     ES:DI -> reply buffer (see #1134)
  5107. Return: AL = status (00h,96h,F0h,F1h,FCh,FEh,FFh) (see #1135)
  5108. Desc:    iterate through the directories to which an object is a trustee
  5109. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  5110. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AH=E2h/SF=0Eh
  5111.  
  5112. Format of NetWare request buffer:
  5113. Offset    Size    Description    (Table 1133)
  5114.  00h    WORD    0008h (length of following data)
  5115.  02h    BYTE    47h (subfunction "Scan Bindery Object Trustee Paths")
  5116.  03h    BYTE    volume number (00h-1Fh)
  5117.  04h    WORD    (big-endian) last sequence number (FFFFh on first call)
  5118.  06h    DWORD    (big-endian) object ID
  5119.  
  5120. Format of NetWare reply buffer:
  5121. Offset    Size    Description    (Table 1134)
  5122.  00h    WORD    (call) length of following results buffer (max 107h)
  5123.  02h    WORD    (big-endian) next sequence number
  5124.  04h    DWORD    (big-endian) object ID
  5125.  08h    BYTE    trustee directory rights (see #1026 at AH=E2h/SF=03h)
  5126.  09h    BYTE    length of trustee path
  5127.  0Ah  N BYTEs    trustee path
  5128. --------N-21E3--SF64-------------------------
  5129. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE
  5130.     AH = E3h subfn 64h
  5131.     DS:SI -> request buffer (see #1136)
  5132.     ES:DI -> reply buffer (see #1137)
  5133. Return: AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh)
  5134.         (see #1135)
  5135. Notes:    this function is supported by Advanced NetWare 2.1+
  5136.     caller must be on a workstation with supervisor privileges
  5137. SeeAlso: AH=E3h/SF=65h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Bh
  5138.  
  5139. (Table 1135)
  5140. Values for NetWare function status:
  5141.  00h    successful
  5142.  96h    server out of memory
  5143.  99h    directory full
  5144.  9Bh    invalid directory handle
  5145.  9Ch    invalid path
  5146.  D0h    queue error
  5147.  D1h    no such queue
  5148.  D2h    no server for queue
  5149.  D3h    no queue rights
  5150.  D4h    queue full
  5151.  D5h    no queue job
  5152.  D6h    no job rights
  5153.  D7h    queue servicing error
  5154.  D8h    queue not active
  5155.  D9h    station is not a server
  5156.  DAh    queue halted
  5157.  DBh    too many queue servers
  5158.  EDh    property already exists
  5159.  EEh    object already exists
  5160.  EFh    invalid name
  5161.  F0h    wildcard not allowed
  5162.  F1h    invalid bindery security level
  5163.  F5h    not permitted to create object
  5164.  F7h    not permitted to create property
  5165.  FCh    no such object
  5166.  FEh    server bindery locked
  5167.  FFh    bindery failure
  5168. SeeAlso: #1124,#1171,#1572 at INT 2F/AX=7A20h/BX=0000h
  5169.  
  5170. Format of NetWare request buffer:
  5171. Offset    Size    Description    (Table 1136)
  5172.  00h    WORD    length of following data (max ABh)
  5173.  02h    BYTE    64h (subfunction "Create Queue")
  5174.  03h    WORD    (big-endian) queue type
  5175.  05h    BYTE    length of queue's name (01h-2Fh)
  5176.  06h  N BYTEs    queue's name
  5177.     BYTE    directory handle or 00h
  5178.     BYTE    length of path name (01h-76h)
  5179.       N BYTEs    path name of directory in which to create queue subdirectory
  5180.  
  5181. Format of NetWare reply buffer:
  5182. Offset    Size    Description    (Table 1137)
  5183.  00h    WORD    (call) 0004h (size of following results buffer)
  5184.  02h    DWORD    (big-endian) object ID of queue
  5185. --------N-21E3--SF65-------------------------
  5186. INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE
  5187.     AH = E3h subfn 65h
  5188.     DS:SI -> request buffer (see #1138)
  5189.     ES:DI -> reply buffer (see #1143)
  5190. Return: AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h)
  5191.         FFh hardware failure
  5192. Desc:    abort all active jobs, detach all job servers, remove all job entries,
  5193.       delete all job files, remove the queue object and its properties
  5194.       from the bindery, and delete the queue's subdirectory
  5195. Notes:    this function is supported by Advanced NetWare 2.1+
  5196.     caller must have SUPERVISOR privileges
  5197. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=70h
  5198.  
  5199. Format of NetWare request buffer:
  5200. Offset    Size    Description    (Table 1138)
  5201.  00h    WORD    0005h (length of following data)
  5202.  02h    BYTE    65h (subfunction "Destroy Queue")
  5203.  03h    DWORD    (big-endian) object ID of queue
  5204. --------N-21E3--SF66-------------------------
  5205. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS
  5206.     AH = E3h subfn 66h
  5207.     DS:SI -> request buffer (see #1139)
  5208.     ES:DI -> reply buffer (see #1140)
  5209. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #1135)
  5210. Notes:    this function is supported by Advanced NetWare 2.1+
  5211.     caller must be on a workstation which is security-equivalent to a
  5212.       member of the queue's Q_USERS or Q_OPERATORS properties
  5213. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=67h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  5214.  
  5215. Format of NetWare request buffer:
  5216. Offset    Size    Description    (Table 1139)
  5217.  00h    WORD    0005h (length of following data)
  5218.  02h    BYTE    66h (subfunction "Read Queue Current Status")
  5219.  03h    DWORD    (big-endian) object ID of queue
  5220.  
  5221. Format of NetWare reply buffer:
  5222. Offset    Size    Description    (Table 1140)
  5223.  00h    WORD    (call) 0085h (size of following results)
  5224.  02h    DWORD    (big-endian) object ID of queue
  5225.  06h    BYTE    status of queue (see #1141)
  5226.  07h    BYTE    number of jobs in queue (00h-FAh)
  5227.  08h    BYTE    number of servers attached to queue (00h-19h)
  5228.  09h 25 DWORDs    list of object IDs of attached servers
  5229.  6Dh 25 BYTEs    list of attached servers' stations
  5230.  86h    BYTE    (call) maximum number of servers to return
  5231.  
  5232. Bitfields for NetWare queue status:
  5233. Bit(s)    Description    (Table 1141)
  5234.  0    operator disabled addition of new jobs
  5235.  1    operator refuses additional job servers attaching
  5236.  2    operator disabled job servicing
  5237. --------N-21E3--SF67-------------------------
  5238. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS
  5239.     AH = E3h subfn 67h
  5240.     DS:SI -> request buffer (see #1142)
  5241.     ES:DI -> reply buffer (see #1143)
  5242. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see #1135)
  5243. Notes:    this function is supported by Advanced NetWare 2.1+
  5244.     caller must have operator privileges
  5245. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  5246.  
  5247. Format of NetWare request buffer:
  5248. Offset    Size    Description    (Table 1142)
  5249.  00h    WORD    0006h (length of following data)
  5250.  02h    BYTE    67h (subfunction "Set Queue Current Status")
  5251.  03h    DWORD    (big-endian) object ID of queue
  5252.  07h    BYTE    queue status (see #1141)
  5253.  
  5254. Format of NetWare reply buffer:
  5255. Offset    Size    Description    (Table 1143)
  5256.  00h    WORD    (call) 0000h (no results returned)
  5257. --------N-21E3--SF68-------------------------
  5258. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE
  5259.     AH = E3h subfn 68h
  5260.     DS:SI -> request buffer (see #1144)
  5261.     ES:DI -> reply buffer (see #1145)
  5262. Return: AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh)
  5263.         (see #1135)
  5264. Notes:    this function is supported by Advanced NetWare 2.1+
  5265.     caller must be on a workstation which is security-equivalent to a
  5266.       member of the queue's Q_USER property
  5267. SeeAlso: AX=B807h,AH=E0h"SPOOLING",AH=E3h/SF=69h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  5268.  
  5269. Format of NetWare request buffer:
  5270. Offset    Size    Description    (Table 1144)
  5271.  00h    WORD    0107h (length of following data)
  5272.  02h    BYTE    68h (subfunction "Close File and Start Queue Job")
  5273.  03h    DWORD    (big-endian) object ID of queue
  5274.  07h    BYTE    client station
  5275.  08h    BYTE    client task number
  5276.  09h    DWORD    (big-endian) object ID of client
  5277.  0Dh    DWORD    (big-endian) object ID of target server
  5278.         FFFFFFFh if any server acceptable
  5279.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  5280.         FFFFFFFFFFFFh to execute as soon as possible
  5281.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  5282.  1Dh    WORD    (big-endian) job number
  5283.  1Fh    WORD    (big-endian) job type
  5284.  21h    BYTE    job position
  5285.  22h    BYTE    job control flags
  5286.  23h 14 BYTEs    ASCIZ job file name
  5287.  31h  6 BYTEs    job file handle
  5288.  37h    BYTE    server station
  5289.  38h    BYTE    server task number
  5290.  39h    DWORD    (big-endian) object ID of server
  5291.  3Dh 50 BYTEs    ASCIZ job description string
  5292.  6Fh 152 BYTEs    client record area
  5293.  
  5294. Format of NetWare reply buffer:
  5295. Offset    Size    Description    (Table 1145)
  5296.  00h    WORD    (call) 0036h (size of following results buffer)
  5297.  02h    BYTE    client station
  5298.  03h    BYTE    client task number
  5299.  04h    DWORD    (big-endian) object ID of client
  5300.  08h    DWORD    (big-endian) object ID of target server
  5301.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  5302.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  5303.  18h    WORD    (big-endian) job number
  5304.  1Ah    WORD    (big-endian) job type
  5305.  1Ch    BYTE    job position
  5306.  1Dh    BYTE    job control flags
  5307.  1Eh 14 BYTEs    ASCIZ job file name
  5308.  2Ch  6 BYTEs    job file handle
  5309.  32h    BYTE    server station
  5310.  33h    BYTE    server task number
  5311.  34h    DWORD    (big-endian) object ID of server or 00000000h
  5312. --------N-21E3--SF69-------------------------
  5313. INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB
  5314.     AH = E3h subfn 69h
  5315.     DS:SI -> request buffer (see #1146)
  5316.     ES:DI -> reply buffer (see #1147)
  5317. Return: AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see #1135)
  5318. Notes:    this function is supported by Advanced NetWare 2.1+
  5319.     caller must be on the workstation which created the job
  5320. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  5321.  
  5322. Format of NetWare request buffer:
  5323. Offset    Size    Description    (Table 1146)
  5324.  00h    WORD    0007h (length of following data)
  5325.  02h    BYTE    69h (subfunction "Close File and Start Queue Job")
  5326.  03h    DWORD    (big-endian) object ID of queue
  5327.  07h    WORD    (big-endian) job number
  5328.  
  5329. Format of NetWare reply buffer:
  5330. Offset    Size    Description    (Table 1147)
  5331.  00h    WORD    (call) 0000h (no results returned)
  5332. --------N-21E3--SF6A-------------------------
  5333. INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE
  5334.     AH = E3h subfn 6Ah
  5335.     DS:SI -> request buffer (see #1148)
  5336.     ES:DI -> reply buffer (see #1147)
  5337. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #1135)
  5338. Notes:    this function is supported by Advanced NetWare 2.1+
  5339.     caller must have created the job or be an operator
  5340. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  5341.  
  5342. Format of NetWare request buffer:
  5343. Offset    Size    Description    (Table 1148)
  5344.  00h    WORD    0007h (length of following data)
  5345.  02h    BYTE    6Ah (subfunction "Remove Job From Queue")
  5346.  03h    DWORD    (big-endian) object ID of queue
  5347.  07h    WORD    (big-endian) job number
  5348. --------N-21E3--SF6B-------------------------
  5349. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST
  5350.     AH = E3h subfn 6Bh
  5351.     DS:SI -> request buffer (see #1149)
  5352.     ES:DI -> reply buffer (see #1150)
  5353. Return: AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see #1135)
  5354. Notes:    this function is supported by Advanced NetWare 2.1+
  5355.     caller must be on a workstation which is security-equivalent to a
  5356.       member of the Q_USERS or Q_OPERATORS properties
  5357. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  5358.  
  5359. Format of NetWare request buffer:
  5360. Offset    Size    Description    (Table 1149)
  5361.  00h    WORD    0005h (length of following data)
  5362.  02h    BYTE    6Bh (subfunction "Get Queue Job List")
  5363.  03h    DWORD    (big-endian) object ID of queue
  5364.  
  5365. Format of NetWare reply buffer:
  5366. Offset    Size    Description    (Table 1150)
  5367.  00h    WORD    (call) size of following results buffer (max 1F6h)
  5368.  02h    WORD    (big-endian) job count
  5369.  04h  N WORDs    (big-endian) list of job numbers by position in queue
  5370.     WORD    maximum job numbers
  5371. --------N-21E3--SF6C-------------------------
  5372. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY
  5373.     AH = E3h subfn 6Ch
  5374.     DS:SI -> request buffer (see #1151)
  5375.     ES:DI -> reply buffer (see #1152)
  5376. Return: AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see #1135)
  5377. Notes:    this function is supported by Advanced NetWare 2.1+
  5378.     caller must be on a workstation which is security-equivalent to a
  5379.       member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  5380. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  5381.  
  5382. Format of NetWare request buffer:
  5383. Offset    Size    Description    (Table 1151)
  5384.  00h    WORD    0007h (length of following data)
  5385.  02h    BYTE    6Ch (subfunction "Read Queue Job Entry")
  5386.  03h    DWORD    (big-endian) object ID of queue
  5387.  07h    WORD    (big-endian) job number
  5388.  
  5389. Format of NetWare reply buffer:
  5390. Offset    Size    Description    (Table 1152)
  5391.  00h    WORD    (call) 0100h (size of following results)
  5392.  02h    BYTE    client station number
  5393.  03h    BYTE    client task number
  5394.  04h    DWORD    object ID of client
  5395.  08h    DWORD    (big-endian) object ID of target server
  5396.         FFFFFFFFh if any server acceptable
  5397.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  5398.         FFFFFFFFFFFFh if serviced as soon as possible
  5399.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  5400.  18h    WORD    (big-endian) job number
  5401.  1Ah    WORD    (big-endian) job type
  5402.  1Ch    BYTE    job position
  5403.  1Dh    BYTE    job control flags (see #1153)
  5404.  1Eh 14 BYTEs    ASCIZ job filename
  5405.  2Ch  6 BYTEs    job file handle
  5406.  32h    BYTE    server station
  5407.  33h    BYTE    server task number
  5408.  34h    DWORD    object ID of server
  5409.  38h 50 BYTEs    ASCIZ job description string
  5410.  6Ah 152 BYTEs    client record area
  5411.  
  5412. Bitfields for NetWare job control flags:
  5413. Bit(s)    Description    (Table 1153)
  5414.  3    job will be serviced automatically if connection broken
  5415.  4    job remains in queue after server aborts job
  5416.  5    client has not filled associated job file
  5417.  6    User Hold--job advances, but cannot be serviced until this is
  5418.       cleared by user or operator
  5419.  7    Operator Hold--job advances, but cannot be serviced until this is
  5420.       cleared by an operator
  5421. --------N-21E3--SF6D-------------------------
  5422. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY
  5423.     AH = E3h subfn 6Dh
  5424.     DS:SI -> request buffer (see #1154)
  5425.     ES:DI -> reply buffer (see #1156)
  5426. Return: AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see #1135)
  5427. Notes:    this function is supported by Advanced NetWare 2.1+
  5428.     caller must be an operator or the user who created the job
  5429. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Eh
  5430.  
  5431. Format of NetWare request buffer:
  5432. Offset    Size    Description    (Table 1154)
  5433.  00h    WORD    0105h (length of following data)
  5434.  02h    BYTE    6Dh (subfunction "Change Queue Job Entry")
  5435.  03h    DWORD    (big-endian) object ID of queue
  5436.  07h    BYTE    client station number
  5437.  08h    BYTE    client task number
  5438.  09h    DWORD    (big-endian) object ID of client
  5439.  0Dh    DWORD    (big-endian) object ID of target server
  5440.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  5441.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  5442.  1Dh    WORD    (big-endian) job number
  5443.  1Fh    WORD    (big-endian) job type
  5444.  21h    BYTE    job position
  5445.  22h    BYTE    job control flags (see #1153)
  5446.  23h 14 BYTEs    ASCIZ job filename
  5447.  31h  6 BYTEs    job file handle
  5448.  37h    BYTE    server station
  5449.  38h    BYTE    server task number
  5450.  39h    DWORD    object ID of server
  5451.  3Dh 50 BYTEs    ASCIZ job description string
  5452.  6Fh 152 BYTEs    client record area
  5453. --------N-21E3--SF6E-------------------------
  5454. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION
  5455.     AH = E3h subfn 6Eh
  5456.     DS:SI -> request buffer (see #1155)
  5457.     ES:DI -> reply buffer (see #1156)
  5458. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see #1135)
  5459. Notes:    this function is supported by Advanced NetWare 2.1+
  5460.     caller must be an operator
  5461.     if the specified position is greater than the number of jobs in the
  5462.       queue, the job is placed at the end of the queue
  5463. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Dh
  5464.  
  5465. Format of NetWare request buffer:
  5466. Offset    Size    Description    (Table 1155)
  5467.  00h    WORD    0008h (length of following data)
  5468.  02h    BYTE    6Eh (subfunction "Change Queue Job Position")
  5469.  03h    DWORD    (big-endian) object ID of queue
  5470.  07h    WORD    (big-endian) job number
  5471.  09h    BYTE    new position in queue (01h-FAh)
  5472.  
  5473. Format of NetWare reply buffer:
  5474. Offset    Size    Description    (Table 1156)
  5475.  00h    WORD    (call) 0000h (no results returned)
  5476. --------N-21E3--SF6F-------------------------
  5477. INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE
  5478.     AH = E3h subfn 6Fh
  5479.     DS:SI -> request buffer (see #1157)
  5480.     ES:DI -> reply buffer (see #1156)
  5481. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh)
  5482.         (see also AH=E3h/SF=64h)
  5483.         FFh bindery failure, or no such property, or no such member
  5484. Desc:    attach the calling job server to the specified queue
  5485. Notes:    this function is supported by Advanced NetWare 2.1+
  5486.     a queue may have up to 25 job servers attached
  5487.     the calling workstation must be security-equivalent to a member of the
  5488.       queue's Q_SERVERS property
  5489. SeeAlso: AH=E3h/SF=70h,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  5490.  
  5491. Format of NetWare request buffer:
  5492. Offset    Size    Description    (Table 1157)
  5493.  00h    WORD    0005h (length of following data)
  5494.  02h    BYTE    6Fh (subfunction "Attach Queue Server To Queue")
  5495.  03h    DWORD    (big-endian) object ID of queue
  5496. --------N-21E3--SF70-------------------------
  5497. INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE
  5498.     AH = E3h subfn 70h
  5499.     DS:SI -> request buffer (see #1158)
  5500.     ES:DI -> reply buffer (see #1156)
  5501. Return: AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see #1135)
  5502. Desc:    remove the calling job server from the specified queue's list of
  5503.       servers
  5504. Notes:    this function is supported by Advanced NetWare 2.1+
  5505.     the caller must have previously attached itself to the queue
  5506. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  5507.  
  5508. Format of NetWare request buffer:
  5509. Offset    Size    Description    (Table 1158)
  5510.  00h    WORD    0005h (length of following data)
  5511.  02h    BYTE    70h (subfunction "Detach Queue Server From Queue")
  5512.  03h    DWORD    (big-endian) object ID of queue
  5513. --------N-21E3--SF71-------------------------
  5514. INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE
  5515.     AH = E3h subfn 71h
  5516.     DS:SI -> request buffer (see #1159)
  5517.     ES:DI -> reply buffer (see #1145)
  5518. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  5519.         (see #1135)
  5520. Notes:    this function is supported by Advanced NetWare 2.1+
  5521.     the caller must be on a workstation which is security-equivalent to a
  5522.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  5523. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  5524.  
  5525. Format of NetWare request buffer:
  5526. Offset    Size    Description    (Table 1159)
  5527.  00h    WORD    0007h (length of following data)
  5528.  02h    BYTE    71h (subfunction "Service Queue Job and Open File")
  5529.  03h    DWORD    (big-endian) object ID of queue
  5530.  07h    WORD    (big-endian) target job type
  5531.         FFFFh any
  5532. --------N-21E3--SF72-------------------------
  5533. INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE
  5534.     AH = E3h subfn 72h
  5535.     DS:SI -> request buffer (see #1160)
  5536.     ES:DI -> reply buffer (see #1162)
  5537. Return: AL = status (00h,96h,D0h,D1h,D6h) (see #1135)
  5538. Desc:    inform the Queue Management System (QMS) that the queue server has
  5539.       completed a job
  5540. Notes:    this function is supported by Advanced NetWare 2.1+
  5541.     the caller must be a job server which has previously obtained a job
  5542.       for servicing
  5543. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=73h,AH=E3h/SF=76h
  5544.  
  5545. Format of NetWare request buffer:
  5546. Offset    Size    Description    (Table 1160)
  5547.  00h    WORD    000Bh (length of following data)
  5548.  02h    BYTE    72h (subfunction "Finish Servicing Queue Job and File")
  5549.  03h    DWORD    (big-endian) object ID of queue
  5550.  07h    WORD    (big-endian) job number
  5551.  09h    DWORD    (big-endian) charge
  5552. --------N-21E3--SF73-------------------------
  5553. INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE
  5554.     AH = E3h subfn 73h
  5555.     DS:SI -> request buffer (see #1161)
  5556.     ES:DI -> reply buffer (see #1162)
  5557. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #1135)
  5558. Desc:    inform the Queue Management System (QMS) that the queue server is
  5559.       unable to service a previously-accepted job
  5560. Notes:    this function is supported by Advanced NetWare 2.1+
  5561.     this is an old version of the call (see AH=E3h/SF=84h)
  5562.     only a job server which previously accepted a job for servicing may
  5563.       call this function
  5564. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=76h,AH=E3h/SF=84h
  5565.  
  5566. Format of NetWare request buffer:
  5567. Offset    Size    Description    (Table 1161)
  5568.  00h    WORD    0007h (length of following data)
  5569.  02h    BYTE    73h (subfunction "Abort Servicing Queue Job and File")
  5570.  03h    DWORD    (big-endian) object ID of queue
  5571.  07h    WORD    (big-endian) job number
  5572.  
  5573. Format of NetWare reply buffer:
  5574. Offset    Size    Description    (Table 1162)
  5575.  00h    WORD    (call) 0000h (no results returned)
  5576. --------N-21E3--SF74-------------------------
  5577. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS
  5578.     AH = E3h subfn 74h
  5579.     DS:SI -> request buffer (see #1163)
  5580.     ES:DI -> reply buffer (see #1162)
  5581. Return: AL = status (00h,96h,D0h,D1h,D5h,D9h) (see #1135)
  5582. Desc:    temporarily assume the login identity of the client submitting the
  5583.       job being serviced
  5584. Notes:    this function is supported by Advanced NetWare 2.1+
  5585.     caller must be a job server which has obtained a job for servicing
  5586. SeeAlso: AH=E3h/SF=75h
  5587.  
  5588. Format of NetWare request buffer:
  5589. Offset    Size    Description    (Table 1163)
  5590.  00h    WORD    0007h (length of following data)
  5591.  02h    BYTE    74h (subfunction "Change To Client Rights")
  5592.  03h    DWORD    (big-endian) object ID of queue
  5593.  07h    WORD    (big-endian) job number
  5594. --------N-21E3--SF75-------------------------
  5595. INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS
  5596.     AH = E3h subfn 75h
  5597.     DS:SI -> request buffer (see #1164)
  5598.     ES:DI -> reply buffer (see #1162)
  5599. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh) (see #1135)
  5600. Desc:    restore server's own identity after assuming the login identity of the
  5601.       client submitting the job being serviced
  5602. Notes:    this function is supported by Advanced NetWare 2.1+
  5603.     caller must be a job server which has previously changed its identity
  5604. SeeAlso: AH=E3h/SF=74h
  5605.  
  5606. Format of NetWare request buffer:
  5607. Offset    Size    Description    (Table 1164)
  5608.  00h    WORD    0001h (length of following data)
  5609.  02h    BYTE    75h (subfunction "Change To Client Rights")
  5610. --------N-21E3--SF76-------------------------
  5611. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS
  5612.     AH = E3h subfn 76h
  5613.     DS:SI -> request buffer (see #1165)
  5614.     ES:DI -> reply buffer (see #1166)
  5615. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see #1135)
  5616. Notes:    this function is supported by Advanced NetWare 2.1+
  5617.     caller must be on a workstation which is security-equivalent to a
  5618.       member of the Q_USERS or Q_OPERATORS properties
  5619. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=77h,AH=E3h/SF=78h
  5620.  
  5621. Format of NetWare request buffer:
  5622. Offset    Size    Description    (Table 1165)
  5623.  00h    WORD    000Ah (length of following data)
  5624.  02h    BYTE    76h (subfunction "Read Queue Server Current Status")
  5625.  03h    DWORD    (big-endian) object ID of queue
  5626.  07h    DWORD    (big-endian) object ID of server
  5627.  0Bh    BYTE    server station
  5628.  
  5629. Format of NetWare reply buffer:
  5630. Offset    Size    Description    (Table 1166)
  5631.  00h    WORD    (call) 0040h (size of following results)
  5632.  02h 64 BYTEs    server status record (format depends on server)
  5633.         first four bytes should contain estimated "price" for an
  5634.           average job
  5635. --------N-21E3--SF77-------------------------
  5636. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE SERVER CURRENT STATUS
  5637.     AH = E3h subfn 77h
  5638.     DS:SI -> request buffer (see #1167)
  5639.     ES:DI -> reply buffer (see #1168)
  5640. Return: AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see #1135)
  5641. Notes:    this function is supported by Advanced NetWare 2.1+
  5642.     caller must be a job server which has attached itself to the queue
  5643. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=76h,AH=E3h/SF=78h
  5644.  
  5645. Format of NetWare request buffer:
  5646. Offset    Size    Description    (Table 1167)
  5647.  00h    WORD    0045h (length of following data)
  5648.  02h    BYTE    77h (subfunction "Set Queue Server Current Status")
  5649.  03h    DWORD    (big-endian) object ID of queue
  5650.  07h 64 BYTEs    server status record (format depends on server)
  5651.         first four bytes should contain estimated "price" for an
  5652.           average job
  5653.  
  5654. Format of NetWare reply buffer:
  5655. Offset    Size    Description    (Table 1168)
  5656.  00h    WORD    (call) 0000h (no results returned)
  5657. --------N-21E3--SF78-------------------------
  5658. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE
  5659.     AH = E3h subfn 78h
  5660.     DS:SI -> request buffer (see #1169)
  5661.     ES:DI -> reply buffer (see #1170)
  5662. Return: AL = status (see also #1135)
  5663.         00h successful
  5664. Notes:    this function is supported by Advanced NetWare 2.1+
  5665.     caller must be on a workstation which is security-equivalent to a
  5666.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  5667. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=71h
  5668.  
  5669. Format of NetWare request buffer:
  5670. Offset    Size    Description    (Table 1169)
  5671.  00h    WORD    0007h (length of following data)
  5672.  02h    BYTE    78h (subfunction "Get Queue Job's File Size")
  5673.  03h    DWORD    (big-endian) object ID of queue
  5674.  07h    WORD    (big-endian) job number
  5675.  
  5676. Format of NetWare reply buffer:
  5677. Offset    Size    Description    (Table 1170)
  5678.  00h    WORD    (call) 000Ah (size of following results)
  5679.  02h    DWORD    (big-endian) object ID of queue
  5680.  06h    WORD    (big-endian) job number
  5681.  08h    DWORD    (big-endian) size of job file in bytes
  5682. --------N-21E3--SF84-------------------------
  5683. INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB
  5684.     AH = E3h subfn 84h
  5685.     DS:SI -> request buffer (see #2692)
  5686.     ES:DI -> reply buffer (see #2693)
  5687. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see #1135)
  5688. Desc:    inform the Queue Management System (QMS) that the queue server is
  5689.       unable to service a previously-accepted job
  5690. Notes:    this function is supported by Advanced NetWare 3.1+
  5691.     this variant of Abort Servicing Queue Job allows use of the high
  5692.       connection byte in the NCP packet header, unlike AH=E3h/SF=73h
  5693. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  5694.  
  5695. Format of NetWare request buffer:
  5696. Offset    Size    Description    (Table 2692)
  5697.  00h    WORD    0007h (length of following data)
  5698.  02h    BYTE    84h (subfunction "Abort Servicing Queue Job")
  5699.  03h    DWORD    (big-endian) object ID of queue
  5700.  07h    WORD    (big-endian) job number
  5701.  
  5702. Format of NetWare reply buffer:
  5703. Offset    Size    Description    (Table 2693)
  5704.  00h    WORD    (call) 0000h (no results returned)
  5705. --------N-21E3--SF96-------------------------
  5706. INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS
  5707.     AH = E3h subfn 96h
  5708.     DS:SI -> request buffer (see #1172)
  5709.     ES:DI -> reply buffer (see #1173)
  5710. Return: AL = status (00h,C0h,C1h) (see #1171)
  5711. Note:    this function is supported by Advanced NetWare 2.1+
  5712. SeeAlso: AH=E3h/SF=97h,AH=E3h/SF=98h,AH=E3h/SF=99h
  5713.  
  5714. (Table 1171)
  5715. Values for NetWare function status:
  5716.  00h    successful
  5717.  C0h    no account privileges
  5718.  C1h    no account balance
  5719.  C2h    credit limit exceeded
  5720.  C3h    too many holds on account
  5721. SeeAlso: #1135,#1181
  5722.  
  5723. Format of NetWare request buffer:
  5724. Offset    Size    Description    (Table 1172)
  5725.  00h    WORD    length of following data (max 33h)
  5726.  02h    BYTE    96h (subfunction "Get Account Status")
  5727.  03h    WORD    (big-endian) type of bindery object
  5728.  05h    BYTE    length of object name (01h to 2Fh)
  5729.  06h  N BYTEs    object name
  5730.  
  5731. Format of NetWare reply buffer:
  5732. Offset    Size    Description    (Table 1173)
  5733.  00h    WORD    (call) length of following buffer space
  5734.  02h    DWORD    (big-endian) account balance
  5735.  06h    DWORD    (big-endian) credit limit
  5736.         signed number indicating lowest allowable account balance
  5737.  0Ah 120 BYTEs    reserved
  5738.  82h    DWORD    (big-endian) object ID, server 1
  5739.  86h    DWORD    (big-endian) hold amount, server 1
  5740.     ...
  5741.  F8h    DWORD    (big-endian) object ID, server 16
  5742.  FCh    DWORD    (big-endian) hold amount, server 16
  5743. Note:    the reply buffer lists the servers which have placed holds on a portion
  5744.       of the account balance, and the amount reserved by each
  5745. --------N-21E3--SF97-------------------------
  5746. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE
  5747.     AH = E3h subfn 97h
  5748.     DS:SI -> request buffer (see #1174)
  5749.     ES:DI -> reply buffer (see #1176)
  5750. Return: AL = status (00h,C0h-C2h) (see #1171)
  5751. Note:    this function is supported by Advanced NetWare 2.1+
  5752. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=98h
  5753.  
  5754. Format of NetWare request buffer:
  5755. Offset    Size    Description    (Table 1174)
  5756.  00h    WORD    length of following data (max 13Fh)
  5757.  02h    BYTE    97h (subfunction "Submit Account Charge")
  5758.  03h    WORD    (big-endian) service type
  5759.  05h    DWORD    (big-endian) amount to be charged to account
  5760.  09h    DWORD    (big-endian) amount of prior hold to be cancelled
  5761.  0Dh    WORD    (big-endian) type of bindery object
  5762.  0Fh    WORD    (big-endian) type of comment
  5763.         8000h-FFFFh reserved for experimental use
  5764.  11h    BYTE    length of object's name
  5765.  12h  N BYTEs    object name
  5766.     BYTE    length of comment
  5767.       N BYTEs    comment
  5768. --------N-21E3--SF98-------------------------
  5769. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD
  5770.     AH = E3h subfn 98h
  5771.     DS:SI -> request buffer (see #1175)
  5772.     ES:DI -> reply buffer (see #1176)
  5773. Return: AL = status (00h,C0h-C3h) (see #1171)
  5774. Note:    this function is supported by Advanced NetWare 2.1+
  5775. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=97h
  5776.  
  5777. Format of NetWare request buffer:
  5778. Offset    Size    Description    (Table 1175)
  5779.  00h    WORD    length of following data (max 37h)
  5780.  02h    BYTE    98h (subfunction "Submit Account Hold")
  5781.  03h    DWORD    (big-endian) amount of account balance to reserve
  5782.  07h    WORD    (big-endian) type of bindery object
  5783.  09h    BYTE    length of object's name
  5784.  0Ah  N BYTEs    object name
  5785.  
  5786. Format of NetWare reply buffer:
  5787. Offset    Size    Description    (Table 1176)
  5788.  00h    WORD    0000h (no data returned)
  5789. --------N-21E3--SF99-------------------------
  5790. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE
  5791.     AH = E3h subfn 99h
  5792.     DS:SI -> request buffer (see #1177)
  5793.     ES:DI -> reply buffer (see #1176)
  5794. Return: AL = status (00h,C0h) (see #1171)
  5795. Note:    this function is supported by Advanced NetWare 2.1+
  5796. SeeAlso: AH=E3h/SF=96h
  5797.  
  5798. Format of NetWare request buffer:
  5799. Offset    Size    Description    (Table 1177)
  5800.  00h    WORD    length of following data (max 137h)
  5801.  02h    BYTE    99h (subfunction "Submit Account Note")
  5802.  03h    WORD    (big-endian) type of service
  5803.  05h    WORD    (big-endian) type of bindery object
  5804.  07h    WORD    (big-endian) type of comment
  5805.         8000h-FFFFh reserved for experimental use
  5806.  09h    BYTE    length of object's name
  5807.  0Ah  N BYTEs    object name
  5808.     BYTE    length of comment
  5809.       N BYTEs    comment
  5810. --------N-21E3--SFC8-------------------------
  5811. INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES
  5812.     AH = E3h subfn C8h
  5813.     DS:SI -> request buffer (see #1178)
  5814.     ES:DI -> reply buffer (see #1176)
  5815. Return: AL = status (00h,C6h) (see #1181)
  5816. Desc:    determine whether the caller is a console operator
  5817. Notes:    this function is supported by Advanced NetWare 2.1+
  5818.     NetWare determines console privileges by checking the file server's
  5819.       OPERATOR property for the caller's object ID
  5820. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  5821.  
  5822. Format of NetWare request buffer:
  5823. Offset    Size    Description    (Table 1178)
  5824.  00h    WORD    0001h (length of following data)
  5825.  02h    BYTE    C8h (subfunction "Check Console Privileges")
  5826. --------N-21E3--SFC9-------------------------
  5827. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS
  5828.     AH = E3h subfn C9h
  5829.     DS:SI -> request buffer (see #1179)
  5830.     ES:DI -> reply buffer (see #1180)
  5831. Return: AL = status
  5832.         00h successful
  5833. Notes:    this function is supported by Advanced NetWare 2.1+
  5834.     the calling workstation must be attached to the file server
  5835. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E8h
  5836.  
  5837. Format of NetWare request buffer:
  5838. Offset    Size    Description    (Table 1179)
  5839.  00h    WORD    0001h (length of following data)
  5840.  02h    BYTE    C9h (subfunction "Get File Server Description Strings")
  5841.  
  5842. Format of NetWare reply buffer:
  5843. Offset    Size    Description    (Table 1180)
  5844.  00h    WORD    (call) 0200h (size of following results buffer)
  5845.  02h    var    ASCIZ name of company distributing this copy of NetWare
  5846.     var    ASCIZ version and revision
  5847.       9 BYTEs    ASCIZ revision date (mm/dd/yy)
  5848.     var    ASCIZ copyright notice
  5849. --------N-21E3--SFCA-------------------------
  5850. INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME
  5851.     AH = E3h subfn CAh
  5852.     DS:SI -> request buffer (see #1182)
  5853.     ES:DI -> reply buffer (see #1184)
  5854. Return: AL = status (00h,C6h) (see #1181)
  5855. Notes:    this function is supported by Advanced NetWare 2.1+
  5856.     the calling workstation must have console operator privileges
  5857. SeeAlso: AH=2Bh,AH=2Dh,AH=E3h/SF=C8h,AH=E7h
  5858.  
  5859. (Table 1181)
  5860. Values for NetWare function status:
  5861.  00h    successful
  5862.  C6h    no console rights
  5863. SeeAlso: #1171,#1195
  5864.  
  5865. Format of NetWare request buffer:
  5866. Offset    Size    Description    (Table 1182)
  5867.  00h    WORD    0007h (length of following data)
  5868.  02h    BYTE    CAh (subfunction "Set File Server Date And Time")
  5869.  03h    BYTE    year (00-79 = 2000-2079, 80-99 = 1980-1999)
  5870.  04h    BYTE    month (1-12)
  5871.  05h    BYTE    day (1-31)
  5872.  06h    BYTE    hour (0-23)
  5873.  07h    BYTE    minute
  5874.  08h    BYTR    second
  5875. --------N-21E3--SFCB-------------------------
  5876. INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN
  5877.     AH = E3h subfn CBh
  5878.     DS:SI -> request buffer (see #1183)
  5879.     ES:DI -> reply buffer (see #1184)
  5880. Return: AL = status (00h,C6h) (see #1181)
  5881. Notes:    this function is supported by Advanced NetWare 2.1+
  5882.     the calling workstation must have console operator privileges
  5883. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CCh,AH=E3h/SF=D3h
  5884.  
  5885. Format of NetWare request buffer:
  5886. Offset    Size    Description    (Table 1183)
  5887.  00h    WORD    0001h (length of following data)
  5888.  02h    BYTE    CBh (subfunction "Disable File Server Login")
  5889.  
  5890. Format of NetWare reply buffer:
  5891. Offset    Size    Description    (Table 1184)
  5892.  00h    WORD    (call) 0000h (no results returned)
  5893. --------N-21E3--SFCC-------------------------
  5894. INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN
  5895.     AH = E3h subfn CCh
  5896.     DS:SI -> request buffer (see #1185)
  5897.     ES:DI -> reply buffer (see #1184)
  5898. Return: AL = status (00h,C6h) (see #1181)
  5899. Notes:    this function is supported by Advanced NetWare 2.1+
  5900.     the calling workstation must have console operator privileges
  5901. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh
  5902.  
  5903. Format of NetWare request buffer:
  5904. Offset    Size    Description    (Table 1185)
  5905.  00h    WORD    0001h (length of following data)
  5906.  02h    BYTE    CCh (subfunction "Enable File Server Login")
  5907. --------N-21E3--SFCD-------------------------
  5908. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS
  5909.     AH = E3h subfn CDh
  5910.     DS:SI -> request buffer (see #1186)
  5911.     ES:DI -> reply buffer (see #1187)
  5912. Return: AL = status (00h,C6h) (see #1181)
  5913. Notes:    this function is supported by Advanced NetWare 2.1+
  5914.     the calling workstation must have console operator privileges
  5915. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CCh
  5916.  
  5917. Format of NetWare request buffer:
  5918. Offset    Size    Description    (Table 1186)
  5919.  00h    WORD    0001h (length of following data)
  5920.  02h    BYTE    CDh (subfunction "Get File Server Login Status")
  5921.  
  5922. Format of NetWare reply buffer:
  5923. Offset    Size    Description    (Table 1187)
  5924.  00h    WORD    (call) 0001h (size of following results buffer)
  5925.  02h    BYTE    login state (00h disabled, 01h enabled)
  5926. --------N-21E3--SFCE-------------------------
  5927. INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES
  5928.     AH = E3h subfn CEh
  5929.     DS:SI -> request buffer (see #1188)
  5930.     ES:DI -> reply buffer (see #1190)
  5931. Return: AL = status (00h,C6h) (see #1181)
  5932. Desc:    all files marked for deletion on the file server are purged, regardless
  5933.       of which workstation actually erased them
  5934. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  5935.       Alloy NTNX
  5936.     the calling workstation must have console operator privileges
  5937. SeeAlso: AH=13h,AH=E2h/SF=10h,AH=E3h/SF=C8h,AX=F244h
  5938.  
  5939. Format of NetWare request buffer:
  5940. Offset    Size    Description    (Table 1188)
  5941.  00h    WORD    0001h (length of following data)
  5942.  02h    BYTE    CEh (subfunction "Purge All Erased Files")
  5943. --------N-21E3--SFCF-------------------------
  5944. INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING
  5945.     AH = E3h subfn CFh
  5946.     DS:SI -> request buffer (see #1189)
  5947.     ES:DI -> reply buffer (see #1190)
  5948. Return: AL = status (00h,C6h) (see #1181)
  5949. Notes:    this function is supported by Advanced NetWare 2.1+
  5950.     the calling workstation must have console operator privileges
  5951. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D0h
  5952.  
  5953. Format of NetWare request buffer:
  5954. Offset    Size    Description    (Table 1189)
  5955.  00h    WORD    0001h (length of following data)
  5956.  02h    BYTE    CFh (subfunction "Disable Transaction Tracking")
  5957.  
  5958. Format of NetWare reply buffer:
  5959. Offset    Size    Description    (Table 1190)
  5960.  00h    WORD    (call) 0000h (no results returned)
  5961. --------N-21E3--SFD0-------------------------
  5962. INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING
  5963.     AH = E3h subfn D0h
  5964.     DS:SI -> request buffer (see #1191)
  5965.     ES:DI -> reply buffer (see #1190)
  5966. Return: AL = status (00h,C6h) (see #1195)
  5967. Desc:    restart transaction tracking after being stopped either explicitly by
  5968.       AH=E3h/SF=CFh or automatically due to a full transaction volume
  5969. Notes:    this function is supported by Advanced NetWare 2.1+
  5970.     the calling workstation must have console operator privileges
  5971. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh
  5972.  
  5973. Format of NetWare request buffer:
  5974. Offset    Size    Description    (Table 1191)
  5975.  00h    WORD    0001h (length of following data)
  5976.  02h    BYTE    D0h (subfunction "Enable Transaction Tracking")
  5977. --------N-21E3--SFD1-------------------------
  5978. INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST
  5979.     AH = E3h subfn D1h
  5980.     DS:SI -> request buffer (see #1192)
  5981.     ES:DI -> reply buffer (see #1194)
  5982. Return: AL = status (00h,C6h) (see #1195)
  5983. Notes:    this function is supported by Advanced NetWare 2.1+
  5984.     the calling workstation must have console operator privileges
  5985.     the broadcast message will not be received by workstations which have
  5986.       disabled broadcasts with AH=E1h/SF=02h
  5987. SeeAlso: AH=E1h/SF=02h,AH=E1h/SF=09h,AH=E3h/SF=C8h,AH=E3h/SF=D3h
  5988.  
  5989. Format of NetWare request buffer:
  5990. Offset    Size    Description    (Table 1192)
  5991.  00h    WORD    length of following data (max A2h)
  5992.  02h    BYTE    D1h (subfunction "Send Console Broadcast")
  5993.  03h    BYTE    number of connections to receive message
  5994.         00h = all, else specific list below
  5995.  04h  N BYTEs    connection list
  5996.     BYTE    length of message (max 3Ch)
  5997.       N BYTEs    message
  5998. --------N-21E3--SFD2-------------------------
  5999. INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER
  6000.     AH = E3h subfn D2h
  6001.     DS:SI -> request buffer (see #1193)
  6002.     ES:DI -> reply buffer (see #1194)
  6003. Return: AL = status (00h,C6h) (see #1195)
  6004. Desc:    close the open files and release all file locks for a connection,
  6005.       abort transactions if a TTS file server, and detach from the file
  6006.       server
  6007. Notes:    this function is supported by Advanced NetWare 2.1+
  6008.     the caller must have SUPERVISOR privileges
  6009. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  6010.  
  6011. Format of NetWare request buffer:
  6012. Offset    Size    Description    (Table 1193)
  6013.  00h    WORD    0002h (length of following data)
  6014.  02h    BYTE    D2h (subfunction "Clear Connection Number")
  6015.  03h    BYTE    connection number
  6016.  
  6017. Format of NetWare reply buffer:
  6018. Offset    Size    Description    (Table 1194)
  6019.  00h    WORD    (call) 0000h (no results returned)
  6020. --------N-21E3--SFD3-------------------------
  6021. INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER
  6022.     AH = E3h subfn D3h
  6023.     DS:SI -> request buffer (see #1196)
  6024.     ES:DI -> reply buffer (see #1194)
  6025. Return: AL = status (00h,C6h,FFh) (see #1195)
  6026. Desc:    take down the file server
  6027. Notes:    this function is supported by Advanced NetWare 2.1+
  6028.     the calling workstation must have SUPERVISOR privileges
  6029. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CFh,AH=E3h/SF=D1h
  6030.  
  6031. (Table 1195)
  6032. Values for NetWare function status:
  6033.  00h    successful
  6034.  C6h    no console rights
  6035.  FFh    files open
  6036. SeeAlso: #1181,#1223
  6037.  
  6038. Format of NetWare request buffer:
  6039. Offset    Size    Description    (Table 1196)
  6040.  00h    WORD    0002h (length of following data)
  6041.  02h    BYTE    D3h (subfunction "Down File Server")
  6042.  03h    BYTE    flag: force down even if files open if nonzero
  6043. --------N-21E3--SFD4-------------------------
  6044. INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS
  6045.     AH = E3h subfn D4h
  6046.     DS:SI -> request buffer (see #1197)
  6047.     ES:DI -> reply buffer (see #1198)
  6048. Return: AL = status (00h,C6h) (see #1195)
  6049. Notes:    this function is supported by Advanced NetWare 2.1+
  6050.     the calling workstation must have console operator privileges
  6051. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  6052.  
  6053. Format of NetWare request buffer:
  6054. Offset    Size    Description    (Table 1197)
  6055.  00h    WORD    0001h (length of following data)
  6056.  02h    BYTE    D4h (subfunction "Get File System Statistics")
  6057.  
  6058. Format of NetWare reply buffer:
  6059. Offset    Size    Description    (Table 1198)
  6060.  00h    WORD    (call) 0028h (size of following results buffer)
  6061.  02h    DWORD    clock ticks since system started
  6062.  06h    WORD    maximum open files set by configuration
  6063.  08h    WORD    maximum files open concurrently
  6064.  0Ah    WORD    current number of open files
  6065.  0Ch    DWORD    total files opened
  6066.  10h    DWORD    total file read requests
  6067.  14h    DWORD    total file write requests
  6068.  18h    WORD    current changed FATs
  6069.  1Ah    WORD    total changed FATs
  6070.  1Ch    WORD    number of FAT write errors
  6071.  1Eh    WORD    number of fatal FAT write errors
  6072.  20h    WORD    number of FAT scan errors
  6073.  22h    WORD    maximum concurrently-indexed files
  6074.  24h    WORD    current number of indexed files
  6075.  26h    WORD    number of attached indexed files
  6076.  28h    WORD    number of indexed files available
  6077. Note:    all fields except the first are big-endian
  6078. --------N-21E3--SFD5-------------------------
  6079. INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS
  6080.     AH = E3h subfn D5h
  6081.     DS:SI -> request buffer (see #1199)
  6082.     ES:DI -> reply buffer (see #1200)
  6083. Return: AL = status (00h,C6h) (see #1195)
  6084. Notes:    this function is supported by Advanced NetWare 2.1+
  6085.     the calling workstation must have console operator privileges
  6086. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AH=E3h/SF=D0h,AH=E3h/SF=E8h
  6087.  
  6088. Format of NetWare request buffer:
  6089. Offset    Size    Description    (Table 1199)
  6090.  00h    WORD    0001h (length of following data)
  6091.  02h    BYTE    D5h (subfunction "TTS Get Statistics")
  6092.  
  6093. Format of NetWare reply buffer:
  6094. Offset    Size    Description    (Table 1200)
  6095.  00h    WORD    (call) length of following results buffer (max 1BCh)
  6096.  02h    DWORD    (big-endian) clock ticks since system started
  6097.  06h    BYTE    transaction tracking supported if nonzero
  6098.         (all following fields are invalid if zero)
  6099.  07h    BYTE    transaction tracking enabled
  6100.  08h    WORD    (big-endian) transaction volume number
  6101.  0Ah    WORD    (big-endian) maximum simultaneous transactions configured
  6102.  0Ch    WORD    (big-endian) maximum simultaneous transactions since startup
  6103.  0Eh    WORD    (big-endian) current transactions in progress
  6104.  10h    DWORD    (big-endian) total transactions performed
  6105.  14h    DWORD    (big-endian) total write transactions
  6106.  18h    DWORD    (big-endian) total transactions backed out
  6107.  1Ch    WORD    (big-endian) number of unfilled backout requests
  6108.  1Eh    WORD    (big-endian) disk blocks used for transaction tracking
  6109.  20h    DWORD    (big-endian) blocks allocated for tracked-file FATs
  6110.  24h    DWORD    (big-endian) number of file size changes during a transaction
  6111.  28h    DWORD    (big-endian) number of file truncations during a transaction
  6112.  2Ch    BYTE    number of records following
  6113.  2Dh    Active Transaction Records [array]
  6114.     Offset    Size    Description
  6115.      00h    BYTE    logical connection number
  6116.      01h    BYTE    task number
  6117. --------N-21E3--SFD6-------------------------
  6118. INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS
  6119.     AH = E3h subfn D6h
  6120.     DS:SI -> request buffer (see #1201)
  6121.     ES:DI -> reply buffer (see #1202)
  6122. Return: AL = status (00h,C6h) (see #1195)
  6123. Notes:    this function is supported by Advanced NetWare 2.1+
  6124.     the calling workstation must have console operator privileges
  6125. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D5h,AH=E3h/SF=D8h,AH=E3h/SF=D9h,AH=E3h/SF=E6h
  6126.  
  6127. Format of NetWare request buffer:
  6128. Offset    Size    Description    (Table 1201)
  6129.  00h    WORD    0001h (length of following data)
  6130.  02h    BYTE    D6h (subfunction "Get Disk Cache Statistics")
  6131.  
  6132. Format of NetWare reply buffer:
  6133. Offset    Size    Description    (Table 1202)
  6134.  00h    WORD    (call) 004Eh (length of following results buffer)
  6135.  02h    DWORD    clock ticks since system started
  6136.  06h    WORD    number of cache buffers
  6137.  08h    WORD    size of cache buffer in bytes
  6138.  0Ah    WORD    number of dirty cache buffers
  6139.  0Ch    DWORD    number of cache read requests
  6140.  10h    DWORD    number of cache write requests
  6141.  14h    DWORD    number of cache hits
  6142.  18h    DWORD    number of cache misses
  6143.  1Ch    DWORD    number of physical read requests
  6144.  20h    DWORD    number of physical write requests
  6145.  24h    WORD    number of physical read errors
  6146.  26h    WORD    number of physical write errors
  6147.  28h    DWORD    cache get requests
  6148.  2Ch    DWORD    cache full write requests
  6149.  30h    DWORD    cache partial write requests
  6150.  34h    DWORD    background dirty writes
  6151.  38h    DWORD    background aged writes
  6152.  3Ch    DWORD    total cache writes
  6153.  40h    DWORD    number of cache allocations
  6154.  44h    WORD    thrashing count
  6155.  46h    WORD    number of times LRU block was dirty
  6156.  48h    WORD    number of reads on cache blocks not yet filled by writes
  6157.  4Ah    WORD    number of times a fragmented write occurred
  6158.  4Ch    WORD    number of cache hits on unavailable block
  6159.  4Eh    WORD    number of times a cache block was scrapped
  6160. Note:    all fields except the first are big-endian
  6161. --------N-21E3--SFD7-------------------------
  6162. INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE
  6163.     AH = E3h subfn D7h
  6164.     DS:SI -> request buffer (see #1203)
  6165.     ES:DI -> reply buffer (see #1204)
  6166. Return: AL = status (00h,C6h) (see #1195)
  6167. Notes:    this function is supported by Advanced NetWare 2.1+
  6168.     the calling workstation must have console operator privileges
  6169. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  6170.  
  6171. Format of NetWare request buffer:
  6172. Offset    Size    Description    (Table 1203)
  6173.  00h    WORD    0001h (length of following data)
  6174.  02h    BYTE    D7h (subfunction "Get Drive Mapping Table")
  6175.  
  6176. Format of NetWare reply buffer:
  6177. Offset    Size    Description    (Table 1204)
  6178.  00h    WORD    (call) 00ECh (length of following results buffer)
  6179.  02h    DWORD    (big-endian) clock tick elapsed since system started
  6180.  06h    BYTE    fault tolerance (SFT) level
  6181.  07h    BYTE    number of logical drives attached to server
  6182.  08h    BYTE    number of physical drives attached to server
  6183.  09h  5 BYTEs    disk channel types (00h none, 01h XT, 02h AT, 03h SCSI,
  6184.           04h disk coprocessor drive, 32h-FFh value-added drive types)
  6185.  0Eh    WORD    (big-endian) number of outstanding controller commands
  6186.  10h 32 BYTEs    drive mapping table (FFh = no such drive)
  6187.  30h 32 BYTEs    drive mirror table (secondary physical drive, FFh = none)
  6188.  50h 32 BYTEs    dead mirror table (last drive mapped to, FFh if never mirrored)
  6189.  70h    BYTE    physical drive being remirrored (FFh = none)
  6190.  71h    BYTE    reserved
  6191.  72h    DWORD    (big-endian) remirrored block
  6192.  76h 60 BYTEs    SFT error table (internal error counters)
  6193. --------N-21E3--SFD8-------------------------
  6194. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS
  6195.     AH = E3h subfn D8h
  6196.     DS:SI -> request buffer (see #1205)
  6197.     ES:DI -> reply buffer (see #1206)
  6198. Return: AL = status (00h,C6h) (see #1195)
  6199. Notes:    this function is supported by Advanced NetWare 2.1+
  6200.     the calling workstation must have console operator privileges
  6201. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E9h
  6202.  
  6203. Format of NetWare request buffer:
  6204. Offset    Size    Description    (Table 1205)
  6205.  00h    WORD    0002h (length of following data)
  6206.  02h    BYTE    D8h (subfunction "Get Physical Disk Statistics")
  6207.  03h    BYTE    physical disk number
  6208.  
  6209. Format of NetWare reply buffer:
  6210. Offset    Size    Description    (Table 1206)
  6211.  00h    WORD    (call) 005Dh (size of following results record)
  6212.  02h    DWORD    (big-endian) clock ticks since system started
  6213.  06h    BYTE    physical disk channel
  6214.  07h    BYTE    flag: drive removable if nonzero
  6215.  08h    BYTE    physical drive type
  6216.  09h    BYTE    drive number within controller
  6217.  0Ah    BYTE    controller number
  6218.  0Bh    BYTE    controller type
  6219.  0Ch    DWORD    (big-endian) size of drive in 4K disk blocks
  6220.  10h    WORD    (big-endian) number of cylinders on drive
  6221.  12h    BYTE    number of heads
  6222.  13h    BYTE    number of sectors per track
  6223.  14h 64 BYTEs    ASCIZ drive make and model
  6224.  54h    WORD    (big-endian) number of I/O errors
  6225.  56h    DWORD    (big-endian) start of Hot Fix table
  6226.  5Ah    WORD    (big-endian) size of Hot Fix table
  6227.  5Ch    WORD    (big-endian) number of Hot Fix blocks available
  6228.  5Eh    BYTE    flag: Hot Fix disabled if nonzero
  6229. --------N-21E3--SFD9-------------------------
  6230. INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS
  6231.     AH = E3h subfn D9h
  6232.     DS:SI -> request buffer (see #1207)
  6233.     ES:DI -> reply buffer (see #1208)
  6234. Return: AL = status (00h,C6h) (see #1195)
  6235. Notes:    this function is supported by Advanced NetWare 2.1+
  6236.     the calling workstation must have console operator privileges
  6237. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D8h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  6238.  
  6239. Format of NetWare request buffer:
  6240. Offset    Size    Description    (Table 1207)
  6241.  00h    WORD    0002h (length of following data)
  6242.  02h    BYTE    D9h (subfunction "Get Disk Channel Statistics")
  6243.  03h    BYTE    channel number
  6244.  
  6245. Format of NetWare reply buffer:
  6246. Offset    Size    Description    (Table 1208)
  6247.  00h    WORD    (call) 00A8h (size of following results record)
  6248.  02h    DWORD    (big-endian) clock ticks since system started
  6249.  06h    WORD    (big-endian) channel run state (see #1209)
  6250.  08h    WORD    (big-endian) channel synchronization state (see #1210)
  6251.  0Ah    BYTE    driver type
  6252.  0Bh    BYTE    major version of driver
  6253.  0Ch    BYTE    minor version of driver
  6254.  0Dh 65 BYTEs    ASCIZ driver description
  6255.  4Eh    WORD    (big-endian) first I/O address used
  6256.  50h    WORD    (big-endian) length of first I/O address
  6257.  52h    WORD    (big-endian) second I/O address used
  6258.  54h    WORD    (big-endian) length of second I/O address
  6259.  56h  3 BYTEs    first shared memory address
  6260.  59h  2 BYTEs    length of first shared memory address
  6261.  5Bh  3 BYTEs    second shared memory address
  6262.  5Eh  2 BYTEs    length of second shared memory address
  6263.  60h    BYTE    first interrupt number in-use flag
  6264.  61h    BYTE    first interrupt number used
  6265.  62h    BYTE    second interrupt number in-use flag
  6266.  63h    BYTE    second interrupt number used
  6267.  64h    BYTE    first DMA channel in-use flag
  6268.  65h    BYTE    first DMA channel used
  6269.  66h    BYTE    second DMA channel in-use flag
  6270.  67h    BYTE    second DMA channel used
  6271.  68h    BYTE    flags
  6272.  69h    BYTE    reserved
  6273.  6Ah 80 BYTEs    ASCIZ configuration description
  6274.  
  6275. (Table 1209)
  6276. Values for channel run state:
  6277.  0000h    running
  6278.  0001h    being stopped
  6279.  0002h    stopped
  6280.  0003h    nonfunctional
  6281.  
  6282. (Table 1210)
  6283. Values for channel synchronization state:
  6284.  0000h    not in use
  6285.  0002h    used by NetWare, no other requests
  6286.  0004h    used by NetWare, other requests
  6287.  0006h    in use, not needed by NetWare
  6288.  0008h    in use, needed by NetWare
  6289.  000Ah    channel released, NetWare should use it
  6290. --------N-21E3--SFDA-------------------------
  6291. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION
  6292.     AH = E3h subfn DAh
  6293.     DS:SI -> request buffer (see #1211)
  6294.     ES:DI -> reply buffer (see #1212)
  6295. Return: AL = status (00h,C6h) (see #1223)
  6296. Notes:    this function is supported by Advanced NetWare 2.1+
  6297.     the calling workstation must have console operator privileges
  6298. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h,AH=E3h/SF=E5h
  6299.  
  6300. Format of NetWare request buffer:
  6301. Offset    Size    Description    (Table 1211)
  6302.  00h    WORD    0003h (length of following data)
  6303.  02h    BYTE    DAh (subfunction "Get Connection's Task Information")
  6304.  03h    WORD    (big-endian) logical connection number
  6305.  
  6306. Format of NetWare reply buffer:
  6307. Offset    Size    Description    (Table 1212)
  6308.  00h    WORD    (call) size of following results record (max 1FEh)
  6309.  02h    BYTE    lock status of connection (see #1213)
  6310.  03h    var    Lock Status Information (see #1214)
  6311.  N    BYTE    number of records following
  6312.  N+1    Active Task Information Records [array]
  6313.     Offset    Size    Description
  6314.      00h    BYTE    task number (01h-FFh)
  6315.      01h    BYTE    task state
  6316.             01h in TTS explicit transaction
  6317.             02h in TTS implicit transaction
  6318.             04h shared fileset lock active
  6319.  
  6320. (Table 1213)
  6321. Values for lock status of connection:
  6322.  00h    no locks
  6323.  01h    waiting on physical record lock
  6324.  02h    waiting on file lock
  6325.  03h    waiting on logical record lock
  6326.  04h    waiting on semaphore
  6327.  
  6328. Format of Lock Status Information:
  6329. Offset    Size    Description    (Table 1214)
  6330. ---lock status 00h---
  6331.  no fields
  6332. ---lock status 01h---
  6333.  00h    BYTE    number of waiting task
  6334.  01h    DWORD    start address
  6335.  05h    DWORD    end address
  6336.  09h    BYTE    volume number
  6337.  0Ah    WORD    directory entry number
  6338.  0Ch 14 BYTEs    ASCIZ filename
  6339. ---lock status 02h---
  6340.  00h    BYTE    number of waiting task
  6341.  01h    BYTE    volume number
  6342.  02h    WORD    directory entry number
  6343.  04h 14 BYTEs    ASCIZ filename
  6344. ---lock status 03h---
  6345.  00h    BYTE    number of waiting task
  6346.  01h    BYTE    length of record name
  6347.  02h  N BYTEs    ASCIZ record name
  6348. ---lock status 04h---
  6349.  00h    BYTE    number of waiting task
  6350.  01h    BYTE    length of semaphore's name
  6351.  02h  N BYTEs    ASCIZ semaphore name
  6352. --------N-21E3--SFDB-------------------------
  6353. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES
  6354.     AH = E3h subfn DBh
  6355.     DS:SI -> request buffer (see #1215)
  6356.     ES:DI -> reply buffer (see #1216)
  6357. Return: AL = status (00h,C6h) (see #1223)
  6358. Notes:    this function is supported by Advanced NetWare 2.1+
  6359.     the calling workstation must have console operator privileges
  6360. SeeAlso: AH=E2h/SF=1Ah,AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DCh,AH=E3h/SF=DFh
  6361. SeeAlso: AH=E3h/SF=E1h
  6362.  
  6363. Format of NetWare request buffer:
  6364. Offset    Size    Description    (Table 1215)
  6365.  00h    WORD    0005h (length of following data)
  6366.  02h    BYTE    DBh (subfunction "Get Connection's Open Files")
  6367.  03h    WORD    (big-endian) logical connection number
  6368.  05h    WORD    (big-endian) last record seen (0000h on first call)
  6369.  
  6370. Format of NetWare reply buffer:
  6371. Offset    Size    Description    (Table 1216)
  6372.  00h    WORD    (call) size of following results record (max 1FEh)
  6373.  02h    WORD    next request record (place in "last record" field on next call)
  6374.         0000h if no more records
  6375.  04h    BYTE    number of records following
  6376.  05h    var    array of File Information Records (see #1217)
  6377.  
  6378. Format of NetWare File Information Record:
  6379. Offset    Size    Description    (Table 1217)
  6380.  00h    BYTE    task number
  6381.  01h    BYTE    lock flags (see #1218)
  6382.  02h    BYTE    access flags (see #1219)
  6383.  03h    BYTE    lock type
  6384.         00h no lock
  6385.         FEh file lock
  6386.         FFh locked by Begin Share File Set
  6387.  04h    BYTE    volume number (00h-1Fh)
  6388.  05h    WORD    (big-endian) directory entry
  6389.  07h 14 BYTEs    ASCIZ filename
  6390.  
  6391. Bitfields for lock flags:
  6392. Bit(s)    Description    (Table 1218)
  6393.  0    file is locked
  6394.  1    file opened Shareable
  6395.  2    logged
  6396.  3    file opened Normal
  6397.  6    TTS holding lock
  6398.  7    Transaction Flag set on file
  6399.  
  6400. Bitfields for access flags:
  6401. Bit(s)    Description    (Table 1219)
  6402.  0    file open for reading by calling station
  6403.  1    file open for writing by calling station
  6404.  2    deny reads by other stations
  6405.  3    deny writes by other stations
  6406.  4    file detached
  6407.  5    TTS Holding Detach
  6408.  6    TTS Holding Open
  6409. --------N-21E3--SFDC-------------------------
  6410. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE
  6411.     AH = E3h subfn DCh
  6412.     DS:SI -> request buffer (see #1220)
  6413.     ES:DI -> reply buffer (see #1221)
  6414. Return: AL = status (00h,C6h) (see #1223)
  6415. Notes:    this function is supported by Advanced NetWare 2.1+
  6416.     the calling workstation must have console operator privileges
  6417. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h
  6418.  
  6419. Format of NetWare request buffer:
  6420. Offset    Size    Description    (Table 1220)
  6421.  00h    WORD    length of following data (max 104h)
  6422.  02h    BYTE    DCh (subfunction "Get Connections Using a File")
  6423.  03h    WORD    (big-endian) last record (0000h on first call)
  6424.  05h    BYTE    directory handle
  6425.  06h    BYTE    length of file path
  6426.  07h  N BYTEs    ASCIZ file path
  6427.  
  6428. Format of NetWare reply buffer:
  6429. Offset    Size    Description    (Table 1221)
  6430.  00h    WORD    (call) size of following results record (max 1FEh)
  6431.  02h    WORD    (big-endian) count of tasks which have opened or logged file
  6432.  04h    WORD    (big-endian) count of tasks which have opened file
  6433.  06h    WORD    (big-endian) count of opens for reading
  6434.  08h    WORD    (big-endian) count of opens for writing
  6435.  0Ah    WORD    (big-endian) deny read count
  6436.  0Ch    WORD    (big-endian) deny write count
  6437.  0Eh    WORD    next request record (place in "last record" field on next call)
  6438.         0000h if no more records
  6439.  10h    BYTE    locked flag
  6440.         00h not locked exclusively
  6441.         else locked exclusively
  6442.  11h    BYTE    number of records following
  6443.  12h    var    array of File Usage Information Records (see #1222)
  6444.  
  6445. Format of NetWare File Usage Information Record:
  6446. Offset    Size    Description    (Table 1222)
  6447.  00h    WORD    (big-endian) logical connection number
  6448.  02h    BYTE    task number
  6449.  03h    BYTE    lock flags (see #1218)
  6450.  04h    BYTE    access flags (see #1219)
  6451.  05h    BYTE    lock type
  6452.         00h no lock
  6453.         FEh file lock
  6454.         FFh locked by Begin Share File Set
  6455. --------N-21E3--SFDD-------------------------
  6456. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE
  6457.     AH = E3h subfn DDh
  6458.     DS:SI -> request buffer (see #1224)
  6459.     ES:DI -> reply buffer (see #1225)
  6460. Return: AL = status (00h,C6h,FFh) (see #1223)
  6461. Notes:    this function is supported by Advanced NetWare 2.1+
  6462.     the calling workstation must have console operator privileges
  6463. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DEh,AH=E3h/SF=DFh
  6464.  
  6465. (Table 1223)
  6466. Values for NetWare function status:
  6467.  00h    successful
  6468.  C6h    no console rights
  6469.  FFh    file not open
  6470. SeeAlso: #1195,#1245
  6471.  
  6472. Format of NetWare request buffer:
  6473. Offset    Size    Description    (Table 1224)
  6474.  00h    WORD    0016h (length of following data)
  6475.  02h    BYTE    DDh (subfunction "Get Physical Record Locks by Connection and
  6476.           File")
  6477.  03h    WORD    (big-endian) logical connection number
  6478.  05h    WORD    (big-endian) last record seen (0000h on first call)
  6479.  07h    BYTE    volume number (00h-1Fh)
  6480.  08h    WORD    (big-endian) directory handle
  6481.  0Ah 14 BYTEs    ASCIZ filename
  6482.  
  6483. Format of NetWare reply buffer:
  6484. Offset    Size    Description    (Table 1225)
  6485.  00h    WORD    (call) size of following results record (max 1FEh)
  6486.  02h    WORD    next request record (place in "last record" on next call)
  6487.         0000h if no more records
  6488.  04h    BYTE    number of physical record locks
  6489.  05h    BYTE    number of records following
  6490.  06h    var    array of Physical Record Lock Info records (see #1226)
  6491.  
  6492. Format of NetWare Physical Record Lock Info:
  6493. Offset    Size    Description    (Table 1226)
  6494.  00h    BYTE    task number
  6495.  01h    BYTE    lock status (see #1227)
  6496.  02h    DWORD    (big-endian) starting offset of record in file
  6497.  06h    DWORD    (big-endian) ending offset of record in file
  6498.  
  6499. Bitfields for lock status:
  6500. Bit(s)    Description    (Table 1227)
  6501.  0    exclusive lock
  6502.  1    shareable lock
  6503.  2    logged
  6504.  6    lock held by TTS
  6505. --------N-21E3--SFDE-------------------------
  6506. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE
  6507.     AH = E3h subfn DEh
  6508.     DS:SI -> request buffer (see #1228)
  6509.     ES:DI -> reply buffer (see #1229)
  6510. Return: AL = status (00h,C6h,FFh) (see #1223)
  6511. Notes:    this function is supported by Advanced NetWare 2.1+
  6512.     the calling workstation must have console operator privileges
  6513. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh
  6514.  
  6515. Format of NetWare request buffer:
  6516. Offset    Size    Description    (Table 1228)
  6517.  00h    WORD    length of following data (max 104h)
  6518.  02h    BYTE    DEh (subfunction "Get Physical Record Locks by File")
  6519.  03h    WORD    (big-endian) last record seen (0000h on first call)
  6520.  05h    BYTE    directory handle
  6521.  06h    BYTE    length of filename
  6522.  07h  N BYTEs    ASCIZ filename
  6523.  
  6524. Format of NetWare reply buffer:
  6525. Offset    Size    Description    (Table 1229)
  6526.  00h    WORD    (call) size of following results record (max 1FEh)
  6527.  02h    WORD    next request record (place in "last record" on next call)
  6528.         0000h if no more records
  6529.  04h    BYTE    number of physical record locks
  6530.  05h    BYTE    number of records following
  6531.  06h    var    array of Physical Record Lock Info records (see #1230)
  6532.  
  6533. Format of NetWare Physical Record Lock Info:
  6534. Offset    Size    Description    (Table 1230)
  6535.  00h    WORD    (big-endian) number of tasks logging record
  6536.  02h    WORD    (big-endian) number of tasks with shareable lock
  6537.  04h    DWORD    (big-endian) starting offset of record in file
  6538.  08h    DWORD    (big-endian) ending offset of record in file
  6539.  0Ch    WORD    (big-endian) logical connection number
  6540.  0Eh    BYTE    task number
  6541.  0Fh    BYTE    lock type
  6542.         00h none
  6543.         FEh file lock
  6544.         FFh Begin Share File Set lock
  6545. --------N-21E3--SFDF-------------------------
  6546. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION
  6547.     AH = E3h subfn DFh
  6548.     DS:SI -> request buffer (see #1231)
  6549.     ES:DI -> reply buffer (see #1232)
  6550. Return: AL = status (00h,C6h) (see #1223)
  6551. Notes:    this function is supported by Advanced NetWare 2.1+
  6552.     the calling workstation must have console operator privileges
  6553. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=E0h,AH=E3h/SF=E2h
  6554.  
  6555. Format of NetWare request buffer:
  6556. Offset    Size    Description    (Table 1231)
  6557.  00h    WORD    0005h (length of following data)
  6558.  02h    BYTE    DFh (subfunction "Get Logical Records By Connection")
  6559.  03h    WORD    (big-endian) logical connection number
  6560.  05h    WORD    (big-endian) last record seen (0000h on first call)
  6561.  
  6562. Format of NetWare reply buffer:
  6563. Offset    Size    Description    (Table 1232)
  6564.  00h    WORD    (call) size of following results record (max 1FEh)
  6565.  02h    WORD    next request record (place in "last record" field on next call)
  6566.         0000h if no more locked records
  6567.  09h    BYTE    number of records following
  6568.  0Ah    var    array of Logical Lock Information Records (see #1233)
  6569.  
  6570. Format of NetWare Logical Lock Information Record:
  6571. Offset    Size    Description    (Table 1233)
  6572.  00h    BYTE    task number
  6573.  01h    BYTE    lock status (see #1227)
  6574.  02h    BYTE    length of logical lock's name
  6575.  03h  N BYTEs    logical lock's name
  6576. --------N-21E3--SFE0-------------------------
  6577. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION
  6578.     AH = E3h subfn E0h
  6579.     DS:SI -> request buffer (see #1234)
  6580.     ES:DI -> reply buffer (see #1235)
  6581. Return: AL = status (00h,C6h) (see #1223)
  6582. Notes:    this function is supported by Advanced NetWare 2.1+
  6583.     the calling workstation must have console operator privileges
  6584. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  6585.  
  6586. Format of NetWare request buffer:
  6587. Offset    Size    Description    (Table 1234)
  6588.  00h    WORD    length of following data (max 67h)
  6589.  02h    BYTE    E0h (subfunction "Get Logical Record Information")
  6590.  03h    WORD    (big-endian) last record seen (0000h on first call)
  6591.  05h    BYTE    length of logical record's name
  6592.  06h  N BYTEs    logical record's name
  6593.  
  6594. Format of NetWare reply buffer:
  6595. Offset    Size    Description    (Table 1235)
  6596.  00h    WORD    (call) size of following results record (max 200h)
  6597.  02h    WORD    (big-endian) number of logical connections logging the record
  6598.  04h    WORD    (big-endian) number of logical connections with shareable lock
  6599.  06h    WORD    (big-endian) next request record (place in "last record" field
  6600.           on next call)
  6601.  08h    BYTE    locked exclusively if nonzero
  6602.  09h    BYTE    number of records following
  6603.  0Ah    var    array of Task Information Records (see #1236)
  6604.  
  6605. Format of NetWare Task Information Record:
  6606. Offset    Size    Description    (Table 1236)
  6607.  00h    WORD    (big-endian) logical connection number
  6608.  02h    BYTE    task number
  6609.  03h    BYTE    lock status (see #1227)
  6610. --------N-21E3--SFE1-------------------------
  6611. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES
  6612.     AH = E3h subfn E1h
  6613.     DS:SI -> request buffer (see #1237)
  6614.     ES:DI -> reply buffer (see #1238)
  6615. Return: AL = status (00h,C6h) (see #1223)
  6616. Notes:    this function is supported by Advanced NetWare 2.1+
  6617.     the calling workstation must have console operator privileges
  6618. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  6619.  
  6620. Format of NetWare request buffer:
  6621. Offset    Size    Description    (Table 1237)
  6622.  00h    WORD    0005h (length of following data)
  6623.  02h    BYTE    E1h (subfunction "Get Connection's Semaphores")
  6624.  03h    WORD    (big-endian) logical connection number
  6625.  05h    WORD    (big-endian) last record seen (0000h on first call)
  6626.  
  6627. Format of NetWare reply buffer:
  6628. Offset    Size    Description    (Table 1238)
  6629.  00h    WORD    (call) size of following results record (max 1FEh)
  6630.  02h    WORD    next request record (place in "last record" field on next call)
  6631.  04h    BYTE    number of records following
  6632.  05h    var    array of Semaphore Information Records (see #1239)
  6633.  
  6634. Format of NetWare Semaphore Information Record:
  6635. Offset    Size    Description    (Table 1239)
  6636.  00h    WORD    (big-endian) open count
  6637.  02h    BYTE    semaphore value (-128 to 127)
  6638.  03h    BYTE    task number
  6639.  04h    BYTE    lock type
  6640.  05h    BYTE    length of semaphore's name
  6641.  06h  N BYTEs    semaphore's name
  6642.      14 BYTEs    filename
  6643. --------N-21E3--SFE2-------------------------
  6644. INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION
  6645.     AH = E3h subfn E2h
  6646.     DS:SI -> request buffer (see #1240)
  6647.     ES:DI -> reply buffer (see #1241)
  6648. Return: AL = status (00h,C6h) (see #1245)
  6649. Notes:    this function is supported by Advanced NetWare 2.1+
  6650.     the calling workstation must have console operator privileges
  6651. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E1h
  6652.  
  6653. Format of NetWare request buffer:
  6654. Offset    Size    Description    (Table 1240)
  6655.  00h    WORD    length of following data (max 83h)
  6656.  02h    BYTE    E2h (subfunction "Get LAN Driver's Configuration Information")
  6657.  03h    WORD    (big-endian) last record seen (0000h on first call)
  6658.  05h    BYTE    length of semaphore's name (01h-7Fh)
  6659.  06h  N BYTEs    semaphore's name
  6660.  
  6661. Format of NetWare reply buffer:
  6662. Offset    Size    Description    (Table 1241)
  6663.  00h    WORD    (call) size of following results buffer (max 1FEh)
  6664.  02h    WORD    next request record (place in "last record" on next call)
  6665.         0000h if no more
  6666.  04h    WORD    (big-endian) number of logical connections opening semaphore
  6667.  06h    BYTE    semaphore value (-127 to 128)
  6668.  07h    BYTE    number of records following
  6669.  08h    var    array of Semaphore Information records (see #1242)
  6670.  
  6671. Format of NetWare Semaphore Information:
  6672. Offset    Size    Description    (Table 1242)
  6673.  00h    WORD    (big-endian) logical connection number
  6674.  02h    BYTE    task number
  6675. --------N-21E3--SFE3-------------------------
  6676. INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO
  6677.     AH = E3h subfn E3h
  6678.     DS:SI -> request buffer (see #1243)
  6679.     ES:DI -> reply buffer (see #1244)
  6680. Return: AL = status (00h,C6h) (see #1245)
  6681. Notes:    this function is supported by Advanced NetWare 2.1+
  6682.     the calling workstation must have console operator privileges
  6683. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  6684.  
  6685. Format of NetWare request buffer:
  6686. Offset    Size    Description    (Table 1243)
  6687.  00h    WORD    0002h (length of following data)
  6688.  02h    BYTE    E3h (subfunction "Get LAN Driver's Configuration Information")
  6689.  03h    BYTE    LAN board (00h-03h)
  6690.  
  6691. Format of NetWare reply buffer:
  6692. Offset    Size    Description    (Table 1244)
  6693.  00h    WORD    (call) 00ACh (size of following results buffer)
  6694.  02h  4 BYTEs    network number
  6695.  06h  6 BYTEs    node number
  6696.  0Ch    BYTE    LAN driver installed (00h no--remaining fields invalid)
  6697.  0Dh    BYTE    option number selected at configuration time
  6698.  0Eh 160 BYTEs    configuration text
  6699.         ASCIZ hardware type
  6700.         ASCIZ hardware settings
  6701. --------N-21E3--SFE5-------------------------
  6702. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS
  6703.     AH = E3h subfn E5h
  6704.     DS:SI -> request buffer (see #1246)
  6705.     ES:DI -> reply buffer (see #1247)
  6706. Return: AL = status (00h,C6h) (see #1245)
  6707. Notes:    this function is supported by Advanced NetWare 2.1+
  6708.     one must have console operator privileges to get statistics for logical
  6709.       connections other than one's own
  6710. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=E1h
  6711.  
  6712. (Table 1245)
  6713. Values for NetWare function status:
  6714.  00h    successful
  6715.  C6h    no console rights
  6716. SeeAlso: #1223,#1265
  6717.  
  6718. Format of NetWare request buffer:
  6719. Offset    Size    Description    (Table 1246)
  6720.  00h    WORD    0003h (length of following data)
  6721.  02h    BYTE    E5h (subfunction "Get Connection's Usage Statistics")
  6722.  03h    WORD    (big-endian) logical connection number
  6723.  
  6724. Format of NetWare reply buffer:
  6725. Offset    Size    Description    (Table 1247)
  6726.  00h    WORD    (call) 0014h (size of following results record)
  6727.  02h    DWORD    (big-endian) clock ticks since server started
  6728.  06h  6 BYTEs    bytes read
  6729.  0Ch  6 BYTEs    bytes written
  6730.  12h    DWORD    (big-endian) total request packets
  6731. --------N-21E3--SFE6-------------------------
  6732. INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT
  6733.     AH = E3h subfn E6h
  6734.     DS:SI -> request buffer (see #1248)
  6735.     ES:DI -> reply buffer (see #1249)
  6736. Return: AL = status (00h,C6h) (see #1245)
  6737. Notes:    this function is supported by Advanced NetWare 2.1+
  6738.     one must have console operator privileges to get the free space for
  6739.       other bindery objects
  6740. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E8h,AH=E3h/SF=E9h
  6741.  
  6742. Format of NetWare request buffer:
  6743. Offset    Size    Description    (Table 1248)
  6744.  00h    WORD    0005h (length of following data)
  6745.  02h    BYTE    E6h (subfunction "Get Bindery Object Disk Space Left")
  6746.  03h    DWORD    (big-endian) object ID
  6747.  
  6748. Format of NetWare reply buffer:
  6749. Offset    Size    Description    (Table 1249)
  6750.  00h    WORD    (call) 000Fh (size of following results buffer)
  6751.  02h    DWORD    (big-endian) clock ticks elapsed since server started
  6752.  06h    DWORD    (big-endian) object ID
  6753.  0Ah    DWORD    (big-endian) 4K disk blocks available to user
  6754.  0Eh    BYTE    restrictions (00h enforced, FFh not enforced)
  6755. --------N-21E3--SFE7-------------------------
  6756. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS
  6757.     AH = E3h subfn E7h
  6758.     DS:SI -> request buffer (see #1250)
  6759.     ES:DI -> reply buffer (see #1251)
  6760. Return: AL = status
  6761.         00h successful
  6762. Note:    this function is supported by Advanced NetWare 2.1+
  6763. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=D3h,AH=E3h/SF=E8h,AH=E7h
  6764.  
  6765. Format of NetWare request buffer:
  6766. Offset    Size    Description    (Table 1250)
  6767.  00h    WORD    0001h (length of following data)
  6768.  02h    BYTE    E7h (subfunction "Get File Server LAN I/O Statistics")
  6769.  
  6770. Format of NetWare reply buffer:
  6771. Offset    Size    Description    (Table 1251)
  6772.  00h    WORD    (call) 0042h (size of following results buffer)
  6773.  02h    DWORD    clock ticks since system started
  6774.  06h    WORD    total routing buffers
  6775.  08h    WORD    maximum routing buffers used
  6776.  0Ah    WORD    current routing buffers used
  6777.  0Ch    DWORD    total file service packets
  6778.  10h    WORD    number of file service packets buffered
  6779.  12h    WORD    number of invalid connection packets
  6780.  14h    WORD    packets with bad logical connection numbers
  6781.  16h    WORD    number of packets received during processing
  6782.  18h    WORD    number of requests reprocessed
  6783.  1Ah    WORD    packets with bad sequence numbers
  6784.  1Ch    WORD    number of duplicate replies sent
  6785.  1Eh    WORD    number of acknowledgements sent
  6786.  20h    WORD    number of packets with bad request types
  6787.  22h    WORD    requests to attach to ws for which a request is being processed
  6788.  24h    WORD    requests to attach from ws which is already attaching
  6789.  26h    WORD    number of forged detach requests
  6790.  28h    WORD    detach requests with bad connection number
  6791.  2Ah    WORD    requests to detach from ws for which requests pending
  6792.  2Ch    WORD    number of cancelled replies
  6793.  2Eh    WORD    packets discarded due to excessive hop count
  6794.  30h    WORD    packets discarded due to unknown net
  6795.  32h    WORD    incoming packets discarded for lack of DGroup buffer
  6796.  34h    WORD    outgoing packets discarded due to lack of buffer
  6797.  36h    WORD    received packets destined for B,C, or D side drivers
  6798.  38h    DWORD    number of NetBIOS packets propagated through net
  6799.  3Ch    DWORD    total number of non-file-service packets
  6800.  40h    DWORD    total number of routed packets
  6801. Note:    all fields except the first are big-endian
  6802. --------N-21E3--SFE8-------------------------
  6803. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION
  6804.     AH = E3h subfn E8h
  6805.     DS:SI -> request buffer (see #1252)
  6806.     ES:DI -> reply buffer (see #1253)
  6807. Return: AL = status (00h,C6h) (see #1245)
  6808. Note:    this function is supported by Advanced NetWare 2.1+
  6809. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E7h
  6810.  
  6811. Format of NetWare request buffer:
  6812. Offset    Size    Description    (Table 1252)
  6813.  00h    WORD    0001h (length of following data)
  6814.  02h    BYTE    E8h (subfunction "Get File Server Misc Information")
  6815.  
  6816. Format of NetWare reply buffer:
  6817. Offset    Size    Description    (Table 1253)
  6818.  00h    WORD    (call) size of following results buffer (max 0048h)
  6819.  02h    DWORD    (big-endian) clock ticks since system started
  6820.  06h    BYTE    CPU type
  6821.         00h Motorola 68000
  6822.         01h Intel 8086, 8088, or V20
  6823.         02h Intel 80286+
  6824.  07h    BYTE    reserved
  6825.  08h    BYTE    number of service processes in server
  6826.  09h    BYTE    server utilization in percent
  6827.  0Ah    WORD    (big-endian) maximum bindery objects set by configuration
  6828.         0000h = unlimited
  6829.  0Ch    WORD    (big-endian) maximum number of bindery objects used
  6830.  0Eh    WORD    (big-endian) current number of bindery objects in use
  6831.  10h    WORD    (big-endian) total server memory in KB
  6832.  12h    WORD    (big-endian) wasted server memory in KB
  6833.         normally 0000h
  6834.  14h    WORD    number of records following (01h-03h)
  6835.  16h    var    array of Dynamic Memory Information records (see #1254)
  6836.  
  6837. Format of NetWare Dynamic Memory Information:
  6838. Offset    Size    Description    (Table 1254)
  6839.  00h    DWORD    (big-endian) total dynamic space
  6840.  04h    DWORD    (big-endian) maximum dynamic space used
  6841.  08h    DWORD    (big-endian) current dynamic space usage
  6842. --------N-21E3--SFE9-------------------------
  6843. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION
  6844.     AH = E3h subfn E9h
  6845.     DS:SI -> request buffer (see #1255)
  6846.     ES:DI -> reply buffer (see #1256)
  6847. Return: AL = status
  6848.         00h successful
  6849. Notes:    this function is supported by Advanced NetWare 2.1+
  6850. SeeAlso: AH=DAh,AH=E2h/SF=15h
  6851.  
  6852. Format of NetWare request buffer:
  6853. Offset    Size    Description    (Table 1255)
  6854.  00h    WORD    0002h (length of following data)
  6855.  02h    BYTE    E9h (subfunction "Get Volume Information")
  6856.  03h    BYTE    directory handle
  6857.  
  6858. Format of NetWare reply buffer:
  6859. Offset    Size    Description    (Table 1256)
  6860.  00h    WORD    (call) 0028h (length of following results buffer)
  6861.  02h    DWORD    (big-endian) elapsed system time
  6862.  06h    BYTE    volume number
  6863.  07h    BYTE    logical drive number
  6864.  08h    WORD    (big-endian) sectors per block
  6865.  0Ah    WORD    (big-endian) starting block
  6866.  0Ch    WORD    (big-endian) total blocks on volume
  6867.  0Eh    WORD    (big-endian) blocks available on volume
  6868.  10h    WORD    (big-endian) total directory slots
  6869.  12h    WORD    (big-endian) directory slots available
  6870.  14h    WORD    (big-endian) maximum directory entries actually used
  6871.  16h    BYTE    flag: volume hashed if nonzero
  6872.  17h    BYTE    flag: volume cached if nonzero
  6873.  18h    BYTE    flag: volume removable if nonzero
  6874.  19h    BYTE    flag: volume mounted if nonzero
  6875.  1Ah 16 BYTEs    NUL-padded volume name
  6876. --------N-21E4-------------------------------
  6877. INT 21 O - Novell NetWare - SET FILE ATTRIBUTES (FCB)
  6878.     AH = E4h
  6879.     CL = file attributes (see #1257)
  6880.     DX:DX -> FCB (see #0574 at AH=0Fh)
  6881. Return: AL = error code
  6882. Note:    this function was added in NetWare 4.0, but was removed some time prior
  6883.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  6884.       documentation
  6885. SeeAlso: AX=4301h
  6886.  
  6887. Bitfields for NetWare file attributes:
  6888. Bit(s)    Description    (Table 1257)
  6889.  0    read only
  6890.  1    hidden
  6891.  2    system
  6892.  7    shareable
  6893. --------v-21E4-------------------------------
  6894. INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK
  6895.     AH = E4h
  6896. Return: AH = 04h if resident
  6897. SeeAlso: AH=E1h"VIRUS",AH=E7h"VIRUS"
  6898. --------T-21E400-----------------------------
  6899. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  6900.     AX = E400h
  6901. Return: AL = program status
  6902.         00h if DoubleDOS not present
  6903.         01h if running in visible DoubleDOS partition
  6904.         02h if running in the invisible DoubleDOS partition
  6905. SeeAlso: AH=E5h"DoubleDOS",AX=F400h
  6906. --------E-21E400-----------------------------
  6907. INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER
  6908.     AX = E400h
  6909.     ???
  6910. Return: ???
  6911. Note:    protected mode only???
  6912. --------E-21E402-----------------------------
  6913. INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE
  6914.     AX = E402h
  6915.     ???
  6916. Return: ???
  6917. Note:    protected mode only???
  6918. SeeAlso: AX=E403h
  6919. --------E-21E403-----------------------------
  6920. INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE
  6921.     AX = E403h
  6922.     ???
  6923. Return: ???
  6924. Note:    protected mode only???
  6925. SeeAlso: AX=E402h
  6926. --------N-21E5-------------------------------
  6927. INT 21 O - Novell NetWare - UPDATE FILE SIZE (FCB)
  6928.     AH = E5h
  6929.     DS:DX -> FCB (see #0574 at AH=0Fh)
  6930. Return: AL = (unreliable) return code
  6931. Notes:    this function was added in NetWare 4.0, but was removed some time prior
  6932.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  6933.       documentation
  6934.     on success, NetWare sets AL to zero; on errors it restores AL
  6935. --------T-21E5-------------------------------
  6936. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  6937.     AH = E5h
  6938. Return: AL = status
  6939.         00h no program in other partition
  6940.         01h program in other partition is running
  6941.         02h program in other partition is suspended
  6942. SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"
  6943. --------E-21E500-----------------------------
  6944. INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY
  6945.     AX = E500h
  6946.     ???
  6947. Return: ???
  6948. SeeAlso: AX=E501h
  6949. --------E-21E501-----------------------------
  6950. INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION
  6951.     AX = E501h
  6952.     ???
  6953. Return: ???
  6954. SeeAlso: AX=E500h
  6955. --------N-21E6-------------------------------
  6956. INT 21 O - Novell NetWare - COPY FILE TO FILE (FCB)
  6957.     AH = E6h
  6958.     CX:DX = number of bytes to copy
  6959.     DS:SI -> opened source FCB
  6960.     ES:DI -> opened destination FCB
  6961. Return: AL = error code
  6962.     CX = ???
  6963.     DX = ???
  6964. Note:    this function was added in NetWare 4.0, but was removed some time prior
  6965.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  6966.       documentation
  6967. --------E-21E6-------------------------------
  6968. INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE
  6969.     AH = E6h
  6970.     ???
  6971. Return: ???
  6972. SeeAlso: AH=E2h"OS/286"
  6973. --------N-21E7-------------------------------
  6974. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME
  6975.     AH = E7h
  6976.     DS:DX -> date/time buffer (see #1258)
  6977. Return: AL = error code
  6978.         00h successful
  6979.         FFh unsuccessful
  6980. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  6981.       Alloy NTNX, and Banyan VINES
  6982. SeeAlso: AH=2Ah,AH=2Ch,AX=5FC0h,AH=E3h/SF=CAh
  6983.  
  6984. Format of NetWare date/time buffer:
  6985. Offset    Size    Description    (Table 1258)
  6986.  00h    BYTE    year (80-99 = 1980-1999, 0-79 = 2000-2079)
  6987.  01h    BYTE    month (1=Jan)
  6988.  02h    BYTE    day
  6989.  03h    BYTE    hours
  6990.  04h    BYTE    minutes
  6991.  05h    BYTE    seconds
  6992.  06h    BYTE    day of week (0 = Sunday) (Novell and NTNX only)
  6993. --------E-21E7-------------------------------
  6994. INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT
  6995.     AH = E7h
  6996.     ???
  6997. Return: ???
  6998. SeeAlso: AH=E8h"OS/286",AH=E9h"OS/286",AH=EAh"OS/286"
  6999. --------v-21E7-------------------------------
  7000. INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK
  7001.     AH = E7h
  7002. Return: AH = 78h if resident
  7003. SeeAlso: AH=E4h"VIRUS",AX=EC59h
  7004. --------N-21E8-------------------------------
  7005. INT 21 O - Novell NetWare, Alloy NTNX - SET FCB RE-OPEN MODE
  7006.     AH = E8h
  7007.     DL = mode
  7008.         00h no automatic re-open
  7009.         01h auto re-open
  7010. Return: AL = error code
  7011. Desc:    provided backward compatibility with a bug in CP/M and early DOS vers
  7012. Note:    this function was added in NetWare 4.6, but was removed some time prior
  7013.       to Advanced NetWare 2.15, and is no longer listed in current Novell
  7014.       documentation
  7015. --------E-21E8-------------------------------
  7016. INT 21 - OS/286, OS/386 - SEGMENT CREATION
  7017.     AH = E8h
  7018.     AL = type
  7019.         00h data segment
  7020.         01h data window/alias
  7021.         02h real segment
  7022.         03h real window/alias
  7023.         CX:DX = size in bytes
  7024.         SI:BX -> start of desired memory block
  7025.         Return:    AX = selector
  7026.         06h shareable segment
  7027.     ???
  7028. Return: ???
  7029. SeeAlso: AH=E7h"OS/286",AH=E9h"OS/286"
  7030. --------T-21E8-------------------------------
  7031. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  7032.     AH = E8h
  7033.     AL = program for which to set flags (00h this program, 01h other)
  7034.     DX = keyboard control flags (see #1259)
  7035. Return: DX = previous flags
  7036. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  7037.       disabling any of the other keystrokes disables them completely
  7038.     identical to AH=F8h
  7039. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS"
  7040. SeeAlso: AH=F8h"DoubleDOS"
  7041.  
  7042. Bitfields for DoubleDOS keyboard control flags:
  7043. Bit(s)    Description    (Table 1259)
  7044.  0    menu
  7045.  1    exchange
  7046.  2    entire keyboard enable/disable
  7047.  3    Ctrl-C
  7048.  4    Ctrl-PrtSc
  7049.  5    Alt/Erase
  7050.  6    Ctrl-Break
  7051.  7    Ctrl-NumLock
  7052.  8    shift-PrtSc
  7053.  9-13    undefined
  7054.  14    cancel key (clear keyboard buffer)
  7055.  15    suspend key
  7056. Note:    setting a enables the corresponding key or operatin, clearing a
  7057.       disables it
  7058. --------E-21E9-------------------------------
  7059. INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS
  7060.     AH = E9h
  7061.     AL = function
  7062.         01h change code segment parameters
  7063.         02h change data segment parameters
  7064.         05h adjust segment limit
  7065.         06h change segment base address
  7066.     ???
  7067. Return: ???
  7068. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=EAh"OS/286",AH=EDh"OS/286"
  7069. SeeAlso: INT 31/AX=0007h,INT 31/AX=0008h
  7070. --------T-21E9-------------------------------
  7071. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  7072.     AH = E9h
  7073.     AL = new priority (see #1260)
  7074. Return: AL = priority setting if AL=05h on entry
  7075. Note:    identical to AH=F9h
  7076. SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS"
  7077.  
  7078. (Table 1260)
  7079. Values for DoubleDOS timesharing priority:
  7080.  00h    visible program gets 70%, invisible gets 30% (default)
  7081.  01h    visible program gets 50%, invisible gets 50%
  7082.  02h    visible program gets 30%, invisible gets 70%
  7083.  03h    Top program gets 70%, bottom program gets 30%
  7084.  04h    Top program gets 30%, bottom program gets 70%
  7085.  05h    get current priority
  7086. --------N-21E900-----------------------------
  7087. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE
  7088.     AX = E900h
  7089.     DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31)
  7090. Return: AL = directory handle
  7091.     AH = flags (drive not mapped if none set)
  7092.         bit 0: permanent handle
  7093.         bit 1: temporary handle
  7094.         bit 7: mapped to local drive
  7095. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  7096.       Alloy NTNX
  7097. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=01h,AH=E2h/SF=0Ah
  7098. --------N-21E905-----------------------------
  7099. INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY
  7100.     AX = E905h
  7101.     BL = drive number (0=default, 1=A:, ...)
  7102.     DS:DX -> ASCIZ path for fake root (may include server name or be empty)
  7103. Return: CF set on error
  7104.         AL = error code (03h,0Fh,11h) (see #0885 at AH=59h)
  7105.     CF clear if successful
  7106. Note:    if drive is not currently mapped, a drive mapping will be created
  7107. SeeAlso: AX=E906h
  7108. --------N-21E906-----------------------------
  7109. INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY
  7110.     AX = E906h
  7111.     BL = drive number (0=default, 1=A:, ...)
  7112. Note:    drive remains mapped
  7113. SeeAlso: AX=E905h
  7114. --------N-21E907-----------------------------
  7115. INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH
  7116.     AX = E907h
  7117.     BL = drive number (0=default, 1=A:, ...)
  7118. Return: AL = number of directories below the fake root
  7119.         FFh if no fake root assigned
  7120. SeeAlso: AX=E905h
  7121. --------N-21E908BL00-------------------------
  7122. INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS
  7123.     AX = E908h
  7124.     BL = 00h    don't return '.' or '..' during directory scans
  7125.        = nonzero    directory scans will return '.' or '..' entries
  7126. Return: BL = previous show-dots setting
  7127. --------N-21E909-----------------------------
  7128. INT 21 - Novell NetWare - NetWare shell - CONVERT DOS FILE HANDLE TO NETWARE
  7129.     AX = E909h
  7130.     BX = DOS file handle
  7131. Return: AX = 0000h if successful
  7132.         BX:CX:DX = NetWare file handle
  7133. Notes:    this function is partially a reverse of "AttachHandle" (AH=B4h)
  7134.     many NetWare 3.x functions use a four-byte file handle, which appears
  7135.       to be the high four bytes of the six-byte NetWare handle
  7136. SeeAlso: AH=B4h"NetWare"
  7137. --------N-21EA-------------------------------
  7138. INT 21 - Novell NetWare, Alloy NTNX - RETURN SHELL VERSION
  7139.     AH = EAh
  7140.     AL = return version environment string
  7141.         00h        don't return string
  7142.         nonzero    return string in 40-byte buffer pointed to by ES:DI
  7143.         Return: buffer filled with three null-terminated entries:
  7144.             major operating system
  7145.             version
  7146.             hardware type
  7147. Return: AH = operating system (00h = MS-DOS)
  7148.     AL = hardware type
  7149.         00h IBM PC
  7150.         01h Victor 9000
  7151.     BH = major shell version
  7152.     BL = minor shell version
  7153.     CH = (v3.01+) shell type
  7154.         00h conventional memory
  7155.         01h expanded memory
  7156.         02h extended memory
  7157.     CL = shell revision number
  7158. Note:    this function is supported by NetWare 4.6 and Advanced NetWare 1.0+
  7159. --------T-21EA-------------------------------
  7160. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  7161.     AH = EAh
  7162. Return: task switching turned off
  7163. SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS"
  7164. SeeAlso: INT FA"DoubleDOS"
  7165. --------E-21EA-------------------------------
  7166. INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT
  7167.     AH = EAh
  7168.     ???
  7169. Return: ???
  7170. Note:    protected mode only???
  7171. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=E9h"OS/286"
  7172. --------N-21EB-------------------------------
  7173. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE
  7174.     AH = EBh
  7175.     DS:DX -> ASCIZ filename
  7176.     if function C6h lock mode 01h:
  7177.         AL = flags
  7178.         00h log file only
  7179.         01h lock as well as log file
  7180.             BP = lock timeout in timer ticks (1/18 second)
  7181.             0000h = don't wait if file already locked
  7182. Return: AL = status (see #1261)
  7183. Desc:    add the location and size of the specified file to the log table and
  7184.       optionally lock the file
  7185. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  7186.       Alloy NTNX
  7187. SeeAlso: AH=BCh"NetWare",AH=CAh,AH=D0h,AH=ECh"NetWare",AH=EDh"NetWare"
  7188.  
  7189. (Table 1261)
  7190. Values for NetWare status:
  7191.  00h    successful
  7192.  96h    no dynamic memory for file
  7193.  FEh    timed out
  7194.  FFh    failed
  7195. --------T-21EB-------------------------------
  7196. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  7197.     AH = EBh
  7198. Return: task switching turned on
  7199. SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS"
  7200. SeeAlso: INT FB"DoubleDOS"
  7201. --------E-21EB00-----------------------------
  7202. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS
  7203.     AX = EB00h
  7204.     ???
  7205. Return: ???
  7206. Note:    protected mode only???
  7207. SeeAlso: AX=EB02h,AX=EB04h,INT 31/AX=0506h
  7208. --------E-21EB02-----------------------------
  7209. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET
  7210.     AX = EB02h
  7211.     ???
  7212. Return: ???
  7213. Note:    protected mode only???
  7214. SeeAlso: AX=EB00h,AX=EB04h
  7215. --------E-21EB03-----------------------------
  7216. INT 21 - OS/386 VMM - FREE MAPPED PAGES
  7217.     AX = EB03h
  7218.     ???
  7219. Return: ???
  7220. Note:    protected mode only???
  7221. SeeAlso: AX=EB05h,INT 31/AX=0801h
  7222. --------E-21EB04-----------------------------
  7223. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET
  7224.     AX = EB04h
  7225.     ???
  7226. Return: ???
  7227. Note:    protected mode only???
  7228. SeeAlso: AX=EB00h,AX=EB02h
  7229. --------E-21EB05-----------------------------
  7230. INT 21 - OS/386 VMM - MAP PAGES
  7231.     AX = EB05h
  7232.     ???
  7233. Return: ???
  7234. Note:    protected mode only???
  7235. SeeAlso: AX=EB03h,INT 31/AX=0800h
  7236. --------E-21EB06-----------------------------
  7237. INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY
  7238.     AX = EB06h
  7239.     ???
  7240. Return: ???
  7241. Note:    protected mode only???
  7242. SeeAlso: AX=EB07h,INT 31/AX=0600h
  7243. --------E-21EB07-----------------------------
  7244. INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES
  7245.     AX = EB07h
  7246.     ???
  7247. Return: ???
  7248. Note:    protected mode only???
  7249. SeeAlso: AX=EB06h,INT 31/AX=0601h
  7250. --------N-21EC-------------------------------
  7251. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE
  7252.     AH = ECh
  7253.     DS:DX -> ASCIZ filename
  7254. Return: AL = status
  7255.         00h successful
  7256.         FFh file not found
  7257. Desc:    unlock the specified file but retain it in the log table
  7258. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  7259.       Alloy NTNX
  7260. SeeAlso: AH=CDh,AH=EBh"NetWare",AH=EDh"NetWare"
  7261. --------T-21EC-------------------------------
  7262. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  7263.     AH = ECh
  7264. Return: ES = segment of virtual screen
  7265. Desc:    determine the address of the virtual screen to which the program
  7266.       should write instead of the actual video memory, so that the
  7267.       multitasked programs do not interfere with each other's output
  7268. Notes:    screen address can change if task-switching is on!!
  7269.     identical to AH=FCh
  7270. SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"
  7271. --------E-21EC-------------------------------
  7272. INT 21 - OS/286, OS/386 - BLOCK TRANSFER
  7273.     AH = ECh
  7274.     ???
  7275. Return: ???
  7276. --------v-21EC59-----------------------------
  7277. INT 21 - VIRUS - "Terror" - INSTALLATION CHECK
  7278.     AX = EC59h
  7279. Return: BP = EC59h if resident
  7280. SeeAlso: AH=E7h"VIRUS",AH=EEh"VIRUS"
  7281. --------N-21ED-------------------------------
  7282. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE
  7283.     AH = EDh
  7284.     DS:DX -> ASCIZ filename
  7285. Return: AL = status
  7286.         00h successful
  7287.         FFh no files found
  7288. Desc:    unlock the file and remove it from the log table
  7289. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  7290.       Alloy NTNX
  7291. SeeAlso: AH=CBh"NetWare",AH=CEh,AH=CFh,AH=EBh"NetWare",AH=ECh"NetWare"
  7292. --------E-21ED-------------------------------
  7293. INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR
  7294.     AH = EDh
  7295.     ???
  7296. Return: ???
  7297. Note:    protected mode only???
  7298. SeeAlso: AH=E9h"OS/286"
  7299. --------N-21EE-------------------------------
  7300. INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS
  7301.     AH = EEh
  7302. Return: CX:BX:AX = six-byte physical address
  7303. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  7304.       Alloy NTNX
  7305. SeeAlso: AH=E3h/SF=13h
  7306. --------T-21EE-------------------------------
  7307. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  7308.     AH = EEh
  7309.     AL = number of 55ms time slices to give away
  7310. Return: returns after giving away time slices
  7311. SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"
  7312. --------v-21EE-------------------------------
  7313. INT 21 - VIRUS - "Jerusalem-G", "Pregnant" - INSTALLATION CHECK
  7314.     AH = EEh
  7315. Return: AX = 0300h if "Jerusalem-G" resident
  7316.     AL = 05h if "Pregnant" resident
  7317. SeeAlso: AH=DDh"VIRUS",AX=EC59h,AH=F0h"VIRUS"
  7318. --------N-21EF00-----------------------------
  7319. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE
  7320.     AX = EF00h
  7321. Return: ES:SI -> network shell's 32-byte drive handle table
  7322.     AX = 0000h
  7323. Notes:    this function is supported by Advanced NetWare 1.0+
  7324.     each byte in the drive handle table contains the directory handle for
  7325.       the corresponding drive, or 00h if not mapped to a directory
  7326. SeeAlso: AX=EF01h,AX=EF02h,AX=EF03h,AX=EF04h
  7327. --------N-21EF01-----------------------------
  7328. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE
  7329.     AX = EF01h
  7330. Return: ES:SI -> network shell's 32-byte drive flag table (see #1262)
  7331.     AX = 0000h
  7332. Notes:    this function is supported by Advanced NetWare 1.0+
  7333.     each byte in the drive flag table corresponds to a drive
  7334. SeeAlso: AX=EF00h,AX=EF02h,AX=EF03h
  7335.  
  7336. (Table 1262)
  7337. Values in NetWare drive flag table:
  7338.  00h    drive is not mapped
  7339.  01h    permanent network drive
  7340.  02h    temporary network drive
  7341.  80h    mapped to local drive
  7342.  81h    local drive used as permanent network drive
  7343.  82h    local drive used as temporary network drive
  7344. --------N-21EF02-----------------------------
  7345. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID TABLE
  7346.     AX = EF02h
  7347. Return: ES:SI -> network shell's 32-byte drive conection ID table
  7348.     AX = 0000h
  7349. Notes:    this function is supported by Advanced NetWare 1.0+
  7350.     each byte in the connection ID table corresponds to a drive and
  7351.       contains either the connection ID (1-8) of the server for that drive
  7352.       or 00h if the drive is not mapped to a file server
  7353. SeeAlso: AX=EF01h,AX=EF03h,AX=F002h
  7354. --------N-21EF03-----------------------------
  7355. INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID TABLE
  7356.     AX = EF03h
  7357. Return: ES:SI -> network shell's connection ID table (see #1263)
  7358.     AX = 0000h
  7359. Note:    this function is supported by Advanced NetWare 1.0+
  7360. SeeAlso: AX=EF00h,AX=EF02h,AX=EF04h,AX=F002h
  7361.  
  7362. Format of NetWare connection ID table [one entry of eight-element array]:
  7363. Offset    Size    Description    (Table 1263)
  7364.  00h    BYTE    in-use flag
  7365.         E0h AES temporary
  7366.         F8h IPX in critical section
  7367.         FAh processing
  7368.         FBh holding
  7369.         FCh AES waiting
  7370.         FDh waiting
  7371.         FEh receiving
  7372.         FFh sending
  7373.  01h    BYTE    order number assigned to server (1-8)
  7374.  02h    DWORD    (big-endian) file server's network address
  7375.  06h  6 BYTEs    (big-endian) file server's node address
  7376.  0Ch    WORD    (big-endian) socket number
  7377.  0Eh    WORD    (big-endian) base receive timeout in clock ticks
  7378.  10h  6 BYTEs    (big-endian) preferred routing node
  7379.  16h    BYTE    packet sequence number
  7380.  17h    BYTE    connection number (FFh = no connection)
  7381.  18h    BYTE    connection status (00h if active)
  7382.  19h    WORD    (big-endian) maximum receive timeout in clock ticks
  7383.  1Bh  5 BYTEs    reserved
  7384. --------N-21EF04-----------------------------
  7385. INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME TABLE
  7386.     AX = EF04h
  7387. Return: ES:SI -> network shell's file server name table (see #1264)
  7388.     AX = 0000h
  7389. Note:    this function is supported by Advanced NetWare 1.0+
  7390. SeeAlso: AX=EF03h
  7391.  
  7392. Format of file server name table:
  7393. Offset    Size    Description    (Table 1264)
  7394.  00h 48 BYTEs    ASCIZ server name for first entry in connection ID table
  7395.  30h 48 BYTEs    ASCIZ server name for second entry in connection ID table
  7396.     ...
  7397. 150h 48 BYTEs    ASCIZ server name for eighth entry in connection ID table
  7398. --------T-21F0-------------------------------
  7399. INT 21 - DoubleDOS - MENU CONTROL
  7400.     AH = F0h
  7401.     AL = subfunction
  7402.         01h exchange tasks
  7403.         73h resume invisible job if suspended
  7404.         74h kill other job
  7405.         75h suspend invisible job
  7406. Note:    identical to AH=E0h
  7407. SeeAlso: AH=E0h"DoubleDOS"
  7408. --------v-21F0-------------------------------
  7409. INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK
  7410.     AH = F0h
  7411. Return: AX = 0300h if resident
  7412. SeeAlso: AH=EEh"VIRUS",AH=F1h"VIRUS"
  7413. --------N-21F000-----------------------------
  7414. INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID
  7415.     AX = F000h
  7416.     DL = connection ID of prefered file server (1-8) or 00h for none
  7417. Notes:    this function is supported by Advanced NetWare 1.0+
  7418.     the preferred connection ID is set to 00h by the shell on EOJ
  7419. SeeAlso: AH=D6h,AX=EF03h,AX=F001h,AX=F002h,AX=F005h
  7420. --------N-21F001-----------------------------
  7421. INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID
  7422.     AX = F001h
  7423. Return: AL = connection ID of preferred file server (1-8), 00h if not set
  7424. Notes:    this function is supported by Advanced NetWare 1.0+
  7425.     the preferred connection ID is set to 00h by the shell on EOJ
  7426. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  7427. --------N-21F002-----------------------------
  7428. INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID
  7429.     AX = F002h
  7430. Return: AL = connection ID of current default file server (1-8) (see AX=EF03h)
  7431. Note:    this function is supported by Advanced NetWare 1.0+
  7432. SeeAlso: AX=EF03h,AX=F000h,AX=F004h
  7433. --------N-21F003-----------------------------
  7434. INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS
  7435.     AX = F003h
  7436. Return: AH = status
  7437.         00h not active
  7438.         FFh active
  7439.         AL = connection ID (01h-08h)
  7440. Note:    this function is supported by Advanced NetWare 1.0+
  7441. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h,AH=DFh/DL=04h
  7442. --------N-21F004-----------------------------
  7443. INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID
  7444.     AX = F004h
  7445.     DL = connection ID of primary file server (1-8) or 00h for none
  7446. Note:    this function is supported by Advanced NetWare 2.0+
  7447. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  7448. --------N-21F005-----------------------------
  7449. INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID
  7450.     AX = F005h
  7451. Return: AL = connection ID of primary file server (1-8), 00h if not set
  7452. Notes:    this function is supported by Advanced NetWare 2.0+
  7453.     by default, the primary file server is the one from which the login
  7454.       script executed; it is set to 00h if the workstation is not logged in
  7455.       and when it detaches from its primary file server
  7456. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F004h
  7457. --------N-21F1-------------------------------
  7458. INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION
  7459.     AH = F1h
  7460.     AL = subfunction
  7461.         00h attach to file server
  7462.         DL = preferred file server (01h-08h)
  7463.         01h detach from file server
  7464.         DL = connection ID
  7465.         02h logout from file server
  7466.         DL = connection ID
  7467. Return: AL = status (see #1265)
  7468. Note:    these functions are supported by Advanced NetWare 1.0+
  7469. SeeAlso: AH=D7h"NetWare",AH=E3h/SF=14h
  7470.  
  7471. (Table 1265)
  7472. Values for NetWare function status:
  7473.  00h    successful
  7474.  F8h    already attached to server
  7475.  F9h    connection table full
  7476.  FAh    no more server slots
  7477.  FCh    unknown file server
  7478.  FEh    server bindery locked
  7479.  FFh    no response from server, or connection does not exist
  7480. SeeAlso: #1245,#1293
  7481. --------T-21F1-------------------------------
  7482. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  7483.     AH = F1h
  7484. SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS"
  7485. SeeAlso: AH=F8h"DoubleDOS"
  7486. --------v-21F1-------------------------------
  7487. INT 21 - VIRUS - "F1-337" - ???
  7488.     AH = F1h
  7489.     ???
  7490. Return: ???
  7491. SeeAlso: AH=F0h"VIRUS",AX=F1E9h
  7492. --------v-21F1E9-----------------------------
  7493. INT 21 - VIRUS - "Tremor" - INSTALLATION CHECK
  7494.     AX = F1E9h
  7495. Return: AX = installation state
  7496.         CADEh installed, and calling program is infected
  7497.         F100h not installed (normal DOS return value)
  7498.         else  installed, but calling program is not infected
  7499. SeeAlso: AH=F1h"VIRUS",AX=F2AAh
  7500. --------N-21F2-------------------------------
  7501. INT 21 u - Novell NetWare v3.01+ shell interface - MULTIPLEXOR
  7502.     AH = F2h
  7503.     AL = function (see #1266)
  7504.         (subfunction stored at DS:SI for AL=56h,57h,
  7505.           DS:SI+2 for AL=15h-17h,23h, DS:SI+11h for AL=68h)
  7506.     CX = length of request buffer in bytes
  7507.     DX = length of reply buffer in bytes
  7508.     DS:SI -> request buffer (contents vary by function)
  7509.     ES:DI -> reply buffer (contents vary by function)
  7510. Return: AL = status
  7511.     reply buffer filled as appropriate for function
  7512. Note:    this is a multiplexor providing a "raw" interface to the underlying
  7513.       NetWare Core Protocol.  Many functions which were accessed via a
  7514.       separate AH function in older versions can also be accessed here,
  7515.       but some NetWare 3.x calls appear to be available only here.
  7516. SeeAlso: AX=F244h,AX=F268h/SF=3Dh
  7517.  
  7518. (Table 1266)
  7519. Values for NetWare Core Protocol functions:
  7520. Fnc/Subfn    Description
  7521. 01h    File Set Lock
  7522. 02h    File Release Lock
  7523. 03h    Log File (see AH=EBh"NetWare")
  7524. 04h    Lock File Set (see AH=CBh"NetWare")
  7525. 05h    Release File (see AH=CCh,AH=ECh"NetWare")
  7526. 06h    Release File Set (see AH=CDh"NetWare")
  7527. 07h    Clear File (see AH=CEh,AH=EDh"NetWare")
  7528. 08h    Clear File Set (see AH=CFh"NetWare")
  7529. 09h    Log Logical Record (see AH=D0h"NetWare")
  7530. 0Ah    Lock Logical Record Set (see AH=D1h"NetWare")
  7531. 0Bh    Clear Logical Record (see AH=D4h"NetWare")
  7532. 0Ch    Release Logical Record (see AH=D2h"NetWare")
  7533. 0Dh    Release Logical Record Set (see AH=D3h"NetWare")
  7534. 0Eh    Clear Logical Record Set (see AH=D5h"NetWare")
  7535. 0Fh    Allocate Resource (see AH=D8h"NetWare")
  7536. 10h    Deallocate Resource (see AH=D9h"NetWare")
  7537. 11h/0Ah    Get Printer Queue
  7538. 11h/xxh    print spooling (see AX=E0xxh"NetWare")
  7539. 12h    Get Volume Info with Number (see AH=DAh"NetWare")
  7540. 13h    Get Station Number (see AH=DCh"NetWare")
  7541. 14h    Get File Server Date and Time (NW v2.2+) (see AH=E7h"NetWare")
  7542. 15h/xxh    broadcast services (see AX=E1xxh"NetWare")
  7543. 16h/01h Get Directory Path
  7544. 16h/0Fh    Rename Directory
  7545. 16h/1Bh    Scan Salvagable Files
  7546. 16h/1Ch    Recover Salvagable File
  7547. 16h/1Dh    Purge Salvagable File
  7548. 16h/1Eh    Scan Dir Entry
  7549. 16h/1Fh    Get Dir ENtry
  7550. 16h/20h    Scan Volume for Restrictions
  7551. 16h/21h    Add User Disk Space Restriction (see AX=F216h/SF=21h)
  7552. 16h/22h    Clear Volume Restrictions
  7553. 16h/23h    Scan Dir Restrictions
  7554. 16h/24h    Set Directory Disk Space Restriction (see AX=F216h/SF=24h)
  7555. 16h/25h    Set Entry
  7556. 16h/26h    Scan File or Directory For Extended Trustees (see AX=F216h/SF=26h)
  7557. 16h/27h    Add Extended Trustee to Directory or File (see AX=F216h/SF=27h)
  7558. 16h/28h    Scan File Physical
  7559. 16h/29h    Get Object Disk Restrictions (see AX=F216h/SF=29h)
  7560. 16h/2Ah    Get Effective Rights
  7561. 16h/2Bh    Delete Trustee
  7562. 16h/2Ch    Get Volume Usage
  7563. 16h/2Dh    Get Dir Info
  7564. 16h/2Eh    Move Entry
  7565. 16h/2Fh    Fill Name Space Buffer
  7566. 16h/30h    Get Name Space Entry
  7567. 16h/31h    Open Data Stream
  7568. 16h/32h    Get Object Effective Rights
  7569. 16h/33h    Get Extended Volume Info
  7570. 16h/F3h    Map Directory Number to Path
  7571. 16h/xxh file/directory services (see AX=E2xxh"NetWare")
  7572. 17h/0Eh Get Disk Utilization
  7573. 17h/17h    Get Encryption Key
  7574. 17h/18h    Login Object Encrypted
  7575. 17h/1Ch    Get Connection Information (see AX=F217h/SF=1Ch)
  7576. 17h/1Fh    Get Connection List from Object
  7577. 17h/32h Create Bindery Object
  7578. 17h/33h Delete Bindery Object
  7579. 17h/34h Rename Object
  7580. 17h/35h Get Bindery Object ID
  7581. 17h/36h Get Bindery Object Name
  7582. 17h/37h Scan Bindery Object
  7583. 17h/38h Change Bindery Object Security
  7584. 17h/39h Create Property
  7585. 17h/3Ah Delete Property
  7586. 17h/3Bh Change Property Security
  7587. 17h/3Ch Scan Property
  7588. 17h/3Dh Read Property Value
  7589. 17h/3Eh Write Property Value
  7590. 17h/41h Add Bindery Object to Set
  7591. 17h/42h Delete Bindery Object from Set
  7592. 17h/43h Is Bindery Object in Set
  7593. 17h/44h Close Bindery
  7594. 17h/45h Open Bindery
  7595. 17h/46h Get Bindery Access Level
  7596. 17h/47h Scan Bindery Object Trustee Paths
  7597. 17h/48h    Get Bindery Object Access Level
  7598. 17h/49h    Is Station a Manager?
  7599. 17h/4Ah    Verify Bindery Object Password Encrypted
  7600. 17h/4Bh    Change Bindery Object Password Encrypted
  7601. 17h/4Ch    Get Relation of an Object
  7602. 17h/96h Get Account Status
  7603. 17h/97h Submit Account Charge
  7604. 17h/98h Submit Account Hold
  7605. 17h/99h Submit Account Note
  7606. 17h/D2h Clear Connection Number (Logout Station) (see AX=F217h/SF=D2h)
  7607. 17h/DAh Get Connection's Task Information (NW v2.2)
  7608. 17h/DBh Get Connection's Open Files (NW v2.2)
  7609. 17h/DCh Get Connections Using a File (NW v2.2)
  7610. 17h/E5h Get Connection's Usage Statistics (NW v2.2)
  7611. 17h/E6h Get Object's Remaining Disk Space
  7612. 17h/EAh Get Connection's Task Information (NW v3.11+)
  7613. 17h/EBh    Get Connection's Open Files (NW v3.11+) (see AX=F217h/SF=EBh)
  7614. 17h/ECh    Get Connections Using a File (NW v3.11+) (see AX=F217h/SF=ECh)
  7615. 17h/EEh    Get Physical Record Locks by File (see AX=F217h/SF=EEh)
  7616. 17h/F2h Get Semaphore Information (see AX=F217h/SF=F2h)
  7617. 17h/F3h Map Directory Number to Path (see AX=F217h/SF=F3h)
  7618. 17h/F4h    Convert Path to Directory Entry (see AX=F217h/SF=F4h)
  7619. 17h/xxh    connection control (see AX=E3xxh"NetWare")
  7620. 18h    End of Job (see AH=D6h"NetWare")
  7621. 19h    Logout (see AH=D7h"NetWare")
  7622. 1Ah    Log Physical Record (see AH=BCh"NetWare")
  7623. 1Bh    Lock Physical Record Set (see AH=C2h"NetWare")
  7624. 1Ch    Release Physical Record (see AH=BDh"NetWare")
  7625. 1Dh    Release Physical Record Set (see AH=C3h"NetWare")
  7626. 1Eh    Clear Physical Record (see AH=BEh"NetWare")
  7627. 1Fh    Clear Physical Record Set (see AH=C4h"NetWare")
  7628. 20h/xxh    semaphore services (see AX=C5xxh"NetWare")
  7629. 21h    Negotiate Buffer
  7630. 22h/00h    TTS Is Available (see AX=C702h"NetWare")
  7631. 22h/01h    TTS Begin Transaction (see AX=C700h"NetWare")
  7632. 22h/02h    TTS End Transaction (see AX=C701h"NetWare")
  7633. 22h/03h    TTS Abort Transaction (see AX=C703h"NetWare")
  7634. 22h/04h    TTS Transaction Status (see AX=C704h"NetWare")
  7635. 22h/05h    TTS Get Application Thresholds (see AX=C705h"NetWare")
  7636. 22h/06h    TTS Set Application Thresholds (see AX=C706h"NetWare")
  7637. 22h/07h    TTS Get Workstation Thresholds (see AX=C707h"NetWare")
  7638. 22h/08h    TTS Set Workstation Thresholds (see AX=C708h"NetWare")
  7639. 22h/09h    TTS Get Control Flags
  7640. 22h/0Ah    TTS Set Control Flags
  7641. 23h/01h    AFP Create Directory
  7642. 23h/02h    AFP Create File
  7643. 23h/03h    AFP Delete
  7644. 23h/04h    AFP Get Entry ID From Name
  7645. 23h/05h    AFP Get File Infomration
  7646. 23h/06h    AFP Get Entry ID From NetWare Handle
  7647. 23h/07h    AFP Rename
  7648. 23h/08h    AFP Open File Fork
  7649. 23h/09h    AFP Set File Information
  7650. 23h/0Ah    AFP Scan File Information
  7651. 23h/0Bh    AFP Alloc Temporary Dir Handle
  7652. 23h/0Ch    AFP Get Entry ID From Path Name
  7653. 23h/0Dh AFP 2.0 Create Directory
  7654. 23h/0Eh AFP Get DOS Name from Entry ID
  7655. 23h/0Eh AFP 2.0 Create File
  7656. 23h/10h AFP 2.0 Set File Information
  7657. 23h/11h AFP 2.0 Scan File Information
  7658. 23h/13h AFP Get Macintosh Info on Deleted File
  7659. 3Dh    Commit File
  7660. 3Eh    File Search Initialize (FindFirst)
  7661. 3Fh    File Search Continue (FindNext)
  7662. 40h    Search File
  7663. 42h    File Close
  7664. 43h    File Create
  7665. 44h    Erase Files
  7666. 45h    File Rename
  7667. 46h    Set File Attributes
  7668. 47h    Get File Size
  7669. 48h    File Read
  7670. 49h    File Write
  7671. 4Ah    File Server Copy (see AH=F3h"NetWare")
  7672. 4Bh    Set File Time and Date
  7673. 4Ch    File Open
  7674. 4Dh    Create New File
  7675. 4Eh    Allow Task Access to File
  7676. 4Fh    Set Extended File Attributes (see AH=B6h"NetWare")
  7677. 55h    Get File Bit Map
  7678. 56h/xx    extended attribute services (OS/2)
  7679. 56h/01h    close extended attribute
  7680. 56h/02h    write extended attribute
  7681. 56h/03h    read extended attribute
  7682. 56h/04h    enumerate extended attribute
  7683. 56h/05h    duplicate EA
  7684. 57h/01h    open/create file/directory
  7685. 57h/02h    init search, continue with 57h/03h
  7686. 57h/03h    Scan NS Entry Info
  7687. 57h/04h    rename file/directory
  7688. 57h/05h    scan for trustees
  7689. 57h/06h    Get NS Entry Info (see AX=F257h/SF=06h)
  7690. 57h/07h    Set NS Entry DOS Info
  7691. 57h/08h    delete file/directory
  7692. 57h/09h    set short directory handle
  7693. 57h/0Ah    Add Trustee
  7694. 57h/0Bh    Delete Trustee
  7695. 57h/0Ch    Allocate Temp NS Dir Handle
  7696. 57h/13h    Read NS Info
  7697. 57h/15h    get path string for short directory handle
  7698. 57h/16h    Get Directory Base
  7699. 57h/17h    Get NS Info
  7700. 57h/19h    Write NS Info
  7701. 57h/1Ah    Read Extended NS Info
  7702. 57h/1Bh    Write Extended NS Infor
  7703. 57h/1Ch    Get NS Path
  7704. 57h/1Dh    Get Effective Rights
  7705. 58h/01h    Get Volume Audit Statistics
  7706. 58h/02h    Add Audit Property
  7707. 58h/03h    Login as Volume Auditor
  7708. 58h/04h Change Auditor Password
  7709. 58h/05h Check Audit Access
  7710. 58h/06h    Remove Audit Property
  7711. 58h/07h    Disable Auditing on Volume
  7712. 58h/08h    Enable Auditing on Volume
  7713. 58h/09h    Is User Audited?
  7714. 58h/0Ah    Read Auditing Bit Map
  7715. 58h/0Bh    Read Audit Config Header
  7716. 58h/0Dh    Logout as Volume Auditor
  7717. 58h/0Eh    Reset Auditing File
  7718. 58h/0Fh    Reset Audit History File
  7719. 58h/10h    Write Auditing Bit Map
  7720. 58h/11h    Write Audit Config Header
  7721. 58h/13h    Get Auditing Flags
  7722. 58h/14h    Close Old Auditing File
  7723. 58h/15h    Delete Old Auditing File
  7724. 58h/16h    Check Audit Level Two Access
  7725. 5Ah/01h    Get DM (Data Migration) Info
  7726. 5Ah/80h Move File Data to DM
  7727. 5Ah/81h DM File Information
  7728. 5Ah/82h Volume DM Status
  7729. 5Ah/83h Get Migration or Status Information
  7730. 5Ah/84h DM Support Module Information
  7731. 5Ah/85h Move File Data from DM
  7732. 5Ah/86h Get or Set Default Support Module
  7733. 61h    Negotiate LIP Buffer, packet signing, and IPX checksums
  7734. 65h    Packet Burst Connection
  7735. 68h/xxh NetWare 4.x directory services (subfn at DS:[SI+11h])
  7736. 68h/01h NDS resolve name
  7737. 68h/03h    NDS read property
  7738. 68h/35h NDS get server address
  7739. 68h/36h NDS set keys
  7740. 68h/39h NDS begin login
  7741. 68h/3Ah NDS finish login
  7742. 68h/3Bh NDS begin authenticate
  7743. 68h/3Ch NDS finish authenticate
  7744. 68h/3Dh NDS Logout
  7745. 72h    NetWare 4.x Time Services
  7746. 7Bh/01h    Get Cache Information
  7747. 7Bh/02h    Get File Server Information
  7748. 7Bh/03h    Get NetWare File Systems Information
  7749. 7Bh/04h    Get User Information
  7750. 7Bh/05h    Get Packet Burst Information
  7751. 7Bh/06h    Get IPX/SPX Information
  7752. 7Bh/07h    Get Garbage Collection Information
  7753. 7Bh/08h    Get CPU Information
  7754. 7Bh/09h    Get Volume Switch Information
  7755. 7Bh/0Ah    Get NLM Loaded List
  7756. 7Bh/0Bh    Get NLM Information
  7757. 7Bh/0Ch    Get Directory Cache Information
  7758. 7Bh/0Dh    Get OS Version Information
  7759. 7Bh/0Eh    Get Active Connection List by Type
  7760. 7Bh/0Fh    Get NLM's Resource Tag List
  7761. 7Bh/14h    Get Active LAN Board List
  7762. 7Bh/15h    Get LAN Configuration Information
  7763. 7Bh/16h    Get LAN Common Counters Information
  7764. 7Bh/17h    Get LAN Custom Counters Information
  7765. 7Bh/18h    Get LAN Config Strings
  7766. 7Bh/19h    Get LSL Informatino
  7767. 7Bh/1Ah    Get LSL Logical Board Statistics
  7768. 7Bh/1Eh    Get Media Manager Object Information
  7769. 7Bh/1Fh    Get Media Manager Object List
  7770. 7Bh/20h    Get Media Manager Object Children List
  7771. 7Bh/21h    Get Volume Segment List
  7772. 7Bh/28h    Get Active Protocol Stacks
  7773. 7Bh/29h    Get Protocol Stack Configuration Information
  7774. 7Bh/2Ah    Get Protocol Stack Statistics Information
  7775. 7Bh/2Bh    Get Protocol Stack Custom Information
  7776. 7Bh/2Ch    Get Protocol Stack Numbers By Media Number
  7777. 7Bh/2Dh    Get Protocol Stack Numbers By LAN Board Number
  7778. 7Bh/2Eh    Get Media Name by Media Number
  7779. 7Bh/2Fh    Get Loaded Media Number List
  7780. 7Bh/32h    Get General Router and SAP Information
  7781. 7Bh/33h    Get Network Router Information
  7782. 7Bh/34h    Get Network Routers Information
  7783. 7Bh/35h    Get Known Networks Information
  7784. 7Bh/36h    Get Server Information
  7785. 7Bh/38h    Get Known Servers Information
  7786. 7Bh/3Ch    Get Server Set Commands Information
  7787. 7Bh/3Dh    Get Server Set Categories
  7788. Note:    the subfunction is stored at DS:SI for AL=56h,57h, DS:SI+2 for
  7789.       AL=15h-17h,23h
  7790. --------T-21F2-------------------------------
  7791. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  7792.     AH = F2h
  7793.     AL = character
  7794. Return: AL = status
  7795.         00h successful
  7796.         01h buffer full (128 characters)
  7797. SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS"
  7798. SeeAlso: AH=F8h"DoubleDOS"
  7799. --------N-21F216SF21-------------------------
  7800. INT 21 - Novell NetWare v3+ - ADD USER DISK SPACE RESTRICTION
  7801.     AX = F216h subfn 21h
  7802.     CX = length of request buffer in bytes
  7803.     DX = length of reply buffer in bytes
  7804.     DS:SI -> request buffer (see #1267)
  7805.     ES:DI -> reply buffer (ignored)
  7806. Return: AL = status
  7807. SeeAlso: AX=F216h/SF=24h
  7808.  
  7809. Format of NetWare request buffer:
  7810. Offset    Size    Description    (Table 1267)
  7811.  00h    WORD    000Ah (length of following data)
  7812.  02h    BYTE    21h (subfunction "Add User Disk Space Restriction")
  7813.  03h    BYTE    volume number
  7814.  04h    DWORD    (big-endian) object ID
  7815.  08h    DWORD    (big-endian) disk space limit in 4K blocks
  7816.         00000000h to 40000000h
  7817. --------N-21F216SF24-------------------------
  7818. INT 21 - Novell NetWare v3+ - SET DIRECTORY DISK SPACE RESTRICTION
  7819.     AX = F216h subfn 24h
  7820.     CX = length of request buffer in bytes
  7821.     DX = length of reply buffer in bytes
  7822.     DS:SI -> request buffer (see #1268)
  7823.     ES:DI -> reply buffer (ignored)
  7824. Return: AL = status
  7825. SeeAlso: AX=F216h/SF=21h
  7826.  
  7827. Format of NetWare request buffer:
  7828. Offset    Size    Description    (Table 1268)
  7829.  00h    WORD    0006h (length of following data)
  7830.  02h    BYTE    24h (subfunction "Set Directory Disk Space Restriction")
  7831.  03h    BYTE    directory handle
  7832.  04h    DWORD    (big-endian) disk space limit in 4K blocks
  7833.         00000000h to remove restriction, negative to set to 0 blocks
  7834. --------N-21F216SF26-------------------------
  7835. INT 21 - Novell NetWare v3+ - SCAN FILE OR DIRECTORY FOR EXTENDED TRUSTEES
  7836.     AX = F216h subfn 26h
  7837.     CX = length of request buffer in bytes
  7838.     DX = length of reply buffer in bytes
  7839.     DS:SI -> request buffer (see #1269)
  7840.     ES:DI -> reply buffer (see #1270)
  7841. Return: AL = status
  7842. Desc:    get up to 20 extended trustee entries per call for a file or directory
  7843.  
  7844. Format of NetWare request buffer:
  7845. Offset    Size    Description    (Table 1269)
  7846.  00h    WORD    length of following data
  7847.  02h    BYTE    26h (subfunc "Scan File or Directory For Extended Trustees")
  7848.  03h    BYTE    directory handle
  7849.  04h    BYTE    sequence number
  7850.         00h for first call, increment by number of returned entries
  7851.  05h    BYTE    length of path
  7852.  06h  N BYTEs    pathname
  7853.  
  7854. Format of NetWare reply buffer:
  7855. Offset    Size    Description    (Table 1270)
  7856.  00h    BYTE    number of entries returned (max 20)
  7857.  01h 20 DWORDs    (big-endian) list of object IDs
  7858.  51h 20 WORDs    list of associated trustee rights
  7859. --------N-21F216SF27-------------------------
  7860. INT 21 - Novell NetWare v3+ - ADD EXTENDED TRUSTEE TO DIRECTORY OR FILE
  7861.     AX = F216h subfn 27h
  7862.     CX = length of request buffer in bytes
  7863.     DX = length of reply buffer in bytes
  7864.     DS:SI -> request buffer (see #1271)
  7865.     ES:DI -> reply buffer (ignored)
  7866. Return: AL = status
  7867.  
  7868. Format of NetWare request buffer:
  7869. Offset    Size    Description    (Table 1271)
  7870.  00h    WORD    length of following data
  7871.  02h    BYTE    27h (subfunction "Add Extended Trustee to Directory or File")
  7872.  03h    BYTE    directory handle
  7873.  04h    DWORD    (big-endian) object ID
  7874.  08h    WORD    trustee rights (see #1272)
  7875.  0Ah    BYTE    path length
  7876.  0Bh  N BYTEs    path name
  7877.  
  7878. Bitfields for NetWare trustee rights:
  7879. Bit(s)    Description    (Table 1272)
  7880.  0    read
  7881.  1    write
  7882.  3    create
  7883.  4    delete
  7884.  5    access
  7885.  6    file
  7886.  7    modify
  7887.  8    supervisor
  7888. --------N-21F216SF29-------------------------
  7889. INT 21 - Novell NetWare v3+ - GET OBJECT DISK RESTRICTIONS
  7890.     AX = F216h subfn 29h
  7891.     CX = length of request buffer in bytes
  7892.     DX = length of reply buffer in bytes
  7893.     DS:SI -> request buffer (see #1273)
  7894.     ES:DI -> reply buffer (see #1274)
  7895. Return: AL = status
  7896.     reply buffer filled
  7897. Note:    this function returns successfully, showing no restriction, if an
  7898.       invalid object ID is specified
  7899. SeeAlso: AX=F216h/SF=24h
  7900.  
  7901. Format of NetWare request buffer:
  7902. Offset    Size    Description    (Table 1273)
  7903.  00h    WORD    0006h (length of following data)
  7904.  02h    BYTE    21h (subfunction "Get Object Disk Restrictions")
  7905.  03h    BYTE    volume number
  7906.  04h    DWORD    (big-endian) object ID
  7907.  
  7908. Format of NetWare reply buffer:
  7909. Offset    Size    Description    (Table 1274)
  7910.  00h    DWORD    disk space limit
  7911.  04h    DWORD    disk space currently in use by object
  7912. --------N-21F216SF33-------------------------
  7913. INT 21 - Novell NetWare v4 - GET EXTENDED VOLUME INFORMATION
  7914.     AX = F216h subfn 33h
  7915.     CX = length of request buffer in bytes
  7916.     DX = length of reply buffer in bytes
  7917.     DS:SI -> request buffer (see #2733)
  7918.     ES:DI -> reply buffer (see #2734)
  7919. Return: AL = status (see #1572 at INT 2F/AX=7A20h/BX=0000h)
  7920.     reply buffer filled
  7921.  
  7922. Format of NetWare "Get Extended Volume Information" request buffer:
  7923. Offset    Size    Description    (Table 2733)
  7924.  00h    WORD    length of following data
  7925.  02h    BYTE    33h (subfunction "Get Extended Volume Information")
  7926.  03h    DWORD    volume number
  7927. SeeAlso: #2734
  7928.  
  7929. Format of NetWare "Get Extended Volume Information" reply buffer:
  7930. Offset    Size    Description    (Table 2734)
  7931.  00h    WORD    length of returned data
  7932.  02h    DWORD    volume type
  7933.  06h    DWORD    status flag bits
  7934.  0Ah    DWORD    sector size
  7935.  0Eh    DWORD    sectors per cluster
  7936.  12h    DWORD    total clusters in volume
  7937.  16h    DWORD    free clusters
  7938.  1Ah    DWORD    freeable suballocated clusters
  7939.  1Eh    DWORD    freeable in-limbo sectors
  7940.  22h    DWORD    non-freeable in-limbo sectors
  7941.  26h    DWORD    non-freeable available suballocated sectors
  7942.  2Ah    DWORD    unuable suballocated sectors
  7943.  2Eh    DWORD    total suballocated clusters
  7944.  32h    DWORD    number of data streams
  7945.  36h    DWORD    number of in-limbo data streams
  7946.  3Ah    DWORD    age of oldest deleted file in clock ticks
  7947.  3Eh    DWORD    number of compressed data streams
  7948.  42h    DWORD    number of compressed in-limbo data streams
  7949.  46h    DWORD    number of uncompressable data streams
  7950.  4Ah    DWORD    number of precompressed sectors
  7951.  4Eh    DWORD    number of compressed sectors
  7952.  52h    DWORD    number of migrated files
  7953.  56h    DWORD    number of migrated sectors
  7954.  5Ah    DWORD    number of clusters used by FAT
  7955.  5Eh    DWORD    number of clusters used by directories
  7956.  62h    DWORD    number of clusters used by extended directories
  7957.  66h    DWORD    total number of directory entries
  7958.  6Ah    DWORD    number of unused directory entries
  7959.  6Eh    DWORD    total number of extended directory extants
  7960.  72h    DWORD    number of unused extended directory extants
  7961.  76h    DWORD    number of extended attributes defined
  7962.  7Ah    DWORD    number of extended-attribute extants used
  7963.  7Eh    DWORD    object ID for Directory Services
  7964.  82h    DWORD    date and time volume last modified
  7965.  86h    var    counted??? volume name string
  7966. SeeAlso: #2733
  7967. --------N-21F217SF1C-------------------------
  7968. INT 21 - Novell NetWare v3+ - GET CONNECTION INFORMATION
  7969.     AX = F217h subfn 1Ch
  7970.     CX = length of request buffer in bytes
  7971.     DX = length of reply buffer in bytes
  7972.     DS:SI -> request buffer (see #1275)
  7973.     ES:DI -> reply buffer (see #1276)
  7974. Return: AL = status
  7975.     reply buffer filled
  7976. SeeAlso: AH=F2h"Novell"
  7977.  
  7978. Format of NetWare request buffer:
  7979. Offset    Size    Description    (Table 1275)
  7980.  00h    WORD    0005h (length of following data)
  7981.  02h    BYTE    1Ch (subfunction "Get Connection Information")
  7982.  03h    DWORD    target connection number
  7983. Note:    connection numbers greater than the maximum supported by the server
  7984.       can cause ABENDs
  7985.  
  7986. Format of NetWare reply buffer:
  7987. Offset    Size    Description    (Table 1276)
  7988.  00h    DWORD    (big-endian) unique user ID, 00000000h if no one logged in
  7989.  04h    WORD    (big-endian) user type
  7990.  06h 48 BYTEs    user name
  7991.  36h  7 BYTEs    login time (see #1258)
  7992.  3Dh    BYTE    reserved
  7993. --------N-21F217SF1D-------------------------
  7994. INT 21 - Novell NetWare v4 - CHANGE CONNECTION STATE
  7995.     AX = F217h subfn 1Dh
  7996.     CX = length of request buffer in bytes
  7997.     DX = length of reply buffer in bytes
  7998.     DS:SI -> request buffer (see #2729)
  7999.     ES:DI -> reply buffer
  8000. Return: AL = status (see #1572 at INT 2F/AX=7A20h/BX=0000h)
  8001.     reply buffer filled
  8002.  
  8003. Format of NetWare "Change Connection State" requst buffer:
  8004. Offset    Size    Description    (Table 2729)
  8005.  00h    WORD    length of following data
  8006.  02h    BYTE    1Dh (subfunction "Change Connection State")
  8007.  03h    DWORD    new state
  8008. --------N-21F217SF1E-------------------------
  8009. INT 21 - Novell NetWare v4 - SET WATCHDOG DELAY INTERVAL
  8010.     AX = F217h subfn 1Eh
  8011.     CX = length of request buffer in bytes
  8012.     DX = length of reply buffer in bytes
  8013.     DS:SI -> request buffer (see #2732)
  8014.     ES:DI -> reply buffer
  8015. Return: AL = status (see #1572 at INT 2F/AX=7A20h/BX=0000h)
  8016.     reply buffer filled
  8017.  
  8018. Format of NetWare "Set Watchdog Delay Interval" request buffer:
  8019. Offset    Size    Description    (Table 2732)
  8020.  00h    WORD    length of following data
  8021.  02h    BYTE    1Eh (subfunction "Set Watchdog Delay Interval")
  8022.  03h    DWORD    interval in minutes
  8023. --------N-21F217SF1F-------------------------
  8024. INT 21 - Novell NetWare v4 - GET CONNECTION LIST
  8025.     AX = F217h subfn 1Fh
  8026.     CX = length of request buffer in bytes
  8027.     DX = length of reply buffer in bytes
  8028.     DS:SI -> request buffer (see #2731)
  8029.     ES:DI -> reply buffer
  8030. Return: AL = status (see #1572 at INT 2F/AX=7A20h/BX=0000h)
  8031.     reply buffer filled
  8032.  
  8033. Format of NetWare "Get Connection List" request buffer:
  8034. Offset    Size    Description    (Table 2731)
  8035.  00h    WORD    length of following data
  8036.  02h    BYTE    1Fh (subfunction "Get Connection List")
  8037.  03h    DWORD    object ID
  8038.  07h    DWORD    ??? (initialize to FFFFFFFFh before first call)
  8039. --------N-21F217SF33-------------------------
  8040. INT 21 - Novell NetWare v2.2+ - GET VOLUME EXTENDED INFORMATION
  8041.     AX = F217h subfn 33h
  8042.     CX = length of request buffer in bytes
  8043.     DX = length of reply buffer in bytes
  8044.     DS:SI -> request buffer (see #2727)
  8045.     ES:DI -> reply buffer (see #2728)
  8046. Return: AX = status (see #1572 at INT 2F/AX=7A20h/BX=0000h)
  8047.  
  8048. Format of NetWare "Get Volume Extended Information" request buffer:
  8049. Offset    Size    Description    (Table 2727)
  8050.  00h    WORD    0002h (length of following data)
  8051.  02h    BYTE    33h (subfunction "Get Volume Extended Information")
  8052.  03h    BYTE    volume ID
  8053. SeeAlso: #2728
  8054.  
  8055. Format of NetWare "Get Volume Extended Information" reply buffer:
  8056. Offset    Size    Description    (Table 2728)
  8057.  00h    WORD    (call) length of buffer
  8058.         (ret) length of returned data
  8059.  02h    DWORD    ???
  8060.  06h    DWORD    features
  8061.         bit 0: suballocation
  8062.         bit 1: compressoin
  8063.         bit 2: migration
  8064.         bit 3: auditing
  8065.  0Ah 31 DWORDs    ???
  8066.  86h    var    ASCIZ volume name
  8067. SeeAlso: #2727
  8068. --------N-21F217SF41-------------------------
  8069. INT 21 - Novell NetWare v2.2+ - ADD OBJECT TO SET
  8070.     AX = F217h subfn 41h
  8071.     BX = number of fragments in request packet (max 5)
  8072.     CX = connection handle
  8073.     DX = 0000h (length of reply buffer in bytes)
  8074.     DS:SI -> request buffer (see #2694)
  8075. Return: AX = status (see #1572 at INT 2F/AX=7A20h/BX=0000h)
  8076. Desc:    add a member to an object's group property
  8077. SeeAlso: AH=F2h"Novell"
  8078.  
  8079. Format of NetWare "Add Object to Set" request buffer:
  8080. Offset    Size    Description    (Table 2694)
  8081.  00h    WORD    length of following data
  8082.  02h    BYTE    41h (subfunction "Add Object to Set")
  8083.  03h    WORD    (big-endian) object type
  8084.  05h    BYTE    length of object name
  8085.  06h  N BYTEs    object name
  8086.     BYTE    length of property name
  8087.       N BYTEs    property name
  8088.     WORD    type of object being added to set
  8089.     BYTE    length of member object's name
  8090.       N BYTEs    member object's name
  8091. --------N-21F217SFD2-------------------------
  8092. INT 21 - Novell NetWare v3+ - CLEAR CONNECTION NUMBER (LOGOUT STATION)
  8093.     AX = F217h subfn D2h
  8094.     CX = length of request buffer in bytes
  8095.     DX = length of reply buffer in bytes
  8096.     DS:SI -> request buffer (see #1277)
  8097.     ES:DI -> reply buffer (ignored)
  8098. Return: AL = status
  8099.     reply buffer filled
  8100.  
  8101. Format of NetWare request buffer:
  8102. Offset    Size    Description    (Table 1277)
  8103.  00h    WORD    0002h (length of following data)
  8104.  02h    BYTE    D2h (subfunction "Clear Connection Number")
  8105.  03h    BYTE    connection number
  8106. --------N-21F217SFEB-------------------------
  8107. INT 21 - Novell NetWare v3+ - GET CONNECTION'S OPEN FILES
  8108.     AX = F217h subfn EBh
  8109.     CX = length of request buffer in bytes
  8110.     DX = length of reply buffer in bytes
  8111.     DS:SI -> request buffer (see #1278)
  8112.     ES:DI -> reply buffer (see #1279)
  8113. Return: AL = status
  8114.     reply buffer filled
  8115.  
  8116. Format of NetWare request buffer:
  8117. Offset    Size    Description    (Table 1278)
  8118.  00h    WORD    0005h (length of following data)
  8119.  02h    BYTE    EBh (subfunction "Get Connection's Open Files")
  8120.  03h    WORD    target connection number
  8121.  05h    WORD    last record seen (set to 0000h for first call)
  8122. Note:    connection numbers greater than the maximum supported by the server
  8123.       can cause ABENDs
  8124.  
  8125. Format of NetWare reply buffer:
  8126. Offset    Size    Description    (Table 1279)
  8127.  00h    WORD    next request record
  8128.  02h    WORD    number of records returned (max 28)
  8129.  04h 29N BYTEs    array of connection records (see #1280)
  8130.  
  8131. Format of NetWare connection record:
  8132. Offset    Size    Description    (Table 1280)
  8133.  00h    WORD    task number
  8134.  02h    BYTE    lock type
  8135.  03h    BYTE    access control
  8136.  04h    BYTE    lock flag
  8137.  05h    BYTE    volume number
  8138.  06h    DWORD    parent directory entry number
  8139.  0Ah    DWORD    directory entry number
  8140.  0Eh    BYTE    reserved
  8141.  0Fh    BYTE    data stream type
  8142.  10h    BYTE    file name length
  8143.  11h 12 BYTEs    file name
  8144. --------N-21F217SFEC-------------------------
  8145. INT 21 - Novell NetWare v3+ - GET CONNECTIONS USING A FILE
  8146.     AX = F217h subfn ECh
  8147.     CX = length of request buffer in bytes
  8148.     DX = length of reply buffer in bytes
  8149.     DS:SI -> request buffer (see #1281)
  8150.     ES:DI -> reply buffer (see #1282)
  8151. Return: AL = status
  8152.     reply buffer filled
  8153.  
  8154. Format of NetWare request buffer:
  8155. Offset    Size    Description    (Table 1281)
  8156.  00h    WORD    0009h (length of following data)
  8157.  02h    BYTE    ECh (subfunction "Get Connections Using a File")
  8158.  03h    BYTE    data stream type
  8159.  04h    BYTE    volume number
  8160.  05h    DWORD    directory entry number
  8161.  09h    WORD    last record seen (0000h for first call)
  8162.  
  8163. Format of NetWare reply buffer:
  8164. Offset    Size    Description    (Table 1282)
  8165.  00h    WORD    next request record
  8166.  02h    WORD    use count
  8167.  04h    WORD    open count
  8168.  06h    WORD    number of times open for reading
  8169.  08h    WORD    number of times open for writing
  8170.  0Ah    WORD    Deny Read count
  8171.  0Ch    WORD    Deny Write count
  8172.  0Eh    BYTE    flag: locked
  8173.  0Fh    BYTE    data stream type
  8174.  10h    WORD    number of records returned (max 70)
  8175.  12h 7N BYTEs    returned records (see #1283)
  8176.  
  8177. Format of returned record:
  8178. Offset    Size    Description    (Table 1283)
  8179.  00h    WORD    connection number
  8180.  02h    WORD    task number
  8181.  04h    BYTE    lock type
  8182.  05h    BYTE    access flag
  8183.  06h    BYTE    lock flag
  8184. --------N-21F217SFEE-------------------------
  8185. INT 21 - Novell NetWare v3+ - GET PHYSICAL RECORD LOCKS BY FILE
  8186.     AX = F217h subfn EEh
  8187.     CX = length of request buffer in bytes
  8188.     DX = length of reply buffer in bytes
  8189.     DS:SI -> request buffer (see #1284)
  8190.     ES:DI -> reply buffer (see #1285)
  8191. Return: AL = status
  8192.     reply buffer filled
  8193.  
  8194. Format of NetWare request buffer:
  8195. Offset    Size    Description    (Table 1284)
  8196.  00h    WORD    0009h (length of following data)
  8197.  02h    BYTE    EEh (subfunction "Get Physical Record Locks by File")
  8198.  03h    BYTE    data stream number
  8199.  04h    BYTE    volume number
  8200.  05h    DWORD    directory entry number
  8201.  09h    WORD    last record seen (0000h for first call)
  8202.  
  8203. Format of NetWare reply buffer:
  8204. Offset    Size    Description    (Table 1285)
  8205.  00h    WORD    next request record
  8206.  02h    WORD    number of locks
  8207.  04h 17N BYTEs    array of lock records, one per lock (see #1286)
  8208.  
  8209. Format of NetWare lock record:
  8210. Offset    Size    Description    (Table 1286)
  8211.  00h    WORD    logged count
  8212.  02h    WORD    number of shareable locks
  8213.  04h    DWORD    start offset of record
  8214.  08h    DWORD    end offset of record
  8215.  0Ch    WORD    logical connection number
  8216.  0Eh    WORD    task number
  8217.  10h    BYTE    lock type
  8218. --------N-21F217SFF2-------------------------
  8219. INT 21 - Novell NetWare v3+ - GET SEMAPHORE INFORMATION
  8220.     AX = F217h subfn F2h
  8221.     CX = length of request buffer in bytes
  8222.     DX = length of reply buffer in bytes
  8223.     DS:SI -> request buffer (see #1287)
  8224.     ES:DI -> reply buffer (see #1288)
  8225. Return: AL = status
  8226.     reply buffer filled
  8227.  
  8228. Format of NetWare request buffer:
  8229. Offset    Size    Description    (Table 1287)
  8230.  00h    WORD    length of following data (max 84h)
  8231.  02h    BYTE    F2h (subfunction "Get Semaphore Information")
  8232.  03h    WORD    last record seen (0000h on first call)
  8233.  05h    BYTE    length of semaphore name (max 128)
  8234.  06h  N BYTEs    semaphore name
  8235.  
  8236. Format of NetWare reply buffer:
  8237. Offset    Size    Description    (Table 1288)
  8238.  00h    WORD    next request record
  8239.  02h    WORD    open count
  8240.  04h    BYTE    value of semaphore
  8241.  05h    WORD    number of records returned
  8242.  07h 2N WORDs    list of logical connection number/task number pairs
  8243. --------N-21F217SFF3-------------------------
  8244. INT 21 - Novell NetWare v3+ - MAP DIRECTORY NUMBER TO PATH
  8245.     AX = F217h subfn F3h
  8246.     CX = length of request buffer in bytes
  8247.     DX = length of reply buffer in bytes
  8248.     DS:SI -> request buffer (see #1289)
  8249.     ES:DI -> reply buffer (see #1290)
  8250. Return: AL = status
  8251.     reply buffer filled
  8252. SeeAlso: AX=F217h/SF=F4h
  8253.  
  8254. Format of NetWare request buffer:
  8255. Offset    Size    Description    (Table 1289)
  8256.  00h    WORD    0007h (length of following data)
  8257.  02h    BYTE    F3h (subfunction "Map Directory Number to Path")
  8258.  03h    BYTE    volume number
  8259.  04h    DWORD    directory entry number
  8260.  08h    BYTE    name space type
  8261.  
  8262. Format of NetWare reply buffer:
  8263. Offset    Size    Description    (Table 1290)
  8264.  00h    BYTE    directory path length
  8265.  01h  N BYTEs    directory path (NetWare style, separated by length descriptors
  8266.           rather than slashes or backslashes)
  8267. --------N-21F217SFF4-------------------------
  8268. INT 21 - Novell NetWare v3+ - CONVERT PATH TO DIRECTORY ENTRY
  8269.     AX = F217h subfn F4h
  8270.     CX = length of request buffer in bytes
  8271.     DX = length of reply buffer in bytes
  8272.     DS:SI -> request buffer (see #1291)
  8273.     ES:DI -> reply buffer (see #1292)
  8274. Return: AL = status
  8275.     reply buffer filled
  8276. SeeAlso: AX=F217h/SF=F3h
  8277.  
  8278. Format of NetWare "Convert Path to Directory Entry" request buffer:
  8279. Offset    Size    Description    (Table 1291)
  8280.  00h    WORD    length of following data
  8281.  02h    BYTE    F4h (subfunction "Convert Path to Directory Entry")
  8282.  03h    BYTE    directory handle or 00h for none
  8283.  04h    BYTE    length of directory path
  8284.  05h  N BYTEs    directory path (must be fully qualified if no handle specified)
  8285.  
  8286. Format of NetWare "Convert Path to Directory Entry" reply buffer:
  8287. Offset    Size    Description    (Table 1292)
  8288.  00h    BYTE    (ret) volume number
  8289.  01h    DWORD    (ret) directory entry number
  8290. --------N-21F217SFFE-------------------------
  8291. INT 21 - Novell NetWare v4 - CLEAR CONNECTION NUMBER
  8292.     AX = F217h subfn FEh
  8293.     CX = length of request buffer in bytes
  8294.     DX = length of reply buffer in bytes
  8295.     DS:SI -> request buffer (see #2730)
  8296.     ES:DI -> reply buffer
  8297. Return: AL = status (see #1572 at INT 2F/AX=7A20h/BX=0000h)
  8298.     reply buffer filled
  8299.  
  8300. Format of NetWare "Clear Connection Number" request buffer:
  8301. Offset    Size    Description    (Table 2730)
  8302.  00h    WORD    length of following data
  8303.  02h    BYTE    FEh (subfunction "Clear Connection Number")
  8304.  03h    DWORD    connection number
  8305. --------N-21F244-----------------------------
  8306. INT 21 - Novell NetWare - FILE SERVICES - ERASE FILES
  8307.     AX = F244h
  8308.     DS:SI -> request buffer (see #1294)
  8309.     ES:DI -> reply buffer (ignored???)
  8310. Return: AL = status (see #1293)
  8311. Note:    this function only marks the file for deletion; use AH=E2h/SF=CEh to
  8312.       actually delete all marked files
  8313. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=0Bh,AH=E3h/SF=CEh
  8314.  
  8315. (Table 1293)
  8316. Values for NetWare function status:
  8317.  00h    successful
  8318.  98h    nonexistent volume
  8319.  9Bh    invaid directory handle
  8320.  9Ch    invalid path
  8321.  FFh    no files found
  8322. SeeAlso: #1265,#1572 at INT 2F/AX=7A20h/BX=0000h
  8323.  
  8324. Format of NetWare request buffer:
  8325. Offset    Size    Description    (Table 1294)
  8326.  00h    BYTE    directory handle
  8327.  01h    BYTE    search attributes (see #0643 at AX=4301h)
  8328.  02h    BYTE    length of filespec
  8329.  03h  N BYTEs    ASCIZ filespec (may include wildcards)
  8330. --------N-21F257SF06-------------------------
  8331. INT 21 - Novell NetWare v3+ - GET INFORMATION ABOUT FILE OR DIRECTORY
  8332.     AX = F257h subfn 06h
  8333.     CX = length of request buffer in bytes
  8334.     DX = length of reply buffer in bytes
  8335.     DS:SI -> request buffer (see #1295)
  8336.     ES:DI -> reply buffer (see #1297)
  8337. Return: AL = status
  8338.     reply buffer filled
  8339.  
  8340. Format of NetWare request buffer:
  8341. Offset    Size    Description    (Table 1295)
  8342.  00h    BYTE    06h (subfunction "Get NS Entry Info")
  8343.  01h    BYTE    name space
  8344.  02h    BYTE    destination name space
  8345.  03h    WORD    search attributes
  8346.  05h    DWORD    return information mask (see #1296)
  8347.  09h    BYTE    volume number
  8348.  0Ah    DWORD    directory base
  8349.  0Eh    BYTE    handle flag
  8350.         00h first byte of dir base is dir handle; ignore volume number
  8351.         01h dir base = unique ID, volume number set
  8352.         FFh volume number and dir base ignored, volume part of path
  8353.  0Fh    BYTE    number of path components
  8354.  10h  N BYTEs    list of path components (each a counted string)
  8355.  
  8356. Bitfields for return information mask:
  8357. Bit(s)    Description    (Table 1296)
  8358.  0    include filename
  8359.  1    data stream space allocated info
  8360.  2    attributes info
  8361.  3    data stream size info
  8362.  4    total space allocated for all data streams
  8363.  5    extended attributes info
  8364.  6    archive info
  8365.  7    modify info
  8366.  8    create info
  8367.  9    name space info
  8368.  10    directory info
  8369.  11    rights info
  8370.  
  8371. Format of NetWare reply buffer for name space info:
  8372. Offset    Size    Description    (Table 1297)
  8373.  00h 72 BYTEs    reserved
  8374.  48h    DWORD    creator's name space number
  8375.  4Ch 257 BYTEs    reserved
  8376. --------N-21F258SF01-------------------------
  8377. INT 21 - Novell NetWare v4+ - GET VOLUME AUDITING STATISTICS
  8378.     AX = F258h subfn 01h
  8379.     CX = length of request buffer in bytes (0005h)
  8380.     DX = length of reply buffer in bytes (0020h)
  8381.     DS:SI -> request buffer (see #1298)
  8382.     ES:DI -> reply buffer (see #1299)
  8383. Return: AL = status
  8384.     reply buffer filled
  8385. SeeAlso: AX=F268h/SF=C8h
  8386.  
  8387. Format of NetWare "Get Volume Auditing Statistics" request buffer:
  8388. Offset    Size    Description    (Table 1298)
  8389.  00h    BYTE    01h (function "Get Volume Auditing Statistics")
  8390.  01h    DWORD    volume
  8391. SeeAlso: #1299
  8392.  
  8393. Format of NetWare "Get Volume Auditing Statistics" reply buffer:
  8394. Offset    Size    Description    (Table 1299)
  8395.  00h    WORD    auditing version (date)
  8396.  02h    WORD    audit file version (date)
  8397.  04h    DWORD    auditing enabled flag
  8398.  08h    DWORD    audit file's size
  8399.  0Ch    DWORD    audit configuration file's size
  8400.  10h    DWORD    maximum audit file size
  8401.  14h    DWORD    audit file size threshold
  8402.  18h    DWORD    number of audit records
  8403.  1Ch    DWORD    number of history records
  8404. SeeAlso: #1298,#1311
  8405. --------N-21F268SF01-------------------------
  8406. INT 21 - Novell NetWare v4+ - GET TREE NAME
  8407.     AX = F268h subfn 01h
  8408.     CX = length of request buffer in bytes (0001h)
  8409.     DX = length of reply buffer in bytes (0064h)
  8410.     DS:SI -> request buffer (see #1300)
  8411.     ES:DI -> reply buffer (see #1301)
  8412. Return: AL = status
  8413.     reply buffer filled
  8414. SeeAlso: AX=F268h/SF=04h
  8415.  
  8416. Format of NetWare "Get Tree Name" request buffer:
  8417. Offset    Size    Description    (Table 1300)
  8418.  00h    BYTE    01h
  8419.  
  8420. Format of NetWare "Get Tree Name" reply buffer:
  8421. Offset    Size    Description    (Table 1301)
  8422.  00h    DWORD    ???
  8423.  04h    DWORD    ???
  8424.  08h 32 BYTEs    tree name, padded with underscores ('_')
  8425.  28h 60 BYTEs    ???
  8426. --------N-21F268SF04-------------------------
  8427. INT 21 - Novell NetWare v4+ - GET BINDERY CONTEXT
  8428.     AX = F268h subfn 04h
  8429.     CX = length of request buffer in bytes (0001h)
  8430.     DX = length of reply buffer in bytes
  8431.     DS:SI -> request buffer (see #1302)
  8432.     ES:DI -> reply buffer (see #1303)
  8433. Return: AL = status
  8434.     reply buffer filled
  8435. SeeAlso: AX=F268h/SF=01h,AX=F268h/SF=C8h
  8436.  
  8437. Format of NetWare "Get Bindery Context" request buffer:
  8438. Offset    Size    Description    (Table 1302)
  8439.  00h    BYTE    04h
  8440.  
  8441. Format of NetWare "Get Bindery Context" reply buffer:
  8442. Offset    Size    Description    (Table 1303)
  8443.  00h    DWORD    length
  8444.  04h  N WORDs    Unicode bindery context string
  8445. --------N-21F268SF16-------------------------
  8446. INT 21 - Novell NetWare v4+ - NDS LIST PARTITIONS
  8447.     AX = F268h subfn 16h
  8448.     CX = length of request buffer in bytes
  8449.     DX = length of reply buffer in bytes
  8450.     DS:SI -> request buffer (see #1304)
  8451.     ES:DI -> reply buffer (see #1305)
  8452. Return: AL = status
  8453.     reply buffer filled
  8454. Note:    the length specified in CX must be exactly 13 bytes more than the
  8455.       length field at offset 09h in the request buffer for this function
  8456.       to be successful
  8457. SeeAlso: AX=F268h/SF=35h
  8458.  
  8459. Format of NetWare "NDS List Partitions" request buffer:
  8460. Offset    Size    Description    (Table 1304)
  8461.  00h    BYTE    02h
  8462.  01h    DWORD    ??? (FFFFFFFFh)
  8463.  05h    DWORD    ??? (00000202h)
  8464.  09h    DWORD    length (00000018h)
  8465.  0Dh    DWORD    ??? (00000000h)
  8466.  11h    DWORD    function (00000016h) (subfunction "NDS List Partitions")
  8467.  15h    DWORD    ??? (00000400h)
  8468.  19h    DWORD    API version (00000000h)
  8469.  1Dh    DWORD    ??? (00000000h)
  8470.  21h    DWORD    iteration (FFFFFFFFh)
  8471. SeeAlso: #1305,#1306
  8472.  
  8473. Format of NetWare "NDS List Partitions" reply buffer:
  8474. Offset    Size    Description    (Table 1305)
  8475.  00h    DWORD    length
  8476.  04h    DWORD    ???
  8477.  08h    DWORD    return code
  8478.  0Ch    DWORD    iteration
  8479.  10h 1000 BYTEs    returned data
  8480. SeeAlso: #1304
  8481. --------N-21F268SF35-------------------------
  8482. INT 21 - Novell NetWare v4+ - NDS GET SERVER NAME AND ADDRESS
  8483.     AX = F268h subfn 35h
  8484.     CX = length of request buffer in bytes
  8485.     DX = length of reply buffer in bytes
  8486.     DS:SI -> request buffer (see #1306)
  8487.     ES:DI -> reply buffer (see #1307)
  8488. Return: AL = status
  8489.     reply buffer filled
  8490. Note:    the length specified in CX must be exactly 13 bytes more than the
  8491.       length field at offset 09h in the request buffer for this function
  8492.       to be successful
  8493. SeeAlso: AX=F268h/SF=16h
  8494.  
  8495. Format of NetWare "NDS Get Server Name and Address" request buffer:
  8496. Offset    Size    Description    (Table 1306)
  8497.  00h    BYTE    02h
  8498.  01h    DWORD    ??? (FFFFFFFFh)
  8499.  05h    DWORD    ??? (00000202h)
  8500.  09h    DWORD    length (0000000Ch)
  8501.  0Dh    DWORD    ??? (00000000h)
  8502.  11h    DWORD    function (00000035h) (subfunc "NDS Get Server Name and Addr")
  8503.  15h    DWORD    ??? (00000400h)
  8504. SeeAlso: #1304,#1307
  8505.  
  8506. Format of NetWare "NDS Get Server Name and Address" reply buffer:
  8507. Offset    Size    Description    (Table 1307)
  8508.  00h    DWORD    length
  8509.  04h    DWORD    ???
  8510.  08h    DWORD    return code
  8511.  0Ch    DWORD    length of name
  8512.  10h  N WORDs    Unicode server name string
  8513.     var    padding
  8514.     DWORD    ??? (00000001h)
  8515.     DWORD    ??? (00000000h)
  8516.     DWORD    ??? (0000000Ch)
  8517.      12 BYTEs    server's IPX address
  8518. SeeAlso: #1306
  8519. --------N-21F268SF3D-------------------------
  8520. INT 21 - Novell NetWare v4+ - NDS LOGOUT
  8521.     AX = F268h subfn 3Dh
  8522.     CX = length of request buffer in bytes
  8523.     DX = length of reply buffer in bytes
  8524.     DS:SI -> request buffer (see #1308)
  8525.     ES:DI -> reply buffer (see #1309)
  8526. Return: AL = status
  8527.     reply buffer filled
  8528.  
  8529. Format of NetWare "NDS Logout" request buffer:
  8530. Offset    Size    Description    (Table 1308)
  8531.  00h    BYTE    02h
  8532.  01h    DWORD    ??? (FFFFFFFFh)
  8533.  05h    DWORD    ??? (00000202h)
  8534.  09h    DWORD    length (0000000Ch)
  8535.  0Dh    DWORD    ??? (00000000h)
  8536.  11h    DWORD    function (0000003Dh) (subfunction "NDS Logout")
  8537.  15h    DWORD    ??? (00000000h)
  8538. SeeAlso: #1309
  8539.  
  8540. Format of NetWare "NDS Logout" reply buffer:
  8541. Offset    Size    Description    (Table 1309)
  8542.  00h    DWORD    length
  8543.  04h    DWORD    ???
  8544.  08h    DWORD    return code
  8545. SeeAlso: #1308
  8546. --------N-21F268SFC8-------------------------
  8547. INT 21 - Novell NetWare v4+ - GET DS AUDITING STATISTICS
  8548.     AX = F268h subfn C8h
  8549.     CX = length of request buffer in bytes (0001h)
  8550.     DX = length of reply buffer in bytes (0020h)
  8551.     DS:SI -> request buffer (see #1310)
  8552.     ES:DI -> reply buffer (see #1311)
  8553. Return: AL = status
  8554.     reply buffer filled
  8555. SeeAlso: AX=F258h/SF=01h,AX=F268h/SF=01h,AX=F268h/SF=04h
  8556.  
  8557. Format of NetWare "Get DS Auditing Statistics" request buffer:
  8558. Offset    Size    Description    (Table 1310)
  8559.  00h    BYTE    C8h
  8560. SeeAlso: #1311
  8561.  
  8562. Format of NetWare "Get DS Auditing Statistics" reply buffer:
  8563. Offset    Size    Description    (Table 1311)
  8564.  00h    WORD    auditing version (date)
  8565.  02h    WORD    audit file version (date)
  8566.  04h    DWORD    auditing enabled flag
  8567.  08h    DWORD    audit file's size
  8568.  0Ch    DWORD    audit configuration file's size
  8569.  10h    DWORD    maximum audit file size
  8570.  14h    DWORD    audit file size threshold
  8571.  18h    DWORD    number of audit records
  8572.  1Ch    DWORD    number of history records
  8573. SeeAlso: #1299,#1310
  8574. --------N-21F272-----------------------------
  8575. INT 21 - Novell NetWare v4+ - GET FILE SERVER UTC TIME
  8576.     AX = F272h
  8577.     CX = length of request buffer in bytes (0003h)
  8578.     DX = length of reply buffer in bytes (0064h)
  8579.     DS:SI -> request buffer (see #1312)
  8580.     ES:DI -> reply buffer (see #1313)
  8581. Return: AL = status
  8582.     reply buffer filled
  8583.  
  8584. Format of NetWare "Get File Server UTC Time" request buffer:
  8585. Offset    Size    Description    (Table 1312)
  8586.  00h    BYTE    ??? (00h)
  8587.  01h    BYTE    ??? (01h)
  8588.  02h    BYTE    ??? (01h)
  8589. SeeAlso: #1313
  8590.  
  8591. Format of NetWare "Get File Server UTC Time" reply buffer:
  8592. Offset    Size    Description    (Table 1313)
  8593.  00h    DWORD    seconds
  8594.  04h    DWORD    ???
  8595.  04h    DWORD    ??? (00000204h)
  8596.  04h    DWORD    ??? (00000000h)
  8597.  04h    DWORD    ??? (00000000h)
  8598.  04h    DWORD    ??? (FFFFFFFFh)
  8599.  04h    DWORD    ??? (00000000h)
  8600. SeeAlso: #1312
  8601. --------N-21F27BSF33-------------------------
  8602. INT 21 - Novell NetWare v4+ - GET ROUTER INFO
  8603.     AX = F27Bh subfn 33h
  8604.     CX = length of request buffer in bytes
  8605.     DX = length of reply buffer in bytes
  8606.     DS:SI -> request buffer (see #1314)
  8607.     ES:DI -> reply buffer (see #1315)
  8608. Return: AL = status
  8609.     reply buffer filled
  8610. SeeAlso: AX=F27Bh/SF=35h
  8611.  
  8612. Format of NetWare "Get Router Info" request buffer:
  8613. Offset    Size    Description    (Table 1314)
  8614.  00h    WORD    ???
  8615.  02h    BYTE    33h (function "Get Router Info")
  8616.  03h    DWORD    network number
  8617. SeeAlso: #1315
  8618.  
  8619. Format of NetWare "Get Router Info" reply buffer:
  8620. Offset    Size    Description    (Table 1315)
  8621.  00h    DWORD    timestamp
  8622.  04h    DWORD    ???
  8623.  08h    DWORD    network number
  8624.  0Ch    WORD    hops
  8625.  0Eh    WORD    ???
  8626.  10h    WORD    time
  8627. SeeAlso: #1314,#1316
  8628. --------N-21F27BSF35-------------------------
  8629. INT 21 - Novell NetWare v4+ - GET KNOWN NETWORKS INFO
  8630.     AX = F27Bh subfn 35h
  8631.     CX = length of request buffer in bytes
  8632.     DX = length of reply buffer in bytes
  8633.     DS:SI -> request buffer (see #1316)
  8634.     ES:DI -> reply buffer (see #1317)
  8635. Return: AL = status
  8636.     reply buffer filled
  8637. SeeAlso: AX=F27Bh/SF=33h
  8638.  
  8639. Format of NetWare "Get Router Info" request buffer:
  8640. Offset    Size    Description    (Table 1316)
  8641.  00h    WORD    ???
  8642.  02h    BYTE    35h (function "Get Known Networks Info")
  8643.  03h    DWORD    ??? (00000000h)
  8644. SeeAlso: #1317
  8645.  
  8646. Format of NetWare "Get Router Info" reply buffer:
  8647. Offset    Size    Description    (Table 1317)
  8648.  00h    DWORD    timestamp
  8649.  04h    DWORD    ???
  8650.  08h    DWORD    number of records following
  8651.  0Ch    var    array of network info records
  8652.         Offset    Size    Description
  8653.          00h    WORD    network number
  8654.          04h    WORD    hops
  8655.          06h    WORD    ???
  8656.          08h    WORD    time
  8657. SeeAlso: #1314,#1316
  8658. --------v-21F2AA-----------------------------
  8659. INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK
  8660.     AX = F2AAh
  8661. Return: AH = AAh if resident
  8662. SeeAlso: AH=F1h"VIRUS",AH=F3h"VIRUS"
  8663. --------N-21F3-------------------------------
  8664. INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY
  8665.     AH = F3h
  8666.     ES:DI -> request buffer (see #1318)
  8667. Return: AL = status/error code
  8668.     CX:DX = number of bytes copied
  8669. Notes:    this function is supported by Advanced NetWare 2.0+
  8670.     both source and destination must be on the same file server
  8671. SeeAlso: AH=3Ch,AH=3Fh
  8672.  
  8673. Format of NetWare request buffer:
  8674. Offset    Size    Description    (Table 1318)
  8675.  00h    WORD    source file handle (as returned by AH=3Ch or AH=3Dh)
  8676.  02h    WORD    destination file handle
  8677.  04h    DWORD    starting offset in source
  8678.  08h    DWORD    starting offset in destination
  8679.  0Ch    DWORD    number of bytes to copy
  8680. --------T-21F3-------------------------------
  8681. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  8682.     AH = F3h
  8683.     AL = character
  8684. Return: AL = 00h successful
  8685.          01h buffer full (128 characters)
  8686. SeeAlso: AH=E3h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  8687. SeeAlso: AH=F8h"DoubleDOS"
  8688. --------v-21F3-------------------------------
  8689. INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK
  8690.     AH = F3h
  8691. Return: AX = 0400h if resident
  8692. SeeAlso: AH=D5h"Carfield",AX=F2AAh,AH=F7h"VIRUS"
  8693. --------T-21F400-----------------------------
  8694. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  8695.     AX = F400h
  8696. Return: AL = program status
  8697.         00h if DoubleDOS not present
  8698.         01h if running in visible DoubleDOS partition
  8699.         02h if running in the invisible DoubleDOS partition
  8700. SeeAlso: AX=E400h,AH=F5h"DoubleDOS"
  8701. --------T-21F5-------------------------------
  8702. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  8703.     AH = F5h
  8704. Return: AL = program status
  8705.         00h no program in other partition
  8706.         01h program in other partition is running
  8707.         02h program in other partition is suspended
  8708. SeeAlso: AH=E5h"DoubleDOS",AX=F400h"DoubleDOS"
  8709. --------v-21F7-------------------------------
  8710. INT 21 - VIRUS - "GP1" - INSTALLATION CHECK
  8711.     AH = F7h
  8712. Return: AX = 0300h if resident
  8713. SeeAlso: AH=F0h"VIRUS",AH=F9h"VIRUS"
  8714. --------D-21F8-------------------------------
  8715. INT 21 - DOS v2.11-2.13 - SET OEM INT 21 HANDLER
  8716.     AH = F8h
  8717.     DS:DX -> OEM INT 21 handler for functions F9h to FFh
  8718.          FFFFh:FFFFh disables OEM handler
  8719. Notes:    this function is known to be supported by Toshiba T1000 ROM MS-DOS
  8720.       v2.11, Sanyo MS-DOS v2.11, and TI Professional Computer DOS v2.13
  8721.     calls to AH=F9h through AH=FFH will return AL=00h if no handler set
  8722.     handler is called with all registers exactly as set by caller, and
  8723.       should exit with IRET
  8724. SeeAlso: AH=F9h"OEM"
  8725. --------T-21F8-------------------------------
  8726. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  8727.     AH = F8h
  8728.     AL = program for which to set flags
  8729.         00h this program
  8730.         01h other program
  8731.     DX = keyboard control flags (see #1259 at AH=E8h"DoubleDOS")
  8732. Return: DX = previous flags
  8733. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  8734.       disabling any of the other keystrokes disables them completely
  8735.     this function is identical to AH=E8h
  8736. SeeAlso: AH=E8h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  8737. SeeAlso: AH=F3h"DoubleDOS"
  8738. --------D-21F9-------------------------------
  8739. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  8740.     AH = F9h
  8741. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  8742. SeeAlso: AH=F8h"OEM",AH=FAh"OEM"
  8743. --------T-21F9-------------------------------
  8744. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  8745.     AH = F9h
  8746.     AL = priority
  8747.         00h visible program gets 70%, invisible gets 30% (default)
  8748.         01h visible program gets 50%, invisible gets 50%
  8749.         02h visible program gets 30%, invisible gets 70%
  8750.         03h Top program gets 70%, bottom program gets 30%
  8751.         04h Top program gets 30%, bottom program gets 70%
  8752.         05h get current priority
  8753.         Return: AL = priority setting
  8754. Note:    identical to AH=E9h
  8755. SeeAlso: AH=E9h"DoubleDOS",AH=FAh"DoubleDOS",AH=FBh"DoubleDOS"
  8756. --------v-21F9-------------------------------
  8757. INT 21 - VIRUS - "Satans-Bug" - INSTALLATION CHECK
  8758.     AH = F9h
  8759. Return: AX = AC0Ah if resident
  8760. SeeAlso: AH=F7h"VIRUS",AH=FBh"VIRUS",AX=FEDCh"VIRUS"
  8761. --------D-21FA-------------------------------
  8762. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  8763.     AH = FAh
  8764. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  8765. SeeAlso: AH=F8h"OEM",AH=F9h"OEM",AH=FBh"OEM"
  8766. --------T-21FA-------------------------------
  8767. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  8768.     AH = FAh
  8769. Return: task switching turned off
  8770. SeeAlso: AH=EAh"DoubleDOS",AH=F9h"DoubleDOS",AH=FBh"DoubleDOS"
  8771. SeeAlso: INT FA"DoubleDOS"
  8772. --------v-21FA--DX5945-----------------------
  8773. INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API
  8774.     AH = FAh
  8775.     DX = 5945h
  8776.     AL = function (00h-02h for VDEFEND, 00h-07h for VSAFE and VWATCH)
  8777. Return: varies by function
  8778. Note:    this API is identical to the API on INT 13/AH=FAh and INT 16/AH=FAh,
  8779.       so it is listed in its entirety only under INT 16/AX=FA00h and
  8780.       following
  8781. SeeAlso: INT 13/AX=FA00h,INT 16/AX=FA00h
  8782. --------D-21FB-------------------------------
  8783. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  8784.     AH = FBh
  8785. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  8786. SeeAlso: AH=F8h"OEM",AH=FAh"OEM",AH=FCh"OEM"
  8787. --------T-21FB-------------------------------
  8788. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  8789.     AH = FBh
  8790. Return: task switching turned on
  8791. SeeAlso: AH=EBh"DoubleDOS",AH=F9h"DoubleDOS",AH=FAh"DoubleDOS"
  8792. SeeAlso: INT FB"DoubleDOS"
  8793. --------v-21FB-------------------------------
  8794. INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK
  8795.     AH = FBh
  8796. Return: AH = 00h if resident
  8797. SeeAlso: AH=F9h"VIRUS",AX=FB0Ah
  8798. --------v-21FB0A-----------------------------
  8799. INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK
  8800.     AX = FB0Ah
  8801. Return: AX = 0AFBh if resident
  8802. SeeAlso: AH=FBh"VIRUS",AH=FCh"VIRUS"
  8803. --------D-21FC-------------------------------
  8804. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  8805.     AH = FCh
  8806. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  8807. SeeAlso: AH=F8h"OEM",AH=FBh"OEM",AH=FDh"OEM"
  8808. --------T-21FC-------------------------------
  8809. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  8810.     AH = FCh
  8811. Return: ES = segment of virtual screen
  8812. Desc:    Determine the address of the virtual screen to which the program
  8813.       should write instead of the actual video memory, so that the
  8814.       multitasked programs do not interfere with each other's output.
  8815. Notes:    screen address can change if task-switching is on!!
  8816.     identical to AH=ECh
  8817. SeeAlso: AH=ECh"DoubleDOS",INT FC"DoubleDOS"
  8818. --------v-21FC-------------------------------
  8819. INT 21 - VIRUS - "Troi" - INSTALLATION CHECK
  8820.     AH = FCh
  8821. Return: AL = A5h if resident
  8822. SeeAlso: AX=FB0Ah"VIRUS",AH=FDh"VIRUS"
  8823. --------D-21FD-------------------------------
  8824. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  8825.     AH = FDh
  8826. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  8827. SeeAlso: AH=F8h"OEM",AH=FCh"OEM",AH=FEh"OEM"
  8828. --------v-21FD-------------------------------
  8829. INT 21 - VIRUS - "Border" - INSTALLATION CHECK
  8830.     AH = FDh
  8831. Return: AH = 13h if resident
  8832. SeeAlso: AH=FCh"VIRUS",AH=FEh"VIRUS"
  8833. --------s-21FD12BX3457-----------------------
  8834. INT 21 - Gravis UltraSound - MegaEm/MEGA_EM - INSTALLATION CHECK
  8835.     AX = FD12h
  8836.     BX = 3457h
  8837. Return: AX = 5678h if installed
  8838.     BX = 1235h if v1.x or v2.x installed
  8839.         CL = interrupt vector used by MegaEm (default 81h)
  8840.     BX = 1237h if v3.x installed
  8841.         CL = interrupt vector used by MegaEm (default 81h)
  8842.         DX = version number
  8843. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  8844.       emulator for the Gravis UltraSound
  8845. SeeAlso: INT 2F/AX=CD00h/BX=464Fh,INT 7E/AX=00FEh"SBOS"
  8846. --------D-21FE-------------------------------
  8847. INT 21 - DOS v2.11-2.13 - OEM FUNCTION
  8848.     AH = FEh
  8849. Return: AL = 00h if no OEM function handler installed (see AH=F8h"OEM")
  8850. SeeAlso: AH=F8h"OEM",AH=FDh"OEM",AH=FFh"OEM"
  8851. --------T-21FE-------------------------------
  8852. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  8853.     AH = FEh
  8854.     AL = number of 55ms time slices to give away
  8855. Return: returns after giving away time slices
  8856. SeeAlso: AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  8857. --------v-21FE-------------------------------
  8858. INT 21 - VIRUS - "483" - INSTALLATION CHECK
  8859.     AH = FEh
  8860. Return: AH = 00h if resident
  8861. SeeAlso: AH=FDh"VIRUS",AX=FE01h
  8862. --------v-21FE01-----------------------------
  8863. INT 21 - VIRUS - "Flip" - INSTALLATION CHECK
  8864.     AX = FE01h
  8865. Return: AX = 01FEh if resident
  8866. SeeAlso: AH=FEh"VIRUS",AX=FE02h
  8867. --------v-21FE02-----------------------------
  8868. INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK
  8869.     AX = FE02h
  8870. Return: AX = 01FDh if resident
  8871. SeeAlso: AX=FE01h,AX=FE03h,AX=FEDCh"VIRUS"
  8872. --------v-21FE03-----------------------------
  8873. INT 21 - VIRUS - "2468"/"Tequila" - DISPLAY VIRUS MESSAGE
  8874.     AX = FE03h
  8875. SeeAlso: AX=FE02h,AX=FEADh
  8876. --------v-21FEAD------------------------
  8877. INT 21 - VIRUS - "Shifting Objective" - INSTALLATION CHECK
  8878.     AX = FEADh
  8879. Return:    AX = D00Dh if resident
  8880. SeeAlso: AX=FE03h,AX=FEDCh"VIRUS"
  8881. --------d-21FEDC-----------------------------
  8882. INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK
  8883.     AX = FEDCh
  8884. Return: AX = CDEFh if installed
  8885. Program: the PCMANAGE/DCOMPRES combination from PC Magazine permits
  8886.       infrequently-used files to be compressed to save space and
  8887.       transparently expanded when accessed
  8888. SeeAlso: AH=DCh,INT 2D/AL=10h"dLite"
  8889. --------v-21FEDC-----------------------------
  8890. INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK
  8891.     AX = FEDCh
  8892. Return: AL = DCh if resident
  8893. SeeAlso: AX=FE02h,AX=FEFEh
  8894. --------v-21FEFE-----------------------------
  8895. INT 21 - VIRUS - "CIDER" - INSTALLATION CHECK
  8896.     AX = FEFEh
  8897. Return: SI = 1994h if resident
  8898. SeeAlso: AX=FEDCh"VIRUS",AH=FFh"VIRUS"
  8899. --------!---Section--------------------------
  8900.