home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / i / inter33a.zip / INTERRUP.D < prev    next >
Text File  |  1993-01-03  |  274KB  |  7,270 lines

  1. Interrupt List, part 4 of 8
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. ----------2180-------------------------------
  4. INT 21 - European MSDOS 4.0 - "AEXEC" - EXECUTE PROGRAM IN BACKGROUND
  5.     AH = 80h
  6.     CX = mode
  7.         0000h place child in zombie mode on exit to preserve exit code
  8.         0001h discard child process and exit code on termination
  9.     DS:DX -> ASCIZ full program name
  10.     ES:BX -> parameter block (as for AX=4B00h)
  11. Return: CF clear if successful
  12.         AX = Command Subgroup ID (CSID)
  13.     CF set on error
  14.         AX = error code (see AH=59h)
  15. Desc:    asynchronously execute a program, creating a new process for it
  16. Notes:    this function is called by the DETACH command
  17.     there is a system-wide limit of 32 processes
  18.     the CSID is used to identify all processes that have been spawned by
  19.       a given process, whether directly or indirectly
  20.     programs to be run in the background must use the new executable format
  21.       (see AH=4Bh)
  22.     background processes may only perform asynchronous (background) EXECs,
  23.       either this function or AX=4B04h
  24.     background processes may execute INT 11, INT 12, INT 21, INT 2A, and
  25.       INT 2F at any time; they may execute INT 10 and INT 16 only while
  26.       they have opened a popup screen via INT 2F/AX=1401h; no other
  27.       interrupts may be executed from the background
  28.     background processes may not use drive B: or overlay their code
  29.       segments
  30. SeeAlso: AH=4Bh,AX=8700h,INT 2F/AX=1400h"POPUP"
  31. ----------218080-----------------------------
  32. INT 21 - PCW Weather Card interface - UNINSTALL PCW.COM AND FREE MEMORY
  33.     AX = 8080h
  34. Return: ???
  35. SeeAlso: AX=7070h/BX=7070h
  36. ----------2181-------------------------------
  37. INT 21 - European MSDOS 4.0 - "FREEZE" - STOP A PROCESS
  38.     AH = 81h
  39.     BX = flag (00h freeze command subtree, 01h only specified process)
  40.     CX = Process ID of head of command subtree
  41. Return: CF clear if successful
  42.     CF set on error
  43.         AX = error code (no such process)
  44. Desc:    temporarily suspend a process or a process and all of its children
  45. Note:    if BX=0001h, this call will not return until the process is actually
  46.       frozen, which may not be until after it unblocks from an I/O
  47.       operation
  48. SeeAlso: AH=82h,AH=89h,AX=8E00h,INT 15/AX=101Dh
  49. ----------2182-------------------------------
  50. INT 21 - European MSDOS 4.0 - "RESUME" - RESTART A PROCESS
  51.     AH = 82h
  52.     BX = flag (00h resume command subtree, 01h only specified process)
  53.     CX = Process ID of head of command subtree
  54. Return: CF clear if successful
  55.     CF set on error
  56.         AX = error code (no such process)
  57. Desc:    restart a previously-suspended process or a process and all of its
  58.       children
  59. SeeAlso: AX=81h,INT 15/AX=101Eh
  60. ----------2183-------------------------------
  61. INT 21 - European MSDOS 4.0 - "PARTITION" - GET/SET FOREGROUND PARTITION SIZE
  62.     AH = 83h
  63.     AL = function
  64.         00h get size
  65.         01h set new size
  66.         BX = new size in paragraphs
  67. Return: CF clear if successful
  68.         BX = current size (function 00h) or old size (function 01h)
  69.     CF set on error
  70.         AX = error code (01h,07h,0Dh)(see AH=59h)
  71. Desc:    specify or determine how much memory may be allocated by the foreground
  72.       process
  73. Note:    if the partition size is set to 0000h, no partition management is done
  74.       and all memory allocation is compatible with DOS 3.2.
  75.     the partition size can be changed regardless of what use is being made
  76.       of the changed memory; subsequent allocations will follow the
  77.       partition rules (foreground processes may allocate only foreground
  78.       memory; background processes allocate background memory first, then
  79.       foreground memory)
  80. SeeAlso: AH=48h,AH=4Ah
  81. ----------2183-------------------------------
  82. INT 21 - VIRUS - "SVC" - INSTALLATION CHECK
  83.     AH = 83h
  84. Return: DX = 1990h if resident
  85. SeeAlso: AH=76h,AH=84h"VIRUS"
  86. ----------2184-------------------------------
  87. INT 21 - VIRUS - "SVC 5.0" or "SVC 6.0" - INSTALLATION CHECK
  88.     AH = 84h
  89. Return: DX = 1990h if resident
  90.         BH = version number (major in high nybble, minor in low)
  91. SeeAlso: AH=83h"VIRUS",AH=89h"VIRUS"
  92. ----------218400-----------------------------
  93. INT 21 - European MSDOS 4.0 - "CREATMEM" - CREATE A SHARED MEMORY AREA
  94.     AX = 8400h
  95.     BX = size in bytes (0000h = 65536)
  96.     CX = flags
  97.         bit 6: zero-initialize segment
  98.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  99. Return: CF clear if successful
  100.         AX = segment address of shared memory global object
  101.     CF set on error
  102.         AX = error code (06h,08h) (see AH=59h)
  103. Desc:    create an area of memory which may be accessed by multiple processes
  104. Notes:    shared memory objects are created as special files (thus the
  105.       restriction on the name)
  106.     on successful creation, the reference count is set to 1
  107. SeeAlso: AX=8401h,AX=8402h,INT 15/AX=DE19h
  108. ----------218401-----------------------------
  109. INT 21 - European MSDOS 4.0 - "GETMEM" - OBTAIN ACCESS TO SHARED MEMORY AREA
  110.     AX = 8401h
  111.     CX = flags
  112.         bit 7: writable segment (ignored by MSDOS 4.0)
  113.     DS:DX -> ASCIZ name (must begin with "\SHAREMEM\")
  114. Return: CF clear if successful
  115.         AX = segment address of shared memory global object
  116.         CX = size in bytes
  117.     CF set on error
  118.         AX = error code (invalid name)
  119. Desc:    get address of a previously-created area of memory which may be
  120.       accessed by multiple processes    
  121. Note:    this call increments the reference count for the shared memory area
  122. SeeAlso: AX=8400h,AX=8402h
  123. ----------218402-----------------------------
  124. INT 21 - European MSDOS 4.0 - "RELEASEMEM" - FREE SHARED MEMORY AREA
  125.     AX = 8402h
  126.     BX = handle (segment address of shared memory object)
  127. Return: CF clear if successful
  128.     CF set on error
  129.         AX = error code (no such name)
  130. Desc:    indicate that the specified area of shared memory will no longer be
  131.       used by the caller
  132. Note:    the reference count is decremented and the shared memory area is
  133.       deallocated if the new reference count is zero
  134. SeeAlso: AX=8400h,AX=8401h,INT 15/AX=DE19h
  135. ----------2185-------------------------------
  136. INT 21 U - European MSDOS 4.0 - ???
  137.     AH = 85h
  138.     ???
  139. Return: ???
  140. ----------2186-------------------------------
  141. INT 21 - European MSDOS 4.0 - "SETFILETABLE" - INSTALL NEW FILE HANDLE TABLE
  142.     AH = 86h
  143.     BX = total number of file handles in new table
  144. Return: CF clear if successful
  145.     CF set on error
  146.         AX = error code (06h,08h) (see AH=59h)
  147. Desc:    adjust the size of the per-process open file table, thus raising or
  148.       lowering the limit on the number of files the caller can open
  149.       simultaneously
  150. Notes:    any currently-open files are copied to the new table
  151.     if the table is increased beyond the default 20 handles, only the
  152.       first 20 will be inherited by child processes
  153.     error 06h is returned if the requested number of handles exceeds
  154.       system limits or would require closing currently-open files
  155. SeeAlso: AH=26h,AH=67h
  156. ----------2187-------------------------------
  157. INT 21 - European MSDOS 4.0 - "GETPID" - GET PROCESS IDENTIFIER
  158.     AH = 87h
  159. Return: AX = PID
  160.     BX = parent process's PID
  161.     CX = Command Subgroup ID (CSID)
  162. Desc:    determine an identifier by which to access the calling process
  163. Notes:    called by MS C v5.1 getpid() function
  164.     this function apparently must return AX=0001h for INT 21/AH=80h to
  165.       succeed
  166.     one possible check for European MSDOS 4.0 is to issue this call with
  167.       AL=00h and check whether AL is nonzero on return
  168. SeeAlso: AH=30h,AH=62h,AH=80h
  169. ----------2188-------------------------------
  170. INT 21 U - European MSDOS 4.0 - ???
  171.     AH = 88h
  172.     ???
  173. Return: ???
  174. ----------2189-------------------------------
  175. INT 21 - European MSDOS 4.0 - SLEEP
  176.     AH = 89h
  177.     CX = time in milliseconds or 0000h to give up time slice
  178. Return: CF clear if successful
  179.         CX = 0000h
  180.     CF set on error
  181.         AX = error code (interrupted system call)
  182.         CX = sleep time remaining
  183. Desc:    suspend the calling process for the specified duration
  184. Notes:    the sleep interval is rounded up to the next higher increment of the
  185.       scheduler clock, and may be extended further if other processes are
  186.       running
  187.     this call may be interrupted by signals (see AH=8Dh)
  188.     reportedly called by Microsoft C 4.0 startup code
  189.     background processes have higher priority than the foreground process,
  190.       and should thus periodically yield the CPU
  191. SeeAlso: AH=81h,INT 15/AX=1000h,INT 2F/AX=1680h,INT 7A/BX=000Ah
  192. ----------2189-------------------------------
  193. INT 21 - VIRUS - "Vriest" - INSTALLATION CHECK
  194.     AH = 89h
  195. Return: AX = 0123h if resident
  196. SeeAlso: AH=84h"VIRUS",AH=90h"VIRUS"
  197. ----------218A-------------------------------
  198. INT 21 - European MSDOS 4.0 - "CWAIT" - WAIT FOR CHILD TO TERMINATE
  199.     AH = 8Ah
  200.     BL = range (00h command subtree, 01h any child)
  201.     BH = suspend flag
  202.         00h suspend if children exist but none are dead
  203.         01h return if no dead children
  204.     CX = Process ID of head of command subtree
  205. Return: CF clear if successful
  206.         AH = termination type
  207.         00h normal termination
  208.         01h aborted by Control-C
  209.         02h aborted by I/O error
  210.         03h terminate and stay resident
  211.         04h aborted by signal
  212.         05h aborted by program error
  213.         AL = return code from child or aborting signal
  214.         BX = PID of child (0000h if no dead children)
  215.     CF set on error
  216.         AX = error code (no child,interrupted system call)
  217. Desc:    get return code from an asynchronously-executed child program,
  218.       optionally waiting if no return code is available
  219. SeeAlso: AH=4Bh,AH=4Dh,AH=80h,AH=8Dh
  220. ----------218B-------------------------------
  221. INT 21 U - European MSDOS 4.0 - ???
  222.     AH = 8Bh
  223.     ???
  224. Return: ???
  225. ----------218C-------------------------------
  226. INT 21 - European MSDOS 4.0 - SET SIGNAL HANDLER
  227.     AH = 8Ch
  228.     AL = signal number (see below)
  229.     BL = action (see below)
  230.     DS:DX -> signal handler
  231. Return: CF clear if successful
  232.         AL = previous action
  233.         ES:BX -> previous signal handler
  234.     CF set on error
  235.         AX = error code (01h,invalid SigNumber or Action) (see AH=59h)
  236. Desc:    set the routine which will be invoked on a number of exceptional
  237.       conditions
  238. Note:    all signals will be sent to the most recently installed handler
  239. SeeAlso: AH=8Dh
  240.  
  241. Values for signal number:
  242.  01h    SIGINTR        Control-C or user defined interrupt key
  243.  08h    SIGTERM        program termination
  244.  09h    SIGPIPE        broken pipe
  245.  0Dh    SIGUSER1    reserved for user definition
  246.  0Eh    SIGUSER2    reserved for user definition
  247.  
  248. Values for signal action:
  249.  00h    SIG_DFL        terminate process on receipt
  250.  01h    SIG_IGN        ignore signal
  251.  02h    SIG_GET        signal is accepted
  252.  03h    SIG_ERR        sender gets error
  253.  04h    SIG_ACK        acknowledge received signal and clear it, but don't
  254.             change current setting
  255.  
  256. Signal handler is called with:
  257.     AL = signal number
  258.     AH = signal argument
  259. Return: RETF, CF set: terminate process
  260.     RETF, CF clear, ZF set: abort any interrupted system call with an error
  261.     RETF, CF clear, ZF clear: restart any interrupted system call
  262.     IRET: restart any interrupted system call
  263. Note:    the signal handler may also perform a nonlocal GOTO by resetting the
  264.       stack pointer and jumping; before doing so, it should dismiss the
  265.       signal by calling this function with BL=04h
  266. ----------218D-------------------------------
  267. INT 21 - European MSDOS 4.0 - SEND SIGNAL
  268.     AH = 8Dh
  269.     AL = signal number (see AH=8Ch)
  270.     BH = signal argument
  271.     BL = action
  272.         00h send to entire command subtree
  273.         01h send only to specified process
  274.     DX = Process ID
  275. Return: CF clear if successful
  276.     CF set on error
  277.         AX = error code (01h,06h)(see AH=59h)
  278. Desc:    invoke the exceptional-condition handler for the specified process
  279. Note:    error 06h may be returned if one or more of the affected processes
  280.       have an error handler for the signal
  281. SeeAlso: AH=8Ch
  282. ----------218E00-----------------------------
  283. INT 21 - European MSDOS 4.0 - "SETPRI" - GET/SET PROCESS PRIORITY
  284.     AX = 8E00h
  285.     BH = 00h
  286.     BL = action
  287.         00h set priority for command subtree
  288.         01h set priority for specified process only
  289.     CX = Process ID
  290.     DH = 00h
  291.     DL = change in priority (00h to get priority)
  292. Return: CF clear if successful
  293.         DL = process priority
  294.         DH destroyed
  295.     CF set on error
  296.         AX = error code (01h,no such process)(see AH=59h)
  297. Desc:    specify or determine the execution priority of the specified process
  298.       or the process and all of its children
  299. SeeAlso: AH=81h
  300. ----------218F-------------------------------
  301. INT 21 U - European MSDOS 4.0 - ???
  302.     AH = 8Fh
  303.     ???
  304. Return: ???
  305. ----------2190-------------------------------
  306. INT 21 U - European MSDOS 4.0 - ???
  307.     AH = 90h
  308.     ???
  309. Return: ???
  310. ----------2190-------------------------------
  311. INT 21 - VIRUS - "Carioca" - INSTALLATION CHECK
  312.     AH = 90h
  313. Return: AH = 01h if resident
  314. SeeAlso: AH=89h"VIRUS",AX=9753h"VIRUS"
  315. ----------2191-------------------------------
  316. INT 21 U - European MSDOS 4.0 - ???
  317.     AH = 91h
  318.     ???
  319. Return: ???
  320. ----------2192-------------------------------
  321. INT 21 U - European MSDOS 4.0 - ???
  322.     AH = 92h
  323.     ???
  324. Return: ???
  325. ----------2193-------------------------------
  326. INT 21 - European MSDOS 4.0 - "PIPE" - CREATE A NEW PIPE
  327.     AH = 93h
  328.     CX = size in bytes
  329. Return: CF clear if successful
  330.         AX = read handle
  331.         BX = write handle
  332.     CF set on error
  333.         AX = error code (08h) (see AH=59h)
  334. Desc:    create a communications channel which may be used for interprocess
  335.       data and command exchanges
  336. SeeAlso: AH=3Ch,AH=3Fh,AH=40h,AH=84h
  337. ----------2194-------------------------------
  338. INT 21 U - European MSDOS 4.0 - ???
  339.     AH = 94h
  340.     ???
  341. Return: ???
  342. ----------2195-------------------------------
  343. INT 21 - European MSDOS 4.0 - HARD ERROR PROCESSING
  344.     AH = 95h
  345.     AL = new state
  346.        00h enabled
  347.        01h disabled, automatically fail hard errors
  348. Return: AX = previous setting
  349. Desc:    specify whether hard (critical) errors should automatically fail the
  350.       system call or invoke an INT 24
  351. SeeAlso: INT 24
  352. ----------2196-------------------------------
  353. INT 21 U - European MSDOS 4.0 - ???
  354.     AH = 96h
  355.     ???
  356. Return: ???
  357. ----------2197-------------------------------
  358. INT 21 U - European MSDOS 4.0 - ???
  359.     AH = 97h
  360.     ???
  361. Return: ???
  362. ----------219753-----------------------------
  363. INT 21 - VIRUS - "Nina" - INSTALLATION CHECK
  364.     AX = 9753h
  365. Return: never (executes original program) if virus resident
  366. SeeAlso: AH=90h"VIRUS",AX=A1D5h"VIRUS"
  367. ----------2198-------------------------------
  368. INT 21 U - European MSDOS 4.0 - ???
  369.     AH = 98h
  370.     ???
  371. Return: ???
  372. ----------2199-------------------------------
  373. INT 21 u - European MSDOS 4.0 - "PBLOCK" - BLOCK A PROCESS
  374.     AH = 99h
  375.     DS:BX -> memory location to block on
  376.     CX = timeout in milliseconds
  377.     DH = nonzero if interruptible
  378. Return: CF clear if awakened by event
  379.         AX = 0000h
  380.     CF set if unusual wakeup
  381.         ZF set if timeout, clear if interrupted by signal
  382.         AX = nonzero
  383. Desc:    suspend calling process until another process sends a "restart" signal
  384.       or a timeout occurs
  385. SeeAlso: AH=9Ah,INT 2F/AX=0802h
  386. ----------219A-------------------------------
  387. INT 21 u - European MSDOS 4.0 - "PRUN" - UNBLOCK A PROCESS
  388.     AH = 9Ah
  389.     DS:BX -> memory location processes may have blocked on
  390. Return: AX = number of processes awakened
  391.     ZF set if no processes awakened
  392. Desc:    restart all processes waiting for the specified "restart" signal
  393. SeeAlso: AH=99h,INT 2F/AX=0802h
  394. ----------21A0-------------------------------
  395. INT 21 - Attachmate Extra - GET 3270 DISPLAY STATE
  396.     AH = A0h
  397. Return: AL = display status
  398.         bit     7  : 0=windowed, 1=enlarged
  399.         bits 6-3: current screen profile number 0-9
  400.         bits 2-0: active window number
  401.             0=PC, 1-4=host B-E, 5-6=notepad F-G
  402.     BX = host window status
  403.         bit 15:  reserved
  404.         bit 14:  0=host E window installed, 1=not
  405.         bit 13:  0=host E terminal on, 1=off
  406.         bit 12:  0=host E window displayed, 1=not
  407.         bit 11:  reserved
  408.         bit 10:  0=host D window installed, 1=not
  409.         bit     9:  0=host D terminal on, 1=off
  410.         bit     8:  0=host D window displayed, 1=not
  411.         bit     7:  reserved
  412.         bit     6:  0=host C window installed, 1=not
  413.         bit     5:  0=host C terminal on, 1=off
  414.         bit     4:  0=host C window displayed, 1=not
  415.         bit     3:  reserved
  416.         bit     2:  0=host B window installed, 1=not
  417.         bit     1:  0=host B terminal on, 1=off
  418.         bit     0:  0=host B window displayed, 1=not
  419. Note:    Attachmate Extra is a 3270 emulator by Attachmate Corporation
  420. SeeAlso: AH=A1h
  421. ----------21A1-------------------------------
  422. INT 21 - Attachmate Extra - SET 3270 DISPLAY STATE
  423.     AH = A1h
  424.     AL = set status byte
  425.         bit     7  : 0=windowed, 1=enlarged
  426.         bits 6-3: current screen profile number 0-9
  427.         bits 2-0: active window number
  428.             0=PC, 1-4=host B-E, 5-6=notepad F-G
  429. SeeAlso: AH=A0h,AH=A2h
  430. ----------21A1D5-----------------------------
  431. INT 21 - VIRUS - "789"/"Filehider" - INSTALLATION CHECK
  432.     AX = A1D5h
  433. Return: AX = 900Dh if resident
  434. SeeAlso: AX=9753h,AX=A55Ah
  435. ----------21A2-------------------------------
  436. INT 21 - Attachmate Extra - SET HOST WINDOW STATE
  437.     AH = A2h
  438.     AL = set status byte
  439.         bit     7  : 0=power off, 1=power on
  440.         bit     6  : 0=not installed, 1=installed
  441.         bits 5-3: reserved
  442.         bits 2-0: window number 1-4=host B-E
  443. SeeAlso: AH=A1h
  444. ----------21A3-------------------------------
  445. INT 21 - Attachmate Extra - SEND KEYSTROKES TO HOST WINDOW
  446.     AH = A3h
  447.     AL = window number (1-4=host B-E)
  448.     CX = 0001h
  449.     DS:BX -> keystroke buffer
  450.     DL = zero if keystroke buffer contains host function code,
  451.          non-zero if keystroke buffer contains ASCII character
  452. Return: CX = zero if character sent, non-zero if not
  453.     BX incremented if CX=0
  454.  
  455. Values for host function code:
  456.     00h=reserved    10h=PF16    20h=Clear    30h=SysRq
  457.     01h=PF1        11h=PF17    21h=Print    31h=ErInp
  458.     02h=PF2        12h=PF18    22h=Left    32h=ErEof
  459.     03h=PF3        13h=PF19    23h=Right    33h=Ident
  460.     04h=PF4        14h=PF20    24h=Up        34h=Test
  461.     05h=PF5        15h=PF21    25h=Down    35h=Reset
  462.     06h=PF6        16h=PF22    26h=Home    36h=DevCncl
  463.     07h=PF7        17h=PF23    27h=Fast Left    37h=Dup
  464.     08h=PF8        18h=PF24    28h=Fast Right    38h=FldMark
  465.     09h=PF9        19h=Alt on    29h=Bksp    39h=Enter
  466.     0Ah=PF10    1Ah=Alt off    2Ah=Insert    3Ah=CrSel
  467.     0Bh=PF11    1Bh=Shift on    2Bh=Delete
  468.     0Ch=PF12    1Ch=Shift off    2Ch=Backtab
  469.     0Dh=PF13    1Dh=PA1        2Dh=Tab
  470.     0Eh=PF14    1Eh=PA2        2Eh=Newline
  471.     0Fh=PF15    1Fh=PA3        2Fh=Attn
  472. ----------21A4-------------------------------
  473. INT 21 - Attachmate Extra - GET HOST WINDOW BUFFER ADDRESS
  474.     AH = A4h
  475.     AL = window number (1-4=host B-E)
  476. Return: DS:BX -> 3270 display buffer
  477. SeeAlso: AH=A5h,AH=B8h
  478. ----------21A5-------------------------------
  479. INT 21 - Attachmate Extra - GET HOST WINDOW CURSOR POSITION
  480.     AH = A5h
  481.     AL = window number (1-4=host B-E)
  482. Return: BX = cursor position (80 * row + column, where 0:0 is upper left)
  483. Note:    if the host window is configured with the Extended Attribute (EAB)
  484.       feature, multiply the cursor position by 2 to obtain the byte offset
  485.       into the display buffer
  486. SeeAlso: AH=A4h
  487. ----------21A55A-----------------------------
  488. INT 21 - VIRUS - "Eddie-2" - INSTALLATION CHECK
  489.     AX = A55Ah
  490. Return: AX = 5AA5h if resident
  491. SeeAlso: AX=A1D5h,AX=AA00h
  492. ----------21AA00-----------------------------
  493. INT 21 - VIRUS - "Blinker" - INSTALLATION CHECK
  494.     AX = AA00h
  495. Return: AX = 00AAh if resident
  496. SeeAlso: AX=A55Ah,AX=AA03h
  497. ----------21AA03-----------------------------
  498. INT 21 - VIRUS - "Backtime" - INSTALLATION CHECK
  499.     AX = AA03h
  500. Return: AX = 03AAh if resident
  501. SeeAlso: AX=AA00h,AH=ABh
  502. ----------21AB-------------------------------
  503. INT 21 - VIRUS - "600" or "Voronezh"-family - INSTALLATION CHECK
  504.     AH = ABh
  505. Return: AX = 5555h if resident
  506. SeeAlso: AX=AA03h,AX=BBBBh"VIRUS"
  507. ----------21AF-------------------------------
  508. INT 21 - Attachmate Extra - GET TRANSLATE TABLE ADDRESS
  509.     AH = AFh
  510. Return: DS:BX -> translate tables (see below)
  511.  
  512. Format of translate tables:
  513. Offset    Size    Description
  514.  00h 256 BYTEs    ASCII to 3270 buffer code translate table
  515. 100h 256 BYTEs    3270 buffer code to ASCII translate table
  516. 200h 256 BYTEs    3270 buffer code to EBCDIC translate table
  517. 300h 256 BYTEs    EBCDIC to 3270 buffer code translate table
  518. ----------21B5-------------------------------
  519. INT 21 - Novell NetWare shell 3.01 - TASK MODE CONTROL
  520.     AH = B5h
  521.     AL = subfunction
  522.         03h get task mode
  523.         Return: AH = 00h
  524.             AL = current task mode byte
  525.         04h get task mode pointer
  526.         Return: ES:BX -> task mode byte
  527. Notes:    the task mode byte specifies how task cleanup should be performed, but
  528.       is declared to be version-dependent
  529.     allows a program to disable the automatic cleanup for programs managing
  530.       task swapping, etc.
  531.  
  532. Values for task mode byte in version 3.01:
  533.  00h-03h reserved
  534.  04h     no task cleanup
  535. ----------21B6-------------------------------
  536. INT 21 - Novell NetWare - FILE SERVICES - EXTENDED FILE ATTRIBUTES
  537.     AH = B6h
  538.     AL = subfunction
  539.         00h get extended file attributes
  540.         01h set extended file attributes
  541.         CL = extended file attributes (see below)
  542.     DS:DX -> ASCIZ pathname (max 255 bytes)
  543. Return: CF set on error
  544.         AL = error code
  545.         8Ch caller lacks privileges
  546.         FEh not permitted to search directory
  547.         FFh file not found
  548.     CF clear if successful
  549.         AL = 00h (success)
  550.         CL = current extended file attributes (see below)
  551. Note:    this function is supported by Advanced NetWare 2.1+
  552. SeeAlso: AX=4300h,AH=E3h/SF=0Fh
  553.  
  554. Bitmask of extended file attributes:
  555.  bits 2-0: search mode (executables only)
  556.     000 none (use shell's default search)
  557.     001 search on all opens without path
  558.     010 do not search
  559.     011 search on read-only opens without path
  560.     100 reserved
  561.     101 search on all opens
  562.     110 reserved
  563.     111 search on all read-only opens
  564.  bit 3: reserved
  565.  bit 4: transactions on file tracked
  566.  bit 5: file's FAT indexed
  567.  bit 6: read audit (to be implemented)
  568.  bit 7: write audit (to be implemented)
  569. ----------21B8-------------------------------
  570. INT 21 - Attachmate Extra - DISABLE HOST BUFFER UPDATES
  571.     AH = B8h
  572.     AL = window number (1-4=host B-E)
  573.     DL = 01h
  574. Notes:    only valid in CUT mode
  575.     next AID keystroke (eg Enter) enables host buffer updates
  576. SeeAlso: AH=A4h
  577. ----------21B800-----------------------------
  578. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT CAPTURE FLAGS
  579.     AX = B800h
  580.     CX = size of reply buffer (01h-3Fh)
  581.     ES:BX -> reply buffer for capture flags table (see below)
  582. Return: AL = status
  583.         00h successful
  584. Note:    this function is supported by Advanced NetWare 2.0+
  585. SeeAlso: AX=B801h,AX=B802h,AH=DFh/DL=00h,AH=DFh/DL=04h
  586.  
  587. Format of capture flags table:
  588. Offset    Size    Description
  589.  00h    BYTE    status (used internally, should be set to 00h)
  590.  01h    BYTE    print flags
  591.         bit 2: print capture file if interrupted by loss of connection
  592.             3: no automatic form feed after print job
  593.             6: printing control sequences interpreted by print service
  594.             7: print banner page before capture file
  595.  02h    BYTE    tab size (01h-12h, default 08h)
  596.  03h    BYTE    printer number on server (00h-04h, default 00h)
  597.  04h    BYTE    number of copies to print (00h-FFh, default 01h)
  598.  05h    BYTE    form type required in printer (default 00h)
  599.  06h    BYTE    reserved
  600.  07h 13 BYTEs    text to be placed on banner page
  601.  14h    BYTE    reserved
  602.  15h    BYTE    default local printer (00h = LPT1)
  603.  16h    WORD    timeout in clock ticks for flushing capture file on inactivity
  604.         (big-endian)
  605.         0000h = never timeout
  606.  18h    BYTE    flush capture file on LPT close if nonzero
  607.  19h    WORD    maximum lines per page (big-endian)
  608.  1Bh    WORD    maximum characters per line (big-endian)
  609.  1Dh 13 BYTEs    name of form required in printer
  610.  2Ah    BYTE    LPT capture flag
  611.         00h inactive, FFh LPT device is being captured
  612.  2Bh    BYTE    file capture flag
  613.         00h if no file specified, FFh if capturing to file
  614.  2Ch    BYTE    timing out (00h if no timeout in effect, FFh if timeout counter
  615.         running)
  616.  2Dh    DWORD    address of printer setup string (big-endian)
  617.  31h    DWORD    address of printer reset string (big-endian)
  618.  35h    BYTE    target connection ID
  619.  36h    BYTE    capture in progress if FFh
  620.  37h    BYTE    job queued for printing if FFh
  621.  38h    BYTE    print job valid if FFh
  622.  39h    DWORD    bindery object ID of print queue if previous byte FFh
  623.  3Dh    WORD    print job number (1-999) `````(big-endian)
  624. ----------21B801-----------------------------
  625. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT CAPTURE FLAGS
  626.     AX = B801h
  627.     CX = size of buffer (01h-3Fh)
  628.     ES:BX -> buffer containing capture flags table (see below)
  629. Return: AL = status
  630.         00h successful
  631. Note:    this function is supported by Advanced NetWare 2.0+
  632. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  633. ----------21B802-----------------------------
  634. INT 21 - Novell NetWare - PRINT SERVICES - GET SPECIFIC CAPTURE FLAGS
  635.     AX = B802h
  636.     CX = size of reply buffer (01h-3Fh)
  637.     DH = LPT port (00h-02h)
  638.     ES:BX -> reply buffer for capture flags table (see AX=B800h)
  639. Return: AL = status
  640.         00h successful
  641. Note:    this function is supported by Advanced NetWare 2.1+
  642. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  643. ----------21B803-----------------------------
  644. INT 21 - Novell NetWare - PRINT SERVICES - SET SPECIFIC CAPTURE FLAGS
  645.     AX = B803h
  646.     CX = size of buffer (01h-3Fh)
  647.     DH = LPT port (00h-02h)
  648.     ES:BX -> buffer containing capture flags table (see below)
  649. Return: AL = status
  650.         00h successful
  651. Note:    this function is supported by Advanced NetWare 2.1+
  652. SeeAlso: AX=B800h,AX=B803h,AH=DFh/DL=00h,AH=DFh/DL=04h
  653. ----------21B804-----------------------------
  654. INT 21 - Novell NetWare - PRINT SERVICES - GET DEFAULT LOCAL PRINTER
  655.     AX = B804h
  656. Return: DH = default LPT port (00h-02h)
  657. Note:    this function is supported by Advanced NetWare 2.1+
  658. SeeAlso: AX=B800h,AX=B805h,AH=DFh/DL=00h
  659. ----------21B805-----------------------------
  660. INT 21 - Novell NetWare - PRINT SERVICES - SET DEFAULT LOCAL PRINTER
  661.     AX = B805h
  662.     DH = new default LPT port (00h-02h)
  663. Return: AL = status
  664.         00h successful
  665. Note:    this function is supported by Advanced NetWare 2.1+
  666. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h
  667. ----------21B806-----------------------------
  668. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT QUEUE
  669.     AX = B806h
  670.     DH = LPT port (00h-02h)
  671.     BX:CX = print queue's object ID
  672. Return: AL = status
  673.         00h successful
  674.         FFh job already set
  675. Desc:    specify the print queue on which a print job is to be placed the next
  676.       time a capture is started on the given printer port
  677. Note:    this function is supported by Advanced NetWare 2.1+
  678. SeeAlso: AX=B801h,AX=B807h,AX=E009h
  679. ----------21B807-----------------------------
  680. INT 21 - Novell NetWare - PRINT SERVICES - SET CAPTURE PRINT JOB
  681.     AX = B807h
  682.     DH = LPT port (00h-02h)
  683.     BX = job number (see AH=E3h/SF=68h)
  684.     SI:DI:CX = NetWare file handle (see AH=E3h/SF=68h)
  685. Return: AL = status
  686.         00h successful
  687.         FFh job already queued
  688. Desc:    specify the capture file and print job to be used for subsequent
  689.       output to the given printer port
  690. Note:    this function is supported by Advanced NetWare 2.1+
  691. SeeAlso: AX=B801h,AX=B806h,AX=E009h,AH=E3h/SF=68h
  692. ----------21B808-----------------------------
  693. INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
  694.     AX = B808h
  695.     ES:BX -> 12-byte buffer for user name
  696. Return: AL = status
  697.         00h successful
  698. Desc:    get the user name which is printed on the banner page
  699. Notes:    this function is supported by Advanced NetWare 2.1+
  700.     the default name is the login name of the user
  701. SeeAlso: AX=B809h
  702. ----------21B809-----------------------------
  703. INT 21 - Novell NetWare - PRINT SERVICES - GET BANNER USER NAME
  704.     AX = B809h
  705.     ES:BX -> 12-byte buffer containing user name
  706. Return: AL = status
  707.         00h successful
  708. Desc:    specify the user name which is printed on the banner page
  709. Notes:    this function is supported by Advanced NetWare 2.1+
  710.     the default name is the login name of the user
  711. SeeAlso: AX=B808h
  712. ----------21BB-------------------------------
  713. INT 21 - Novell NetWare - WORKSTATION - SET END OF JOB STATUS
  714.     AH = BBh
  715.     AL = new EOJ flag
  716.         00h disable EOJs
  717.         01h enable EOJs
  718. Return: AL = old EOJ flag
  719. Desc:    specify whether the network shell should automatically generate an
  720.       End of Job call when the root command processor regains control
  721. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  722.       Alloy NTNX
  723. SeeAlso: AH=D6h
  724. ----------21BBBB-----------------------------
  725. INT 21 - VIRUS - "Hey You" - INSTALLATION CHECK
  726.     AX = BBBBh
  727. Return: AX = 6969h
  728. SeeAlso: AH=ABh"VIRUS",AH=BEh"VIRUS"
  729. ----------21BC-------------------------------
  730. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG PHYSICAL RECORD
  731.     AH = BCh
  732.     AL = flags
  733.         bit 0: lock as well as log record
  734.         1: non-exclusive lock
  735.     BX = file handle
  736.     CX:DX = starting offset in file
  737.     SI:DI = length of region to lock
  738.     BP = timeout in timer ticks (1/18 sec)
  739.         0000h = don't wait if already locked
  740. Return: AL = status
  741.         00h successful
  742.         96h no dynamic memory for file
  743.         FEh timed out
  744.         FFh failed
  745. Desc:    add the specified physical record to the log table, optionally locking
  746.       it
  747. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  748.       Alloy NTNX
  749. SeeAlso: AH=5Ch,AH=BDh,AH=BEh,AH=BFh,AH=C2h,AH=D0h
  750. ----------21BD-------------------------------
  751. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECORD
  752.     AH = BDh
  753.     BX = file handle
  754.     CX:DX = starting offset in file
  755.     SI:DI = length of record
  756. Return: AL = status
  757.         00h successful
  758.         FFh record not locked
  759. Desc:    unlock the specified physical record but do not remove it from log
  760.       table
  761. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  762.       Alloy NTNX
  763. SeeAlso: AH=BCh,AH=BEh"NetWare",AH=C0h,AH=C3h,AH=D2h
  764. ----------21BE-------------------------------
  765. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD
  766.     AH = BEh
  767.     BX = file handle
  768.     CX:DX = starting offset within file
  769.     SI:DI = record length in bytes
  770. Return: AL = status
  771.         00h successful
  772.         FFh specified record not locked
  773. Desc:    unlock the physical record and remove it from the log table
  774. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  775.       Alloy NTNX
  776. SeeAlso: AH=5Ch,AH=BCh,AH=BDh,AH=C1h,AH=C4h,AH=D4h
  777. ----------21BE-------------------------------
  778. INT 21 - VIRUS - "Datalock" - INSTALLATION CHECK
  779.     AH = BEh
  780. Return: AX = 1234h if resident
  781. SeeAlso: AX=BBBBh,AX=BE00h
  782. ----------21BE00-----------------------------
  783. INT 21 - VIRUS - "USSR-1049" - INSTALLATION CHECK
  784.     AX = BE00h
  785.     CF set
  786. Return: CF clear if resident
  787. SeeAlso: AH=BEh"VIRUS",AH=C0h"VIRUS"
  788. ----------21BF-------------------------------
  789. INT 21 - Novell NetWare 4.6, Alloy NTNX - LOG/LOCK RECORD (FCB)
  790.     AH = BFh
  791.     AL = flags
  792.         bit 0: lock as well as log record
  793.         1: non-exclusive lock
  794.     DS:DX -> opened FCB (see AH=0Fh)
  795.     BX:CX = offset
  796.     BP = lock timeout in timer ticks (1/18 sec)
  797.     SI:DI = length
  798. Return: AL = error code (see AH=BCh)
  799. SeeAlso: AH=BCh,AH=C0h"NetWare",AH=C2h"NetWare"
  800. ----------21C0-------------------------------
  801. INT 21 - Novell NetWare 4.6, Alloy NTNX - RELEASE RECORD (FCB)
  802.     AH = C0h
  803.     DS:DX -> FCB (see AH=0Fh)
  804.     BX:CX = offset
  805. Return: AL = error code (see AH=BCh)
  806. Note:    unlocks record but does not remove it from log table
  807. SeeAlso: AH=BDh,AH=BFh,AH=C1h"NetWare",AH=C3h
  808. ----------21C0-------------------------------
  809. INT 21 - VIRUS - "Slow"/"Zerotime", "Solano" - INSTALLATION CHECK
  810.     AH = C0h
  811. Return: AX = 0300h if "Slow"/"Zerotime" resident
  812.     AX = 1234h if "Solano" resident
  813. SeeAlso: AX=BE00h,AH=C1h"VIRUS",AX=C301h"VIRUS"
  814. ----------21C1-------------------------------
  815. INT 21 - Novell NetWare 4.6, Alloy NTNX - CLEAR RECORD (FCB)
  816.     AH = C1h
  817.     DS:DX -> opened FCB (see AH=0Fh)
  818.     BX:CX = offset
  819. Return: AL = error code (see AH=BCh)
  820. Note:    unlocks record and removes it from log table
  821. SeeAlso: AH=BEh,AH=C0h"NetWare",AH=C4h
  822. ----------21C1-------------------------------
  823. INT 21 - VIRUS - "Solano" - ???
  824.     AH = C1h
  825.     ???
  826. Return: ???
  827. SeeAlso: AH=C0h"VIRUS"
  828. ----------21C2-------------------------------
  829. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK PHYSICAL RECORD SET
  830.     AH = C2h
  831.     AL = flags
  832.         bit 1: non-exclusive lock
  833.     BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  834. Return: AL = status
  835.         00h successful
  836.         FEh timed out
  837.         FFh failed
  838. Desc:    attempt to lock all physical records listed in the log table
  839. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  840.       Alloy NTNX
  841.     status FFh will be retuend if one or more physical records have been
  842.       exclusively locked by another process
  843. SeeAlso: AH=BFh,AH=C3h,AH=D1h
  844. ----------21C2-------------------------------
  845. INT 21 - VIRUS - "Scott's Valley" - ???
  846.     AH = C2h
  847.     ???
  848. Return: ???
  849. SeeAlso: AH=C0h"VIRUS"
  850. ----------21C3-------------------------------
  851. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE PHYSICAL RECRD SET
  852.     AH = C3h
  853. Desc:    unlock all currently-locked physical records in the log table, but do
  854.       not remove them from the table
  855. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  856.       Alloy NTNX
  857. SeeAlso: AH=BDh,AH=C0h,AH=C2h"NetWare",AH=C4h,AH=D3h
  858. ----------21C301DXF1F1-----------------------
  859. INT 21 - VIRUS - "905"/"Backfont" - INSTALLATION CHECK
  860.     AX = C301h
  861.     DX = F1F1h
  862. Return: DX = 0E0Eh if resident
  863. SeeAlso: AH=C0h"VIRUS",AX=C500h"VIRUS"
  864. ----------21C4-------------------------------
  865. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR PHYSICAL RECORD SET
  866.     AH = C4h
  867. Desc:    unlock all physical records in the log table and remove them from the
  868.       log table
  869. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  870.       Alloy NTNX
  871. SeeAlso: AH=BEh,AH=C1h,AH=D5h
  872. ----------21C500-----------------------------
  873. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - OPEN SEMAPHORE
  874.     AX = C500h
  875.     DS:DX -> semaphore name (counted string, max 127 bytes)
  876.     CL = initial value for semaphore
  877. Return: AL = status
  878.         00h successful
  879.         BL = number of processes having semaphore open
  880.         CX:DX = semaphore handle
  881.         FEh invalid name length
  882.         FFh invalid semaphore value
  883. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  884.       Alloy NTNX
  885.     the semaphore's value is incremented by AX=C503h and decremented by
  886.       AX=C502h
  887. SeeAlso: AX=C501h,AX=C502h,AX=C503h,AX=C504h
  888. ----------21C500-----------------------------
  889. INT 21 - VIRUS - "Sverdlov" - INSTALLATION CHECK
  890.     AX = C500h
  891. Return: AX = 6731h if resident
  892. SeeAlso: AX=C301h"VIRUS",AH=C6h"VIRUS"
  893. ----------21C501-----------------------------
  894. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - EXAMINE SEMAPHORE
  895.     AX = C501h
  896.     CX:DX = semaphore handle
  897. Return: AL = status
  898.         00h successful
  899.         CX = semaphore value (-127 to 127)
  900.         DL = count of processes which have the semaphore open
  901.         FFh invalid handle
  902. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  903.       Alloy NTNX
  904. SeeAlso: AX=C500h"NetWare",AX=C502h,AX=C504h
  905. ----------21C502-----------------------------
  906. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - WAIT ON SEMAPHORE
  907.     AX = C502h
  908.     CX:DX = semaphore handle
  909.     BP = timeout limit in timer ticks (1/18 sec)
  910.         0000h return immediately if semaphore already zero or negative
  911. Return: AL = status
  912.         00h successful
  913.         FEh timeout
  914.         FFh invalid handle
  915. Desc:    decrement the semaphore's value, optionally waiting until its value
  916.       becomes positive before decrementing
  917. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  918.       Alloy NTNX
  919. SeeAlso: AX=C500h"NetWare",AX=C501h,AX=C503h
  920. ----------21C503-----------------------------
  921. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - SIGNAL SEMAPHORE
  922.     AX = C503h
  923.     CX:DX = semaphore handle
  924. Return: AL = status
  925.         00h successful
  926.         01h semaphore value overflowed
  927.         FFh invalid handle
  928. Desc:    increment the semaphore's value and signal the first process (if any)
  929.       in the queue waiting on the semaphore
  930. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  931.       Alloy NTNX
  932. SeeAlso: AX=C500h"NetWare",AX=C502h
  933. ----------21C504-----------------------------
  934. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLOSE SEMAPHORE
  935.     AX = C504h
  936.     CX:DX = semaphore handle
  937. Return: AL = status
  938.         00h successful
  939.         FFh invalid handle
  940. Desc:    decrement the semaphore's open count, and delete the semaphore if the
  941.       count reaches zero
  942. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  943.       Alloy NTNX
  944. SeeAlso: AX=C500h"NetWare",AX=C501h
  945. ----------21C6-------------------------------
  946. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - GET OR SET LOCK MODE
  947.     AH = C6h
  948.     AL = subfunction
  949.         00h set old "compatibility" mode (default)
  950.         01h set new extended locks mode 
  951.         02h get lock mode
  952. Return: AL = current lock mode
  953. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  954.       Alloy NTNX
  955.     the locking mode should be 01h for NetWare 4.61+ and Advanced
  956.       NetWare 1.0+ locking calls, and 00h for all older calls
  957. SeeAlso: AH=BCh,AH=C4h,AH=D0h
  958. ----------21C6-------------------------------
  959. INT 21 - VIRUS - "Socha" - INSTALLATION CHECK
  960.     AH = C6h
  961. Return: AL = 55h if resident
  962. SeeAlso: AX=C500h"VIRUS",AX=C603h
  963. ----------21C603-----------------------------
  964. INT 21 - VIRUS - "Yankee" or "MLTI" - INSTALLATION CHECK
  965.     AX = C603h
  966.     CF set
  967. Return: CF clear if resident
  968. SeeAlso: AX=C500h"VIRUS",AX=C700h"VIRUS"
  969. ----------21C700-----------------------------
  970. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - BEGIN TRANSACTION
  971.     AX = C700h
  972. Return: CF clear if successful
  973.         AL = 00h
  974.     CF set on error
  975.         AL = error code
  976.         96h out of memory
  977.         FEh implicit transaction already active, converted to explicit
  978.         FFh explicit transaction already active
  979. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  980. SeeAlso: AX=C701h,AX=C702h,AX=C703h
  981. ----------21C700-----------------------------
  982. INT 21 - VIRUS - "MH-757" - INSTALLATION CHECK
  983.     AX = C700h
  984. Return: AL = 07h if resident
  985. SeeAlso: AX=C603h"VIRUS",AH=CBh"VIRUS"
  986. ----------21C701-----------------------------
  987. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - END TRANSACTION
  988.     AX = C701h
  989. Return: AL = status
  990.         00h successful
  991.         CX:DX = transaction number
  992.         FDh transaction tracking disabled
  993.         FEh transaction ended records locked
  994.         FFh no explicit transaction active
  995.     CF clear except when AL=FFh
  996. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  997. SeeAlso: AX=C700h"NetWare",AX=C703h
  998. ----------21C702-----------------------------
  999. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - INSTALLATION CHECK
  1000.     AX = C702h
  1001. Return: AL = status
  1002.         00h not available
  1003.         01h available
  1004.         FDh available but disabled
  1005. Desc:    determine whether the default file server supports TTS
  1006. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1007. ----------21C703-----------------------------
  1008. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - ABORT TRANSACTION
  1009.     AX = C703h
  1010. Return: CF clear if successful
  1011.         AL = 00h
  1012.     CF set on error
  1013.         AL = error code
  1014.         FDh transaction tracking disabled, no backout
  1015.         FEh transaction ended records locked
  1016.         FFh no explicit transaction active
  1017. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1018. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C704h
  1019. ----------21C704-----------------------------
  1020. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - TRANSACTION STATUS
  1021.     AX = C704h
  1022.     CX:DX = transaction number (see AX=C701h)
  1023. Return: AL = status
  1024.         00h successful
  1025.         FFh not yet written to disk
  1026. Desc:    verify that a transaction has actually been written to disk
  1027. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1028.     transactions are written to disk in the order in which they are ended,
  1029.       but it may take as much as five seconds for the data to be written
  1030. SeeAlso: AX=C700h"NetWare",AX=C701h,AX=C703h
  1031. ----------21C705-----------------------------
  1032. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET APPLICTN THRESHOLDS
  1033.     AX = C705h
  1034. Return: AL = status
  1035.         00h successful
  1036.     CL = maximum logical record locks (default 0)
  1037.     CH = maximum physical record locks (default 0)
  1038. Desc:    get the per-application limits on record locks allowed before an
  1039.       implicit transaction is begun
  1040. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1041.     if either limit is FFh, implicit transactions are disabled for the
  1042.       corresponding lock type
  1043. SeeAlso: AX=C706h,AX=C707h
  1044. ----------21C706-----------------------------
  1045. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET APPLICTN THRESHOLDS
  1046.     AX = C706h
  1047.     CL = maximum logical record locks (default 0)
  1048.     CH = maximum physical record locks (default 0)
  1049. Return: AL = status
  1050.         00h successful
  1051. Desc:    specify the per-application limits on record locks allowed before an
  1052.       implicit transaction is begun
  1053. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1054.     if either limit is set to FFh, implicit transactions are disabled for
  1055.       the corresponding lock type
  1056. SeeAlso: AX=C705h,AX=C708h
  1057. ----------21C707-----------------------------
  1058. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - GET WORKSTN THRESHOLDS
  1059.     AX = C707h
  1060. Return: AL = status
  1061.         00h successful
  1062.     CL = maximum logical record locks (default 0)
  1063.     CH = maximum physical record locks (default 0)
  1064. Desc:    get the per-workstation limits on record locks allowed before an
  1065.       implicit transaction is begun
  1066. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1067.     if either limit is FFh, implicit transactions are disabled for the
  1068.       corresponding lock type
  1069. SeeAlso: AX=C705h,AX=C708h
  1070. ----------21C708-----------------------------
  1071. INT 21 - Novell NetWare - TRANSACTION TRACKING SYSTEM - SET WORKSTN THRESHOLDS
  1072.     AX = C708h
  1073.     CL = maximum logical record locks (default 0)
  1074.     CH = maximum physical record locks (default 0)
  1075. Return: AL = status
  1076.         00h successful
  1077. Desc:    specify the per-workstation limits on record locks allowed before an
  1078.       implicit transaction is begun
  1079. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1080.     if either limit is set to FFh, implicit transactions are disabled for
  1081.       the corresponding lock type
  1082. SeeAlso: AX=C706h,AX=C707h
  1083. ----------21C8-------------------------------
  1084. INT 21 - Novell NetWare 4.0 - BEGIN LOGICAL FILE LOCKING
  1085.     AH = C8h
  1086.     if function C6h lock mode 00h:
  1087.         DL = mode
  1088.         00h no wait
  1089.         01h wait
  1090.     if function C6h lock mode 01h:
  1091.         BP = timeout in timer ticks (1/18 sec)
  1092. Return: AL = error code
  1093. SeeAlso: AH=C9h
  1094. ----------21C9-------------------------------
  1095. INT 21 - Novell NetWare 4.0 - END LOGICAL FILE LOCKING
  1096.     AH = C9h
  1097. Return: AL = error code
  1098. SeeAlso: AH=C8h
  1099. ----------21CA-------------------------------
  1100. INT 21 - Novell NetWare 4.0, Alloy NTNX - LOG/LOCK PERSONAL FILE (FCB)
  1101.     AH = CAh
  1102.     DS:DX -> FCB (see AH=0Fh)
  1103.     if function C6h lock mode 01h:
  1104.         AL = log and lock flag
  1105.         00h log file only
  1106.         01h lock as well as log file
  1107.         BP = lock timeout in timer ticks (1/18 sec)
  1108. Return: AL = error code
  1109.         00h successful
  1110.         96h no dynamic memory for file
  1111.         FEh timeout
  1112.         FFh failed
  1113. SeeAlso: AH=CBh
  1114. ----------21CA15-----------------------------
  1115. INT 21 - VIRUS - "Piter" - ???
  1116.     AX = CA15h
  1117.     ???
  1118. Return: ???
  1119. SeeAlso: AH=CCh"VIRUS"
  1120. ----------21CB-------------------------------
  1121. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK FILE SET
  1122.     AH = CBh
  1123.     if function C6h lock mode 00h:
  1124.         DL = mode
  1125.         00h no wait
  1126.         01h wait
  1127.     if function C6h lock mode 01h:
  1128.         BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  1129. Return: AL = status
  1130.         00h successful
  1131.         FEh timed out
  1132.         FFh failed
  1133. Desc:    attempt to lock all files listed in the log table
  1134. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1135.       Alloy NTNX
  1136.     status FFh will be returned if one or more of the files have already
  1137.       been exclusively locked by another process
  1138. SeeAlso: AH=CAh,AH=CDh,AH=D1h,AH=EBh
  1139. ----------21CB-------------------------------
  1140. INT 21 - VIRUS - "Milous" - INSTALLATION CHECK
  1141.     AH = CBh
  1142. Return: AL = 07h if resident
  1143. SeeAlso: AX=C700h"VIRUS",AX=CB02h
  1144. ----------21CB02-----------------------------
  1145. INT 21 - VIRUS - "Witcode" - INSTALLATION CHECK
  1146.     AX = CB02h
  1147. Return: AX = 02CBh if resident
  1148. SeeAlso: AH=CBh"VIRUS",AH=CCh"VIRUS"
  1149. ----------21CC-------------------------------
  1150. INT 21 - Novell NetWare 4.0, Alloy NTNX - RELEASE FILE (FCB)
  1151.     AH = CCh
  1152.     DS:DX -> FCB (see AH=0Fh)
  1153. Return: none
  1154. Note:    unlocks file, but does not remove it from the log table or close it
  1155. SeeAlso: AH=CAh,AH=CDh
  1156. ----------21CC-------------------------------
  1157. INT 21 - VIRUS - "Westwood" - INSTALLATION CHECK
  1158.     AH = CCh
  1159. Return: AX = 0700h if resident
  1160. SeeAlso: AX=CB02h,AH=CDh"VIRUS",AX=D000h"VIRUS"
  1161. ----------21CD-------------------------------
  1162. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE SET
  1163.     AH = CDh
  1164. Return: none
  1165. Desc:    unlock all files listed in the log table, but don't remove them from
  1166.       the table
  1167. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1168.       Alloy NTNX
  1169. SeeAlso: AH=CBh,AH=CCh,AH=CFh,AH=D3h
  1170. ----------21CD-------------------------------
  1171. INT 21 - VIRUS - "Westwood" - ???
  1172.     AH = CDh
  1173.     ???
  1174. Return: ???
  1175. SeeAlso: AH=CCh"VIRUS"
  1176. ----------21CE-------------------------------
  1177. INT 21 - Novell NetWare 4.0, Alloy NTNX - CLEAR FILE (FCB)
  1178.     AH = CEh
  1179.     DS:DX -> FCB (see AH=0Fh)
  1180. Return: AL = error code
  1181. Note:    unlocks file and removes it from log table, then closes all opened and
  1182.       logged occurrences
  1183. SeeAlso: AH=CAh,AH=CFh,AH=EDh"NetWare"
  1184. ----------21CF-------------------------------
  1185. INT 21 - LANstep - ???
  1186.     AH = CFh
  1187.     ???
  1188. Return: ???
  1189. Note:    LANstep is a redesign of the Waterloo Microsystems PORT network
  1190. ----------21CF-------------------------------
  1191. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE SET
  1192.     AH = CFh
  1193. Return: AL = 00h
  1194. Desc:    unlock and remove all files from log table
  1195. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1196.       Alloy NTNX
  1197. SeeAlso: AH=CAh,AH=CEh,AH=EBh"NetWare"
  1198. ----------21D0-------------------------------
  1199. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG LOGICAL RECORD
  1200.     AH = D0h
  1201.     DS:DX -> record string (counted string, max 99 data bytes)
  1202.     if function C6h lock mode 01h: (Novell, NTNX only)
  1203.         AL = flags
  1204.         bit 0: lock as well as log the record
  1205.         bit 1: non-exclusive lock
  1206.         BP = lock timeout in timer ticks (1/18 sec)
  1207. Return: AL = status
  1208.         00h successful
  1209.         96h no dynamic memory for file
  1210.         FEh timed out
  1211.         FFh unsuccessful
  1212. Desc:    add the specified logical record name to the log table, and optionally
  1213.       lock the record
  1214. Notes:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+,
  1215.       Banyan VINES, and Alloy NTNX
  1216.     locks on logical record names are advisory and may be ignored by other
  1217.       applications
  1218. SeeAlso: AH=BCh,AH=D1h,AH=D2h,AH=D4h,AH=EBh
  1219. ----------21D000-----------------------------
  1220. INT 21 - VIRUS - "Fellowship" - INSTALLATION CHECK
  1221.     AX = D000h
  1222. Return: BX = 1234h if resident
  1223. SeeAlso: AH=CCh"VIRUS",AH=D5h"VIRUS",AX=D5AAh
  1224. ----------21D1-------------------------------
  1225. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOCK LOGICAL RECORD SET
  1226.     AH = D1h
  1227.     AL = lock type (00h exclusive, 01h shareable)
  1228.     if function C6h lock mode 00h:
  1229.         DL = mode
  1230.         00h no wait
  1231.         01h wait
  1232.     if function C6h lock mode 01h: (Novell only)
  1233.        BP = lock timeout in timer ticks (1/18 sec) 0000h = no wait
  1234.         0000h no wait
  1235. Return: AL = status (see AH=CBh)
  1236. Desc:    attempt to lock all logical record names listed in the log table
  1237. Notes:    this function is supported by NetWare 4.6+, Advanced Netware 1.0+,
  1238.       Banyan VINES, and Alloy NTNX
  1239.     status FFh will be returned if one or more logical records have been
  1240.       exclusively locked by another process
  1241.     locks on logical record names are advisory and may be ignored by other
  1242.       applications
  1243. SeeAlso: AH=C2h,AH=CBh,AH=D0h,AH=D3h,AH=D5h
  1244. ----------21D2-------------------------------
  1245. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD
  1246.     AH = D2h
  1247.     DS:DX -> semaphore identifier (counted string up to 99 chars long)
  1248. Return: AL = status
  1249.         00h successful
  1250.         FFh no such record
  1251. Desc:    unlock the logical record name but do not remove it from the log table
  1252. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1253.       Banyan VINES, and Alloy NTNX
  1254.     locks on logical record names are advisory and may be ignored by other
  1255.       applications
  1256. SeeAlso: AH=BDh,AH=D0h,AH=D3h,AH=D4h
  1257. ----------21D3-------------------------------
  1258. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE LOGICAL RECORD SET
  1259.     AH = D3h
  1260. Desc:    unlock all currently-locked logical record names in the log table, but
  1261.       do not remove them from the table
  1262. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1263.       Banyan VINES, and Alloy NTNX
  1264.     locks on logical record names are advisory and may be ignored by other
  1265.       applications
  1266. SeeAlso: AH=C3h,AH=CDh,AH=D1h,AH=D2h,AH=D5h
  1267. ----------21D4-------------------------------
  1268. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD
  1269.     AH = D4h
  1270.     DS:DX -> logical record name (counted string up to 99 chars long)
  1271. Return: AL = status
  1272.         00h successful
  1273.         FFh no such record name
  1274. Desc:    unlock and remove the logical record name from the log table
  1275. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1276.       Banyan VINES, and Alloy NTNX
  1277.     locks on logical record names are advisory and may be ignored by other
  1278.       applications
  1279. SeeAlso: AH=BEh,AH=D0h,AH=D2h,AH=D5h
  1280. ----------21D5-------------------------------
  1281. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR LOGICAL RECORD SET
  1282.     AH = D5h
  1283. Return: AL = error code (see AH=D4h)
  1284. Desc:    unlock and remove all logical record name from the log table
  1285. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  1286.       Banyan VINES, and Alloy NTNX
  1287.     locks on logical record names are advisory and may be ignored by other
  1288.       applications
  1289. SeeAlso: AH=D1h,AH=D3h,AH=D4h
  1290. ----------21D5-------------------------------
  1291. INT 21 - VIRUS - "Carfield" - ???
  1292.     AH = D5h
  1293.     ???
  1294. Return: ???
  1295. SeeAlso: AX=D5AAh,AH=F3h"Carfield"
  1296. ----------21D5AA-----------------------------
  1297. INT 21 - VIRUS - "Diamond-A", "Diamond-B" - INSTALLATION CHECK
  1298.     AX = D5AAh
  1299. Return: AX = 2A55h if "Diamond-A" resident
  1300.     AX = 2A03h if "Diamond-B"-family virus resident
  1301. SeeAlso: AX=D000h,AH=D5h"VIRUS",AX=D5AAh/BP=DEAAh
  1302. ----------21D5AABPDEAA-----------------------
  1303. INT 21 - VIRUS - "Dir" - INSTALLATION CHECK
  1304.     AX = D5AAh
  1305.     BP = DEAAh
  1306. Return: SI = 4321h if resident
  1307. SeeAlso: AX=D5AAh,AX=DADAh"VIRUS"
  1308. ----------21D6-------------------------------
  1309. INT 21 - Novell NetWare - WORKSTATION - END OF JOB
  1310.     AH = D6h
  1311.     BX = job flag (0000h current job, FFFFh all processes on workstation)
  1312. Return: AL = error code
  1313. Desc:    unlocks and clears all locked or logged files and records held by the
  1314.       process(es), closes all files, resets error and lock modes, and
  1315.       releases all network resources
  1316. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1317.       Alloy NTNX
  1318. SeeAlso: AH=BBh,AH=D7h
  1319. ----------21D7-------------------------------
  1320. INT 21 - Novell NetWare - CONNECTION SERVICES - SYSTEM LOGOUT
  1321.     AH = D7h
  1322. Return: AL = error code
  1323. Desc:    this function closes the caller's open files, logs it out from all
  1324.       file servers, detaches the workstation from all non-default file
  1325.       servers, and maps a drive to the default server's SYS:LOGIN directory
  1326. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1327.       Alloy NTNX
  1328. SeeAlso: AH=D6h,AH=E3h/SF=14h,AH=F1h
  1329. ----------21D8-------------------------------
  1330. INT 21 - Novell NetWare, Banyan VINES - ALLOCATE RESOURCE
  1331.     AH = D8h
  1332.     DL = resource number
  1333. Return: AL = status
  1334.         00h successful
  1335.         FFh unsucessful
  1336. SeeAlso: AH=D9h
  1337. ----------21D9-------------------------------
  1338. INT 21 - Novell NetWare, Banyan VINES - DEALLOCATE RESOURCE
  1339.     AH = D9h
  1340.     DL = resource number
  1341. Return:    AL = status (see AH=D8h)
  1342. SeeAlso: AH=D8h
  1343. ----------21DA-------------------------------
  1344. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH NUMBER
  1345.     AH = DAh
  1346.     DL = volume number
  1347.     ES:DI -> reply buffer (see below)
  1348. Return: AL = 00h
  1349. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1350. SeeAlso: AH=36h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  1351.  
  1352. Format of reply buffer:
  1353. Offset    Size    Description
  1354.  00h    WORD    sectors/block
  1355.  02h    WORD    total blocks on volume
  1356.  04h    WORD    unused blocks
  1357.  06h    WORD    total directory entries
  1358.  08h    WORD    unused directory entries
  1359.  0Ah 16 BYTEs    volume name, null padded
  1360.  1Ah    WORD    removable flag, 0000h = not removable
  1361. Note:    all words are big-endian
  1362. ----------21DADA-----------------------------
  1363. INT 21 - VIRUS - "Gotcha" - INSTALLATION CHECK
  1364.     AX = DADAh
  1365. Return: AH = A5h
  1366. SeeAlso: AX=D5AAh,AH=DAFEh"VIRUS"
  1367. ----------21DAFE-----------------------------
  1368. INT 21 - VIRUS - "Plovdiv 1.3" - INSTALLATION CHECK
  1369.     AX = DAFEh
  1370. Return: AX = 1234h if resident
  1371. SeeAlso: AX=DADAh,AH=DDh"VIRUS",AH=DEh"VIRUS"
  1372. ----------21DB-------------------------------
  1373. INT 21 - Novell NetWare - WORKSTATION - GET NUMBER OF LOCAL DRIVES
  1374.     AH = DBh
  1375. Return: AL = number of local disks as set by LASTDRIVE in CONFIG.SYS
  1376. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1377.       Alloy NTNX
  1378. SeeAlso: AH=0Eh
  1379. ----------21DC-------------------------------
  1380. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION NUMBER
  1381.     AH = DCh
  1382. Return: AL = logical connection number
  1383.         00h if NetWare not loaded or this machine is a non-dedicated server
  1384.     CX = station number in ASCII (CL = first digit)
  1385. Notes:    this function is supported by NetWare 4.0+, Banyan VINES, and Alloy
  1386.       NTNX
  1387.     station number only unique for those PCs connected to same semaphore
  1388.       service
  1389. ----------21DC-------------------------------
  1390. INT 21 - PCMag PCMANAGE/DCOMPRES - TURN ON/OFF
  1391.     AH = DCh
  1392.     DX = state
  1393.         0000h turn on
  1394.         0001h turn off
  1395. SeeAlso: AX=FEDCh
  1396. ----------21DD-------------------------------
  1397. INT 21 - Novell NetWare - WORKSTATION - SET NetWare ERROR MODE
  1398.     AH = DDh
  1399.     DL = error mode
  1400.         00h invoke INT 24 on critical I/O errors (default)
  1401.         01h return NetWare extended error code in AL
  1402.         02h return error code in AL, mapped to standard DOS error codes
  1403. Return: AL = previous error mode
  1404. Note:    this function is supported by Advanced NetWare 2.0+
  1405. SeeAlso: INT 24
  1406. ----------21DD-------------------------------
  1407. INT 21 - VIRUS - "Jerusalem"-family - RELOCATE VIRUS???
  1408.     AH = DDh
  1409.     CX = number of bytes to copy
  1410.     DS:SI -> source of copy
  1411.     ES:DI -> destination of copy
  1412. Return: does not return normally; return address is caller's CS:0100h with
  1413.       AX = ???
  1414. SeeAlso: AH=E0h"VIRUS",AH=EEh"VIRUS"
  1415. ----------21DE-------------------------------
  1416. INT 21 - VIRUS - "Durban" - INSTALLATION CHECK
  1417.     AH = DEh
  1418. Return: AH = DFh if resident
  1419. SeeAlso: AX=DAFEh,AX=DEDEh"VIRUS"
  1420. ----------21DE-------------------------------
  1421. INT 21 - VIRUS - "April 1st EXE" - ???
  1422.     AH = DEh
  1423.     ???
  1424. Return: ???
  1425. ----------21DE-------------------------------
  1426. INT 21 - Novell NetWare - MESSAGE SERVICES - SET BROADCAST MODE
  1427.     AH = DEh
  1428.     DL = broadcast mode
  1429.         00h receive server and workstation broadcasts (default)
  1430.         01h receive server broadcasts, discard user messages
  1431.         02h store server broadcasts for retrieval
  1432.         03h store all broadcasts for retrieval
  1433. Return: AL = new broadcast mode
  1434. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1435. ----------21DE--DL04-------------------------
  1436. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MODE
  1437.     AH = DEh
  1438.     DL = 04h
  1439. Return: AL = current broadcast mode
  1440.         00h receive server and workstation broadcasts (default)
  1441.         01h receive server broadcasts, discard user message
  1442.         02h store server broadcasts for retrieval
  1443.         03h store all broadcasts for retrieval
  1444. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1445. ----------21DE-------------------------------
  1446. INT 21 - Novell NetWare 4.0 - SHELL TIMER INTERRUPT CHECKS
  1447.     AH = DEh
  1448.     DL = function
  1449.         05h disable shell timer interrupt checks
  1450.         06h enable shell timer interrupt checks
  1451. Return: ???
  1452. ----------21DEDE-----------------------------
  1453. INT 21 - VIRUS - "Brothers" - INSTALLATION CHECK
  1454.     AX = DEDEh
  1455. Return: AH = 41h if resident
  1456. SeeAlso: AH=DEh"VIRUS",AH=E0h"VIRUS"
  1457. ----------21DF--DL00-------------------------
  1458. INT 21 - Novell NetWare - PRINT SERVICES - START LPT CAPTURE
  1459.     AH = DFh
  1460.     DL = 00h
  1461. Return: AL = status
  1462.         00h successful
  1463. Desc:    this function redirects the default LPT to a capture file on the file
  1464.       server
  1465. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1466.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1467.     a print job is queued when the first character of output is captured
  1468. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=03h
  1469. SeeAlso: AH=DFh/DL=04h,AX=F003h
  1470. ----------21DF--DL01-------------------------
  1471. INT 21 - Novell NetWare - PRINT SERVICES - END LPT CAPTURE
  1472.     AH = DFh
  1473.     DL = 01h
  1474. Return: AL = status
  1475.         00h successful
  1476. Desc:    stop redirecting the default LPT, close the capture file, and release
  1477.       the job in the print queue for printing
  1478. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1479.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1480.     after this call, the default LPT defaults to local printing
  1481. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=02h,AH=DFh/DL=03h,AH=DFh/DL=05h
  1482. ----------21DF--DL02-------------------------
  1483. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL LPT CAPTURE
  1484.     AH = DFh
  1485.     DL = 02h
  1486. Return: AL = status
  1487.         00h successful
  1488. Desc:    this function ends the capture of the default LPT, removes the job from
  1489.       the print queue, and deletes the capture file unless it is a
  1490.       permanent capture file
  1491. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1492.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1493.     after this call, the default LPT defaults to local printing
  1494. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=06h
  1495. ----------21DF--DL02-------------------------
  1496. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH LPT CAPTURE
  1497.     AH = DFh
  1498.     DL = 03h
  1499. Return: AL = status
  1500.         00h successful
  1501. Desc:    this function closes the current capture file for the default LPT
  1502.       and starts printing it if it is not a permanent capture file
  1503. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1504.       Alloy NTNX; under NTNX, it sends a print break (see INT 17/AH=84h)
  1505.     if more data is sent to the LPT port after this call, a new capture
  1506.       file will be opeend
  1507. SeeAlso: AH=DFh/DL=00h,AH=DFh/DL=01h,AH=DFh/DL=02h,AH=DFh/DL=07h
  1508. ----------21DF--DL04-------------------------
  1509. INT 21 - Novell NetWare - PRINT SERVICES - START SPECIFIC LPT CAPTURE
  1510.     AH = DFh
  1511.     DL = 04h
  1512.     DH = LPT port (00h-02h)
  1513. Return: AL = status
  1514.         00h successful
  1515. Desc:    this function redirects the specified LPT to a capture file on the file
  1516.       server
  1517. Notes:    this function is supported by Advanced NetWare 2.1+
  1518.     a print job is queued when the first character of output is captured
  1519. SeeAlso: AX=B800h,AH=DFh/DL=00h,AH=DFh/DL=05h,AH=DFh/DL=06h,AH=DFh/DL=07h
  1520. SeeAlso: AX=F003h
  1521. ----------21DF--DL05-------------------------
  1522. INT 21 - Novell NetWare - PRINT SERVICES - END SPECIFIC LPT CAPTURE
  1523.     AH = DFh
  1524.     DL = 05h
  1525.     DH = LPT port (00h-02h)
  1526. Return: AL = status
  1527.         00h successful
  1528. Desc:    stop redirecting the specified LPT, close the capture file, and release
  1529.       the job in the print queue for printing
  1530. Notes:    this function is supported by Advanced NetWare 2.1+
  1531.     after this call, the specified LPT defaults to local printing
  1532. SeeAlso: AH=DFh/DL=01h,AH=DFh/DL=04h,AH=DFh/DL=06h,AH=DFh/DL=07h
  1533. ----------21DF--DL06-------------------------
  1534. INT 21 - Novell NetWare - PRINT SERVICES - CANCEL SPECIFIC LPT CAPTURE
  1535.     AH = DFh
  1536.     DL = 06h
  1537.     DH = LPT port (00h-02h)
  1538. Return: AL = status
  1539.         00h successful
  1540. Desc:    this function ends the capture of the specified LPT, removes the job
  1541.       from the print queue, and deletes the capture file unless it is a
  1542.       permanent capture file
  1543. Notes:    this function is supported by Advanced NetWare 2.1+
  1544.     after this call, the specified LPT defaults to local printing
  1545. SeeAlso: AH=DFh/DL=02h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=07h
  1546. ----------21DF--DL07-------------------------
  1547. INT 21 - Novell NetWare - PRINT SERVICES - FLUSH SPECIFIC LPT CAPTURE
  1548.     AH = DFh
  1549.     DL = 07h
  1550.     DH = LPT port (00h-02h)
  1551. Return: AL = status
  1552.         00h successful
  1553. Desc:    this function closes the current capture file for the specified LPT
  1554.       and starts printing it if it is not a permanent capture file
  1555. Notes:    this function is supported by Advanced NetWare 2.1+
  1556.     if more data is sent to the LPT port after this call, a new capture
  1557.       file will be opeend
  1558. SeeAlso: AH=DFh/DL=03h,AH=DFh/DL=04h,AH=DFh/DL=05h,AH=DFh/DL=06h
  1559. ----------21E0-------------------------------
  1560. INT 21 - Digital Research DOS Plus - CALL BDOS
  1561.     AH = E0h
  1562.     CL = BDOS function number (see INT E0"CP/M")
  1563.     other registers as appropriate for function
  1564. Return: as appropriate for function
  1565. SeeAlso: AX=4459h,INT E0"CP/M"
  1566. ----------21E0-------------------------------
  1567. INT 21 - OS/286, OS/386 - INITIALIZE REAL PROCEDURE
  1568.     AH = E0h
  1569.     ???
  1570. Return: ???
  1571. SeeAlso: AH=E1h"OS/286"
  1572. ----------21E0-------------------------------
  1573. INT 21 - DoubleDOS - MENU CONTROL
  1574.     AH = E0h
  1575.     AL = subfunction
  1576.         01h exchange tasks
  1577.         73h resume invisible job if suspended
  1578.         74h kill other job
  1579.         75h suspend invisible job
  1580. Note:    identical to AH=F0h
  1581. SeeAlso: AH=F0h"DoubleDOS"
  1582. ----------21E0-------------------------------
  1583. INT 21 - VIRUS - "Jerusalem", "Armagedon" - INSTALLATION CHECK
  1584.     AH = E0h
  1585. Return: AX = 0300h if "Jerusalem" resident
  1586.     AX = DADAh if "Armagedon" resident
  1587. SeeAlso: AH=DEh"VIRUS",AX=DEDEh"VIRUS",AX=E00Fh
  1588. ----------21E0-------------------------------
  1589. INT 21 - Novell NetWare 4.0, Alloy NTNX - PRINT SPOOLING
  1590.     AH = E0h
  1591.     DS:SI -> request buffer
  1592.     ES:DI -> reply buffer
  1593.     subfunction in third byte of request buffer
  1594.         00h spool data to a capture file
  1595.         01h close and queue capture file
  1596.         02h set spool flags
  1597.         03h spool existing file
  1598.         04h get spool queue entry
  1599.         05h remove entry from spool queue
  1600. Return: AL = status
  1601. ----------21E0--SF06-------------------------
  1602. INT 21 - Novell NetWare - PRINT SERVICES - GET PRINTER STATUS
  1603.     AH = E0h subfn 06h
  1604.     DS:SI -> request buffer (see below)
  1605.     ES:DI -> reply buffer (see below)
  1606. Return: AL = status
  1607.         00h successful
  1608.         FFh no such printer
  1609. Desc:    get current state of specified printer attached to the server
  1610. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1611.       Alloy NTNX
  1612.  
  1613. Format of request buffer:
  1614. Offset    Size    Description
  1615.  00h    WORD    0002h (length of following data)
  1616.  02h    BYTE    06h (subfunction "Get Printer Status")
  1617.  03h    BYTE    printer number (00h-04h)
  1618.  
  1619. Format of reply buffer:
  1620. Offset    Size    Description
  1621.  00h    WORD    (call) 0004h (size of following results buffer)
  1622.  02h    BYTE    flag: 00h printer active, FFh printer halted
  1623.  03h    BYTE    flag: 00h printer online, 01h printer offline
  1624.  04h    BYTE    current form type
  1625.  05h    BYTE    target printer number (00h-04h)
  1626.         same as number in request buffer unless rerouted by server
  1627.         console
  1628. ----------21E0--SF09-------------------------
  1629. INT 21 - Novell NetWare - PRINT SERVICES - SPECIFY CAPTURE FILE
  1630.     AH = E0h subfn 09h
  1631.     DS:SI -> request buffer (see below)
  1632.     ES:DI -> reply buffer (see below)
  1633. Return: AL = status
  1634.         00h successful
  1635.         9Ch invalid path
  1636. Desc:    create a permanent capture file for the next print capture to be
  1637.       started
  1638. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1639.       Alloy NTNX
  1640.     the caller must have read, write, and create rights for the directory
  1641.       containing the capture file
  1642.  
  1643. Format of request buffer:
  1644. Offset    Size    Description
  1645.  00h    WORD    length of following data (max 102h)
  1646.  02h    BYTE    09h (subfunction "Specify Capture File")
  1647.  03h    BYTE    directory handle or 00h
  1648.  04h    BYTE    length of filename
  1649.  05h  N BYTEs    name of capture file
  1650.  
  1651. Format of reply buffer:
  1652. Offset    Size    Description
  1653.  00h    WORD    (call) 0000h (no results returned)
  1654. ----------21E00F-----------------------------
  1655. INT 21 - VIRUS - "8-tunes" - INSTALLATION CHECK
  1656.     AX = E00Fh
  1657. Return: AX = 4C31h if resident
  1658. SeeAlso: AH=E0h"VIRUS",AH=E1h"VIRUS"
  1659. ----------21E1-------------------------------
  1660. INT 21 - OS/286, OS/386 - ISSUE REAL PROCEDURE CALL
  1661.     AH = E1h
  1662.     ???
  1663. Return: ???
  1664. Note:    protected mode only???
  1665. SeeAlso: AH=E0h"OS/286",AH=E2h"OS/286",AH=E3h"OS/286",AX=250Eh,INT 31/AX=0301h
  1666. ----------21E1-------------------------------
  1667. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  1668.     AH = E1h
  1669. SeeAlso: AH=E2h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  1670. SeeAlso: AH=F1h"DoubleDOS"
  1671. ----------21E1-------------------------------
  1672. INT 21 - VIRUS - "Mendoza", "Fu Manchu" - INSTALLATION CHECK
  1673.     AH = E1h
  1674. Return: AX = 0300h if "Mendoza" resident
  1675.     AX = 0400h if "Fu Manchu" resident
  1676. SeeAlso: AX=E00Fh,AH=E4h"VIRUS"
  1677. ----------21E1--SF00-------------------------
  1678. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND BROADCAST MESSAGE
  1679.     AH = E1h subfn 00h
  1680.     DS:SI -> request buffer (see below)
  1681.     ES:DI -> reply buffer (see below)
  1682. Return: AL = status
  1683.         00h successful
  1684.         FEh I/O error or out of dynamic workspace
  1685. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1686. SeeAlso: AH=DEh"NetWare",AH=DEh/DL=04h,AH=E1h/SF=01h,AH=E1h/SF=04h
  1687. SeeAlso: AH=E1h/SF=09h
  1688.  
  1689. Format of request buffer:
  1690. Offset    Size    Description
  1691.  00h    WORD    length of following data (max 9Eh)
  1692.  02h    BYTE    00h (subfunction "Send Broadcast Message")
  1693.  03h    BYTE    number of connections (01h-64h)
  1694.  04h  N BYTEs    list of connections to receive broadcast message
  1695.     BYTE    length of message (01h-37h)
  1696.       N BYTEs    broadcast message (no control characters or characters > 7Eh)
  1697.  
  1698. Format of reply buffer:
  1699. Offset    Size    Description
  1700.  00h    WORD    (call) size of following results buffer (max 65h)
  1701.  02h    BYTE    number of connections
  1702.  03h  N BYTEs    list of per-connection results
  1703.         00h successful
  1704.         FCh message rejected due to lack of buffer space
  1705.         FDh invalid connection number
  1706.         FFh blocked (see also AH=E1h/SF=02h)
  1707. ----------21E1--SF01-------------------------
  1708. INT 21 - Novell NetWare - MESSAGE SERVICES - GET BROADCAST MESSAGE
  1709.     AH = E1h subfn 01h
  1710.     DS:SI -> request buffer (see below)
  1711.     ES:DI -> reply buffer (see below)
  1712. Return: AL = status
  1713.         00h successful
  1714.         FCh full message queue
  1715.         FEh out of dynamic workspace
  1716. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1717. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=09h
  1718.  
  1719. Format of request buffer:
  1720. Offset    Size    Description
  1721.  00h    WORD    0001h (length of following data)
  1722.  02h    BYTE    01h (subfunction "Get Broadcast Message")
  1723.  
  1724. Format of reply buffer:
  1725. Offset    Size    Description
  1726.  00h    WORD    (call) size of following results buffer (max 38h)
  1727.  02h    BYTE    length of message (00h-37h)
  1728.         00h if no broadcast messages pending
  1729.  03h  N BYTEs    message (no control characters or characters > 7Eh)
  1730. ----------21E1-------------------------------
  1731. INT 21 - Novell NetWare - MESSAGE SERVICES - ENABLE/DISABLE BROADCAST MESSAGES
  1732.     AH = E1h
  1733.     DS:SI -> request buffer (see below)
  1734.     ES:DI -> reply buffer
  1735. Return: AL = error code
  1736. Note:    these functions are supported by NetWare 4.0+ but are not listed in
  1737.       _NetWare_System_Calls--DOS_; they may be obsolete
  1738. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=04h,AH=E1h/SF=09h
  1739.  
  1740. Format of request buffer:
  1741. Offset    Size    Description
  1742.  00h    WORD    length of following data (max 9Eh)
  1743.  02h    BYTE    subfunction
  1744.         02h disable station broadcasts
  1745.         03h enable station broadcasts
  1746.  03h    ???
  1747.  
  1748. Format of reply buffer:
  1749. Offset    Size    Description
  1750.  00h    WORD    (call) size of following results buffer
  1751.  02h    ???
  1752. ----------21E1--SF04-------------------------
  1753. INT 21 - Novell NetWare - MESSAGE SERVICES - SEND PERSONAL MESSAGE
  1754.     AH = E1h subfn 04h
  1755.     DS:SI -> request buffer (see below)
  1756.     ES:DI -> reply buffer (see below)
  1757. Return: AL = status
  1758.         00h successful
  1759.         FEh I/O error or out of dynamic workspace
  1760. Notes:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1761.     message pipes use CPU time on the file server; IPX, SPX, or NetBIOS
  1762.       connections should be used for peer-to-peer communications as these
  1763.       protocols do not use file server time
  1764. SeeAlso: AH=E1h/SF=00h,AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  1765.  
  1766. Format of request buffer:
  1767. Offset    Size    Description
  1768.  00h    WORD    length of following data (max E5h)
  1769.  02h    BYTE    04h (subfunction "Send Personal Message")
  1770.  03h    BYTE    number of connections (01h-64h)
  1771.  04h  N BYTEs    list of connections to receive broadcast message
  1772.     BYTE    length of message (01h-7Eh)
  1773.       N BYTEs    message (no control characters or characters > 7Eh)
  1774.  
  1775. Format of reply buffer:
  1776. Offset    Size    Description
  1777.  00h    WORD    (call) size of following results buffer (max 65h)
  1778.  02h    BYTE    number of connections
  1779.  03h  N BYTEs    list of per-connection results
  1780.         00h successful
  1781.         FCh message rejected because queue is full (contains 6 msgs)
  1782.         FDh incomplete pipe
  1783.         FFh failed
  1784. ----------21E1--SF05-------------------------
  1785. INT 21 - Novell NetWare - MESSAGE SERVICES - GET PERSONAL MESSAGE
  1786.     AH = E1h subfn 05h
  1787.     DS:SI -> request buffer (see below)
  1788.     ES:DI -> reply buffer (see below)
  1789. Return: AL = status
  1790.         00h successful
  1791.         FEh out of dynamic workspace
  1792. Desc:    return the oldest message in the default file server's message queue
  1793.       for the calling workstation
  1794. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1795. SeeAlso: AH=E1h/SF=01h,AH=E1h/SF=04h,AH=E1h/SF=06h,AH=E1h/SF=08h
  1796.  
  1797. Format of request buffer:
  1798. Offset    Size    Description
  1799.  00h    WORD    0001h (length of following data)
  1800.  02h    BYTE    05h (subfunction "Get Personal Message")
  1801.  
  1802. Format of reply buffer:
  1803. Offset    Size    Description
  1804.  00h    WORD    (call) size of following results buffer (max 80h)
  1805.  02h    BYTE    connection number of sending station
  1806.  03h    BYTE    length of message (00h-7Eh)
  1807.         00h if no personal messages pending
  1808.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  1809. ----------21E1--SF06-------------------------
  1810. INT 21 - Novell NetWare - MESSAGE SERVICES - OPEN MESSAGE PIPE
  1811.     AH = E1h subfn 06h
  1812.     DS:SI -> request buffer (see below)
  1813.     ES:DI -> reply buffer (see below)
  1814. Return: AL = status
  1815.         00h successful
  1816.         FEh out of dynamic workspace
  1817. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1818. SeeAlso: AH=E1h/SF=04h,AH=E1h/SF=07h,AH=E1h/SF=08h
  1819.  
  1820. Format of request buffer:
  1821. Offset    Size    Description
  1822.  00h    WORD    length of following data (max 66h)
  1823.  02h    BYTE    06h (subfunction "Open Message Pipe")
  1824.  03h    BYTE    number of pipes to open (01h-64h)
  1825.  04h  N BYTEs    list of connection numbers
  1826.  
  1827. Format of reply buffer:
  1828. Offset    Size    Description
  1829.  00h    WORD    (call) size of following results buffer (max 65h)
  1830.  02h    BYTE    number of connections
  1831.  03h  N BYTEs    list of results
  1832.         00h successful
  1833.         FEh incomplete (target half not yet created)
  1834.         FFh failed
  1835. ----------21E1--SF07-------------------------
  1836. INT 21 - Novell NetWare - MESSAGE SERVICES - CLOSE MESSAGE PIPE
  1837.     AH = E1h subfn 07h
  1838.     DS:SI -> request buffer (see below)
  1839.     ES:DI -> reply buffer (see below)
  1840. Return: AL = status
  1841.         00h successful
  1842.         FCh full message queue
  1843.         FEh out of dynamic workspace
  1844. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1845. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=08h
  1846.  
  1847. Format of request buffer:
  1848. Offset    Size    Description
  1849.  00h    WORD    length of following data (max 66h)
  1850.  02h    BYTE    07h (subfunction "Close Message Pipe")
  1851.  03h    BYTE    number of pipes to close (01h-64h)
  1852.  04h  N BYTEs    list of connection numbers
  1853.  
  1854. Format of reply buffer:
  1855. Offset    Size    Description
  1856.  00h    WORD    (call) size of following results buffer (max 65h)
  1857.  02h    BYTE    number of connections
  1858.  03h  N BYTEs    list of results
  1859.         00h successful
  1860.         FDh failed
  1861.         FFh no such pipe
  1862. ----------21E1--SF08-------------------------
  1863. INT 21 - Novell NetWare - MESSAGE SERVICES - CHECK PIPE STATUS
  1864.     AH = E1h subfn 08h
  1865.     DS:SI -> request buffer (see below)
  1866.     ES:DI -> reply buffer (see below)
  1867. Return: AL = status
  1868.         00h successful
  1869.         FCh full message queue
  1870.         FEh out of dynamic workspace
  1871. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1872. SeeAlso: AH=E1h/SF=05h,AH=E1h/SF=06h,AH=E1h/SF=07h
  1873.  
  1874. Format of request buffer:
  1875. Offset    Size    Description
  1876.  00h    WORD    length of following data (max 66h)
  1877.  02h    BYTE    08h (subfunction "Check Pipe Status")
  1878.  03h    BYTE    number of pipes to monitor (01h-64h)
  1879.  04h  N BYTEs    list of connection numbers
  1880.  
  1881. Format of reply buffer:
  1882. Offset    Size    Description
  1883.  00h    WORD    (call) size of following results buffer (max 65h)
  1884.  02h    BYTE    number of connections
  1885.  03h  N BYTEs    list of pipe statuses
  1886.         00h open
  1887.         FEh incomplete
  1888.         FFh closed
  1889. ----------21E1--SF09-------------------------
  1890. INT 21 - Novell NetWare - MESSAGE SERVICES - BROADCAST TO CONSOLE
  1891.     AH = E1h subfn 09h
  1892.     DS:SI -> request buffer (see below)
  1893.     ES:DI -> reply buffer (see below)
  1894. Return: AL = status
  1895.         00h successful
  1896.         FCh full message queue
  1897.         FEh out of dynamic workspace
  1898. Desc:    send a one-line message to the system console on the default file
  1899.       server
  1900. Note:    this function is supported by NetWare 4.0+ and Advanced NetWare 1.0+
  1901. SeeAlso: AH=DEh/DL=04h,AH=E1h/SF=00h,AH=E1h/SF=01h,AH=E3h/SF=D1h
  1902.  
  1903. Format of request buffer:
  1904. Offset    Size    Description
  1905.  00h    WORD    length of following data (max 3Eh)
  1906.  02h    BYTE    09h (subfunction "Broadcast to Console")
  1907.  03h    BYTE    length of message (01h-3Ch)
  1908.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  1909.  
  1910. Format of reply buffer:
  1911. Offset    Size    Description
  1912.  00h    WORD    (call) 0000h (no results returned)
  1913. ----------21E2-------------------------------
  1914. INT 21 - OS/286, OS/386 - SET REAL PROCEDURE SIGNAL HANDLER
  1915.     AH = E2h
  1916.     ???
  1917. Return: ???
  1918. SeeAlso: AH=E0h"OS/286",AH=E1h"OS/286",AH=E6h"OS/286"
  1919. ----------21E2-------------------------------
  1920. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  1921.     AH = E2h
  1922.     AL = character
  1923. Return: AL = 00h successful
  1924.          01h buffer full (128 characters)
  1925. SeeAlso: AH=E1h"DoubleDOS",AH=E3h"DoubleDOS",AH=E8h"DoubleDOS"
  1926. SeeAlso: AH=F2h"DoubleDOS"
  1927. ----------21E2--SF00-------------------------
  1928. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY HANDLE
  1929.     AH = E2h subfn 00h
  1930.     DS:SI -> request buffer (see below)
  1931.     ES:DI -> reply buffer (see below)
  1932. Return: AL = status (00h,98h,9Bh,9Ch) (see below)
  1933. Desc:    set the target handle to reference the directory specified by the
  1934.       source handle and the source path; both handles must refer to the
  1935.       same file server
  1936. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1937.       Alloy NTNX
  1938.     the target handle is not changed if this function fails
  1939. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=12h,AH=E2h/SF=13h
  1940.  
  1941. Values for status:
  1942.  00h    successful
  1943.  84h    not permitted to create
  1944.  8Ah    not permitted to delete
  1945.  8Bh    not permitted to rename
  1946.  8Ch    not permitted to modify
  1947.  98h    nonexistent volume
  1948.  9Bh    invalid directory handle
  1949.  9Ch    invalid path
  1950.  9Eh    invalid filename
  1951.  9Fh    directory currently in use
  1952.  A0h    directory not empty
  1953.  FCh    no such bindery object
  1954.  
  1955. Format of request buffer:
  1956. Offset    Size    Description
  1957.  00h    WORD    length of following data (max 103h)
  1958.  02h    BYTE    00h (subfunction "Set Directory Handle")
  1959.  03h    BYTE    directory handle of target
  1960.  04h    BYTE    directory handle of source
  1961.  05h    BYTE    length of source directory path (01h-FFh)
  1962.  06h  N BYTEs    source directory path
  1963.  
  1964. Format of reply buffer:
  1965. Offset    Size    Description
  1966.  00h    WORD    (call) 0000h (no results returned)
  1967. ----------21E2--SF01-------------------------
  1968. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY PATH
  1969.     AH = E2h subfn 01h
  1970.     DS:SI -> request buffer (see below)
  1971.     ES:DI -> reply buffer (see below)
  1972. Return: AL = status (00h,9Bh) (see AH=E2h/SF=00h)
  1973. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1974.       Alloy NTNX
  1975. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=03h,AH=E2h/SF=1Ah,AH=E9h
  1976.  
  1977. Format of request buffer:
  1978. Offset    Size    Description
  1979.  00h    WORD    0002h (length of following data)
  1980.  02h    BYTE    01h (subfunction "Get Directory Path")
  1981.  03h    BYTE    directory handle
  1982.  
  1983. Format of reply buffer:
  1984. Offset    Size    Description
  1985.  00h    WORD    (call) length of following data buffer
  1986.  02h    BYTE    length of directory path (01h-FFh)
  1987.  03h  N BYTEs    full directory path including volume
  1988. ----------21E2--SF02-------------------------
  1989. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY INFORMATION
  1990.     AH = E2h subfn 02h
  1991.     DS:SI -> request buffer (see below)
  1992.     ES:DI -> reply buffer (see below)
  1993. Return: AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)
  1994. Desc:    get information about the first or next subdirectory of the specified
  1995.       directory
  1996. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  1997.       Alloy NTNX
  1998. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=03h,AH=E2h/SF=19h
  1999.  
  2000. Format of request buffer:
  2001. Offset    Size    Description
  2002.  00h    WORD    length of following data (max 104h)
  2003.  02h    BYTE    02h (subfunction "Scan Directory Information")
  2004.  03h    BYTE    directory handle
  2005.  04h    WORD    subdirectory number (big-endian)
  2006.         0000h for first call, returned subdir number + 1 on next call
  2007.  06h    BYTE    length of directory path
  2008.  07h  N BYTEs    directory path
  2009.  
  2010. Format of reply buffer:
  2011. Offset    Size    Description
  2012.  00h    WORD    (call) 001Ch (length of following data buffer)
  2013.  02h 16 BYTEs    subdirectory name
  2014.  12h    DWORD    date and time of creation (big-endian) (see below)
  2015.  16h    DWORD    object ID of owner (bid-endian)
  2016.  1Ah    BYTE    maximum directory rights (see AH=E2h/SF=03h)
  2017.  1Bh    BYTE    unused
  2018.  1Ch    WORD    subdirectory number (big-endian)
  2019.  
  2020. Bitmask of date and time:
  2021.  bits 31-25: year-1980
  2022.  bits 24-21: month
  2023.  bits 20-16: day
  2024.  bits 15-11: hour
  2025.  bits 10-5: minute
  2026.  bits 4-0: second
  2027. ----------21E2--SF03-------------------------
  2028. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET EFFECTIVE DIRECTORY RIGHTS
  2029.     AH = E2h subfn 03h
  2030.     DS:SI -> request buffer (see below)
  2031.     ES:DI -> reply buffer (see below)
  2032. Return: AL = status (00h,98h,9Bh) (see AH=E2h/SF=00h)
  2033. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2034.       Alloy NTNX
  2035. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=02h
  2036.  
  2037. Format of request buffer:
  2038. Offset    Size    Description
  2039.  00h    WORD    length of following data (max 102h)
  2040.  02h    BYTE    03h (subfunction "Get Effective Directory Rights")
  2041.  03h    BYTE    directory handle
  2042.  04h    BYTE    length of directory path (00h-FFh)
  2043.  05h  N BYTEs    directory path
  2044.  
  2045. Format of reply buffer:
  2046. Offset    Size    Description
  2047.  00h    WORD    (call) 0001h (length of following data buffer)
  2048.  02h    BYTE    effective directory rights (see below)
  2049.  
  2050. Bitmask of directory rights:
  2051.  bit 0: reading allowed
  2052.  bit 1: writing allowed
  2053.  bit 2: opens allowed
  2054.  bit 3: file creation allowed
  2055.  bit 4: deletion allowed
  2056.  bit 5: "parental" may create/delete subdirectories and
  2057.     grant/revoke trustee rights
  2058.  bit 6: directory search allowed
  2059.  bit 7: file attributes may be changed
  2060. ----------21E2--SF04-------------------------
  2061. INT 21 - Novell NetWare - DIRECTORY SERVICES - MODIFY MAXIMUM RIGHTS MASK
  2062.     AH = E2h subfn 04h
  2063.     DS:SI -> request buffer (see below)
  2064.     ES:DI -> reply buffer (see below)
  2065. Return: AL = status (00h,8Ch,98h,9Ch) (see AH=E2h/SF=00h)
  2066. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2067.       Alloy NTNX
  2068. SeeAlso: AH=E2h/SF=03h,AH=E2h/SF=0Ah,AH=E2h/SF=0Dh
  2069.  
  2070. Format of request buffer:
  2071. Offset    Size    Description
  2072.  00h    WORD    length of following data (max 104h)
  2073.  02h    BYTE    04h (subfunction "Modify Maximum Rights Mask")
  2074.  03h    BYTE    directory handle
  2075.  04h    BYTE    rights to grant (see AH=E2h/SF=03h)
  2076.  05h    BYTE    rights to revoke (see AH=E2h/SF=03h)
  2077.  06h    BYTE    length of directory path (00h-FFh)
  2078.  07h  N BYTEs    directory path
  2079. Note:    the rights specified at offset 05h are revoked first, and then the
  2080.       rights specified at offset 04h are added to the resulting rights
  2081.       mask
  2082.  
  2083. Format of reply buffer:
  2084. Offset    Size    Description
  2085.  00h    WORD    (call) 0000h (no results returned)
  2086. ----------21E2--SF05-------------------------
  2087. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NUMBER
  2088.     AH = E2h subfn 05h
  2089.     DS:SI -> request buffer (see below)
  2090.     ES:DI -> reply buffer (see below)
  2091. Return: AL = status (00h,98h) (see AH=E2h/SF=00h)
  2092. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2093.       Alloy NTNX
  2094. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E3h/SF=E9h
  2095.  
  2096. Format of request buffer:
  2097. Offset    Size    Description
  2098.  00h    WORD    length of following data (max 12h)
  2099.  02h    BYTE    05h (subfunction "Get Volume Number")
  2100.  03h    BYTE    length of volume name (01h-10h)
  2101.  04h  N BYTEs    volume name
  2102.  
  2103. Format of reply buffer:
  2104. Offset    Size    Description
  2105.  00h    WORD    (call) 0001h (length of following results buffer)
  2106.  02h    BYTE    volume number
  2107. ----------21E2--SF06-------------------------
  2108. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME NAME
  2109.     AH = E2h subfn 06h
  2110.     DS:SI -> request buffer (see below)
  2111.     ES:DI -> reply buffer (see below)
  2112. Return: AL = status (00h,98h) (see AH=E2h/SF=00h)
  2113. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2114.       Alloy NTNX
  2115. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=05h,AH=E2h/SF=15h,AH=E2h/SF=1Ah
  2116. SeeAlso: AH=E3h/SF=E9h
  2117.  
  2118. Format of request buffer:
  2119. Offset    Size    Description
  2120.  00h    WORD    0002h (length of following data)
  2121.  02h    BYTE    06h (subfunction "Get Volume Name")
  2122.  03h    BYTE    volume number
  2123.  
  2124. Format of reply buffer:
  2125. Offset    Size    Description
  2126.  00h    WORD    (call) 0011h (length of following results buffer)
  2127.  02h    BYTE    length of volume name
  2128.  03h 16 BYTEs    NUL-padded volume name
  2129. ----------21E2--SF0A-------------------------
  2130. INT 21 - Novell NetWare - DIRECTORY SERVICES - CREATE DIRECTORY
  2131.     AH = E2h subfn 0Ah
  2132.     DS:SI -> request buffer (see below)
  2133.     ES:DI -> reply buffer (see below)
  2134. Return: AL = status (00h,84h,98h,FCh) (see AH=E2h/SF=00h)
  2135. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2136.       Alloy NTNX
  2137. SeeAlso: AH=39h,AH=E2h/SF=0Bh,AH=E2h/SF=0Fh
  2138.  
  2139. Format of request buffer:
  2140. Offset    Size    Description
  2141.  00h    WORD    length of following data (max 103h)
  2142.  02h    BYTE    0Ah (subfunction "Create Directory")
  2143.  03h    BYTE    directory handle
  2144.  04h    BYTE    maximum directory rights (see AH=E2h/SF=01h)
  2145.  05h    BYTE    length of directory path (00h-FFh)
  2146.  06h  N BYTEs    directory path
  2147.  
  2148. Format of reply buffer:
  2149. Offset    Size    Description
  2150.  00h    WORD    (call) 0000h (no data returned)
  2151. ----------21E2--SF0B-------------------------
  2152. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE DIRECTORY
  2153.     AH = E2h subfn 0Bh
  2154.     DS:SI -> request buffer (see below)
  2155.     ES:DI -> reply buffer (see below)
  2156. Return: AL = status (00h,8Ah,98h,9Bh,9Ch,9Fh,A0h) (see AH=E2h/SF=00h)
  2157. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2158.       Alloy NTNX
  2159. SeeAlso: AH=3Ah,AH=E2h/SF=0Ah,AH=E2h/SF=0Fh
  2160.  
  2161. Format of request buffer:
  2162. Offset    Size    Description
  2163.  00h    WORD    length of following data (max 103h)
  2164.  02h    BYTE    0Bh (subfunction "Delete Directory")
  2165.  03h    BYTE    directory handle
  2166.  04h    BYTE    unused
  2167.  05h    BYTE    length of directory path (00h-FFh)
  2168.  06h  N BYTEs    directory path
  2169.  
  2170. Format of reply buffer:
  2171. Offset    Size    Description
  2172.  00h    WORD    (call) 0000h (no data returned)
  2173. ----------21E2--SF0C-------------------------
  2174. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN DIRECTORY FOR TRUSTEES
  2175.     AH = E2h subfn 0Ch
  2176.     DS:SI -> request buffer (see below)
  2177.     ES:DI -> reply buffer (see below)
  2178. Return: AL = status
  2179.         00h successful
  2180.         9Ch no more trustees
  2181. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2182. SeeAlso: AH=E2h/SF=0Dh,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  2183.  
  2184. Format of request buffer:
  2185. Offset    Size    Description
  2186.  00h    WORD    length of following data (max 103h)
  2187.  02h    BYTE    0Ch (subfunction "Scan Directory For Trustees")
  2188.  03h    BYTE    directory handle
  2189.  04h    BYTE    sequence number
  2190.         00h on first call, increment for each subsequent call
  2191.  05h    BYTE    length of directory path (00h-FFh)
  2192.  06h  N BYTEs    directory path
  2193.  
  2194. Format of reply buffer:
  2195. Offset    Size    Description
  2196.  00h    WORD    (call) 0031h (length of following results buffer)
  2197.  02h 16 BYTEs    directory name
  2198.  12h  4 BYTEs    date and time of creation
  2199.  16h    DWORD    object ID of owner (big-endian)
  2200.  1Ah  5 DWORDs    object IDs of Trustees 0 through 4 (big-endian)
  2201.         00000000h = end of group
  2202.  2Eh  5 BYTEs    directory rights for Trustees 0 through 4 (see AH=E2h/SF=03h)
  2203. ----------21E2--SF0D-------------------------
  2204. INT 21 - Novell NetWare - DIRECTORY SERVICES - ADD TRUSTEE TO DIRECTORY
  2205.     AH = E2h subfn 0Dh
  2206.     DS:SI -> request buffer (see below)
  2207.     ES:DI -> reply buffer (see below)
  2208. Return: AL = status (00h,8Ch,FCh) (see AH=E2h/SF=00h)
  2209. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2210.       Alloy NTNX
  2211. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Eh,AH=E3h/SF=47h
  2212.  
  2213. Format of request buffer:
  2214. Offset    Size    Description
  2215.  00h    WORD    length of following data (max 107h)
  2216.  02h    BYTE    0Dh (subfunction "Add Trustee To Directory")
  2217.  03h    BYTE    directory handle
  2218.  04h    DWORD    object ID of trustee (big-endian)
  2219.  08h    BYTE    trustee directory rights (see AH=E2h/SF=01h)
  2220.  09h    BYTE    length of directory path (00h-FFh)
  2221.  0Ah  N BYTEs    directory path
  2222.  
  2223. Format of reply buffer:
  2224. Offset    Size    Description
  2225.  00h    WORD    (call) 0000h (no data returned)
  2226. ----------21E2--SF0E-------------------------
  2227. INT 21 - Novell NetWare - DIRECTORY SERVICES - DELETE TRUSTEE FROM DIRECTORY
  2228.     AH = E2h subfn 0Eh
  2229.     DS:SI -> request buffer (see below)
  2230.     ES:DI -> reply buffer (see below)
  2231. Return: AL = status (00h,98h,9Bh,9Ch) (see AH=E2h/SF=00h)
  2232. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2233.       Alloy NTNX
  2234. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh
  2235.  
  2236. Format of request buffer:
  2237. Offset    Size    Description
  2238.  00h    WORD    length of following data (max 107h)
  2239.  02h    BYTE    0Eh (subfunction "Delete Trustee From Directory")
  2240.  03h    BYTE    directory handle
  2241.  04h    DWORD    object ID of trustee (big-endian)
  2242.  08h    BYTE    unused
  2243.  09h    BYTE    length of directory path (00h-FFh)
  2244.  0Ah  N BYTEs    directory path
  2245.  
  2246. Format of reply buffer:
  2247. Offset    Size    Description
  2248.  00h    WORD    (call) 0000h (no data returned)
  2249. ----------21E2--SF0F-------------------------
  2250. INT 21 - Novell NetWare - DIRECTORY SERVICES - RENAME DIRECTORY
  2251.     AH = E2h subfn 0Fh
  2252.     DS:SI -> request buffer (see below)
  2253.     ES:DI -> reply buffer (see below)
  2254. Return: AL = status (00h,8Bh,9Bh,9Ch,9Eh) (see AH=E2h/SF=00h)
  2255. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2256.       Alloy NTNX
  2257.     directories SYS:LOGIN, SYS:MAIL, and SYS:PUBLIC must not be renamed
  2258. SeeAlso: AH=56h,AH=E2h/SF=0Ah,AH=E2h/SF=0Bh
  2259.  
  2260. Format of request buffer:
  2261. Offset    Size    Description
  2262.  00h    WORD    length of following data (max 111h)
  2263.  02h    BYTE    0Fh (subfunction "Rename Directory")
  2264.  03h    BYTE    directory handle
  2265.  04h    BYTE    length of directory path (00h-FFh)
  2266.  05h  N BYTEs    directory path
  2267.     BYTE    length of new directory name (01h-0Eh)
  2268.       N BYTEs    new directory name
  2269.  
  2270. Format of reply buffer:
  2271. Offset    Size    Description
  2272.  00h    WORD    (call) 0000h (no data returned)
  2273. ----------21E2--SF10-------------------------
  2274. INT 21 - Novell NetWare - FILE SERVICES - PURGE ERASED FILES
  2275.     AH = E2h subfn 10h
  2276.     DS:SI -> request buffer (see below)
  2277.     ES:DI -> reply buffer (see below)
  2278. Return: AL = status
  2279.         00h successful
  2280.         C6h no console rights
  2281. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2282.       Alloy NTNX
  2283.     purges files marked for deletion on the file server by the calling
  2284.       workstation
  2285. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=11h,AH=E3h/SF=CEh,AX=F244h
  2286.  
  2287. Format of request buffer:
  2288. Offset    Size    Description
  2289.  00h    WORD    0001h (length of following data)
  2290.  02h    BYTE    10h (subfunction "Purge Erased Files")
  2291.  
  2292. Format of reply buffer:
  2293. Offset    Size    Description
  2294.  00h    WORD    (call) 0000h (no results returned)
  2295. ----------21E2--SF11-------------------------
  2296. INT 21 - Novell NetWare - FILE SERVICES - RESTORE ERASED FILE
  2297.     AH = E2h subfn 11h
  2298.     DS:SI -> request buffer (see below)
  2299.     ES:DI -> reply buffer (see below)
  2300. Return: AL = status
  2301.         00h successful
  2302.         98h nonexistent volume
  2303.         FFh no more erased files
  2304. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2305.       Alloy NTNX
  2306.     restores one file marked for deletion which has not yet been purged
  2307. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=10h,AH=E3h/SF=CEh,AX=F244h
  2308.  
  2309. Format of request buffer:
  2310. Offset    Size    Description
  2311.  00h    WORD    length of following data (max 13h)
  2312.  02h    BYTE    11h (subfunction "Restore Erased File")
  2313.  03h    BYTE    directory handle or 00h
  2314.  04h    BYTE    length of volume name
  2315.  05h  N BYTEs    volume name (including colon)
  2316. Note:    if both a directory handle and a volume name are specified, the volume
  2317.       name overrides the handle
  2318.  
  2319. Format of reply buffer:
  2320. Offset    Size    Description
  2321.  00h    WORD    (call) 001Eh (size of following results buffer)
  2322.  02h 15 BYTEs    ASCIZ name of erased file
  2323.  11h 15 BYTEs    ASCIZ name under which file was restored
  2324. ----------21E2--SF12-------------------------
  2325. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC PERMANENT DIRECTORY HANDLE
  2326.     AH = E2h subfn 12h
  2327.     DS:SI -> request buffer (see below)
  2328.     ES:DI -> reply buffer (see below)
  2329. Return: AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)
  2330. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2331.       Alloy NTNX
  2332. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=13h,AH=E2h/SF=14h
  2333.  
  2334. Format of request buffer:
  2335. Offset    Size    Description
  2336.  00h    WORD    length of following data (max 103h)
  2337.  02h    BYTE    12h (subfunction "Alloc Permanent Directory Handle")
  2338.  03h    BYTE    directory handle
  2339.  04h    BYTE    drive ('A'-'Z')
  2340.  05h    BYTE    length of directory path
  2341.  06h  N BYTEs    directory path
  2342.  
  2343. Format of reply buffer:
  2344. Offset    Size    Description
  2345.  00h    WORD    (call) 0002h (size of following results buffer)
  2346.  02h    BYTE    new directory handle
  2347.  03h    BYTE    effective directory rights (see AH=E2h/SF=01h)
  2348. ----------21E2--SF13-------------------------
  2349. INT 21 - Novell NetWare - DIRECTORY SERVICES - ALLOC TEMPORARY DIRECTORY HANDLE
  2350.     AH = E2h subfn 13h
  2351.     DS:SI -> request buffer (see below)
  2352.     ES:DI -> reply buffer (see AH=E2h/SF=12h)
  2353. Return: AL = status (00h,98h,9Ch) (see AH=E2h/SF=00h)
  2354. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2355.       Alloy NTNX
  2356.     this call is the same as AH=E2h/SF=12h except that the directory handle
  2357.       will be automatically deallocated when the calling application
  2358.       executes an End of Job call (AH=D6h) or terminates
  2359. SeeAlso: AH=D6h,AH=E2h/SF=00h,AH=E2h/SF=12h,AH=E2h/SF=14h,AH=E2h/SF=16h
  2360.  
  2361. Format of request buffer:
  2362. Offset    Size    Description
  2363.  00h    WORD    length of following data (max 103h)
  2364.  02h    BYTE    13h (subfunction "Alloc Temporary Directory Handle")
  2365.  03h    BYTE    directory handle
  2366.  04h    BYTE    drive ('A'-'Z')
  2367.  05h    BYTE    length of directory path
  2368.  06h  N BYTEs    directory path
  2369. ----------21E2--SF14-------------------------
  2370. INT 21 - Novell NetWare - DIRECTORY SERVICES - DEALLOCATE DIRECTORY HANDLE
  2371.     AH = E2h subfn 14h
  2372.     DS:SI -> request buffer (see below)
  2373.     ES:DI -> reply buffer (see below)
  2374. Return: AL = status (00h,9Bh) (see AH=E2h/SF=00h)
  2375. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2376.       Alloy NTNX
  2377. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=13h
  2378.  
  2379. Format of request buffer:
  2380. Offset    Size    Description
  2381.  00h    WORD    0002h (length of following data)
  2382.  02h    BYTE    14h (subfunction "Deallocate Directory Handle")
  2383.  03h    BYTE    directory handle
  2384.  
  2385. Format of reply buffer:
  2386. Offset    Size    Description
  2387.  00h    WORD    (call) 0000h (no returned data)
  2388. ----------21E2--SF15-------------------------
  2389. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFO WITH HANDLE
  2390.     AH = E2h subfn 15h
  2391.     DS:SI -> request buffer (see below)
  2392.     ES:DI -> reply buffer (see below)
  2393. Return: AL = status
  2394.         00h successful
  2395. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2396.       Alloy NTNX
  2397. SeeAlso: AH=DAh,AH=E2h/SF=02h,AH=E2h/SF=06h,AH=E2h/SF=19h,AH=E3h/SF=E9h
  2398.  
  2399. Format of request buffer:
  2400. Offset    Size    Description
  2401.  00h    WORD    0002h (length of following data)
  2402.  02h    BYTE    15h (subfunction "Get Volume Info With Handle")
  2403.  03h    BYTE    directory handle
  2404.  
  2405. Format of reply buffer:
  2406. Offset    Size    Description
  2407.  00h    WORD    (call) 001Ch (length of following results buffer)
  2408.  02h    WORD    sectors per block (big-endian)
  2409.  04h    WORD    total blocks on volume (big-endian)
  2410.  06h    WORD    blocks available on volume (big-endian)
  2411.  08h    WORD    total directory slots  (big-endian)
  2412.  0Ah    WORD    directory slots available (big-endian)
  2413.  0Ch 16 BYTEs    NUL-padded volume name
  2414.  1Ch    WORD    flag: volume removable if nonzero (big-endian)
  2415. ----------21E2--SF16-------------------------
  2416. INT 21 u - Novell NetWare - DIRECTORY SERVICES - ALLOC SPECIAL TEMP DIR HANDLE
  2417.     AH = E2h subfn 16h
  2418.     DS:SI -> request buffer (see below)
  2419.     ES:DI -> reply buffer
  2420. Return: AL = status
  2421. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX,
  2422.       but is not described in _NetWare_System_Calls--DOS_
  2423. SeeAlso: AH=E2h/SF=13h,AH=E2h/SF=14h
  2424.  
  2425. Format of request buffer:
  2426. Offset    Size    Description
  2427.  00h    WORD    length of following data
  2428.  02h    BYTE    16h (subfunction "Allocate Special Temporary Directory Handle")
  2429.     ???
  2430. ----------21E2--SF17-------------------------
  2431. INT 21 - Novell NetWare - DIRECTORY SERVICES - SAVE DIRECTORY HANDLE
  2432.     AH = E2h subfn 17h
  2433.     DS:SI -> request buffer (see below)
  2434.     ES:DI -> reply buffer (see below)
  2435. Return: AL = status
  2436.         00h successful
  2437.         else network error code
  2438. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  2439. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  2440.  
  2441. Format of request buffer:
  2442. Offset    Size    Description
  2443.  00h    WORD    0002h (length of following data)
  2444.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  2445.  03h    BYTE    directory handle
  2446.  
  2447. Format of reply buffer:
  2448. Offset    Size    Description
  2449.  00h    WORD    (call) 0010h (length of following results buffer)
  2450.  02h 16    BYTEs    save buffer
  2451. ----------21E2--SF18-------------------------
  2452. INT 21 - Novell NetWare - DIRECTORY SERVICES - RESTORE DIRECTORY HANDLE
  2453.     AH = E2h subfn 18h
  2454.     DS:SI -> request buffer (see below)
  2455.     ES:DI -> reply buffer (see below)
  2456. Return: AL = status
  2457.         00h successful
  2458.         else network error code
  2459. Desc:    restore a previously saved directory handle to reproduce an executing
  2460.       environment, possibly on a different execution site
  2461. Note:    this function is supported by Advanced NetWare 2.0+ and Alloy NTNX
  2462. SeeAlso: AH=E2h/SF=12h,AH=E2h/SF=17h
  2463.  
  2464. Format of request buffer:
  2465. Offset    Size    Description
  2466.  00h    WORD    0011h (length of following data)
  2467.  02h    BYTE    18h (subfunction "Restore Directory Handle")
  2468.  03h 16 BYTEs    save buffer
  2469.  
  2470. Format of reply buffer:
  2471. Offset    Size    Description
  2472.  00h    WORD    (call) 0002h (length of following results buffer)
  2473.  02h    BYTE    new directory handle
  2474.  03h    BYTE    effective rights (see AH=E2h/SF=03h)
  2475. ----------21E2--SF19-------------------------
  2476. INT 21 - Novell NetWare - DIRECTORY SERVICES - SET DIRECTORY INFORMATION
  2477.     AH = E2h subfn 19h
  2478.     DS:SI -> request buffer (see below)
  2479.     ES:DI -> reply buffer (see below)
  2480. Return: AL = status (00h,9Bh,9Ch) (see AH=E2h/SF=00h)
  2481. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2482. SeeAlso: AH=E2h/SF=02h,AH=E2h/SF=0Fh
  2483.  
  2484. Format of request buffer:
  2485. Offset    Size    Description
  2486.  00h    WORD    length of following data (max 10Bh)
  2487.  02h    BYTE    19h (subfunction "Set Directory Information")
  2488.  03h    BYTE    directory handle
  2489.  04h    DWORD    date and time of creation (big-endian)
  2490.  08h    DWORD    object ID of owner (big-endian)
  2491.  0Ch    BYTE    maximum directory rightes (see AH=E2h/SF=03h)
  2492.  0Dh    BYTE    length of directory path
  2493.  0Eh  N BYTEs    directory path
  2494.  
  2495. Format of reply buffer:
  2496. Offset    Size    Description
  2497.  00h    WORD    (call) 0000h (no results returned)
  2498. ----------21E2--SF1A-------------------------
  2499. INT 21 - Novell NetWare - FILE SERVER - GET PATH FROM DIRECTORY ENTRY
  2500.     AH = E2h subfn 1Ah
  2501.     DS:SI -> request buffer (see below)
  2502.     ES:DI -> reply buffer (see below)
  2503. Return: AL = status
  2504.         00h successful
  2505. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2506.       Alloy NTNX
  2507. SeeAlso: AH=E2h/SF=01h,AH=E2h/SF=06h,AH=E3h/SF=D7h
  2508.  
  2509. Format of request buffer:
  2510. Offset    Size    Description
  2511.  00h    WORD    0004h (length of following data)
  2512.  02h    BYTE    1Ah (subfunction "Get Path From Directory Entry")
  2513.  03h    BYTE    volume number (00h-1Fh)
  2514.  04h    WORD    directory entry number (big-endian)
  2515.  
  2516. Format of reply buffer:
  2517. Offset    Size    Description
  2518.  00h    WORD    (call) size of following results record (max 200h)
  2519.  02h 256 BYTEs    path
  2520. ----------21E3-------------------------------
  2521. INT 21 - OS/286, OS/386 - ISSUE REAL INTERRUPT
  2522.     AH = E3h
  2523.     AL = interrupt number
  2524.     ???
  2525. Return: ???
  2526. Note:    protected mode only???
  2527. SeeAlso: AH=E1h"OS/286",INT 31/AX=0300h
  2528. ----------21E3-------------------------------
  2529. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  2530.     AH = E3h
  2531.     AL = character
  2532. Return: AL = 00h successful
  2533.          01h buffer full (128 characters)
  2534. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E8h"DoubleDOS"
  2535. SeeAlso: AH=F3h"DoubleDOS"
  2536. ----------21E3-------------------------------
  2537. INT 21 - Novell NetWare - CONNECTION CONTROL
  2538.     AH = E3h
  2539.     DS:SI -> request buffer (see below)
  2540.     ES:DI -> reply buffer (see below)
  2541. Return: AL = status
  2542.         00h successful
  2543.         else error code
  2544. Note:    supported by NetWare 4.0+, Advanced NetWare 1.0+, and Alloy NTNX
  2545. SeeAlso: AH=E3h/SF=0Ah,AH=E3h/SF=32h,AH=E3h/SF=64h,AH=E3h/SF=C8h
  2546.  
  2547. Format of request buffer:
  2548. Offset    Size    Description
  2549.  00h    WORD    length of following data
  2550.  02h    BYTE    subfunction number
  2551.         00h login
  2552.         01h change password
  2553.         02h map user to station set
  2554.         03h map object to number
  2555.         04h map number to object
  2556.         05h get station's logged information
  2557.         06h get station's root mask (obsolete)
  2558.         07h map group name to number
  2559.         08h map number to group name
  2560.         09h get memberset M of group G
  2561.     var    depends on subfunction
  2562. Notes:    the above subfunctions are not described in _NetWare_System_Calls--DOS_
  2563.     see separate entries below for other subfunctions
  2564.  
  2565. Format of reply buffer:
  2566. Offset    Size    Description
  2567.  00h    WORD    (call) length of following buffer space for results
  2568.     var    depends on subfunction
  2569.  
  2570. Format of object property:
  2571. Offset    Size    Description
  2572.  00h 1-16 BYTEs    property name
  2573.   N    BYTE    flags
  2574.         bit 0: property is dynamic
  2575.         bit 1: property is a set rather than an item
  2576.  N+1    BYTE    security levels (see below)
  2577.     ???
  2578.  
  2579. Names of well-known properties:
  2580.  ACCOUNT_BALANCE
  2581.  ACCOUNT_SERVERS
  2582.  GROUP_MEMBERS
  2583.  GROUPS_I'M_IN
  2584.  IDENTIFICATION        user's name
  2585.  LOGIN_CONTROL
  2586.  NET_ADDRESS
  2587.  OPERATORS
  2588.  PASSWORD
  2589.  SECURITY_EQUALS
  2590.  
  2591. Values for security levels:
  2592.  00h    "anyone" everyone may access
  2593.  01h    "logged" only logged-in clients may access
  2594.  02h    "object" only clients logged-in with object's name, type, and password
  2595.  03h    "supervisor" only clients logged-in with supervisor privileges
  2596.  04h    "NetWare" only NetWare may access
  2597. Note:    the above values are stored in a nybble; the high half-byte is write
  2598.       access and the low half-byte is read access
  2599.  
  2600. Values for object type:
  2601.  0000h    unknown
  2602.  0001h    user
  2603.  0002h    user group
  2604.  0003h    print queue
  2605.  0004h    file server
  2606.  0005h    job server
  2607.  0006h    gateway
  2608.  0007h    print server
  2609.  0008h    archive queue
  2610.  0009h    archive server
  2611.  000Ah    job queue
  2612.  000Bh    administration
  2613.  0026h    remote bridge server
  2614.  0047h    advertising print server
  2615.  0048h-8000h reserved
  2616.  FFFFh    wild (used only for finding objects)
  2617. ----------21E3--SF0A-------------------------
  2618. INT 21 - Novell NetWare - CONNECTION SERVICES - ENTER LOGIN AREA
  2619.     AH = E3h subfn 0Ah
  2620.     DS:SI -> request buffer (see below)
  2621.     ES:DI -> reply buffer (see below)
  2622. Return: AL = status
  2623.         00h successful
  2624. Desc:    change the login directory for the calling workstation
  2625. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2626.       Alloy NTNX
  2627. SeeAlso: AH=D7h,AH=E3h/SF=14h
  2628.  
  2629. Format of request buffer:
  2630. Offset    Size    Description
  2631.  00h    WORD    length of following data (max 102h)
  2632.  02h    BYTE    0Ah (subfunction "Enter Login Area")
  2633.  03h    BYTE    number of local drives
  2634.  04h    BYTE    length of subdirectory name (00h-FFh)
  2635.  05h  N BYTEs    name of subdirectory under SYS:LOGIN where to find the login
  2636.         utility
  2637.  
  2638. Format of reply buffer:
  2639. Offset    Size    Description
  2640.  00h    WORD    (call) 0000h (no data returned)
  2641. ----------21E3--SF0D-------------------------
  2642. INT 21 - Novell NetWare - MESSAGE SERVICES - LOG NETWORK MESSAGE
  2643.     AH = E3h subfn 0Dh
  2644.     DS:SI -> request buffer (see below)
  2645.     ES:DI -> reply buffer (see below)
  2646. Return: AL = status
  2647.         00h successful
  2648. Desc:    append a line to the default file server's NET$LOG.MSG file
  2649. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  2650.       Alloy NTNX
  2651. SeeAlso: AH=E1h/SF=09h
  2652.  
  2653. Format of request buffer:
  2654. Offset    Size    Description
  2655.  00h    WORD    length of following data (max 52h)
  2656.  02h    BYTE    0Dh (subfunction "Log Network Message")
  2657.  03h    BYTE    length of message (01h-50h)
  2658.  04h  N BYTEs    message (no control characters or characters > 7Eh)
  2659. ----------21E3--SF0E-------------------------
  2660. INT 21 - Novell NetWare - FILE SERVER - GET DISK UTILIZATION
  2661.     AH = E3h subfn 0Eh
  2662.     DS:SI -> request buffer (see below)
  2663.     ES:DI -> reply buffer (see below)
  2664. Return: AL = status
  2665.         00h successful
  2666.         98h nonexistent volume
  2667.         F2h not permitted to read object
  2668. Notes:    this function is supported by Advanced NetWare 2.1+
  2669.     the caller must have bindery object read privileges
  2670. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  2671.  
  2672. Format of request buffer:
  2673. Offset    Size    Description
  2674.  00h    WORD    0005h (length of following data)
  2675.  02h    BYTE    0Eh (subfunction "Get Disk Utilization")
  2676.  03h    BYTE    volume number (00h-1Fh)
  2677.  04h    DWORD    object ID (big-endian)
  2678.  
  2679. Format of reply buffer:
  2680. Offset    Size    Description
  2681.  00h    WORD    (call) 000Bh (size of following results buffer)
  2682.  02h    BYTE    volume number (00h-1Fh)
  2683.  03h    DWORD    object ID (big-endian)
  2684.  07h    WORD    directories used by object (big-endian)
  2685.  09h    WORD    files created by object (big-endian)
  2686.  0Bh    WORD    disk blocks used by object-created files (big-endian)
  2687. ----------21E3--SF0F-------------------------
  2688. INT 21 - Novell NetWare - FILE SERVICES - SCAN FILE INFORMATION
  2689.     AH = E3h subfn 0Fh
  2690.     DS:SI -> request buffer (see below)
  2691.     ES:DI -> reply buffer (see below)
  2692. Return: AL = status
  2693.         00h successful
  2694.         89h not permitted to search directory
  2695.         FFh no more matching files
  2696. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2697. SeeAlso: AH=B6h,AH=E3h/SF=10h
  2698.  
  2699. Format of request buffer:
  2700. Offset    Size    Description
  2701.  00h    WORD    length of following data (max 105h)
  2702.  02h    BYTE    0Fh (subfunction "Scan File Information")
  2703.  03h    WORD    sequence number (big-endian)
  2704.         FFFFh on first call
  2705.  05h    BYTE    directory handle or 00h
  2706.  06h    BYTE    search attributes (see AX=4301h)
  2707.  07h    BYTE    length of filespec
  2708.  08h  N BYTEs    ASCIZ uppercase filespec
  2709.  
  2710. Format of reply buffer:
  2711. Offset    Size    Description
  2712.  00h    WORD    (call) 005Eh (size of following results buffer)
  2713.  02h    WORD    next sequence number (place in request buffer for next call)
  2714.  04h 15 BYTEs    ASCIZ filename
  2715.  13h    BYTE    file attributes (see AX=4301h for format)
  2716.  14h    BYTE    extended file attributes (see AH=B6h for format)
  2717.  15h    DWORD    file size in bytes (big-endian)
  2718.  19h    WORD    file's creation date (big-endian) (see AX=5700h for format)
  2719.  1Bh    WORD    date of last access (big-endian) (see AX=5700h for format)
  2720.  1Dh    DWORD    date and time of last update (big-endian) (see AH=E2h/SF=02h)
  2721.  21h    DWORD    object ID of owner (big-endian)
  2722.  25h    DWORD    date and time last archived (big-endian) (see AH=E2h/SF=02h)
  2723.  29h 55 BYTEs    reserved
  2724. ----------21E3--SF10-------------------------
  2725. INT 21 - Novell NetWare - FILE SERVICES - SET FILE INFORMATION
  2726.     AH = E3h subfn 10h
  2727.     DS:SI -> request buffer (see below)
  2728.     ES:DI -> reply buffer (see below)
  2729. Return: AL = status
  2730.         00h successful
  2731. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2732.     the caller must have modify privileges on the directory containing the
  2733.       file
  2734. SeeAlso: AH=B6h,AH=E3h/SF=0Fh
  2735.  
  2736. Format of request buffer:
  2737. Offset    Size    Description
  2738.  00h    WORD    length of following data (max 151h)
  2739.  02h    BYTE    10h (subfunction "Set File Information")
  2740.  03h    BYTE    file attributes (see AX=4301h for format)
  2741.  04h    BYTE    extended file attributes (see AH=B6h for format)
  2742.  05h  4 BYTEs    reserved
  2743.  09h    WORD    file's creation date (big-endian) (see AX=5700h for format) 
  2744.  0Bh    WORD    date of last access (big-endian) (see AX=5700h for format)
  2745.  0Dh    DWORD    date and time of last update (big-endian) (see AH=E2h/SF=02h)
  2746.  11h    DWORD    object ID of owner (big-endian)
  2747.  15h    DWORD    date and time last archived (big-endian) (see AH=E2h/SF=02h)
  2748.  19h 56 BYTEs    reserved
  2749.  51h    BYTE    directory handle or 00h
  2750.  52h    BYTE    search attributes (see AX=4301h for format)
  2751.  53h    BYTE    length of filename
  2752.  54h  N BYTEs    filename
  2753. Format of reply buffer:
  2754. Offset    Size    Description
  2755.  00h    WORD    (call) 0000h (no results returned)
  2756. ----------21E3--SF11-------------------------
  2757. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER INFORMATION
  2758.     AH = E3h subfn 11h
  2759.     DS:SI -> request buffer (see below)
  2760.     ES:DI -> reply buffer (see below)
  2761. Return: AL = status
  2762.         00h successful
  2763. Note:    this function is supported by Advanced NetWare 2.1+
  2764. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=CDh,AH=E3h/SF=D3h,AH=E3h/SF=E7h,AH=E7h
  2765.  
  2766. Format of request buffer:
  2767. Offset    Size    Description
  2768.  00h    WORD    0001h (length of following data)
  2769.  02h    BYTE    11h (subfunction "Get File Server Information")
  2770.  
  2771. Format of reply buffer:
  2772. Offset    Size    Description
  2773.  00h    WORD    (call) 0080h (size of following results buffer)
  2774.  02h 48 BYTEs    server's name
  2775.  32h    BYTE    NetWare version
  2776.  33h    BYTE    NetWare subversion (0-99)
  2777.  34h    WORD    number of connections supported (big-endian)
  2778.  36h    WORD    number of connections in use (big-endian)
  2779.  38h    WORD    maximum connected volumes (big-endian)
  2780. ---Advanced NetWare 2.1+ ---
  2781.  3Ah    BYTE    operating system revision number
  2782.  3Bh    BYTE    fault tolerance (SFT) level
  2783.  3Ch    BYTE    TTS level
  2784.  3Dh    WORD    maximum simultaneously-used connections (big-endian)
  2785.  3Fh    BYTE    accounting version
  2786.  40h    BYTE    VAP version
  2787.  41h    BYTE    queueing version
  2788.  42h    BYTE    print server version
  2789.  43h    BYTE    virtual console version
  2790.  44h    BYTE    security restrictions level
  2791.  45h    BYTE    internetwork bridge version
  2792.  46h 60 BYTEs    reserved
  2793. ----------21E3--SF13-------------------------
  2794. INT 21 - Novell NetWare - CONNECTION SERVICES - GET INTERNET ADDRESS
  2795.     AH = E3h subfn 13h
  2796.     DS:SI -> request buffer (see below)
  2797.     ES:DI -> reply buffer (see below)
  2798. Return: AL = status
  2799.         00h successful
  2800. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2801. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h,AH=EEh"NetWare"
  2802.  
  2803. Format of request buffer:
  2804. Offset    Size    Description
  2805.  00h    WORD    0002h (length of following data)
  2806.  02h    BYTE    13h (subfunction "Get Internet Address")
  2807.  03h    BYTE    logical connection number (01h-64h)
  2808.  
  2809. Format of reply buffer:
  2810. Offset    Size    Description
  2811.  00h    WORD    (call) 000Ch (length of following results buffer)
  2812.  02h  4 BYTEs    network number
  2813.  06h  6 BYTEs    physical node address
  2814.  0Ch  2 BYTEs    socket number
  2815. ----------21E3--SF14-------------------------
  2816. INT 21 - Novell NetWare - CONNECTION SERVICES - LOGIN TO FILE SERVER
  2817.     AH = E3h subfn 14h
  2818.     DS:SI -> request buffer (see below)
  2819.     ES:DI -> reply buffer (see below)
  2820. Return: AL = status
  2821.         00h successful
  2822. Desc:    this function retrieves a list indicating the connection numbers under
  2823.       which a bindery object is logged into the default file server
  2824. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2825. SeeAlso: AH=D7h"NetWare",AH=F1h"NetWare"
  2826.  
  2827. Format of request buffer:
  2828. Offset    Size    Description
  2829.  00h    WORD    length of following data (max B3h)
  2830.  02h    BYTE    14h (subfunction "Login To File Server")
  2831.  03h    WORD    type of object (big-endian)
  2832.  05h    BYTE    length of object's name (01h-2Fh)
  2833.  06h  N BYTEs    object's name
  2834.     BYTE    length of password
  2835.       N BYTEs    password
  2836.  
  2837. Format of reply buffer:
  2838. Offset    Size    Description
  2839.  00h    WORD    (call) 0000h (no data returned)
  2840. ----------21E3--SF15-------------------------
  2841. INT 21 - Novell NetWare - CONNECTION SERVICES - GET OBJECT CONNECTION NUMBERS
  2842.     AH = E3h subfn 15h
  2843.     DS:SI -> request buffer (see below)
  2844.     ES:DI -> reply buffer (see below)
  2845. Return: AL = status
  2846.         00h successful
  2847. Desc:    this function retrieves a list indicating the connection numbers under
  2848.       which a bindery object is logged into the default file server
  2849. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2850. SeeAlso: AH=DCh"NetWare",AH=E3h/SF=16h
  2851.  
  2852. Format of request buffer:
  2853. Offset    Size    Description
  2854.  00h    WORD    length of following data (max 33h)
  2855.  02h    BYTE    15h (subfunction "Get Object Connection Numbers")
  2856.  03h    WORD    type of object (big-endian)
  2857.  05h    BYTE    length of object's name (01h-2Fh)
  2858.  06h  N BYTEs    object's name
  2859.  
  2860. Format of reply buffer:
  2861. Offset    Size    Description
  2862.  00h    WORD    (call) length of following results buffer (max 65h)
  2863.  02h    BYTE    number of connections
  2864.  03h  N BYTEs    connection list
  2865. ----------21E3--SF16-------------------------
  2866. INT 21 - Novell NetWare - CONNECTION SERVICES - GET CONNECTION INFORMATION
  2867.     AH = E3h subfn 16h
  2868.     DS:SI -> request buffer (see below)
  2869.     ES:DI -> reply buffer (see below)
  2870. Return: AL = status
  2871.         00h successful
  2872. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2873. SeeAlso: AH=D7h,AH=DCh"NetWare",AH=E3h/SF=14h
  2874.  
  2875. Format of request buffer:
  2876. Offset    Size    Description
  2877.  00h    WORD    0002h (length of following data)
  2878.  02h    BYTE    16h (subfunction "Get Connection Information")
  2879.  03h    BYTE    logical connection number (01h-64h)
  2880.  
  2881. Format of reply buffer:
  2882. Offset    Size    Description
  2883.  00h    WORD    (call) 003Dh (length of following results buffer)
  2884.  02h    DWORD    object ID for object logged in on the connection (big-endian)
  2885.         00000000h if no object logged in
  2886.  06h    WORD    type of object (big-endian)
  2887.  08h 48 BYTEs    name of object
  2888.  38h  7 BYTEs    login time (see below)
  2889.  
  2890. Format of login time:
  2891. Offset    Size    Description
  2892.  00h    BYTE    year (80-99 = 1980-1999, 00-79 = 2000-2079)
  2893.  01h    BYTE    month (1-12)
  2894.  02h    BYTE    day (1-31)
  2895.  03h    BYTE    hour (0-23)
  2896.  04h    BYTE    minute (0-59)
  2897.  05h    BYTE    second (0-59)
  2898.  06h    BYTE    day of week (0 = Sunday)
  2899. ----------21E3--SF32-------------------------
  2900. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE BINDERY OBJECT
  2901.     AH = E3h subfn 32h
  2902.     DS:SI -> request buffer (see below)
  2903.     ES:DI -> reply buffer (see below)
  2904. Return: AL = status
  2905.         00h successful
  2906.         96h server out of memory
  2907.         EEh    object already exists
  2908.         EFh invalid name
  2909.         F1h invalid bindery security level
  2910.         F5h not permitted to create objects
  2911.         FEh    server bindery locked
  2912.         FFh    bindery failure
  2913. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2914. SeeAlso: AH=E3h/SF=33h,AH=E3h/SF=34h,AH=E3h/SF=38h,AH=E3h/SF=39h
  2915.  
  2916. Format of request buffer:
  2917. Offset    Size    Description
  2918.  00h    WORD    length of following data (max 35h)
  2919.  02h    BYTE    32h (subfunction "Create Bindery Object")
  2920.  03h    BYTE    object flag
  2921.         00h static
  2922.         01h dynamic
  2923.  04h    BYTE    object security levels
  2924.  05h    WORD    type of object (big-endian)
  2925.  07h    BYTE    length of object's name
  2926.  08h  N BYTEs    object's name
  2927.  
  2928. Format of reply buffer:
  2929. Offset    Size    Description
  2930.  00h    WORD    0000h (no data returned)
  2931. ----------21E3--SF33-------------------------
  2932. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT
  2933.     AH = E3h subfn 33h
  2934.     DS:SI -> request buffer (see below)
  2935.     ES:DI -> reply buffer (see below)
  2936. Return: AL = status
  2937.         00h successful
  2938.         96h server out of memory
  2939.         EFh invalid name
  2940.         F0h wildcard not allowed
  2941.         F4h not permitted to delete objects
  2942.         FCh no such object
  2943.         FEh    server bindery locked
  2944.         FFh    bindery failure
  2945. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2946. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=34h
  2947.  
  2948. Format of request buffer:
  2949. Offset    Size    Description
  2950.  00h    WORD    length of following data (max 33h)
  2951.  02h    BYTE    33h (subfunction "Delete Bindery Object")
  2952.  03h    WORD    type of object (big-endian)
  2953.  05h    BYTE    length of object's name (01h-2Fh)
  2954.  06h  N BYTEs    object's name
  2955.  
  2956. Format of reply buffer:
  2957. Offset    Size    Description
  2958.  00h    WORD    (call) 0000h (no data returned)
  2959. ----------21E3--SF34-------------------------
  2960. INT 21 - Novell NetWare - BINDERY SERVICES - RENAME BINDERY OBJECT
  2961.     AH = E3h subfn 34h
  2962.     DS:SI -> request buffer (see below)
  2963.     ES:DI -> reply buffer (see below)
  2964. Return: AL = status
  2965.         00h successful
  2966.         96h server out of memory
  2967.         EFh invalid name
  2968.         F0h wildcard not allowed
  2969.         F3h not permitted to rename object
  2970.         FCh no such object
  2971.         FEh    server bindery locked
  2972.         FFh    bindery failure
  2973. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  2974. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h
  2975.  
  2976. Format of request buffer:
  2977. Offset    Size    Description
  2978.  00h    WORD    length of following data (max 63h)
  2979.  02h    BYTE    34h (subfunction "Rename Bindery Object")
  2980.  03h    WORD    type of object (big-endian)
  2981.  05h    BYTE    length of object's name (01h-2Fh)
  2982.  06h  N BYTEs    object's name
  2983.     BYTE    length of new name (01h-2Fh)
  2984.       N BYTEs    new name
  2985.  
  2986. Format of reply buffer:
  2987. Offset    Size    Description
  2988.  00h    WORD    (call) 0000h (no data returned)
  2989. ----------21E3--SF35-------------------------
  2990. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT ID
  2991.     AH = E3h subfn 35h
  2992.     DS:SI -> request buffer (see below)
  2993.     ES:DI -> reply buffer (see below)
  2994. Return: AL = status
  2995.         00h successful
  2996.         96h server out of memory
  2997.         FCh no such object
  2998.         FEh    server bindery locked
  2999.         FFh    bindery failure
  3000. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3001.     the requesting workstation must be logged into the file server with
  3002.       read access to the bindery object
  3003. SeeAlso: AH=E3h/SF=36h,AH=E3h/SF=44h
  3004.  
  3005. Format of request buffer:
  3006. Offset    Size    Description
  3007.  00h    WORD    length of following data (max 33h)
  3008.  02h    BYTE    35h (subfunction "Get Bindery Object ID")
  3009.  03h    WORD    type of object (big-endian)
  3010.  05h    BYTE    length of object's name
  3011.  06h  N BYTEs    object's name
  3012.  
  3013. Format of reply buffer:
  3014. Offset    Size    Description
  3015.  00h    WORD    (call) 0036h (length of following buffer space)
  3016.  02h    DWORD    object ID (big-endian)
  3017.  06h    WORD    type of object (big-endian)
  3018.  08h 48 BYTEs    object name
  3019. ----------21E3--SF36-------------------------
  3020. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY OBJECT NAME
  3021.     AH = E3h subfn 36h
  3022.     DS:SI -> request buffer (see below)
  3023.     ES:DI -> reply buffer (see below)
  3024. Return: AL = status
  3025.         00h successful
  3026.         96h server out of memory
  3027.         EFh invalid name
  3028.         F0h    wildcard not allowed
  3029.         FCh no such object
  3030.         FEh    server bindery locked
  3031.         FFh    bindery failure
  3032. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3033.     the requesting workstation must be logged into the file server with
  3034.       read access to the bindery object
  3035. SeeAlso: AH=E3h/SF=35h,AH=E3h/SF=44h
  3036.  
  3037. Format of request buffer:
  3038. Offset    Size    Description
  3039.  00h    WORD    0005h (length of following data)
  3040.  02h    BYTE    36h (subfunction "Get Bindery Object Name")
  3041.  03h    DWORD    object ID (big-endian)
  3042.  
  3043. Format of reply buffer:
  3044. Offset    Size    Description
  3045.  00h    WORD    (call) 0036h (length of following buffer space)
  3046.  02h    DWORD    object ID (big-endian)
  3047.  06h    WORD    type of object (big-endian)
  3048.  08h 48 BYTEs    object name
  3049. ----------21E3--SF37-------------------------
  3050. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN BINDERY OBJECT
  3051.     AH = E3h subfn 37h
  3052.     DS:SI -> request buffer (see below)
  3053.     ES:DI -> reply buffer (see below)
  3054. Return: AL = status
  3055.         00h successful
  3056.         96h server out of memory
  3057.         EFh invalid name
  3058.         FCh no such object
  3059.         FEh    server bindery locked
  3060.         FFh    bindery failure
  3061. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3062.     the requesting workstation must be logged into the file server with
  3063.       read access to the bindery object
  3064. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=33h,AH=E3h/SF=38h,AH=E3h/SF=3Ch
  3065.  
  3066. Format of request buffer:
  3067. Offset    Size    Description
  3068.  00h    WORD    length of following data (max 37h)
  3069.  02h    BYTE    37h (subfunction "Scan Bindery Object")
  3070.  03h    DWORD    last object ID (big-endian)
  3071.  07h    WORD    type of object (big-endian)
  3072.  09h    BYTE    length of object's name
  3073.  0Ah  N BYTEs    object's name
  3074.  
  3075. Format of reply buffer:
  3076. Offset    Size    Description
  3077.  00h    WORD    (call) 0039h (length of following buffer space)
  3078.  02h    DWORD    object ID (big-endian)
  3079.         FFFFFFFFh for first call
  3080.  06h    WORD    type of object (big-endian)
  3081.  08h    BYTE    length of object's name (01h-2Fh)
  3082.  09h  N BYTEs    object name
  3083.     BYTE    object flag (00h static, 01h dynamic)
  3084.     BYTE    object's security levels
  3085.     BYTE    object properties flag (00h no, FFh yes)
  3086. ----------21E3--SF38-------------------------
  3087. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT SECURITY
  3088.     AH = E3h subfn 38h
  3089.     DS:SI -> request buffer (see below)
  3090.     ES:DI -> reply buffer (see below)
  3091. Return: AL = status
  3092.         00h successful
  3093.         96h server out of memory
  3094.         F0h    wildcard not allowed
  3095.         F1h invalid bindery security level
  3096.         FBh    no such property
  3097.         FCh    no such object
  3098.         FEh    server bindery locked
  3099.         FFh    bindery failure
  3100. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3101. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  3102.  
  3103. Format of request buffer:
  3104. Offset    Size    Description
  3105.  00h    WORD    length of following data (max 34h)
  3106.  02h    BYTE    38h (subfunction "Change Bindery Object Security")
  3107.  03h    BYTE    new security levels
  3108.  04h    WORD    type of object (big-endian)
  3109.  06h    BYTE    length of object's name (01h-2Fh)
  3110.  07h  N BYTEs    object name
  3111.  
  3112. Format of reply buffer:
  3113. Offset    Size    Description
  3114.  00h    WORD    (call) 0000h (no data returned)
  3115. ----------21E3--SF39-------------------------
  3116. INT 21 - Novell NetWare - BINDERY SERVICES - CREATE PROPERTY
  3117.     AH = E3h subfn 39h
  3118.     DS:SI -> request buffer (see below)
  3119.     ES:DI -> reply buffer (see below)
  3120. Return: AL = status
  3121.         00h successful
  3122.         96h server out of memory
  3123.         EDh    property already exists
  3124.         EFh invalid name
  3125.         F0h wildcard not allowed
  3126.         F1h invalid bindery security level
  3127.         F7h not permitted to create properties
  3128.         FCh no such object
  3129.         FEh    server bindery locked
  3130.         FFh    bindery failure
  3131. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3132. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=3Bh
  3133.  
  3134. Format of request buffer:
  3135. Offset    Size    Description
  3136.  00h    WORD    length of following data (max 45h)
  3137.  02h    BYTE    39h (subfunction "Create Property")
  3138.  03h    WORD    type of object (big-endian)
  3139.  05h    BYTE    length of object's name (01h-2Fh)
  3140.  06h  N BYTEs    object's name
  3141.     BYTE    property flags
  3142.     BYTE    property security levels
  3143.     BYTE    length of property's name (01h-0Fh)
  3144.       N BYTEs    property's name
  3145.  
  3146. Format of reply buffer:
  3147. Offset    Size    Description
  3148.  00h    WORD    (call) 0000h (no data returned)
  3149. ----------21E3--SF3A-------------------------
  3150. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE PROPERTY
  3151.     AH = E3h subfn 3Ah
  3152.     DS:SI -> request buffer (see below)
  3153.     ES:DI -> reply buffer (see below)
  3154. Return: AL = status
  3155.         00h successful
  3156.         96h server out of memory
  3157.         F0h wildcard not allowed
  3158.         F1h invalid bindery security level
  3159.         F6h not permitted to delete properties
  3160.         FBh no such property
  3161.         FCh no such object
  3162.         FEh    server bindery locked
  3163.         FFh    bindery failure
  3164. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3165. SeeAlso: AH=E3h/SF=32h,AH=E3h/SF=39h
  3166.  
  3167. Format of request buffer:
  3168. Offset    Size    Description
  3169.  00h    WORD    length of following data (max 43h)
  3170.  02h    BYTE    3Ah (subfunction "Delete Property")
  3171.  03h    WORD    type of object (big-endian)
  3172.  05h    BYTE    length of object's name (01h-2Fh)
  3173.  06h  N BYTEs    object's name
  3174.     BYTE    length of property's name (01h-0Fh)
  3175.       N BYTEs    property's name
  3176.  
  3177. Format of reply buffer:
  3178. Offset    Size    Description
  3179.  00h    WORD    (call) 0000h (no data returned)
  3180. ----------21E3--SF3B-------------------------
  3181. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE PROPERTY SECURITY
  3182.     AH = E3h subfn 3Bh
  3183.     DS:SI -> request buffer (see below)
  3184.     ES:DI -> reply buffer (see below)
  3185. Return: AL = status
  3186.         00h successful
  3187.         96h server out of memory
  3188.         F0h    wildcard not allowed
  3189.         F1h invalid bindery security level
  3190.         FBh    no such property
  3191.         FCh    no such object
  3192.         FEh    server bindery locked
  3193.         FFh    bindery failure
  3194. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3195. SeeAlso: AH=E3h/SF=38h
  3196.  
  3197. Format of request buffer:
  3198. Offset    Size    Description
  3199.  00h    WORD    length of following data (max 44h)
  3200.  02h    BYTE    3Bh (subfunction "Change Property Security")
  3201.  03h    WORD    type of object (big-endian)
  3202.  05h    BYTE    length of object's name (01h-2Fh)
  3203.  06h  N BYTEs    object name
  3204.     BYTE    new property security levels
  3205.     BYTE    length of property's name
  3206.       N BYTEs    property name
  3207.  
  3208. Format of reply buffer:
  3209. Offset    Size    Description
  3210.  00h    WORD    (call) 0000h (no data returned)
  3211. ----------21E3--SF3C-------------------------
  3212. INT 21 - Novell NetWare - BINDERY SERVICES - SCAN PROPERTY
  3213.     AH = E3h subfn 3Ch
  3214.     DS:SI -> request buffer (see below)
  3215.     ES:DI -> reply buffer (see below)
  3216. Return: AL = status
  3217.         00h successful
  3218.         96h server out of memory
  3219.         F0h    wildcard not allowed
  3220.         F1h invalid bindery security level
  3221.         FBh    no such property
  3222.         FCh    no such object
  3223.         FEh    server bindery locked
  3224.         FFh    bindery failure
  3225. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3226. SeeAlso: AH=E3h/SF=37h,AH=E3h/SF=3Bh
  3227.  
  3228. Format of request buffer:
  3229. Offset    Size    Description
  3230.  00h    WORD    length of following data (max 47h)
  3231.  02h    BYTE    3Ch (subfunction "Scan Property")
  3232.  03h    WORD    type of object (big-endian)
  3233.  05h    BYTE    length of object's name (01h-2Fh)
  3234.  06h  N BYTEs    object name
  3235.     DWORD    sequence number (big-endian)
  3236.         FFFFFFFFh for first call
  3237.     BYTE    length of property's name (01h-0Fh)
  3238.       N BYTEs    property's name
  3239.  
  3240. Format of reply buffer:
  3241. Offset    Size    Description
  3242.  00h    WORD    (call) 0018h (length of following results buffer)
  3243.  02h 16 BYTEs    property name
  3244.  12h    BYTE    property flags
  3245.  13h    BYTE    property security levels
  3246.  14h    DWORD    sequence number (big-endian)
  3247.  18h    BYTE    property value flag (00h no, FFh yes)
  3248.  19h    BYTE    more properties (00h no, FFh yes)
  3249. ----------21E3--SF3D-------------------------
  3250. INT 21 - Novell NetWare - BINDERY SERVICES - READ PROPERTY VALUE
  3251.     AH = E3h subfn 3Dh
  3252.     DS:SI -> request buffer (see below)
  3253.     ES:DI -> reply buffer (see below)
  3254. Return: AL = status
  3255.         00h successful
  3256.         96h server out of memory
  3257.         ECh no such segment
  3258.         F0h    wildcard not allowed
  3259.         F1h invalid bindery security level
  3260.         F9h not permitted to read property
  3261.         FBh    no such property
  3262.         FCh    no such object
  3263.         FEh    server bindery locked
  3264.         FFh    bindery failure
  3265. Desc:    retrieve one 128-byte segment of the specified property's value
  3266. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3267. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  3268.  
  3269. Format of request buffer:
  3270. Offset    Size    Description
  3271.  00h    WORD    length of following data (max 44h)
  3272.  02h    BYTE    3Dh (subfunction "Read Property Value")
  3273.  03h    WORD    type of object (big-endian)
  3274.  05h    BYTE    length of object's name (01h-2Fh)
  3275.  06h  N BYTEs    object name
  3276.     BYTE    segment number (01h on first call, increment until done)
  3277.     BYTE    length of property's name (01h-0Fh)
  3278.       N BYTEs    property name
  3279.  
  3280. Format of reply buffer:
  3281. Offset    Size    Description
  3282.  00h    WORD    (call) 0082h (length of following results buffer)
  3283.  02h 128 BYTEs    property's value
  3284.  82h    BYTE    more segments (00h no, FFh yes)
  3285.  83h    BYTE    property's flags
  3286. ----------21E3--SF3E-------------------------
  3287. INT 21 - Novell NetWare - BINDERY SERVICES - WRITE PROPERTY VALUE
  3288.     AH = E3h subfn 3Eh
  3289.     DS:SI -> request buffer (see below)
  3290.     ES:DI -> reply buffer (see below)
  3291. Return: AL = status
  3292.         00h successful
  3293.         96h server out of memory
  3294.         E8h not item property
  3295.         ECh no such segment
  3296.         F0h    wildcard not allowed
  3297.         F1h invalid bindery security level
  3298.         F8h not permitted to write property
  3299.         FBh    no such property
  3300.         FCh    no such object
  3301.         FEh    server bindery locked
  3302.         FFh    bindery failure
  3303. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3304. SeeAlso: AH=E3h/SF=39h,AH=E3h/SF=3Ch,AH=E3h/SF=3Eh
  3305.  
  3306. Format of request buffer:
  3307. Offset    Size    Description
  3308.  00h    WORD    length of following data (max C5h)
  3309.  02h    BYTE    3Eh (subfunction "Write Property Value")
  3310.  03h    WORD    type of object (big-endian)
  3311.  05h    BYTE    length of object's name (01h-2Fh)
  3312.  06h  N BYTEs    object name
  3313.     BYTE    segment number (01h on first call, increment until done)
  3314.     BYTE    erase remaining segments (00h no, FFh yes)
  3315.     BYTE    length of property's name (01h-0Fh)
  3316.       N BYTEs    property name
  3317.     128 BYTEs    property value segment
  3318.  
  3319. Format of reply buffer:
  3320. Offset    Size    Description
  3321.  00h    WORD    (call) 0000h (no data returned)
  3322. ----------21E3--SF3F-------------------------
  3323. INT 21 - Novell NetWare - BINDERY SERVICES - VERIFY BINDERY OBJECT PASSWORD
  3324.     AH = E3h subfn 3Fh
  3325.     DS:SI -> request buffer (see below)
  3326.     ES:DI -> reply buffer (see below)
  3327. Return: AL = status
  3328.         00h successful
  3329.         96h server out of memory
  3330.         F0h    wildcard not allowed
  3331.         FBh    no such property
  3332.         FCh    no such object
  3333.         FEh    server bindery locked
  3334.         FFh    bindery failure: no such object, bad password
  3335. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3336. SeeAlso: AH=E3h/SF=40h
  3337.  
  3338. Format of request buffer:
  3339. Offset    Size    Description
  3340.  00h    WORD    length of following data (max 133h)
  3341.  02h    BYTE    3Fh (subfunction "Verify Bindery Object Password")
  3342.  03h    WORD    type of object (big-endian)
  3343.  05h    BYTE    length of object's name (01h-2Fh)
  3344.  06h  N BYTEs    object name
  3345.     BYTE    length of password (00h-7Fh)
  3346.       N BYTEs    password
  3347.  
  3348. Format of reply buffer:
  3349. Offset    Size    Description
  3350.  00h    WORD    (call) 0000h (no data returned)
  3351. ----------21E3--SF40-------------------------
  3352. INT 21 - Novell NetWare - BINDERY SERVICES - CHANGE BINDERY OBJECT PASSWORD
  3353.     AH = E3h subfn 40h
  3354.     DS:SI -> request buffer (see below)
  3355.     ES:DI -> reply buffer (see below)
  3356. Return: AL = status
  3357.         00h successful
  3358.         96h server out of memory
  3359.         F0h    wildcard not allowed
  3360.         FBh    no such property
  3361.         FCh    no such object
  3362.         FEh    server bindery locked
  3363.         FFh    bindery failure: no such object, no password for object, or
  3364.             invalid old password
  3365. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3366. SeeAlso: AH=E3h/SF=3Fh,AH=E3h/SF=41h
  3367.  
  3368. Format of request buffer:
  3369. Offset    Size    Description
  3370.  00h    WORD    length of following data (max 133h)
  3371.  02h    BYTE    40h (subfunction "Change Bindery Object Password")
  3372.  03h    WORD    type of object (big-endian)
  3373.  05h    BYTE    length of object's name (01h-2Fh)
  3374.  06h  N BYTEs    object name
  3375.     BYTE    length of old password (00h-7Fh)
  3376.       N BYTEs    old password
  3377.     BYTE    length of new password (00h-7Fh)
  3378.       N BYTEs    new password
  3379.  
  3380. Format of reply buffer:
  3381. Offset    Size    Description
  3382.  00h    WORD    (call) 0000h (no data returned)
  3383. ----------21E3--SF41-------------------------
  3384. INT 21 - Novell NetWare - BINDERY SERVICES - ADD BINDERY OBJECT TO SET
  3385.     AH = E3h subfn 41h
  3386.     DS:SI -> request buffer (see below)
  3387.     ES:DI -> reply buffer (see below)
  3388. Return: AL = status
  3389.         00h successful
  3390.         96h server out of memory
  3391.         E9h    member already exists
  3392.         EBh    not a group property
  3393.         F0h    wildcard not allowed
  3394.         F8h    can't write property
  3395.         FBh    no such property
  3396.         FCh    no such object
  3397.         FEh    server bindery locked
  3398.         FFh    bindery failure
  3399. Desc:    add the specified object to a set property
  3400. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3401. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  3402.  
  3403. Format of request buffer:
  3404. Offset    Size    Description
  3405.  00h    WORD    length of following data (max 75h)
  3406.  02h    BYTE    41h (subfunction "Add Bindery Object to Set")
  3407.  03h    WORD    type of object (big-endian)
  3408.  05h    BYTE    length of object's name
  3409.  06h  N BYTEs    object name
  3410.     BYTE    length of property name (01h-0Fh)
  3411.       N BYTEs    property name
  3412.     WORD    type of member object (big-endian)
  3413.     BYTE    length of member object's name
  3414.       N BYTEs    member object's name
  3415.  
  3416. Format of reply buffer:
  3417. Offset    Size    Description
  3418.  00h    WORD    (call) 0000h (no data returned)
  3419. ----------21E3--SF42-------------------------
  3420. INT 21 - Novell NetWare - BINDERY SERVICES - DELETE BINDERY OBJECT FROM SET
  3421.     AH = E3h subfn 42h
  3422.     DS:SI -> request buffer (see below)
  3423.     ES:DI -> reply buffer (see below)
  3424. Return: AL = status
  3425.         00h successful
  3426.         96h server out of memory
  3427.         EAh    member does not exist
  3428.         EBh    not a group property
  3429.         F0h    wildcard not allowed
  3430.         F8h    can't write property
  3431.         FBh    no such property
  3432.         FCh    no such object
  3433.         FEh    server bindery locked
  3434.         FFh    bindery failure
  3435. Desc:    delete the specified object from a set property
  3436. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3437. SeeAlso: AH=E3h/SF=40h,AH=E3h/SF=42h,AH=E3h/SF=43h
  3438.  
  3439. Format of request buffer:
  3440. Offset    Size    Description
  3441.  00h    WORD    length of following data (max 75h)
  3442.  02h    BYTE    42h (subfunction "Delete Bindery Object from Set")
  3443.  03h    WORD    type of object (big-endian)
  3444.  05h    BYTE    length of object's name
  3445.  06h  N BYTEs    object name
  3446.     BYTE    length of property name (01h-0Fh)
  3447.       N BYTEs    property name
  3448.     WORD    type of member object (big-endian)
  3449.     BYTE    length of member object's name
  3450.       N BYTEs    member object's name
  3451.  
  3452. Format of reply buffer:
  3453. Offset    Size    Description
  3454.  00h    WORD    (call) 0000h (no data returned)
  3455. ----------21E3--SF43-------------------------
  3456. INT 21 - Novell NetWare - BINDERY SERVICES - IS BINDERY OBJECT IN SET
  3457.     AH = E3h subfn 43h
  3458.     DS:SI -> request buffer (see below)
  3459.     ES:DI -> reply buffer (see below)
  3460. Return: AL = status
  3461.         00h successful
  3462.         96h server out of memory
  3463.         EAh member does not exist
  3464.         EBh not a group property
  3465.         F0h    wildcard not allowed
  3466.         F9h not permitted to read property
  3467.         FBh no such property
  3468.         FCh no such object
  3469.         FEh    server bindery locked
  3470.         FFh    bindery failure
  3471. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3472.     the caller must have read access to the property
  3473. SeeAlso: AH=E3h/SF=41h,AH=E3h/SF=42h
  3474.  
  3475. Format of request buffer:
  3476. Offset    Size    Description
  3477.  00h    WORD    length of following data (max 75h)
  3478.  02h    BYTE    43h (subfunction "Is Bindery Object In Set")
  3479.  03h    WORD    type of object (big-endian)
  3480.  05h    BYTE    length of object's name
  3481.  06h  N BYTEs    object's name
  3482.     BYTE    length of property's name
  3483.       N BYTEs    property's name
  3484.     WORD    type of member object (big-endian)
  3485.     BYTE    length of member object's name
  3486.       N BYTEs    member object's name
  3487.  
  3488. Format of reply buffer:
  3489. Offset    Size    Description
  3490.  00h    WORD    (call) 0000h (no data returned)
  3491. ----------21E3--SF44-------------------------
  3492. INT 21 - Novell NetWare - BINDERY SERVICES - CLOSE BINDERY
  3493.     AH = E3h subfn 44h
  3494.     DS:SI -> request buffer (see below)
  3495.     ES:DI -> reply buffer (see below)
  3496. Return: AL = status
  3497.         00h successful
  3498. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3499. SeeAlso: AH=E3h/SF=45h
  3500.  
  3501. Format of request buffer:
  3502. Offset    Size    Description
  3503.  00h    WORD    0001h (length of following data)
  3504.  02h    BYTE    44h (subfunction "Close Bindery")
  3505.  
  3506. Format of reply buffer:
  3507. Offset    Size    Description
  3508.  00h    WORD    (call) 0000h (no data returned)
  3509. ----------21E3--SF45-------------------------
  3510. INT 21 - Novell NetWare - BINDERY SERVICES - OPEN BINDERY
  3511.     AH = E3h subfn 45h
  3512.     DS:SI -> request buffer (see below)
  3513.     ES:DI -> reply buffer (see below)
  3514. Return: AL = status
  3515.         00h successful
  3516. Notes:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3517.     the bindery may only be opened by the supervisor or an object with
  3518.       equivalent privileges
  3519. SeeAlso: AH=E3h/SF=44h
  3520.  
  3521. Format of request buffer:
  3522. Offset    Size    Description
  3523.  00h    WORD    0001h (length of following data)
  3524.  02h    BYTE    45h (subfunction "Open Bindery")
  3525.  
  3526. Format of reply buffer:
  3527. Offset    Size    Description
  3528.  00h    WORD    (call) 0000h (no data returned)
  3529. ----------21E3--SF46-------------------------
  3530. INT 21 - Novell NetWare - BINDERY SERVICES - GET BINDERY ACCESS LEVEL
  3531.     AH = E3h subfn 46h
  3532.     DS:SI -> request buffer (see below)
  3533.     ES:DI -> reply buffer (see below)
  3534. Return: AL = status
  3535.         00h successful
  3536. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3537.  
  3538. Format of request buffer:
  3539. Offset    Size    Description
  3540.  00h    WORD    0001h (length of following data)
  3541.  02h    BYTE    46h (subfunction "Get Bindery Access Level")
  3542.  
  3543. Format of reply buffer:
  3544. Offset    Size    Description
  3545.  00h    WORD    0005h (length of following buffer)
  3546.  02h    BYTE    security levels
  3547.  03h    DWORD    object ID (big-endian)
  3548. ----------21E3--SF47-------------------------
  3549. INT 21 - Novell NetWare - DIRECTORY SERVICES - SCAN BINDERY OBJ TRUSTEE PATHS
  3550.     AH = E3h subfn 47h
  3551.     DS:SI -> request buffer (see below)
  3552.     ES:DI -> reply buffer (see below)
  3553. Return: AL = status
  3554.         00h successful
  3555.         96h server out of memory
  3556.         F0h wildcard not allowed
  3557.         F1h invalid bindery security level
  3558.         FCh no such object
  3559.         FEh server bindery locked
  3560.         FFh bindery failure
  3561. Desc:    iterate through the directories to which an object is a trustee
  3562. Note:    this function is supported by Advanced NetWare 1.0+ and Alloy NTNX
  3563. SeeAlso: AH=E2h/SF=0Ch,AH=E2h/SF=0Dh,AH=E2h/SF=0Eh
  3564.  
  3565. Format of request buffer:
  3566. Offset    Size    Description
  3567.  00h    WORD    0008h (length of following data)
  3568.  02h    BYTE    47h (subfunction "Scan Bindery Object Trustee Paths")
  3569.  03h    BYTE    volume number (00h-1Fh)
  3570.  04h    WORD    last sequence number (big-endian)
  3571.         00h on first call
  3572.  06h    DWORD    object ID (big-endian)
  3573.  
  3574. Format of reply buffer:
  3575. Offset    Size    Description
  3576.  00h    WORD    (call) length of following results buffer (max 107h)
  3577.  02h    WORD    next sequence number (big-endian)
  3578.  04h    DWORD    object ID (big-endian)
  3579.  08h    BYTE    trustee directory rights (see AH=E2h/SF=03h)
  3580.  09h    BYTE    length fo trustee path
  3581.  0Ah  N BYTEs    trustee path
  3582. ----------21E3--SF64-------------------------
  3583. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE
  3584.     AH = E3h subfn 64h
  3585.     DS:SI -> request buffer (see below)
  3586.     ES:DI -> reply buffer (see below)
  3587. Return: AL = status (00h,96h,99h,9Bh,9Ch,EDh-F1h,F5h,F7h,FCh,FEh,FFh)
  3588.         (see below)
  3589. Notes:    this function is supported by Advanced NetWare 2.1+
  3590.     caller must be on a workstation with supervisor privileges
  3591. SeeAlso: AH=E3h/SF=65h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Bh
  3592.  
  3593. Values for status:
  3594.  00h    successful
  3595.  96h    server out of memory
  3596.  99h    directory full
  3597.  9Bh    invalid directory handle
  3598.  9Ch    invalid path
  3599.  D0h    queue error
  3600.  D1h    no such queue
  3601.  D2h    no server for queue
  3602.  D3h    no queue rights
  3603.  D4h    queue full
  3604.  D5h    no queue job
  3605.  D6h    no job rights
  3606.  D7h    queue servicing error
  3607.  D9h    station is not a server
  3608.  DAh    queue halted
  3609.  DBh    too many queue servers
  3610.  EDh    property already exists
  3611.  EEh    object already exists
  3612.  EFh    invalid name
  3613.  F0h    wildcard not allowed
  3614.  F1h    invalid bindery security level
  3615.  F5h    not permitted to create object
  3616.  F7h    not permitted to create property
  3617.  FCh    no such object
  3618.  FEh    server bindery locked
  3619.  FFh    bindery failure
  3620.  
  3621. Format of request buffer:
  3622. Offset    Size    Description
  3623.  00h    WORD    length of following data (max ABh)
  3624.  02h    BYTE    64h (subfunction "Create Queue")
  3625.  03h    WORD    queue type (big-endian)
  3626.  05h    BYTE    length of queue's name (01h-2Fh)
  3627.  06h  N BYTEs    queue's name
  3628.     BYTE    directory handle or 00h
  3629.     BYTE    length of path name (01h-76h)
  3630.       N BYTEs    path name of directory in which to create queue subdirectory
  3631.  
  3632. Format of reply buffer:
  3633. Offset    Size    Description
  3634.  00h    WORD    (call) 0004h (size of following results buffer)
  3635.  02h    DWORD    object ID of queue (big-endian)
  3636. ----------21E3--SF65-------------------------
  3637. INT 21 - Novell NetWare - QUEUE SERVICES - DESTROY QUEUE
  3638.     AH = E3h subfn 65h
  3639.     DS:SI -> request buffer (see below)
  3640.     ES:DI -> reply buffer (see below)
  3641. Return: AL = status (00h,96h,9Ch,D0h,D1h,FFh) (see also AH=E3h/SF=64h)
  3642.         FFh hardware failure
  3643. Desc:    abort all active jobs, detach all job servers, remove all job entries,
  3644.       delete all job files, remove the queue object and its properties
  3645.       from the bindery, and delete the queue's subdirectory
  3646. Notes:    this function is supported by Advanced NetWare 2.1+
  3647.     caller must have SUPERVISOR privileges
  3648. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=70h
  3649.  
  3650. Format of request buffer:
  3651. Offset    Size    Description
  3652.  00h    WORD    0005h (length of following data)
  3653.  02h    BYTE    65h (subfunction "Destroy Queue")
  3654.  03h    DWORD    object ID of queue (big-endian)
  3655.  
  3656. Format of reply buffer:
  3657. Offset    Size    Description
  3658.  00h    WORD    (call) 0000h (no results returned)
  3659. ----------21E3--SF66-------------------------
  3660. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE CURRENT STATUS
  3661.     AH = E3h subfn 66h
  3662.     DS:SI -> request buffer (see below)
  3663.     ES:DI -> reply buffer (see below)
  3664. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  3665. Notes:    this function is supported by Advanced NetWare 2.1+
  3666.     caller must be on a workstation which is security-equivalent to a
  3667.       member of the queue's Q_USERS or Q_OPERATORS properties
  3668. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=67h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  3669.  
  3670. Format of request buffer:
  3671. Offset    Size    Description
  3672.  00h    WORD    0005h (length of following data)
  3673.  02h    BYTE    66h (subfunction "Read Queue Current Status")
  3674.  03h    DWORD    object ID of queue (big-endian)
  3675.  
  3676. Format of reply buffer:
  3677. Offset    Size    Description
  3678.  00h    WORD    (call) 0085h (size of following results)
  3679.  02h    DWORD    object ID of queue (big-endian)
  3680.  06h    BYTE    status of queue
  3681.         bit 0: operator disabled addition of new jobs
  3682.         bit 1: operator refuses additional job servers attaching
  3683.         bit 2: operator disabled job servicing
  3684.  07h    BYTE    number of jobs in queue (00h-FAh)
  3685.  08h    BYTE    number of servers attached to queue (00h-19h)
  3686.  09h 25 DWORDs    list of object IDs of attached servers
  3687.  6Dh 25 BYTEs    list of attached servers' stations
  3688.  86h    BYTE    (call) maximum number of servers to return
  3689. ----------21E3--SF67-------------------------
  3690. INT 21 - Novell NetWare - QUEUE SERVICES - SET QUEUE CURRENT STATUS
  3691.     AH = E3h subfn 67h
  3692.     DS:SI -> request buffer (see below)
  3693.     ES:DI -> reply buffer (see below)
  3694. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,FEh,FFh) (see AH=E3h/SF=64h)
  3695. Notes:    this function is supported by Advanced NetWare 2.1+
  3696.     caller must have operator privileges
  3697. SeeAlso: AH=E3h/SF=64h,AH=E3h/SF=66h,AH=E3h/SF=6Fh,AH=E3h/SF=76h
  3698.  
  3699. Format of request buffer:
  3700. Offset    Size    Description
  3701.  00h    WORD    0006h (length of following data)
  3702.  02h    BYTE    67h (subfunction "Set Queue Current Status")
  3703.  03h    DWORD    object ID of queue (big-endian)
  3704.  07h    BYTE    queue status
  3705.         bit 0: operator disabled addition of new jobs
  3706.         bit 1: operator refuses additional job servers attaching
  3707.         bit 2: operator disabled job servicing
  3708.  
  3709. Format of reply buffer:
  3710. Offset    Size    Description
  3711.  00h    WORD    (call) 0000h (no results returned)
  3712. ----------21E3--SF68-------------------------
  3713. INT 21 - Novell NetWare - QUEUE SERVICES - CREATE QUEUE JOB AND FILE
  3714.     AH = E3h subfn 68h
  3715.     DS:SI -> request buffer (see below)
  3716.     ES:DI -> reply buffer (see below)
  3717. Return: AL = status (00h,96h,99h,9Ch,D0h-D4h,DAh,EDh,EFh-F1h,F7h,FCh,FEh,FFh)
  3718.         (see AH=E3h/SF=64h)
  3719. Notes:    this function is supported by Advanced NetWare 2.1+
  3720.     caller must be on a workstation which is security-equivalent to a
  3721.       member of the queue's Q_USER property
  3722. SeeAlso: AH=E3h/SF=69h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  3723.  
  3724. Format of request buffer:
  3725. Offset    Size    Description
  3726.  00h    WORD    0107h (length of following data)
  3727.  02h    BYTE    68h (subfunction "Close File and Start Queue Job")
  3728.  03h    DWORD    object ID of queue (big-endian)
  3729.  07h    BYTE    client station
  3730.  08h    BYTE    client task number
  3731.  09h    DWORD    object ID of client (big-endian)
  3732.  0Dh    DWORD    object ID of target server (big-endian)
  3733.         FFFFFFFh if any server acceptable
  3734.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  3735.         FFFFFFFFFFFFh to execute as soon as possible
  3736.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  3737.  1Dh    WORD    job number (big-endian)
  3738.  1Fh    WORD    job type (big-endian)
  3739.  21h    BYTE    job position
  3740.  22h    BYTE    job control flags
  3741.  23h 14 BYTEs    ASCIZ job file name
  3742.  31h  6 BYTEs    job file handle
  3743.  37h    BYTE    server station
  3744.  38h    BYTE    server task number
  3745.  39h    DWORD    object ID of server (big-endian)
  3746.  3Dh 50 BYTEs    ASCIZ job description string
  3747.  6Fh 152 BYTEs    client record area
  3748.  
  3749. Format of reply buffer:
  3750. Offset    Size    Description
  3751.  00h    WORD    (call) 0036h (size of following results buffer)
  3752.  02h    BYTE    client station
  3753.  03h    BYTE    client task number
  3754.  04h    DWORD    object ID of client (big-endian)
  3755.  08h    DWORD    object ID of target server (big-endian)
  3756.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  3757.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  3758.  18h    WORD    job number (big-endian)
  3759.  1Ah    WORD    job type (big-endian)
  3760.  1Ch    BYTE    job position
  3761.  1Dh    BYTE    job control flags
  3762.  1Eh 14 BYTEs    ASCIZ job file name
  3763.  2Ch  6 BYTEs    job file handle
  3764.  32h    BYTE    server station
  3765.  33h    BYTE    server task number
  3766.  34h    DWORD    object ID of server or 00000000h (big-endian)
  3767. ----------21E3--SF69-------------------------
  3768. INT 21 - Novell NetWare - QUEUE SERVICES - CLOSE FILE AND START QUEUE JOB
  3769.     AH = E3h subfn 69h
  3770.     DS:SI -> request buffer (see below)
  3771.     ES:DI -> reply buffer (see below)
  3772. Return: AL = status (00h,96h,D0h,D1h,D3h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  3773. Notes:    this function is supported by Advanced NetWare 2.1+
  3774.     caller must be on the workstation which created the job
  3775. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  3776.  
  3777. Format of request buffer:
  3778. Offset    Size    Description
  3779.  00h    WORD    0007h (length of following data)
  3780.  02h    BYTE    69h (subfunction "Close File and Start Queue Job")
  3781.  03h    DWORD    object ID of queue (big-endian)
  3782.  07h    WORD    job number (big-endian)
  3783.  
  3784. Format of reply buffer:
  3785. Offset    Size    Description
  3786.  00h    WORD    (call) 0000h (no results returned)
  3787. ----------21E3--SF6A-------------------------
  3788. INT 21 - Novell NetWare - QUEUE SERVICES - REMOVE JOB FROM QUEUE
  3789.     AH = E3h subfn 6Ah
  3790.     DS:SI -> request buffer (see below)
  3791.     ES:DI -> reply buffer (see below)
  3792. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  3793. Notes:    this function is supported by Advanced NetWare 2.1+
  3794.     caller must have created the job or be an operator
  3795. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  3796.  
  3797. Format of request buffer:
  3798. Offset    Size    Description
  3799.  00h    WORD    0007h (length of following data)
  3800.  02h    BYTE    6Ah (subfunction "Remove Job From Queue")
  3801.  03h    DWORD    object ID of queue (big-endian)
  3802.  07h    WORD    job number (big-endian)
  3803.  
  3804. Format of reply buffer:
  3805. Offset    Size    Description
  3806.  00h    WORD    (call) 0000h (no results returned)
  3807. ----------21E3--SF6B-------------------------
  3808. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB LIST
  3809.     AH = E3h subfn 6Bh
  3810.     DS:SI -> request buffer (see below)
  3811.     ES:DI -> reply buffer (see below)
  3812. Return: AL = status (00h,96h,9Ch,D0h-D3h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  3813. Notes:    this function is supported by Advanced NetWare 2.1+
  3814.     caller must be on a workstation which is security-equivalent to a
  3815.       member of the Q_USERS or Q_OPERATORS properties
  3816. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  3817.  
  3818. Format of request buffer:
  3819. Offset    Size    Description
  3820.  00h    WORD    0005h (length of following data)
  3821.  02h    BYTE    6Bh (subfunction "Get Queue Job List")
  3822.  03h    DWORD    object ID of queue (big-endian)
  3823.  
  3824. Format of reply buffer:
  3825. Offset    Size    Description
  3826.  00h    WORD    (call) size of following results buffer (max 1F6h)
  3827.  02h    WORD    job count (big-endian)
  3828.  04h  N WORDs    list of job numbers by position in queue (big-endian)
  3829.     WORD    maximum job numbers
  3830. ----------21E3--SF6C-------------------------
  3831. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE JOB ENTRY
  3832.     AH = E3h subfn 6Ch
  3833.     DS:SI -> request buffer (see below)
  3834.     ES:DI -> reply buffer (see below)
  3835. Return: AL = status (00h,96h,D0h-D3h,D5h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  3836. Notes:    this function is supported by Advanced NetWare 2.1+
  3837.     caller must be on a workstation which is security-equivalent to a
  3838.       member of the Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  3839. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Eh
  3840.  
  3841. Format of request buffer:
  3842. Offset    Size    Description
  3843.  00h    WORD    0007h (length of following data)
  3844.  02h    BYTE    6Ch (subfunction "Read Queue Job Entry")
  3845.  03h    DWORD    object ID of queue (big-endian)
  3846.  07h    WORD    job number (big-endian)
  3847.  
  3848. Format of reply buffer:
  3849. Offset    Size    Description
  3850.  00h    WORD    (call) 0100h (size of following results)
  3851.  02h    BYTE    client station number
  3852.  03h    BYTE    client task number
  3853.  04h    DWORD    object ID of client
  3854.  08h    DWORD    object ID of target server (big-endian)
  3855.         FFFFFFFFh if any server acceptable
  3856.  0Ch  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  3857.         FFFFFFFFFFFFh if serviced as soon as possible
  3858.  12h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  3859.  18h    WORD    job number (big-endian)
  3860.  1Ah    WORD    job type (big-endian)
  3861.  1Ch    BYTE    job position
  3862.  1Dh    BYTE    job control flags
  3863.         bit 3: job will be serviced automatically if connection broken
  3864.         bit 4: job remains in queue after server aborts job
  3865.         bit 5: client has not filled associated job file
  3866.         bit 6: User Hold--job advances, but cannot be serviced until
  3867.             this bit is cleared by user or operator
  3868.         bit 7: Operator Hold--job advances, but cannot be serviced
  3869.             until this bit is cleared by an operator
  3870.  1Eh 14 BYTEs    ASCIZ job filename
  3871.  2Ch  6 BYTEs    job file handle
  3872.  32h    BYTE    server station
  3873.  33h    BYTE    server task number
  3874.  34h    DWORD    object ID of server
  3875.  38h 50 BYTEs    ASCIZ job description string
  3876.  6Ah 152 BYTEs    client record area
  3877. ----------21E3--SF6D-------------------------
  3878. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB ENTRY
  3879.     AH = E3h subfn 6Dh
  3880.     DS:SI -> request buffer (see below)
  3881.     ES:DI -> reply buffer (see below)
  3882. Return: AL = status (00h,96h,D0h,D1h,D5h,D7h,FEh,FFh) (see AH=E3h/SF=64h)
  3883. Notes:    this function is supported by Advanced NetWare 2.1+
  3884.     caller must be an operator or the user who created the job
  3885. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Eh
  3886.  
  3887. Format of request buffer:
  3888. Offset    Size    Description
  3889.  00h    WORD    0105h (length of following data)
  3890.  02h    BYTE    6Dh (subfunction "Change Queue Job Entry")
  3891.  03h    DWORD    object ID of queue (big-endian)
  3892.  07h    BYTE    client station number
  3893.  08h    BYTE    client task number
  3894.  09h    DWORD    object ID of client
  3895.  0Dh    DWORD    object ID of target server (big-endian)
  3896.  11h  6 BYTEs    target execution time (year,month,day,hour,minute,second)
  3897.  17h  6 BYTEs    job entry time (year,month,day,hour,minute,second)
  3898.  1Dh    WORD    job number (big-endian)
  3899.  1Fh    WORD    job type (big-endian)
  3900.  21h    BYTE    job position
  3901.  22h    BYTE    job control flags
  3902.         bit 3: job will be serviced automatically if connection broken
  3903.         bit 4: job remains in queue after server aborts job
  3904.         bit 5: client has not filled associated job file
  3905.         bit 6: User Hold--job advances, but cannot be serviced until
  3906.             this bit is cleared by user or operator
  3907.         bit 7: Operator Hold--job advances, but cannot be serviced
  3908.             until this bit is cleared by an operator
  3909.  23h 14 BYTEs    ASCIZ job filename
  3910.  31h  6 BYTEs    job file handle
  3911.  37h    BYTE    server station
  3912.  38h    BYTE    server task number
  3913.  39h    DWORD    object ID of server
  3914.  3Dh 50 BYTEs    ASCIZ job description string
  3915.  6Fh 152 BYTEs    client record area
  3916.  
  3917. Format of reply buffer:
  3918. Offset    Size    Description
  3919.  00h    WORD    (call) 0000h (no results returned)
  3920. ----------21E3--SF6E-------------------------
  3921. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE QUEUE JOB POSITION
  3922.     AH = E3h subfn 6Eh
  3923.     DS:SI -> request buffer (see below)
  3924.     ES:DI -> reply buffer (see below)
  3925. Return: AL = status (00h,96h,D0h,D1h,D5h,D6h,FEh,FFh) (see AH=E3h/SF=64h)
  3926. Notes:    this function is supported by Advanced NetWare 2.1+
  3927.     caller must be an operator
  3928.     if the specified position is greater than the number of jobs in the
  3929.       queue, the job is placed at the end of the queue
  3930. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ah,AH=E3h/SF=6Ch,AH=E3h/SF=6Dh
  3931.  
  3932. Format of request buffer:
  3933. Offset    Size    Description
  3934.  00h    WORD    0008h (length of following data)
  3935.  02h    BYTE    6Eh (subfunction "Change Queue Job Position")
  3936.  03h    DWORD    object ID of queue (big-endian)
  3937.  07h    WORD    job number (big-endian)
  3938.  09h    BYTE    new position in queue (01h-FAh)
  3939.  
  3940. Format of reply buffer:
  3941. Offset    Size    Description
  3942.  00h    WORD    (call) 0000h (no results returned)
  3943. ----------21E3--SF6F-------------------------
  3944. INT 21 - Novell NetWare - QUEUE SERVICES - ATTACH QUEUE SERVER TO QUEUE
  3945.     AH = E3h subfn 6Fh
  3946.     DS:SI -> request buffer (see below)
  3947.     ES:DI -> reply buffer (see below)
  3948. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,DAh,DBh,FEh,FFh)
  3949.         (see also AH=E3h/SF=64h)
  3950.         FFh bindery failure, or no such property, or no such member
  3951. Desc:    attach the calling job server to the specified queue
  3952. Notes:    this function is supported by Advanced NetWare 2.1+
  3953.     a queue may have up to 25 job servers attached
  3954.     the calling workstation must be security-equivalent to a member of the
  3955.       queue's Q_SERVERS property
  3956. SeeAlso: AH=E3h/SF=70h,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  3957.  
  3958. Format of request buffer:
  3959. Offset    Size    Description
  3960.  00h    WORD    0005h (length of following data)
  3961.  02h    BYTE    6Fh (subfunction "Attach Queue Server To Queue")
  3962.  03h    DWORD    object ID of queue (big-endian)
  3963.  
  3964. Format of reply buffer:
  3965. Offset    Size    Description
  3966.  00h    WORD    (call) 0000h (no results returned)
  3967. ----------21E3--SF70-------------------------
  3968. INT 21 - Novell NetWare - QUEUE SERVICES - DETACH QUEUE SERVER FROM QUEUE
  3969.     AH = E3h subfn 70h
  3970.     DS:SI -> request buffer (see below)
  3971.     ES:DI -> reply buffer (see below)
  3972. Return: AL = status (00h,96h,9Ch,D0h,D1h,D2h,FEh,FFh) (see AH=E3h/SF=64h)
  3973. Desc:    remove the calling job server from the specified queue's list of
  3974.       servers
  3975. Notes:    this function is supported by Advanced NetWare 2.1+
  3976.     the caller must have previously attached itself to the queue
  3977. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  3978.  
  3979. Format of request buffer:
  3980. Offset    Size    Description
  3981.  00h    WORD    0005h (length of following data)
  3982.  02h    BYTE    70h (subfunction "Detach Queue Server From Queue")
  3983.  03h    DWORD    object ID of queue (big-endian)
  3984.  
  3985. Format of reply buffer:
  3986. Offset    Size    Description
  3987.  00h    WORD    (call) 0000h (no results returned)
  3988. ----------21E3--SF71-------------------------
  3989. INT 21 - Novell NetWare - QUEUE SERVICES - SERVICE QUEUE JOB AND OPEN FILE
  3990.     AH = E3h subfn 71h
  3991.     DS:SI -> request buffer (see below)
  3992.     ES:DI -> reply buffer (see AH=E3h/SF=68h)
  3993. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  3994.         (see AH=E3h/SF=64h)
  3995. Notes:    this function is supported by Advanced NetWare 2.1+
  3996.     the caller must be on a workstation which is security-equivalent to a
  3997.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  3998. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=72h,AH=E3h/SF=73h,AH=E3h/SF=76h
  3999.  
  4000. Format of request buffer:
  4001. Offset    Size    Description
  4002.  00h    WORD    0007h (length of following data)
  4003.  02h    BYTE    71h (subfunction "Service Queue Job and Open File")
  4004.  03h    DWORD    object ID of queue (big-endian)
  4005.  07h    WORD    target job type (big-endian)
  4006.         FFFFh any
  4007. ----------21E3--SF72-------------------------
  4008. INT 21 - Novell NetWare - QUEUE SERVICES - FINISH SERVICING QUEUE JOB AND FILE
  4009.     AH = E3h subfn 72h
  4010.     DS:SI -> request buffer (see below)
  4011.     ES:DI -> reply buffer (see below)
  4012. Return: AL = status (00h,96h,D0h,D1h,D6h) (see AH=E3h/SF=64h)
  4013. Desc:    inform the Queue Management System (QMS) that the queue server has
  4014.       completed a job
  4015. Notes:    this function is supported by Advanced NetWare 2.1+
  4016.     the caller must be a job server which has previously obtained a job
  4017.       for servicing
  4018. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=73h,AH=E3h/SF=76h
  4019.  
  4020. Format of request buffer:
  4021. Offset    Size    Description
  4022.  00h    WORD    000Bh (length of following data)
  4023.  02h    BYTE    72h (subfunction "Finish Servicing Queue Job and File")
  4024.  03h    DWORD    object ID of queue (big-endian)
  4025.  07h    WORD    job number (big-endian)
  4026.  09h    DWORD    charge (big-endian)
  4027.  
  4028. Format of reply buffer:
  4029. Offset    Size    Description
  4030.  00h    WORD    (call) 0000h (no results returned)
  4031. ----------21E3--SF73-------------------------
  4032. INT 21 - Novell NetWare - QUEUE SERVICES - ABORT SERVICING QUEUE JOB AND FILE
  4033.     AH = E3h subfn 73h
  4034.     DS:SI -> request buffer (see below)
  4035.     ES:DI -> reply buffer (see below)
  4036. Return: AL = status (00h,96h,D0h,D1h,D6h,D9h) (see AH=E3h/SF=64h)
  4037. Desc:    inform the Queue Management System (QMS) that the queue server is
  4038.       unable to service a previously-accepted job
  4039. Note:    this function is supported by Advanced NetWare 2.1+
  4040. SeeAlso: AH=E3h/SF=6Fh,AH=E3h/SF=71h,AH=E3h/SF=72h,AH=E3h/SF=76h
  4041.  
  4042. Format of request buffer:
  4043. Offset    Size    Description
  4044.  00h    WORD    0007h (length of following data)
  4045.  02h    BYTE    73h (subfunction "Abort Servicing Queue Job and File")
  4046.  03h    DWORD    object ID of queue (big-endian)
  4047.  07h    WORD    job number (big-endian)
  4048.  
  4049. Format of reply buffer:
  4050. Offset    Size    Description
  4051.  00h    WORD    (call) 0000h (no results returned)
  4052. ----------21E3--SF74-------------------------
  4053. INT 21 - Novell NetWare - QUEUE SERVICES - CHANGE TO CLIENT RIGHTS
  4054.     AH = E3h subfn 74h
  4055.     DS:SI -> request buffer (see below)
  4056.     ES:DI -> reply buffer (see below)
  4057. Return: AL = status (00h,96h,D0h,D1h,D5h,D9h) (see AH=E3h/SF=64h)
  4058. Desc:    temporarily assume the login identity of the client submitting the
  4059.       job being serviced
  4060. Notes:    this function is supported by Advanced NetWare 2.1+
  4061.     caller must be a job server which has obtained a job for servicing
  4062. SeeAlso: AH=E3h/SF=75h
  4063.  
  4064. Format of request buffer:
  4065. Offset    Size    Description
  4066.  00h    WORD    0007h (length of following data)
  4067.  02h    BYTE    74h (subfunction "Change To Client Rights")
  4068.  03h    DWORD    object ID of queue (big-endian)
  4069.  07h    WORD    job number (big-endian)
  4070.  
  4071. Format of reply buffer:
  4072. Offset    Size    Description
  4073.  00h    WORD    (call) 0000h (no results returned)
  4074. ----------21E3--SF75-------------------------
  4075. INT 21 - Novell NetWare - QUEUE SERVICES - RESTORE QUEUE SERVER RIGHTS
  4076.     AH = E3h subfn 75h
  4077.     DS:SI -> request buffer (see below)
  4078.     ES:DI -> reply buffer (see below)
  4079. Return: AL = status (00h,96h,9Ch,D0h,D1h,D3h,D5h,D9h,DAh,FEh,FFh)
  4080.         (see AH=E3h/SF=64h)
  4081. Desc:    restore server's own identity after assuming the login identity of the
  4082.       client submitting the job being serviced
  4083. Notes:    this function is supported by Advanced NetWare 2.1+
  4084.     caller must be a job server which has previously changed its identity
  4085. SeeAlso: AH=E3h/SF=74h
  4086.  
  4087. Format of request buffer:
  4088. Offset    Size    Description
  4089.  00h    WORD    0001h (length of following data)
  4090.  02h    BYTE    75h (subfunction "Change To Client Rights")
  4091.  
  4092. Format of reply buffer:
  4093. Offset    Size    Description
  4094.  00h    WORD    (call) 0000h (no results returned)
  4095. ----------21E3--SF76-------------------------
  4096. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS
  4097.     AH = E3h subfn 76h
  4098.     DS:SI -> request buffer (see below)
  4099.     ES:DI -> reply buffer (see below)
  4100. Return: AL = status (00h,96h,9Ch,D1h-D3h,F1h,FCh,FEh,FFh) (see AH=E3h/SF=64h)
  4101. Notes:    this function is supported by Advanced NetWare 2.1+
  4102.     caller must be on a workstation which is security-equivalent to a
  4103.       member of the Q_USERS or Q_OPERATORS properties
  4104. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=77h,AH=E3h/SF=78h
  4105.  
  4106. Format of request buffer:
  4107. Offset    Size    Description
  4108.  00h    WORD    000Ah (length of following data)
  4109.  02h    BYTE    76h (subfunction "Read Queue Server Current Status")
  4110.  03h    DWORD    object ID of queue (big-endian)
  4111.  07h    DWORD    object ID of server (big-endian)
  4112.  0Bh    BYTE    server station
  4113.  
  4114. Format of reply buffer:
  4115. Offset    Size    Description
  4116.  00h    WORD    (call) 0040h (size of following results)
  4117.  02h 64 BYTEs    server status record (format depends on server)
  4118.         first four bytes should contain estimated "price" for an
  4119.         average job
  4120. ----------21E3--SF76-------------------------
  4121. INT 21 - Novell NetWare - QUEUE SERVICES - READ QUEUE SERVER CURRENT STATUS
  4122.     AH = E3h subfn 76h
  4123.     DS:SI -> request buffer (see below)
  4124.     ES:DI -> reply buffer (see below)
  4125. Return: AL = status (00h,96h,9Ch,D0h,D1h,FEh,FFh) (see AH=E3h/SF=64h)
  4126. Notes:    this function is supported by Advanced NetWare 2.1+
  4127.     caller must be a job server which has attached itself to the queue
  4128. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=6Fh,AH=E3h/SF=76h,AH=E3h/SF=78h
  4129.  
  4130. Format of request buffer:
  4131. Offset    Size    Description
  4132.  00h    WORD    0045h (length of following data)
  4133.  02h    BYTE    77h (subfunction "Set Queue Server Current Status")
  4134.  03h    DWORD    object ID of queue (big-endian)
  4135.  02h 64 BYTEs    server status record (format depends on server)
  4136.         first four bytes should contain estimated "price" for an
  4137.         average job
  4138.  
  4139. Format of reply buffer:
  4140. Offset    Size    Description
  4141.  00h    WORD    (call) 0000h (no results returned)
  4142. ----------21E3--SF78-------------------------
  4143. INT 21 - Novell NetWare - QUEUE SERVICES - GET QUEUE JOB'S FILE SIZE
  4144.     AH = E3h subfn 78h
  4145.     DS:SI -> request buffer (see below)
  4146.     ES:DI -> reply buffer (see below)
  4147. Return: AL = status (see also AH=E3h/SF=64h)
  4148.         00h successful
  4149. Notes:    this function is supported by Advanced NetWare 2.1+
  4150.     caller must be on a workstation which is security-equivalent to a
  4151.       member of the queue's Q_USERS, Q_OPERATORS, or Q_SERVERS properties
  4152. SeeAlso: AH=E3h/SF=68h,AH=E3h/SF=6Ch,AH=E3h/SF=71h
  4153.  
  4154. Format of request buffer:
  4155. Offset    Size    Description
  4156.  00h    WORD    0007h (length of following data)
  4157.  02h    BYTE    78h (subfunction "Get Queue Job's File Size")
  4158.  03h    DWORD    object ID of queue (big-endian)
  4159.  07h    WORD    job number (big-endian)
  4160.  
  4161. Format of reply buffer:
  4162. Offset    Size    Description
  4163.  00h    WORD    (call) 000Ah (size of following results)
  4164.  02h    DWORD    object ID of queue (big-endian)
  4165.  06h    WORD    job number (big-endian)
  4166.  08h    DWORD    size of job file in bytes (big-endian)
  4167. ----------21E3--SF96-------------------------
  4168. INT 21 - Novell NetWare - ACCOUNTING SERVICES - GET ACCOUNT STATUS
  4169.     AH = E3h subfn 96h
  4170.     DS:SI -> request buffer (see below)
  4171.     ES:DI -> reply buffer (see below)
  4172. Return: AL = status
  4173.         00h successful
  4174.         C0h    no account privileges
  4175.         C1h    no account balance
  4176. Note:    this function is supported by Advanced NetWare 2.1+
  4177. SeeAlso: AH=E3h/SF=97h,AH=E3h/SF=98h,AH=E3h/SF=99h
  4178.  
  4179. Format of request buffer:
  4180. Offset    Size    Description
  4181.  00h    WORD    length of following data (max 33h)
  4182.  02h    BYTE    96h (subfunction "Get Account Status")
  4183.  03h    WORD    type of bindery object (big-endian)
  4184.  05h    BYTE    length of object name (01h to 2Fh)
  4185.  06h  N BYTEs    object name
  4186.  
  4187. Format of reply buffer:
  4188. Offset    Size    Description
  4189.  00h    WORD    (call) length of following buffer space
  4190.  02h    DWORD    account balance (big-endian)
  4191.  06h    DWORD    credit limit (big-endian)
  4192.         signed number indicating lowest allowable account balance
  4193.  0Ah 120 BYTEs    reserved
  4194.  82h    DWORD    object ID, server 1 (big-endian)
  4195.  86h    DWORD    hold amount, server 1 (big-endian)
  4196.     ...
  4197.  F8h    DWORD    object ID, server 16 (big-endian)
  4198.  FCh    DWORD    hold amount, server 16 (big-endian)
  4199. Note:    the reply buffer lists the servers which have placed holds on a portion
  4200.       of the account balance, and the amount reserved by each
  4201. ----------21E3--SF97-------------------------
  4202. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT CHARGE
  4203.     AH = E3h subfn 97h
  4204.     DS:SI -> request buffer (see below)
  4205.     ES:DI -> reply buffer (see below)
  4206. Return: AL = status
  4207.         00h successful
  4208.         C0h    no account privileges
  4209.         C1h    no account balance
  4210.         C2h credit limit exceeded
  4211. Note:    this function is supported by Advanced NetWare 2.1+
  4212. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=98h
  4213.  
  4214. Format of request buffer:
  4215. Offset    Size    Description
  4216.  00h    WORD    length of following data (max 13Fh)
  4217.  02h    BYTE    97h (subfunction "Submit Account Charge")
  4218.  03h    WORD    service type (big-endian)
  4219.  05h    DWORD    amount to be charged to account (big-endian)
  4220.  09h    DWORD    amount of prior hold to be cancelled (big-endian)
  4221.  0Dh    WORD    type of bindery object (big-endian)
  4222.  0Fh    WORD    type of comment (big-endian)
  4223.         8000h-FFFFh reserved for experimental use
  4224.  11h    BYTE    length of object's name
  4225.  12h  N BYTEs    object name
  4226.     BYTE    length of comment
  4227.       N BYTEs    comment
  4228.  
  4229. Format of reply buffer:
  4230. Offset    Size    Description
  4231.  00h    WORD    0000h (no data returned)
  4232. ----------21E3--SF98-------------------------
  4233. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT HOLD
  4234.     AH = E3h subfn 98h
  4235.     DS:SI -> request buffer (see below)
  4236.     ES:DI -> reply buffer (see below)
  4237. Return: AL = status
  4238.         00h successful
  4239.         C0h    no account privileges
  4240.         C1h    no account balance
  4241.         C2h credit limit exceeded
  4242.         C3h too many holds on account
  4243. Note:    this function is supported by Advanced NetWare 2.1+
  4244. SeeAlso: AH=E3h/SF=96h,AH=E3h/SF=97h
  4245.  
  4246. Format of request buffer:
  4247. Offset    Size    Description
  4248.  00h    WORD    length of following data (max 37h)
  4249.  02h    BYTE    98h (subfunction "Submit Account Hold")
  4250.  03h    DWORD    amount of account balance to reserve (big-endian)
  4251.  07h    WORD    type of bindery object
  4252.  09h    BYTE    length of object's name
  4253.  0Ah  N BYTEs    object name
  4254.  
  4255. Format of reply buffer:
  4256. Offset    Size    Description
  4257.  00h    WORD    0000h (no data returned)
  4258. ----------21E3--SF99-------------------------
  4259. INT 21 - Novell NetWare - ACCOUNTING SERVICES - SUBMIT ACCOUNT NOTE
  4260.     AH = E3h subfn 99h
  4261.     DS:SI -> request buffer (see below)
  4262.     ES:DI -> reply buffer (see below)
  4263. Return: AL = status
  4264.         00h successful
  4265.         C0h    no account privileges
  4266. Note:    this function is supported by Advanced NetWare 2.1+
  4267. SeeAlso: AH=E3h/SF=96h
  4268.  
  4269. Format of request buffer:
  4270. Offset    Size    Description
  4271.  00h    WORD    length of following data (max 137h)
  4272.  02h    BYTE    99h (subfunction "Submit Account Note")
  4273.  03h    WORD    type of service (big-endian)
  4274.  05h    WORD    type of bindery object (big-endian)
  4275.  07h    WORD    type of comment (big-endian)
  4276.         8000h-FFFFh reserved for experimental use
  4277.  09h    BYTE    length of object's name
  4278.  0Ah  N BYTEs    object name
  4279.     BYTE    length of comment
  4280.       N BYTEs    comment
  4281.  
  4282. Format of reply buffer:
  4283. Offset    Size    Description
  4284.  00h    WORD    0000h (no data returned)
  4285. ----------21E3--SFC8-------------------------
  4286. INT 21 - Novell NetWare - FILE SERVER - CHECK CONSOLE PRIVILEGES
  4287.     AH = E3h subfn C8h
  4288.     DS:SI -> request buffer (see below)
  4289.     ES:DI -> reply buffer (see below)
  4290. Return: AL = status
  4291.         00h successful
  4292.         C6h no console rights
  4293. Desc:    determine whether the caller is a console operator
  4294. Notes:    this function is supported by Advanced NetWare 2.1+
  4295.     NetWare determines console privileges by checking the file server's
  4296.       OPERATOR property for the caller's object ID
  4297. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  4298.  
  4299. Format of request buffer:
  4300. Offset    Size    Description
  4301.  00h    WORD    0001h (length of following data)
  4302.  02h    BYTE    C8h (subfunction "Check Console Privileges")
  4303.  
  4304. Format of reply buffer:
  4305. Offset    Size    Description
  4306.  00h    WORD    (call) 0000h (no results returned)
  4307. ----------21E3--SFC9-------------------------
  4308. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DESCRIPTION STRINGS
  4309.     AH = E3h subfn C9h
  4310.     DS:SI -> request buffer (see below)
  4311.     ES:DI -> reply buffer (see below)
  4312. Return: AL = status
  4313.         00h successful
  4314. Notes:    this function is supported by Advanced NetWare 2.1+
  4315.     the calling workstation must be attached to the file server
  4316. SeeAlso: AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E8h
  4317.  
  4318. Format of request buffer:
  4319. Offset    Size    Description
  4320.  00h    WORD    0001h (length of following data)
  4321.  02h    BYTE    C9h (subfunction "Get File Server Description Strings")
  4322.  
  4323. Format of reply buffer:
  4324. Offset    Size    Description
  4325.  00h    WORD    (call) 0200h (size of following results buffer)
  4326.  02h    var    ASCIZ name of company distributing this copy of NetWare
  4327.     var    ASCIZ version and revision
  4328.       9 BYTEs    ASCIZ revision date (mm/dd/yy)
  4329.     var    ASCIZ copyright notice
  4330. ----------21E3--SFCA-------------------------
  4331. INT 21 - Novell NetWare - FILE SERVER - SET FILE SERVER DATE AND TIME
  4332.     AH = E3h subfn CAh
  4333.     DS:SI -> request buffer (see below)
  4334.     ES:DI -> reply buffer (see below)
  4335. Return: AL = status
  4336.         00h successful
  4337.         C6h no console rights
  4338. Notes:    this function is supported by Advanced NetWare 2.1+
  4339.     the calling workstation must have console operator privileges
  4340. SeeAlso: AH=2Bh,AH=2Dh,AH=E3h/SF=C8h,AH=E7h
  4341.  
  4342. Format of request buffer:
  4343. Offset    Size    Description
  4344.  00h    WORD    0007h (length of following data)
  4345.  02h    BYTE    CAh (subfunction "Set File Server Date And Time")
  4346.  03h    BYTE    year (00-79 = 2000-2079, 80-99 = 1980-1999)
  4347.  04h    BYTE    month (1-12)
  4348.  05h    BYTE    day (1-31)
  4349.  06h    BYTE    hour (0-23)
  4350.  07h    BYTE    minute
  4351.  08h    BYTR    second
  4352.  
  4353. Format of reply buffer:
  4354. Offset    Size    Description
  4355.  00h    WORD    (call) 0000h (no results returned)
  4356. ----------21E3--SFCB-------------------------
  4357. INT 21 - Novell NetWare - FILE SERVER - DISABLE FILE SERVER LOGIN
  4358.     AH = E3h subfn CBh
  4359.     DS:SI -> request buffer (see below)
  4360.     ES:DI -> reply buffer (see below)
  4361. Return: AL = status
  4362.         00h successful
  4363.         C6h no console rights
  4364. Notes:    this function is supported by Advanced NetWare 2.1+
  4365.     the calling workstation must have console operator privileges
  4366. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CCh,AH=E3h/SF=D3h
  4367.  
  4368. Format of request buffer:
  4369. Offset    Size    Description
  4370.  00h    WORD    0001h (length of following data)
  4371.  02h    BYTE    CBh (subfunction "Disable File Server Login")
  4372.  
  4373. Format of reply buffer:
  4374. Offset    Size    Description
  4375.  00h    WORD    (call) 0000h (no results returned)
  4376. ----------21E3--SFCC-------------------------
  4377. INT 21 - Novell NetWare - FILE SERVER - ENABLE FILE SERVER LOGIN
  4378.     AH = E3h subfn CCh
  4379.     DS:SI -> request buffer (see below)
  4380.     ES:DI -> reply buffer (see below)
  4381. Return: AL = status
  4382.         00h successful
  4383.         C6h no console rights
  4384. Notes:    this function is supported by Advanced NetWare 2.1+
  4385.     the calling workstation must have console operator privileges
  4386. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh
  4387.  
  4388. Format of request buffer:
  4389. Offset    Size    Description
  4390.  00h    WORD    0001h (length of following data)
  4391.  02h    BYTE    CCh (subfunction "Enable File Server Login")
  4392.  
  4393. Format of reply buffer:
  4394. Offset    Size    Description
  4395.  00h    WORD    (call) 0000h (no results returned)
  4396. ----------21E3--SFCD-------------------------
  4397. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LOGIN STATUS
  4398.     AH = E3h subfn CDh
  4399.     DS:SI -> request buffer (see below)
  4400.     ES:DI -> reply buffer (see below)
  4401. Return: AL = status
  4402.         00h successful
  4403.         C6h no console rights
  4404. Notes:    this function is supported by Advanced NetWare 2.1+
  4405.     the calling workstation must have console operator privileges
  4406. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CCh
  4407.  
  4408. Format of request buffer:
  4409. Offset    Size    Description
  4410.  00h    WORD    0001h (length of following data)
  4411.  02h    BYTE    CDh (subfunction "Get File Server Login Status")
  4412.  
  4413. Format of reply buffer:
  4414. Offset    Size    Description
  4415.  00h    WORD    (call) 0001h (size of following results buffer)
  4416.  02h    BYTE    login state (00h disabled, 01h enabled)
  4417. ----------21E3--SFCE-------------------------
  4418. INT 21 - Novell NetWare - FILE SERVICES - PURGE ALL ERASED FILES
  4419.     AH = E3h subfn CEh
  4420.     DS:SI -> request buffer (see below)
  4421.     ES:DI -> reply buffer (see below)
  4422. Return: AL = status
  4423.         00h successful
  4424.         C6h no console rights
  4425. Notes:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  4426.       Alloy NTNX
  4427.     all files marked for deletion on the file server are purged, regardless
  4428.       of which workstation actually erased them
  4429.     the calling workstation must have console operator privileges
  4430. SeeAlso: AH=13h,AH=E2h/SF=10h,AH=E3h/SF=C8h,AX=F244h
  4431.  
  4432. Format of request buffer:
  4433. Offset    Size    Description
  4434.  00h    WORD    0001h (length of following data)
  4435.  02h    BYTE    CEh (subfunction "Purge All Erased Files")
  4436.  
  4437. Format of reply buffer:
  4438. Offset    Size    Description
  4439.  00h    WORD    (call) 0000h (no results returned)
  4440. ----------21E3--SFCF-------------------------
  4441. INT 21 - Novell NetWare - FILE SERVER - DISABLE TRANSACTION TRACKING
  4442.     AH = E3h subfn CFh
  4443.     DS:SI -> request buffer (see below)
  4444.     ES:DI -> reply buffer (see below)
  4445. Return: AL = status
  4446.         00h successful
  4447.         C6h no console rights
  4448. Notes:    this function is supported by Advanced NetWare 2.1+
  4449.     the calling workstation must have console operator privileges
  4450. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D0h
  4451.  
  4452. Format of request buffer:
  4453. Offset    Size    Description
  4454.  00h    WORD    0001h (length of following data)
  4455.  02h    BYTE    CFh (subfunction "Disable Transaction Tracking")
  4456.  
  4457. Format of reply buffer:
  4458. Offset    Size    Description
  4459.  00h    WORD    (call) 0000h (no results returned)
  4460. ----------21E3--SFD0-------------------------
  4461. INT 21 - Novell NetWare - FILE SERVER - ENABLE TRANSACTION TRACKING
  4462.     AH = E3h subfn D0h
  4463.     DS:SI -> request buffer (see below)
  4464.     ES:DI -> reply buffer (see below)
  4465. Return: AL = status
  4466.         00h successful
  4467.         C6h no console rights
  4468. Desc:    restart transaction tracking after being stopped either explicitly by
  4469.       AH=E3h/SF=CFh or automatically due to a full transaction volume
  4470. Notes:    this function is supported by Advanced NetWare 2.1+
  4471.     the calling workstation must have console operator privileges
  4472. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh
  4473.  
  4474. Format of request buffer:
  4475. Offset    Size    Description
  4476.  00h    WORD    0001h (length of following data)
  4477.  02h    BYTE    D0h (subfunction "Enable Transaction Tracking")
  4478.  
  4479. Format of reply buffer:
  4480. Offset    Size    Description
  4481.  00h    WORD    (call) 0000h (no results returned)
  4482. ----------21E3--SFD1-------------------------
  4483. INT 21 - Novell NetWare - FILE SERVER - SEND CONSOLE BROADCAST
  4484.     AH = E3h subfn D1h
  4485.     DS:SI -> request buffer (see below)
  4486.     ES:DI -> reply buffer (see below)
  4487. Return: AL = status
  4488.         00h successful
  4489.         C6h no console rights
  4490. Notes:    this function is supported by Advanced NetWare 2.1+
  4491.     the calling workstation must have console operator privileges
  4492.     the broadcast message will not be received by workstations which have
  4493.       disabled broadcasts with AH=E1h/SF=02h
  4494. SeeAlso: AH=E1h/SF=02h,AH=E1h/SF=09h,AH=E3h/SF=C8h,AH=E3h/SF=D3h
  4495.  
  4496. Format of request buffer:
  4497. Offset    Size    Description
  4498.  00h    WORD    length of following data (max A2h)
  4499.  02h    BYTE    D1h (subfunction "Send Console Broadcast")
  4500.  03h    BYTE    number of connections to receive message 
  4501.         00h = all, else specific list below
  4502.  04h  N BYTEs    connection list
  4503.     BYTE    length of message (max 3Ch)
  4504.       N BYTEs    message
  4505.  
  4506. Format of reply buffer:
  4507. Offset    Size    Description
  4508.  00h    WORD    (call) 0000h (no results returned)
  4509. ----------21E3--SFD2-------------------------
  4510. INT 21 - Novell NetWare - FILE SERVER - CLEAR CONNECTION NUMBER
  4511.     AH = E3h subfn D2h
  4512.     DS:SI -> request buffer (see below)
  4513.     ES:DI -> reply buffer (see below)
  4514. Return: AL = status
  4515.         00h successful
  4516.         C6h no console rights
  4517. Desc:    close the open files and release all file locks for a connection,
  4518.       abort transactions if a TTS file server, and detach from the file
  4519.       server
  4520. Notes:    this function is supported by Advanced NetWare 2.1+
  4521.     the caller must have SUPERVISOR privileges
  4522. SeeAlso: AH=E3h/SF=C9h,AH=E3h/SF=D1h
  4523.  
  4524. Format of request buffer:
  4525. Offset    Size    Description
  4526.  00h    WORD    0002h (length of following data)
  4527.  02h    BYTE    D2h (subfunction "Clear Connection Number")
  4528.  03h    BYTE    connection number
  4529.  
  4530. Format of reply buffer:
  4531. Offset    Size    Description
  4532.  00h    WORD    (call) 0000h (no results returned)
  4533. ----------21E3--SFD3-------------------------
  4534. INT 21 - Novell NetWare - FILE SERVER - DOWN FILE SERVER
  4535.     AH = E3h subfn D3h
  4536.     DS:SI -> request buffer (see below)
  4537.     ES:DI -> reply buffer (see below)
  4538. Return: AL = status
  4539.         00h successful
  4540.         C6h no console rights
  4541.         FFh files open
  4542. Desc:    take down the file server
  4543. Notes:    this function is supported by Advanced NetWare 2.1+
  4544.     the calling workstation must have SUPERVISOR privileges
  4545. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CBh,AH=E3h/SF=CFh,AH=E3h/SF=D1h
  4546.  
  4547. Format of request buffer:
  4548. Offset    Size    Description
  4549.  00h    WORD    0002h (length of following data)
  4550.  02h    BYTE    D3h (subfunction "Down File Server")
  4551.  03h    BYTE    flag: force down even if files open if nonzero
  4552.  
  4553. Format of reply buffer:
  4554. Offset    Size    Description
  4555.  00h    WORD    (call) 0000h (no results returned)
  4556. ----------21E3--SFD4-------------------------
  4557. INT 21 - Novell NetWare - FILE SERVER - GET FILE SYSTEM STATISTICS
  4558.     AH = E3h subfn D4h
  4559.     DS:SI -> request buffer (see below)
  4560.     ES:DI -> reply buffer (see below)
  4561. Return: AL = status
  4562.         00h successful
  4563.         C6h no console rights
  4564. Notes:    this function is supported by Advanced NetWare 2.1+
  4565.     the calling workstation must have console operator privileges
  4566. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  4567.  
  4568. Format of request buffer:
  4569. Offset    Size    Description
  4570.  00h    WORD    0001h (length of following data)
  4571.  02h    BYTE    D4h (subfunction "Get File System Statistics")
  4572.  
  4573. Format of reply buffer:
  4574. Offset    Size    Description
  4575.  00h    WORD    (call) 0028h (size of following results buffer)
  4576.  02h    DWORD    clock ticks since system started
  4577.  06h    WORD    maximum open files set by configuration
  4578.  08h    WORD    maximum files open concurrently
  4579.  0Ah    WORD    current number of open files
  4580.  0Ch    DWORD    total files opened
  4581.  10h    DWORD    total file read requests
  4582.  14h    DWORD    total file write requests
  4583.  18h    WORD    current changed FATs
  4584.  1Ah    WORD    total changed FATs
  4585.  1Ch    WORD    number of FAT write errors
  4586.  1Eh    WORD    number of fatal FAT write errors
  4587.  20h    WORD    number of FAT scan errors
  4588.  22h    WORD    maximum concurrently-indexed files
  4589.  24h    WORD    current number of indexed files
  4590.  26h    WORD    number of attached indexed files
  4591.  28h    WORD    number of indexed files available
  4592. Note:    all fields except the first are big-endian
  4593. ----------21E3--SFD5-------------------------
  4594. INT 21 - Novell NetWare - FILE SERVER - GET TRANSACTION TRACKING STATISTICS
  4595.     AH = E3h subfn D5h
  4596.     DS:SI -> request buffer (see below)
  4597.     ES:DI -> reply buffer (see below)
  4598. Return: AL = status
  4599.         00h successful
  4600.         C6h no console rights
  4601. Notes:    this function is supported by Advanced NetWare 2.1+
  4602.     the calling workstation must have console operator privileges
  4603. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=CFh,AH=E3h/SF=D0h,AH=E3h/SF=E8h
  4604.  
  4605. Format of request buffer:
  4606. Offset    Size    Description
  4607.  00h    WORD    0001h (length of following data)
  4608.  02h    BYTE    D5h (subfunction "TTS Get Statistics")
  4609.  
  4610. Format of reply buffer:
  4611. Offset    Size    Description
  4612.  00h    WORD    (call) length of following results buffer (max 1BCh)
  4613.  02h    DWORD    clock ticks since system started (big-endian)
  4614.  06h    BYTE    transaction tracking supported if nonzero
  4615.         (all following fields are invalid if zero)
  4616.  07h    BYTE    transaction tracking enabled
  4617.  08h    WORD    transaction volume number (big-endian)
  4618.  0Ah    WORD    maximum simultaneous transactions configured (big-endian)
  4619.  0Ch    WORD    maximum simultaneous transactions since startup (big-endian)
  4620.  0Eh    WORD    current transactions in progress (big-endian)
  4621.  10h    DWORD    total transactions performed (big-endian)
  4622.  14h    DWORD    total write transactions (big-endian)
  4623.  18h    DWORD    total transactions backed out (big-endian)
  4624.  1Ch    WORD    number of unfilled backout requests (big-endian)
  4625.  1Eh    WORD    disk blocks used for transaction tracking (big-endian)
  4626.  20h    DWORD    blocks allocated for tracked-file FATs (big-endian)
  4627.  24h    DWORD    number of file size changes during a transaction (big-endian)
  4628.  28h    DWORD    number of file truncations during a transaction (big-endian)
  4629.  2Ch    BYTE    number of records following
  4630.  2Dh    Active Transaction Records [array]
  4631.     Offset    Size    Description
  4632.      00h    BYTE    logical connection number
  4633.      01h    BYTE    task number
  4634. ----------21E3--SFD6-------------------------
  4635. INT 21 - Novell NetWare - FILE SERVER - GET DISK CACHE STATISTICS
  4636.     AH = E3h subfn D6h
  4637.     DS:SI -> request buffer (see below)
  4638.     ES:DI -> reply buffer (see below)
  4639. Return: AL = status
  4640.         00h successful
  4641.         C6h no console rights
  4642. Notes:    this function is supported by Advanced NetWare 2.1+
  4643.     the calling workstation must have console operator privileges
  4644. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D5h,AH=E3h/SF=D8h,AH=E3h/SF=D9h,AH=E3h/SF=E6h
  4645.  
  4646. Format of request buffer:
  4647. Offset    Size    Description
  4648.  00h    WORD    0001h (length of following data)
  4649.  02h    BYTE    D6h (subfunction "Get Disk Cache Statistics")
  4650.  
  4651. Format of reply buffer:
  4652. Offset    Size    Description
  4653.  00h    WORD    (call) 004Eh (length of following results buffer)
  4654.  02h    DWORD    clock ticks since system started (big-endian)
  4655.  06h    WORD    number of cache buffers (big-endian)
  4656.  08h    WORD    size of cache buffer in bytes (big-endian)
  4657.  0Ah    WORD    number of dirty cache buffers (big-endian)
  4658.  0Ch    DWORD    number of cache read requests (big-endian)
  4659.  10h    DWORD    number of cache write requests (big-endian)
  4660.  14h    DWORD    number of cache hits (big-endian)
  4661.  18h    DWORD    number of cache misses (big-endian)
  4662.  1Ch    DWORD    number of physical read requests (big-endian)
  4663.  20h    DWORD    number of physical write requests (big-endian)
  4664.  24h    WORD    number of physical read errors (big-endian)
  4665.  26h    WORD    number of physical write errors (big-endian)
  4666.  28h    DWORD    cache get requests (big-endian)
  4667.  2Ch    DWORD    cache full write requests (big-endian)
  4668.  30h    DWORD    cache partial write requests (big-endian)
  4669.  34h    DWORD    background dirty writes (big-endian)
  4670.  38h    DWORD    background aged writes (big-endian)
  4671.  3Ch    DWORD    total cache writes (big-endian)
  4672.  40h    DWORD    number of cache allocations (big-endian)
  4673.  44h    WORD    thrashing count (big-endian)
  4674.  46h    WORD    number of times LRU block was dirty (big-endian)
  4675.  48h    WORD    number of reads on cache blocks not yet filled by writes
  4676.         (big-endian)
  4677.  4Ah    WORD    number of times a fragmented write occurred (big-endian)
  4678.  4Ch    WORD    number of cache hits on unavailable block (big-endian)
  4679.  4Eh    WORD    number of times a cache block was scrapped (big-endian)
  4680. ----------21E3--SFD7-------------------------
  4681. INT 21 - Novell NetWare - FILE SERVER - GET DRIVE MAPPING TABLE
  4682.     AH = E3h subfn D7h
  4683.     DS:SI -> request buffer (see below)
  4684.     ES:DI -> reply buffer (see below)
  4685. Return: AL = status
  4686.         00h successful
  4687.         C6h no console rights
  4688. Notes:    this function is supported by Advanced NetWare 2.1+
  4689.     the calling workstation must have console operator privileges
  4690. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D6h,AH=E3h/SF=D9h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  4691.  
  4692. Format of request buffer:
  4693. Offset    Size    Description
  4694.  00h    WORD    0001h (length of following data)
  4695.  02h    BYTE    D7h (subfunction "Get Drive Mapping Table")
  4696.  
  4697. Format of reply buffer:
  4698. Offset    Size    Description
  4699.  00h    WORD    (call) 00ECh (length of following results buffer)
  4700.  02h    DWORD    clock tick elapsed since system started (big-endian)
  4701.  06h    BYTE    fault tolerance (SFT) level
  4702.  07h    BYTE    number of logical drives attached to server
  4703.  08h    BYTE    number of physical drives attached to server
  4704.  09h  5 BYTEs    disk channel types (00h none, 01h XT, 02h AT, 03h SCSI, 
  4705.         04h disk coprocessor drive, 32h-FFh value-added drive types)
  4706.  0Eh    WORD    number of outstanding controller commands (big-endian)
  4707.  10h 32 BYTEs    drive mapping table (FFh = no such drive)
  4708.  30h 32 BYTEs    drive mirror table (secondary physical drive, FFh = none)
  4709.  50h 32 BYTEs    dead mirror table (last drive mapped to, FFh if never mirrored)
  4710.  70h    BYTE    physical drive being remirrored (FFh = none)
  4711.  71h    BYTE    reserved
  4712.  72h    DWORD    remirrored block (big-endian)
  4713.  76h 60 BYTEs    SFT error table (internal error counters)
  4714. ----------21E3--SFD8-------------------------
  4715. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL DISK STATISTICS
  4716.     AH = E3h subfn D8h
  4717.     DS:SI -> request buffer (see below)
  4718.     ES:DI -> reply buffer (see below)
  4719. Return: AL = status
  4720.         00h successful
  4721.         C6h no console rights
  4722. Notes:    this function is supported by Advanced NetWare 2.1+
  4723.     the calling workstation must have console operator privileges
  4724. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D9h,AH=E3h/SF=E9h
  4725.  
  4726. Format of request buffer:
  4727. Offset    Size    Description
  4728.  00h    WORD    0002h (length of following data)
  4729.  02h    BYTE    D8h (subfunction "Get Physical Disk Statistics")
  4730.  03h    BYTE    physical disk number
  4731.  
  4732. Format of reply buffer:
  4733. Offset    Size    Description
  4734.  00h    WORD    (call) 005Dh (size of following results record)
  4735.  02h    DWORD    clock ticks since system started (big-endian)
  4736.  06h    BYTE    physical disk channel
  4737.  07h    BYTE    flag: drive removable if nonzero
  4738.  08h    BYTE    physical drive type
  4739.  09h    BYTE    drive number within controller
  4740.  0Ah    BYTE    controller number
  4741.  0Bh    BYTE    controller type
  4742.  0Ch    DWORD    size of drive in 4K disk blocks (big-endian)
  4743.  10h    WORD    number of cylinders on drive (big-endian)
  4744.  12h    BYTE    number of heads
  4745.  13h    BYTE    number of sectors per track
  4746.  14h 64 BYTEs    ASCIZ drive make and model
  4747.  54h    WORD    number of I/O errors (big-endian)
  4748.  56h    DWORD    start of Hot Fix table (big-endian)
  4749.  5Ah    WORD    size of Hot Fix table (big-endian)
  4750.  5Ch    WORD    number of Hot Fix blocks available (big-endian)
  4751.  5Eh    BYTE    flag: Hot Fix disabled if nonzero
  4752. ----------21E3--SFD9-------------------------
  4753. INT 21 - Novell NetWare - FILE SERVER - GET DISK CHANNEL STATISTICS
  4754.     AH = E3h subfn D9h
  4755.     DS:SI -> request buffer (see below)
  4756.     ES:DI -> reply buffer (see below)
  4757. Return: AL = status
  4758.         00h successful
  4759.         C6h no console rights
  4760. Notes:    this function is supported by Advanced NetWare 2.1+
  4761.     the calling workstation must have console operator privileges
  4762. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=D8h,AH=E3h/SF=E6h,AH=E3h/SF=E9h
  4763.  
  4764. Format of request buffer:
  4765. Offset    Size    Description
  4766.  00h    WORD    0002h (length of following data)
  4767.  02h    BYTE    D9h (subfunction "Get Disk Channel Statistics")
  4768.  03h    BYTE    channel number
  4769.  
  4770. Format of reply buffer:
  4771. Offset    Size    Description
  4772.  00h    WORD    (call) 00A8h (size of following results record)
  4773.  02h    DWORD    clock ticks since system started (big-endian)
  4774.  06h    WORD    channel run state (big-endian)
  4775.         00h running
  4776.         01h being stopped
  4777.         02h stopped
  4778.         03h nonfunctional
  4779.  08h    WORD    channel synchronization state (big-endian)
  4780.         00h not in use
  4781.         02h used by NetWare, no other requests
  4782.         04h used by NetWare, other requests
  4783.         06h in use, not needed by NetWare
  4784.         08h in use, needed by NetWare
  4785.         0Ah channel released, NetWare should use it
  4786.  0Ah    BYTE    driver type
  4787.  0Bh    BYTE    major version of driver
  4788.  0Ch    BYTE    minor version of driver
  4789.  0Dh 65 BYTEs    ASCIZ driver description
  4790.  4Eh    WORD    first I/O address used (big-endian)
  4791.  50h    WORD    length of first I/O address (big-endian)
  4792.  52h    WORD    second I/O address used (big-endian)
  4793.  54h    WORD    length of second I/O address (big-endian)
  4794.  56h  3 BYTEs    first shared memory address
  4795.  59h  2 BYTEs    length of first shared memory address
  4796.  5Bh  3 BYTEs    second shared memory address
  4797.  5Eh  2 BYTEs    length of second shared memory address
  4798.  60h    BYTE    first interrupt number in-use flag
  4799.  61h    BYTE    first interrupt number used
  4800.  62h    BYTE    second interrupt number in-use flag
  4801.  63h    BYTE    second interrupt number used
  4802.  64h    BYTE    first DMA channel in-use flag
  4803.  65h    BYTE    first DMA channel used
  4804.  66h    BYTE    second DMA channel in-use flag
  4805.  67h    BYTE    second DMA channel used
  4806.  68h    BYTE    flags
  4807.  69h    BYTE    reserved
  4808.  6Ah 80 BYTEs    ASCIZ configuration description
  4809. ----------21E3--SFDA-------------------------
  4810. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S TASK INFORMATION
  4811.     AH = E3h subfn DAh
  4812.     DS:SI -> request buffer (see below)
  4813.     ES:DI -> reply buffer (see below)
  4814. Return: AL = status
  4815.         00h successful
  4816.         C6h no console rights
  4817. Notes:    this function is supported by Advanced NetWare 2.1+
  4818.     the calling workstation must have console operator privileges
  4819. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h,AH=E3h/SF=E5h
  4820.  
  4821. Format of request buffer:
  4822. Offset    Size    Description
  4823.  00h    WORD    0003h (length of following data)
  4824.  02h    BYTE    DAh (subfunction "Get Connection's Task Information")
  4825.  03h    WORD    logical connection number (big-endian)
  4826.  
  4827. Format of reply buffer:
  4828. Offset    Size    Description
  4829.  00h    WORD    (call) size of following results record (max 1FEh)
  4830.  02h    BYTE    lock status of connection
  4831.         00h no locks
  4832.         01h waiting on physical record lock
  4833.         02h waiting on file lock
  4834.         03h waiting on logical record lock
  4835.         04h waiting on semaphore
  4836.  03h    var    Lock Status Information (see below)
  4837.  N    BYTE    number of records following
  4838.  N+1    Active Task Information Records [array]
  4839.     Offset    Size    Description
  4840.      00h    BYTE    task number (01h-FFh)
  4841.      01h    BYTE    task state
  4842.             01h in TTS explicit transaction
  4843.             02h in TTS implicit transaction
  4844.             04h shared fileset lock active
  4845.  
  4846. Format of Lock Status Information:
  4847. Offset    Size    Description
  4848. ---lock status 00h---
  4849.  no fields
  4850. ---lock status 01h---
  4851.  00h    BYTE    number of waiting task
  4852.  01h    DWORD    start address
  4853.  05h    DWORD    end address
  4854.  09h    BYTE    volume number
  4855.  0Ah    WORD    directory entry number
  4856.  0Ch 14 BYTEs    ASCIZ filename
  4857. ---lock status 02h---
  4858.  00h    BYTE    number of waiting task
  4859.  01h    BYTE    volume number
  4860.  02h    WORD    directory entry number
  4861.  04h 14 BYTEs    ASCIZ filename
  4862. ---lock status 03h---
  4863.  00h    BYTE    number of waiting task
  4864.  01h    BYTE    length of record name
  4865.  02h  N BYTEs    ASCIZ record name
  4866. ---lock status 04h---
  4867.  00h    BYTE    number of waiting task
  4868.  01h    BYTE    length of semaphore's name
  4869.  02h  N BYTEs    ASCIZ semaphore name
  4870. ----------21E3--SFDB-------------------------
  4871. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S OPEN FILES
  4872.     AH = E3h subfn DBh
  4873.     DS:SI -> request buffer (see below)
  4874.     ES:DI -> reply buffer (see below)
  4875. Return: AL = status
  4876.         00h successful
  4877.         C6h no console rights
  4878. Notes:    this function is supported by Advanced NetWare 2.1+
  4879.     the calling workstation must have console operator privileges
  4880. SeeAlso: AH=E2h/SF=1Ah,AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DCh,AH=E3h/SF=DFh
  4881. SeeAlso: AH=E3h/SF=E1h
  4882.  
  4883. Format of request buffer:
  4884. Offset    Size    Description
  4885.  00h    WORD    0005h (length of following data)
  4886.  02h    BYTE    DBh (subfunction "Get Connection's Open Files")
  4887.  03h    WORD    logical connection number (big-endian)
  4888.  05h    WORD    last record seen (big-endian)
  4889.         0000h on first call
  4890.  
  4891. Format of reply buffer:
  4892. Offset    Size    Description
  4893.  00h    WORD    (call) size of following results record (max 1FEh)
  4894.  02h    WORD    next request record (place in "last record" field on next call)
  4895.         0000h if no more records
  4896.  04h    BYTE    number of records following
  4897.  05h    File Information Records [array]
  4898.     Offset    Size    Description
  4899.      00h    BYTE    task number
  4900.      01h    BYTE    lock flags (see below)
  4901.      02h    BYTE    access flags (see below)
  4902.      03h    BYTE    lock type
  4903.             00h no lock
  4904.             FEh file lock
  4905.             FFh locked by Begin Share File Set
  4906.      04h    BYTE    volume number (00h-1Fh)
  4907.      05h    WORD    directory entry (big-endian)
  4908.      07h 14 BYTEs    ASCIZ filename
  4909.  
  4910. Bitmask of lock flags:
  4911.  bit 0: file is locked
  4912.  bit 1: file opened Shareable
  4913.  bit 2: logged
  4914.  bit 3: file opened Normal
  4915.  bit 6: TTS holding lock
  4916.  bit 7: Transaction Flag set on file
  4917.  
  4918. Bitmask of access flags:
  4919.  bit 0: file open for reading by calling station
  4920.  bit 1: file open for writing by calling station
  4921.  bit 2: deny reads by other stations
  4922.  bit 3: deny writes by other stations
  4923.  bit 4: file detached
  4924.  bit 5: TTS Holding Detach
  4925.  bit 6: TTS Holding Open
  4926. ----------21E3--SFDC-------------------------
  4927. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTIONS USING A FILE
  4928.     AH = E3h subfn DCh
  4929.     DS:SI -> request buffer (see below)
  4930.     ES:DI -> reply buffer (see below)
  4931. Return: AL = status
  4932.         00h successful
  4933.         C6h no console rights
  4934. Notes:    this function is supported by Advanced NetWare 2.1+
  4935.     the calling workstation must have console operator privileges
  4936. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E1h
  4937.  
  4938. Format of request buffer:
  4939. Offset    Size    Description
  4940.  00h    WORD    length of following data (max 104h)
  4941.  02h    BYTE    DCh (subfunction "Get Connections Using a File")
  4942.  03h    WORD    last record (big-endian)
  4943.         0000h on first call
  4944.  05h    BYTE    directory handle
  4945.  06h    BYTE    length of file path
  4946.  07h  N BYTEs    ASCIZ file path
  4947.  
  4948. Format of reply buffer:
  4949. Offset    Size    Description
  4950.  00h    WORD    (call) size of following results record (max 1FEh)
  4951.  02h    WORD    count of tasks which have opened or logged file (big-endian)
  4952.  04h    WORD    count of tasks which have opened file (big-endian)
  4953.  06h    WORD    count of opens for reading (big-endian)
  4954.  08h    WORD    count of opens for writing (big-endian)
  4955.  0Ah    WORD    deny read count (big-endian)
  4956.  0Ch    WORD    deny write count (big-endian)
  4957.  0Eh    WORD    next request record (place in "last record" field on next call)
  4958.         0000h if no more records
  4959.  10h    BYTE    locked flag
  4960.         00h not locked exclusively
  4961.         else locked exclusively
  4962.  11h    BYTE    number of records following
  4963.  12h    File Usage Information Records [array]
  4964.     Offset    Size    Description
  4965.      00h    WORD    logical connection number (big-endian)
  4966.      02h    BYTE    task number
  4967.      03h    BYTE    lock flags (see AH=E3h/SF=DBh)
  4968.      04h    BYTE    access flags (see AH=E3h/SF=DBh)
  4969.      05h    BYTE    lock type
  4970.             00h no lock
  4971.             FEh file lock
  4972.             FFh locked by Begin Share File Set
  4973. ----------21E3--SFDD-------------------------
  4974. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY CONN&FILE
  4975.     AH = E3h subfn DDh
  4976.     DS:SI -> request buffer (see below)
  4977.     ES:DI -> reply buffer (see below)
  4978. Return: AL = status
  4979.         00h successful
  4980.         C6h no console rights
  4981.         FFh file not open
  4982. Notes:    this function is supported by Advanced NetWare 2.1+
  4983.     the calling workstation must have console operator privileges
  4984. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DEh,AH=E3h/SF=DFh
  4985.  
  4986. Format of request buffer:
  4987. Offset    Size    Description
  4988.  00h    WORD    0016h (length of following data)
  4989.  02h    BYTE    DDh (subfunction "Get Physical Record Locks by Connection and
  4990.             File")
  4991.  03h    WORD    logical connection number (big-endian)
  4992.  05h    WORD    last record seen (big-endian)
  4993.         0000h on first call
  4994.  07h    BYTE    volume number (00h-1Fh)
  4995.  08h    WORD    directory handle (big-endian)
  4996.  0Ah 14 BYTEs    ASCIZ filename
  4997.  
  4998. Format of reply buffer:
  4999. Offset    Size    Description
  5000.  00h    WORD    (call) size of following results record (max 1FEh)
  5001.  02h    WORD    next request record (place in "last record" on next call)
  5002.         0000h if no more records
  5003.  04h    BYTE    number of physical record locks
  5004.  05h    BYTE    number of records following
  5005.  06h    Physical Record Lock Info [array]
  5006.     Offset    Size    Description
  5007.      00h    BYTE    task number
  5008.      01h    BYTE    lock status (see below)
  5009.      02h    DWORD    starting offset of record in file (big-endian)
  5010.      06h    DWORD    ending offset of record in file (big-endian)
  5011.  
  5012. Bitmask of lock status:
  5013.  bit 0: exclusive lock
  5014.  bit 1: shareable lock
  5015.  bit 2: logged
  5016.  bit 6: lock held by TTS
  5017. ----------21E3--SFDE-------------------------
  5018. INT 21 - Novell NetWare - FILE SERVER - GET PHYSICAL RECORD LOCKS BY FILE
  5019.     AH = E3h subfn DEh
  5020.     DS:SI -> request buffer (see below)
  5021.     ES:DI -> reply buffer (see below)
  5022. Return: AL = status
  5023.         00h successful
  5024.         C6h no console rights
  5025.         FFh file not open
  5026. Notes:    this function is supported by Advanced NetWare 2.1+
  5027.     the calling workstation must have console operator privileges
  5028. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh
  5029.  
  5030. Format of request buffer:
  5031. Offset    Size    Description
  5032.  00h    WORD    length of following data (max 104h)
  5033.  02h    BYTE    DEh (subfunction "Get Physical Record Locks by File")
  5034.  03h    WORD    last record seen (big-endian)
  5035.         0000h on first call
  5036.  05h    BYTE    directory handle
  5037.  06h    BYTE    length of filename
  5038.  07h  N BYTEs    ASCIZ filename
  5039.  
  5040. Format of reply buffer:
  5041. Offset    Size    Description
  5042.  00h    WORD    (call) size of following results record (max 1FEh)
  5043.  02h    WORD    next request record (place in "last record" on next call)
  5044.         0000h if no more records
  5045.  04h    BYTE    number of physical record locks
  5046.  05h    BYTE    number of records following
  5047.  06h    Physical Record Lock Info [array]
  5048.     Offset    Size    Description
  5049.      00h    WORD    number of tasks logging record (big-endian)
  5050.      02h    WORD    number of tasks with shareable lock (big-endian)
  5051.      04h    DWORD    starting offset of record in file (big-endian)
  5052.      08h    DWORD    ending offset of record in file (big-endian)
  5053.      0Ch    WORD    logical connection number (big-endian)
  5054.      0Eh    BYTE    task number
  5055.      0Fh    BYTE    lock type
  5056.             00h none
  5057.             FEh file lock
  5058.             FFh Begin Share File Set lock
  5059. ----------21E3--SFDF-------------------------
  5060. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORDS BY CONNECTION
  5061.     AH = E3h subfn DFh
  5062.     DS:SI -> request buffer (see below)
  5063.     ES:DI -> reply buffer (see below)
  5064. Return: AL = status
  5065.         00h successful
  5066.         C6h no console rights
  5067. Notes:    this function is supported by Advanced NetWare 2.1+
  5068.     the calling workstation must have console operator privileges
  5069. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=E0h,AH=E3h/SF=E2h
  5070.  
  5071. Format of request buffer:
  5072. Offset    Size    Description
  5073.  00h    WORD    0005h (length of following data)
  5074.  02h    BYTE    DFh (subfunction "Get Logical Records By Connection")
  5075.  03h    WORD    logical connection number (big-endian)
  5076.  05h    WORD    last record seen (big-endian)
  5077.         0000h on first call
  5078.  
  5079. Format of reply buffer:
  5080. Offset    Size    Description
  5081.  00h    WORD    (call) size of following results record (max 1FEh)
  5082.  02h    WORD    next request record (place in "last record" field on next call)
  5083.         0000h if no more locked records
  5084.  09h    BYTE    number of records following
  5085.  0Ah    Logical Lock Information Records [list]
  5086.     Offset    Size    Description
  5087.      00h    BYTE    task number
  5088.      01h    BYTE    lock status (see AH=E3h/SF=DDh)
  5089.      02h    BYTE    length of logical lock's name
  5090.      03h  N BYTEs    logical lock's name
  5091. ----------21E3--SFE0-------------------------
  5092. INT 21 - Novell NetWare - FILE SERVER - GET LOGICAL RECORD INFORMATION
  5093.     AH = E3h subfn E0h
  5094.     DS:SI -> request buffer (see below)
  5095.     ES:DI -> reply buffer (see below)
  5096. Return: AL = status
  5097.         00h successful
  5098.         C6h no console rights
  5099. Notes:    this function is supported by Advanced NetWare 2.1+
  5100.     the calling workstation must have console operator privileges
  5101. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DDh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  5102.  
  5103. Format of request buffer:
  5104. Offset    Size    Description
  5105.  00h    WORD    length of following data (max 67h)
  5106.  02h    BYTE    E0h (subfunction "Get Logical Record Information")
  5107.  03h    WORD    last record seen (big-endian)
  5108.         0000h on first call
  5109.  05h    BYTE    length of logical record's name
  5110.  06h  N BYTEs    logical record's name
  5111.  
  5112. Format of reply buffer:
  5113. Offset    Size    Description
  5114.  00h    WORD    (call) size of following results record (max 200h)
  5115.  02h    WORD    number of logical connections logging the record (big-endian)
  5116.  04h    WORD    number of logical connections with shareable lock (big-endian)
  5117.  06h    WORD    next request record (place in "last record" field on next call)
  5118.  08h    BYTE    locked exclusively if nonzero
  5119.  09h    BYTE    number of records following
  5120.  0Ah    Task Information Records [array]
  5121.     Offset    Size    Description
  5122.      00h    WORD    logical connection number (big-endian)
  5123.      02h    BYTE    task number
  5124.      03h    BYTE    lock status (see AH=E3h/SF=DFh)
  5125. ----------21E3--SFE1-------------------------
  5126. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S SEMAPHORES
  5127.     AH = E3h subfn E1h
  5128.     DS:SI -> request buffer (see below)
  5129.     ES:DI -> reply buffer (see below)
  5130. Return: AL = status
  5131.         00h successful
  5132.         C6h no console rights
  5133. Notes:    this function is supported by Advanced NetWare 2.1+
  5134.     the calling workstation must have console operator privileges
  5135. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DBh,AH=E3h/SF=DFh,AH=E3h/SF=E2h
  5136.  
  5137. Format of request buffer:
  5138. Offset    Size    Description
  5139.  00h    WORD    0005h (length of following data)
  5140.  02h    BYTE    E1h (subfunction "Get Connection's Semaphores")
  5141.  03h    WORD    logical connection number (big-endian)
  5142.  05h    WORD    last record seen (big-endian)
  5143.         0000h on first call
  5144.  
  5145. Format of reply buffer:
  5146. Offset    Size    Description
  5147.  00h    WORD    (call) size of following results record (max 1FEh)
  5148.  02h    WORD    next request record (place in "last record" field on next call)
  5149.  04h    BYTE    number of records following
  5150.  05h    Semaphore Information Records [array]
  5151.     Offset    Size    Description
  5152.      00h    WORD    open count (big-endian)
  5153.      02h    BYTE    semaphore value (-128 to 127)
  5154.      03h    BYTE    task number
  5155.      04h    BYTE    lock type
  5156.      05h    BYTE    length of semaphore's name
  5157.      06h  N BYTEs    semaphore's name
  5158.          14 BYTEs    filename
  5159. ----------21E3--SFE2-------------------------
  5160. INT 21 - Novell NetWare - FILE SERVER - GET SEMAPHORE INFORMATION
  5161.     AH = E3h subfn E2h
  5162.     DS:SI -> request buffer (see below)
  5163.     ES:DI -> reply buffer (see below)
  5164. Return: AL = status
  5165.         00h successful
  5166.         C6h no console rights
  5167. Notes:    this function is supported by Advanced NetWare 2.1+
  5168.     the calling workstation must have console operator privileges
  5169. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E1h
  5170.  
  5171. Format of request buffer:
  5172. Offset    Size    Description
  5173.  00h    WORD    length of following data (max 83h)
  5174.  02h    BYTE    E2h (subfunction "Get LAN Driver's Configuration Information")
  5175.  03h    WORD    last record seen (big-endian)
  5176.         0000h on first call
  5177.  05h    BYTE    length of semaphore's name (01h-7Fh)
  5178.  06h  N BYTEs    semaphore's name
  5179.  
  5180. Format of reply buffer:
  5181. Offset    Size    Description
  5182.  00h    WORD    (call) size of following results buffer (max 1FEh)
  5183.  02h    WORD    next request record (place in "last record" on next call)
  5184.         0000h if no more
  5185.  04h    WORD    number of logical connections opening semaphore (big-endian)
  5186.  06h    BYTE    semaphore value (-127 to 128)
  5187.  07h    BYTE    number of records following
  5188.  08h    Semaphore Information [array]
  5189.     Offset    Size    Description
  5190.      00h    WORD    logical connection number (big-endian)
  5191.      02h    BYTE    task number
  5192. ----------21E3--SFE3-------------------------
  5193. INT 21 - Novell NetWare - FILE SERVER - GET LAN DRIVER'S CONFIGURATION INFO
  5194.     AH = E3h subfn E3h
  5195.     DS:SI -> request buffer (see below)
  5196.     ES:DI -> reply buffer (see below)
  5197. Return: AL = status
  5198.         00h successful
  5199.         C6h no console rights
  5200. Notes:    this function is supported by Advanced NetWare 2.1+
  5201.     the calling workstation must have console operator privileges
  5202. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E7h,AH=E3h/SF=E8h
  5203.  
  5204. Format of request buffer:
  5205. Offset    Size    Description
  5206.  00h    WORD    0002h (length of following data)
  5207.  02h    BYTE    E3h (subfunction "Get LAN Driver's Configuration Information")
  5208.  03h    BYTE    LAN board (00h-03h)
  5209.  
  5210. Format of reply buffer:
  5211. Offset    Size    Description
  5212.  00h    WORD    (call) 00ACh (size of following results buffer)
  5213.  02h  4 BYTEs    network number
  5214.  06h  6 BYTEs    node number
  5215.  0Ch    BYTE    LAN driver installed (00h no--remaining fields invalid)
  5216.  0Dh    BYTE    option number selected at configuration time
  5217.  0Eh 160 BYTEs    configuration text
  5218.         ASCIZ hardware type
  5219.         ASCIZ hardware settings
  5220. ----------21E3--SFE5-------------------------
  5221. INT 21 - Novell NetWare - FILE SERVER - GET CONNECTION'S USAGE STATISTICS
  5222.     AH = E3h subfn E5h
  5223.     DS:SI -> request buffer (see below)
  5224.     ES:DI -> reply buffer (see below)
  5225. Return: AL = status
  5226.         00h successful
  5227.         C6h no console rights
  5228. Notes:    this function is supported by Advanced NetWare 2.1+
  5229.     one must have console operator privileges to get statistics for logical
  5230.       connections other than one's own
  5231. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=DAh,AH=E3h/SF=DBh,AH=E3h/SF=E1h
  5232.  
  5233. Format of request buffer:
  5234. Offset    Size    Description
  5235.  00h    WORD    0003h (length of following data)
  5236.  02h    BYTE    E5h (subfunction "Get Connection's Usage Statistics")
  5237.  03h    WORD    logical connection number (big-endian)
  5238.  
  5239. Format of reply buffer:
  5240. Offset    Size    Description
  5241.  00h    WORD    (call) 0014h (size of following results record)
  5242.  02h    DWORD    clock ticks since server started (big-endian)
  5243.  06h  6 BYTEs    bytes read
  5244.  0Ch  6 BYTEs    bytes written
  5245.  12h    DWORD    total request packets (big-endian)
  5246. ----------21E3--SFE6-------------------------
  5247. INT 21 - Novell NetWare - FILE SERVER - GET BINDERY OBJECT DISK SPACE LEFT
  5248.     AH = E3h subfn E6h
  5249.     DS:SI -> request buffer (see below)
  5250.     ES:DI -> reply buffer (see below)
  5251. Return: AL = status
  5252.         00h successful
  5253.         C6h no console rights
  5254. Notes:    this function is supported by Advanced NetWare 2.1+
  5255.     one must have console operator privileges to get the free space for
  5256.       other bindery objects
  5257. SeeAlso: AH=E3h/SF=C8h,AH=E3h/SF=E8h,AH=E3h/SF=E9h
  5258.  
  5259. Format of request buffer:
  5260. Offset    Size    Description
  5261.  00h    WORD    0005h (length of following data)
  5262.  02h    BYTE    E6h (subfunction "Get Bindery Object Disk Space Left")
  5263.  03h    DWORD    object ID (big-endian)
  5264.  
  5265. Format of reply buffer:
  5266. Offset    Size    Description
  5267.  00h    WORD    (call) 000Fh (size of following results buffer)
  5268.  02h    DWORD    clock ticks elapsed since server started (big-endian)
  5269.  06h    DWORD    object ID (big-endian)
  5270.  0Ah    DWORD    4K disk blocks available to user (big-endian)
  5271.  0Eh    BYTE    restrictions
  5272.         00h enforced
  5273.         FFh not enforced
  5274. ----------21E3--SFE7-------------------------
  5275. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER LAN I/O STATISTICS
  5276.     AH = E3h subfn E7h
  5277.     DS:SI -> request buffer (see below)
  5278.     ES:DI -> reply buffer (see below)
  5279. Return: AL = status
  5280.         00h successful
  5281. Note:    this function is supported by Advanced NetWare 2.1+
  5282. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=D3h,AH=E3h/SF=E8h,AH=E7h
  5283.  
  5284. Format of request buffer:
  5285. Offset    Size    Description
  5286.  00h    WORD    0001h (length of following data)
  5287.  02h    BYTE    E7h (subfunction "Get File Server LAN I/O Statistics")
  5288.  
  5289. Format of reply buffer:
  5290. Offset    Size    Description
  5291.  00h    WORD    (call) 0042h (size of following results buffer)
  5292.  02h    DWORD    clock ticks since system started
  5293.  06h    WORD    total routing buffers
  5294.  08h    WORD    maximum routing buffers used
  5295.  0Ah    WORD    current routing buffers used
  5296.  0Ch    DWORD    total file service packets
  5297.  10h    WORD    number of file service packets buffered
  5298.  12h    WORD    number of invalid connection packets
  5299.  14h    WORD    packets with bad logical connection numbers
  5300.  16h    WORD    number of packets received during processing
  5301.  18h    WORD    number of requests reprocessed
  5302.  1Ah    WORD    packets with bad sequence numbers
  5303.  1Ch    WORD    number of duplicate replies sent
  5304.  1Eh    WORD    number of acknowledgements sent
  5305.  20h    WORD    number of packets with bad request types
  5306.  22h    WORD    requests to attach to ws for which a request is being processed
  5307.  24h    WORD    requests to attach from ws which is already attaching
  5308.  26h    WORD    number of forged detach requests
  5309.  28h    WORD    detach requests with bad connection number
  5310.  2Ah    WORD    requests to detach from ws for which requests pending
  5311.  2Ch    WORD    number of cancelled replies
  5312.  2Eh    WORD    packets discarded due to excessive hop count
  5313.  30h    WORD    packets discarded due to unknown net
  5314.  32h    WORD    incoming packets discarded for lack of DGroup buffer
  5315.  34h    WORD    outgoing packets discarded due to lack of buffer
  5316.  36h    WORD    received packets destined for B,C, or D side drivers
  5317.  38h    DWORD    number of NetBIOS packets propagated through net
  5318.  3Ch    DWORD    total number of non-file-service packets
  5319.  40h    DWORD    total number of routed packets
  5320. Note:    all fields except the first are big-endian
  5321. ----------21E3--SFE8-------------------------
  5322. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER MISC INFORMATION
  5323.     AH = E3h subfn E8h
  5324.     DS:SI -> request buffer (see below)
  5325.     ES:DI -> reply buffer (see below)
  5326. Return: AL = status
  5327.         00h successful
  5328.         C6h no console rights
  5329. Note:    this function is supported by Advanced NetWare 2.1+
  5330. SeeAlso: AH=E3h/SF=0Eh,AH=E3h/SF=11h,AH=E3h/SF=CDh,AH=E3h/SF=E7h
  5331.  
  5332. Format of request buffer:
  5333. Offset    Size    Description
  5334.  00h    WORD    0001h (length of following data)
  5335.  02h    BYTE    E8h (subfunction "Get File Server Misc Information")
  5336.  
  5337. Format of reply buffer:
  5338. Offset    Size    Description
  5339.  00h    WORD    (call) size of following results buffer (max 0048h)
  5340.  02h    DWORD    clock ticks since system started
  5341.  06h    BYTE    CPU type
  5342.         00h Motorola 68000
  5343.         01h Intel 8086, 8088, or V20
  5344.         02h Intel 80286+
  5345.  07h    BYTE    reserved
  5346.  08h    BYTE    number of service processes in server
  5347.  09h    BYTE    server utilization in percent
  5348.  0Ah    WORD    maximum bindery objects set by configuration (big-endian)
  5349.         0000h = unlimited
  5350.  0Ch    WORD    maximum number of bindery objects used (big-endian)
  5351.  0Eh    WORD    current number of bindery objects in use (big-endian)
  5352.  10h    WORD    total server memory in K (big-endian)
  5353.  12h    WORD    wasted server memory in K (big-endian)
  5354.         normally 0000h
  5355.  14h    WORD    number of records following (01h-03h)
  5356.  16h    Dynamic Memory Information [array]
  5357.     Offset    Size    Description
  5358.      00h    DWORD    total dynamic space (big-endian)
  5359.      04h    DWORD    maximum dynamic space used (big-endian)
  5360.      08h    DWORD    current dynamic space usage (big-endian)
  5361. ----------21E3--SFE9-------------------------
  5362. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET VOLUME INFORMATION
  5363.     AH = E3h subfn E9h
  5364.     DS:SI -> request buffer (see below)
  5365.     ES:DI -> reply buffer (see below)
  5366. Return: AL = status
  5367.         00h successful
  5368. Notes:    this function is supported by Advanced NetWare 2.1+
  5369. SeeAlso: AH=DAh,AH=E2h/SF=15h
  5370.  
  5371. Format of request buffer:
  5372. Offset    Size    Description
  5373.  00h    WORD    0002h (length of following data)
  5374.  02h    BYTE    E9h (subfunction "Get Volume Information")
  5375.  03h    BYTE    directory handle
  5376.  
  5377. Format of reply buffer:
  5378. Offset    Size    Description
  5379.  00h    WORD    (call) 0028h (length of following results buffer)
  5380.  02h    DWORD    elapsed system time (big-endian)
  5381.  06h    BYTE    volume number
  5382.  07h    BYTE    logical drive number
  5383.  08h    WORD    sectors per block (big-endian)
  5384.  0Ah    WORD    starting block (big-endian)
  5385.  0Ch    WORD    total blocks on volume (big-endian)
  5386.  0Eh    WORD    blocks available on volume (big-endian)
  5387.  10h    WORD    total directory slots (big-endian)
  5388.  12h    WORD    directory slots available (big-endian)
  5389.  14h    WORD    maximum directory entries actually used (big-endian)
  5390.  16h    BYTE    flag: volume hashed if nonzero
  5391.  17h    BYTE    flag: volume cached if nonzero
  5392.  18h    BYTE    flag: volume removable if nonzero
  5393.  19h    BYTE    flag: volume mounted if nonzero
  5394.  1Ah 16 BYTEs    NUL-padded volume name
  5395. ----------21E4-------------------------------
  5396. INT 21 - Novell NetWare 4.0 - SET FILE ATTRIBUTES (FCB)
  5397.     AH = E4h
  5398.     CL = file attributes
  5399.         bit 0: read only
  5400.         1: hidden
  5401.         2: system
  5402.         7: shareable
  5403.     DX:DX -> FCB (see AH=0Fh)
  5404. Return: AL = error code
  5405. SeeAlso: AX=4301h
  5406. ----------21E4-------------------------------
  5407. INT 21 - VIRUS - "Anarkia" - INSTALLATION CHECK
  5408.     AH = E4h
  5409. Return: AH = 04h if resident
  5410. SeeAlso: AH=E1h"VIRUS",AH=E7h"VIRUS"
  5411. ----------21E400-----------------------------
  5412. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  5413.     AX = E400h
  5414. Return: AL = 00h if DoubleDOS not present
  5415.        = 01h if running in visible DoubleDOS partition
  5416.        = 02h if running in the invisible DoubleDOS partition
  5417. SeeAlso: AH=E5h"DoubleDOS",AX=F400h
  5418. ----------21E400-----------------------------
  5419. INT 21 - OS/286, OS/386 - CHAIN TO REAL-MODE HANDLER
  5420.     AX = E400h
  5421.     ???
  5422. Return: ???
  5423. Note:    protected mode only???
  5424. ----------21E402-----------------------------
  5425. INT 21 - OS/286, OS/386 - SET PROTECTED-MODE TASK GATE
  5426.     AX = E402h
  5427.     ???
  5428. Return: ???
  5429. Note:    protected mode only???
  5430. SeeAlso: AX=E403h
  5431. ----------21E403-----------------------------
  5432. INT 21 - OS/286, OS/386 - REMOVE PROTECTED-MODE TASK GATE
  5433.     AX = E403h
  5434.     ???
  5435. Return: ???
  5436. Note:    protected mode only???
  5437. SeeAlso: AX=E402h
  5438. ----------21E5-------------------------------
  5439. INT 21 - Novell NetWare 4.0 - UPDATE FILE SIZE (FCB)
  5440.     AH = E5h
  5441.     DS:DX -> FCB (see AH=0Fh)
  5442. Return: AL = error code
  5443. ----------21E5-------------------------------
  5444. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  5445.     AH = E5h
  5446. Return: AL = 00h no program in other partition
  5447.        = 01h program in other partition is running
  5448.        = 02h program in other partition is suspended
  5449. SeeAlso: AX=E400h"DoubleDOS",AH=F5h"DoubleDOS"
  5450. ----------21E500-----------------------------
  5451. INT 21 - OS/286, OS/386 - HEAP MANAGEMENT STRATEGY
  5452.     AX = E500h
  5453.     ???
  5454. Return: ???
  5455. SeeAlso: AX=E501h
  5456. ----------21E501-----------------------------
  5457. INT 21 - OS/286, OS/386 - FORCE HEAP COMPACTION
  5458.     AX = E501h
  5459.     ???
  5460. Return: ???
  5461. SeeAlso: AX=E500h
  5462. ----------21E6-------------------------------
  5463. INT 21 - Novell NetWare 4.0 - COPY FILE TO FILE (FCB)
  5464.     AH = E6h
  5465.     CX:DX = number of bytes to copy
  5466.     DS:SI -> source FCB
  5467.     ES:DI -> destination FCB
  5468. Return: AL = error code
  5469. ----------21E6-------------------------------
  5470. INT 21 P - OS/286, OS/386 - ISSUE REAL PROCEDURE SIGNAL FROM PROTECTED MODE
  5471.     AH = E6h
  5472.     ???
  5473. Return: ???
  5474. SeeAlso: AH=E2h"OS/286"
  5475. ----------21E7-------------------------------
  5476. INT 21 - Novell NetWare - FILE SERVER - GET FILE SERVER DATE AND TIME
  5477.     AH = E7h
  5478.     DS:DX -> date/time buffer (see below)
  5479. Return: AL = error code
  5480.         00h successful
  5481.         FFh unsuccessful
  5482. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+,
  5483.       Alloy NTNX, and Banyan VINES
  5484. SeeAlso: AH=2Ah,AH=2Ch,AH=E3h/SF=CAh
  5485.  
  5486. Format of date/time buffer:
  5487. Offset    Size    Description
  5488.  00h    BYTE    year (80-99 = 1980-1999, 0-79 = 2000-2079)
  5489.  01h    BYTE    month (1=Jan)
  5490.  02h    BYTE    day
  5491.  03h    BYTE    hours
  5492.  04h    BYTE    minutes
  5493.  05h    BYTE    seconds
  5494.  06h    BYTE    day of week (0 = Sunday) (Novell and NTNX only)
  5495. ----------21E7-------------------------------
  5496. INT 21 - OS/286, OS/386 - CREATE CODE SEGMENT
  5497.     AH = E7h
  5498.     ???
  5499. Return: ???
  5500. SeeAlso: AH=E8h"OS/286",AH=E9h"OS/286",AH=EAh"OS/286"
  5501. ----------21E7-------------------------------
  5502. INT 21 - VIRUS - "Spyer"/"Kiev" - INSTALLATION CHECK
  5503.     AH = E7h
  5504. Return: AH = 78h if resident
  5505. SeeAlso: AH=E4h"VIRUS",AX=EC59h
  5506. ----------21E8-------------------------------
  5507. INT 21 - Novell NetWare 4.6, Alloy NTNX - SET FCB RE-OPEN MODE
  5508.     AH = E8h
  5509.     DL = mode
  5510.         00h no automatic re-open
  5511.         01h auto re-open
  5512. Return: AL = error code
  5513. ----------21E8-------------------------------
  5514. INT 21 - OS/286, OS/386 - SEGMENT CREATION
  5515.     AH = E8h
  5516.     AL = type
  5517.         00h data segment
  5518.         01h data window/alias
  5519.         02h real segment
  5520.         03h real window/alias
  5521.         06h shareable segment
  5522.     ???
  5523. Return: ???
  5524. SeeAlso: AH=E7h"OS/286",AH=E9h"OS/286"
  5525. ----------21E8-------------------------------
  5526. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  5527.     AH = E8h
  5528.     AL = 00h set flags for this program
  5529.        = 01h set flags for other program
  5530.     DX = keyboard control flags (bit set enables, cleared disables
  5531.         bit 0: menu
  5532.         bit 1: exchange
  5533.         bit 2: entire keyboard enable/disable
  5534.         bit 3: Ctrl-C
  5535.         bit 4: Ctrl-PrtSc
  5536.         bit 5: Alt/Erase
  5537.         bit 6: Ctrl-Break
  5538.         bit 7: Ctrl-NumLock
  5539.         bit 8: shift-PrtSc
  5540.         bit 9-13: undefined
  5541.         bit 14: cancel key (clear keyboard buffer)
  5542.         bit 15: suspend key
  5543. Return: DX = previous flags
  5544. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  5545.       disabling any of the other keystrokes disables them completely
  5546.     identical to AH=F8h
  5547. SeeAlso: AH=E1h"DoubleDOS",AH=E2h"DoubleDOS",AH=E3h"DoubleDOS"
  5548. SeeAlso: AH=F8h"DoubleDOS"
  5549. ----------21E9-------------------------------
  5550. INT 21 P - OS/286, OS/386 - CHANGE SEGMENTS
  5551.     AH = E9h
  5552.     AL = function
  5553.         01h change code segment parameters
  5554.         02h    change data segment parameters
  5555.         05h adjust segment limit
  5556.         06h change segment base address
  5557.     ???
  5558. Return: ???
  5559. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=EAh"OS/286",AH=EDh"OS/286"
  5560. SeeAlso: INT 31/AX=0007h,INT 31/AX=0008h
  5561. ----------21E9-------------------------------
  5562. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  5563.     AH = E9h
  5564.     AL = 00h visible program gets 70%, invisible gets 30% (default)
  5565.        = 01h visible program gets 50%, invisible gets 50%
  5566.        = 02h visible program gets 30%, invisible gets 70%
  5567.        = 03h Top program gets 70%, bottom program gets 30%
  5568.        = 04h Top program gets 30%, bottom program gets 70%
  5569.        = 05h get current priority
  5570.         Return: AL = priority setting
  5571. Note:    identical to AH=F9h
  5572. SeeAlso: AH=EAh"DoubleDOS",AH=EBh"DoubleDOS",AH=F9h"DoubleDOS"
  5573. ----------21E900-----------------------------
  5574. INT 21 - Novell NetWare - DIRECTORY SERVICES - GET DIRECTORY HANDLE
  5575.     AX = E900h
  5576.     DX = drive number to check (0 = A:, ..., 25 = Z:, 26 ... 31)
  5577. Return: AL = directory handle
  5578.     AH = flags (drive not mapped if none set)
  5579.         bit 0: permanent handle
  5580.         bit 1: temporary handle
  5581.         bit 7: mapped to local drive
  5582. Note:    this function is supported by NetWare 4.0+, Advanced NetWare 1.0+, and
  5583.       Alloy NTNX
  5584. SeeAlso: AH=E2h/SF=00h,AH=E2h/SF=01h,AH=E2h/SF=0Ah
  5585. ----------21E905-----------------------------
  5586. INT 21 - Novell NetWare shell 3.01 - MAP A FAKE ROOT DIRECTORY
  5587.     AX = E905h
  5588.     BL = drive number (0=default, 1=A:, ...)
  5589.     DS:DX -> ASCIZ path for fake root (may include server name or be empty)
  5590. Return: CF set on error
  5591.         AL = error code (03h,0Fh,11h) (see AH=59h)
  5592.     CF clear if successful
  5593. Note:    if drive is not currently mapped, a drive mapping will be created
  5594. SeeAlso: AX=E906h
  5595. ----------21E906-----------------------------
  5596. INT 21 - Novell NetWare shell 3.01 - DELETE FAKE ROOT DIRECTORY
  5597.     AX = E906h
  5598.     BL = drive number (0=default, 1=A:, ...)
  5599. Note:    drive remains mapped
  5600. SeeAlso: AX=E905h
  5601. ----------21E907-----------------------------
  5602. INT 21 - Novell NetWare shell 3.01 - GET RELATIVE DRIVE DEPTH
  5603.     AX = E907h
  5604.     BL = drive number (0=default, 1=A:, ...)
  5605. Return: AL = number of directories below the fake root
  5606.         FFh if no fake root assigned
  5607. SeeAlso: AX=E905h
  5608. ----------21E908BL00-------------------------
  5609. INT 21 - Novell NetWare shell 3.01 - SET SHOW DOTS
  5610.     AX = E908h
  5611.     BL = 00h    don't return '.' or '..' during directory scans
  5612.        = nonzero    directory scans will return '.' or '..' entries
  5613. Return: BL = previous show-dots setting
  5614. ----------21EA-------------------------------
  5615. INT 21 - Novell NetWare 4.6, Alloy NTNX - RETURN SHELL VERSION
  5616.     AH = EAh
  5617.     AL = return version environment string
  5618.         00h        don't return string
  5619.         nonzero    return string in 40-byte buffer pointed to by ES:DI
  5620.         Return: buffer filled with three null-terminated entries:
  5621.             major operating system
  5622.             version
  5623.             hardware type
  5624. Return: AH = operating system (00h = MSDOS)
  5625.     AL = hardware type
  5626.         00h IBM PC
  5627.         01h Victor 9000
  5628.     BH = major shell version
  5629.     BL = minor shell version
  5630.     CH = (v3.01+) shell type
  5631.         00h conventional memory
  5632.         01h expanded memory
  5633.         02h extended memory
  5634.     CL = shell revision number
  5635. ----------21EA-------------------------------
  5636. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  5637.     AH = EAh
  5638. Return: task switching turned off
  5639. SeeAlso: AH=E9h"DoubleDOS",AH=EBh"DoubleDOS",AH=FAh"DoubleDOS"
  5640. SeeAlso: INT FA"DoubleDOS"
  5641. ----------21EA-------------------------------
  5642. INT 21 - OS/286, OS/386 - ALLOCATE HUGE SEGMENT
  5643.     AH = EAh
  5644.     ???
  5645. Return: ???
  5646. Note:    protected mode only???
  5647. SeeAlso: AH=E7h"OS/286",AH=E8h"OS/286",AH=E9h"OS/286"
  5648. ----------21EB-------------------------------
  5649. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - LOG FILE
  5650.     AH = EBh
  5651.     DS:DX -> ASCIZ filename
  5652.     if function C6h lock mode 01h:
  5653.         AL = flags
  5654.         00h log file only
  5655.         01h lock as well as log file
  5656.             BP = lock timeout in timer ticks (1/18 second)
  5657.             0000h = don't wait if file already locked
  5658. Return: AL = error code
  5659.         00h successful
  5660.         96h no dynamic memory for file
  5661.         FEh timed out
  5662.         FFh failed
  5663. Desc:    add the location and size of the specified file to the log table and
  5664.       optionally lock the file
  5665. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  5666.       Alloy NTNX
  5667. SeeAlso: AH=BCh"NetWare",AH=CAh,AH=D0h,AH=ECh"NetWare",AH=EDh"NetWare"
  5668. ----------21EB-------------------------------
  5669. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  5670.     AH = EBh
  5671. Return: task switching turned on
  5672. SeeAlso: AH=E9h"DoubleDOS",AH=EAh"DoubleDOS",AH=FBh"DoubleDOS"
  5673. SeeAlso: INT FB"DoubleDOS"
  5674. ----------21EB00-----------------------------
  5675. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY LINEAR ADDRESS
  5676.     AX = EB00h
  5677.     ???
  5678. Return: ???
  5679. Note:    protected mode only???
  5680. SeeAlso: AX=EB02h,AX=EB04h,INT 31/AX=0506h
  5681. ----------21EB02-----------------------------
  5682. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 16-BIT SEGMENT:OFFSET
  5683.     AX = EB02h
  5684.     ???
  5685. Return: ???
  5686. Note:    protected mode only???
  5687. SeeAlso: AX=EB00h,AX=EB04h
  5688. ----------21EB03-----------------------------
  5689. INT 21 - OS/386 VMM - FREE MAPPED PAGES
  5690.     AX = EB03h
  5691.     ???
  5692. Return: ???
  5693. Note:    protected mode only???
  5694. SeeAlso: AX=EB05h,INT 31/AX=0801h
  5695. ----------21EB04-----------------------------
  5696. INT 21 - OS/386 VMM - GET A PAGE TABLE ENTRY BY 32-BIT SEGMENT:OFFSET
  5697.     AX = EB04h
  5698.     ???
  5699. Return: ???
  5700. Note:    protected mode only???
  5701. SeeAlso: AX=EB00h,AX=EB02h
  5702. ----------21EB05-----------------------------
  5703. INT 21 - OS/386 VMM - MAP PAGES
  5704.     AX = EB05h
  5705.     ???
  5706. Return: ???
  5707. Note:    protected mode only???
  5708. SeeAlso: AX=EB03h,INT 31/AX=0800h
  5709. ----------21EB06-----------------------------
  5710. INT 21 - OS/386 VMM - LOCK PAGES IN MEMORY
  5711.     AX = EB06h
  5712.     ???
  5713. Return: ???
  5714. Note:    protected mode only???
  5715. SeeAlso: AX=EB07h,INT 31/AX=0600h
  5716. ----------21EB07-----------------------------
  5717. INT 21 - OS/386 VMM - UNLOCK MEMORY PAGES
  5718.     AX = EB07h
  5719.     ???
  5720. Return: ???
  5721. Note:    protected mode only???
  5722. SeeAlso: AX=EB06h,INT 31/AX=0601h
  5723. ----------21EC-------------------------------
  5724. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - RELEASE FILE
  5725.     AH = ECh
  5726.     DS:DX -> ASCIZ filename
  5727. Return: AL = status
  5728.         00h successful
  5729.         FFh file not found
  5730. Desc:    unlock the specified file but retain it in the log table
  5731. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  5732.       Alloy NTNX
  5733. SeeAlso: AH=CDh,AH=EBh"NetWare",AH=EDh"NetWare"
  5734. ----------21EC-------------------------------
  5735. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  5736.     AH = ECh
  5737. Return: ES = segment of virtual screen
  5738. Notes:    screen address can change if task-switching is on!!
  5739.     identical to AH=FCh
  5740. SeeAlso: INT 10/AH=FEh,AH=FCh"DoubleDOS",INT FC"DoubleDOS"
  5741. ----------21EC-------------------------------
  5742. INT 21 - OS/286, OS/386 - BLOCK TRANSFER
  5743.     AH = ECh
  5744.     ???
  5745. Return: ???
  5746. ----------21EC59-----------------------------
  5747. INT 21 - VIRUS - "Terror" - INSTALLATION CHECK
  5748.     AX = EC59h
  5749. Return: BP = EC59h if resident
  5750. SeeAlso: AH=E7h"VIRUS",AH=EEh"VIRUS"
  5751. ----------21ED-------------------------------
  5752. INT 21 - Novell NetWare - SYNCHRONIZATION SERVICES - CLEAR FILE
  5753.     AH = EDh
  5754.     DS:DX -> ASCIZ filename
  5755. Return: AL = status
  5756.         00h successful
  5757.         FFh no files found
  5758. Desc:    unlock the file and remove it from the log table
  5759. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  5760.       Alloy NTNX
  5761. SeeAlso: AH=CBh"NetWare",AH=CEh,AH=CFh,AH=EBh"NetWare",AH=ECh"NetWare"
  5762. ----------21ED-------------------------------
  5763. INT 21 - OS/286, OS/386 - GET SEGMENT OR WINDOW DESCRIPTOR
  5764.     AH = EDh
  5765.     ???
  5766. Return: ???
  5767. Note:    protected mode only???
  5768. SeeAlso: AH=E9h"OS/286"
  5769. ----------21EE-------------------------------
  5770. INT 21 - Novell NetWare - CONNECTION SERVICES - GET PHYSICAL STATION ADDRESS
  5771.     AH = EEh
  5772. Return: CX:BX:AX = six-byte physical address
  5773. Note:    this function is supported by NetWare 4.6+, Advanced NetWare 1.0+, and
  5774.       Alloy NTNX
  5775. SeeAlso: AH=E3h/SF=13h
  5776. ----------21EE-------------------------------
  5777. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  5778.     AH = EEh
  5779.     AL = number of 55ms time slices to give away
  5780. Return: returns after giving away time slices
  5781. SeeAlso: AH=FEh"DoubleDOS",INT FE"DoubleDOS"
  5782. ----------21EE-------------------------------
  5783. INT 21 - VIRUS - "Jerusalem-G", "Pregnant" - INSTALLATION CHECK
  5784.     AH = EEh
  5785. Return: AX = 0300h if "Jerusalem-G" resident
  5786.     AL = 05h if "Pregnant" resident
  5787. SeeAlso: AH=DDh"VIRUS",AX=EC59h,AH=F0h"VIRUS"
  5788. ----------21EF00-----------------------------
  5789. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE HANDLE TABLE
  5790.     AX = EF00h
  5791. Return: ES:SI -> network shell's 32-byte drive handle table
  5792.     AX = 0000h
  5793. Notes:    this function is supported by Advanced NetWare 1.0+
  5794.     each byte in the drive handle table contains the directory handle for
  5795.       the corresponding drive, or 00h if not mapped to a directory
  5796. SeeAlso: AX=EF01h,AX=EF02h,AX=EF03h,AX=EF04h
  5797. ----------21EF01-----------------------------
  5798. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE FLAG TABLE
  5799.     AX = EF01h
  5800. Return: ES:SI -> network shell's 32-byte drive flag table (see below)
  5801.     AX = 0000h
  5802. Notes:    this function is supported by Advanced NetWare 1.0+
  5803.     each byte in the drive flag table corresponds to a drive
  5804. SeeAlso: AX=EF00h,AX=EF02h,AX=EF03h
  5805.  
  5806. Values in drive flag table:
  5807.  00h    drive is not mapped
  5808.  01h    permanent network drive
  5809.  02h    temporary network drive
  5810.  80h    mapped to local drive
  5811.  81h    local drive used as permanent network drive
  5812.  82h    local drive used as temporary network drive
  5813. ----------21EF02-----------------------------
  5814. INT 21 - Novell NetWare - WORKSTATION - GET DRIVE CONNECTION ID
  5815.     AX = EF02h
  5816. Return: ES:SI -> network shell's 32-byte drive conection ID table
  5817.     AX = 0000h
  5818. Notes:    this function is supported by Advanced NetWare 1.0+
  5819.     each byte in the connection ID table corresponds to a drive and
  5820.       contains either the connection ID (1-8) of the server for that drive
  5821.       or 00h if the drive is not mapped to a file server
  5822. SeeAlso: AX=EF01h,AX=EF03h,AX=F002h
  5823. ----------21EF03-----------------------------
  5824. INT 21 - Novell NetWare - WORKSTATION - GET CONNECTION ID
  5825.     AX = EF03h
  5826. Return: ES:SI -> network shell's connection ID table (see below)
  5827.     AX = 0000h
  5828. Note:    this function is supported by Advanced NetWare 1.0+
  5829. SeeAlso: AX=EF00h,AX=EF02h,AX=EF04h,AX=F002h
  5830.  
  5831. Format of connection ID table [one entry of eight-element array]:
  5832. Offset    Size    Description
  5833.  00h    BYTE    in use flag
  5834.         E0h AES temporary
  5835.         F8h IPX in critical section
  5836.         FAh processing
  5837.         FBh holding
  5838.         FCh AES waiting
  5839.         FDh waiting
  5840.         FEh receiving
  5841.         FFh sending
  5842.  01h    BYTE    order number assigned to server (1-8)
  5843.  02h    DWORD    file server's network address (big-endian)
  5844.  06h  6 BYTEs    file server's node address (big-endian)
  5845.  0Ch    WORD    socket number (big-endian)
  5846.  0Eh    WORD    base receive timeout in clock ticks (big-endian)
  5847.  10h  6 BYTEs    preferred routing node (big-endian)
  5848.  16h    BYTE    packet sequence number
  5849.  17h    BYTE    connection number (FFh = no connection)
  5850.  18h    BYTE    connection status (00h if active)
  5851.  19h    WORD    maximum receive timeout in clock ticks (big-endian)
  5852.  1Bh  5 BYTEs    reserved
  5853. ----------21EF04-----------------------------
  5854. INT 21 - Novell NetWare - WORKSTATION - GET FILE SERVER NAME
  5855.     AX = EF04h
  5856. Return: ES:SI -> network shell's file server name table (see below)
  5857.     AX = 0000h
  5858. Notes:    this function is supported by Advanced NetWare 1.0+
  5859.     the name table consists of eight 48-byte entries, each consisting of
  5860.       an ASCIZ server name for the corresponding entry in the connection
  5861.       ID table
  5862. SeeAlso: AX=EF03h
  5863. ----------21F0-------------------------------
  5864. INT 21 - DoubleDOS - MENU CONTROL
  5865.     AH = F0h
  5866.     AL = subfunction
  5867.         01h exchange tasks
  5868.         73h resume invisible job if suspended
  5869.         74h kill other job
  5870.         75h suspend invisible job
  5871. Note:    identical to AH=E0h
  5872. SeeAlso: AH=E0h"DoubleDOS"
  5873. ----------21F0-------------------------------
  5874. INT 21 - VIRUS - "Frere Jacques" - INSTALLATION CHECK
  5875.     AH = F0h
  5876. Return: AX = 0300h if resident
  5877. SeeAlso: AH=EEh"VIRUS",AH=F1h"VIRUS"
  5878. ----------21F000-----------------------------
  5879. INT 21 - Novell NetWare - WORKSTATION - SET PREFERRED CONNECTION ID
  5880.     AX = F000h
  5881.     DL = connection ID of prefered file server (1-8) or 00h for none
  5882. Notes:    this function is supported by Advanced NetWare 1.0+
  5883.     the preferred connection ID is set to 00h by the shell on EOJ
  5884. SeeAlso: AH=D6h,AX=EF03h,AX=F001h,AX=F002h,AX=F005h
  5885. ----------21F001-----------------------------
  5886. INT 21 - Novell NetWare - WORKSTATION - GET PREFERRED CONNECTION ID
  5887.     AX = F001h
  5888. Return: AL = connection ID of preferred file server (1-8), 00h if not set
  5889. Notes:    this function is supported by Advanced NetWare 1.0+
  5890.     the preferred connection ID is set to 00h by the shell on EOJ
  5891. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  5892. ----------21F002-----------------------------
  5893. INT 21 - Novell NetWare - WORKSTATION - GET DEFAULT CONNECTION ID
  5894.     AX = F002h
  5895. Return: AL = connection ID of current default file server (1-8) (see AX=EF03h)
  5896. Note:    this function is supported by Advanced NetWare 1.0+
  5897. SeeAlso: AX=EF03h,AX=F000h,AX=F004h
  5898. ----------21F003-----------------------------
  5899. INT 21 - Novell NetWare - PRINT SERVICES - GET LPT CAPTURE STATUS
  5900.     AX = F003h
  5901. Return: AH = status
  5902.         00h not active
  5903.         FFh active
  5904.         AL = connection ID (01h-08h)
  5905. Note:    this function is supported by Advanced NetWare 1.0+
  5906. SeeAlso: AX=B800h,AX=B804h,AH=DFh/DL=00h,AH=DFh/DL=04h
  5907. ----------21F004-----------------------------
  5908. INT 21 - Novell NetWare - WORKSTATION - SET PRIMARY CONNECTION ID
  5909.     AX = F004h
  5910.     DL = connection ID of primary file server (1-8) or 00h for none
  5911. Note:    this function is supported by Advanced NetWare 2.0+
  5912. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F005h
  5913. ----------21F005-----------------------------
  5914. INT 21 - Novell NetWare - WORKSTATION - GET PRIMARY CONNECTION ID
  5915.     AX = F005h
  5916. Return: AL = connection ID of primary file server (1-8), 00h if not set
  5917. Notes:    this function is supported by Advanced NetWare 2.0+
  5918.     by default, the primary file server is the one from which the login
  5919.       script executed; it is set to 00h if the workstation is not logged in
  5920.       and when it detaches from its primary file server
  5921. SeeAlso: AH=D6h,AX=EF03h,AX=F000h,AX=F002h,AX=F004h
  5922. ----------21F1-------------------------------
  5923. INT 21 - Novell NetWare - CONNECTION SERVICES - FILE SERVER CONNECTION
  5924.     AH = F1h
  5925.     AL = subfunction
  5926.         00h attach to file server
  5927.         DL = preferred file server (01h-08h)
  5928.         01h detach from file server
  5929.         DL = connection ID
  5930.         02h logout from file server
  5931.         DL = connection ID
  5932. Return: AL = status
  5933.         00h successful
  5934.         F8h already attached to server
  5935.         F9h connection table full
  5936.         FAh no more server slots
  5937.         FCh unknown file server
  5938.         FEh server bindery locked
  5939.         FFh no response from server, or connection does not exist
  5940. Note:    these functions are supported by Advanced NetWare 1.0+
  5941. SeeAlso: AH=D7h"NetWare",AH=E3h/SF=14h
  5942. ----------21F1-------------------------------
  5943. INT 21 - DoubleDOS - CLEAR KEYBOARD BUFFER FOR CURRENT JOB
  5944.     AH = F1h
  5945. SeeAlso: AH=E1h"DoubleDOS",AH=F2h"DoubleDOS",AH=F3h"DoubleDOS"
  5946. SeeAlso: AH=F8h"DoubleDOS"
  5947. ----------21F1-------------------------------
  5948. INT 21 - VIRUS - "F1-337" - ???
  5949.     AH = F1h
  5950.     ???
  5951. Return: ???
  5952. SeeAlso: AH=F0h"VIRUS",AX=F2AAh
  5953. ----------21F2-------------------------------
  5954. INT 21 - Novell NetWare v3.01+ shell interface - MULTIPLEXOR
  5955.     AH = F2h
  5956.     AL = function
  5957.         15h broadcast services (see AH=E1h"NetWare")
  5958.         16h file/directory services (see AH=E2h"NetWare")
  5959.         17h connection control (see AH=E3h"NetWare")
  5960.     CX = length of request buffer in bytes
  5961.     DX = length of reply buffer in bytes
  5962.     DS:SI -> request buffer (contents vary by function)
  5963.     ES:DI -> reply buffer (contents vary by function)
  5964. Return: AL = status
  5965.     reply buffer filled as appropriate for function
  5966. Note:    this is a multiplexor providing a "raw" interface to the underlying
  5967.       Netware Core Protocol.  Many functions which were accessed via a
  5968.       separate AH function in older versions can also be accessed here
  5969.       (the function number in AL is added to CCh to get the old function
  5970.       number which is desired), but some NetWare 3.x calls appear to be
  5971.       available only here.
  5972. SeeAlso: AX=F244h
  5973. ----------21F2-------------------------------
  5974. INT 21 - DoubleDOS - SEND CHARACTER TO KEYBOARD BUFFER OF OTHER JOB
  5975.     AH = F2h
  5976.     AL = character
  5977. Return: AL = 00h successful
  5978.          01h buffer full (128 characters)
  5979. SeeAlso: AH=E2h"DoubleDOS",AH=F1h"DoubleDOS",AH=F3h"DoubleDOS"
  5980. SeeAlso: AH=F8h"DoubleDOS"
  5981. ----------21F244-----------------------------
  5982. INT 21 - Novell NetWare - FILE SERVICES - ERASE FILES
  5983.     AX = F244h
  5984.     DS:SI -> request buffer (see below)
  5985.     ES:DI -> reply buffer (ignored???)
  5986. Return: AL = status
  5987.         00h successful
  5988.         98h nonexistent volume
  5989.         9Bh invaid directory handle
  5990.         9Ch invalid path
  5991.         FFh no files found
  5992. Note:    this function only marks the file for deletion; use AH=E2h/SF=CEh to
  5993.       actually delete all marked files
  5994. SeeAlso: AH=13h,AH=41h,AH=E2h/SF=0Bh,AH=E3h/SF=CEh
  5995.  
  5996. Format of request buffer:
  5997. Offset    Size    Description
  5998.  00h    BYTE    directory handle
  5999.  01h    BYTE    search attributes (see AX=4301h)
  6000.  02h    BYTE    length of filespec
  6001.  03h  N BYTEs    ASCIZ filespec (may include wildcards)
  6002. ----------21F2AA-----------------------------
  6003. INT 21 - VIRUS - "PcVrsDs" - INSTALLATION CHECK
  6004.     AX = F2AAh
  6005. Return: AH = AAh if resident
  6006. SeeAlso: AH=F1h"VIRUS",AH=F3h"VIRUS"
  6007. ----------21F3-------------------------------
  6008. INT 21 - Novell NetWare - FILE SERVICES - FILE SERVER FILE COPY
  6009.     AH = F3h
  6010.     ES:DI -> request buffer (see below)
  6011. Return: AL = status/error code
  6012.     CX:DX = number of bytes copied
  6013. Notes:    this function is supported by Advanced NetWare 2.0+
  6014.     both source and destination must be on the same file server
  6015. SeeAlso: AH=3Ch,AH=3Fh
  6016.  
  6017. Format of request buffer:
  6018. Offset    Size    Description
  6019.  00h    WORD    source file handle (as returned by AH=3Ch or AH=3Dh)
  6020.  02h    WORD    destination file handle
  6021.  04h    DWORD    starting offset in source
  6022.  08h    DWORD    starting offset in destination
  6023.  0Ch    DWORD    number of bytes to copy
  6024. ----------21F3-------------------------------
  6025. INT 21 - DoubleDOS - ADD CHARACTER TO KEYBOARD BUFFER OF CURRENT JOB
  6026.     AH = F3h
  6027.     AL = character
  6028. Return: AL = 00h successful
  6029.          01h buffer full (128 characters)
  6030. SeeAlso: AH=E3h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  6031. SeeAlso: AH=F8h"DoubleDOS"
  6032. ----------21F3-------------------------------
  6033. INT 21 - VIRUS - "Carfield" - INSTALLATION CHECK
  6034.     AH = F3h
  6035. Return: AX = 0400h if resident
  6036. SeeAlso: AH=D5h"Carfield",AX=F2AAh,AH=F7h"VIRUS"
  6037. ----------21F400-----------------------------
  6038. INT 21 - DoubleDOS - INSTALLATION CHECK/PROGRAM STATUS
  6039.     AX = F400h
  6040. Return: AL = 00h if DoubleDOS not present
  6041.        = 01h if running in visible DoubleDOS partition
  6042.        = 02h if running in the invisible DoubleDOS partition
  6043. SeeAlso: AX=E400h,AH=F5h"DoubleDOS"
  6044. ----------21F5-------------------------------
  6045. INT 21 - DoubleDOS - OTHER PROGRAM STATUS
  6046.     AH = F5h
  6047. Return: AL = 00h no program in other partition
  6048.        = 01h program in other partition is running
  6049.        = 02h program in other partition is suspended
  6050. SeeAlso: AH=E5h"DoubleDOS",AX=F400h"DoubleDOS"
  6051. ----------21F7-------------------------------
  6052. INT 21 - VIRUS - "GP1" - INSTALLATION CHECK
  6053.     AH = F7h
  6054. Return: AX = 0300h if resident
  6055. SeeAlso: AH=F0h"VIRUS",AH=FBh"VIRUS"
  6056. ----------21F8-------------------------------
  6057. INT 21 - DOS v2.11 - SET OEM INT 21 HANDLER
  6058.     AH = F8h
  6059.     DS:DX -> OEM INT 21 handler for functions F9h to FFh
  6060.          FFFFh:FFFFh disables OEM handler
  6061. Notes:    this function is supported by Toshiba T1000 ROM MSDOS 2.11
  6062.     calls to AH=F9h through AH=FFH will return AL=00h if no handler set
  6063.     handler is called with all registers exactly as set by caller, and
  6064.       should exit with IRET
  6065. SeeAlso: AH=F9h"OEM"
  6066. ----------21F8-------------------------------
  6067. INT 21 - DoubleDOS - SET/RESET KEYBOARD CONTROL FLAGS
  6068.     AH = F8h
  6069.     AL = 00h set flags for this program
  6070.        = 01h set flags for other program
  6071.     DX = keyboard control flags (bit set enables, cleared disables)
  6072.         bit 0: menu
  6073.         bit 1: exchange
  6074.         bit 2: entire keyboard enable/disable
  6075.         bit 3: Ctrl-C
  6076.         bit 4: Ctrl-PrtSc
  6077.         bit 5: Alt/Erase
  6078.         bit 6: Ctrl-Break
  6079.         bit 7: Ctrl-NumLock
  6080.         bit 8: shift-PrtSc
  6081.         bit 9-13: undefined
  6082.         bit 14: cancel key (clear keyboard buffer)
  6083.         bit 15: suspend key
  6084. Return: DX = previous flags
  6085. Notes:    disabling Ctrl-PrtSc will allow the program to intercept the keystroke;
  6086.       disabling any of the other keystrokes disables them completely
  6087.     identical to AH=E8h
  6088. SeeAlso: AH=E8h"DoubleDOS",AH=F1h"DoubleDOS",AH=F2h"DoubleDOS"
  6089. SeeAlso: AH=F3h"DoubleDOS"
  6090. ----------21F9-------------------------------
  6091. INT 21 - DOS v2.11 - OEM FUNCTION
  6092.     AH = F9h
  6093. SeeAlso: AH=F8h"OEM",AH=FAh"OEM"
  6094. ----------21F9-------------------------------
  6095. INT 21 - DoubleDOS - SET TIMESHARING PRIORITY
  6096.     AH = F9h
  6097.     AL = 00h visible program gets 70%, invisible gets 30% (default)
  6098.        = 01h visible program gets 50%, invisible gets 50%
  6099.        = 02h visible program gets 30%, invisible gets 70%
  6100.        = 03h Top program gets 70%, bottom program gets 30%
  6101.        = 04h Top program gets 30%, bottom program gets 70%
  6102.        = 05h get current priority
  6103.         Return: AL = priority setting
  6104. Note:    identical to AH=E9h
  6105. SeeAlso: AH=E9h"DoubleDOS",AH=FAh"DoubleDOS",AH=FBh"DoubleDOS"
  6106. ----------21FA-------------------------------
  6107. INT 21 - DOS v2.11 - OEM FUNCTION
  6108.     AH = FAh
  6109. SeeAlso: AH=F8h"OEM",AH=F9h"OEM",AH=FBh"OEM"
  6110. ----------21FA-------------------------------
  6111. INT 21 - DoubleDOS - TURN OFF TASK SWITCHING
  6112.     AH = FAh
  6113. Return: task switching turned off
  6114. SeeAlso: AH=EAh"DoubleDOS",AH=F9h"DoubleDOS",AH=FBh"DoubleDOS"
  6115. SeeAlso: INT FA"DoubleDOS"
  6116. ----------21FA--DX5945-----------------------
  6117. INT 21 U - PC Tools v7+ VDEFEND, VSAFE, VWATCH - API
  6118.     AH = FAh
  6119.     DX = 5945h
  6120.     AL = function (00h-02h for VDEFEND, 00h-07h for VSAFE and VWATCH)
  6121. Return: varies by function
  6122. Note:    this API is identical to the API on INT 13/AH=FAh and INT 16/AH=FAh,
  6123.       so it is listed in its entirety only under INT 16/AX=FA00h and
  6124.       following
  6125. SeeAlso: INT 13/AX=FA00h,INT 16/AX=FA00h
  6126. ----------21FB-------------------------------
  6127. INT 21 - DOS v2.11 - OEM FUNCTION
  6128.     AH = FBh
  6129. SeeAlso: AH=F8h"OEM",AH=FAh"OEM",AH=FCh"OEM"
  6130. ----------21FB-------------------------------
  6131. INT 21 - DoubleDOS - TURN ON TASK SWITCHING
  6132.     AH = FBh
  6133. Return: task switching turned on
  6134. SeeAlso: AH=EBh"DoubleDOS",AH=F9h"DoubleDOS",AH=FAh"DoubleDOS"
  6135. SeeAlso: INT FB"DoubleDOS"
  6136. ----------21FB-------------------------------
  6137. INT 21 - VIRUS - "Cinderella" - INSTALLATION CHECK
  6138.     AH = FBh
  6139. Return: AH = 00h if resident
  6140. SeeAlso: AH=F7h"VIRUS",AX=FB0Ah
  6141. ----------21FB0A-----------------------------
  6142. INT 21 - VIRUS - "dBASE" - INSTALLATION CHECK
  6143.     AX = FB0Ah
  6144. Return: AX = 0AFBh if resident
  6145. SeeAlso: AH=FBh"VIRUS",AH=FCh"VIRUS"
  6146. ----------21FC-------------------------------
  6147. INT 21 - DOS v2.11 - OEM FUNCTION
  6148.     AH = FCh
  6149. SeeAlso: AH=F8h"OEM",AH=FBh"OEM",AH=FDh"OEM"
  6150. ----------21FC-------------------------------
  6151. INT 21 - DoubleDOS - GET VIRTUAL SCREEN ADDRESS
  6152.     AH = FCh
  6153. Return: ES = segment of virtual screen
  6154. Notes:    screen address can change if task-switching is on!!
  6155.     identical to AH=ECh
  6156. SeeAlso: AH=ECh"DoubleDOS",INT FC"DoubleDOS"
  6157. ----------21FC-------------------------------
  6158. INT 21 - VIRUS - "Troi" - INSTALLATION CHECK
  6159.     AH = FCh
  6160. Return: AL = A5h if resident
  6161. SeeAlso: AH=FB0Ah"VIRUS",AH=FDh"VIRUS"
  6162. ----------21FD-------------------------------
  6163. INT 21 - DOS v2.11 - OEM FUNCTION
  6164.     AH = FDh
  6165. SeeAlso: AH=F8h"OEM",AH=FCh"OEM",AH=FEh"DOS"
  6166. ----------21FD-------------------------------
  6167. INT 21 - VIRUS - "Border" - INSTALLATION CHECK
  6168.     AH = FDh
  6169. Return: AH = 13h if resident
  6170. SeeAlso: AH=FCh"VIRUS",AH=FEh"VIRUS"
  6171. ----------21FE-------------------------------
  6172. INT 21 - DOS v2.11 - OEM FUNCTION
  6173.     AH = FEh
  6174. SeeAlso: AH=F8h"OEM",AH=FDh"OEM",AH=FFh"OEM"
  6175. ----------21FE-------------------------------
  6176. INT 21 - DoubleDOS - GIVE AWAY TIME TO OTHER TASKS
  6177.     AH = FEh
  6178.     AL = number of 55ms time slices to give away
  6179. Return: returns after giving away time slices
  6180. SeeAlso: AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  6181. ----------21FE-------------------------------
  6182. INT 21 - VIRUS - "483" - INSTALLATION CHECK
  6183.     AH = FEh
  6184. Return: AH = 00h if resident
  6185. SeeAlso: AH=FDh"VIRUS",AX=FE01h
  6186. ----------21FE01-----------------------------
  6187. INT 21 - VIRUS - "Flip" - INSTALLATION CHECK
  6188.     AX = FE01h
  6189. Return: AX = 01FEh if resident
  6190. SeeAlso: AH=FEh"VIRUS",AX=FE02h
  6191. ----------21FE02-----------------------------
  6192. INT 21 - VIRUS - "2468"/"Tequila" - INSTALLATION CHECK
  6193.     AX = FE02h
  6194. Return: AX = 01FDh if resident
  6195. SeeAlso: AX=FE01h,AX=FEDCh"VIRUS"
  6196. ----------21FEDC-----------------------------
  6197. INT 21 - PCMag PCMANAGE/DCOMPRES - INSTALLATION CHECK
  6198.     AX = FEDCh
  6199. Return: AX = CDEFh if installed
  6200. SeeAlso: AH=DCh
  6201. ----------21FEDC-----------------------------
  6202. INT 21 - VIRUS - "Black Monday" - INSTALLATION CHECK
  6203.     AX = FEDCh
  6204. Return: AL = DCh if resident
  6205. SeeAlso: AX=FE02h,AH=FFh"VIRUS"
  6206. ----------21FF-------------------------------
  6207. INT 21 - DOS v2.11 - OEM FUNCTION
  6208.     AH = FFh
  6209. SeeAlso: AH=F8h"OEM",AH=FEh"OEM"
  6210. ----------21FF-------------------------------
  6211. INT 21 - CED (Command EDitor) - INSTALLABLE COMMANDS
  6212.     AH = FFH
  6213.     AL = subfunction
  6214.         00h add installable command
  6215.            BL = mode - bit 0 = 1 callable from DOS prompt
  6216.                bit 1 = 1 callable from application
  6217.            DS:SI -> CR-terminated command name
  6218.            ES:DI -> FAR routine entry point
  6219.         01h remove installable command
  6220.            DS:SI -> CR-terminated command name
  6221.         02h reserved, may be used to test for CED installation
  6222. Return: CF clear if successful
  6223.     CF set on error
  6224.         AX = 01h invalid function
  6225.          02h command not found (subfunction 01h only)
  6226.          08h insufficient memory (subfunction 00h only)
  6227.          0Eh bad data (subfunction 00h only)
  6228.     AH = FFh if CED not installed
  6229. Note:    CED is a shareware DOS command-line enhancer by Christopher J. Dunford
  6230. SeeAlso: AX=0A00h
  6231. ----------21FF-------------------------------
  6232. INT 21 - DJ GO32.EXE 80386+ DOS extender - DOS EXTENSIONS
  6233.     AH = FFh
  6234.     AL = function
  6235.         01h create file
  6236.         02h open file
  6237.         03h get file statistics
  6238.         04h get time of day
  6239.         05h set time of day
  6240.         06h stat
  6241.         07h system
  6242. SeeAlso: INT 10/AH=FFh"GO32"
  6243. ----------21FF-------------------------------
  6244. INT 21 - DOSED.COM - INSTALLATION CHECK
  6245.     AH = FFh
  6246.     DS:SI -> "DOSED"
  6247.     ES = 0000h
  6248. Return: ES:DI -> "DOSED" if installed
  6249. Note:    DOSED is a free DOS commandline editor/history buffer by Sverre H.
  6250.       Huseby
  6251. ----------21FF-------------------------------
  6252. INT 21 - Topware Network Operating System - ???
  6253.     AH = FFh
  6254.     ???
  6255. Return: ???
  6256. SeeAlso: INT 2F/AX=FF00h
  6257. ----------21FF-------------------------------
  6258. INT 21 - VIRUS - "Sunday", "Tumen 0.5", "Hero" - INSTALLATION CHECK
  6259.     AH = FFh
  6260. Return: AH = 00h if "Tumen 0.5" or "Hero" resident
  6261.     AX = 0400h if "Sunday" resident
  6262. SeeAlso: AX=FEDCh"VIRUS",AX=FF0Fh
  6263. ----------21FF-------------------------------
  6264. INT 21 UP - Rational Systems DOS/4GW - API
  6265.     AH = FFh
  6266.     DH = function (00h-17h) (see also separate entries below)
  6267.     DL = subfunction or argument
  6268. Return: CF clear if valid function number
  6269.         AX = status???
  6270.     CF set if invalid function
  6271. SeeAlso: INT 15/AX=BFDCh
  6272. ----------21FF--DH02-------------------------
  6273. INT 21 UP - Rational Systems DOS/4GW - SET ???
  6274.     AH = FFh
  6275.     DH = 02h
  6276.     DL = ???
  6277. Return: CF clear
  6278. ----------21FF--DH05-------------------------
  6279. INT 21 UP - Rational Systems DOS/4GW - ???
  6280.     AH = FFh
  6281.     DH = 05h
  6282.     BX = ???
  6283. Return: ???
  6284. ----------21FF--DH06-------------------------
  6285. INT 21 UP - Rational Systems DOS/4GW - ???
  6286.     AH = FFh
  6287.     DH = 06h
  6288.     BX = ???
  6289. Return: ???
  6290. ----------21FF--DH07-------------------------
  6291. INT 21 UP - Rational Systems DOS/4GW - ???
  6292.     AH = FFh
  6293.     DH = 07h
  6294.     BX = ???
  6295. Return: ???
  6296. ----------21FF--DH08-------------------------
  6297. INT 21 UP - Rational Systems DOS/4GW - ???
  6298.     AH = FFh
  6299.     DH = 08h
  6300.     BX = ???
  6301.     CX = ???
  6302.     ES = ???
  6303. Return: ???
  6304. ----------21FF--DH09-------------------------
  6305. INT 21 UP - Rational Systems DOS/4GW - GET ???
  6306.     AH = FFh
  6307.     DH = 09h
  6308. Return: ES:BX -> ???
  6309. ----------21FF--DH0A-------------------------
  6310. INT 21 UP - Rational Systems DOS/4GW - ???
  6311.     AH = FFh
  6312.     DH = 0Ah
  6313.     AL = ???
  6314.     BX = ???
  6315.     CX = ???
  6316. Return: ES = ??? or 0000h
  6317. ----------21FF--DH0B-------------------------
  6318. INT 21 UP - Rational Systems DOS/4GW - ???
  6319.     AH = FFh
  6320.     DH = 0Bh
  6321.     AL = ???
  6322.     BX = ???
  6323.     CX = ???
  6324. Return: ???
  6325. ----------21FF--DH0C-------------------------
  6326. INT 21 UP - Rational Systems DOS/4GW - GET/SET ???
  6327.     AH = FFh
  6328.     DH = 0Ch
  6329.     DL = ??? (00h or 01h)
  6330. Return: CF clear if successful
  6331.         AL = previous value of ???
  6332.     CF set on error (DL out of range)
  6333.         AX = FFFFh
  6334. ----------21FF--DH0D-------------------------
  6335. INT 21 UP - Rational Systems DOS/4GW - ???
  6336.     AH = FFh
  6337.     DH = 0Dh
  6338.     ???
  6339. Return: ???
  6340. ----------21FF--DH0E-------------------------
  6341. INT 21 UP - Rational Systems DOS/4GW - ???
  6342.     AH = FFh
  6343.     DH = 0Eh
  6344. Return: DX:AX -> XBRK structure (see INT 15/AX=BF02h)
  6345.     BX = ???
  6346.     CX = ???
  6347. SeeAlso: INT 15/AX=BF02h
  6348. ----------21FF--DH0F-------------------------
  6349. INT 21 UP - Rational Systems DOS/4GW - ???
  6350.     AH = FFh
  6351.     DH = 0Fh
  6352.     ???
  6353. Return: ???
  6354. ----------21FF--DH10-------------------------
  6355. INT 21 UP - Rational Systems DOS/4GW - ???
  6356.     AH = FFh
  6357.     DH = 10h
  6358.     AL = ???
  6359.     BX = ???
  6360.     CX = ???
  6361.     DI = ???
  6362.     SI = ???
  6363. Return: ???
  6364. Note:    among other things, frees two memory blocks via INT 21/AH=49h
  6365. ----------21FF--DH11-------------------------
  6366. INT 21 UP - Rational Systems DOS/4GW - NOP
  6367.     AH = FFh
  6368.     DH = 11h
  6369. ----------21FF--DH12-------------------------
  6370. INT 21 UP - Rational Systems DOS/4GW - EXCHANGE ??? POINTERS
  6371.     AH = FFh
  6372.     DH = 12h
  6373.     DS:SI -> new ???
  6374.     ES:DI -> new ???
  6375. Return: DS:SI -> previous ???
  6376.     ES:DI -> previous ???
  6377. ----------21FF--DH13-------------------------
  6378. INT 21 UP - Rational Systems DOS/4GW - ???
  6379.     AH = FFh
  6380.     DH = 13h
  6381.     AL = ???
  6382.     ES = ???
  6383. Return: ???
  6384. ----------21FF--DH14-------------------------
  6385. INT 21 UP - Rational Systems DOS/4GW - ???
  6386.     AH = FFh
  6387.     DH = 14h
  6388.     BX = ???
  6389.     CX = ???
  6390. Return: CF clear
  6391.         AX = ???
  6392.         DX = ???
  6393. ----------21FF--DH15-------------------------
  6394. INT 21 UP - Rational Systems DOS/4GW - GET ??? FUNCTIONS
  6395.     AH = FFh
  6396.     DH = 15h
  6397. Return: CF clear
  6398.         DX:AX -> FAR function for ???
  6399.         CX:BX -> FAR function for ???
  6400.         SI:DI -> FAR function for ???
  6401. ----------21FF--DH16-------------------------
  6402. INT 21 UP - Rational Systems DOS/4GW - GET ???
  6403.     AH = FFh
  6404.     DH = 16h
  6405. Return: AX = ???
  6406. ----------21FF--DH17-------------------------
  6407. INT 21 UP - Rational Systems DOS/4GW - ???
  6408.     AH = FFH
  6409.     DH = 17h
  6410.     AL = ???
  6411.     DL = ???
  6412. Return: ???
  6413. ----------21FF00DX0078-----------------------
  6414. INT 21 - Rational Systems DOS/4G - INSTALLATION CHECK
  6415.     AX = FF00h
  6416.     DX = 0078h
  6417. Return: AL <> 00h if installed
  6418.         GS = segment of kernel if nonzero
  6419. SeeAlso: INT 15/AX=BF02h
  6420. ----------21FF0F-----------------------------
  6421. INT 21 - FLU_SHOT+ v1.83 - INSTALLATION CHECK
  6422.     AX = FF0Fh
  6423. Return: AX = 0101h if resident
  6424. Notes:    FLU_SHOT+ is an antivirus/antitrojan program by Ross M. Greenberg and
  6425.       Software Concepts Design
  6426.     the "PSQR/1720" virus calls this function to determine whether
  6427.       FLU_SHOT+ is present
  6428. SeeAlso: AH=FFh"VIRUS",AX=FF10h
  6429. ----------21FF10-----------------------------
  6430. INT 21 - VIRUS - "Twins" - INSTALLATION CHECK
  6431.     AX = FF10h
  6432. Return: AL = 07h if resident
  6433. SeeAlso: AX=FF0Fh,AX=FFFEh
  6434. ----------21FFFE-----------------------------
  6435. INT 21 - VIRUS - "08/15"/"Many Fingers" - INSTALLATION CHECK
  6436.     AX = FFFEh
  6437. Return: AX = 0815h if resident
  6438. SeeAlso: AX=FF10h,AX=FFFFh
  6439. ----------21FFFF-----------------------------
  6440. INT 21 - VIRUS - "Ontario", "Year 1992"/"B1M92" - INSTALLATION CHECK
  6441.     AX = FFFFh
  6442. Return: AX = 0000h if "Ontario" resident
  6443.     AX = 1992h if "Year 1992"/"B1M92" resident
  6444. SeeAlso: AX=FF0Fh,AX=FFFFh/CX=0000h,INT 6B"VIRUS"
  6445. ----------21FFFFCX0000-----------------------
  6446. INT 21 - VIRUS - "Revenge" - INSTALLATION CHECK
  6447.     AX = FFFFh
  6448.     CX = 0000h
  6449. Return: CX = 0006h if resident
  6450. SeeAlso: AX=FFFFh,INT 6B"VIRUS"
  6451. ----------22---------------------------------
  6452. INT 22 - DOS 1+ - PROGRAM TERMINATION ADDRESS
  6453. Desc:    this vector specifies the address of the routine which is to be given
  6454.       control after a program is terminated; it should never be called
  6455.       directly, since it does not point at an interrupt handler
  6456. Notes:    this vector is restored from the DWORD at offset 0Ah in the PSP during
  6457.       termination, and then a FAR JMP is performed to the address in INT 22
  6458.     normally points at the instruction immediately following INT 21/AH=4Bh
  6459.       call which loaded the current program
  6460. SeeAlso: INT 20,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  6461. ---------------------------------------------
  6462. INT 22 - COMTROL HOSTESS i/ISA DEBUGGER - CHANGE FIRMWARE DEBUGGING PORT
  6463.     AL = new firmware debugging port
  6464. Return: ???
  6465. SeeAlso: INT 21"COMTROL HOSTESS",INT 23"COMTROL HOSTESS"
  6466. ----------23---------------------------------
  6467. INT 23 - DOS 1+ - CONTROL-C/CONTROL-BREAK HANDLER
  6468. ---DOS 1.x---
  6469. Return: AH = 00h abort program
  6470.     if all registers preserved, restart DOS call
  6471. ---DOS 2+---
  6472.     CF clear
  6473. Return: all registers preserved
  6474.     return via RETF or RETF 2 with CF set
  6475.         DOS will abort program with errorlevel 0
  6476.     else (RETF/RETF 2 with CF clear or IRET)
  6477.         interrupted DOS call is restarted
  6478. Notes:    this interrupt is invoked whenever DOS detects a ^C or ^Break; it
  6479.       should never be called directly
  6480.     MSDOS 1.25 also invokes INT 23 on a divide overflow (INT 00)
  6481.     DOS remembers the stack pointer before calling INT 23, and if it is
  6482.       not the same on return, pops and discards the top word; this is what
  6483.       permits a return with RETF as well as IRET or RETF 2
  6484.     any DOS call may safely be made within the INT 23 handler, although
  6485.       the handler must to check for a recursive invocation if it does
  6486.       call DOS
  6487. SeeAlso: INT 1B
  6488. ---------------------------------------------
  6489. INT 23 - COMTROL HOSTESS i/ISA DEBUGGER - GET CONFIGURATION INFORMATION
  6490.     AL = query type
  6491.         00h get old config map
  6492.         Return: AX = old config map
  6493.         01h get dual-ported RAM map
  6494.         Return: BX:AX = dual-ported RAM map
  6495.         02h get SCC port map
  6496.         Return: BX:AX = SCC port map
  6497. SeeAlso: INT 22"COMTROL HOSTESS",INT 26"COMTROL HOSTESS"
  6498. ----------24---------------------------------
  6499. INT 24 - DOS 1+ - CRITICAL ERROR HANDLER
  6500. Note:    invoked when a critical (usually hardware) error is encountered; should
  6501.       never be called directly
  6502. SeeAlso: INT 21/AH=95h
  6503.  
  6504. Critical error handler is invoked with:
  6505.     AH = type and processing flags
  6506.         bit 7 clear = disk I/O error
  6507.           set    = -- if block device, bad FAT image in memory
  6508.               -- if char device, error code in DI
  6509.         bit 6  unused
  6510.         bit 5 = 1 if Ignore allowed, 0 if not (DOS 3+)
  6511.         bit 4 = 1 if Retry allowed, 0 if not (DOS 3+)
  6512.         bit 3 = 1 if Fail allowed, 0 if not (DOS 3+)
  6513.         bit 2 \ disk area of error    00 = DOS area  01 = FAT
  6514.         bit 1 /            10 = root dir  11 = data area
  6515.         bit 0 = 1 if write, 0 if read
  6516.     AL = drive number if AH bit 7 clear
  6517.     BP:SI -> device driver header (BP:[SI+4] bit 15 set if char device)
  6518.     DI low byte contains error code if AH bit 7 set
  6519.        00h write-protection violation attempted
  6520.        01h unknown unit for driver
  6521.        02h drive not ready
  6522.        03h unknown command given to driver
  6523.        04h data error (bad CRC)
  6524.        05h bad device driver request structure length
  6525.        06h seek error
  6526.        07h unknown media type
  6527.        08h sector not found
  6528.        09h printer out of paper
  6529.        0Ah write fault
  6530.        0Bh read fault
  6531.        0Ch general failure
  6532.        0Dh (DOS 3+) sharing violation
  6533.        0Eh (DOS 3+) lock violation
  6534.        0Fh invalid disk change
  6535.        10h (DOS 3+) FCB unavailable
  6536.        11h (DOS 3+) sharing buffer overflow
  6537.        12h (DOS 4+) code page mismatch
  6538.        13h (DOS 4+) out of input
  6539.        14h (DOS 4+) insufficient disk space
  6540.     STACK:    DWORD    return address for INT 24 call
  6541.         WORD    flags pushed by INT 24
  6542.         WORD    original AX on entry to INT 21
  6543.         WORD    BX
  6544.         WORD    CX
  6545.         WORD    DX
  6546.         WORD    SI
  6547.         WORD    DI
  6548.         WORD    BP
  6549.         WORD    DS
  6550.         WORD    ES
  6551.         DWORD    return address for INT 21 call
  6552.         WORD    flags pushed by INT 21
  6553. Handler must return:
  6554.     AL = action code
  6555.         00h ignore error and continue processing request
  6556.         01h retry operation
  6557.         02h terminate program through the equivalent of INT 21/AH=4Ch
  6558.             (INT 20h for DOS 1.x)
  6559.         03h fail system call in progress
  6560.     SS,SP,DS,ES,BX,CX,DX preserved
  6561. Notes:    the only DOS calls the handler may make are INT 21/AH=01h-0Ch,30h,59h
  6562.     if the handler returns to the application by popping the stack, DOS
  6563.       will be in an unstable state until the first call with AH > 0Ch
  6564.     for DOS 3.1+, IGNORE (AL=00h) is turned into FAIL (AL=03h) on network
  6565.       critical errors
  6566.     if IGNORE specified but not allowed, it is turned into FAIL
  6567.     if RETRY specified but not allowed, it is turned into FAIL
  6568.     if FAIL specified but not allowed, it is turned into ABORT
  6569.     (DOS 3+) if a critical error occurs inside the critical error handler,
  6570.       the DOS call is automatically failed
  6571. ----------25---------------------------------
  6572. INT 25 - DOS 1+ - ABSOLUTE DISK READ (except partitions > 32M)
  6573.     AL = drive number (00h = A:, 01h = B:, etc)
  6574.     CX = number of sectors to read
  6575.     DX = starting logical sector number (0000h - highest sector on drive) 
  6576.     DS:BX -> buffer for data
  6577. Return: CF clear if successful
  6578.     CF set on error
  6579.         AH = status
  6580.          80h device failed to respond (timeout)
  6581.          40h seek operation failed
  6582.          20h controller failed
  6583.          10h data error (bad CRC)
  6584.          08h DMA failure
  6585.          04h requested sector not found
  6586.          03h write-protected disk (INT 26 only)
  6587.          02h bad address mark
  6588.          01h bad command
  6589.         AL = error code (same as passed to INT 24 in DI)
  6590.     may destroy all other registers except segment registers
  6591. Notes:    original flags are left on stack, and must be popped by caller
  6592.     this call bypasses the DOS filesystem
  6593. BUG:    DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
  6594.     invalid drive number
  6595. SeeAlso: INT 13/AH=02h,INT 26
  6596. ----------25---------------------------------
  6597. INT 25 - DOS 3.31+ - ABSOLUTE DISK READ (>32M hard-disk partition)
  6598.     AL = drive number (0=A, 1=B, etc)
  6599.     CX = FFFFh
  6600.     DS:BX -> disk read packet (see below)
  6601. Return: same as above
  6602. Notes:    partition is potentially >32M (and requires this form of the call) if
  6603.       bit 1 of device attribute word in device driver is set
  6604.     original flags are left on stack, and must be removed by caller
  6605.     this call bypasses the DOS filesystem
  6606. SeeAlso: INT 13/AH=02h,INT 26
  6607.  
  6608. Format of disk read packet:
  6609. Offset    Size    Description
  6610.  00h    DWORD    sector number
  6611.  04h    WORD    number of sectors to read
  6612.  06h    DWORD    transfer address
  6613. ----------25CDCD-----------------------------
  6614. INT 25 - Stacker - GET DEVICE DRIVER ADDRESS
  6615.     AX = CDCDh
  6616.     DS:BX -> buffer for address (see below)
  6617.     CX = 0001h
  6618.     DX = 0000h
  6619. Return: AX = CDCDh if Stacker installed
  6620.         DS:BX buffer filled
  6621.  
  6622. Format of driver address buffer:
  6623. Offset    Size    Description
  6624.  00h    WORD    signature CDCDh
  6625.  02h    WORD    ??? 0001h
  6626.  04h    DWORD    pointer to start of Stacker device driver
  6627.  
  6628. Format of device driver:
  6629. Offset    Size    Description
  6630.  00h    WORD    signature A55Ah
  6631.  02h    WORD    Stacker version * 64h
  6632.  04h    WORD    offset of volume-specific information offset table
  6633.         (list of WORDs, one per drive, containing offsets to various
  6634.         information)
  6635.  06h 56 BYTEs    n/a
  6636.  3Eh    BYTE    volume number, set after INT 21/AX=4404h
  6637.         (use to index into volume-specific info offset table)
  6638.  3Fh 19 BYTEs    n/a
  6639.  52h  4 BYTEs    ASCII string "SWAP"
  6640.  56h 26 BYTEs    drive mapping table (one byte for each drive A: through Z:)
  6641.  
  6642. Format of Stacker boot record:
  6643. Offset    Size    Description
  6644. 1F0h  8 BYTEs    Stacker signature (first byte is CDh)
  6645. 1F8h    DWORD    pointer to start of Stacker device driver
  6646. 1FCh    WORD    Stacker volume number
  6647. 1FEh    WORD    ???
  6648. ----------25--FFSI4358-----------------------
  6649. INT 25 - PC-CACHE.SYS - INSTALLATION CHECK
  6650.     AL = FFh
  6651.     SI = 4358h
  6652. Return: SI = 6378h if installed
  6653.         CX = segment of device driver PC-CACHE.SYS
  6654.         DX = version (major in DH, minor in DL)
  6655. Note:    PC-CACHE.SYS is a small device driver used by PC-Cache v5.x to obtain
  6656.       access to certain disk drivers for devices such as Bernoulli drives
  6657. SeeAlso: INT 13/AH=A0h
  6658. ----------26---------------------------------
  6659. INT 26 - DOS 1+ - ABSOLUTE DISK WRITE (except partitions > 32M)
  6660.     AL = drive number (00h = A:, 01h = B:, etc)
  6661.     CX = number of sectors to write
  6662.     DX = starting logical sector number (0000h - highest sector on drive) 
  6663.     DS:BX -> data to write
  6664. Return: CF clear if successful
  6665.     CF set on error
  6666.         AH = status
  6667.          80h device failed to respond (timeout)
  6668.          40h seek operation failed
  6669.          20h controller failed
  6670.          10h data error (bad CRC)
  6671.          08h DMA failure
  6672.          04h requested sector not found
  6673.          03h write-protected disk (INT 26 only)
  6674.          02h bad address mark
  6675.          01h bad command
  6676.         AL = error code (same as passed to INT 24 in DI)
  6677.     may destroy all other registers except segment registers
  6678. Notes:    original flags are left on stack, and must be popped by caller
  6679.     this call bypasses the DOS filesystem
  6680. BUG:    DOS 3.1 through 3.3 set the word at ES:[BP+1Eh] to FFFFh if AL is an
  6681.     invalid drive number
  6682. SeeAlso: INT 13/AH=03h,INT 25
  6683. ----------26---------------------------------
  6684. INT 26 - DOS 3.31+ - ABSOLUTE DISK WRITE (>32M hard-disk partition)
  6685.     AL = drive number (0=A, 1=B, etc)
  6686.     CX = FFFFh
  6687.     DS:BX -> disk write packet (see below)
  6688. Return: same as above
  6689. Notes:    partition is potentially >32M (and requires this form of the call) if
  6690.       bit 1 of device attribute word in device driver is set
  6691.     original flags are left on stack, and must be removed by caller
  6692.     this call bypasses the DOS filesystem
  6693. SeeAlso: INT 13/AH=03h,INT 25
  6694.  
  6695. Format of disk write packet:
  6696. Offset    Size    Description
  6697.  00h    DWORD    sector number
  6698.  04h    WORD    number of sectors to read
  6699.  06h    DWORD    transfer address
  6700. ---------------------------------------------
  6701. INT 26 - COMTROL HOSTESS i/ISA DEBUGGER - ENTER/EXIT EXTENDED ADDRESSING MODE
  6702.     ???
  6703. Return: ???
  6704. SeeAlso: INT 23"COMTROL HOSTESS",INT 27"COMTROL HOSTESS"
  6705. ----------27---------------------------------
  6706. INT 27 - DOS 1+ - TERMINATE AND STAY RESIDENT
  6707.     DX = number of bytes to keep resident (max FFF0h)
  6708.     CS = segment of PSP
  6709. Return: never
  6710. Notes:    this is an obsolete call
  6711.     INT 22, INT 23, and INT 24 are restored from the PSP
  6712.     does not close any open files
  6713.     the minimum number of bytes which will remain resident is 110h for
  6714.       DOS 2.x and 60h for DOS 3+; there is no minimum for DOS 1.x, which
  6715.       implements this service in COMMAND.COM rather than the DOS kernel
  6716. SeeAlso: INT 21/AH=31h
  6717. ---------------------------------------------
  6718. INT 27 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE REMOTE TURBO DEBUGGER KERNEL
  6719.     ???
  6720. Return: ???
  6721. Desc:    invoke a copy of the remote Turbo Debugger kernel on the Hostess i
  6722.       controller
  6723. SeeAlso: INT 20"COMTROL HOSTESS",INT 26"COMTROL HOSTESS"
  6724. ----------28---------------------------------
  6725. INT 28 - DOS 2+ - DOS IDLE INTERRUPT
  6726.    Invoked each time one of the DOS character input functions loops while
  6727.    waiting for input.  Since a DOS call is in progress even though DOS is
  6728.    actually idle during such input waits, hooking this function is necessary
  6729.    to allow a TSR to perform DOS calls while the foreground program is
  6730.    waiting for user input.  The INT 28h handler may invoke any INT 21 function
  6731.    except functions 00h through 0Ch.  Under DOS 2.x, the critical error flag
  6732.    (the byte immediately after the InDOS flag) must be set in order to call
  6733.    DOS functions 50h/51h without destroying the DOS stacks.
  6734.  
  6735. Notes:    calls to INT 21/AH=3Fh,40h may not use a handle which refers to CON
  6736.     at the time of the call, the InDOS flag (see INT 21/AH=34h) is normally
  6737.       set to 01h; if larger, DOS is truly busy and should not be reentered
  6738.     the default handler is an IRET instruction
  6739.     supported in OS/2 compatibility box
  6740. SeeAlso: INT 21/AH=34h,INT 2A/AH=84h
  6741. ----------29---------------------------------
  6742. INT 29 C - DOS 2+ - FAST CONSOLE OUTPUT
  6743.     AL = character to display
  6744. Return: nothing
  6745. Notes:    automatically called when writing to a device with bit 4 of its device
  6746.       driver header set (see also INT 21/AH=52h)
  6747.     COMMAND.COM v3.2 and v3.3 compare the INT 29 vector against the INT 20
  6748.       vector and assume that ANSI.SYS is installed if the segment is larger
  6749.     the default handler under DOS 2.x and 3.x simply calls INT 10/AH=0Eh
  6750.     the default handler under DESQview 2.2 understands the <Esc>[2J
  6751.       screen-clearing sequence, calls INT 10/AH=0Eh for all others
  6752. SeeAlso: INT 79
  6753. ----------2A00-------------------------------
  6754. INT 2A - NETWORK (Microsoft, LANtastic) - INSTALLATION CHECK
  6755.     AH = 00h
  6756. Return: AH <> 00h if installed
  6757.     CF set if NetWare v2.15 NetBIOS emulator installed
  6758. SeeAlso: INT 5C
  6759. ----------2A0000-----------------------------
  6760. INT 2A - AT&T Starlan Extended NetBIOS (var length names) - INSTALLATION CHECK
  6761.     AX = 0000h
  6762. Return: AH = DDh
  6763. SeeAlso: INT 5B
  6764. ----------2A01-------------------------------
  6765. INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NETBIOS REQUEST,NO ERROR RETRY
  6766.     AH = 01h
  6767.     ES:BX -> NCB (see INT 5C)
  6768. Return: AL = NetBIOS error code
  6769.     AH = 00h if no error
  6770.        = 01h on error
  6771. SeeAlso: AH=04h,AX=0500h,INT 5B,INT 5C"NetBIOS"
  6772. ----------2A02-------------------------------
  6773. INT 2A - NETWORK (Microsoft) - SET NET PRINTER MODE
  6774.     AH = 02h
  6775.     ???
  6776. Return: ???
  6777. ----------2A0300-----------------------------
  6778. INT 2A - NETWORK (Microsoft,LANtastic) - CHECK DIRECT I/O
  6779.     AX = 0300h
  6780.     DS:SI -> ASCIZ device name (may be full path or only drive specifier--
  6781.         must include the colon)
  6782. Return: CF clear if direct physical addressing (INT 13,INT 25) permissible
  6783.     CF set if access via files only
  6784. Notes:    do not use direct disk accesses if this function returns CF set or the
  6785.       device is redirected (INT 21/AX=5F02h)
  6786.     may take some time to execute
  6787.     called by DOS kernel on INT 25 and INT 26
  6788. SeeAlso: INT 13,INT 25,INT 26,INT 21/AX=5F02h
  6789. ----------2A04-------------------------------
  6790. INT 2A - NETWORK (Microsoft,LANtastic) - EXECUTE NetBIOS REQUEST
  6791.     AH = 04h
  6792.     AL = error retry
  6793.         00h automatically retry request on errors 09h, 12h, and 21h
  6794.         01h no retry
  6795.     ES:BX -> Network Control Block (see INT 5C"NetBIOS")
  6796. Return: AX = 0000h if successful
  6797.     AH = 01h on error
  6798.         AL = error code
  6799. Notes:    invokes either INT 5B or INT 5C as appropriate
  6800.     NetWare 2.15 NetBIOS emulator returns CF clear if succesful, set on err
  6801. SeeAlso: AH=01h,AX=0500h,INT 5B,INT 5C"NetBIOS"
  6802. ----------2A0500-----------------------------
  6803. INT 2A - NETWORK (Microsoft,LANtastic) - GET NETWORK RESOURCE AVAILABILITY
  6804.     AX = 0500h
  6805. Return: AX reserved
  6806.     BX = number of network names available
  6807.     CX = number of network control blocks available
  6808.     DX = number of network sessions available
  6809. SeeAlso: AH=01h,AH=04h,INT 5C"NetBIOS"
  6810. ----------2A06-------------------------------
  6811. INT 2A - NETBIOS, LANtastic - NETWORK PRINT-STREAM CONTROL
  6812.     AH = 06h
  6813.     AL = 01h set concatenation mode (all printer output put in one job)
  6814.          02h set truncation mode (default)
  6815.          printer open/close starts new print job
  6816.          03h flush printer output and start new print job
  6817. Return: CF set on error
  6818.         AX = error code
  6819.     CF clear if successful
  6820. Notes:    subfunction 03h is equivalent to Ctrl/Alt/keypad-*
  6821.     LANtastic v4.x no longer supports this call
  6822. SeeAlso: INT 21/AX=5D08h,INT 21/AX=5D09h,INT 2F/AX=1125h
  6823. ----------2A2001-----------------------------
  6824. INT 2A - MS Networks or NETBIOS - ???
  6825.     AX = 2001h
  6826.     ???
  6827. Return: ???
  6828. Note:    intercepted by DESQview 2.x
  6829. ----------2A2002-----------------------------
  6830. INT 2A - NETWORK - ???
  6831.     AX = 2002h
  6832.     ???
  6833. Return: ???
  6834. Note:    called by MSDOS 3.30-5.00 APPEND
  6835. ----------2A2003-----------------------------
  6836. INT 2A - NETWORK - ???
  6837.     AX = 2003h
  6838.     ???
  6839. Return: ???
  6840. Note:    called by MSDOS 3.30-5.00 APPEND
  6841. ----------2A7802-----------------------------
  6842. INT 2A - NETWORK - PC LAN PROG v1.31+ - GET LOGGED ON USER NAME
  6843.     AX = 7802h
  6844.     ES:DI -> 8-byte buffer to be filled
  6845. Return: AL = 00h if no user logged on to Extended Services
  6846.     AL <> 00h if user logged on to Extended Services
  6847.         buffer at ES:DI filled with name, padded to 8 chars with blanks.
  6848. ----------2A80-------------------------------
  6849. INT 2A C - NETWORK - BEGIN DOS CRITICAL SECTION
  6850.     AH = 80h
  6851.     AL = critical section number (00h-0Fh)
  6852.         01h DOS kernel, SHARE.EXE
  6853.         apparently for maintaining the integrity of DOS/SHARE/NET
  6854.           data structures
  6855.         02h DOS kernel
  6856.         ensures that no multitasking occurs while DOS is calling an
  6857.           installable device driver
  6858.         05h DOS 4.x only IFSFUNC
  6859.         06h DOS 4.x only IFSFUNC
  6860.         08h ASSIGN.COM
  6861.         0Ah MSCDEX
  6862. Notes:    normally hooked to avoid interrupting a critical section, rather than
  6863.       called
  6864.     the handler should ensure that none of the critical sections are
  6865.       reentered, usually by suspending a task which attempts to reenter
  6866.       an active critical section
  6867.     the DOS kernel does not invoke critical sections 01h and 02h unless it
  6868.       is patched.  DOS 3.1 through 3.31 contain a zero-terminated list of
  6869.       words beginning at offset 02C3h in the IBMDOS segment; each word
  6870.       contains the offset within the IBMDOS segment of a byte which must
  6871.       be changed from C3h to 50h to enable use of critical sections.
  6872. SeeAlso: AH=81h,AH=82h,AH=87h,INT 21/AX=5D06h,INT 21/AX=5D0Bh
  6873. ----------2A81-------------------------------
  6874. INT 2A C - NETWORK - END DOS CRITICAL SECTION
  6875.     AH = 81h
  6876.     AL = critical section number (00h-0Fh) (see AH=80h)
  6877. Notes:    normally hooked rather than called
  6878.     the handler should reawaken any tasks which were suspended due to an
  6879.       attempt to enter the specified critical section
  6880. SeeAlso: AH=80h,AH=82h,AH=87h
  6881. ----------2A82-------------------------------
  6882. INT 2A C - NETWORK - END DOS CRITICAL SECTIONS 0 THROUGH 7
  6883.     AH = 82h
  6884. Notes:    called by the INT 21h function dispatcher for function 0 and functions
  6885.       greater than 0Ch except 59h, and on process termination
  6886.     the handler should reawaken any tasks which were suspended due to an
  6887.       attempt to enter one of the critical sections 0 through 7
  6888. SeeAlso: AH=81h
  6889. ----------2A84-------------------------------
  6890. INT 2A C - Microsoft Networks - KEYBOARD BUSY LOOP
  6891.     AH = 84h
  6892. Note:    similar to DOS's INT 28h, called from inside the DOS keyboard input
  6893.       loop to allow network to process requests
  6894. SeeAlso: INT 28
  6895. ----------2A87-------------------------------
  6896. !!!
  6897. INT 2A C - PRINT??? - CRITICAL SECTION
  6898.     AH = 87h
  6899.     AL = start/end
  6900.         00h start
  6901.         01h end
  6902. Note:    called by PRINT.COM
  6903. SeeAlso: AH=80h,AH=81h
  6904. ----------2A89-------------------------------
  6905. INT 2A - Network - ???
  6906.     AH = 89h
  6907.     AL = ???  (ASSIGN uses 08h)
  6908.     ???
  6909. Return: ???
  6910. ----------2A90-------------------------------
  6911. INT 2A - IBM PC 3270 EMULATION PROGRAM - ???
  6912.     AH = 90h
  6913.     ???
  6914. Return: ???
  6915. Note:    the LANtastic redirector and SERVER.EXE use this function with AL=01h,
  6916.       03h-07h,0Ch-11h
  6917. ----------2AC2-------------------------------
  6918. INT 2A - Network - ???
  6919.     AH = C2h
  6920.     AL = subfunction
  6921.         07h ???
  6922.         08h ???
  6923.     BX = 0001h
  6924.     ???
  6925. Return: ???
  6926. Note:    called by DOS 3.30-5.00 APPEND
  6927. ----------2AFF90-----------------------------
  6928. INT 2A - PC/TCP PREDIR.EXE - ???
  6929.     AX = FF90h
  6930. Return: AX = ???
  6931. Note:    PREDIR.EXE is the network printer redirector included as part of the
  6932.       PC/TCP system by FTP Software, Inc.
  6933. ----------2AFF91-----------------------------
  6934. INT 2A - PC/TCP PREDIR.EXE - ???
  6935.     AX = FF91h
  6936.     BX = ???
  6937. Return: AX = status???
  6938. ----------2AFF92-----------------------------
  6939. INT 2A - PC/TCP PREDIR.EXE - INSTALLATION CHECK
  6940.     AX = FF92h
  6941. Return: AX = 0000h if installed
  6942.        BX = redirected printer port (FFFFh if no printers redirected)
  6943.        CX = version (CH = major, CL = minor)
  6944. Note:    PREDIR.EXE is the network printer redirector included as part of the
  6945.       PC/TCP system by FTP Software, Inc.
  6946. ----------2AFF93-----------------------------
  6947. INT 2A - PC/TCP PREDIR.EXE - ???
  6948.     AX = FF93h
  6949. Return: AX = ???
  6950. ----------2AFF94-----------------------------
  6951. INT 2A - PC/TCP PREDIR.EXE - ???
  6952.     AX = FF94h
  6953.     BX = ???
  6954.     CX = ???
  6955.     DX = ???
  6956. Return: AX = ???
  6957. Note:    PREDIR.EXE is the network printer redirector included as part of the
  6958.       PC/TCP system by FTP Software, Inc.
  6959. ----------2AFF95-----------------------------
  6960. INT 2A - PC/TCP PREDIR.EXE - GET CONFIGURATION STRINGS
  6961.     AX = FF95h
  6962.     CX = what to get
  6963.         0000h ??? (returned pointer to "C:\COMMAND.COM")
  6964.         0001h spooling program
  6965.         0002h ???
  6966.         0003h spool file name
  6967.         0004h swap file name
  6968. Return: AX = status
  6969.         0000h successful
  6970.     BX:DX -> ASCIZ configuration string
  6971. ----------2AFF96-----------------------------
  6972. INT 2A - PC/TCP PREDIR.EXE - SET PRINT JOB TERMINATION CONFIGURATION
  6973.     AX = FF96h
  6974.     CX = what to set
  6975.         0000h ???
  6976.         0001h print-on-hotkey state
  6977.         0002h print-on-exit state
  6978.         0003h print job timeout in clock ticks
  6979.         0004h print-on-EOF state
  6980.     BX = new value (0000h disabled, 0001h enabled except for timeout)
  6981. Return: AX = ???
  6982. SeeAlso: AX=FF97h
  6983. Note:    PREDIR.EXE is the network printer redirector included as part of the
  6984.       PC/TCP system by FTP Software, Inc.
  6985. ----------2AFF97-----------------------------
  6986. INT 2A - PC/TCP PREDIR.EXE - GET PRINT JOB TERMINATION CONFIGURATION
  6987.     AX = FF97h
  6988.     CX = what to get
  6989.         0000h ???
  6990.         0001h print-on-hotkey state
  6991.         0002h print-on-exit state
  6992.         0003h print job timeout in clock ticks
  6993.         0004h print-on-EOF state
  6994. Return: AX = status
  6995.         0000h successful
  6996.     BX = old value (0000h disabled, 0001 enabled except for timeout)
  6997. SeeAlso: AX=FF96h
  6998. ----------2B---------------------------------
  6999. INT 2B - DOS 2+ - RESERVED
  7000. Note:    this vector is not used in DOS versions <= 5.00, and points at an IRET
  7001. ----------2C---------------------------------
  7002. INT 2C - DOS 2+ - RESERVED
  7003. Note:    this vector is not used in DOS versions <= 5.00, and points at an IRET
  7004. ----------2C---------------------------------
  7005. INT 2C - STARLITE architecture - KERNEL API
  7006. Note:    STARLITE is an architecture by General Software for a series of MS-DOS
  7007.       compatible operating systems (OEM DOS, NETWORK DOS, and SMP DOS) to
  7008.       be released in 1991.    The interrupt number is subject to change
  7009.       before the actual release.
  7010. ----------2D---------------------------------
  7011. INT 2D - DOS 2+ - RESERVED
  7012. Note:    this vector is not used in DOS versions <= 5.00, and points at an IRET
  7013. ----------2D---------------------------------
  7014. INT 2D - ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION (AMIS) [v3.5]
  7015.     AH = multiplex number
  7016.     AL = function
  7017.         00h installation check
  7018.         Return: AL = 00h if free
  7019.             AL = FFh if multiplex number in use
  7020.                 CX = binary version number (CH = major, CL = minor)
  7021.                 DX:DI -> signature string (see below) identifying
  7022.                     the program using the multiplex number
  7023.         01h get entry point
  7024.         Return: AL = 00h if all API calls via INT 2D
  7025.             AL = FFh if entry point supported
  7026.                 DX:BX -> entry point for bypassing interrupt chain
  7027.         02h uninstall
  7028.         DX:BX = return address for successful uninstall (may be
  7029.             ignored by TSR)
  7030.         Return: AL = status
  7031.                 00h not implemented
  7032.                 01h unsuccessful
  7033.                 02h can not uninstall yet, will do so when able
  7034.                 03h safe to remove, but no resident uninstaller
  7035.                 (TSR still enabled)
  7036.                 BX = segment of memory block with resident code
  7037.                 04h safe to remove, but no resident uninstaller
  7038.                 (TSR now disabled)
  7039.                 BX = segment of memory block with resident code
  7040.                 05h not safe to remove now, try again later
  7041.                 FFh successful
  7042.             return at DX:BX with AX destroyed if successful and
  7043.               TSR honors specific return address
  7044.         03h request pop-up
  7045.         Return: AL = status
  7046.                 00h not implemented or TSR is not a pop-up
  7047.                 01h can not pop up at this time, try again later
  7048.                 02h can not pop up yet, will do so when able
  7049.                 03h already popped up
  7050.                 04h unable to pop up, user intervention required
  7051.                 BX = standard reason code
  7052.                     0000h unknown failure 
  7053.                     0001h interrupt chain passes through memory
  7054.                       which must be swapped out to pop up
  7055.                     0002h swap-in failed
  7056.                 CX = application's reason code if nonzero
  7057.                 FFh TSR popped up and was exited by user
  7058.                 BX = return value
  7059.                     0000h no return value
  7060.                     0001h TSR unloaded
  7061.                     0002h-00FFh reserved
  7062.                     0100h-FFFFh application-dependent
  7063.         04h determine chained interrupts
  7064.         BL = interrupt number (except 2Dh)
  7065.         Return: AL = status
  7066.                 00h not implemented
  7067.                 01h (obsolete) unable to determine
  7068.                 02h (obsolete) interrupt hooked
  7069.                 03h (obsolete) interrupt hooked, address returned
  7070.                 DX:BX -> TSR's interrupt BL handler
  7071.                 04h list of hooked interrupts returned
  7072.                 DX:BX -> interrupt hook list (see below)
  7073.                 FFh interrupt not hooked
  7074.         Notes:    since INT 2D is known to be hooked, the resident code
  7075.               need not test for BL=2Dh (to minimize its size), and
  7076.               the return value is therefore undefined in that case.
  7077.             BL is ignored if the TSR returns AL=04h; in that case,
  7078.               the caller needs to scan the return list rather than
  7079.               making additional calls to this function.  If the
  7080.               return is not 00h or 04h, then the caller must cycle
  7081.               through the remaining interrupt numbers it wishes to
  7082.               check.
  7083.             return values 01h thru 03h are disparaged and will be
  7084.               removed from the next version of this specification;
  7085.               they are included for compatibility with version 3.3,
  7086.               though they were probably never used in any
  7087.               implementation
  7088.         05h get hotkeys
  7089.         Return: AL = status
  7090.                 00h not implemented
  7091.                 FFh supported
  7092.                 DX:BX -> hotkey list (see below)
  7093.         06h-0Fh reserved for future enhancements
  7094.         Return: AL = 00h (not implemented)
  7095.         other  application-dependent
  7096. Notes:    programs should not use fixed multiplex numbers; rather, a program
  7097.       should scan all multiplex numbers from 00h to FFh, remembering the
  7098.       first unused multiplex in case the program is not yet installed.
  7099.       For multiplex numbers which are in use, the program should compare
  7100.       the first 16 bytes of the signature string to determine whether it
  7101.       is already installed on that multiplex number.  If not previously
  7102.       installed, it should use the first free multiplex number.
  7103.     functions other than 00h are not valid unless a program is installed
  7104.       on the selected multiplex number
  7105.     to be considered fully compliant with version 3.5 of the specification,
  7106.       programs must implement at least functions 00h, 02h (no resident
  7107.       uninstall code required), and 04h (return value 04h).     TSRs that
  7108.       provide hotkeys with which the user can activate them must also
  7109.       implement function 05h.  The absolute minimum fully-compliant
  7110.       implementation has an overhead of 64 bytes (80 bytes with function
  7111.       05h) plus 22 bytes per hooked interrupt (for the interrupt sharing
  7112.       protocol header and hook list entry).
  7113.     the signature string and description may be used by memory mappers
  7114.       to display the installed programs
  7115.     users of this proposal should adhere to the IBM interrupt sharing
  7116.       protocol (see below), which will permit removal of TSRs in
  7117.       arbitrary order and interrupt handler reordering.  All TSRs
  7118.       following this proposal should be removable, though they need not
  7119.       keep the code for removing themselves resident; it is acceptable
  7120.       for a separate program to perform the removal.
  7121.     A sample implementation including example TSRs and utility programs
  7122.       may be found in a separate package distributed as AMISLnnn.ZIP
  7123.       (AMISL090.ZIP as of this writing).
  7124.     Please let me know if you choose to follow this proposal.  The
  7125.       signature and a list of the private API calls you use would be
  7126.       appreciated, as well.
  7127. SeeAlso: INT 2F
  7128.  
  7129. Format of signature string:
  7130. Offset    Size    Description
  7131.  00h  8 BYTEs    blank-padded manufacturer's name (possibly abbreviated)
  7132.  08h  8 BYTEs    blank-padded product name
  7133.  10h 64 BYTEs    ASCIZ product description (optional, may be a single 00h)
  7134. Note:    it is not necessary to reserve a full 64 bytes for the description,
  7135.       just enough to store the actual ASCIZ string
  7136.  
  7137. Format of interrupt hook list [array]:
  7138. Offset    Size    Description
  7139.  00h    BYTE    interrupt number (last entry in array is 2Dh)
  7140.  01h    WORD    offset within hook list's segment of the interrupt handler
  7141.         this will point at the initial short jump of the interrupt
  7142.         sharing protocol header (see below)
  7143.  
  7144. Format of hotkey list:
  7145. Offset    Size    Description
  7146.  00h    BYTE    type of hotkey checking
  7147.         bit 0: checks before chaining INT 09
  7148.         bit 1: checks after chaining INT 09
  7149.         bit 2: checks before chaining INT 15/AH=4Fh
  7150.         bit 3: checks after chaining INT 15/AH=4Fh
  7151.         bit 4: checks on INT 16/AH=00h,01h,02h
  7152.         bit 5: checks on INT 16/AH=10h,11h,12h
  7153.         bits 6,7: reserved (0)
  7154.  01h    BYTE    number of hotkeys (may be zero if TSR can disable hotkeys)
  7155.  02h 6N BYTEs    array of hotkey definitions
  7156.         (one per hotkey, first should be primary hotkey)
  7157.         Offset    Size    Description
  7158.          00h    BYTE    hotkey scan code (00h/80h if shift states only)
  7159.                 hotkey triggers on release if bit 7 set
  7160.          01h    WORD    required shift states (see below)
  7161.          03h    WORD    disallowed shift states (see below)
  7162.          05h    BYTE    flags
  7163.                 bit 0: hotkey chained before processing
  7164.                 bit 1: hotkey chained after processing
  7165.                 bit 2: others should pass through this hotkey
  7166.                     so that it can be monitored
  7167.                 bit 3: hotkey will not activate if other keys
  7168.                     pressed/released before hotkey press is
  7169.                     completed
  7170.                 bit 4: this key is remapped into some other key
  7171.                 bit 5-7: reserved (0)
  7172. Notes:    except for bit 7, the shift states correspond exactly to the return
  7173.       values from INT 16/AH=12h.  A set bit in the required states word
  7174.       indicates that the corresponding shift state must be active when the
  7175.       hotkey's scan code is received for the hotkey to be recognized; a
  7176.       clear bit means that the corresponding state may be ignored.    A set
  7177.       bit in the disallowed shift states word indicates that the
  7178.       corresponding shift state must be inactive.
  7179.     if bit 2 is set, either control key may be pressed for the hotkey; if
  7180.       bits 8 and 10 are both set, then both control keys must be pressed.
  7181.       Similarly for bits 3 and 9/11, as well as 7 and 0/1.
  7182.     for the disallowed-states word, if one of the "either" bits is set,
  7183.       then both the corresponding left bit and right bit must be set
  7184.     examples:
  7185.         Ctrl-Alt-Del monitoring: 53h 000Ch 0003h 06h
  7186.         Alt-key tap (DESQview):     B8h 0000h 0007h 08h
  7187.         Shf-Shf-N (NOTE.COM):     31h 0003h 000Ch 00h
  7188.  
  7189. Bitmask of shift states:
  7190.  bit 0: right shift pressed
  7191.  bit 1: left shift pressed
  7192.  bit 2: either control key pressed
  7193.  bit 3: either Alt key pressed
  7194.  bit 4: ScrollLock active
  7195.  bit 5: NumLock active
  7196.  bit 6: CapsLock active
  7197.  bit 7: either shift key pressed
  7198.  bit 8: left control key pressed
  7199.  bit 9: left Alt key pressed
  7200.  bit 10: right control key pressed
  7201.  bit 11: right Alt key pressed
  7202.  bit 12: ScrollLock pressed
  7203.  bit 13: NumLock pressed
  7204.  bit 14: CapsLock pressed
  7205.  bit 15: SysRq key pressed
  7206.  
  7207. Format of interrupt sharing protocol interrupt handler entry point:
  7208. Offset    Size    Description
  7209.  00h  2 BYTEs    short jump to actual start of interrupt handler, immediately
  7210.         following this data block (EBh 10h)
  7211.  02h    DWORD    address of next handler in chain
  7212.  06h    WORD    signature 424Bh
  7213.  08h    BYTE    EOI flag
  7214.         00h software interrupt or secondary hardware interrupt handler
  7215.         80h primary hardware interrupt handler (will issue EOI)
  7216.  09h  2 BYTEs    short jump to hardware reset routine
  7217.         must point at a valid FAR procedure (may be just RETF)
  7218.  0Bh  7 BYTEs    reserved (0)
  7219.  
  7220. Signatures known to be in use:
  7221.  'Crynwr  ' 'SPELLER '    TSR spelling-checker
  7222.  'heathh  ' 'Monitor '
  7223.  'Ralf B  ' 'FASTMOUS'    example TSR included with sample AMIS library code
  7224.  'Ralf B  ' 'NOLPT n '    example TSR -- turn LPTn into bit-bucket
  7225.  'Ralf B  ' 'NOTE    '    example TSR -- popup note-taker
  7226.  'Ralf B  ' 'RBkeyswp'    RBkeyswap v3.0+ -- swap Esc/~ and LCtrl/CapsLock keys
  7227.  'Ralf B  ' 'SWITCHAR'    example TSR -- add switchar() support removed from DOS5
  7228.  'Ralf B  ' 'VGABLANK'    example TSR -- VGA-only screen blanker
  7229.  'TifaWARE' 'EATMEM  '    George A. Theall's public domain memory restrictor for
  7230.             testing programs (v1.1+)
  7231.         'RECALL  '    public domain commandline editor and history (v1.2+)
  7232.  'Todd      ' 'XPTR2   '    PC-to-Transputer interface by Todd Radel
  7233. ----------2E---------------------------------
  7234. INT 2E - DOS 2+ - PASS COMMAND TO COMMAND INTERPRETER FOR EXECUTION
  7235.     DS:SI -> commandline to execute (see below)
  7236. Return: all registers except CS:IP destroyed
  7237.     AX = status (4DOS v4.0)
  7238.        0000h successful
  7239.        FFFFh error before processing command (not enough memory, etc)
  7240.        other error number returned by command
  7241. Notes:    this call allows execution of arbitrary commands (including COMMAND.COM
  7242.       internal commands) without loading another copy of COMMAND.COM
  7243.     if COMMAND.COM is the user's command interpreter, the primary copy
  7244.       executes the command; this allows the master environment to be
  7245.       modified by issuing a "SET" command, but changes in the master
  7246.       environment will not become effective until all programs descended
  7247.       from the primary COMMAND.COM terminate
  7248.     since COMMAND.COM processes the string as if typed from the keyboard,
  7249.       the transient portion needs to be present, and the calling program
  7250.       must ensure that sufficient memory to load the transient portion can
  7251.       be allocated by DOS if necessary
  7252.     results are unpredictable if invoked by a program run from a batch file
  7253.       because this call is not reentrant and COMMAND.COM uses the same
  7254.       internal variables when processing a batch file
  7255.     hooked but ignored by 4DOS v3.0 COMMAND.COM replacement unless SHELL2E
  7256.       has been loaded
  7257.     the MSDOS 5 Programmer's Reference calls this "Reload Transient"
  7258.  
  7259. Format of commandline:
  7260. Offset    Size    Description
  7261.  00h    BYTE    length of command string, not counting trailing CR
  7262.  01h    var    command string
  7263.   N    BYTE    0Dh (CR)
  7264. ----------2E----BXE22E-----------------------
  7265. INT 2E - 4DOS v2.x-3.03 SHELL2E.COM - UNINSTALL
  7266.     BX = E22Eh
  7267.     DS:SI -> zero byte
  7268. Return: if successful, SHELL2E terminates itself with INT 21/AH=4Ch
  7269. ---------------------------------------------
  7270.