home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1996 February / PCWK0296.iso / sharewar / dos / program / interupt / interrup.l < prev    next >
Encoding:
Text File  |  1995-08-13  |  286.9 KB  |  8,124 lines

  1. Interrupt List, part 12 of 13
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  3. --------N-6F---------------------------------
  4. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  5.     AX = function
  6.         0000h enter terminal mode
  7.         Return: AX = status
  8.                 0000h no action requested
  9.                 0001h screen save
  10.         0001h reset interface and set configuration parameters
  11.         DX = bitfields
  12.             bits 2-0: model number
  13.             bits 4-3: I/O address
  14.             bits 6-5: DMA channel
  15.         Return: nothing
  16.         0002h set display parameters
  17.         DX = bitfields
  18.             bits 1-0: OIA mode
  19.             bits 4-2: monitor support
  20.         Return: nothing
  21.         0003h read status
  22.         Return: AX = status word (see #2340)
  23.         0004h read cursor position
  24.         Return: AX = cursor position
  25.         0005h get character from device buffer
  26.         DX = cursor position
  27.         Return: AH = type (00h data, 01h attribute)
  28.             AL = data or attribute character
  29.         0006h send character
  30.         DH = type (00h ASCII, 01h extended code)
  31.         DL = ASCII character or extended code
  32.         Return: nothing
  33.         0007h set timeout
  34.         DX = timeout in seconds
  35.         Return: nothing
  36.         0008h wait for location to be modified
  37.         DX = cursor position
  38.         Return: AX = status (0000h modified, nonzero timeout)
  39.         0009h NOP
  40.         000Ah restore display
  41.         Return: nothing
  42.         000Bh update device buffer
  43.         Return: AX = cursor positoin
  44.         000Ch write string to add information area
  45.         DS:DX -> string
  46.         Return: nothing
  47.         000Dh maintenance operations
  48.         DX = maintenance operation code
  49.         Return: AX = operation status
  50.         000Eh get control program version
  51.         Return: AH = release number (major version)
  52.             AL = level number (minor version)
  53.         000Fh get microcode version
  54.         Return: AH = release number (major version)
  55.             AL = level number (minor version)
  56.         0010h save or display graphics
  57.         BX = length of data buffer
  58.         CX = subfunction request code
  59.         DS:DX -> data buffer
  60.         Return: AX = return code
  61.             CX = length of PIF data
  62.         0011h perform structured field operation
  63.         CX = request number
  64.         DS:DX -> parameter list
  65.         Return: AX = status word (see #2340)
  66.             CX = error number
  67.         0012h set cursor position for direct write buffer
  68.         DX = new cursor position
  69.         Return: AX = status word (see #2340)
  70.         0013h write direct to buffer
  71.         DL = character to be written
  72.         DH = translation option
  73.         Return: AX = status word (see #2340)
  74.         0014h write direct to buffer without echo
  75.         DL = character to be written
  76.         DH = translation option
  77.         Return: AX = status word (see #2340)
  78.         0015h set direct write string length
  79.         DX = string value
  80.         Return: nothing
  81.         0016h write string direct to buffer
  82.         DS:DX -> string
  83.         Return: AX = status word (see #2340)
  84.         0017h write string direct to buffer, untranslated
  85.         DS:DX -> string
  86.         Return: AX = status word (see #2340)
  87.         0018h get direct-write cursor position
  88.         Return: AX = cursor position
  89.         0019h convert row/column to cursor position
  90.         DH = display row (1-43)
  91.         DL = display column (1-132)
  92.         Return: AX = cursor position
  93.         001Ah convert cursor position to row/column
  94.         DX = cursor position
  95.         Return: AH = display row
  96.             AL = display column
  97.         001Bh find next field
  98.         DX = initial cursor position
  99.         Return: AX = field cursor position
  100.         001Ch find previous field
  101.         DX = initial cursor position
  102.         Return: AX = field cursor position
  103.         001Dh find next unprotected field
  104.         DX = initial cursor position
  105.         Return: AX = field cursor position
  106.         001Eh find previous unprotected field
  107.         DX = initial cursor position
  108.         Return: AX = field cursor position
  109.         001Fh find next protected field
  110.         DX = initial cursor position
  111.         Return: AX = field cursor position
  112.         0020h find previous protected field
  113.         DX = initial cursor position
  114.         Return: AX = field cursor position
  115.         0021h masked search forward
  116.         DH = mask
  117.         DL = search pattern
  118.         Return: AX = cursor position or 0000h
  119.         0022h masked search backward
  120.         DH = mask
  121.         DL = search pattern
  122.         Return: AX = cursor position or 0FFFh
  123.         0023h find field length
  124.         DX = cursor position
  125.         Return: AX = field length
  126.         0024h read field
  127.         DS:DX -> buffer for field contents
  128.         Return: AX = status word (see #2340)
  129.         0025h read screen
  130.         DS:DX -> buffer for screen contents
  131.         Return: AX = status word (see #2340)
  132.         0026h read buffer untranslated
  133.         DX = cursor position
  134.         Return: AX = buffer code
  135.             CX:BX -> 3278/79 device buffer image
  136.         0027h enable/disable keyboard
  137.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  138.         Return: nothing
  139.         0028h select host session
  140.         DL = session short name
  141.         Return: AX = session information
  142.         0029h retrieve host session name
  143.         AX = short name (DFT) or 0000h (not available, CUT mode)
  144.         002Ah get current device buffer size
  145.         Return: AX = device buffer size
  146.             CX = segment of EAB
  147.         002Bh arm modified location trigger
  148.         DX = cursor position
  149.         Return: AX = status (0000h not available, 0001h successful)
  150.  
  151. Bitfields for PCOX status word:
  152. Bit(s)    Description    (Table 2340)
  153.  0,1    cursor type
  154.  2    cursor inhibited
  155.  3    display inhibited
  156.  4    feature step inhibited
  157.  5    480-character format code
  158.  6,7    unused
  159.  8-10    model number (2-5)
  160.  11    unit has been reset by controller (cleared after status returned)
  161.  12    buffer has been written into (cleared after status returned)
  162.  13    alarm has been sounded (cleared after status returned)
  163.  14-15    monitor type (01 mono, 10 color, 11 hybrid)
  164. --------N-6F00-------------------------------
  165. INT 6F - 10NET - LOGIN
  166.     AH = 00h
  167.     DS:DX -> login record (see #2341)
  168. Return: CL = security level
  169.     AX = status (see #2342)
  170. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  171.  
  172. Format of 10NET login record:
  173. Offset    Size    Description    (Table 2341)
  174.  00h  8 BYTEs    user name
  175.  08h  8 BYTEs    password
  176.  10h 12 BYTEs    name of SuperStation
  177.  
  178. (Table 2342)
  179. Values for 10NET status:
  180.  0000h    successful
  181.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  182.  02FFh    "NET_NERR" network (hardware) error
  183.  03FFh    "PAS_NERR" invalid password
  184.  04FFh    "LRN_NERR" local resource not available
  185.  05FFh    "SRN_NERR" server resource not available
  186.  06FFh    "LNM_NERR" already logged in under different name
  187.  07FFh    "LSF_NERR" login security failure (node)
  188.  08FFh    "NLI_NERR" not logged in
  189.  09FFh    "DIVZ_NERR" position calc error
  190.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  191.  0BFFh    "RFNC_NERR" request function not in range
  192.  0CFFh    "NSFH_NERR" no more server file handle entries left
  193.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  194.  0EFFh    "NUFH_NERR" no more user file handle entries left
  195.  0FFFh    "CHAT_NERR" chat permit not on
  196.  10FFh    "NSRV_NERR" not a server on request
  197.  11FFh    "NOBD_NERR" no transporter board error
  198.  12FFh    "STO_NERR" time out on send
  199.  13FFh    "INF_NERR" item not found (spool item not on queue)
  200.  14FFh    "DACS_NERR" DOS access incompatible
  201.  15FFh    "RLOCK_NERR" record already locked
  202.  16FFh    "IVP_NERR" invalid parameter
  203.  17FFh    "RLTO_NERR" record lock time out error
  204.  18FFh    "CSPL_NERR" currently spooling to named device
  205.  19FFh    "DRP_NERR" dropped receive message (throttle)
  206.  1AFFh    "SOPV_NERR" open sharing violation
  207.  1BFFh    "NTUF_NERR" no more tuf entries left
  208.  1CFFh    "NOWN_NERR" not file owner on open
  209.  1DFFh    "RSEC_NERR" read security not passed
  210.  1EFFh    "WSEC_NERR" write security not passed
  211.  1FFFh    "GSEC_NERR" group security not passed
  212.  20FFh    "SEC1_NERR" security file failure
  213.  21FFh    "ACT1_NERR" activity file failure
  214.  22FFh    "SPL1_NERR" spool control file failure
  215.  23FFh    "NMT_NERR" device not mounted (spooling)
  216.  24FFh    "RSPL_NERR" spool file has not been terminated
  217.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  218.  26FFh    "DUP_NERR" duplicate node ID
  219.  27FFh    "FNF_NERR" file not found error
  220.  28FFh    "NMF_NERR" no more files
  221.  29FFh    "UN_NERR" unknown internal system error
  222.  2AFFh    "QCP_NERR" print queue is full or corrupted
  223.  2BFFh    "IFNC_NERR" invalid function
  224.  2CFFh    "IVH_NERR" invalid handle
  225.  2DFFh    "TOF_NERR" too many files opened
  226.  2EFFh    "PNF_NERR" path not found
  227.  2FFFh    "SACT_NERR" named file is active
  228. ---10NET v5.0+ ---
  229.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  230.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  231.  32FFh    "RECV_NERR" driver could not be put in receive mode
  232.  33FFh    "NRLT_NERR" no more RLTAB entries left
  233.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  234.  35FFh    "IVD_NERR" invalid device
  235.  36FFh    "NALV_NERR" netname access level violated
  236.  37FFh    "NPIDNF_NERR" network path not found
  237.  38FFh    "SP_NERR" server is paused
  238.  39FFh    "TMNM_NERR" too many remote user names
  239.  3AFFh    "DUPD_NERR" duplicate network device
  240.  3BFFh    "DIU_NERR" shared device in use, can't delete
  241.  3CFFh    "NNWD_NERR" network name was deleted
  242.  3DFFh    "NPFS_NERR" not enough space for print file
  243.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  244.  3FFFh    "NB_NERR" network busy
  245.  40FFh    "NDNLE_NERR" network device no longer exists
  246.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  247.  42FFh    "FINT24_NERR" Fail on INT 24h
  248.  43FFh    "PEXP_NERR" password expired
  249.  44FFh    "NPUP_NERR" new password error
  250.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  251.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  252. SeeAlso: #2369
  253. Index:    error codes;10Net|10Net;error codes
  254. --------b-6F00-------------------------------
  255. INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR
  256.     AH = 00h
  257.     BP = ID for driver (see #2343)
  258.     DH = data type (see #2344)
  259.     DL = physical device driver's index (driver ID / 6)
  260.     BX,CX = data
  261.     ES:0000h -> physical device's Describe Record (see #2351)
  262.     ---keypress event data---
  263.         BH = keyboard state (only if bit 5 of DH set) (see #2345)
  264.         BL = scancode (if bit 4 of DH clear)
  265.         CX = number of scancodes in list (if bit 4 of DH set)
  266.         ES:SI -> scancode list (if bit 4 of DH set)
  267.     ---motion event data---
  268.         BX = new X position (abs device) or X increment (relative device)
  269.         CX = new Y position (abs device) or Y increment (relative device)
  270.     ---button event data
  271.         BL = button information
  272.         bits 15-8 reserved
  273.         bit 7: button state (0 = down, 1 = up)
  274.         bits 6-0: button number (0-7)
  275.         BH = reserved
  276. Return: AH = status (see #2346)
  277.     BP,DS destroyed
  278.     ---if device is keyboard translator---
  279.         BL = translated scancode
  280.         BH = new keyboard state (if DH bit 5 set) (see #2345)
  281.         DH = new scancode type (see #2344)
  282. Notes:    INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is
  283.       unavailable because of its use as a BIOS extension software interrupt
  284.     the INT 6F handler consists of an instruction to load DS with the
  285.       driver's data segment followed by an indexed far jump using BP to
  286.       select the destination vector; since the interrupt handler is
  287.       located immediately following the dispatch table, the HP_VECTOR_TABLE
  288.       may be found by looking at offset 0000h in the INT 6F segment, and
  289.       its size is equal to the offset of the interrupt handler
  290.     each entry in the HP_VECTOR table consists of a DWORD for the driver's
  291.       entry point address and a WORD for the driver's data segment
  292.     this function is not user-callable, as it is a response to a physical
  293.       event, and assumes that the caller has already handled the physical
  294.       interrupt and updated the Describe Record (see #2351) to reflect
  295.       the event
  296. SeeAlso: INT 6C"HP Vectra",INT 6F/AH=02h"HP Vectra"
  297.  
  298. (Table 2343)
  299. Values for HP Vectra EX-BIOS driver ID:
  300.  0000h    V_SCOPY (null driver, but DS value points at system copyright string)
  301.  0006h    V_DOLITTLE (null driver)
  302.  000Ch    V_PNULL (null driver)
  303.  0012h    V_SYSTEM
  304.  0018h    reserved
  305.  001Eh    V_S8259
  306.  0024h    reserved
  307.  002Ah    V_SINPUT
  308.  0030h    reserved
  309.  0036h    V_QWERTY (keyboard translator)
  310.  003Ch    V_SOFTKEY (keyboard translator)
  311.  0042h    V_FUNCTION (keyboard translator)
  312.  0048h    V_NUMPAD (keyboard translator)
  313.  004Eh    V_CCP (keyboard translator)
  314.  0054h    V_SVIDEO
  315.  005Ah    V_STRACK
  316.  0060h    V_EVENT_TOUCH
  317.  0066h    V_EVENT_TABLET
  318.  006Ch    V_EVENT_POINTER
  319.  0072h    reserved
  320.  0078h    reserved
  321.  007Eh    reserved
  322.  0084h    reserved
  323.  008Ah    V_CCPCUR (keyboard translator)
  324.  0090h    V_RAW (keyboard translator)
  325.  0096h    V_CCPNUM (keyboard translator)
  326.  009Ch    V_OFF (keyboard translator)
  327.  00A2h    V_CCPGID (translator: cursor control pad keys to GID data)
  328.  00A8h    V_SKEY2FKEY (keyboard translator)
  329.  00AEh    V_8041
  330.  00B4h    V_PGID_CCP
  331.  00BAh    C_LTABLET
  332.  00C0h    V_LPOINTER (pointing device: mouse, etc.)
  333.  00C6h    V_LTOUCH (touch screen)
  334.  00CCh    V_LHPMOUSE
  335.  00D2h    ???
  336.  ...
  337.  0102h    ???
  338.  0108h    V_LNULL
  339.  010Eh    reserved
  340.  0114h    V_HPHIL
  341.  011Ah-01C2h reserved
  342.  016Eh    V_SCANDOOR (scancode management chip driver) (ES/QS/RS only)
  343.  01C8h-0228h available
  344.  
  345. (Table 2344)
  346. Values for HP Vectra EX-BIOS ISR data type:
  347.  00h    reserved "T_KC_R0"
  348.  01h    reserved "T_KC_R1"
  349.  02h    ASCII data
  350.  03h    reserved "T_KC_R3"
  351.  04h    HP150 keyboard (ITF) scancode
  352.  05h    reserved "T_KC_R5"
  353.  06h    device-definable type
  354.  07h    HP Vectra keyboard set
  355.  08h    IBM AT scancode set
  356.  09h    button data
  357.  0Ah    IBM PC scancode set
  358.  0Bh    Softkey keypad (F1-F8)
  359.  0Ch    function key keypad (F1-F10)
  360.  0Dh    HP Cursor Control Pad keypad
  361.  0Eh    Qwerty keypad
  362.  0Fh    Numeric keypad
  363.  1xh    bit 4 set: string of CX scancode of type 0xh at ES:SI
  364.  2xh    bit 5 set: BH contains current keyboard state
  365.  40h    signed 8-bit relative data
  366.  41h    signed 16-bit relative data
  367.  42h    unsigned 8-bit absolute data
  368.  43h    unsigned 16-bit absolute data
  369.  45h    specially-formed data (80x25) generated by V_LTOUCH
  370.  46h    specially-formed data (640x200) generated by V_LTABLET
  371.  47h    specially-formed data (640x200) generated by V_LPOINTER
  372.  
  373. Bitfields for HP Vectra EX-BIOS keyboard state:
  374. Bit(s)    Description    (Table 2345)
  375.  0    Alt pressed
  376.  1    Left Shift pressed
  377.  2    Right Shift pressed
  378.  3    Ctrl pressed
  379.  4    CapsLock active
  380.  5    NumLock active
  381.  6    Right unlabeled key pressed (some international keyboards)
  382.  7    Left unlabeled key pressed (some international keyboards)
  383. SeeAlso: #0442
  384.  
  385. (Table 2346)
  386. Values for HP Vectra EX-BIOS status:
  387.  00h    successful
  388.  02h    unsupported function
  389.  04h    not serviced
  390.  06h    done (no further processing should be performed on the ISR event)
  391.  F2h    device is out of paper
  392.  F4h    device is offline
  393.  F6h    no more space for more drivers
  394.  F8h    driver is busy
  395.  FAh    bad parameter
  396.  FEh    operation failed
  397. Note:    status codes are always even; negative values (>= 80h) indicate errors
  398.       while positive values indicate exceptional conditions
  399.  
  400. Format of HP EX-BIOS driver header data:
  401. Offset    Size    Description    (Table 2347)
  402.  00h    WORD    driver attributes (see #2348)
  403.  02h    WORD    string index of driver's name
  404.  04h    WORD    driver's default logical device vector (see #2343)
  405.  06h    WORD    driver's parent class (bitset) (see #2349)
  406.  08h    WORD    driver's child class (bitset)
  407.  0Ah    WORD    driver's parent vector
  408.  0Ch    WORD    driver's child vector
  409.  0Eh    BYTE    major subaddress
  410.  0Fh    BYTE    minor subaddress
  411. Notes:    this structure is located at offset 0 in the driver's data segment,
  412.       which in turn may be read from the HP_VECTOR_TABLE (see note in
  413.       main entry)
  414.     only the first WORD is required, and everything from offset 6 onward
  415.       is only required if the device wishes to perform device mapping
  416. SeeAlso: #2350,#2351
  417.  
  418. Bitfields for HP EX-BIOS driver header attributes:
  419. Bit(s)    Description    (Table 2348)
  420.  15    this is a complete driver header
  421.  14    "ATR_DEVCFG" reserved
  422.  13    driver can be mapped with the parent vector at offset 0Ah
  423.  12    driver can be mapped with the child vector at offset 0Ch
  424.  11-9    driver type
  425.     000 reserved vector
  426.     001 free vector
  427.     010 EX-BIOS service
  428.     011 logical driver (mapped from parent to child)
  429.     100 mappable driver (cannot be last in driver chain)
  430.     101 mappable driver that is last in driver chain
  431.     110 input driver (mappable)
  432.     111 reserved
  433.  8    "ATR_STRING" reserved
  434.  7    call SF_START whenever driver is remapped
  435.  6-5    addressing requirements
  436.     00 no subaddresses required
  437.     01 requires major address be stored at offset 0Eh
  438.     10 requires minor address be stored at offset 0Fh
  439.     11 required major,minor, and mid addresses (minor in low nybble of
  440.           offset 0Fh, mid address in high nybble of 0Fh)
  441.  4    driver can be shared between several parent drivers
  442.  3    driver can be shared between several child drivers
  443.  2    this driver header is in ROM
  444.  1    "ATR_YIELD" reserved
  445.  0    reserved
  446. SeeAlso: #2347,#2349
  447.  
  448. Bitfields for HP EX-BIOS driver class:
  449. Bit(s)    Description    (Table 2349)
  450.  15    maps F1 to F8 softkeys
  451.  14    keyboard
  452.  13    cursor pad
  453.  12    console device
  454.  11    serial output device (may be capable of limited input)
  455.  10    "CL_COMM" reserved
  456.  9    interfaces multiple resources transparent to operating system
  457.  8    serial output device filter (can be mapped between logical and physical
  458.       driver to perform translations)
  459.  7    addressed block device
  460.  6    priority boot device
  461.  5    logical graphics input device
  462.  4    physical graphics input device (can map to child of another driver)
  463.  3    "CL_GID" can map to an event
  464.  2    physical touch device
  465.  1    reserved
  466.  0    class extension bit
  467. Note:    special values: FFFFh maps to all other devices (V_PNULL), and 0000h
  468.       maps to no other driver
  469. SeeAlso: #2347
  470.  
  471. Format of HP EX-BIOS global data area:
  472. Offset    Size    Description    (Table 2350)
  473.  00h 20 BYTEs    reserved
  474.  14h    BYTE    sound driver status
  475.  15h    BYTE    number of pending key clicks (max 4) (see AH=34h/BP=0012h)
  476.  16h    BYTE    current tick duration scaling factor
  477.  17h    BYTE    current key click volume
  478.  18h    WORD    current beep period (10 us increments) (see AH=3Ch/BP=0012h)
  479.  1Ah    WORD    current beep duration (10 us increments)
  480.  1Ch    BYTE    number of pending beep functions (max 4) (see AH=3Ah/BP=0012h)
  481.  1Dh    BYTE    reserved
  482.  1Eh    WORD    next unused string index number
  483.  20h    ...    reserved
  484. SeeAlso: #2347
  485.  
  486. Format of HP EX-BIOS Driver Describe Record:
  487. Offset    Size    Description    (Table 2351)
  488.  00h 16 BYTEs    EX-BIOS driver header data (see #2347)
  489.  10h    BYTE    device GID type
  490.         bits 7-4: device type
  491.         bits 3-0: physical device link address
  492.  11h    BYTE    physical device ID (see #2353)
  493.  12h    WORD    logical device status bits (see #2352)
  494.  14h    BYTE    physical device vector number (driver ID / 6)
  495.  15h    BYTE    maximum number of axes reported (0-2)
  496.  16h    BYTE    device class
  497.         bits 7-4: current class
  498.         bits 3-0: default class
  499.  17h    BYTE    number of buttons/prompts
  500.         bits 7-4: number of prompts
  501.         bits 3-0: number of buttons
  502.  18h    BYTE    reserved
  503.  19h    BYTE    (physical devices only) maximum output burst length
  504.  1Ah    BYTE    (physical devices only) number of write registers
  505.  1Bh    BYTE    (physical devices only) number of read registers
  506.  1Ch    BYTE    button transition flags (bit 0 = button0, etc.)
  507.  1Dh    BYTE    current button states (bit 0 = button0, etc.)
  508.  1Eh    WORD    device resolution
  509.  20h    WORD    maximum x-axis count
  510.  22h    WORD    maximum y-axis count
  511.  24h    WORD    X position data for absolute devices
  512.  26h    WORD    Y position data for absolute devices
  513.  28h    WORD    X delta for relative devices
  514.  2Ah    WORD    Y delta for relative devices
  515.  2Ch    WORD    (logical devices only) X-axis scaling accumulator
  516.         (fraction of one logical unit)
  517.  2Eh    WORD    (logical devices only) Y-axis scaling accumulator
  518.         (fraction of one logical unit)
  519.  
  520. Bitfields for HP logical device status flags:
  521. Bit(s)    Description    (Table 2352)
  522.  15-5    reserved
  523.  4    event enabled
  524.  3    tracking enabled
  525.  2    clipping enabled
  526.  1    button error occurred
  527.  0    interrupt in progress
  528. SeeAlso: #2351
  529.  
  530. (Table 2353)
  531. Values for HP-HIL device ID:
  532.  00h-02h reserved
  533.  03h    Swiss-French keyboard
  534.  04h-06h reserved
  535.  07h    Canadian-English keyboard
  536.  08h-0Ah reserved
  537.  0Bh    Italian keyboard
  538.  0Ch    reserved
  539.  0Dh    Dutch keyboard
  540.  0Eh    Swedish keyboard
  541.  0Fh    German keyboard
  542.  10h-12h reserved
  543.  13h    Spanish keyboard
  544.  14h    reserved
  545.  15h    Belgian (Flemish) keyboard
  546.  16h    Finnish keyboard
  547.  17h    UK keyboard
  548.  18h    French-Canadian keyboard
  549.  19h    Swiss-German keyboard
  550.  1Ah    Nerwegian keyboard
  551.  1Bh    Frensh keyboard
  552.  1Ch    Danish keyboard
  553.  1Dh    Katakana keyboard
  554.  1Eh    Latin American-Spanish keyboard
  555.  1Fh    US-American keyboard
  556.  20h-2Bh reserved
  557.  2Ch-2Fh tone generator
  558.  30h-3Fh reserved
  559.  40h-5Bh reserved (character entry)
  560.  5Ch-5Fh barcode reader
  561.  60h-67h reserved (relative positions)
  562.  68h-6Bh mouse
  563.  6Ch-6Fh trackball
  564.  70h-7Fh reserved (relative positions)
  565.  80h-87h reserved (absolute positions)
  566.  88h-8Bh touchpad
  567.  8Ch-8Fh touch screen
  568.  90h-97h graphics tablet
  569.  98h-9Fh reserved (absolute positions)
  570.  A0h-BFh compressed keyboard (91-93 keys)
  571.  C0h-DFh extended keyboard (107-109 keys)
  572.  E0h-FFh standard keyboard (85-87 keys)
  573. --------N-6F01-------------------------------
  574. INT 6F - 10NET - LOGOFF
  575.     AH = 01h
  576.     DS:DX -> superstation ID or nulls (12 bytes)
  577. Return: CX = number of files closed
  578.     AX = status (see also #2342)
  579.         08FFh superstation ID not already logged in
  580. SeeAlso: AH=00h"10NET",AH=81h
  581. --------N-6F02-------------------------------
  582. INT 6F - 10NET - STATUS OF NODE
  583.     AH = 02h
  584.     DS:DX -> 512-byte status record (see #2355)
  585. Return:    CF clear if successful
  586.     CF set on error
  587.         AX = error code (see #2342)
  588. SeeAlso: INT 21/AX=5E01h"10NET"
  589.  
  590. (Table 2354)
  591. Values for 10NET station type:
  592.  00h    workstation
  593.  01h    superstation
  594.  02h    gateway station
  595.  03h    gateway active
  596.  04h    logged into multiple superstations
  597.  05h    reserved
  598.  
  599. Format of 10NET node status record:
  600. Offset    Size    Description    (Table 2355)
  601.  00h  8 BYTEs    user name (0 if none)
  602.  08h    BYTE    station type (see #2354)
  603.  09h 24 BYTEs    list of superstations logged into more than one superstation
  604.  21h 12 BYTEs    node ID
  605.  2Dh    WORD    message count for this station (send for user node, receive for
  606.           superstations)
  607. ---for superstations only---
  608.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  609.  31h    BYTE    user service flags (see #2356)
  610.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  611.  33h    BYTE    number of unprinted spool files
  612.  34h    BYTE    number of opened files
  613.  35h    BYTE    number of logged on nodes
  614.  36h    BYTE    primary drive (1=A:)
  615.  37h    BYTE    reserved
  616.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  617. 1F4h  3 BYTEs    time: sec/min/hrs
  618. 1F7h  3 BYTEs    date: day/mon/year-1980
  619.  
  620. Bitfields for 10NET user service flags:
  621. Bit(s)    Description    (Table 2356)
  622.  7    gate
  623.  6    print permit on
  624.  4    SUBMIT is on
  625.  3    mail waiting for node
  626.  2    calendar waiting for you
  627.  1    news waiting for you
  628.  0    mail waiting for you
  629. --------b-6F0200-----------------------------
  630. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER
  631.     AX = 0200h
  632.     BP = driver ID (see #2343)
  633.     BX = "last-used DS" value from HP global data area (see #2350)
  634. Return: AH = status (see #2346)
  635.     BX = new "last-used DS" value
  636.     BP,DS destroyed
  637. SeeAlso: AH=00h"HP Vectra",AX=0202h,AH=0Ah"F_INS_FIXOWNDS"
  638. --------b-6F0202-----------------------------
  639. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ.
  640.     AX = 0202h
  641.     BP = driver ID (see #2343)
  642. Return: AH = status (see #2346)
  643.     BP,DS destroyed
  644. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra"
  645. --------W-6F0204-----------------------------
  646. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  647.     AX = 0204h
  648. Return: AX = status
  649.         0000h switch is allowed
  650.         other switch not allowed
  651. Note:    intercepting this call will allow a DOS application to ensure that
  652.       Windows will not switch away from it.
  653. --------b-6F0204-----------------------------
  654. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE
  655.     AX = 0204h
  656.     BP = driver ID (see #2343)
  657. Return: AH = status (see #2346)
  658.     DX = device state from Logical Describe Record (see #2351,#2357)
  659.     BP,DS destroyed
  660. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0206h"HP Vectra"
  661.  
  662. Bitfields for HP Vectra V_HPHIL driver state:
  663. Bit(s)    Description    (Table 2357)
  664.  0    link configuration in progress
  665.  1    reserved
  666.  2    no devices attached
  667.  3    general failure
  668.  4,5    reserved
  669.  6    HP-HIL driver open
  670.  7    reserved
  671.  8    link has been reconfigured
  672.  9    error during output request
  673.  10    reserved
  674.  11    output request complete
  675.  12    timeout
  676.  13-15    reserved
  677. --------b-6F0206-----------------------------
  678. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION
  679.     AX = 0206h
  680.     BP = driver ID (see #2343)
  681. Return: AH = status (see #2346)
  682.     BX = driver release date code
  683.         (BL = BCD years since 1960, BH = BCD week number within year)
  684.     CX = length of version string
  685.     ES:DI -> version string
  686.     BP,DS destroyed
  687. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra",AX=0208h
  688. --------b-6F0208-----------------------------
  689. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR
  690.     AX = 0208h
  691.     BP = driver ID (see #2343)
  692. Return: AH = status (see #2346)
  693.     BP,DS destroyed
  694. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=020Ah,AX=020Ch
  695. --------b-6F020A-----------------------------
  696. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES
  697.     AX = 020Ah
  698.     BP = driver ID (see #2343)
  699. Return: AH = status (see #2346)
  700.     BX,CX = current attributes
  701.     BP,DS destroyed
  702.     ---for V_LTOUCH, V_LPOINTER---
  703.         BX = logical width
  704.         CX = logical height
  705. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ch
  706. --------b-6F020C-----------------------------
  707. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES
  708.     AX = 020Ch
  709.     BP = driver ID (see #2343)
  710.     BX,CX = new attributes
  711.     ---for V_LTOUCH, V_LPOINTER---
  712.         BX = new logical width
  713.         CX = new logical height
  714. Return: AH = status (see #2346)
  715.     BP,DS destroyed
  716. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ah
  717. --------b-6F020E-----------------------------
  718. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS
  719.     AX = 020Eh
  720.     BP = driver ID (see #2343) for V_HPHIL, others
  721. Return: AH = status (see #2346)
  722.     BP,DS destroyed
  723. Desc:    place device in open state, which allows output to the device
  724. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=0210h
  725. --------b-6F0210-----------------------------
  726. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER
  727.     AX = 0210h
  728.     BP = driver ID (see #2343) for V_HPHIL, others
  729. Return: AH = status (see #2346)
  730.     BP,DS destroyed
  731. Desc:    place device in closed state, which disallows output to the device
  732. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh
  733. --------b-6F0212-----------------------------
  734. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT
  735.     AX = 0212h
  736.     BP = driver ID (see #2343)
  737. Return: AH = status (see #2346)
  738.     BP,DS destroyed
  739. Desc:    report to driver that a previously-requested timeout interval has
  740.       expired
  741. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0214h,AX=0216h
  742. --------b-6F0214-----------------------------
  743. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED
  744.     AX = 0214h
  745.     BP = driver ID (see #2343)
  746. Return: AH = status (see #2346)
  747.     BP,DS destroyed
  748. Desc:    report to driver that a previously-requested 60 Hz interval has
  749.       expired
  750. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0216h
  751. --------b-6F0216-----------------------------
  752. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST
  753.     AX = 0216h
  754.     BP = driver ID (see #2343)
  755. Return: AH = status (see #2346)
  756.     BP,DS destroyed
  757.     ---on failure---
  758.     CX = length of reason string
  759.     ES:DI -> string describing error
  760. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0214h
  761. --------N-6F03-------------------------------
  762. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  763.     AH = 03h
  764.     DS:DI -> node ID (optional)
  765. Return: ES:BX -> configuration table (see #2358)
  766. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  767.  
  768. Format of 10NET configuration table:
  769. Offset    Size    Description    (Table 2358)
  770. -41    WORD    local device table address
  771. -39    WORD    extended network error mapping table address
  772. -37    WORD    shared device table address
  773. -35    WORD    mounted device table address
  774. -33    BYTE    receive buffer counter
  775. -32    BYTE    collect buffer counter
  776. -31    WORD    TUF address
  777. -29    BYTE    enable flag
  778. -28    BYTE    FCB keep flag
  779. -27    WORD    reserved
  780. ---up to here, 10NET v3.3---
  781. -25    WORD    count of dropped Send6F
  782. -23    WORD    buffer start address
  783. -21    WORD    comm driver base address
  784. -19    WORD    send/receive retry count
  785. -17    BYTE    number of 550ms loops before timeout
  786. -16    WORD    UFH address
  787. -14    WORD    CDIR address
  788. -12    WORD    LTAB address
  789. -10    WORD    SFH address
  790. -8    WORD    FTAB address
  791. -6    WORD    RLTAB address
  792. -4    WORD    SMI address
  793. -2    WORD    NTAB address
  794.  00h    WORD    address of first CT_DRV
  795.  02h    BYTE    number of DRV entries
  796.  03h  8 BYTEs    login name
  797.  0Bh 12 BYTEs    node ID (blank-padded)
  798.  17h  6 BYTEs    node address
  799.  1Dh    BYTE    flag
  800.  1Eh    BYTE    CT_CFLG (chat permit)
  801.         bit 1: sound bell
  802.         bit 0: CHAT permit
  803.  1Fh    BYTE    CT_PSFLG (see #2359)
  804.  20h    BYTE    in 10Net flag
  805.  21h    WORD    receive message count
  806.  23h    WORD    send message count
  807.  25h    WORD    retry count
  808.  27h    WORD    failed count
  809.  29h    WORD    driver errors
  810.  2Bh    WORD    dropped responses/CHATs
  811.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  812.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  813.  3Ch    BYTE    active CB channel
  814.  3Dh    BYTE    received 6F messages on queue
  815.  3Eh  9 BYTEs    activity counters for channels 1-9
  816. ---beyond here, 10NET v3.3---
  817.  47h    BYTE    bit 0: RS232 gate
  818.         bit 1: Send6F gate (user set)
  819.  48h    DWORD    pointer into gate (user set)
  820.  4Ch    DWORD    pointer into 10Net send
  821.  50h  N WORDs    addresses of timer blocks
  822.  
  823. Bitfields for CT_PSFLG:
  824. Bit(s)    Description    (Table 2359)
  825.  5    PRINT permit
  826.  4    KB initiated
  827.  3    CHAT called FOXPTRM
  828.  2    SUBMIT active
  829.  1    SUBMIT received
  830.  0    SUBMIT permit
  831. --------N-6F04-------------------------------
  832. INT 6F - 10NET - SEND
  833.     AH = 04h
  834.     DS:BX -> send record (see #2360)
  835.     DS:DX -> data (max 1024 bytes)
  836. Return:    CF clear if successful
  837.     CF set on error
  838.         AX = error code (see #2342)
  839. SeeAlso: AH=05h,AH=09h,AH=0Ah
  840.  
  841. Format of 10NET send record:
  842. Offset    Size    Description    (Table 2360)
  843.  00h 12 BYTEs    receiving node's ID
  844.         if first byte has high-order bit set, message is directed to
  845.           the CT_RGATE vector at the receiver
  846.         if second byte is 00h, first byte is taken as a CB
  847.           channel number and delivered to all nodes on same channel
  848.  0Ch    WORD     length of data at DX
  849. --------b-6F04--BP0012-----------------------
  850. INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS
  851.     AH = 04h
  852.     BP = 0012h (driver ID for V_SYSTEM)
  853. Return: AH = status (see #2346)
  854.     ES = segment of HP_VECTOR_TABLE (see also AH=00h"HP Vectra")
  855.     BP,DS destroyed
  856. SeeAlso: AH=00h"HP Vectra",AH=06h"F_INS_XCHGFIX",AH=08h"F_INS_XCHGRSVD"
  857. --------b-6F04--BP005A-----------------------
  858. INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS
  859.     AH = 04h
  860.     BP = 005Ah (driver ID for V_STRACK)
  861. Return: AH = status (see #2346)
  862.     BP,DS destroyed
  863. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=08h"F_TRACK_OFF"
  864. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  865. --------b-6F0400-----------------------------
  866. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES
  867.     AX = 0400h
  868.     BP = driver ID (see #2343)
  869.     DH,DL = major,minor address (optional)
  870. Return: AH = status (see #2346)
  871.     BP,DS destroyed
  872. Desc:    reserve specified sub-addresses on an already-allocated driver for
  873.       exclusive access
  874. Note:    this function is documented as present but unsupported in the drivers
  875.       V_LTABLET, V_LPOINTER, and V_LTOUCH
  876. SeeAlso: AH=02h"HP Vectra",AX=0402h"SF_UNLOCK"
  877. --------b-6F0400BP001E-----------------------
  878. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT
  879.     AX = 0400h
  880.     BP = 001Eh (driver ID for V_S8259)
  881. Return: AH = status (see #2346)
  882.     BP,DS destroyed
  883. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  884. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  885. --------b-6F0400BP002A-----------------------
  886. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS
  887.     AX = 0400h
  888.     BP = 002Ah (driver ID for V_SINPUT)
  889. Return: AH = status (see #2346)
  890.     BP,DS destroyed
  891. Desc:    set the parent vectors in the physical device driver headers to their
  892.       system defaults
  893. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=002Ah,AX=0404h/BP=002Ah
  894. SeeAlso: AH=06h"F_INQUIRE"
  895. --------b-6F0400BP0054-----------------------
  896. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK
  897.     AX = 0400h
  898.     BP = 0054h (driver ID for V_SVIDEO)
  899.     ???
  900. Return: AH = status (see #2346)
  901.     BX = 4850h ('BP')
  902.     BP,DS destroyed
  903.     ???
  904. Note:    only partially documented
  905. SeeAlso: AX=0402h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  906. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  907. --------b-6F0400BP00CC-----------------------
  908. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER
  909.     AX = 0400h
  910.     BP = 00CCh (driver ID for V_LHPMOUSE)
  911. Return: AH = status (see #2346)
  912.     BP,DS destroyed
  913. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=00CCh
  914. --------b-6F0402-----------------------------
  915. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES
  916.     AX = 0402h
  917.     BP = driver ID (see #2343)
  918.     DH,DL = major,minor address (optional)
  919. Return: AH = status (see #2346)
  920.     BP,DS destroyed
  921. Desc:    release specified sub-addresses from exclusive access
  922. Note:    this function is documented as present but unsupported in the drivers
  923.       V_LTABLET, V_LPOINTER, and VLTOUCH
  924. SeeAlso: AH=02h"HP Vectra",AX=0400h"SF_LOCK"
  925. --------b-6F0402BP001E-----------------------
  926. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT
  927.     AX = 0402h
  928.     BP = 001Eh (driver ID for V_S8259)
  929. Return: AH = status (see #2346)
  930.     BP,DS destroyed
  931. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0406h/BP=001Eh
  932. SeeAlso: AX=040Ah/BP=001Eh
  933. --------b-6F0402BP002A-----------------------
  934. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS
  935.     AX = 0402h
  936.     BP = 002Ah (driver ID for V_SINPUT)
  937.     ES:SI -> buffer for link table (see #2361)
  938. Return: AH = status (see #2346)
  939.     ES:SI buffer filled
  940.     BP,DS destroyed
  941. Desc:    get the parent and child vectors for the seven supported physical
  942.       device drivers
  943. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0404h"SF_SET_LINKS"
  944. SeeAlso: AH=06h"F_INQUIRE"
  945.  
  946. Format of HP Vectra EX-BIOS driver link table:
  947. Offset    Size    Description    (Table 2361)
  948.  00h    BYTE    vector number of HP-HIL device #1's child
  949.  01h    BYTE    vector number of HP-HIL device #1's parent
  950.     ...
  951.  0Ch    BYTE    vector number of HP-HIL device #7's child
  952.  0Dh    BYTE    vector number of HP-HIL device #7's parent
  953. --------b-6F0402BP0054-----------------------
  954. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO
  955.     AX = 0402h
  956.     BP = 0054h (driver ID for V_SVIDEO)
  957.     ???
  958. Return: AH = status (see #2346)
  959.     BP,DS destroyed
  960.     ???
  961. Note:    only partially documented
  962. SeeAlso: AX=0400h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  963. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  964. --------b-6F0402BP00CC-----------------------
  965. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT
  966.     AX = 0402h
  967.     BP = 00CCh (driver ID for V_LHPMOUSE)
  968. Return: AH = status (see #2346)
  969.     BP,DS destroyed
  970. Desc:    set up INT 33 even if no mouse is installed
  971. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=00CCh
  972. --------b-6F0404-----------------------------
  973. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON
  974.     AX = 0404h
  975.     BP = driver ID (see #2343) for V_LPOINTER, V_LTOUCH, V_LTABLET
  976. Return: AH = status (see #2346)
  977.     BP,DS destroyed
  978. Desc:    enables graphics cursor tracking of the logical device's movement
  979. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0406h"SF_TRACK_OFF"
  980. --------b-6F0404BP001E-----------------------
  981. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT
  982.     AX = 0404h
  983.     BP = 001Eh (driver ID for V_S8259)
  984. Return: AH = status (see #2346)
  985.     BP,DS destroyed
  986. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_ENABLE_SVC",AX=0406h"SF_DISABLE_KBD"
  987. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  988. --------b-6F0404BP002A-----------------------
  989. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS
  990.     AX = 0404h
  991.     BP = 002Ah (driver ID for V_SINPUT)
  992.     ES:SI -> buffer containing link table (see #2361)
  993. Return: AH = status (see #2346)
  994.     BP,DS destroyed
  995. Desc:    specify the parent and child vectors for the seven supported physical
  996.       device drivers
  997. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0402h"SF_GET_LINKS"
  998. SeeAlso: AH=06h"F_INQUIRE"
  999. --------b-6F0404BP0054-----------------------
  1000. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO
  1001.     AX = 0404h
  1002.     BP = 0054h (driver ID for V_SVIDEO)
  1003.     ???
  1004. Return: AH = status (see #2346)
  1005.     BP,DS destroyed
  1006.     ???
  1007. Note:    only partially documented
  1008. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0406h/BP=0054h
  1009. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1010. --------b-6F0406-----------------------------
  1011. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF
  1012.     AX = 0406h
  1013.     BP = driver ID (see #2343) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1014. Return: AH = status (see #2346)
  1015.     BP,DS destroyed
  1016. Desc:    disables graphics cursor tracking of the logical device's movement
  1017. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0404h"SF_TRACK_ON"
  1018. SeeAlso: AX=0408h"SF_CREATE_EVENT"
  1019. --------b-6F0406BP001E-----------------------
  1020. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT
  1021.     AX = 0406h
  1022.     BP = 001Eh (driver ID for V_S8259)
  1023. Return: AH = status (see #2346)
  1024.     BP,DS destroyed
  1025. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  1026. SeeAlso: AX=040Ah"SF_DISABLE_HPHIL"
  1027. --------b-6F0406BP0054-----------------------
  1028. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG
  1029.     AX = 0406h
  1030.     BP = 0054h (driver ID for V_SVIDEO)
  1031.     ???
  1032. Return: AH = status (see #2346)
  1033.     BP,DS destroyed
  1034.     ???
  1035. Note:    only partially documented
  1036. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1037. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1038. --------b-6F0406BP0114-----------------------
  1039. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK
  1040.     AX = 0406h
  1041.     BP = 0114h (driver ID for V_HPHIL)
  1042. Return: AH = status (see #2346)
  1043.     BP,DS destroyed
  1044. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0408h"SF_CRV_WR_PROMPTS"
  1045. SeeAlso: AX=0410h"SF_CRV_SELF_TEST"
  1046. --------b-6F0408-----------------------------
  1047. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER
  1048.     AX = 0408h
  1049.     BP = driver ID (see #2343) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1050.     ES:SI -> new event handler (see AH=00h"HP Vectra")
  1051.     DX = new handler's DS
  1052. Return: AH = status (see #2346)
  1053.     ES:SI -> old event handler
  1054.     DX = old handler's DS
  1055.     BP,DS destroyed
  1056. Desc:    specify routine to be called on logical device events
  1057. Note:    when events occur, the event handler is called with the same registers
  1058.       as the "F_ISR" function on AH=00h"HP Vectra"
  1059. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0406h"SF_TRACK_OFF"
  1060. SeeAlso: AX=040Ah"SF_EVENT_ON",AX=040Ch"SF_EVENT_OFF",AH=06h"F_SAMPLE"
  1061. --------b-6F0408BP001E-----------------------
  1062. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT
  1063.     AX = 0408h
  1064.     BP = 001Eh (driver ID for V_S8259)
  1065. Return: AH = status (see #2346)
  1066.     BP,DS destroyed
  1067. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0404h/BP=001Eh
  1068. SeeAlso: AX=040Ah/BP=001Eh
  1069. --------b-6F0408BP0054-----------------------
  1070. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN
  1071.     AX = 0408h
  1072.     BP = 0054h (driver ID for V_SVIDEO)
  1073.     ???
  1074. Return: AH = status (see #2346)
  1075.     BP,DS destroyed
  1076.     ???
  1077. Note:    only partially documented
  1078. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1079. SeeAlso: AX=0406h/BP=0054h,AX=040Ah/BP=0054h
  1080. --------b-6F0408BP0114-----------------------
  1081. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT
  1082.     AX = 0408h
  1083.     BP = 0114h (driver ID for V_HPHIL)
  1084.     BX = device address indicator (see #2362)
  1085.     DH = HP HIL device major address
  1086.     DL = prompt number
  1087. Return: AH = status (see #2346)
  1088.     BP,DS destroyed
  1089. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0406h/BP=0114h,AX=040Ah/BP=0114h
  1090.  
  1091. Bitfields for HP Vectra V_HPHIL device address indicator:
  1092. Bit(s)    Description    (Table 2362)
  1093.  15-14    reserved
  1094.  13    address in DH is valid (must be set, clear is reserved)
  1095.  12    valid value in DL
  1096.  11-0    reserved
  1097. --------b-6F040A-----------------------------
  1098. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER
  1099.     AX = 040Ah
  1100.     BP = driver ID (see #2343) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1101. Return: AH = status (see #2346)
  1102.     BP,DS destroyed
  1103. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ch"SF_EVENT_OFF"
  1104. SeeAlso: AX=040Eh"SF_CLIPPING_ON"
  1105. --------b-6F040ABP001E-----------------------
  1106. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT
  1107.     AX = 040Ah
  1108.     BP = 001Eh (driver ID for V_S8259)
  1109. Return: AH = status (see #2346)
  1110.     BP,DS destroyed
  1111. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=001Eh,AX=0406h/BP=001Eh
  1112. SeeAlso: AX=0408h/BP=001Eh
  1113. --------b-6F040ABP0054-----------------------
  1114. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE
  1115.     AX = 040Ah
  1116.     BP = 0054h (driver ID for V_SVIDEO)
  1117.     ???
  1118. Return: AH = status (see #2346)
  1119.     BP,DS destroyed
  1120.     ???
  1121. Note:    only partially documented
  1122. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1123. SeeAlso: AX=0406h/BP=0054h,AX=0408h/BP=0054h
  1124. --------b-6F040ABP00AE-----------------------
  1125. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY
  1126.     AX = 040Ah
  1127.     BP = 00AEh (driver ID for V_8041)
  1128.     BH = vector number of driver to be called regularly (vector addr / 6)
  1129. Return: AH = status (see #2346)
  1130.     BP,DS destroyed
  1131. Desc:    add a driver to the list (max eight) of drivers which will be called
  1132.       by the HP's 8041 at 60 Hz
  1133. Note:    the newly added entry will not be called until enabled with
  1134.       AX=040Eh/BP=00AEh
  1135. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1136. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1137. --------b-6F040ABP0114-----------------------
  1138. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE
  1139.     AX = 040Ah
  1140.     BP = 0114h (driver ID for V_HPHIL)
  1141.     BX = device address indicator (see #2362)
  1142.     DH = HP HIL device major address
  1143.     DL = acknowledge number (specific if 01h-07h, generic otherwise)
  1144. Return: AH = status (see #2346)
  1145.     BP,DS destroyed
  1146. SeeAlso: AH=00h"HP Vectra",AX=0406h/BP=0114h,AX=040Ch/BP=0114h
  1147. --------b-6F040C-----------------------------
  1148. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER
  1149.     AX = 040Ch
  1150.     BP = driver ID (see #2343) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1151. Return: AH = status (see #2346)
  1152.     BP,DS destroyed
  1153. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ah"SF_EVENT_ON"
  1154. --------b-6F040CBP00AE-----------------------
  1155. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY
  1156.     AX = 040Ch
  1157.     BP = 00AEh (driver ID for V_8041)
  1158.     BH = vector number of driver to be removed (vector addr / 6)
  1159. Return: AH = status (see #2346)
  1160.     BP,DS destroyed
  1161. Desc:    remove a driver to the list (max eight) of drivers which will be called
  1162.       by the HP's 8041 at 60 Hz
  1163. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1164. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1165. --------b-6F040CBP0114-----------------------
  1166. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE
  1167.     AX = 040Ch
  1168.     BP = 0114h (driver ID for V_HPHIL)
  1169.     BX = device address indicator (see #2362)
  1170.     DH = HP HIL device major address
  1171.     DL = repeat rate (00h = 30 Hz, 01h = 60 Hz)
  1172. Return: AH = status (see #2346)
  1173.     BP,DS destroyed
  1174. Note:    this function is only available if the driver is in the open state
  1175.       (see AX=020Eh"SF_OPEN")
  1176. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=0114h,AX=040Eh/BP=0114h
  1177. --------b-6F040E-----------------------------
  1178. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING
  1179.     AX = 040Eh
  1180.     BP = driver ID (see #2343) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1181. Return: AH = status (see #2346)
  1182.     BP,DS destroyed
  1183. Desc:    causes the physical device's motion to be clipped to prevent overflow
  1184.       or underflow of the logical position
  1185. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=0410h"SF_CLIPPING_OFF"
  1186. --------b-6F040EBP00AE-----------------------
  1187. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE
  1188.     AX = 040Eh
  1189.     BP = 00AEh (driver ID for V_8041)
  1190.     BH = vector number of driver to be called regularly (vector addr / 6)
  1191. Return: AH = status (see #2346)
  1192.     BP,DS destroyed
  1193. Desc:    enable 60 Hz calling of a driver previously added to the list of
  1194.       drivers to be called by the HP's 8041
  1195. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1196. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1197. --------b-6F040EBP0114-----------------------
  1198. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF
  1199.     AX = 040Eh
  1200.     BP = 0114h (driver ID for V_HPHIL)
  1201.     BX = device address indicator (see #2362)
  1202.     DH = HP HIL device major address
  1203. Return: AH = status (see #2346)
  1204.     BP,DS destroyed
  1205. Note:    this function is only available if the driver is in the open state
  1206.       (see AX=020Eh"SF_OPEN")
  1207. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0410h/BP=0114h
  1208. SeeAlso: AX=0416h/BP=0114h
  1209. --------b-6F0410-----------------------------
  1210. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING
  1211.     AX = 0410h
  1212.     BP = driver ID (see #2343) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1213. Return: AH = status (see #2346)
  1214.     BP,DS destroyed
  1215. Desc:    disables clipping of the physical device's motion, which may cause
  1216.       overflow or underflow of the logical position
  1217. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1218. --------b-6F0410BP00AE-----------------------
  1219. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE
  1220.     AX = 0410h
  1221.     BP = 00AEh (driver ID for V_8041)
  1222.     BH = vector number of driver (vector addr / 6)
  1223. Return: AH = status (see #2346)
  1224.     BP,DS destroyed
  1225. Desc:    disable 60 Hz interval calls to the specified driver
  1226. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1227. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1228. --------b-6F0410BP0114-----------------------
  1229. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST
  1230.     AX = 0410h
  1231.     BP = 0114h (driver ID for V_HPHIL)
  1232.     BX = device address indicator (see #2362)
  1233.     DH = HP HIL device major address
  1234.     ES:SI -> buffer for result
  1235. Return: AH = status (see #2346)
  1236.     CX = number of bytes in buffer
  1237.     BP,DS destroyed
  1238. Note:    this function is only available if the driver is in the open state
  1239.       (see AX=020Eh"SF_OPEN")
  1240. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0412h/BP=0114h
  1241. --------b-6F0412BP00AE-----------------------
  1242. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041
  1243.     AX = 0412h
  1244.     BP = 00AEh (driver ID for V_8041)
  1245. Return: AH = status (see #2346)
  1246.     BP,DS destroyed
  1247. Desc:    sets a flag in the 8041 indicating that a second 256K bank of RAM
  1248.       on the motherboard is enabled
  1249. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1250. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1251. --------b-6F0412BP0114-----------------------
  1252. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS
  1253.     AX = 0412h
  1254.     BP = 0114h (driver ID for V_HPHIL)
  1255.     BX = device address indicator (see #2362)
  1256.     DH = HP HIL device major address
  1257.     ES:SI -> 15-byte buffer for status
  1258. Return: AH = status (see #2346)
  1259.     CX = number of bytes returned in buffer
  1260.     BP,DS destroyed
  1261. Note:    this function is only available if the driver is in the open state
  1262.       (see AX=020Eh"SF_OPEN")
  1263. SeeAlso: AH=00h"HP Vectra",AX=0410h/BP=0114h,AX=0414h/BP=0114h
  1264. --------b-6F0414BP00AE-----------------------
  1265. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH
  1266.     AX = 0414h
  1267.     BP = 00AEh (driver ID for V_8041)
  1268. Return: AH = status (see #2346)
  1269.     BP,DS destroyed
  1270. Desc:    clears a flag in the 8041 indicating that a second 256K bank of RAM
  1271.       on the motherboard is enabled, causing the second bank to be disabled
  1272. Note:    this function should normally never be called
  1273. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1274. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1275. --------b-6F0414BP0114-----------------------
  1276. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME
  1277.     AX = 0414h
  1278.     BP = 0114h (driver ID for V_HPHIL)
  1279.     BX = device address indicator (see #2362)
  1280.     DH = HP HIL device major address
  1281.     ES:SI -> 15-byte buffer for name
  1282. Return: AH = status (see #2346)
  1283.     CX = number of bytes returned in buffer
  1284.     BP,DS destroyed
  1285. Note:    this function is only available if the driver is in the open state
  1286.       (see AX=020Eh"SF_OPEN")
  1287. SeeAlso: AH=00h"HP Vectra",AX=0412h/BP=0114h
  1288. --------b-6F0416BP00AE-----------------------
  1289. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE
  1290.     AX = 0416h
  1291.     BP = 00AEh (driver ID for V_8041)
  1292. Return: AH = status (see #2346)
  1293.     BP,DS destroyed
  1294. Desc:    sets a flag in the 8041 indicating that the primary display is the
  1295.       Multimode graphics adapter (default)
  1296. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1297. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1298. --------b-6F0416BP0114-----------------------
  1299. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC
  1300.     AX = 0416h
  1301.     BP = 0114h (driver ID for V_HPHIL)
  1302.     BH = what to set (00h typematic rate, 01h delay, 02h both)
  1303.     BL = flag (00h = non-CCP keypad, 01h = Cursor Control Pad only)
  1304.     DL = rate
  1305.         bits 7-4: delay value
  1306.         bits 3-0: typematic rate
  1307. Return: AH = status (see #2346)
  1308.     BP,DS destroyed
  1309. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0418h/BP=0114h
  1310. --------b-6F0418BP00AE-----------------------
  1311. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME
  1312.     AX = 0418h
  1313.     BP = 00AEh (driver ID for V_8041)
  1314. Return: AH = status (see #2346)
  1315.     BP,DS destroyed
  1316. Desc:    clears a flag in the 8041, indicating that the primary display is the
  1317.       monochrome adapter
  1318. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1319. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1320. --------b-6F0418BP0114-----------------------
  1321. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS
  1322.     AX = 0418h
  1323.     BP = 0114h (driver ID for V_HPHIL)
  1324.     BL = new LED states
  1325.         bit 0: scroll lock
  1326.         bit 1: NumLock
  1327.         bit 2: CapsLock
  1328. Return: AH = status (see #2346)
  1329.     BP,DS destroyed
  1330. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0416h/BP=0114h
  1331. --------b-6F041ABP00AE-----------------------
  1332. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041
  1333.     AX = 041Ah
  1334.     BP = 00AEh (driver ID for V_8041)
  1335.     BL = byte to send to 8041
  1336. Return: AH = status (see #2346)
  1337.     BP,DS destroyed
  1338. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=040Eh/BP=00AEh
  1339. --------N-6F05-------------------------------
  1340. INT 6F - 10NET - RECEIVE
  1341.     AH = 05h
  1342.     CX = number of seconds before timeout
  1343.     DS:DX -> receive buffer (see #2363)
  1344. Return:    CF clear if successful
  1345.         AH = FEh if dequeued message is a CB message
  1346.     CF set on error
  1347.         AX = error code (see #2342)
  1348. SeeAlso: AH=04h"10NET"
  1349.  
  1350. Format of 10NET receive buffer:
  1351. Offset    Size    Description    (Table 2363)
  1352.  00h 12 BYTEs    sending node's ID
  1353.  0Ch    WORD    length of message
  1354.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1355. --------b-6F06-------------------------------
  1356. INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE
  1357.     AH = 06h
  1358.     BP = driver ID (see #2343) for V_HPHIL, others
  1359.     AL = value to output
  1360.     ---if driver is V_HPHIL---
  1361.     BX = device address indicator (see #2362)
  1362.     DH = HP HIL device major address
  1363.     DL = HP-HIL device register (00h-7Fh)
  1364. Return: AH = status (see #2346)
  1365.     BP,DS destroyed
  1366. Desc:    output a byte to a specific HP-HIL device register
  1367. Note:    this function is only available if the driver is in the open state
  1368.       (see AX=020Eh"SF_OPEN")
  1369. SeeAlso: AH=04h"HP Vectra",AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER"
  1370. --------b-6F06-------------------------------
  1371. INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION
  1372.     AH = 06h
  1373.     BP = driver ID (see #2343) for V_LTOUCH, V_LPOINTER, V_LTABLET, etc.
  1374. Return: AH = status (see #2346)
  1375.     BX = current logical X position
  1376.     CX = current logical Y position
  1377.     DL = button transitions (bit N = button N state has changed)
  1378.     DH = current button states (bit N = current button N state)
  1379.     ES:0000h -> logical device's Describe Record (see #2351)
  1380.     BP,DS destroyed
  1381. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1382. --------b-6F06--BP0012-----------------------
  1383. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR
  1384.     AH = 06h
  1385.     BP = 0012h (driver ID for V_SYSTEM)
  1386.     BX = vector address
  1387.     DX = new value for DS
  1388.     ES:DI -> new CS:IP entry point
  1389. Return: AH = status (see #2346)
  1390.     DX = old value for DS
  1391.     ES:DI -> old CS:IP entry point
  1392.     BP,DS destroyed
  1393. Desc:    replace an existing EX-BIOS driver at a fixed HPVT location without
  1394.       initialization
  1395. SeeAlso: AH=00h"HP Vectra",AH=04h"F_INS_BASEHPVT",AH=08h"F_INS_XCHGRSVD"
  1396. SeeAlso: AH=0Ah"F_INS_XCHGFREE",AH=0Ch"F_INS_FIXOWNDS"
  1397. --------b-6F06--BP002A-----------------------
  1398. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD
  1399.     AH = 06h
  1400.     BP = 002Ah (driver ID for V_SINPUT)
  1401.     AL = HP-HIL physical device number (01h-07h)
  1402. Return: AH = status (see #2346)
  1403.     ES:SI -> physical describe record for driver
  1404.     BP,DS destroyed
  1405. Note:    the returned physical describe record must not be modified
  1406. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=08h/BP=002Ah,AH=0Ah/BP=002Ah
  1407. SeeAlso: AH=0Ch/BP=002Ah
  1408. --------b-6F06--BP005A-----------------------
  1409. INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING
  1410.     AH = 06h
  1411.     BP = 005Ah (driver ID for V_STRACK)
  1412. Return: AH = status (see #2346)
  1413.     BP,DS destroyed
  1414. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1415. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1416. --------N-6F07-------------------------------
  1417. INT 6F - 10NET - LOCK HANDLE
  1418.     AH = 07h
  1419.     BX = file handle
  1420.     CX:DX = starting offset in file
  1421.     SI = record length
  1422. Return:    CF clear if successful
  1423.     CF set on error
  1424.         AX = error code (see also AH=00h)
  1425.         0002h file not found
  1426. SeeAlso: AH=08h"10NET",AH=0Fh,INT 21/AH=5Ch
  1427. --------N-6F08-------------------------------
  1428. INT 6F - 10NET - UNLOCK HANDLE
  1429.     AH = 08h
  1430.     BX = file handle
  1431.     AL = mode
  1432.         00h unlock all
  1433.         01h unlock record at CX:DX
  1434. Return:    CF clear if successful
  1435.     CF set on error
  1436.         AX = error code (see also AH=00h)
  1437.         0002h file not found
  1438. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  1439. --------b-6F08-------------------------------
  1440. INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE
  1441.     AH = 08h
  1442.     BP = driver ID (see #2343) for V_HPHIL (0114h), others
  1443.     ---if device is V_HPHIL---
  1444.     BX = device address indicator (see #2362)
  1445.     DH = HP HIL device major address
  1446.     DL = HP-HIL device register (00h-7Fh)
  1447. Return: AH = status (see #2346)
  1448.     AL = value read from device
  1449.     BP,DS destroyed
  1450. Desc:    generic read-byte function; for driver V_HPHIL, retrieves the value
  1451.       of a specific HP-HIL device register
  1452. Note:    this function is only available if the driver is in the open state
  1453.       (see AX=020Eh"SF_OPEN")
  1454. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1455. --------b-6F08--BP0012-----------------------
  1456. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR
  1457.     AH = 08h
  1458.     BP = 0012h (driver ID for V_SYSTEM)
  1459.     DX = new value for DS
  1460.     ES:DI -> new CS:IP entry point
  1461. Return: AH = status (00h,F6h) (see also #2346)
  1462.         00h successful
  1463.         BX = vector address used
  1464.         DX = old value for DS
  1465.         ES:DI -> old CS:IP entry point
  1466.     BP,DS destroyed
  1467. Desc:    exchange the supplied entry point and DS with the values in the next
  1468.       reserved entry in the HP_VECTOR_TABLE
  1469. Note:    returns AH=F6h if no more reserved vectors are available
  1470. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ah/BP=0012h
  1471. SeeAlso: AH=0Ch/BP=0012h
  1472. --------b-6F08--BP002A-----------------------
  1473. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE
  1474.     AH = 08h
  1475.     BP = 002Ah (driver ID for V_SINPUT)
  1476.     ES:SI -> buffer for device status table (see #2364)
  1477. Return: AH = status (see #2346)
  1478.     ES:SI buffer filled
  1479.     BP,DS destroyed
  1480. Note:    the returned physical describe record must not be modified
  1481. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=0Ah/BP=002Ah
  1482. SeeAlso: AH=0Ch/BP=002Ah
  1483.  
  1484. Format of HP Vectra HP-HIL physical device status table:
  1485. Offset    Size    Description    (Table 2364)
  1486.  00h    BYTE    status for HP-HIL device #1
  1487.         bit 0: device present
  1488.         bits 7-2 reserved
  1489.  01h    BYTE    device ID for HP-HIL device #1
  1490.     ...
  1491.  0Ch    BYTE    status for HP-HIL device #7
  1492.  0Dh    BYTE    device ID for HP-HIL device #7
  1493. --------b-6F08--BP005A-----------------------
  1494. INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING
  1495.     AH = 08h
  1496.     BP = 005Ah (driver ID for V_STRACK)
  1497. Return: AH = status (see #2346)
  1498.     BP,DS destroyed
  1499. Note:    also removes the graphics cursor sprite from the screen
  1500. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=06h"F_TRACK_ON"
  1501. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1502. --------N-6F09-------------------------------
  1503. INT 6F - 10NET - SUBMIT
  1504.     AH = 09h
  1505.     DS:BX -> submit record (see #2365)
  1506. SeeAlso: AH=04h"10NET"
  1507.  
  1508. Format of 10NET submit record:
  1509. Offset    Size    Description    (Table 2365)
  1510.  00h 12 BYTEs    destination node ID (must be logged in)
  1511.  0Ch    WORD    length+2 of following 'command line' text
  1512.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1513. --------N-6F0A-------------------------------
  1514. INT 6F - 10NET - CHAT
  1515.     AH = 0Ah
  1516.     DS:BX -> control parameters (see #2366)
  1517.     DS:DX -> chat message (see #2367)
  1518. SeeAlso: AH=04h"10NET",AH=8Ah
  1519.  
  1520. Format of 10NET chat control parameters:
  1521. Offset    Size    Description    (Table 2366)
  1522.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1523.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1524.  10h 12 BYTEs    destination node ID
  1525.  
  1526. Format of 10NET chat message:
  1527. Offset    Size    Description    (Table 2367)
  1528.  00h    WORD    length+2 of following text
  1529.  02h  N BYTEs    text, max 101 bytes
  1530. --------b-6F0A-------------------------------
  1531. INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE
  1532.     AH = 0Ah
  1533.     BP = driver ID (see #2343) for V_HPHIL (0114h), others
  1534.     CX = number of bytes to write
  1535.     ES:DI -> buffer containing data
  1536.     ---if driver is V_HPHIL---
  1537.     BX = device address indicator (see #2362)
  1538.     DH = HP HIL device major address
  1539.     DL = HP-HIL device register (00h-7Fh)
  1540. Return: AH = status (see #2346)
  1541.     CX = number of unwritten bytes left in buffer
  1542.     BP,DS destroyed
  1543. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  1544. SeeAlso: AH=0Eh"F_PUT_WORD"
  1545. --------b-6F0A-------------------------------
  1546. INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE
  1547.     AH = 0Ah
  1548.     BP = driver ID (see #2343) for block device
  1549.     DH = device major number
  1550.     DL = device minor number
  1551.     ES:DI -> command block (see #2368)
  1552. Return: AH = status (see #2346)
  1553.     BX = operation status
  1554.     BP,DS destroyed
  1555. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1556. SeeAlso: AH=0Eh"F_PUT_WORD"
  1557.  
  1558. Format of HP Vectra F_PUT_BLOCK/F_GET_BLOCK command block:
  1559. Offset    Size    Description    (Table 2368)
  1560.  00h    DWORD    data transfer address
  1561.  04h    WORD    number of blocks
  1562.  06h    DWORD    block address (some devices only use low word)
  1563. --------b-6F0A--BP0012-----------------------
  1564. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR
  1565.     AH = 0Ah
  1566.     BP = 0012h (driver ID for V_SYSTEM)
  1567.     DX = new value for DS
  1568.     ES:DI -> new CS:IP entry point
  1569. Return: AH = status (00h,F6h) (see also #2346)
  1570.         00h successful
  1571.         BX = vector address used
  1572.         DX = old value for DS
  1573.         ES:DI -> old CS:IP entry point
  1574.     BP,DS destroyed
  1575. Desc:    exchange the supplied entry point and DS with the values in the next
  1576.       free entry in the HP_VECTOR_TABLE
  1577. Note:    returns AH=F6h if no more reserved vectors are available
  1578. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  1579. SeeAlso: AH=0Ch/BP=0012h
  1580. --------b-6F0A--BP002A-----------------------
  1581. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR
  1582.     AH = 0Ah
  1583.     BP = 002Ah (driver ID for V_SINPUT)
  1584. Return: AH = status (see #2346)
  1585.     BX = vector address for first HP-HIL device
  1586.     BP,DS destroyed
  1587. Note:    all seven HP-HIL devices use consecutive vectors in the
  1588.       HP_VECTOR_TABLE
  1589. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  1590. SeeAlso: AH=0Ch/BP=002Ah
  1591. --------b-6F0A--BP005A-----------------------
  1592. INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS
  1593.     AH = 0Ah
  1594.     BP = 005Ah (driver ID for V_STRACK)
  1595.     BH = width of save area in bytes
  1596.     BL = hot-spot X coordinate
  1597.     CH = height in scan lines
  1598.     CL = hot-spot Y coordinate
  1599.     ES:SI -> sprite mask (screen mask followed by XOR sprite mask)
  1600. Return: AH = status (see #2346)
  1601.     BP,DS destroyed
  1602. Note:    the save area is one byte wider than the actual sprite mask; the total
  1603.       size of the sprite is at most 144 bytes
  1604. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1605. SeeAlso: AH=0Ch"F_SET_LIMITS_X",AH=10h"F_PUT_SPRITE",AH=12h"F_REMOVE_SPRITE"
  1606. --------N-6F0B-------------------------------
  1607. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  1608.     AH = 0Bh
  1609.     AL = drive number or 0
  1610.     ES:SI = Ethernet address or 0
  1611.     DS:BX -> 31-byte ASCIZ semaphore name
  1612. Return: AL = status (see #2369)
  1613. Note:    same as INT 60/AH=12h
  1614. SeeAlso: AH=0Ch"10NET",INT 60/AH=12h
  1615.  
  1616. (Table 2369)
  1617. Values for 10NET status:
  1618.  00h    successful
  1619.  01h    semaphore currently locked
  1620.  02h    server not responding
  1621.  03h    invalid semaphore name
  1622.  04h    semaphore list is full
  1623.  05h    invalid drive ID
  1624.  06h    invalid Ethernet address
  1625.  07h    not logged in
  1626.  08h    write to network failed
  1627.  09h    semaphore already logged in this CPU
  1628. SeeAlso: #2342
  1629. Index:    error codes;10-Net|10-Net;error codes
  1630. --------N-6F0C-------------------------------
  1631. INT 6F - 10NET - UNLOCK SEMAPHORE
  1632.     AH = 0Ch
  1633.     AL = drive number or 0
  1634.     ES:SI = Ethernet address or 0
  1635.     DS:BX -> 31-byte ASCIZ semaphore name
  1636. Return: AL = status (see also #2369)
  1637.         01h semaphore not locked
  1638. Note:    same as INT 60/AH=13h
  1639. SeeAlso: AH=0Bh,INT 60/AH=13h
  1640. --------b-6F0C-------------------------------
  1641. INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE
  1642.     AH = 0Ch
  1643.     BP = driver ID (see #2343) for V_HPHIL (0114h), others
  1644.     CX = number of bytes or blocks to read
  1645.     DS:SI -> buffer for received data
  1646. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  1647.     BP,DS destroyed
  1648. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BLOCK"
  1649. SeeAlso: AH=10h"F_GET_WORD"
  1650. --------b-6F0C-------------------------------
  1651. INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE
  1652.     AH = 0Ch
  1653.     BP = driver ID (see #2343)
  1654.     DH = device major number
  1655.     DL = device minor number
  1656.     ES:DI -> command block (see #2368)
  1657. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  1658.     BX = operation status
  1659.     BP,DS destroyed
  1660. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  1661. SeeAlso: AH=10h"F_GET_WORD"
  1662. --------b-6F0C--BP0012-----------------------
  1663. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR
  1664.     AH = 0Ch
  1665.     BP = 0012h (driver ID for V_SYSTEM)
  1666.     BX = vector address used
  1667.     ES:DI -> new CS:IP entry point
  1668. Return: AH = status (00h) (see #2346)
  1669.     BP,DS destroyed
  1670. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1671.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  1672.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  1673.       self-test sequence will be called.
  1674. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  1675. SeeAlso: AH=0Eh/BP=0012h,AH=12h/BP=0012h
  1676. --------b-6F0C--BP002A-----------------------
  1677. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT
  1678.     AH = 0Ch
  1679.     BP = 002Ah (driver ID for V_SINPUT)
  1680. Return: AH = status (see #2346)
  1681.     ES:BX -> physical GID driver CS:IP
  1682.     BP,DS destroyed
  1683. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  1684. SeeAlso: AH=0Ah/BP=002Ah
  1685. --------b-6F0C--BP005A-----------------------
  1686. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS
  1687.     AH = 0Ch
  1688.     BP = 005Ah (driver ID for V_STRACK)
  1689.     CX = minimum X coordinate
  1690.     DX = maximum X coordinate
  1691. Return: AH = status (see #2346)
  1692.     BP,DS destroyed
  1693. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Eh/BP=005Ah
  1694. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0007h
  1695. --------N-6F0D-------------------------------
  1696. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  1697.     AH = 0Dh
  1698.     AL = type code
  1699.         01h return superstations only
  1700.         02h return non-superstations only
  1701.         otherwise return all
  1702.     CX = length of data buffer
  1703.     DS:DX -> array of records to be filled (see #2370)
  1704. Return: CL = number of records returned (responding stations)
  1705. SeeAlso: AH=16h,AH=8Dh
  1706.  
  1707. Format of station record:
  1708. Offset    Size    Description    (Table 2370)
  1709.  00h 12 BYTEs    node ID
  1710.  0Ch    BYTE    station flags (see #2371)
  1711. ---if AL = 01h---
  1712.  0Dh    BYTE    version number
  1713.  0Eh    WORD    level number of 10Net software in responding node
  1714. ---if AL = 02h---
  1715.  0Dh  8 BYTEs    user ID
  1716.  15h    BYTE    version number
  1717.  16h    WORD    level number
  1718.  
  1719. Bitfields for station flags:
  1720. Bit(s)    Description    (Table 2371)
  1721.  1    workstation
  1722.  2    superstation
  1723.  3    xgate
  1724.  4    active gate
  1725. --------N-6F0E-------------------------------
  1726. INT 6F - 10NET - SPOOL/PRINT
  1727.     AH = 0Eh
  1728.     DS:DX -> spool/print record (see #2373)
  1729. Return:    CF clear if successful
  1730.     CF set on error
  1731.         AX = error code (see also #2342)
  1732.         17FFh device not mounted
  1733.         18FFh already spooling to named device
  1734.  
  1735. (Table 2372)
  1736. Values for 10NET spooler operation code:
  1737.  0000h    initiate spool
  1738.  0001h    abort print
  1739.  0002h    close spool
  1740.  0003h    delete spool
  1741.  0004h    print
  1742.  0005h    get report info
  1743.  0006h    set chat template
  1744.  0007h    queue
  1745.  0008h    return queue
  1746.  0009h    queue non-spooled file for printing
  1747.  
  1748. Format of 10NET Spool/Print record:
  1749. Offset    Size    Description    (Table 2373)
  1750.  00h    WORD    operation code (see #2372)
  1751.  02h 11 BYTEs    file name in FCB format
  1752. ---if operation code = 00h or 06h---
  1753.  0Dh    BYTE    notification flags (see #2374)
  1754.  0Eh    BYTE    days to keep (FFh=forever)
  1755.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  1756.         bits 4-7: remote drive to store spool file (1=A,...)
  1757.  10h    WORD    length of following data area
  1758.  12h  N BYTEs    up to 64 bytes of description
  1759. ---if operation code = 03h---
  1760.  0Dh  8 BYTEs    user ID to associate with filename
  1761. ---if operation code = 04h---
  1762.  0Dh    WORD    block number
  1763.  0Fh  8 BYTEs    user ID to associate with filename
  1764. ---if operation code = 05h---
  1765.  0Dh    BYTE    RRN to start retrieve
  1766.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1767.         bit 3: if set, return entries for all users
  1768.  0Fh    WORD    length of following area
  1769.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  1770. ---if operation code = 07h---
  1771.  0Dh    BYTE    queue number
  1772.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1773.  0Fh    WORD    number of bytes of test print to be done
  1774.  11h    BYTE    code:
  1775.         01h print device
  1776.         02h test print count
  1777.         03h prn
  1778. ---if operation code = 08h---
  1779.  0Dh    BYTE    queue location or $SCNTL location to start access
  1780.         returns next item for access:
  1781.             00h-7Fh queued items
  1782.             80h-FEh non-queued, non-printed items
  1783.             FFh    no more items
  1784.  0Eh    WORD    unused
  1785.  10h    WORD    length of following area
  1786.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records (see #2375)
  1787. ---if operation code = 09h---
  1788.  0Dh  3 BYTEs    unused
  1789.  10h  N BYTEs    path to non-spooled file to be queued for printing
  1790.  
  1791. Bitfields for notification flags:
  1792. Bit(s)    Description    (Table 2374)
  1793.  7    queue to top
  1794.  6    do ID page
  1795.  5    no form feed
  1796.  4    reserved
  1797.  3    explicit queuing only
  1798.  2    notify at print completion
  1799.  1    notify server operator, with reply
  1800.  0    notify at print start
  1801.  
  1802. Format of 10NET $SCNTL record:
  1803. Offset    Size    Description    (Table 2375)
  1804.  00h  8 BYTEs    user ID
  1805.  08h 11 BYTEs    filename in FCB format
  1806.  13h  6 BYTEs    node ID
  1807.  19h  3 BYTEs    creation date
  1808.  1Ch    BYTE    notification flags (see #2374)
  1809.  1Dh    BYTE    retention time in days
  1810.  1Eh    BYTE    printing device (LPTx)
  1811.  1Fh  3 BYTEs    date last printed (0 = never)
  1812.  22h    BYTE    device containing spoolfile
  1813.  23h    WORD    bytes to print for test print
  1814.  25h    WORD    block number to start print
  1815.  27h    BYTE    reserved
  1816. --------b-6F0E-------------------------------
  1817. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE
  1818.     AH = 0Eh
  1819.     BP = driver ID (see #2343)
  1820.     DX = data word
  1821. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  1822.     BP,DS destroyed
  1823. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=10h"F_GET_WORD"
  1824. --------b-6F0E-------------------------------
  1825. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA
  1826.     AH = 0Eh
  1827.     BP = driver ID (see #2343)
  1828.     ??? details not yet available
  1829. Return: ???
  1830. SeeAlso: AH=06h"HP Vectra",AH=0Ah"HP Vectra",AH=10h"HP Vectra"
  1831. --------b-6F0E--BP0012-----------------------
  1832. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR
  1833.     AH = 0Eh
  1834.     BP = 0012h (driver ID for V_SYSTEM)
  1835.     BX = vector address used
  1836.     ES:DI -> new CS:IP entry point
  1837. Return: AH = status (00h) (see #2346)
  1838.     BP,DS destroyed
  1839. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1840.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  1841.       the routine should adjust BX and return the new value.  If the
  1842.       SF_INIT call returns with error code FEh, the power-on self-test
  1843.       sequence will be called.
  1844. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ch/BP=0012h
  1845. SeeAlso: AH=10h/BP=0012h,AH=14h/BP=0012h
  1846. --------b-6F0E--BP005A-----------------------
  1847. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS
  1848.     AH = 0Eh
  1849.     BP = 005Ah (driver ID for V_STRACK)
  1850.     CX = minimum Y coordinate
  1851.     DX = maximum Y coordinate
  1852. Return: AH = status (see #2346)
  1853.     BP,DS destroyed
  1854. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Ch/BP=005Ah
  1855. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0008h
  1856. --------N-6F0F-------------------------------
  1857. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  1858.     AH = 0Fh
  1859.     ???
  1860. Return: ???
  1861. SeeAlso: AH=07h,AH=08h"10NET"
  1862. --------N-6F10-------------------------------
  1863. INT 6F - 10NET - ATTACH/DETACH PRINTER
  1864.     AH = 10h
  1865.     AL = subfunction
  1866.         00h initiate spooling if LPT1 is mounted
  1867.         01h terminate spooling if LPT1 is mounted
  1868. SeeAlso: INT 21/AX=5D08h
  1869. --------b-6F0E-------------------------------
  1870. INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE
  1871.     AH = 0Eh
  1872.     BP = driver ID (see #2343)
  1873. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  1874.     DX = data word
  1875.     BP,DS destroyed
  1876. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ch"F_GET_BUFFER",AH=0Eh"F_PUT_WORD"
  1877. --------b-6F10--BP0012-----------------------
  1878. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR
  1879.     AH = 10h
  1880.     BP = 0012h (driver ID for V_SYSTEM)
  1881.     BX = vector address used
  1882.     ES:DI -> new CS:IP entry point
  1883. Return: AH = status (00h) (see #2346)
  1884.     BP,DS destroyed
  1885. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1886.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  1887.       data area. If the SF_INIT call returns with error code FEh, the
  1888.       power-on self-test sequence will be called.
  1889. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h
  1890. SeeAlso: AH=0Ch/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h,AH=16h/BP=0012h
  1891. --------b-6F10--BP005A-----------------------
  1892. INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE
  1893.     AH = 10h
  1894.     BP = 005Ah (driver ID for V_STRACK)
  1895.     BX = X coordinate
  1896.     CX = Y coordinate
  1897. Return: AH = status (see #2346)
  1898.     BP,DS destroyed
  1899. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1900. SeeAlso: AH=12h"F_REMOVE_SPRITE",INT 33/AX=0004h
  1901. --------N-6F11-------------------------------
  1902. INT 6F - 10NET - LOCK FCB
  1903.     AH = 11h
  1904.     AL = mode
  1905.         01h sequential
  1906.         02h random
  1907.         03h random block
  1908.         CX = number of records
  1909.     DS:DX -> FCB (see #0574 at INT 21/AH=0Fh)
  1910. Return:    CF clear if successful
  1911.     CF set on error
  1912.         AX = error code (see also #2342)
  1913.         0002h file not found
  1914. SeeAlso: AH=12h,INT 21/AH=0Fh
  1915. --------N-6F12-------------------------------
  1916. INT 6F - 10NET - UNLOCK FCB
  1917.     AH = 12h
  1918.     AL = mode
  1919.         00h sequential
  1920.         01h random
  1921.         02h random block
  1922.         CX = number of records
  1923.     DS:DX -> FCB (see #0574 at INT 21/AH=0Fh)
  1924. Return:    CF clear if successful
  1925.     CF set on error
  1926.         AX = error code (see also #2342)
  1927.         0002h file not found
  1928. SeeAlso: AH=11h
  1929. --------b-6F12--BP0012-----------------------
  1930. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR
  1931.     AH = 12h
  1932.     BP = 0012h (driver ID for V_SYSTEM)
  1933.     ES:DI -> new CS:IP entry point
  1934. Return: AH = status (00h) (see #2346)
  1935.     BP,DS destroyed
  1936. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1937.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  1938.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  1939.       self-test sequence will be called.
  1940. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=14h/BP=0012h
  1941. SeeAlso: AH=16h/BP=0012h,AH=18h/BP=0012h
  1942. --------b-6F12--BP005A-----------------------
  1943. INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE
  1944.     AH = 12h
  1945.     BP = 005Ah (driver ID for V_STRACK)
  1946. Return: AH = status (see #2346)
  1947.     BP,DS destroyed
  1948. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=10h"F_PUT_SPRITE"
  1949. --------N-6F13-------------------------------
  1950. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  1951.     AH = 13h
  1952.     DS:DX -> node ID, 12 bytes blank-padded
  1953. Return:    CF clear if successful
  1954.         ES:BX = configuration table address on given machine
  1955.     CF set on error
  1956.         AX = error code (see #2342)
  1957. SeeAlso: AH=03h
  1958. --------N-6F14-------------------------------
  1959. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  1960.     AH = 14h
  1961.     BX:SI = address of remote memory
  1962.     CX = length (<=1024 bytes)
  1963.     DS:DX -> node ID, 12 bytes blank-padded
  1964.     DS:DI -> area to receive remote memory image
  1965. Return:    CF clear if successful
  1966.         CX = amount of memory copied to DS:SI
  1967.     CF set on error
  1968.         AX = error code (see #2342)
  1969. --------b-6F14--BP0012-----------------------
  1970. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR
  1971.     AH = 14h
  1972.     BP = 0012h (driver ID for V_SYSTEM)
  1973.     ES:DI -> new CS:IP entry point
  1974. Return: AH = status (00h) (see #2346)
  1975.     BP,DS destroyed
  1976. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1977.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  1978.       the routine should adjust BX and return the new value.  If the
  1979.       SF_INIT call returns with error code FEh, the power-on self-test
  1980.       sequence will be called.
  1981. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h
  1982. SeeAlso: AH=16h/BP=0012h
  1983. --------N-6F1501-----------------------------
  1984. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  1985.     AX = 1501h
  1986.     BX = zero-based index
  1987.     DS:SI -> node ID, 12 bytes blank-padded
  1988.     ES:DI -> 85-byte buffer for shared device table entry (see #2376)
  1989. Return:    CF clear if successful
  1990.         ES:DI buffer contains shared device table entry of BXth device
  1991.     CF set on error
  1992.         AX = error code (see #2342)
  1993. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  1994.  
  1995. Format of 10NET shared device table entry:
  1996. Offset    Size    Description    (Table 2376)
  1997.  00h  8 BYTEs    device
  1998.  08h  8 BYTEs    alias
  1999.  10h 64 BYTEs    path
  2000.  50h  8 BYTEs    password
  2001.  58h    BYTE    access
  2002.  59h  4 BYTEs    mask
  2003. --------N-6F1502-----------------------------
  2004. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  2005.     AX = 1502h
  2006.     DS:SI -> node ID, 12 bytes blank-padded
  2007.     ES:DI -> valid shared device table entry
  2008. Return:    CF clear if successful
  2009.     CF set on error
  2010.         AX = error code (see #2342)
  2011. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  2012. --------N-6F1503-----------------------------
  2013. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  2014.     AX = 1503h
  2015.     BX = zero-based index
  2016.     DS:SI -> node ID, 12 bytes blank-padded
  2017. Return:    CF clear if successful
  2018.     CF set on error
  2019.         AX = error code (see #2342)
  2020. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  2021. --------N-6F16-------------------------------
  2022. INT 6F - 10NET v5.0 - "GL WHO" - ???
  2023.     AH = 16h
  2024.     ???
  2025. Return: ???
  2026. SeeAlso: AH=0Dh
  2027. --------b-6F16--BP0012-----------------------
  2028. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR
  2029.     AH = 16h
  2030.     BP = 0012h (driver ID for V_SYSTEM)
  2031.     ES:DI -> new CS:IP entry point
  2032. Return: AH = status (00h) (see #2346 at INT 6F/AH=00h"HP Vectra")
  2033.     BP,DS destroyed
  2034. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2035.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  2036.       data area.  If the SF_INIT call returns with error code FEh, the
  2037.       power-on self-test sequence will be called.
  2038. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=10h/BP=0012h,AH=12h/BP=0012h
  2039. SeeAlso: AH=14h/BP=0012h,AH=18h/BP=0012h
  2040. --------N-6F17-------------------------------
  2041. INT 6F - 10NET v3.3+ - MOUNT
  2042.     AH = 17h
  2043.     AL = local drive number (0=A:)
  2044.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  2045.     DS:DX -> node ID, 12 bytes blank-padded
  2046. Return:    CF clear if successful
  2047.     CF set on error
  2048.         AX = error code (see #2342)
  2049. SeeAlso: AH=18h
  2050. --------N-6F18-------------------------------
  2051. INT 6F - 10NET v3.3+ - UNMOUNT
  2052.     AH = 18h
  2053.     AL = local drive number (0=A:)
  2054.     BL = type
  2055.         00h        disk
  2056.         01h-03h LPTn
  2057.         04h,05h COMx
  2058. Return:    CF clear if successful
  2059.     CF set on error
  2060.         AX = error code (see #2342)
  2061. SeeAlso: AH=17h
  2062. --------b-6F18--BP0012-----------------------
  2063. INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES
  2064.     AH = 18h
  2065.     BP = 0012h (driver ID for V_SYSTEM)
  2066.     AL = sense of test (00h equal, 02h non-equal)
  2067.     BX = AND mask
  2068.     DX = pattern
  2069.     SI = first vector address to search
  2070.     DI = offset in HP header of field to test
  2071. Return: AH = status (00h,FEh) (see #2346 at INT 6F/AH=00h"HP Vectra")
  2072.     BP,DS destroyed
  2073.     ---if AH=00h---
  2074.     SI = first matching vector address
  2075. Desc:    compare successive drivers' header fields starting at address SI
  2076.       until the header field AND BX is either equal or non-equal to DX
  2077. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=10h/BP=0012h
  2078. SeeAlso: AH=12h/BP=0012h,AH=16h/BP=0012h
  2079. --------N-6F19-------------------------------
  2080. INT 6F U - 10NET v5.0 - AUDIT
  2081.     AH = 19h
  2082.     ???
  2083. Return: ???
  2084. SeeAlso: AH=99h
  2085. --------N-6F1A-------------------------------
  2086. INT 6F U - 10NET v5.0 - "BULL" - ???
  2087.     AH = 1Ah
  2088.     ???
  2089. Return: ???
  2090. --------N-6F1B-------------------------------
  2091. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  2092.     AH = 1Bh
  2093.     ???
  2094. Return: ???
  2095. --------N-6F1C-------------------------------
  2096. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  2097.     AH = 1Ch
  2098.     ???
  2099. Return: ???
  2100. --------N-6F1D-------------------------------
  2101. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  2102.     AH = 1Dh
  2103.     ???
  2104. Return: ???
  2105. --------N-6F1E-------------------------------
  2106. INT 6F U - 10NET v5.0 - "SCHED" - ???
  2107.     AH = 1Eh
  2108.     ???
  2109. Return: ???
  2110. --------b-6F1E--BP0012-----------------------
  2111. INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA
  2112.     AH = 1Eh
  2113.     BP = 0012h (driver ID for V_SYSTEM)
  2114. Return: AH = status (00h) (see #2346 at INT 6F/AH=00h"HP Vectra")
  2115.     BX = last-used DS
  2116.     DX = maximum DS
  2117.     BP,DS destroyed
  2118. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=20h/BP=0012h,AH=22h/BP=0012h
  2119. --------N-6F1F-------------------------------
  2120. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  2121.     AH = 1Fh
  2122.     ???
  2123. Return: ???
  2124. --------N-6F20-------------------------------
  2125. INT 6F U - 10NET v5.0 - ???
  2126.     AH = 20h
  2127.     ???
  2128. Return: ???
  2129. --------b-6F20--BP0012-----------------------
  2130. INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY
  2131.     AH = 20h
  2132.     BP = 0012h (driver ID for V_SYSTEM)
  2133.     BX = new value for "last-used DS"
  2134.     DX = new value for "maximum DS"
  2135. Return: AH = status (00h) (see #2346 at INT 6F/AH=00h"HP Vectra")
  2136.     BP,DS destroyed
  2137. Note:    the F_INS_FIXGETDS and F_INS_FREEGETDS functions
  2138.       (see AH=0Eh/BP=0012h,AH=14h/BP=0012h) also modify the values returned
  2139.       by this call, requiring care if both methods are used to allocate
  2140.       memory
  2141. SeeAlso: AH=00h"HP Vectra",AH=0Eh/BP=0012h,AH=14h/BP=0012h,AH=1Eh/BP=0012h
  2142. --------N-6F21-------------------------------
  2143. INT 6F U - 10NET v5.0 - ???
  2144.     AH = 21h
  2145.     ???
  2146. Return: ???
  2147. --------N-6F22-------------------------------
  2148. INT 6F U - 10NET v5.0 - ???
  2149.     AH = 22h
  2150.     ???
  2151. Return: ???
  2152. --------b-6F22--BP0012-----------------------
  2153. INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY
  2154.     AH = 22h
  2155.     BP = 0012h (driver ID of V_SYSTEM)
  2156.     BL = address of CMOS byte to read
  2157. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  2158.     AL = byte read
  2159.     BP,DS destroyed
  2160. Note:    supported by ES, QS, and RS series HP Vectras
  2161. SeeAlso: AH=00h"HP Vectra",AH=1Eh/BP=0012h,AH=24h/BP=0012h
  2162. --------b-6F24--BP0012-----------------------
  2163. INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY
  2164.     AH = 24h
  2165.     BP = 0012h (driver ID of V_SYSTEM)
  2166.     BL = address of CMOS byte to write
  2167.     AL = new value
  2168. Return: AH = status (see #2346)
  2169.     BP,DS destroyed
  2170. Note:    updates the CMOS checksum fields (both IBM-standard and HP checksums)
  2171. SeeAlso: AH=00h"HP Vectra",AH=22h/BP=0012h
  2172. --------b-6F2A--BP0012-----------------------
  2173. INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS
  2174.     AH = 2Ah
  2175.     BP = 0012h (driver ID of V_SYSTEM)
  2176. Return: AH = status (see #2346)
  2177.     BP,DS destroyed
  2178. Note:    this is a hook for multitasking systems
  2179. SeeAlso: AH=00h"HP Vectra",INT 15/AX=1000h,INT 2F/AX=1680h
  2180. --------b-6F30--BP0012-----------------------
  2181. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS
  2182.     AH = 30h
  2183.     BP = 0012h (driver ID of V_SYSTEM)
  2184. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  2185.     BP,DS destroyed
  2186. Desc:    enables keyclicks and flushes any pending keyclicks
  2187. SeeAlso: AH=32h/BP=0012h,AH=34h/BP=0012h,AH=36h/BP=0012h
  2188. --------b-6F32--BP0012-----------------------
  2189. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS
  2190.     AH = 32h
  2191.     BP = 0012h (driver ID of V_SYSTEM)
  2192. Return: AH = status (see #2346)
  2193.     BP,DS destroyed
  2194. Desc:    disables keyclicks and flushes any pending keyclicks
  2195. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=38h/BP=0012h
  2196. --------b-6F34--BP0012-----------------------
  2197. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK
  2198.     AH = 34h
  2199.     BP = 0012h (driver ID of V_SYSTEM)
  2200. Return: AH = status (see #2346)
  2201.     BP,DS destroyed
  2202. Desc:    generate a keyclick if fewer than four clicks are already pending
  2203. Note:    if keyclicks are already pending, the remaining click count is
  2204.       incremented and the function returns immediately
  2205. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=36h/BP=0012h,AH=3Ah/BP=0012h
  2206. --------b-6F36--BP0012-----------------------
  2207. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS
  2208.     AH = 36h
  2209.     BP = 0012h (driver ID of V_SYSTEM)
  2210. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  2211.     BP,DS destroyed
  2212. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=34h/BP=0012h,AH=38h/BP=0012h
  2213. --------b-6F38--BP0012-----------------------
  2214. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS
  2215.     AH = 38h
  2216.     BP = 0012h (driver ID of V_SYSTEM)
  2217. Return: AH = status (see #2346)
  2218.     BP,DS destroyed
  2219. SeeAlso: AH=00h"HP Vectra",AH=32h/BP=0012h,AH=36h/BP=0012h
  2220. --------b-6F3A--BP0012-----------------------
  2221. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES
  2222.     AH = 3Ah
  2223.     BP = 0012h (driver ID of V_SYSTEM)
  2224. Return: AH = status (see #2346 at AH=00h"HP Vectra")
  2225.     BP,DS destroyed
  2226. Desc:    make a sound of the frequency and duration defined in the EX-BIOS
  2227.       global data area (see #2350)
  2228. SeeAlso: AH=00h"HP Vectra",AH=34h/BP=0012h,AH=36h/BP=0012h,AH=38h/BP=0012h
  2229. SeeAlso: AH=3Ch/BP=0012h,AH=3Eh/BP=0012h
  2230. --------b-6F3C--BP0012-----------------------
  2231. INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION
  2232.     AH = 3Ch
  2233.     BP = 0012h (driver ID of V_SYSTEM)
  2234.     BX = frequency in Hz (1-25000, 0 = off)
  2235.     DX = duration in 10-microsecond increments
  2236. Return: AH = status (see #2346)
  2237.     BP,DS destroyed
  2238. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Eh/BP=0012h,#2350
  2239. --------b-6F3E--BP0012-----------------------
  2240. INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION
  2241.     AH = 3Eh
  2242.     BP = 0012h (driver ID of V_SYSTEM)
  2243.     BX = frequency in Hz (1-25000, 0 = off)
  2244.     DX = duration in 10-microsecond increments
  2245. Return: AH = status (see #2346)
  2246.     BP,DS destroyed
  2247. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Ch/BP=0012h,AH=40h/BP=0012h
  2248. --------b-6F40--BP0012-----------------------
  2249. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX
  2250.     AH = 40h
  2251.     BP = 0012h (driver ID of V_SYSTEM)
  2252. Return: AH = status (see #2346)
  2253.     BX = next free string index
  2254.     BP,DS destroyed
  2255. Desc:    get the next string index available to user programs
  2256. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=44h/BP=0012h,AH=46h/BP=0012h
  2257. --------b-6F42--BP0012-----------------------
  2258. INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST
  2259.     AH = 42h
  2260.     BP = 0012h (driver ID of V_SYSTEM)
  2261.     ES:DI -> bucket header (see #2377)
  2262. Return: AH = status (00h,FEh) (see #2346 at AH=00h"HP Vectra")
  2263.     BP,DS destroyed
  2264. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=44h/BP=0012h
  2265.  
  2266. Format of HP Vectra EX-BIOS bucket header:
  2267. Offset    Size    Description    (Table 2377)
  2268.  00h    DWORD    pointer to next bucket header (FFFFh:FFFFh if last)
  2269.  04h    WORD    upper bound on string index
  2270.  06h    WORD    lower bound on string index
  2271.  08h    DWORD    pointer to array of string offset pointers
  2272.  0Ch    WORD    segment of strings
  2273. Note:    the strings pointed at by the offset pointers are byte-counted ASCIZ
  2274.       strings
  2275. --------b-6F44--BP0012-----------------------
  2276. INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST
  2277.     AH = 44h
  2278.     BP = 0012h (driver ID of V_SYSTEM)
  2279.     ES:DI -> bucket header (see #2377)
  2280. Return: AH = status (00h) (see #2346)
  2281.     BP,DS destroyed
  2282. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=46h/BP=0012h
  2283. --------b-6F46--BP0012-----------------------
  2284. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST
  2285.     AH = 46h
  2286.     BP = 0012h (driver ID of V_SYSTEM)
  2287.     BX = string index
  2288. Return: AH = status (00h,other) (see #2346)
  2289.     BP,DS destroyed
  2290.     ---if successful---
  2291.     CX = length of string (excluding count byte and terminating NUL)
  2292.     DS:SI -> header for string
  2293.     ES:DI -> found string
  2294. SeeAlso: AH=00h"HP Vectra",AH=44h/BP=0012h,AH=48h/BP=0012h
  2295. --------b-6F48--BP0012-----------------------
  2296. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING
  2297.     AH = 48h
  2298.     BP = 0012h (driver ID of V_SYSTEM)
  2299.     ES:DI -> ASCIZ string
  2300. Return: AH = status (00h,other) (see #2346 at AH=00h"HP Vectra")
  2301.     BP,DS destroyed
  2302.     ---if successful---
  2303.     BX = index for the given string
  2304. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=46h/BP=0012h
  2305. --------N-6F80-------------------------------
  2306. INT 6F - 10NET v5.0 - LOGIN
  2307.     AH = 80h
  2308.     DS:DX -> login record (see #2378)
  2309. Return: CF clear if successful
  2310.         BL = number of days until password expires (00h = never)
  2311.         CL = security level
  2312.     CF set on error
  2313.         AX = status (see #2342)
  2314. SeeAlso: AH=00h,AH=81h
  2315.  
  2316. Format of 10NET login record:
  2317. Offset    Size    Description    (Table 2378)
  2318.  00h  8 BYTEs    user name
  2319.  08h  8 BYTEs    password
  2320.  10h 15 BYTEs    server node ID
  2321.  1Fh  8 BYTEs    new password
  2322.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  2323. --------N-6F81-------------------------------
  2324. INT 6F - 10NET v5.0 - LOGOUT
  2325.     AH = 81h
  2326.     DS:DX -> server node ID (DX=0000h for universal logout)
  2327. Return: AX = status (see #2342)
  2328. SeeAlso: AH=01h,AH=80h
  2329. --------N-6F8A-------------------------------
  2330. INT 6F - 10NET v5.0 - CHAT
  2331.     AH = 8Ah
  2332.     DS:BX -> chat parameters (see #2379)
  2333.     DS:DX -> chat message (see #2380)
  2334. Return: CF clear if successful
  2335.     CF set on error
  2336.         AX = status (see #2342)
  2337. SeeAlso: AH=0Ah
  2338.  
  2339. Format of 10NET chat parameters:
  2340. Offset    Size    Description    (Table 2379)
  2341.  00h  8 BYTEs    sender's user name
  2342.  08h  8 BYTEs    destination user name
  2343.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  2344.  
  2345. Format of 10NET chat message:
  2346. Offset    Size    Description    (Table 2380)
  2347.  00h    WORD    message length
  2348.  02h  N BYTEs    chat message contents
  2349. --------N-6F8D-------------------------------
  2350. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  2351.     AH = 8Dh
  2352.     BX = service mask (see #2381)
  2353.     CX = length of buffer
  2354.     DS:DX -> buffer for array of Who data structures (see #2382)
  2355. Return: CF clear if successful
  2356.         CX = number of nodes matching service mask
  2357.         DS:DX buffer filled
  2358.     CF set on error
  2359.         AX = status (see #2342)
  2360. SeeAlso: AH=0Dh
  2361.  
  2362. Bitfields for 10NET service mask:
  2363. Bit(s)    Description    (Table 2381)
  2364.  0    workstation
  2365.  1    file server
  2366.  2    print server
  2367.  3    de-spool server
  2368.  
  2369. Format of 10NET Who data structure:
  2370. Offset    Size    Description    (Table 2382)
  2371.  00h  8 BYTEs    user name
  2372.  08h 15 BYTEs    node ID
  2373.  17h  3 BYTEs    unique portion of Ethernet address
  2374.  1Ah    BYTE    Who group number
  2375.  1Bh    WORD    service mask (see #2381)
  2376.  1Dh    DWORD    serial number
  2377.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  2378.  22h    BYTE    chat mask (see #2383)
  2379.  23h    BYTE    internal system bits (see #2384)
  2380.  24h  9 BYTEs    version number in format MM.mm.xxx
  2381.  2Dh    BYTE    number of shared directories
  2382.  2Eh    BYTE    number of shared printer queues
  2383.  
  2384. Bitfields for 10NET chat mask:
  2385. Bit(s)    Description    (Table 2383)
  2386.  0    chat permitted
  2387.  1    bell enabled
  2388.  2    chat keyboard initiated
  2389.  3    in INT 16 handler
  2390.  4    in Get Input
  2391.  5    display has timed out
  2392.  6    chat is idle
  2393.  
  2394. Bitfields for 10NET internal system bits:
  2395. Bit(s)    Description    (Table 2384)
  2396.  0    submit permitted
  2397.  1    submit initiated
  2398.  2    submit executing
  2399.  3    internal client call/chat/spool/autospool
  2400.  4    in spool termination
  2401.  5    print permitted
  2402.  6    waiting for keyboard input
  2403. --------N-6F9501-----------------------------
  2404. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  2405.     AX = 9501h
  2406.     BX = zero-based index
  2407.     DS:SI -> server's node ID
  2408.     ES:DI -> buffer for shared device structure (see #2385)
  2409. Return: CF clear if successful
  2410.     CF set on error
  2411.         AX = status (see #2342)
  2412. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  2413.  
  2414. Format of 10NET shared device structure:
  2415. Offset    Size    Description    (Table 2385)
  2416.  00h  8 BYTEs    alias
  2417.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  2418.  09h    BYTE    access rights
  2419.         bit 0: read
  2420.         bit 1: write
  2421.         bit 2: create
  2422.  0Ah  8 BYTEs    password
  2423.  12h 32 BYTEs    comment
  2424. ---directory---
  2425.  32h 64 BYTEs    pathname of shared directory
  2426. ---print queue---
  2427.  32h    BYTE    notification bit mask (see #2386)
  2428.  33h    BYTE    job control bit mask (see #2387)
  2429.  34h    WORD    number of days to retain file
  2430.  36h    WORD    test print length
  2431.  38h    BYTE    number of copies to print
  2432.  39h    BYTE    compression algorithm
  2433.  3Ah    BYTE    tab width (00h = don't expand)
  2434.  3Bh    BYTE    priority
  2435.  3Ch    WORD    time to open queue (FFFFh = always)
  2436.  3Eh    WORD    time to close queue
  2437.  40h    WORD    pause following queue switch, in clock ticks
  2438.  42h    WORD    pause between print jobs, in clock ticks
  2439.  44h    BYTE    associate queue file existence mask
  2440.         bit 0: queue switch file exists
  2441.         bit 1: initiate file exists
  2442.         bit 2: abort file exists
  2443.  45h  6 BYTEs    character sequence for page eject
  2444.  4Bh    BYTE    status of print queue
  2445.         bit 0: queue is closed
  2446.  4Ch    WORD    number of jobs on queue
  2447.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  2448.  50h    BYTE    number of print devices in printer pool
  2449.  51h    WORD    offset of first print device structure (FFFFh if empty)
  2450.  
  2451. Bitfields for notification flags:
  2452. Bit(s)    Description    (Table 2386)
  2453.  0    user at print start
  2454.  1    operator at start, with reply
  2455.  2    user at print completion
  2456.  3    operator at completion, with reply
  2457.  4    user on queue switch
  2458.  5    operator on queue switch, with reply
  2459.  6    user on print error
  2460.  
  2461. Bitfields for 10NET job control mask:
  2462. Bit(s)    Description    (Table 2387)
  2463.  0    print banner page
  2464.  1    eject page at end of job
  2465.  2    mark as "held" (queue but don't print)
  2466.  3    rush job (queue at top)
  2467.  4    overwrite file with zeros before deletion
  2468.  5    hyperspool if possible
  2469. --------N-6F9502-----------------------------
  2470. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  2471.     AX = 9502h
  2472.     DS:SI -> server's node ID
  2473.     ES:DI -> shared device structure (see #2385)
  2474. Return: CF clear if successful
  2475.     CF set on error
  2476.         AX = status (see #2342)
  2477. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  2478. --------N-6F9503-----------------------------
  2479. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  2480.     AX = 9503h
  2481.     BX = zero-based index
  2482.     DS:SI -> server's node ID
  2483. Return: CF clear if successful
  2484.     CF set on error
  2485.         AX = status (see #2342)
  2486. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  2487. --------N-6F9504-----------------------------
  2488. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  2489.     AX = 9504h
  2490.     BX = zero-based shared device index
  2491.     CX = zero-based user index
  2492.     DS:SI -> server's node ID
  2493. Return: CF clear if successful
  2494.         ES:DI -> node ID of the CX'th user of the BX'th device
  2495.     CF set on error
  2496.         AX = status (see #2342)
  2497. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  2498. --------N-6F99-------------------------------
  2499. INT 6F - 10NET v5.0 - AUDIT
  2500.     AH = 99h
  2501.     DS:SI -> server's node ID
  2502.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  2503. Return: CF clear if successful
  2504.     CF set on error
  2505.         AX = status (see #2342)
  2506. SeeAlso: AH=19h,AH=9Ch
  2507. --------N-6F9C-------------------------------
  2508. INT 6F - 10NET v5.0 - GET LOGIN LIST
  2509.     AH = 9Ch
  2510.     BX = zero-based index
  2511. Return: CF clear if successful
  2512.         DS:DI -> BX'th node ID that caller's machine is logged into
  2513.     CF set on error
  2514.         AX = status (see #2342)
  2515. --------H-70---------------------------------
  2516. INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK
  2517. Desc:    this interrupt is called when the real-time clock chip generates an
  2518.       alarm or periodic interrupt, among others.  The periodic interrupt
  2519.       occurs 1024 times per second.
  2520. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  2521.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  2522.     may be masked by setting bit 0 on I/O port A1h
  2523. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  2524. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  2525. --------v-70---------------------------------
  2526. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  2527. Note:    the virus sets this interrupt to be the same as INT 21, and then
  2528.       performs only INT 70 calls; since INT 70 is also generated by the
  2529.       real-time clock on the PC/AT and higher, this could cause random
  2530.       actions on an infected system
  2531. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  2532. --------H-71---------------------------------
  2533. INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  2534. Notes:    may be masked by setting bit 1 on I/O port A1h
  2535.     the default BIOS handler invokes INT 0A for compatibility, since the
  2536.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  2537.       AT expansion bus.
  2538.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2539.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2540.       process
  2541. SeeAlso: INT 0A,INT 59
  2542. --------H-72---------------------------------
  2543. INT 72 C - IRQ10 - RESERVED
  2544. Note:    may be masked by setting bit 2 on I/O port A1h
  2545. SeeAlso: INT 5A
  2546. --------H-73---------------------------------
  2547. INT 73 C - IRQ11 - RESERVED
  2548. Note:    may be masked by setting bit 3 on I/O port A1h
  2549. SeeAlso: INT 5B
  2550. --------H-74---------------------------------
  2551. INT 74 C - IRQ12 - POINTING DEVICE (PS)
  2552. Notes:    may be masked by setting bit 4 on I/O port A1h
  2553.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2554.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2555.       process
  2556. SeeAlso: INT 33,INT 5C
  2557. --------H-75---------------------------------
  2558. INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  2559. Desc:    redirected to INT 02 by the BIOS, for compatibility with the PC
  2560. Notes:    may be masked by setting bit 5 on I/O port A1h
  2561.     not all clones wire the coprocessor to generate this IRQ; some systems
  2562.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  2563.       (see INT 10"COPROCESSOR")
  2564.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2565.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2566.       process
  2567. SeeAlso: INT 10"COPROCESSOR",INT 5D
  2568. --------H-76---------------------------------
  2569. INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later)
  2570. Notes:    may be masked by setting bit 6 on I/O port A1h
  2571.     on the PS/2, this interrupt is designed to be shared with other
  2572.       devices that produce an operation-complete interrupt, though
  2573.       the only current user is the hard disk
  2574. SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E
  2575. --------H-77---------------------------------
  2576. INT 77 C - IRQ15 - RESERVED (AT,PS)
  2577. Note:    may be masked by setting bit 7 on I/O port A1h
  2578. SeeAlso: INT 5F
  2579. --------H-77---------------------------------
  2580. INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  2581. Note:    may be masked by setting bit 7 on I/O port A1h
  2582. SeeAlso: INT 15/AX=4600h,INT 5F
  2583. --------E-78---------------------------------
  2584. INT 78 - UofSalford DBOS DOS extender - API
  2585.     AH = function
  2586.         00h (PB) display 32-bit memory specified by command argument
  2587.         01h (PT) display 32-bit instruction(s) specified by command arg
  2588.         02h specify offset to subsequent PB and PT commands
  2589.         03h switch to protected mode
  2590.         DWORD following INT instruction point to map; protected-mode
  2591.               entry point is immediately following the DWORD
  2592.         Return: never
  2593.         Note:    if bit 31 of the map address is set, only a stub was
  2594.               loaded by DOS and DBOS will load the entire program
  2595.         04h specify that subsequent load (AH=03h) should leave program in
  2596.           memory
  2597.         05h release program from memory
  2598.         06h set break point at address and option count from commandline
  2599.         07h resume program execution
  2600.         08h single-step program
  2601.         09h set read/write breakpoint using 386 debug registers
  2602.         0Ah set write breakpoint using 386 debug register
  2603.         0Bh set memory byte to new value
  2604.         0Ch display CPU registers
  2605.         0Dh run until specified program address reached
  2606.         0Fh print trace from program map
  2607.         10h specify an offset using a map symbol
  2608.         14h print memory without any offset
  2609.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  2610.         1Dh get address of real/protected-mode communication buffer
  2611.         Return: ES:BP -> comm buffer
  2612.         1Eh set real-mode memory size (specify how much real-mode memory
  2613.           to leave free when running FTN77 programs)
  2614.         22h uninstall DBOS
  2615.         24h force DBOS to emulate coprocessor instructions
  2616.         26h set named DBOS switches from commandline
  2617.         27h reset named DBOS switched from commandline
  2618.         2Ah set list of dynamic link libraries to contents of commandline
  2619.           file
  2620.         35h specify that subsequent load (AH=03h) should stop at first
  2621.           instruction
  2622. Return: ???
  2623. Notes:    DBOS supports functions 00h through 50h; many of these functions
  2624.       provide a low-level debugging interface
  2625.     command arguments are read from the calling program's PSP
  2626. SeeAlso: INT 79"DBOS"
  2627. Index:    uninstall;DBOS DOS extender
  2628. --------E-78---------------------------------
  2629. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  2630. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2631.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2632. Notes:    this vector is overwritten when GO32 starts but is not restored by
  2633.       early versions of the extender
  2634.     the newest versions of GO32 dynamically allocate the vectors used
  2635.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  2636. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  2637. --------A-78---------------------------------
  2638. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  2639.     AX = function
  2640.         0001h begin plot
  2641.         BX = file level
  2642.             0000h ASCII file
  2643.             0001h binary file
  2644.             0002h AutoCAD DXB file
  2645.             0003h installed ADI driver
  2646.         0002h end plot (close plotter)
  2647.         0003h move (pen up)
  2648.         BX = new X position
  2649.         CX = new Y position
  2650.         0004h move (pen down)
  2651.         BX = new X position
  2652.         CX = new Y position
  2653.         0005h select pen
  2654.         BX = pen number
  2655.         0006h select drawing speed
  2656.         BX = drawing speed N
  2657.         0007h select line style
  2658.         BX = line style N
  2659.         0008h raise pen
  2660.         0009h abort plot
  2661. Return: AX = 0000h (may be used for driver status in future releases)
  2662. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  2663. --------d-78---------------------------------
  2664. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  2665. SeeAlso: INT 79"ADP-60"
  2666. --------s-78-------------------------------
  2667. INT 78 - ULTRAMID - API
  2668.     AX = function
  2669.     --- digital functions ---
  2670.         0000h start digital
  2671.         ES:DI -> Sound Structure
  2672.         Return: AX = voice used
  2673.         0001h play next buffer
  2674.         ES:DI -> Sound Structure
  2675.         0002h set panning
  2676.         BX = pan
  2677.         CX = voice
  2678.         0003h set volume
  2679.         BX = volume
  2680.         CX = voice
  2681.         0004h set rate (not yet implemented)
  2682.         0005h pause digital
  2683.         CX = voice
  2684.         0006h restart digital
  2685.         CX = voice
  2686.         0007h stop digital
  2687.         CX = voice
  2688.         0008h get digital position
  2689.         CX = voice
  2690.         Return: AX:DX -> position in PC buffer
  2691.         0009h get voice status (not yet implemented)
  2692.     --- MIDI functions ---
  2693.         000Ah load MIDI patches
  2694.         ES:DI -> MIDI track just after the Mtrk header
  2695.         BX:DX = length of MIDI track
  2696.         000Bh load XMIDI patches
  2697.         ES:DI -> event buffer including the EVNT header
  2698.         000Ch load patch
  2699.         CX = MIDI number of patch
  2700.         000Dh unload patch
  2701.         CX = MIDI number of patch
  2702.         000Eh start sequence
  2703.         000Fh unload all patches
  2704.         0010h MIDI out byte
  2705.         CX = MIDI byte
  2706.         0011h MIDI out string
  2707.         CX = length
  2708.         ES:DI -> string of MIDI data
  2709.         0012h all notes off
  2710.     --- resource functions ---
  2711.         0013h allocate memory
  2712.         BX:DX = size of GUS memory needed
  2713.         Return: AX:DX = address of memory, or 0000:0000 if not avaiable
  2714.         0014h free memory
  2715.         BX:DX = address of memory to be freed
  2716.         0015h uninstall
  2717.         0016h sem enter
  2718.         0017h sem leave
  2719.         0018h add external semaphore
  2720.         BX:DX -> external semaphore
  2721.         0019h clear external semaphore
  2722.         BX:DX -> external semaphore
  2723.         001Ah application start
  2724.         001Bh application end
  2725. Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data
  2726.        through the Gravis UltraSound (GUS)
  2727. Range:    INT 78 to INT 7F
  2728. Notes:    the installation check is testing for the signature "ULTRAMID" at
  2729.       offset 0103h in the interrupt handler's segment
  2730. SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E"SBOS"
  2731. Index:    uninstall;UltraMID
  2732. --------d-7800-------------------------------
  2733. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  2734.     AH = 00h
  2735.     DX = interface board I/O port
  2736. Return: CF set on error
  2737.         AL = error code (see #2388)
  2738. Note:    if this routine is not called, the port is the driver's default
  2739.       (usually 0280h or 0300h)
  2740.     an installation check is performed by TARGA.DEV upon initialization
  2741.       by checking for the string "SCSI" at offset 03h into the interrupt
  2742.       handler
  2743. SeeAlso: AH=01h,AH=02h
  2744. Index:    installation check;TARGA.DEV
  2745.  
  2746. (Table 2388)
  2747. Values for TARGA.DEV error code:
  2748.  00h    illegal command given to SCSI code
  2749.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  2750.       an 8-port boundary)
  2751.  02h    invalid DMA channel specified (must be from 1 to 3)
  2752.  03h    invalid SCSI board number specified (must be from 0 to 7)
  2753.  04h    error from data register test during self-test
  2754.  05h    SCSI input signals not all 0 when SCSI RST activated
  2755.  06h    SCSI input signals not all 0 before selecting a SCSI device
  2756.  07h    BSY signal is active; SCSI bus is busy
  2757.  08h    SCSI board not selected, BSY signal did not come on in response to
  2758.       raising SEL
  2759.  09h    time-out waiting for status state, signifying end of DMA transfer
  2760. ----------78--00-----------------------------
  2761. INT 78 - HugeRealMode Server - ENABLE A20
  2762.     AL = 00h
  2763. Return: AX = error code (see #2721)
  2764. Note:    The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded
  2765.       before HUGEREAL (for XMS-memory allocation and A20 control). It
  2766.       utilizes some undocumented 386+ features to enable 4G code and data
  2767.       segments (flat memory model) in the CPUs real-mode. It is not
  2768.       compatible with V86-mode (as with most EMM386). For maximum speed
  2769.       and compatibility with DOS it uses a two stage interrupt model
  2770.       (see INT 78/AL=03h)
  2771. SeeAlso: INT 78/AL=01h,INT 78/AL=02h,INT 78/AL=03h
  2772.  
  2773. (Table 2721)
  2774. Values for HugeRealMode Server error code:
  2775.  00h    successful
  2776.  01h    unknown function
  2777.  02h    A20 disabled
  2778.  03h    A20 enabled
  2779.  04h    memory allocation error
  2780.  05h    memory not fixeable (LOCK)
  2781.  06h    memory not deallocaable
  2782.  07h    memory not moveable (UNLOCK)
  2783.  08h    change in memory allocation size not possible
  2784.  09h    file error (with .XMF-file)
  2785.  0Ah    memory error (with .XMF-file)
  2786.  0Bh    unknown procedure (currently Turbo Pascal unit only)
  2787. ----------78--01-----------------------------
  2788. INT 78 - HugeRealMode Server - DISABLE A20
  2789.     AL = 01h
  2790. Return: AX = error code (see #2721)
  2791. SeeAlso: INT 78/AL=00h,INT 78/AL=02h
  2792. ----------78--02-----------------------------
  2793. INT 78 - HugeRealMode Server - QUERY A20 STATE
  2794.     AL = 02h
  2795. Return: AX = A20 state (0000h disabled, 0001h enabled)
  2796. SeeAlso: INT 78/AL=00h,INT 78/AL=01h
  2797. ----------78--03-----------------------------
  2798. INT 78 - HugeRealMode Server - ENABLE TWO-STAGE INTERRUPT MODEL
  2799.     AL = 03h
  2800. Return: AX = error code (see #2721)
  2801. Notes:    If the two stage interrupt model is disabled, the IP must stay below
  2802.       1MB, because the high word of EIP is not saved correctly by the
  2803.       standard interrupt management in real mode.  Routines in extended
  2804.       memory may only be called with interrupts disabled (only usable for
  2805.       very short routines).
  2806.     If the two stage interupt model is enabled, these conventions are not
  2807.       required.  The outer (transparent) ISRs save the higher word of EIP
  2808.       in the high word of CR3 (possible modification: in memory, if this
  2809.       is not safe) and then invoke the standard ISRs.
  2810.     Because of this handling, one should use pseudo segmented code even in
  2811.       extended memory (64K blocks located on 64K boundaries) to avoid the
  2812.       misalignment of the saved EIP (in CR3). Another way is to track and
  2813.       realign CR3 each time when jumping over a 64K boundary in extended
  2814.       memory
  2815. SeeAlso: INT 78/AL=00h,INT 78/AL=04h
  2816. ----------78--04-----------------------------
  2817. INT 78 - HugeRealMode Server - DISABLE TWO-STAGE INTERRUPT MODEL
  2818.     AL = 04h
  2819. Return: AX = error code (see #2721)
  2820. SeeAlso: INT 78/AL=00h,INT 78/AL=03h
  2821. ----------78--05-----------------------------
  2822. INT 78 - HugeRealMode Server - GET SEGMENT ADDRESS OF SERVER-MANAGEMENT RANGE
  2823.     AL = 05h
  2824. Return:    AX = error code (see #2721)
  2825.     ES = segment address
  2826. ----------78--06-----------------------------
  2827. INT 78 - HugeRealMode Server - ALLOCATE MEMORY
  2828.     AL = 06h
  2829.     DX = length in KB
  2830. Return:    AX = error code (see #2721)
  2831.     DX = handle
  2832.     EBX = start address of allocated block
  2833. SeeAlso: INT 78/AL=07h,INT 78/AL=08h
  2834. ----------78--07-----------------------------
  2835. INT 78 - HugeRealMode Server - DEALLOCATE MEMORY
  2836.     AL = 07h
  2837.     DX = handle
  2838. Return: AX = error code (see #2721)
  2839. SeeAlso: INT 78/AL=06h,INT 78/AL=08h
  2840. ----------78--08-----------------------------
  2841. INT 78 - HugeRealMode Server - MODIFY ALLOCATED MEMORY SIZE
  2842.     AL = 08h
  2843.     DX = handle
  2844.     BX = new size in KB
  2845. Return:    AX = error code (see #2721)
  2846.     EBX = new address
  2847. SeeAlso: INT 78/AL=06h,INT 78/AL=07h
  2848. ----------78--09-----------------------------
  2849. INT 78 - HugeRealMode Server - LOAD .XMF-FILE
  2850.     AL = 09h
  2851.     ES:BX -> filename (see #2723)
  2852. Return:    AX = error code (see #2721)
  2853.     ECX = target address
  2854. Notes:    memory must be allocated before loading
  2855.     .XMF file format (eXtended Memory executable File format) is supported
  2856.       by the HugeRealMode server for easier handling of XMS-code.
  2857.     The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to
  2858.       .XMF-format
  2859. SeeAlso: INT 78/AL=06h
  2860.  
  2861. Format of .XMF program file header::
  2862. Offset    Size    Description    (Table 2723)
  2863.  00h    DWORD    signature "XMF_"
  2864.  04h    WORD    length of programs code
  2865.  06h    WORD    count of 32bit addresses to relocate
  2866.  08h    WORD    offset to code start (releative to file start) (see #2724)
  2867.  0Ah    WORD    relocation table
  2868. Note:    each word contains a 16bit address, where a relocation has to be
  2869.       performed
  2870.  
  2871. Format of .XMF-file code header::
  2872. Offset    Size    Description    (Table 2724)
  2873.  00h    WORD    count of exported functions
  2874.  02h  N PWORDs    48bit pointers (16bit segment+32bit offset) to each function
  2875.         (16bit segment is always zero)
  2876.  var        start of program's code
  2877. SeeAlso: #2723
  2878. ----------78--0A-----------------------------
  2879. INT 78 - HugeRealMode Server - SET SEGMENT LIMITS
  2880.     AL = 0Ah
  2881.     BL = segment limits (see #2722)
  2882. Return: AX = error code (see #2721)
  2883. SeeAlso: INT 78/AL=05h
  2884.  
  2885. Bitfields for HugeRealMode Server segment limits:
  2886. Bit(s)    Description    (Table 2722)
  2887.  7    CS size: 1=4GB, 0=64KB
  2888.  6-5    not used
  2889.  4    SS size: 1=4GB, 0=64KB
  2890.  3    GS size
  2891.  2    FS size
  2892.  1    ES size
  2893.  0    DS size
  2894. ----------78--0B-----------------------------
  2895. INT 78 - HugeRealMode Server - TRANSFER MEMORY FROM DOS TO XMS
  2896.     AL = 0Bh
  2897.     ES:SI = source address
  2898.     EDI = target address
  2899.     ECX = length
  2900. Return: AX = error code
  2901. SeeAlso: INT 78/AL=0Ch
  2902. ----------78--0C-----------------------------
  2903. INT 78 - HugeRealMode Server - TRANSFER MEMORY FROM XMS TO DOS
  2904.     AL = 0Ch
  2905.     ESI = source address
  2906.     ES:DI = target address
  2907.     ECX = length
  2908. Return: AX = error code
  2909. SeeAlso: INT 78/AL=0Ch
  2910. ----------7800-------------------------------
  2911. INT 78 - HugeRealMode Driver - API
  2912.     AH = 00h
  2913.     AL = function
  2914.         00h installation check
  2915.         Return: AX = DBCAh if installed
  2916.         01h get entry point
  2917.         Return: ES:BX -> far call entry point
  2918. Program: the HugeRealMode driver was published in the German DOS Extra Nr. 20
  2919.       (1992), and makes a 4G flat address space (for both data and code)
  2920.       available to real-mode DOS programs
  2921. --------d-7801-------------------------------
  2922. INT 78 - TARGA.DEV - GET I/O PORT
  2923.     AH = 01h
  2924. Return: DX = current interface board I/O port
  2925. SeeAlso: AH=00h,AH=03h"TARGA"
  2926. --------d-7802-------------------------------
  2927. INT 78 - TARGA.DEV - SET DMA CHANNEL
  2928.     AH = 02h
  2929.     AL = interface board DMA channel
  2930. Return: CF set on error
  2931.     AL = error code (see #2388)
  2932. Note:    if this routine is not called, the DMA channel is the driver's default
  2933.       (usually 3)
  2934. SeeAlso: AH=00h,AH=03h"TARGA"
  2935. --------d-7803-------------------------------
  2936. INT 78 - TARGA.DEV - GET DMA CHANNEL
  2937.     AH = 03h
  2938. Return: AL = current interface board DMA channel
  2939. SeeAlso: AH=01h,AH=02h
  2940. --------d-7804-------------------------------
  2941. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  2942.     AH = 04h
  2943.     AL = SCSI device number
  2944. Return: CF set on error
  2945.     AL = error code (see #2388)
  2946. Note:    if this routine is not called, the device number used is the driver's
  2947.       default (usually 0)
  2948. SeeAlso: AH=02h,AH=05h
  2949. --------d-7805-------------------------------
  2950. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  2951.     AH = 05h
  2952. Return: AL = current SCSI device number
  2953. SeeAlso: AH=03h"TARGA",AH=04h
  2954. --------d-7806-------------------------------
  2955. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  2956.     AH = 06h
  2957.     AL = new state
  2958.         00h clear early return mode
  2959.         01h set early return mode
  2960. Note:    if early return mode is set then SCSI will return with no errors
  2961.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  2962.     if this routine is not called, early return mode is cleared
  2963. SeeAlso: AH=13h,AH=14h,AH=15h
  2964. --------d-7808-------------------------------
  2965. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  2966.     AH = 08h
  2967. Return: CF set on error
  2968.     AL = error code (see #2388)
  2969. Note:    the SCSI bus is also reset
  2970. SeeAlso: AH=09h
  2971. --------d-7809-------------------------------
  2972. INT 78 - TARGA.DEV - RESET SCSI BUS
  2973.     AH = 09h
  2974. Return: AL = error code if carry set (see #2388)
  2975. SeeAlso: AH=08h
  2976. --------d-7810-------------------------------
  2977. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  2978.     AH = 10h
  2979.     DS:SI -> command bytes (see #2389)
  2980. Return: AH = SCSI status byte
  2981.     CF clear if successful
  2982.         AL = SCSI message byte
  2983.     CF set on error
  2984.         AL = error code (see #2388)
  2985. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  2986.  
  2987. Format of SCSI Command:
  2988. Offset    Size    Description    (Table 2389)
  2989.  00h    BYTE    length of command
  2990.  01h    ???    command bytes
  2991. --------d-7811-------------------------------
  2992. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  2993.     AH = 11h
  2994.     DS:SI -> command bytes (see #2390)
  2995.     ES:BX -> data storage area
  2996.     CX = number of data bytes to transfer
  2997. Return: AH = SCSI status byte
  2998.     CF clear if successful
  2999.         AL = SCSI message byte
  3000.     CF set on error
  3001.         AL = error code (see #2388)
  3002. Note:    this command receives data internally one byte at a time
  3003. SeeAlso: AH=10h,AH=13h
  3004.  
  3005. Format of TARGA.DEV SCSI Command:
  3006. Offset    Size    Description    (Table 2390)
  3007.  00h    BYTE    length of command
  3008.  01h    ???    command bytes
  3009. --------d-7812-------------------------------
  3010. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  3011.     AH = 12h
  3012.     DS:SI -> command bytes (see #2391)
  3013.     ES:BX -> data storage area
  3014.     CX = number of data bytes to transfer
  3015. Return: AH = SCSI status byte
  3016.     CF clear if successful
  3017.         AL = SCSI message byte
  3018.     CF set on error
  3019.         AL = error code (see #2388)
  3020. Note:    this command sends data internally one byte at a time
  3021. SeeAlso: AH=14h
  3022.  
  3023. Format of TARGA.DEV SCSI Command:
  3024. Offset    Size    Description    (Table 2391)
  3025.  00h    BYTE    length of command
  3026.  01h    ???    command bytes
  3027. --------d-7813-------------------------------
  3028. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  3029.     AH = 13h
  3030.     DS:SI -> command bytes (see #2392)
  3031.     ES:BX -> data storage area
  3032.     DX:CX = number of data bytes to transfer
  3033. Return: AH = SCSI status byte (if early return mode is clear)
  3034.     CF clear if successful
  3035.         AL = SCSI message byte (if early return mode is clear)
  3036.     CF set on error
  3037.         AL = error code (see #2388)
  3038. Note:    this command receives data using DMA
  3039. SeeAlso: AH=11h,AH=12h
  3040.  
  3041. Format of TARGA.DEV SCSI Command:
  3042. Offset    Size    Description    (Table 2392)
  3043.  00h    BYTE    length of command
  3044.  01h    ???    command bytes
  3045. --------d-7814-------------------------------
  3046. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  3047.     AH = 14h
  3048.     DS:SI -> command bytes (see #2393)
  3049.     ES:BX -> data storage area
  3050.     DX:CX = number of data bytes to transfer
  3051. Return: AH = SCSI status byte (if early return mode is clear)
  3052.     CF clear if successful
  3053.         AL = SCSI message byte (if early return mode is clear)
  3054.     CF set on error
  3055.         AL = error code (see #2388)
  3056. Note:    this command sends data using DMA
  3057. SeeAlso: AH=12h,AH=13h
  3058.  
  3059. Format of TARGA.DEV SCSI Command:
  3060. Offset    Size    Description    (Table 2393)
  3061.  00h    BYTE    length of command
  3062.  01h    ???    command bytes
  3063. --------d-7815-------------------------------
  3064. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  3065.     AH = 15h
  3066. Return: AH = SCSI status byte
  3067.     CF clear if successful
  3068.         AL = SCSI message byte
  3069.     CF set on error
  3070.         AL = error code (see #2388)
  3071. Note:    if AH=06h was previously called to set the early return mode, this
  3072.       function finishes a command AH=13h or AH=14h which returned before
  3073.       the last DMA transfer was finished
  3074. SeeAlso: AH=06h,AH=13h,AH=14h
  3075. --------V-79---------------------------------
  3076. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  3077. Return: CF set if no keystroke available
  3078.         AX = FFFFh
  3079.     CF clear if key pressed
  3080.         AX = keystroke
  3081. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  3082.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  3083. Note:    if a keystroke is available, it is removed from the keyboard buffer
  3084.       before being returned
  3085. SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156h
  3086. --------E-79---------------------------------
  3087. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  3088. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3089.       early versions of the extender
  3090.     the newest versions of GO32 dynamically allocate the vectors used
  3091.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3092. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  3093. --------d-79---------------------------------
  3094. INT 79 U - ADP-60 IDE adapter - ???
  3095. SeeAlso: INT 78"ADP-60"
  3096. --------E-79---------------------------------
  3097. INT 79 - DBOS DOS Extender
  3098.     details not available
  3099. Desc:    this interrupt is used by an MS Windows virtual device driver with
  3100.       which the DBOS extender communicates when run inside a Windows
  3101.       Enhanced Mode DOS box
  3102. SeeAlso: INT 78"DBOS"
  3103. --------A-790001-----------------------------
  3104. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  3105.     AX = 0001h
  3106.     BX = interface level (0001h)
  3107. Return: AX = status (0000h initialization failed, 0001h init successful)
  3108.     BX = digitizer type
  3109.         0000h relative pointing device (mouse, etc.)
  3110.         0001h digitizing tablet
  3111.     CX = digitizer dataflow type
  3112.         0000h continuous
  3113.         0001h pauses between packets
  3114. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  3115. --------A-790002-----------------------------
  3116. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  3117.     AX = 0002h
  3118. SeeAlso: AX=0001h,AX=0003h
  3119. --------A-790003-----------------------------
  3120. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  3121.     AX = 0003h
  3122. Return: AX = status
  3123.         0000h nothing
  3124.         0002h tracking point (no button pressed)
  3125.         BX = X coordinate
  3126.         CX = Y coordinate
  3127.         0003h picked point (button 0,A,B,C,D pressed)
  3128.         BX = X coordinate
  3129.         CX = Y coordinate
  3130.         0004h button pick
  3131.         BX = button number
  3132.         0005h button and coordinates
  3133.         BX = button number
  3134.         CX = X coordinate
  3135.         DX = Y coordinate
  3136. SeeAlso: AX=0001h,AX=0002h
  3137. --------N-7A---------------------------------
  3138. INT 7A U - Topware Network Operating System - ???
  3139.     AL = ???
  3140.     ???
  3141. Return: ???
  3142. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  3143. --------N-7A---------------------------------
  3144. INT 7A - X.PC Packet software interface
  3145.     ES:BX -> parameter block
  3146. SeeAlso: INT 60/AX=01FFh
  3147. --------E-7A---------------------------------
  3148. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  3149. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3150.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3151. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3152.       early versions of the extender
  3153.     the newest versions of GO32 dynamically allocate the vectors used
  3154.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3155. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  3156. --------P-7A---------------------------------
  3157. INT 7A O - PRINDIR - API (moved to INT 7C)
  3158. SeeAlso: INT 7C"PRINDIR"
  3159. --------N-7A---------------------------------
  3160. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  3161. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  3162.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3163.       entry point even though INT 7A still exists.    For both INT 7A and
  3164.       the FAR entry point, BX contains the function number; IPX is
  3165.       sometimes called internally with BX bit 15 set, which causes the
  3166.       handler to bypass some initial checks and an optional call to the
  3167.       IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  3168.       (see #1619)
  3169. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  3170. --------N-7A----BX0000-----------------------
  3171. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  3172.     BX = 0000h
  3173.     AL = socket longevity
  3174.         00h open until close or terminate
  3175.         FFh open until close
  3176.     DX = socket number (high byte in DL)
  3177.         0000h dynamic allocation
  3178.         else  socket to open (see #2394)
  3179. Return: AL = return code
  3180.         00h success
  3181.         DX = socket number
  3182.         FEh socket table full
  3183.         FFh socket already open
  3184. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  3185.       programs should normally use AL=00h
  3186.     IPX can be configured to support up to 150 open sockets on a
  3187.       workstation, and defaults to 20
  3188.     this function is supported by Advanced NetWare 1.02+
  3189. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  3190.  
  3191. (Table 2394)
  3192. Values for IPX socket number:
  3193.  0451h    File Service (NetWare Core Protocol)
  3194.  0452h    Service Advertising Protocol (see #2402)
  3195.  0453h    Routing Information Packet (see #2405)
  3196.  0455h    NetBIOS Packet
  3197.  0456h    diagnostics
  3198.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  3199.  4000h-7FFFh used for dynamic allocation
  3200.  4444h    Brightwork Development's SiteLock server
  3201.  5555h    Brightwork Development's SiteLock client (workstation)
  3202.  8000h-FFFFh assigned by Novell
  3203.  869Ch    ID Software's DOOM
  3204. Note:    SiteLock is an application metering product using IPX to communicate
  3205.       between the application and the license server
  3206. --------N-7A----BX0001-----------------------
  3207. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  3208.     BX = 0001h
  3209.     DX = socket number (high byte in DL) (see #2394)
  3210. Notes:    also cancels events set by any Event Control Blocks for the socket
  3211.     the program must close all open sockets before terminating
  3212.     this function is supported by Advanced NetWare 1.02+
  3213. SeeAlso: BX=0000h
  3214. --------N-7A----BX0002-----------------------
  3215. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  3216.     BX = 0002h
  3217.     ES:SI -> target internetwork address (see #2409 at INT 7A/BX=000Bh)
  3218.     ES:DI -> 6-byte buffer for local target
  3219. Return: AL = return code
  3220.         00h success
  3221.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  3222.               packet
  3223.            ES:DI -> local target
  3224.         FAh unsuccessful (no path to destination)
  3225. Notes:    the internetwork address consists of a 4-byte network address followed
  3226.       by a 6-byte node address.  The local target is only a 6-byte node
  3227.       address.  If the target is in the same network, the local target is
  3228.       just the node address of target; otherwise, the local target is the
  3229.       node address of the bridge that leads to the target.
  3230.     this function may be called from inside IPX and AES Event Service
  3231.       Routines, but not from other interrupt handlers
  3232.     this function is supported by Advanced NetWare 1.02+
  3233. SeeAlso: BX=0009h
  3234. --------N-7A----BX0003-----------------------
  3235. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  3236.     BX = 0003h
  3237.     ES:SI -> Event Control Block (see #2395,#2396)
  3238. Notes:    returns immediately; IPX attempts to send the packet in the background
  3239.     this function is supported by Advanced NetWare 1.02+
  3240.     this function is nearly identical to BX=000Fh, except that it always
  3241.       copies the source address into the IPX header assumed to be at the
  3242.       beginning of the first fragment
  3243. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  3244.  
  3245. Format of IPX Event Control Block:
  3246. Offset    Size    Description    (Table 2395)
  3247.  00h    DWORD    Link
  3248.  04h    DWORD    -> Event Service Routine (00000000h if none) (see #2399)
  3249.  08h    BYTE    in use flag (see #2397)
  3250.  09h    BYTE    completion code (see #2398)
  3251.  0Ah    WORD    (big-endian) socket number (see #2394)
  3252.  0Ch  4 BYTEs    IPX workspace
  3253.  10h 12 BYTEs    driver workspace
  3254.  1Ch  6 BYTEs    immediate local node address
  3255.  22h    WORD    fragment count
  3256.  24h    var    fragment descriptors
  3257.         Offset    Size    Description
  3258.          00h    DWORD    -> fragment data
  3259.          04h    WORD    size of fragment in bytes.
  3260. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  3261.       On call, the in use flag is zero if the ECB has been handled,
  3262.       non-zero otherwise. If the flag is zero, the completion code holds
  3263.       the result of the event.
  3264.     the first fragment should start with an IPX header (see #2400)
  3265.     all fragments are concatenated and sent in one piece
  3266.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  3267. SeeAlso: #2396
  3268.  
  3269. Format of AES-ECB:
  3270. Offset    Size    Description    (Table 2396)
  3271.  00h    DWORD    Link
  3272.  04h    DWORD    ESR (Event Service Routine) address (see #2399)
  3273.  08h    BYTE    in use flag (see #2397)
  3274.  09h  5 BYTEs    AES workspace
  3275. SeeAlso: #2395
  3276.  
  3277. (Table 2397)
  3278. Values for ECB in use flag:
  3279.  00h    available
  3280.  E0h    AES temporary
  3281.  F6h    \ special IPX/SPX processing for v3.02+
  3282.  F7h    /
  3283.  F8h    IPX in critical section
  3284.  F9h    SPX listening
  3285.  FAh    processing
  3286.  FBh    holding
  3287.  FCh    AES waiting
  3288.  FDh    AES couting down delay time
  3289.  FEh    awaiting packet reception
  3290.  FFh    sending packet
  3291. SeeAlso: #2395,#2396,#2398
  3292.  
  3293. (Table 2398)
  3294. Values for ECB completion code:
  3295.  00h    success
  3296.  ECh    remote terminated connection without acknowledging packet
  3297.  EDh    abnormal connection termination
  3298.  EEh    invalid connection ID
  3299.  EFh    SPX connection table full
  3300.  F9h    event should not be cancelled
  3301.  FAh    cannot establish connection with specified destination
  3302.  FCh    cancelled
  3303.  FDh    malformed packet
  3304.  FEh    packet undeliverable
  3305.  FFh    physical error
  3306. SeeAlso: #2395,#2397
  3307.  
  3308. (Table 2399)
  3309. Values Event Service Routine is called with:
  3310.     AL = caller's identity (00h = AES, FFh = IPX)
  3311.     ES:SI -> event control block
  3312.     interrupts disabled
  3313. Return: all registers preserved
  3314. SeeAlso: #2395,#2400
  3315.  
  3316. Format of IPX header:
  3317. Offset    Size    Description    (Table 2400)
  3318.  00h    WORD    (big-endian) checksum
  3319.  02h    WORD    (big-endian) length in bytes of total packet
  3320.  04h    BYTE    transport control
  3321.  05h    BYTE    packet type (see #2401)
  3322.  06h 10 BYTEs    destination internetwork address
  3323.  10h    WORD    (big-endian) destination socket
  3324.  12h 10 BYTEs    source internetwork address
  3325.  1Ch    WORD    (big-endian) source socket
  3326. SeeAlso: #2395,#2411
  3327.  
  3328. (Table 2401)
  3329. Values for IPX packet type:
  3330.  00h    unknown packet type
  3331.  01h    routing information packet
  3332.  02h    echo packet
  3333.  03h    error packet
  3334.  04h    packet exchange packet (always use this one)
  3335.  05h    SPX packet (see #2411)
  3336.  11h    NetWare Core Protocol
  3337.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  3338.  15h-1Eh experimental protocols
  3339. Note:    undocumented packet type 14h will cross up to 16 networks deep in
  3340.       all directions; as Aaron Martin of Origin Systems discovered, the
  3341.       first 64 bytes of the IPX data in such packets should be considered
  3342.       reserved, as IPX places the traversed server nodes there.
  3343.  
  3344. Format of Service Advertising Protocol Service Query Packet:
  3345. Offset    Size    Description    (Table 2402)
  3346.  00h 30 BYTEs    IPX header
  3347.  1Eh    WORD    (big-endian) query type
  3348.         0001h general find service
  3349.         0003h find nearest server
  3350.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3351. SeeAlso: #2403
  3352.  
  3353. Format of Service Advertising Protocol Server Identification Packet:
  3354. Offset    Size    Description    (Table 2403)
  3355.  00h 30 BYTEs    IPX header
  3356.  1Eh    WORD    (big-endian) response type
  3357.         0002h general service
  3358.         0004h nearest service
  3359.  20h 64N BYTEs    server entries (1-7) (see #2404)
  3360. SeeAlso: #2402,#2405
  3361.  
  3362. Format of SAP server entry:
  3363. Offset    Size    Description    (Table 2404)
  3364.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3365.  02h 48 BYTEs    ASCIZ server name
  3366.  32h  2 WORDs    (big-endian) network number
  3367.  34h  3 WORDs    (big-endian) node number
  3368.  3Ch    WORD    (big-endian) socket number
  3369.  3Eh    WORD    (big-endian) number of hops between caller and server
  3370.  
  3371. Format of IPX Routing Information packet:
  3372. Offset    Size    Description    (Table 2405)
  3373.  00h 30 BYTEs    IPX header
  3374.  1Eh    WORD    operation (0001h request, 0002h response)
  3375.  20h 8N BYTEs    network entries (1-50) (see #2406)
  3376. SeeAlso: #2403
  3377.  
  3378. Format of RIP network entry:
  3379. Offset    Size    Description    (Table 2406)
  3380.  00h    DWORD    network number (FFFFFFFFh = general request)
  3381.  04h    WORD    (response) number of hops
  3382.  06h    WORD    (response) number of clock ticks to reach destination
  3383. --------N-7A----BX0004-----------------------
  3384. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  3385.     BX = 0004h
  3386.     ES:SI -> Event Control Block (see BX=0003h)
  3387. Return: AL = status
  3388.         00h successful
  3389.         FFh no listening socket for packet
  3390. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  3391.       does not wait for a packet to arrive
  3392. Notes:    the application must open a socket and initialize the ECB's ESR
  3393.       address, socket number, fragment count, and fragment descriptor
  3394.       fields before invoking this function
  3395.     there is no limit on the number of ECBs which may simultaneously be
  3396.       listening on a socket
  3397.     this function is supported by Advanced NetWare 1.02+
  3398. SeeAlso: BX=0000h,BX=0003h
  3399. --------N-7A----BX0005-----------------------
  3400. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  3401.     BX = 0005h
  3402.     AX = delay time in clock ticks
  3403.     ES:SI -> Event Control Block (see BX=0003h)
  3404. Note:    this function is supported by Advanced NetWare 1.02+
  3405. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  3406. --------N-7A----BX0006-----------------------
  3407. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  3408.     BX = 0006h
  3409.     ES:SI -> Event Control Block (see BX=0003h)
  3410. Return: AL = return code (see #2407)
  3411. Notes:    cannot cancel packets which the node's driver has already sent
  3412.     this function is supported by Advanced NetWare 1.02+
  3413. SeeAlso: BX=0005h
  3414.  
  3415. (Table 2407)
  3416. Values for IPX return code:
  3417.  00h    success
  3418.  F9h    event in use
  3419.  FCh    event cancelled
  3420.  FFh    unsuccessful, event not in use, or unrecognized ECB flag
  3421. --------N-7A----BX0007-----------------------
  3422. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  3423.     BX = 0007h
  3424.     AX = delay time
  3425.     ES:SI -> Event Control Block (see BX=0003h)
  3426. Note:    this function is supported by Advanced NetWare 1.02+
  3427. SeeAlso: BX=0006h
  3428. --------N-7A----BX0008-----------------------
  3429. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  3430.     BX = 0008h
  3431. Return: AX = interval marker in clock ticks (big-endian???)
  3432. Notes:    may be used to measure the time elapsed between two events, up to one
  3433.       hour
  3434.     this function is supported by Advanced NetWare 1.02+
  3435. SeeAlso: BX=0005h
  3436. --------N-7A----BX0009-----------------------
  3437. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  3438.     BX = 0009h
  3439.     ES:SI -> buffer for own internetwork address (see #2408)
  3440. Return: ES:SI buffer filled
  3441.     SI destroyed
  3442. Note:    this function is supported by Advanced NetWare 1.02+
  3443. SeeAlso: BX=0002h,BX=000Bh
  3444.  
  3445. Format of IPX internetwork address:
  3446. Offset    Size    Description    (Table 2408)
  3447.  00h  4 BYTEs    (big-endian) network number
  3448.  04h  6 BYTEs    (big-endian) node number within network
  3449. --------N-7A----BX000A-----------------------
  3450. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  3451.     BX = 000Ah
  3452. Desc:    this call indicates that the application is idle and permits the IPX
  3453.       driver to do some work
  3454. Note:    this function is supported by Advanced NetWare 1.02+
  3455. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  3456. --------N-7A----BX000B-----------------------
  3457. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  3458.     BX = 000Bh
  3459.     ES:SI -> internetwork address (see #2409)
  3460. Return: nothing
  3461. Notes:    this function permits the network software on the remote machine to
  3462.       remove any virtual connection with the calling machine
  3463.     only use in point-to-point networks
  3464.     should never be called from within an Event Service Routine
  3465.     this function is supported by Advanced NetWare 1.02+
  3466. SeeAlso: BX=0002h,BX=0009h
  3467.  
  3468. Format of IPX internetwork address:
  3469. Offset    Size    Description    (Table 2409)
  3470.  00h  4 BYTEs    (big-endian) destination network
  3471.  04h  6 BYTEs    (big-endian) destination node
  3472.  0Ah  2 BYTEs    (big-endian) destination socket
  3473. --------N-7A----BX000C-----------------------
  3474. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  3475.     BX = 000Ch
  3476.     CX:DX = global network address (see INT 7A/BX=0002h)
  3477.     ES:DI -> "OSINCRITICALSECTION" flag
  3478.     DS:SI -> current mode for socket
  3479. Note:    the address cannot be changed once it has been initialized
  3480. SeeAlso: INT 7A/BX=0024h
  3481. --------N-7A----BX000D-----------------------
  3482. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  3483.     BX = 000Dh
  3484. Return: AX = maximum packet size
  3485.     CX = retry count
  3486. SeeAlso: BX=001Ah
  3487. --------N-7A----BX000E-----------------------
  3488. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  3489.     BX = 000Eh
  3490. Return: nothing
  3491. Notes:    this function terminates all sockets opened with the current mode; this
  3492.       may be intended for future enhancements as the socket mode never
  3493.       changes in v2.15
  3494.     called by the NetWare shell if a program terminates
  3495. --------N-7A----BX000F-----------------------
  3496. INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  3497.     BX = 000Fh
  3498.     ES:SI -> Event Control Block (see BX=0003h)
  3499. Note:    nearly identical to function 0003h, but does not copy address into
  3500.       the first fragment, and bypasses normal error checking
  3501. SeeAlso: BX=0003h
  3502. --------N-7A----BX0010-----------------------
  3503. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  3504.     BX = 0010h
  3505.     AL = 00h
  3506. Return: AL = status
  3507.         00h if SPX not installed
  3508.         F0h if IPX not installed
  3509.         FFh if SPX loaded
  3510.         BH = SPX major version
  3511.         BL = SPX minor version
  3512.         CX = maximum SPX connections
  3513.         DX = SPX connections available
  3514. Notes:    this function is supported by Advanced NetWare 2.1+
  3515.     this interrupt is used for IPX/SPX access in NetWare versions through
  3516.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3517.       entry point even though INT 7A still exists.    For both INT 7A and
  3518.       the FAR entry point, BX contains the function number
  3519.     IPX is sometimes called internally with BX bit 15 set, which causes the
  3520.       entry point handler to bypass some checks and an optional call to
  3521.       the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  3522.       (see #1619)
  3523. SeeAlso: BX=0015h
  3524. --------N-7A----BX0011-----------------------
  3525. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  3526.     BX = 0011h
  3527.     AL = retry count
  3528.     AH = watchdog flag
  3529.     ES:SI -> Event Control Block (see #2395 at BX=0003h)
  3530. Return: AL = status (00h,EFh,FDh,FFh) (see #2410)
  3531.     DX = assigned connection ID number
  3532. Desc:    attempt to establish a connection with a listening socket
  3533. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3534.       that NetWare can perform its internal packet exchanges
  3535.     the first fragment should start with a SPX header (see #2411).    Fill
  3536.       in all destination addresses.
  3537.     this function is supported by Advanced NetWare 2.1+
  3538. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  3539.  
  3540. (Table 2410)
  3541. Values for SPX function status:
  3542.  00h    attempting to contact destination socket
  3543.  EEh    no such connection
  3544.  EFh    local connection table full
  3545.  FDh    buffer size not 42 or fragment count not 1
  3546.  FFh    sending socket not open
  3547.  
  3548. Format of SPX header:
  3549. Offset    Size    Description    (Table 2411)
  3550.  00h    WORD    (big-endian) checksum
  3551.  02h    WORD    (big-endian) length in bytes of total packet
  3552.  04h    BYTE    transport control
  3553.  05h    BYTE    packet type (see #2401 at INT 7A/BX=0003h)
  3554.  06h 10 BYTEs    destination internet address
  3555.  10h    WORD    (big-endian) destination socket
  3556.  12h 10 BYTEs    source internet address
  3557.  1Ch    WORD    (big-endian) source socket
  3558.  1Eh    BYTE    connection control (see #2412)
  3559.  1Fh    BYTE    datastream type
  3560.         FEh terminate connection request packet
  3561.         FFh terminate connection acknowledgement packet
  3562.         other user-defined, ignored by SPX
  3563.  20h    WORD    (big-endian) source connection ID
  3564.  22h    WORD    (big-endian) destination connection ID
  3565.  24h    WORD    (big-endian) sequence number
  3566.  26h    WORD    (big-endian) acknowledge number
  3567.  28h    WORD    (big-endian) allocation number
  3568. SeeAlso: #2400
  3569.  
  3570. Bitfields for SPX connection control:
  3571. Bit(s)    Description    (Table 2412)
  3572.  3-0    unused???
  3573.  4    end of message
  3574.  5    reserved
  3575.  6    acknowledgement required
  3576.  7    system packet
  3577. --------N-7A----BX0012-----------------------
  3578. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  3579.     BX = 0012h
  3580.     AH = watchdog flag (00h disabled, 01h enabled)
  3581.     AL = retry count (00h = default)
  3582.     ES:SI -> Event Control Block (see #2395 at BX=0003h)
  3583. Return: nothing
  3584. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3585.       that NetWare can perform its internal packet exchanges
  3586.     this function is supported by Advanced NetWare 2.1+
  3587. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  3588. --------N-7A----BX0013-----------------------
  3589. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  3590.     BX = 0013h
  3591.     DX = connection ID to terminate
  3592.     ES:SI -> Event Control Block (see #2395 at BX=0003h)
  3593. Note:    this function is supported by Advanced NetWare 2.1+
  3594. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  3595. --------N-7A----BX0014-----------------------
  3596. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  3597.     BX = 0014h
  3598.     DX = connection ID to terminate
  3599. Return: nothing
  3600. Notes:    this function is supported by Advanced NetWare 2.1+
  3601.     this function does not tell the other side that the connection has been
  3602.       terminated
  3603.     also aborts any outstanding Establish Connection, Terminate Connection,
  3604.       and Send Sequenced Packet commands
  3605. SeeAlso: BX=0011h,BX=0013h
  3606. --------N-7A----BX0015-----------------------
  3607. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  3608.     BX = 0015h
  3609.     DX = connection ID
  3610.     ES:SI -> status buffer (see #2413)
  3611. Return: AL = return code (00h,EEh) (see also #2410)
  3612.         00h connection still valid
  3613.         ES:SI -> status buffer filled
  3614. Note:    this function is supported by Advanced NetWare 2.1+
  3615. SeeAlso: BX=0010h,BX=0011h
  3616.  
  3617. Format of SPX status buffer:
  3618. Offset    Size    Description    (Table 2413)
  3619.  00h    BYTE    connection state
  3620.         01h waiting to establish connection
  3621.         02h starting (attempting to create connection)
  3622.         03h connection established
  3623.         04h terminating
  3624.  01h    BYTE    watchdog flag
  3625.         bit 0: used internally by SPX
  3626.         bit 1: SPX watchdog is monitoring connection
  3627.         bits 2-7 used internally by SPX
  3628.  02h    WORD    (big-endian) source connection ID
  3629.  04h    WORD    (big-endian) destination connection ID
  3630.  06h    WORD    (big-endian) sequence number of next packet sent
  3631.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  3632.           next received packet
  3633.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  3634.           without ACK from local SPX
  3635.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  3636.           remote SPX expects to receive
  3637.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  3638.           local SPX may send
  3639.  10h    WORD    (big-endian) connection socket
  3640.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  3641.  18h 10 BYTEs    destination internetwork address (see #2409 at INT 7A/BX=000Bh)
  3642.  22h    WORD    (big-endian) retransmit count
  3643.  24h    WORD    (big-endian) estimated roundtrip delay
  3644.  26h    WORD    (big-endian) retransmitted packets
  3645.  28h    WORD    (big-endian) suppressed packets
  3646.  2Ah 12 BYTEs    ??? (v2.15)
  3647. --------N-7A----BX0016-----------------------
  3648. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  3649.     BX = 0016h
  3650.     DX = connection ID
  3651.     ES:SI -> Event Control Block (see BX=0003h)
  3652. Notes:    this function is supported by Advanced NetWare 2.1+
  3653.     CX may need to be 0001h ???
  3654. SeeAlso: BX=0011h,BX=0017h
  3655. --------N-7A----BX0017-----------------------
  3656. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  3657.     BX = 0017h
  3658.     DX = connection ID (unused in v2.15)
  3659.     ES:SI -> Event Control Block (see BX=0003h)
  3660. Notes:    this function is supported by Advanced NetWare 2.1+
  3661.     CX may need to be 0001h ???
  3662. SeeAlso: BX=0011h,BX=0016h
  3663. --------N-7A----BX0018-----------------------
  3664. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  3665.     BX = 0018h
  3666.     ES:SI -> diagnostic element (see #2414) to be added to Diagnostic Queue
  3667. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3668.       supports it on workstations
  3669. SeeAlso: BX=0019h
  3670.  
  3671. Format of IPX diagnostic element:
  3672. Offset    Size    Description    (Table 2414)
  3673.  00h    DWORD    pointer to next diagnostic element
  3674.  04h    DWORD    pointer to function for ???
  3675.  08h    DWORD    pointer to function for ???
  3676. --------N-7A----BX0019-----------------------
  3677. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  3678.     BX = 0019h
  3679.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  3680. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3681.       supports it on workstations
  3682. SeeAlso: BX=0018h
  3683. --------N-7A----BX001A-----------------------
  3684. INT 7A - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  3685.     BX = 001Ah
  3686. Return: AX = maximum packet size with preamble (at least 576 bytes)
  3687.     CX = IPX retry count
  3688.     DS,FLAGS preserved
  3689. Note:    this function is has existed since November 1989; it is documented in
  3690.       Novell document FYI.A.3709, 03May91
  3691. SeeAlso: BX=000Dh
  3692. --------N-7A----BX001B-----------------------
  3693. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  3694.     BX = 001Bh
  3695.     ???
  3696. Return: ???
  3697. Notes:    this function is supported on file servers only under v2.15; v3.02 also
  3698.       supports it on workstations
  3699.     used by NetWare Access Server, which may call INT 15/AX=1117h with
  3700.       BX=0000h in some cases (it uses a modified DESQview)
  3701. --------N-7A----BX001C-----------------------
  3702. INT 7A U - Novell NetWare - NetWare Access Server - GET ???
  3703.     BX = 001Ch
  3704. Return: AX = length of ???
  3705.     ES:BX -> ???
  3706. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3707. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001Eh
  3708. --------N-7A----BX001D-----------------------
  3709. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET
  3710.     BX = 001Dh
  3711. Return: DX = socket number chosen by IPX
  3712.     ES:SI -> ECB in IPX's code segment (will be listening)
  3713.     BX corrupted
  3714. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3715. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Eh
  3716. --------N-7A----BX001E-----------------------
  3717. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB
  3718.     BX = 001Eh
  3719. Return: ES:SI -> ECB
  3720.     BX corrupted
  3721. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3722. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Dh
  3723. --------N-7A----BX001F-----------------------
  3724. INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX FLAGS
  3725.     BX = 001Fh
  3726.     DX = 0000h
  3727. Return: AX = ???
  3728.     BX:CX -> ??? entry point (see #2415)
  3729.     DX = feature flags
  3730.         bit 0: IPXODI rather than dedicated IPX
  3731.         bit 1: checksumming functions 0020h-0022h supported
  3732.     ES:SI -> array of words containing used socket number (undocumented);
  3733.         0000h ends array
  3734.     all other registers except DS and FLAGS may be destroyed
  3735. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  3736.       bundled with Novell DOS 7
  3737. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  3738.  
  3739. (Table 2415)
  3740. Call IPXODI entry point with:
  3741.     ES:SI -> ECB??? (offset 24h is far pointer to ??? data)
  3742. --------N-7A----BX0020-----------------------
  3743. INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
  3744.     BX = 0020h
  3745.     ES:SI -> ECB (see #2395 at INT 7A/BX=0003h)
  3746. Return: DS,FLAGS preserved
  3747.     BX,BP corrupted (documented as potentially destroying all other regs)
  3748. Desc:    generate a checksum for the packet data and store it in the IPX
  3749.       checksum field before transmitting the packet
  3750. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  3751. --------N-7A----BX0021-----------------------
  3752. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
  3753.     BX = 0021h
  3754.     ES:SI -> ECB data (see #2395 at INT 7A/BX=0003h)
  3755. Return: ES,DS,SI preserved
  3756.     BX,BP corrupted, all other registers potentially destroyed
  3757. Notes:    the checksum and TransportControl fields of the IPX packet are updated
  3758.     this function enables interrupts and is fully reentrant
  3759. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  3760. --------N-7A----BX0022-----------------------
  3761. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
  3762.     BX = 0022h
  3763.     ES:SI -> ECB data (see #2395 at INT 7A/BX=0003h)
  3764. Return: AX = status (0000h checksum matches)
  3765.     DS,ES,SI preserved
  3766.     BX,BP corrupted, all other registers potentially destroyed
  3767. Note:    this function enables interrupts and is fully reentrant
  3768. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  3769. --------N-7A----BX0023-----------------------
  3770. INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  3771.     BX = 0023h
  3772.     DX = socket number (0000h for dynamic allocation)
  3773.     ES:SI -> Look Ahead handler (see #2416)
  3774.     BP = desired lookahead size (0000h-0080h)
  3775. Return: AL = status
  3776.         00h successful
  3777.         DX = assigned socket number (big-endian)
  3778.         FEh maximum number of sockets already open
  3779.         FFh specific socket already opened by another application
  3780.     DS,FLAGS preserved
  3781.     all other registers may be destroyed
  3782. Notes:    the socket will always be long-lived, and must thus be explicitly
  3783.       closed with INT 7A/BX=0001h before the Look Ahead handler code is
  3784.       removed from memory (i.e. the program terminates)
  3785.     this function is only supported if INT 2F/AX=7A00h returns ES:BX
  3786.       pointing at an IPX version greater than 3.30
  3787.     the desired lookahead size is the smallest-size packet (including IPX
  3788.       header) that should be passed to the lookahead handler when it
  3789.       arrives
  3790. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  3791.  
  3792. (Table 2416)
  3793. Call IPX Look-Ahead handler with:
  3794.     AX = packet's destination socket
  3795.     DS:SI -> look-ahead structure (see #1694 at INT 2F/AX=C000h"LSL")
  3796.     DF clear
  3797.     interrupt disabled (must remain disabled)
  3798. Return: AX = packet use
  3799.         0000h application want packet
  3800.         ES:SI -> ODI ECB (see #1695 at INT 2F/AX=C000h"LSL")
  3801.         8001h application does not want packet
  3802.     ZF set if AX=0000h
  3803.     DS,DI,BP,SS,SP preserved
  3804.     interrupts disabled
  3805. --------N-7A----BX0024-----------------------
  3806. INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
  3807.     BX = 0024h
  3808.     ES:SI -> buffer containing internetwork address (see #2409)
  3809. Return: BX,CX,SI,DI,ES destroyed
  3810. Note:    this function differs from INT 7A/BX=000Ch in that it unconditionally
  3811.       sets the address
  3812. SeeAlso: INT 7A/BX=000Ch
  3813. --------A-7A0001-----------------------------
  3814. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  3815.     AX = 0001h
  3816.     BX = configuration
  3817.     CX = interface level (0001h)
  3818. Return: AX = status
  3819.         0000h initialization failed
  3820.         0001h pre-v4.0 driver initialized successfully
  3821.         0003h post-v3.1 driver initialized successfully (driver truncates
  3822.           excessivly long packets)
  3823.     BX = width of graphics area in pixels, or 0000h if using packet
  3824.           communication
  3825.     DX:CX -> packet-mode entry point (see #2417)
  3826. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  3827. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  3828.  
  3829. (Table 2417)
  3830. Call packet-mode entry point with:
  3831. STACK:    DWORD    pointer to request packet (see #2418)
  3832.     WORD    length of packet
  3833.  
  3834. Format of request packet:
  3835. Offset    Size    Description    (Table 2418)
  3836.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  3837. --------A-7A0200BX0000-----------------------
  3838. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  3839.     AX = 0200h
  3840.     BX = 0000h
  3841.     CX = interface level (0001h)
  3842. Return: BX = 0000h (driver uses packet communication)
  3843.     DX:CX -> packet-mode entry point (see #2417)
  3844. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  3845. --------I-7A04-------------------------------
  3846. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  3847.     AH = 04h
  3848.     ???
  3849. Return: ???
  3850. SeeAlso: AH=06h
  3851. --------I-7A06-------------------------------
  3852. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  3853.     AH = 06h
  3854.     ???
  3855. Return: ???
  3856. SeeAlso: AH=04h
  3857. ----------7A07D0-----------------------------
  3858. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  3859.     AX = 07D0h
  3860. Return: AX = ??? (0003h)
  3861.     BX = 0000h
  3862.     DX:CX -> ADI entry point (see AX=0001h)
  3863. SeeAlso: AX=0001h
  3864. --------I-7A09--BX8020-----------------------
  3865. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  3866.     AH = 09h
  3867.     BX = 8020h (synchronous request)
  3868.     CX = 0000h
  3869.     DX = ID of session manager (SESSMGR)
  3870.     AL = service (see #2419)
  3871.     ES:DI -> control block
  3872. Return: ???
  3873.  
  3874. (Table 2419)
  3875. Values for service:
  3876.  01h    get session ID
  3877.  02h    get session info
  3878.  04h    dettach from session
  3879.  05h    attach to session
  3880.  06h    get list of windows available
  3881.  07h    get environment of window
  3882.  08h    get 'PIF' (program information file) info
  3883.  0Ah    get base window ID
  3884.  0Bh    get cursor info
  3885. --------I-7A09--BX8020-----------------------
  3886. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  3887.     AH = 09h
  3888.     BX = 8020h (synchronous request)
  3889.     CX = 0000h
  3890.     DX = ID of keyboard manager
  3891.     AL = service number (see #2420)
  3892.     ES:DI -> control block
  3893. Return: ???
  3894.  
  3895. (Table 2420)
  3896. Values for 3270 Workstation Program keyboard service:
  3897.  01h    connect to keyboard
  3898.  02h    disconnect from keyboard
  3899.  03h    read from keyboard
  3900.  04h    send keystroke to session
  3901.  05h    disable input
  3902.  06h    enable input
  3903.  07h    update status code
  3904. --------I-7A09--BX8020-----------------------
  3905. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  3906.     AH = 09h
  3907.     BX = 8020h (synchronous request)
  3908.     CX = 00FFh
  3909.     DX = ID of window service controller (WSCTRL)
  3910.     AL = service number (see #2421)
  3911.     ES:DI -> control block
  3912. Return: ???
  3913.  
  3914. (Table 2421)
  3915. Values for 3270 Workstation Program window service:
  3916.  01h    connect to WS control
  3917.  02h    disconnect from WS control
  3918.  03h    add a window
  3919.  04h    change window's position on screen
  3920.  05h    change window's size
  3921.  06h    change window's color
  3922.  07h    change window's position in the presentation space
  3923.  08h    hide/unhide toggle
  3924.  09h    enlarge/reduce toggle
  3925.  0Ah    change screen background color
  3926.  0Bh    get window's position on screen
  3927.  0Ch    get window's size
  3928.  0Dh    get window's color
  3929.  0Eh    get window's position in the presentation space
  3930.  0Fh    determine whether hidden
  3931.  10h    determine whether enlarged
  3932.  11h    get background color
  3933.  12h    get window names
  3934.  13h    delete all windows from profile
  3935.  14h    pick active window
  3936.  15h    redraw screen
  3937.  16h    redraw window
  3938.  17h    delete a window from profile
  3939.  18h    get active window
  3940.  19h    get active screen
  3941.  1Ah    get window data
  3942.  1Bh    change window data
  3943.  1Ch    select active screen
  3944. --------I-7A09--BX8020-----------------------
  3945. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  3946.     AH = 09h
  3947.     BX = 8020h
  3948.     CX = 00FFh
  3949.     DX = ID of PCPSM
  3950.     AL = service
  3951.         01h define presentation space
  3952.         02h delete presentation space
  3953.         03h display presentation space
  3954.         04h position cursor in presentation space
  3955.         05h change default presentation space
  3956.     ES:DI -> control block
  3957. Return: ???
  3958. --------I-7A09--BX8020-----------------------
  3959. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  3960.     AH = 09h
  3961.     BX = 8020h
  3962.     CX = 00FFh
  3963.     DX = ID of 3270EML
  3964.     AL = service
  3965.         01h connect
  3966.         02h disconnect
  3967.     ES:DI -> control block
  3968. Return: ???
  3969. --------I-7A09--BX8020-----------------------
  3970. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  3971.     AH = 09h
  3972.     BX = 8020h
  3973.     CX = 00FFh
  3974.     DX = ID of OIAM
  3975.     AL = service
  3976.         01h read Operator Information Area
  3977.         02h read OIA subset
  3978.     ES:DI -> control block
  3979. Return: ???
  3980. Note: the OIA is the 25th line on the Host session
  3981. --------I-7A09--BX8020-----------------------
  3982. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  3983.     AH = 09h
  3984.     BX = 8020h
  3985.     CX = 00FFh
  3986.     DX = ID of XLATE
  3987.     AL = service
  3988.         01h translate from host characters to ASCII and vice versa
  3989.         (determined by control block byte 11)
  3990.     ES:DI -> control block
  3991. Return: ???
  3992. --------I-7A09--BX8020-----------------------
  3993. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  3994.     AH = 09h
  3995.     BX = 8020h
  3996.     CX = 00FFh
  3997.     DX = ID of copy service
  3998.     AL = service
  3999.         01h copy string from one presentation space to another
  4000.         02h copy block from one presentation space to another
  4001.         03h connect to PC session for copy
  4002.         04h disconnect PC session from copy
  4003.     ES:DI -> control block
  4004. Return: ???
  4005. --------I-7A09--BX8020-----------------------
  4006. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  4007.     AH = 09h
  4008.     BX = 8020h
  4009.     CX = 00FFh
  4010.     ES:DI -> control block
  4011.     DX = ID of INDJQRY
  4012.         get environment size
  4013.        = ID of INDJASY
  4014.         request DOS functions from workstation
  4015.        = ID of MEMORY
  4016.         AL = function
  4017.             01h allocate memory
  4018.             02h deallocate memory
  4019.             03h modify allocated size
  4020. Return: ???
  4021. --------I-7A09-------------------------------
  4022. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  4023.     AH = 09h
  4024.     BX = request type (4000h async, 8028h synchronous)
  4025.     CX = 0000h
  4026.     DX = ID of MFIC
  4027.     AL = service (see #2422)
  4028.     ES:DI -> control block
  4029.  
  4030. (Table 2422)
  4031. Values for 3270 Workstation Program host service:
  4032.  01h    connect to host
  4033.  02h    disconnect from host
  4034.  03h    read DFT structured data from host
  4035.  04h    write DFT structured data to host
  4036.  05h    create a host buffer
  4037. --------I-7A13-------------------------------
  4038. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  4039.     AH = 13h
  4040.     ???
  4041. Return: ???
  4042. ----------7A7A-------------------------------
  4043. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  4044.     AH = 7Ah
  4045.     ???
  4046. Return: AX = status
  4047.         0000h success
  4048.         000Eh undefined function code
  4049. Range:    unknown, selected by device driver commandline arguments
  4050. --------I-7A81-------------------------------
  4051. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  4052.     AH = 81h
  4053.     ES:DI -> 8-char blank-padded gate name (see #2423)
  4054. Return: DX = gate ID
  4055.  
  4056. (Table 2423)
  4057. Values for 3270 Workstation Program gate name:
  4058.  "SESSMGR "
  4059.  "KEYBOARD"
  4060.  "WSCTRL  "
  4061.  "MFIC      "
  4062.  "PCPSM      "
  4063.  "3270EML "
  4064.  "COPY      "
  4065.  "XLATE      "
  4066.  "OIAM      "
  4067.  "MEMORY  "
  4068.  "INDJQRY "
  4069.  "INDJASY "
  4070. --------I-7A83-------------------------------
  4071. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  4072.     AH = 83h
  4073.     ???
  4074. Return: ???
  4075. --------I-7AFDCB-----------------------------
  4076. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  4077.     AX = FDCBh
  4078. Return: DX:AX -> PCS/3270 signature block if loaded (see #2424)
  4079.  
  4080. Format of Personal Communications/3270 signature block:
  4081. Offset    Size    Description    (Table 2424)
  4082.  04h    WORD    PCS/3270 signature (5741h)
  4083.  06h    WORD    version (0501h = PCS/3270 v1.0)
  4084. --------I-7AFE01-----------------------------
  4085. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4086.     AX = FE01h
  4087.     ???
  4088. Return: ???
  4089. SeeAlso: AX=FE02h
  4090. --------I-7AFE02-----------------------------
  4091. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4092.     AX = FE02h
  4093.     ???
  4094. Return: ???
  4095. SeeAlso: AX=FE01h
  4096. --------I-7AFF01-----------------------------
  4097. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4098.     AX = FF01h
  4099.     ES:DI -> API function handler routine
  4100. Return: CX = 1200h
  4101. SeeAlso: AX=FF02h,AX=FF03h
  4102. --------I-7AFF02-----------------------------
  4103. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  4104.     AX = FF02h
  4105. Return: CX = 1200h
  4106. SeeAlso: AX=FF01h
  4107. --------I-7AFF03-----------------------------
  4108. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4109.     AX = FF03h
  4110.     ES:DI -> send/receive function handler routine
  4111. Return: CX = 1200h
  4112. SeeAlso: AX=FF01h
  4113. --------I-7AFF04-----------------------------
  4114. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  4115.     AX = FF04h
  4116.     ES:DI -> ???
  4117. Return: CX = 1200h
  4118. --------f-7B---------------------------------
  4119. INT 7B - Btrieve API (single user)
  4120.     DS:DX -> 38-byte parameter record (see #2425)
  4121. Return: return code field set
  4122. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  4123.       check
  4124. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  4125.  
  4126. Format of Btrieve parameter record:
  4127. Offset    Size    Description    (Table 2425)
  4128.  00h    DWORD    pointer to data buffer
  4129.  04h    WORD    data buffer length
  4130.  06h    DWORD    pointer to 90-byte record containing positioning info
  4131.         (should be same for all calls for same file)
  4132.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  4133.         (should be same for all calls for same file)
  4134.  0Eh    WORD    function code (see #2426)
  4135.  10h    DWORD    pointer to file name/key buffer
  4136.  14h    BYTE    key length
  4137.  15h    BYTE    key number
  4138.  16h    DWORD    pointer to status code (see #2427)
  4139.  1Ah    WORD    interface code (version specific)
  4140.         6176h version 5.10
  4141.  
  4142. (Table 2426)
  4143. Values for function code:
  4144.  00h    open
  4145.  01h    close
  4146.  02h    insert
  4147.  03h    update
  4148.  04h    delete
  4149.  05h    get_equal
  4150.  06h    get_next
  4151.  07h    get_prev
  4152.  08h    get_greater
  4153.  09h    get_gr_eql
  4154.  0Ah    get_less
  4155.  0Bh    get_less_eq
  4156.  0Ch    get_first
  4157.  0Dh    get_last
  4158.  0Eh    create
  4159.  0Fh    stat
  4160.  10h    extend
  4161.  11h    set_dir: set directory information
  4162.  12h    get_dir: get directory information
  4163.  13h    begin_trans
  4164.  14h    end_trans
  4165.  15h    abort_trans
  4166.  16h    get_pos: get record position number
  4167.  17h    get_direct: get data by sending record position
  4168.  18h    step_next
  4169.  19h    stop
  4170.  1Ah    version
  4171.  1Bh    unlock
  4172.  1Ch    reset
  4173.  1Dh    set owner
  4174.  1Eh    clear owner
  4175.  1Fh    create supplemental index
  4176.  20h    drop supplemental index
  4177.  21h    step first
  4178.  22h    step last
  4179.  23h    step previous
  4180.  24h    get next extended: get multiple records using a filter
  4181.  25h    get previous extended: get multiple records using a filter
  4182.  26h    step next extended: get multiple records using a filter
  4183.  27h    step previous extended: get multiple records using a filter
  4184.  28h    insert extended: insert one or more records
  4185.  31h    ???
  4186. Notes:    add 50 (32h) to any "get" operation to just return the key data
  4187.     add 100 (64h) for a single-record wait lock (automatically released
  4188.       on next get)
  4189.     add 200 (C8h) for a single-record nowait lock (nowait lock returns
  4190.       error 54h or 55h if record already locked)
  4191.     add 300 (12Ch) for a multiple-record wait lock (not released until
  4192.       unlock called)
  4193.     add 400 (190h) for a multiple-record nowait lock (nowait lock returns
  4194.       error 54h or 55h if record already locked)
  4195.  
  4196. (Table 2427)
  4197. Values for Btrieve status code:
  4198.  00h    successful
  4199.  01h    invalid operation
  4200.  02h    I/O error
  4201.  03h    file not open
  4202.  04h    key value not found
  4203.  05h    duplicate key value
  4204.  06h    invalid key number
  4205.  07h    different key number
  4206.  08h    invalid positioning
  4207.  09h    end of file
  4208.  0Ah    modifiable key value error
  4209.  0Bh    invalid file name
  4210.  0Ch    file not found
  4211.  0Dh    extended file error
  4212.  0Eh    pre-image open error
  4213.  0Fh    pre-image I/O error
  4214.  10h    expansion error
  4215.  11h    close error
  4216.  12h    disk full
  4217.  13h    unrecoverable error
  4218.  14h    record manager inactive
  4219.  15h    key buffer too short
  4220.  16h    data buffer length overrun
  4221.  17h    position block length
  4222.  18h    page size error
  4223.  19h    create I/O error
  4224.  1Ah    number of keys
  4225.  1Bh    invalid key position
  4226.  1Ch    invalid record length
  4227.  1Dh    invalid key length
  4228.  1Eh    not a Btrieve file
  4229.  1Fh    file already extended
  4230.  20h    extended I/O error
  4231.  22h    invalid extension name
  4232.  23h    directory error
  4233.  24h    transaction error
  4234.  25h    transaction is active
  4235.  26h    transaction control file I/O error
  4236.  27h    end/abort transaction error
  4237.  28h    transaction max files
  4238.  29h    operation not allowed
  4239.  2Ah    incomplete accelerated access
  4240.  2Bh    invalid record address
  4241.  2Ch    null key path
  4242.  2Dh    inconsistent key flags
  4243.  2Eh    access to file denied
  4244.  2Fh    maximum open files
  4245.  30h    invalid alternate sequence definition
  4246.  31h    key type error
  4247.  32h    owner already set
  4248.  33h    invalid owner
  4249.  34h    error writing cache
  4250.  35h    invalid interface
  4251.  36h    variable page error
  4252.  37h    autoincrement error
  4253.  38h    incomplete index
  4254.  39h    expanded memory error
  4255.  3Ah    compression buffer too short
  4256.  3Bh    file already exists
  4257.  3Ch    reject count reached
  4258.  3Dh    work space too small
  4259.  3Eh    incorrect descriptor
  4260.  3Fh    invalid extended insert
  4261.  40h    filter limit reached
  4262.  41h    incorrect field offset
  4263.  4Ah    automatic transaction abort
  4264.  4Dh    Btrieve engine busy or resource locked by another user
  4265.  4Eh    deadlock detected
  4266.  50h    conflict
  4267.  51h    lock error
  4268.  52h    lost position
  4269.  53h    read outside transaction
  4270.  54h    record in use
  4271.  55h    file in use
  4272.  56h    file table full
  4273.  57h    handle table full
  4274.  58h    incompatible open mode
  4275.  5Ah    redirected device table full
  4276.  5Bh    server error
  4277.  5Ch    transaction table full
  4278.  5Dh    incompatible lock type
  4279.  5Eh    permission error
  4280.  5Fh    session no longer valid
  4281.  60h    communications environment error
  4282.  61h    data message too small
  4283.  62h    internal transaction error
  4284. --------I-7B---------------------------------
  4285. INT 7B - Eicon Access API (3270/5250 gateways)
  4286. SeeAlso: INT 5C"NetBIOS"
  4287. --------E-7B---------------------------------
  4288. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  4289. Notes:    this vector is overwritten when GO32 starts but is not restored by
  4290.       early versions of the extender
  4291.     the newest versions of GO32 dynamically allocate the vectors used
  4292.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  4293. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  4294. --------A-7B---------------------------------
  4295. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  4296.     AX = data length (0000h-7FFFh)
  4297.     CX:BX -> data to be plotted
  4298.     DX = vertical position of line on page
  4299. Return: nothing
  4300. Notes:    This interrupt is called by AutoCAD to perform its output
  4301.     A data length of 0000h indicates that a blank line is to be output
  4302. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  4303. --------e-7B---------------------------------
  4304. INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ???
  4305. Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its
  4306.       communication driver
  4307. ----------7B---------------------------------
  4308. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  4309.     DS:DX -> parameter block (see #2429)
  4310. Return: parameter block updated
  4311.  
  4312. (Table 2428)
  4313. Values for Novell XQL function number:
  4314.  00h    log in
  4315.  01h    log out
  4316.  02h    "tNewFcn"
  4317.  03h    "tFreeFcn"
  4318.  04h    "tMoveFldFcn"
  4319.  05h    "tFieldFcn"
  4320.  06h    "tDescribeFcn"
  4321.  07h    "tFetchFcn"
  4322.  08h    "tComputeFcn"
  4323.  09h    "tOrderFcn"
  4324.  0Ah    "tRestrictFcn"
  4325.  0Bh    "tJoinFcn"
  4326.  0Ch    "tInsertFcn"
  4327.  0Dh    "tUpdateFcn"
  4328.  0Eh    "tUpdallFcn"
  4329.  0Fh    "tRemoveFcn"
  4330.  10h    "tRemallFcn"
  4331.  11h    "tResetFcn"
  4332.  12h    "tTransFcn"
  4333.  13h    "tStatFcn"
  4334.  14h    "tDDCreFcn"
  4335.  15h    "tStoreFcn"
  4336.  16h    "tRecallFcn"
  4337.  17h    "tStopFcn"
  4338.  18h    "tDDFileFcn"
  4339.  19h    "tDDFieldFcn"
  4340.  1Ah    "tDDIndexFcn"
  4341.  1Bh    "tDDModFcn"
  4342.  1Ch    "tDDViewFcn"
  4343.  1Dh    "tDDDrpFcn"
  4344.  1Eh    "tDDPathFcn"
  4345.  1Fh    "tDDAttrFcn"
  4346.  20h    "tDDFcn"
  4347.  21h    "tSecurFcn"
  4348.  22h    "tUserFcn"
  4349.  23h    "tAccessFcn"
  4350.  24h    "tPswdFcn"
  4351.  25h    "tCharFcn"
  4352.  26h    "tVersionFcn"
  4353.  27h    "tCnvFcn"
  4354.  28h    "tValFcn"
  4355.  29h    "tMaskFcn"
  4356. SeeAlso: #2429
  4357.  
  4358. Format of XQL parameter block:
  4359. Offset    Size    Description    (Table 2429)
  4360.  00h  4 BYTEs    signature "XQLP"
  4361.  04h    WORD    function number (see #2428)
  4362.  06h    WORD    handle
  4363.  08h    WORD    status
  4364.  0Ah    WORD    session ID
  4365.  0Ch    var    data record (varies by function)
  4366. ---function 00h---
  4367.  0Ch    DWORD    -> user name
  4368.  10h    DWORD    -> password
  4369.  14h    DWORD    -> dictionary
  4370.  18h    DWORD    -> filepath
  4371.  1Ch    DWORD    -> machine name
  4372.  20h    WORD    process ID
  4373. ---function 01h---
  4374.  no additional fields???
  4375. ---function 02h---
  4376.  0Ch    DWORD    -> filename
  4377.  10h    DWORD    -> owner name
  4378.  14h    WORD    open mode
  4379. ---function 03h---
  4380.  no additional fields???
  4381. ---function 04h---
  4382.  0Ch    WORD    "frompos"
  4383.  0Eh    WORD    "topos"
  4384. ---function 05h---
  4385.  0Ch    WORD    subfunction
  4386.  0Eh    WORD    position
  4387.  10h    WORD    count
  4388.  12h    DWORD    -> field list
  4389. ---function 06h---
  4390.  0Ch    WORD    subfunction
  4391.  0Eh    WORD    length of description
  4392.  10h    WORD    position
  4393.  12h    WORD    count
  4394.  14h    DWORD    pointer to description list
  4395. ---function 07h---
  4396.  0Ch    WORD    data length
  4397.  0Eh    WORD    "op"
  4398.  10h    DWORD    "select"
  4399.  14h    DWORD    "reject"
  4400.  18h    DWORD    pointer to data buffer
  4401. ---function 08h---
  4402.  0Ch    DWORD    -> field name
  4403.  10h    WORD    field type
  4404.  12h    WORD    field size
  4405.  14h    WORD    "flddec"
  4406.  16h    WORD    "explen"
  4407.  18h    DWORD    pointer to "expbuf"
  4408. ---function 09h---
  4409.  0Ch    WORD    count
  4410.  0Eh    DWORD    -> field list
  4411. ---function 0Ah---
  4412.  0Ch    WORD    "newexp"
  4413.  0Eh    WORD    "explen"
  4414.  10h    DWORD    -> "expbuf"
  4415. ---function 0Bh---
  4416.  0Ch    DWORD    -> filename
  4417.  10h    DWORD    -> owner name
  4418.  14h    WORD    type of join
  4419.  16h    WORD    "pCount"
  4420.  18h    DWORD    -> "pNames"
  4421.  1Ch    WORD    "sCount"
  4422.  1Eh    DWORD    -> "sNames"
  4423. ---functions 0Ch, 0Dh, 0Fh---
  4424.  0Ch    WORD    file count
  4425.  0Eh    DWORD    -> file list
  4426.  12h    DWORD    count
  4427.  16h    DWORD    -> buffer
  4428. ---function 0Eh---
  4429.  0Ch    WORD    file count
  4430.  0Eh    DWORD    -> file list
  4431.  12h    WORD    "op"
  4432.  14h    DWORD    "select"
  4433.  18h    DWORD    "reject"
  4434.  1Ch    WORD    count
  4435.  1Eh    DWORD    -> "res"
  4436.  22h    DWORD    -> "comp"
  4437. ---function 10h---
  4438.  0Ch    WORD    file count
  4439.  0Eh    DWORD    -> file list
  4440.  12h    WORD    "op"
  4441.  14h    DWORD    "select"
  4442.  18h    DWORD    "reject"
  4443. ---function 11h---
  4444.  0Ch    DWORD    machine name
  4445. ---function 12h---
  4446.  0Ch    WORD    option
  4447. ---function 13h---
  4448.  0Ch    WORD    subfunction
  4449.  0Eh    WORD    length of buffer
  4450.  10h    DWORD    -> buffer
  4451. ---function 14h---
  4452.  0Ch    WORD    subfunction
  4453.  0Eh    DWORD    -> filename
  4454.  12h    WORD    "create"
  4455.  14h    DWORD    -> pathname
  4456.  18h    DWORD    -> owner name
  4457.  1Ch    WORD    owner access restrictions
  4458.  1Eh    WORD    number of fields
  4459.  20h    DWORD    -> field list
  4460.  24h    WORD    number of keys
  4461.  28h    DWORD    -> key list
  4462.  2Ch    WORD    "buflen"
  4463.  2Eh    DWORD    -> create parameters
  4464. ---function 15h---
  4465.  0Ch    DWORD    -> "StoreName"
  4466.  10h    WORD    length of buffer
  4467.  12h    DWORD    -> buffer
  4468. ---function 16h---
  4469.  0Ch    DWORD    -> "RecallName"
  4470.  10h    WORD    owner number
  4471.  12h    DWORD    -> owner list
  4472.  16h    WORD    open mode
  4473.  18h    WORD    length of buffer
  4474.  1Ah    DWORD    -> buffer
  4475. ---function 17h---
  4476.  no additional fields???
  4477. ---function 18h---
  4478.  0Ch    WORD    "rtype"
  4479.  0Eh    WORD    count
  4480.  10h    DWORD    -> "filebuf"
  4481.  14h    WORD    length of following buffer
  4482.  16h    DWORD    -> output buffer
  4483. ---functions 19h, 1Ah---
  4484.  0Ch    WORD    "rtype"
  4485.  0Eh    WORD    count
  4486.  10h    DWORD    -> field buffer
  4487.  14h    WORD    length of following buffer
  4488.  16h    DWORD    -> output buffer
  4489. ---function 1Bh---
  4490.  0Ch    WORD    subfunction
  4491.  0Eh    DWORD    -> filename
  4492.  12h    WORD    "create"
  4493.  14h    DWORD    -> pathname
  4494.  18h    DWORD    -> owner name
  4495.  1Ch    WORD    owner access restrictions
  4496.  1Eh    WORD    field count
  4497.  20h    DWORD    -> field list
  4498.  24h    WORD    number of keys
  4499.  26h    DWORD    -> list of keys
  4500. ---function 1Ch---
  4501.  0Ch    WORD    count
  4502.  0Eh    DWORD    -> view name
  4503.  12h    WORD    length of following buffer
  4504.  14h    DWORD    -> output buffer
  4505. ---function 1Dh---
  4506.  0Ch    DWORD    -> filename
  4507.  10h    WORD    file type
  4508.  12h    WORD    "deletepath"
  4509. ---function 1Eh---
  4510.  0Ch    WORD    "dirtype"
  4511.  0Eh    DWORD    -> pathname
  4512. ---function 1Fh---
  4513.  0Ch    WORD    function
  4514.  0Eh    DWORD    -> field name
  4515.  12h    WORD    attribute
  4516.  14h    WORD    size of buffer
  4517.  16h    DWORD    -> buffer for attributes
  4518. ---function 20h---
  4519.  0Ch    DWORD    -> directory path
  4520.  10h    WORD    function
  4521. ---function 21h---
  4522.  0Ch    DWORD    -> master password
  4523.  10h    WORD    "securityflag"
  4524. ---function 22h---
  4525.  0Ch    DWORD    -> master password
  4526.  10h    WORD    function (add/modify/remove)
  4527.  12h    DWORD    -> user name
  4528.  16h    DWORD    -> password
  4529.  1Ah    WORD    global rights
  4530.  1Ch    WORD    count
  4531.  1Eh    WORD    length of following buffer
  4532.  20h    DWORD    -> "userbuf"
  4533. ---function 23h---
  4534.  0Ch    DWORD    -> master password
  4535.  10h    DWORD    -> user name
  4536.  14h    WORD    function (allow/deny/getrights)
  4537.  16h    WORD    rights
  4538.  18h    DWORD    -> filename
  4539.  1Ch    WORD    number of field names in following buffer
  4540.  1Eh    DWORD    -> field names
  4541.  22h    WORD    maximum buffer length
  4542.  24h    DWORD    -> output buffer
  4543. ---function 24h---
  4544.  0Ch    DWORD    -> user name
  4545.  10h    DWORD    -> password
  4546. ---function 25h---
  4547.  0Ch    WORD    "charFcn"
  4548.  0Eh    WORD    "charType"
  4549.  10h    WORD    "charValue"
  4550. ---function 26h---
  4551.  0Ch    DWORD    -> buffer
  4552. ---function 27h---
  4553.  0Ch    WORD    option
  4554.  0Eh    WORD    type
  4555.  10h    WORD    size
  4556.  12h    WORD    "dec"
  4557.  14h    WORD    "dsize"
  4558.  16h    DWORD    -> value
  4559.  1Ah    DWORD    -> "retval"
  4560.  1Eh    DWORD    -> mask
  4561.  22h    WORD    "justify"
  4562. ---function 28h---
  4563.  0Ch    DWORD    -> field name
  4564.  10h    WORD    length of buffer
  4565.  12h    DWORD    -> buffer for data
  4566. ---function 29h---
  4567.  0Ch    WORD    option
  4568.  0Eh    WORD    type
  4569.  10h    WORD    size
  4570.  12h    WORD    "dec"
  4571.  14h    WORD    length of mask
  4572.  16h    DWORD    -> mask
  4573. --------A-7B8001-----------------------------
  4574. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  4575.     AX = 8001h
  4576.     BX = file level
  4577.         0000h binary file
  4578.         0001h CAD/camera image file
  4579.         0002h installed ADI driver
  4580.     CX = horizontal size in pixels
  4581.     DX = vertical size in pixels
  4582. Return: AX = status (0000h initialization failed, 0001h init successful)
  4583.     BX = allowed output format
  4584.         0000h monochrome
  4585.         0001h color (4 bits per pixel)
  4586. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  4587. --------A-7B8002-----------------------------
  4588. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  4589.     AX = 8002h
  4590. SeeAlso: AX=8001h,AX=8003h
  4591. --------A-7B8003-----------------------------
  4592. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  4593.     AX = 8003h
  4594. SeeAlso: AX=8001h,AX=8002h
  4595. --------r-7C---------------------------------
  4596. INT 7C U - IBM REXX88PC command language
  4597.     ???
  4598. --------E-7C---------------------------------
  4599. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  4600. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  4601.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  4602. Notes:    this vector is overwritten when GO32 starts but is not restored by
  4603.       early versions of the extender
  4604.     the newest versions of GO32 dynamically allocate the vectors used
  4605.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  4606. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  4607. --------P-7C---------------------------------
  4608. INT 7C - PRINDIR v8.02+ - API
  4609.     AH = function
  4610.        00h set output to Invisible mode
  4611.        01h set output to LPT1
  4612.        02h set output to LPT2
  4613.        03h set output to LPT3
  4614.        04h set output to COM1
  4615.        05h set output to COM2
  4616.        06h set output to COM3
  4617.        07h set output to COM4
  4618.        08h set output to screen
  4619.        09h set output to file
  4620.        0Ah change file path
  4621.            ES:DI -> new path
  4622.            CX = length of path (max 41, but not range-checked)
  4623.        0Bh change file name
  4624.            ES:DI -> new filename
  4625.            CX = length of new name (max 41, but not range-checked)
  4626.        0Ch set redirected device
  4627.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  4628.        0Dh force buffer dump
  4629.        0Eh set display color
  4630.            AL = new color attribute (see #0013 at INT 10/AH=08h)
  4631.        0Fh set popup hotkey
  4632.            AL = hotkey scancode
  4633.        10h toggle byte display
  4634.            AL = new state (00h off, 01h on)
  4635.        11h change buffer flush delay
  4636.            AL = timer ticks before flush
  4637. Return: AX = status
  4638.         0000h successful
  4639.         0001h invalid function or nothing in buffer to be dumped
  4640.         (documented as "nonzero = error")
  4641. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  4642.       Creations
  4643. Notes:    the installation check consists of testing for the ASCIZ signature
  4644.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  4645.       the start of the interrupt handler
  4646.     prior versions of PRINDIR used INT 7A instead of INT 7C
  4647. SeeAlso: INT 7A"PRINDIR"
  4648. Index:    hotkeys;PRINDIR
  4649. --------A-7C---------------------------------
  4650. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  4651. Note:    this is the default interrupt vector for rendering hardcopy drivers
  4652.       instead of INT 7A used by AutoCAD drivers
  4653. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  4654. --------N-7C---------------------------------
  4655. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  4656. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4657.       which provides an API on top of it Data Link Interface, allowing the
  4658.       use of any of several network transport layers; this product is
  4659.       called SK-PASSPORT in the USA.
  4660. Notes:    The installation check consists of testing for the ASCII signature
  4661.       string "UPPS_DLI" immediately preceding the interrupt handler.
  4662.     To find the service interrupt being used by the driver, an application
  4663.       should scan through the interrupt table until it finds an interrupt
  4664.       vector with the "UPPS_DLI" string.
  4665.     There may be more than one DLI loaded, each having its own service
  4666.       interrupt.
  4667. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  4668. Index:    installation check;SK-UPPS
  4669. --------N-7C0000-----------------------------
  4670. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  4671.     AX = 0000h
  4672. Return: AH = major DLI version
  4673.     AL = minor DLI version
  4674.     DX = OEM signature (see #2430)
  4675.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  4676. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  4677.  
  4678. (Table 2430)
  4679. Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
  4680.  0001h        experimental
  4681.  3343h    ('3C')    3COM
  4682.  4942h    ('IB')    IBM
  4683.  4943h    ('IC')    Intellicom
  4684.  494Eh    ('IN')    Intel
  4685.  4B4Fh    ('KO')    Kodiak
  4686.  4D41h    ('MA')    Madge
  4687.  4E45h    ('NE')    Novell
  4688.  4F43h    ('OC')    Olicom
  4689.  5349h    ('SI')    Siemens
  4690.  534Bh    ('SK')    Schneider & Koch (SysKonnect)
  4691.  5744h    ('WD')    Western Digital
  4692. --------N-7C0001-----------------------------
  4693. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  4694.     AX = 0001h
  4695. Return: AX = completion code (see #2431)
  4696. Note:    the DLI will refuse to unload if there are any protocols
  4697.       (see AX=0007h) or clients (see AX=0010h) active.
  4698. Index:    uninstall;SK-UPPS Data Link Interface
  4699.  
  4700. (Table 2431)
  4701. Values for SK-UPPS completion code:
  4702.  0000h    SUCCESS
  4703.  0005h    INVALID_MULTICAST
  4704.  0006h    BUFFER_TOO_SMALL
  4705.  0007h    NO_BUFFERS_LEFT
  4706.  0008h    NO_RESOURCES_LEFT
  4707.  000Bh    ILLEGAL_PROTOCOL_ID
  4708.  000Ch    PROTOCOL_IN_USE
  4709.  000Dh    NO_MULTICAST_ADDRESS
  4710.  000Fh    PROTOCOLS_ACTIVE
  4711.  0010h    CLIENTS_ACTIVE
  4712.  001Bh    INVALID_MODE
  4713.  001Ch    MODE_NOT_SUPPORTED
  4714.  FFFFh    UNKNOWN_SERVICE
  4715. --------N-7C0002-----------------------------
  4716. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  4717.     AX = 0002h
  4718.     ES:DI -> Status Information Block (SIB) (see #2443)
  4719. Return: AX = completion code (see #2431)
  4720. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  4721. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  4722. --------N-7C0003-----------------------------
  4723. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  4724.     AX = 0003h
  4725.     ES:DI -> new node address (6 bytes)
  4726. Return: AX = completion code (see #2431)
  4727. Note:    the DLI will refuse to change the address if any protocols
  4728.       (see AX=0007h) are active
  4729. SeeAlso: AX=0001h,AX=000Eh
  4730. --------N-7C0004-----------------------------
  4731. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  4732.     AX = 0004h
  4733.     DX = protocol ID (see AX=0007h,#2434)
  4734. Return: AX = completion code (see also #2431)
  4735.         0000h successful
  4736.         ES:BX -> Memory Buffer (Mbuf) (see #2432)
  4737. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  4738.       protocol and later call the protocol's Event Upcall with
  4739.       EV_BUFFER_AVAILABLE (see #2438,#2439) as soon as an Mbuf becomes
  4740.       available.  There will only be one "buffer available" Upcall, even
  4741.       if this function has been called several times before.
  4742. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  4743.  
  4744. Format of SK-UPPS Memory Buffer (Mbuf):
  4745. Offset    Size    Description    (Table 2432)
  4746.  00h    DWORD    -> NEXT Mbuf (linked list)
  4747.  04h    WORD    OFFSET of actual data within DATA area
  4748.  06h  2 BYTEs    reserved (currently unused)
  4749.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  4750.  0Ah  2 BYTEs    reserved (currently unused)
  4751.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  4752.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  4753.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  4754.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  4755. --------N-7C0005-----------------------------
  4756. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  4757.     AX = 0005h
  4758.     ES:BX -> Mbuf (see #2432)
  4759. Return: nothing
  4760. SeeAlso: AX=0004h
  4761. --------N-7C0006-----------------------------
  4762. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  4763.     AX = 0006h
  4764.     ES:BX -> Mbuf (see #2432)
  4765. Return: nothing
  4766. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  4767.       at OFFSET. A complete and valid frame must be stored there. The DLI
  4768.       will only copy the current node address (see AX=0003h) to the
  4769.       source node field of the frame's MAC header.
  4770.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  4771.       of the value found in the LENGTH field.
  4772.     This function returns immediately; the DLI will call the protocol's
  4773.       Transmit Upcall (see #2433) when the frame has been sent.
  4774.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  4775.       Transmit Upcall.
  4776. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  4777.  
  4778. (Table 2433)
  4779. Values SK-UPPS Transmit Upcall is called with:
  4780.     ES:BX -> Mbuf (NEXT field destroyed)
  4781.     interrupts disabled
  4782. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  4783.       header have been bit-swapped to physical address format.
  4784. --------N-7C0007-----------------------------
  4785. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  4786.     AX = 0007h
  4787.     ES:BX -> Protocol Control Block (see #2434)
  4788. Return: AX = completion code (see #2431)
  4789. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4790.       which provides an API on top of its Data Link Interface, allowing the
  4791.       use of any of several network transport layers
  4792. SeeAlso: AX=0008h,AX=000Bh
  4793.  
  4794. Format of SK-UPPS Protocol Control Block (PCB):
  4795. Offset    Size    Description    (Table 2434)
  4796.  00h    WORD    (big-endian) protocol type
  4797.  02h    WORD    protocol mode (see #2435)
  4798.  04h    DWORD    -> Receive Upcall routine (see #2436)
  4799.  08h    DWORD    -> Transmit Upcall routine
  4800.  0Ch    DWORD    -> Event Upcall routine (see #2438)
  4801.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  4802.  14h    WORD    protocol ID will be returned here (always non-zero)
  4803.  
  4804. Bitfields for SK-UPPS protocol mode:
  4805. Bit(s)    Description    (Table 2435)
  4806.  0    promiscuous mode; protocol receives all frames regardless of their
  4807.       destination (PROTOCOL TYPE must be FFFFh)
  4808.  1    if set, protocol's Event Upcall will be called on entry and exit of the
  4809.       DLI's Interrupt Service Routine (see event codes below)
  4810.  2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  4811.       this station (PROTOCOL TYPE must be FFFFh)
  4812.  3    DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  4813.  4-5    DLI 2.5+ frame type:
  4814.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  4815.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  4816.           (offset 0) of PROCOTOL TYPE field; LSB must be zero
  4817.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  4818.           field (high-low)
  4819.     11 reserved (currently unused)
  4820.  6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  4821.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  4822.  7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  4823.       be shared with other clients
  4824.  8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  4825.  9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  4826.  10-15    reserved (currently unused; must be zero)
  4827. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  4828.       mode is set, the protocol receives all frames that did not match
  4829.       any registered frame type (demultiplexor mode).
  4830.     Protocols using "promiscuous", "hook" or "chain" mode should always
  4831.       return from the Receive Upcall with the received Mbuf in ES:BX and
  4832.       the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  4833.       BUFFER function (see AX=000Fh).
  4834.     Some DLIs do not support all or even any of the "promiscuous",
  4835.       "receive non-LLC" and "receive all multicasts" mode bits.
  4836.  
  4837. (Table 2436)
  4838. Values SK-UPPS Receive Upcall is called with:
  4839.  ES:BX -> Mbuf
  4840.  AX = receive status (see #2437) (also stored in Mbuf's RECEIVE STATUS field)
  4841.  interrupts disabled
  4842.  
  4843. Bitfields for SK-UPPS receive status:
  4844. Bit(s)    Description    (Table 2437)
  4845.  0-2    reserved (0), currently unused
  4846.  3    frame check sequence (FCS) error
  4847.  4    overflow (frame too long)
  4848.  5    framing error
  4849.  6    reserved (0), currently unused
  4850.  7    non-LLC frame (see 8 of PCB's protocol mode field)
  4851.  8-15    reserved (0), currently unused
  4852. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  4853.       matching the specified frame type is received. A received frame is
  4854.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  4855.       is LENGTH bytes.
  4856.     The receive status passed to the Receive Upcall in register AL is
  4857.       always zero, except for protocols using "non-LLC" mode (8 of PCB's
  4858.       protocol mode field) or "promiscuous" mode together with "receive
  4859.       error frames" (0 & 3).
  4860.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  4861.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  4862.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  4863.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  4864.  
  4865. (Table 2438)
  4866. Values SK-UPPS Event Upcall is called with:
  4867.  AX = event code (see #2439)
  4868. Note:    All Event Upcalls may be ignored by the protocol.
  4869.  
  4870. (Table 2439)
  4871. Values for SK-UPPS Event Upcall event code:
  4872.  00h    EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h)
  4873.  01h    EV_ISR_START        start of Interrupt Service Routine
  4874.  02h    EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  4875.  03h    EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  4876.  04h    EV_NETWORK_STATUS   DLI 2.8+ network status -- DX=status (see #2440)
  4877.  05h    EV_IO_CONTROL        DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h)
  4878.  
  4879. Bitfields for EV_NETWORK_STATUS in register DX:
  4880. Bit(s)    Description    (Table 2440)
  4881.     Token-Ring        FDDI
  4882.  15    SIGNAL_LOSS        SIGNAL_LOSS
  4883.  14    HARD_ERROR        HARD_ERROR
  4884.  13    SOFT_ERROR        SOFT_ERROR
  4885.  12    TRANSMIT_BEACON        TRANSMIT_BEACON
  4886.  11    LOBE_WIRE_FAULT        PATH_TEST_FAILED
  4887.  10    AUTO_REMOVAL        SELF_TEST_REQUIRED
  4888.  9    reserved        reserved
  4889.  8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  4890.  7    COUNTER_OVERFLOW    reserved
  4891.  6    SINGLE_STATION        DUPLICATE_ADDRESS
  4892.  5    RING_RECOVERY        NO_RING_OP_STATUS
  4893.  4    reserved        VERSION_MISMATCH
  4894.  3    reserved        STUCK_BYPASS
  4895.  2    reserved        FDDI_EVENT
  4896.  1    reserved        RING_OP_CHANGE
  4897.  0    reserved        reserved
  4898. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  4899. --------N-7C0008-----------------------------
  4900. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  4901.     AX = 0008h
  4902.     BX = protocol ID (see #2434)
  4903. Return: AX = completion code (see #2431)
  4904. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  4905.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  4906.     all multicast addresses registered for this protocol will be disabled.
  4907.     after this function returns, the protocol's Upcall routines will no
  4908.       longer be called.
  4909. SeeAlso: AX=0007h,AX=000Bh
  4910. --------N-7C0009-----------------------------
  4911. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  4912.     AX = 0009h
  4913.     BX = protocol ID (see #2434)
  4914.     ES:DI -> multicast address (6 bytes)
  4915. Return: AX = completion code (see #2431)
  4916. Notes:    The broadcast address is always enabled.
  4917.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  4918.       (AX=0007h) to receive all multicast frames.
  4919. SeeAlso: AX=000Ah,AX=0014h
  4920. --------N-7C000A-----------------------------
  4921. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  4922.     AX = 000Ah
  4923.     BX = protocol ID (see #2434)
  4924.     ES:DI -> multicast address (6 bytes)
  4925. Return: AX = completion code (see #2431)
  4926. SeeAlso: AX=0009h,AX=0014h
  4927. --------N-7C000B-----------------------------
  4928. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  4929.     AX = 000Bh
  4930.     ES:DI -> protocol ID buffer
  4931.     CX = number of 2-byte protocol IDs that may be stored in buffer
  4932. Return: AX = completion code (see #2431)
  4933.     CX = number of active protocols (regardless of value returned in AX)
  4934.     protocol ID buffer filled with active protocol IDs
  4935. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4936.       which provides an API on top of its Data Link Interface, allowing the
  4937.       use of any of several network transport layers
  4938. Note:    If the buffer supplied is too small, CX still contains the total number
  4939.       of active protocols and the buffer has been filled until full.
  4940. SeeAlso: AX=000Ch,AX=0014h
  4941. --------N-7C000C-----------------------------
  4942. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  4943.     AX = 000Ch
  4944.     BX = protocol ID (see #2434,AX=000Bh)
  4945.     ES:DI -> Protocol Status Block (see #2441)
  4946. Return: AX = completion code (see #2431)
  4947. SeeAlso: AX=000Bh,AX=0014h
  4948.  
  4949. Format of SK-UPPS Protocol Status Block (PSB):
  4950. Offset    Size    Description    (Table 2441)
  4951.  00h    DWORD    -> ASCIZ protocol name
  4952.  04h    WORD    protocol mode (see #2435)
  4953.  06h    WORD    protocol type (see AX=0007h)
  4954.  08h    WORD    number of registered multicasts (see AX=0009h,AX=0014h)
  4955. --------N-7C000D-----------------------------
  4956. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  4957.     AX = 000Dh
  4958.     BX = flag: 0=don't clear statistics, 1=clear statistics
  4959.     ES:DI -> Statistics Data Block (see #2442)
  4960. Return: AX = completion code (see #2431)
  4961. SeeAlso: AX=0002h,AX=0015h
  4962.  
  4963. Format of SK-UPPS Statistics Data Block (SDB):
  4964. Offset    Size    Description    (Table 2442)
  4965.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  4966.  04h    DWORD    bytes received
  4967.  08h    DWORD    bytes transmitted
  4968.  0Ch    DWORD    frames received
  4969.  10h    DWORD    frames transmitted
  4970.  14h    DWORD    multicast bytes received
  4971.  18h    DWORD    multicast frames received
  4972.  1Ch    DWORD    unrecognized frames
  4973.  20h    WORD    missed frames
  4974.  22h    WORD    frame check sequence (FCS) errors
  4975.  24h    WORD    framing errors
  4976.  26h    WORD    babbling errors
  4977.  28h    WORD    late collision errors
  4978.  2Ah    WORD    loss of carrier errors
  4979.  2Ch    WORD    16 retries failed errors
  4980.  2Eh    WORD    overflow errors
  4981. Note:    fields 26h through 2Ch are always zero, except in some very old
  4982.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  4983.       more detailed information.
  4984. --------N-7C000E-----------------------------
  4985. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  4986.     AX = 000Eh
  4987.     ES:DI -> Driver Information Block (see #2443)
  4988.     BX = offset of 1st field within DIB to be returned
  4989.     CX = number of bytes to be returned
  4990. Return: AX = completion code (see #2431)
  4991.     CX = number of bytes copied (regardless of value returned in AX)
  4992. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4993.       which provides an API on top of its Data Link Interface, allowing the
  4994.       use of any of several network transport layers
  4995. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  4996.  
  4997. Format of SK-UPPS Driver Information Block (DIB):
  4998. Offset    Size    Description    (Table 2443)
  4999.  00h  6 BYTEs    physical node address (from adapter's ROM)
  5000.  06h  6 BYTEs    current node address (see AX=0003h)
  5001.  0Ch    BYTE    adapter id (defined by OEM)
  5002.  0Dh    BYTE    IRQ line (FFh if none)
  5003.  0Eh    DWORD    -> shared memory (zero if none)
  5004.  12h    DWORD    size of shared memory (zero if none)
  5005.  16h    WORD    base I/O port (zero if none)
  5006.  18h    BYTE    DMA line (FFh if none)
  5007.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  5008.  1Ah    WORD    size of an Mbuf's DATA area (see #2432)
  5009.  1Ch  2 BYTEs    reserved (currently unused)
  5010.  1Eh    WORD    total number of Mbufs the DLI has
  5011.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  5012.           BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  5013.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  5014.  22h    DWORD    -> ASCIZ adapter name
  5015.  26h    WORD    number of I/O ports used (zero if none)
  5016.  28h    DWORD    line speed in bits/sec.
  5017. --------N-7C000F-----------------------------
  5018. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  5019.     AX = 000Fh
  5020.     ES:BX -> Mbuf (see #2432)
  5021. Return: nothing
  5022. Notes:    A protocol may call this function instead of returning the Mbuf
  5023.       directly from the Receive Upcall if it is running in "promiscuous",
  5024.       "hook" or "chain" mode.
  5025. SeeAlso: AX=0007h
  5026. --------N-7C0010-----------------------------
  5027. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  5028.     AX = 0010h
  5029. Return: nothing
  5030. Notes:    An application having no active protocols may call this function to
  5031.       prevent the DLI from unloading.
  5032. SeeAlso: AX=0001h,AX=0011h
  5033. --------N-7C0011-----------------------------
  5034. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  5035.     AX = 0011h
  5036. Return: nothing
  5037. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5038.       which provides an API on top of its Data Link Interface, allowing the
  5039.       use of any of several network transport layers
  5040. SeeAlso: AX=0010h
  5041. --------N-7C0012-----------------------------
  5042. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  5043.     AX = 0012h
  5044.     DX = protocol ID (see #2434)
  5045. Return: AX = completion code (see #2431)
  5046.     if AX=0000h: ES:BX -> Mbuf (see #2432)
  5047. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  5048.       REQUEST BUFFER (AX=0004h) should be used instead.
  5049. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  5050. --------N-7C0013-----------------------------
  5051. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  5052.     AX = 0013h
  5053.     ES:BX -> Mbuf (see #2432)
  5054. Return: nothing
  5055. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  5056.     The Mbuf may no more be used by the protocol in any way (i.e. the
  5057.       Mbuf's IN USE field may not be polled).
  5058. SeeAlso: AX=0004h,AX=0013h
  5059. --------N-7C0014-----------------------------
  5060. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  5061.     AX = 0014h
  5062.     BX = protocol ID (see #2434,AX=000Bh)
  5063.     ES:DI -> multicast address buffer
  5064.     CX = number of 6-byte multicast addresses that may be stored in buffer
  5065. Return: AX = completion code (see #2431)
  5066.     CX = number of registered multicast addresses for this protocol
  5067.       (regardless of value returned in AX)
  5068.     multicast address buffer filled with multicast addresses registered for
  5069.       this protocol
  5070. Note:    If the buffer supplied is too small, CX still contains the total number
  5071.       of registered multicast addresses for this protocol and the buffer
  5072.       has been completely filled
  5073. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  5074. --------N-7C0015-----------------------------
  5075. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  5076.     AX = 0015h
  5077.     ES:DI -> media-specific statistics buffer (see #2444,#2445,#2446)
  5078.     BX = offset of 1st field within MSS to be returned
  5079.     CX = number of bytes to be returned
  5080. Return: AX = completion code (see #2431)
  5081.     CX = number of bytes copied (regardless of value returned in AX)
  5082. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  5083. SeeAlso: AX=0000h,AX=000Dh
  5084.  
  5085. Format of SK-UPPS media-specific statistics for Ethernet:
  5086. Offset    Size    Description    (Table 2444)
  5087.  00h    DWORD    alignment errors
  5088.  04h    DWORD    frame check sequence (FCS) errors
  5089.  08h    DWORD    single collision frames
  5090.  0Ch    DWORD    multiple collision frames
  5091.  10h    DWORD    signal quality error (SQE) test errors
  5092.  14h    DWORD    deferred transmissions
  5093.  18h    DWORD    late collisions
  5094.  1Ch    DWORD    excessive collisions
  5095.  20h    DWORD    internal MAC transmit errors
  5096.  24h    DWORD    carrier sense errors
  5097.  28h    DWORD    excessive deferrals
  5098.  2Ch    DWORD    frame too longs
  5099.  30h    DWORD    in range length errors
  5100.  34h    DWORD    out of range length fields
  5101.  38h    DWORD    internal MAC receive errors
  5102.  
  5103. Format of SK-UPPS media-specific statistics for FDDI:
  5104. Offset    Size    Description    (Table 2445)
  5105.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  5106.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  5107.           5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  5108.  08h    DWORD    SMT frames sent
  5109.  0Ch    DWORD    SMT frames received
  5110.  10h    DWORD    SMT ring up count
  5111.  14h  6 BYTEs    MAC upstream neighbour
  5112.  1Ah  6 BYTEs    MAC downstream neighbour
  5113.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  5114.  24h    DWORD    MAC error counter ( " )
  5115.  28h    DWORD    MAC lost counter ( " )
  5116.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  5117.           is reported as the absolute value of the exponent)
  5118.  2Dh    BYTE    port 2 link error estimate ( " )
  5119.  2Eh  2 BYTEs    reserved (currently unused)
  5120.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  5121.           2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  5122.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  5123.  
  5124. Format of SK-UPPS media-specific statistics for Token-Ring:
  5125. Offset    Size    Description    (Table 2446)
  5126.  00h  6 BYTEs    upstream neighbour
  5127.  06h    WORD    local ring number
  5128.  08h    DWORD    ring up count
  5129.  0Ch    DWORD    signal loss errors
  5130.  10h    DWORD    lobe wire faults
  5131.  14h    DWORD    ring recovery count
  5132.  18h    DWORD    line errors
  5133.  1Ch    DWORD    burst errors
  5134.  20h    DWORD    ARI/FCI errors
  5135.  24h    DWORD    lost frame errors
  5136.  28h    DWORD    receive congestion errors
  5137.  2Ch    DWORD    frame copied errors
  5138.  30h    DWORD    token errors
  5139.  34h    DWORD    DMA bus errors
  5140.  38h    DWORD    DMA parity errors
  5141.  3Ch    DWORD    receive overflow errors
  5142. --------N-7C0016-----------------------------
  5143. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  5144.     AX = 0016h
  5145.     DX = subfunction; bits 14-15 specify direction of I/O:
  5146.         00 no data at all (ES:BX undefined)
  5147.         01 driver -> application (GET)
  5148.         10 application -> driver (SET)
  5149.         11 both directions (GET/SET)
  5150.     ES:BX -> I/O buffer (optional)
  5151.     CX = size of buffer (if ES:BX valid)
  5152. Return: AX = completion code; defined by OEM
  5153. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5154.       which provides an API on top of its Data Link Interface, allowing the
  5155.       use of any of several network transport layers
  5156. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  5157.     subfunction codes are defined by OEMs
  5158. SeeAlso: AX=0001h
  5159. --------N-7C0017-----------------------------
  5160. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  5161.     AX = 0017h
  5162. Return: AX = completion code (see #2431)
  5163. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  5164.     must be called with interrupts disabled; when the client re-enables
  5165.       interrupts, an interrupt will be generated and reported to the client
  5166.       through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  5167. SeeAlso: AX=0007h
  5168. --------t-7D---------------------------------
  5169. INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  5170. Note:    this interface has been moved to INT 2D; there are no known
  5171.       implementations on INT 7D
  5172. SeeAlso: INT 2D,INT 2F
  5173. --------S-7D---------------------------------
  5174. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  5175. SeeAlso: INT 7E"YTERM"
  5176. --------E-7D---------------------------------
  5177. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  5178. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5179.       early versions of the extender
  5180.     the newest versions of GO32 dynamically allocate the vectors used
  5181.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5182. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  5183. --------U-7D---------------------------------
  5184. INT 7D - HyperPAD v2.2 - API ACCESS
  5185. Note:    this vector is hooked but immediately passed on (without checking
  5186.       whether the previous handler was 0000h:0000h).  The sole purpose of
  5187.       this vector is to provide the address of the data area described
  5188.       below (see #2447).
  5189.  
  5190. Format of HyperPAD data area:
  5191. Offset    Size    Description    (Table 2447)
  5192.  -16h    DWORD    pointer to ??? FAR function
  5193.  -12h    DWORD    pointer to callback setting function
  5194.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  5195.  -0Eh 6 BYTEs    signature "BRC001"
  5196.  -08h    DWORD    pointer to previous INT 7D handler
  5197.  -04h    DWORD    pointer to ??? data
  5198.  00h        HyperPAD INT 7D handler
  5199. ----------7D---------------------------------
  5200. INT 7D - IBM DOS 6.1 E.EXE - ???
  5201. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  5202.       and if it is used, attempts to load E55VGA.EX instead of the
  5203.       default E.EX overlay.     However, E55VGA.EX is not included in
  5204.       IBM DOS 6.1.
  5205. --------G-7D00-------------------------------
  5206. INT 7D - SCSILink - RESET SCSI BUS
  5207.     AH = 00h
  5208. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  5209.       cross assemblers and similar products to communicate with Cross
  5210.       Products hardware debuggers
  5211. Desc:    reset all devices on the SCSI bus
  5212. Note:    the installation check is the signature "SCSILINK" immediately prior
  5213.       to the interrupt handler
  5214. Index:    installation check;SCSILink
  5215. --------G-7D01-------------------------------
  5216. INT 7D - SCSILink - CONNECT TO TARGET
  5217.     AH = 01h
  5218.     AL = target ID
  5219. Return: CF clear if successful
  5220.     CF set on error
  5221.         AL = initiator error
  5222.         AH = target error
  5223. Desc:    arbitrate the use of the bus and select the specified target device
  5224. --------G-7D02-------------------------------
  5225. INT 7D - SCSILink - SEND COMMAND
  5226.     AH = 02h
  5227.     ES:BX -> parameter block (see #2448)
  5228. Return: CF clear if successful
  5229.     CF set on error
  5230.         AL = initiator error
  5231.         AH = target error
  5232. Desc:    send the specified command block to the target device and perform any
  5233.       related I/O
  5234.  
  5235. Format of SCSILink parameter block:
  5236. Offset    Size    Description    (Table 2448)
  5237.  00h    DWORD    size of command block
  5238.  04h    DWORD    address of command block (see #2449)
  5239.  08h    DWORD    size of buffer
  5240.  0Ch    DWORD    address of buffer
  5241.  
  5242. Format of SCSILink command block:
  5243. Offset    Size    Description    (Table 2449)
  5244.  00h        info not yet available
  5245. --------G-7D03-------------------------------
  5246. INT 7D - SCSILink - SET TIMEOUT
  5247.     AH = 03h
  5248.     AL = timeout selector (see #2450)
  5249.     BX = new value in 55ms ticks
  5250. Desc:    change an internal timeout value to allow communication with very
  5251.       slow targets
  5252.  
  5253. (Table 2450)
  5254. Values for SCSILink timeout selector:
  5255.  00h    time to wait for bus (default 18)
  5256.  01h    time to wait for new phase (default 5)
  5257.  02h    maximum time to send/receive block (default 18)
  5258.  03h    time to wait for reselect (default 180)
  5259. --------G-7D04-------------------------------
  5260. INT 7D - SCSILink - GET ERROR STRING
  5261.     AH = 04h
  5262.     AL = error number
  5263. Return: ES:BX -> ASCIZ error string for error number
  5264. --------G-7D05-------------------------------
  5265. INT 7D - SCSILink - GET ADDRESS
  5266.     AH = 05h
  5267. Return: AL = DMA channel
  5268.     AH = initiator ID
  5269.     BX = card address
  5270. Desc:    determine the current hardware configuration
  5271. --------G-7D06-------------------------------
  5272. INT 7D - SCSILink - PUT DATA
  5273.     AH = 06h
  5274.     CX = number of bytes to store (0001h-0100h)
  5275.     ES:BX -> data to be saved
  5276. Return: CF clear if successful
  5277.     CF set on error
  5278.         AL = error code (01h = too much data)
  5279. Note:    the specified data is stored in SCSILink's PSP
  5280. SeeAlso: AH=07h
  5281. --------G-7D07-------------------------------
  5282. INT 7D - SCSILink - GET DATA
  5283.     AH = 07h
  5284.     CX = number of bytes to retrieve (0001h-0100h)
  5285.     ES:BX -> buffer for data
  5286. Return: CF clear if successful
  5287.     CF set on error
  5288.         AL = error code (01h = too much data)
  5289. Note:    retrieve data previously stored with AH=06h
  5290. SeeAlso: AH=06h
  5291. --------G-7D08-------------------------------
  5292. INT 7D - SCSILink - TERMINATE SESSION
  5293.     AH = 08h
  5294. Desc:    indicate to any other programs that intercept INT 7D that the program
  5295.       has finished with the link
  5296. Note:    the program should call this function even if a SCSI error caused its
  5297.       termination
  5298. --------G-7D09-------------------------------
  5299. INT 7D - SCSILink - POLL REQUEST
  5300.     AH = 09h
  5301.     AL = target ID
  5302. Return: AL = status
  5303.         FEh resident driver experienced SCSI error
  5304.         FFh resident driver handleded event
  5305. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  5306.       not specifically handled by the calling program
  5307. Notes:    this service exists so that resident disk servers, etc. can continue
  5308.       running even while debuggers and profilers are active
  5309.     the resident driver assumes that a connection has been established and
  5310.       attempts to leave the target connected
  5311. --------*-7E---------------------------------
  5312. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  5313. --------S-7E---------------------------------
  5314. INT 7E U - YTERM 1.4 - ???
  5315. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  5316. --------E-7E---------------------------------
  5317. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  5318. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5319.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5320. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5321.       early versions of the extender
  5322.     the newest versions of GO32 dynamically allocate the vectors used
  5323.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5324. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  5325. --------s-7E00-------------------------------
  5326. INT 7E - MaxSBOS v0.21 - GET ???
  5327.     AH = 00h
  5328. Return: DX:AX -> ???
  5329. SeeAlso: AH=01h,AH=02h,AH=03h
  5330. --------s-7E00F6-----------------------------
  5331. INT 7E - SBOS v3.82 - SET ???
  5332.     AX = 00F6h
  5333.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5334. Return: AX=00F9h,AX=00FEh
  5335. --------s-7E00F7-----------------------------
  5336. INT 7E - SBOS v3.82 - GET ???
  5337.     AX = 00F7h
  5338. Return:    AX = status
  5339.         0000h failed
  5340.         0001h successful
  5341.         BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
  5342.         CH = ???
  5343.         CL = ???
  5344. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5345. --------s-7E00F9-----------------------------
  5346. INT 7E - SBOS v3.82 - SET ???
  5347.     AX = 00F9h
  5348.     BX = ???
  5349. SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh
  5350. --------s-7E00FB-----------------------------
  5351. INT 7E - SBOS v3.82 - SET ???
  5352.     AX = 00FBh
  5353.     BL = ???
  5354. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5355. --------s-7E00FF-----------------------------
  5356. INT 7E - SBOS v3.82 - SET ???
  5357.     AX = 00FDh
  5358.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5359. SeeAlso: AX=00F9h,AX=00FEh
  5360. --------s-7E00FE-----------------------------
  5361. INT 7E - SBOS v3.82 - UNINSTALL
  5362.     AX = 00FEh
  5363. Return: AX = status
  5364.         0000h successful
  5365.         00FCh unable to unhook INT 21
  5366.         00FDh unable to unhook INT 09
  5367.         00FEh unable to release memory
  5368. Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
  5369. Range:    SBOS may use INT 78-INT 7F
  5370. Notes:    the installation check for SBOS is to test for the ASCII signature
  5371.       "SBOS" at offset 0Ah in the interrupt handler's segment (similar
  5372.       to one of the possible EMS installation checks)
  5373.     this function may not be called if any SBOS vectors have been hooked
  5374. SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"
  5375. --------s-7E00FF-----------------------------
  5376. INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
  5377.     AX = 00FFh
  5378.     BL = new interrupt vector to hook
  5379. Return: BX = 03CDh if supported
  5380. Desc:    unhooks the current interrupt handler for ???, and reconnects it to the
  5381.       specified new interrupt number
  5382. SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh
  5383. --------s-7E01-------------------------------
  5384. INT 7E - MaxSBOS v0.21 - ???
  5385.     AH = 01h
  5386.     ???
  5387. Return: ???
  5388. Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
  5389.       UltraSound MAX
  5390. Range:    INT 78-INT 7F, selected by commandline parameter
  5391. Note:    the installation check is the same as for 'regular' SBOS (see AX=00FEh)
  5392.       although the API in v0.21 does not provide the functions present in
  5393.       the older SBOS
  5394. SeeAlso: AX=00FEh,AH=02h,AH=03h
  5395. --------s-7E02-------------------------------
  5396. INT 7E - MaxSBOS v0.21 - ???
  5397.     AH = 02h
  5398. Return: AX = FFFFh
  5399. SeeAlso: AX=00FEh,AH=01h,AH=03h
  5400. --------s-7E03-------------------------------
  5401. INT 7E - MaxSBOS v0.21 - NOP
  5402.     AH = 03h
  5403. Return: nothing
  5404. SeeAlso: AX=00FEh,AH=01h,AH=02h
  5405. --------m-7E5857BL57-------------------------
  5406. INT 7E - XLOAD - INSTALLATION CHECK
  5407.     AX = 5857h
  5408.     BL = 57h
  5409. Return: AX = 0000h if installed
  5410. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  5411. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  5412. --------m-7E5857BL5A-------------------------
  5413. INT 7E - XLOAD - GET ???
  5414.     AX = 5857h
  5415.     BL = 5Ah
  5416. Return: AX = 0000h
  5417.     CX = ???
  5418.     DS:SI -> ???
  5419. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  5420. --------m-7E5857BL5B-------------------------
  5421. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  5422.     AX = 5857h
  5423.     BL = 5Bh
  5424. Return: AX = 0000h
  5425.     CX = segment of XLOAD TSR
  5426.     DX = size of memory block in which XLOAD TSR is located
  5427. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah
  5428. --------V-7F---------------------------------
  5429. INT 7F - Halo88 - API
  5430.     BX = function number (see #2451)
  5431.     additional parameters on stack
  5432. Return: ???
  5433. Program: Halo88 is a suite of graphics routines
  5434. Note:    according to Stuart Kemp, the code appears to make no provisions for
  5435.        chaining
  5436.  
  5437. (Table 2451)
  5438. Values for Halo88 API function:
  5439.  64h    arc
  5440.  65h    bar
  5441.  66h    box
  5442.  67h    circle
  5443.  68h    clr
  5444.  69h    default hatch style
  5445.  6Ah    default line style
  5446.  6Bh    delhcur
  5447.  6Ch    delln / deltcur
  5448.  6Dh    ellipse
  5449.  6Eh    fill
  5450.  6Fh    flood
  5451.  70h    flood2
  5452.  71h    init graphics
  5453.  72h    init hcur
  5454.  73h    init marker
  5455.  74h    init tcur
  5456.  75h    inqarc
  5457.  76h    inqbknd
  5458.  77h    inqclr
  5459.  78h    inqerr
  5460.  79h    inqgcur
  5461.  7Ah    inqhcur
  5462.  7Bh    inqmarker
  5463.  7Dh    inqtcur
  5464.  7Eh    inqtext
  5465.  7Fh    lnabs
  5466.  80h    lnrel
  5467.  81h    markerabs
  5468.  82h    markerrel
  5469.  83h    moveabs
  5470.  84h    movehcurabs
  5471.  85h    movehcurrel
  5472.  86h    moverel
  5473.  87h    movetcurabs
  5474.  88h    movetcurrel
  5475.  89h    movefrom
  5476.  8Ah    moveto
  5477.  8Bh    pie
  5478.  8Ch    polylnabs
  5479.  8Dh    polylnrel
  5480.  8Eh    ptabs
  5481.  8Fh    ptrel
  5482.  91h    setasp
  5483.  92h    set color
  5484.  93h    set font
  5485.  94h    set hatch    style
  5486.  95h    set line style
  5487.  97h    settext
  5488.  98h    set text color
  5489.  99h    btext
  5490.  9Ah    setseg
  5491.  9Bh    display
  5492.  9Ch    setscreen
  5493.  9Eh    close graphics
  5494.  9Fh    ftinit
  5495.  A0h    ftlocate
  5496.  A1h    ftext
  5497.  A5h    set viewport
  5498.  A6h    set window
  5499.  A7h    set world
  5500.  AAh    ftcolor
  5501.  ACh    initlp
  5502.  ADh    inqasp
  5503.  AEh    inqdev
  5504.  AFh    inqdisplay
  5505.  B0h    inqft
  5506.  B1h    inqftcolor
  5507.  B2h    inqinterlace
  5508.  B3h    inqlpa
  5509.  B4h    inqlpg
  5510.  B5h    inqmode
  5511.  B6h    inqscreen
  5512.  B7h    inqversion
  5513.  B8h    roam
  5514.  B9h    scroll
  5515.  BAh    setieee
  5516.  BBh    set interlace
  5517.  BCh    shift
  5518.  BDh    start graphics
  5519.  BEh    vpan
  5520.  CBh    gwrite
  5521.  CCh    gread
  5522.  CDh    setxor
  5523.  CEh    rbox
  5524.  CFh    rcir
  5525.  D0h    rlnabs
  5526.  D1h    rlnrel
  5527.  D2h    delbox
  5528.  D3h    delcir
  5529.  D5h    setseg2
  5530.  DCh    worldoff
  5531.  DDh    mapwtod
  5532.  DEh    mapdtow
  5533.  DFh    mapwton
  5534.  E0h    mapntow
  5535.  E1h    mapdton
  5536.  E2h    mapntod
  5537.  E3h    inqworld
  5538.  E4h    inqviewport
  5539.  E5h    set line width
  5540.  E6h    lnjoint
  5541.  E7h    set locator
  5542.  E8h    read locator
  5543.  E9h    setdev
  5544.  EBh    setstext
  5545.  ECh    setstclr
  5546.  EDh    setstang
  5547.  EEh    stext
  5548.  EFh    inqstext
  5549.  F0h    setdegree
  5550.  F1h    inqstsize
  5551.  F2h    polyfabs
  5552.  F3h    polyfrel
  5553.  F4h    inqdrange
  5554.  F5h    inqstang
  5555.  F6h    orglocator
  5556.  F7h    inqlocator
  5557.  F8h    inqarea
  5558.  F9h    setipal
  5559.  FAh    setborder
  5560.  FBh    inqcrange
  5561.  FEh    setclip
  5562.  FFh    fcir
  5563. 100h    setcrange
  5564. 101h    setdrange
  5565. 102h    setlattr
  5566. 103h    polycabs
  5567. 104h    polycrel
  5568. 108h    memcom
  5569. 109h    memexp
  5570. 10Ah    memmov
  5571. 10Eh    movefx
  5572. 10Fh    movetx
  5573. 110h    inqrgb
  5574. 111h    save image
  5575. 112h    restore image
  5576. 113h    setapal
  5577. 114h    setxpal
  5578. 118h    inqtsize
  5579. 12Eh    gprint
  5580. 130h    setprn
  5581. 131h    setpattr
  5582. 133h    setbattr
  5583. 135h    pexpand
  5584. 136h    ptnorm
  5585. 137h    pfnorm
  5586. 13Bh    inqprn
  5587. 13Ch    lopen
  5588. 13Dh    lclose
  5589. 13Eh    lappend
  5590. 13Fh    lrecord
  5591. 140h    lswitch
  5592. 142h    inqfun
  5593. 15Dh    lsetup
  5594. 15Eh    lrest
  5595. 15Fh    lsave
  5596. --------N-7F---------------------------------
  5597. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  5598.     AL = request ID
  5599.         01h "Request"/"RequestDirect"
  5600.         ES:BX -> pRq
  5601.         DX ignored
  5602.         04h "Wait"
  5603.         ES:BX -> ppMsgRet
  5604.         DX = exchange
  5605.         05h "AllocExch"
  5606.         ES:BX -> pExchRet
  5607.         06h "DeAllocExch"
  5608.         DX = exchange
  5609.         07h "Check"
  5610.         ES:BX -> ppMsgRet
  5611.         DX = exchange
  5612.     CX = 4354h ('CT')
  5613. Return: AX = status
  5614.         0000h successful
  5615. --------S-7F---------------------------------
  5616. INT 7F - Telebit ACS SERIAL I/O
  5617.     ES:SI-> parameter block (see #2452)
  5618. Return: CF set on error
  5619.     CF clear on success
  5620. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  5621.       handler; this serves as the installation check
  5622. Index:    installation check;Telebit ACS Serial I/O
  5623.  
  5624. Format of Telebit ACS parameter block:
  5625. Offset    Size    Description    (Table 2452)
  5626.  00h    BYTE    command (see #2453)
  5627.  01h    BYTE    gateway number
  5628.  02h    BYTE    reserved
  5629.  03h    BYTE    port
  5630.  04h 17 BYTEs    auxiliary buffer
  5631.  15h    BYTE    session
  5632.  16h    WORD    count of bytes passed to API
  5633.  18h    DWORD    buffer pointer passed to/from API
  5634.  1Ch    WORD    count of bytes passed from API
  5635.  1Eh    BYTE    return code (see #2454)
  5636.  
  5637. (Table 2453)
  5638. Values for Telebit ACS command:
  5639.  3Ch    status
  5640.  3Dh    connect
  5641.  3Eh    disconnect
  5642.  3Fh    read
  5643.  40h    data/command write
  5644.  41h    clear receive buffer
  5645.  42h    get configuration
  5646.  43h    get receiver status
  5647.  44h    raw write
  5648.  45h    search servers
  5649.  46h    set transmit buffer size
  5650.  
  5651. (Table 2454)
  5652. Values for Telebit ACS return code:
  5653.  00h    success
  5654.  01h    invalid session
  5655.  05h    servername invalid
  5656.  06h    NetWare fileserver bindery is locked
  5657.  07h    communication server not active
  5658.  08h    general failure in NetWare fileserver
  5659.  09h    not logged into a fileserver
  5660.  10h    connection table full
  5661.  11h    no response from communication server
  5662.  12h    connection attempt terminated abnormally
  5663.  13h    connection refused - no sessions available
  5664.  14h    gateway number/port already in use
  5665.  15h    invalid connection response
  5666.  16h    port invalid
  5667.  17h    incorrect version in server response
  5668.  18h    gateway number/port combination not configured
  5669.  19h    initialization has not been completed
  5670.  20h    no more sockets are available
  5671.  21h    no active poolname
  5672.  23h    FATAL internal interface error
  5673.  24h    registration of host workstation failed - name is already in use
  5674.  25h    registration of host workstation failed - workstation name table full
  5675.  26h    registration of host workstation failed - only one session may be
  5676.       registered for dial-in
  5677.  FFh    Telebit ACS API is busy - retry later
  5678. --------N-7F---------------------------------
  5679. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  5680. Notes:    the installation check consists of checking for the signature "Lynn"
  5681.       in the four bytes preceding the interrupt handler; if present, the
  5682.       current program is running as a DOS task on a non-dedicated NetWare
  5683.       2.x file server.
  5684.     Before placing the server into "console" mode, it is recommended that
  5685.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  5686. SeeAlso: INT 21/AH=DEh/DL=04h
  5687. Index:    installation check;non-dedicated NetWare server
  5688. --------S-7F---------------------------------
  5689. INT 7F U - YTERM - ???
  5690. SeeAlso: INT 7E"YTERM"
  5691. --------E-7F---------------------------------
  5692. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  5693. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5694.       early versions of the DOS extender
  5695.     the newest versions of GO32 dynamically allocate the vectors used
  5696.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5697. SeeAlso: INT 0F,INT 7E"GO32"
  5698. ----------7F---------------------------------
  5699. INT 7F - Canon IXHND2 Scanner Interface
  5700. --------U-7F---------------------------------
  5701. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  5702.     DS:SI -> WinRun control block (WCB) (see #2668)
  5703. Return: WinRun receiver status returned in WCB
  5704. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  5705.       Windows applications from a virtual DOS machine under Windows
  5706. Note:    The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  5707.       to be up and running
  5708.  
  5709. Format of the WinRun control block (WCB):
  5710. Offset    Size    Description    (Table 2668)
  5711.  00h    DWORD    pointer to ASCIZ command string
  5712.  04h    WORD    (ret) WinRun receiver status
  5713.         0000h-001Fh WinExec() error
  5714.         0020h-FFFEh WinExec() instance handle
  5715.         FFFFh        Windows not running or WinRun receiver not
  5716.                   installed
  5717. --------N-7F---------------------------------
  5718. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  5719. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  5720.       MW386 multitasking system is present (i.e. signature "NXNX")
  5721.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  5722.       load time.  To determine the actual vector used, open the device
  5723.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  5724.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  5725.       be the actual interrupt number being used; the other interrupts may
  5726.       be found with INT 7F/AH=09h/CL=03h
  5727. --------N-7F---------------------------------
  5728. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  5729. Note:    a program may determine that it is running on an ANSK Slave by checking
  5730.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  5731.       address is RAM, and should not be written.  However, the above check
  5732.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  5733.       device driver
  5734. --------N-7F00-------------------------------
  5735. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  5736.     AH = 00h
  5737.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5738. Return: AL = status (see #2455)
  5739.     AH = semaphore owner if status=02h
  5740. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  5741.  
  5742. (Table 2455)
  5743. Values for Alloy function status:
  5744.  00h    successful
  5745.  01h    invalid function
  5746.  02h    semaphore already locked
  5747.  03h    unable to lock/unlock semaphore
  5748.  04h    semaphore space exhausted
  5749.  05h    host/target PC did not respond (NTNX)
  5750. --------T-7F00-------------------------------
  5751. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  5752.     AH = 00h
  5753.     BX = resource identifier
  5754.     AL = wait flag
  5755. Return: AL = status
  5756.         00h successful
  5757.         01h resource not available
  5758.         02h user error
  5759. Notes:    the installation check consists of ensuring that the interrupt vector
  5760.       is not pointing at segment 0000h, then checking whether the byte
  5761.       at offset 0000h in the interrupt handler's segment is E9h
  5762.     function will not return until the resource is available if AL is
  5763.       nonzero on entry
  5764.     a maximum of 100 resources may be enqueued at once
  5765. SeeAlso: AH=01h"MultiLink"
  5766. --------N-7F00-------------------------------
  5767. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  5768.     AH = 00h
  5769.     ES:SI -> buffer for "USERS" text string
  5770. Return: AX = 4250h ('BP') if installed
  5771.     BX = 5120h ('Q ') if installed
  5772.     DX = version number (DH = major, DL = minor)
  5773.     CX = length of returned string
  5774. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  5775.       John Wiseman which allows a PC to act as a node in an AX.25 network
  5776. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  5777. --------N-7F01-------------------------------
  5778. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  5779.     AH = 01h
  5780.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5781. Return: AL = status (see #2455)
  5782.     AH = semaphore owner if status=02h
  5783. SeeAlso: AH=00h,AH=02h,AH=41h
  5784. --------T-7F01-------------------------------
  5785. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  5786.     AH = 01h
  5787.     BX = resource identifier
  5788. Return: AL = status
  5789.         00h successful
  5790.         02h user error
  5791. Note:    the indicated resource may be dequeued even if it was enqueued by
  5792.       another task
  5793. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  5794. --------V-7F01-------------------------------
  5795. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  5796.     AH = 01h
  5797. Return: BX = 1234h if installed
  5798.         DX:AX -> array of FAR entry points
  5799.         CH = driver major version
  5800.         CL = driver minor version
  5801. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  5802. SeeAlso: AX=1234h,AX=4321h
  5803. --------N-7F01-------------------------------
  5804. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  5805.     AH = 01h
  5806.     AL = stream number (01h-40h)
  5807.     CL = new application flags
  5808.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  5809.     DL = new application mask
  5810. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  5811.       John Wiseman which allows a PC to act as a node in an AX.25 network
  5812. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  5813.       (earlier versions were hard-wired for INT 7F)
  5814. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  5815. --------I-7F0104BX0000-----------------------
  5816. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  5817.     AX = 0104h (HLLAPI gate ID)
  5818.     BX = 0000h
  5819.     DS:SI -> parameter control block (see #2456)
  5820. Return: parameter control block updated
  5821. Note:    the installation check for the Novell HLLAPI TSR is the signature
  5822.       string "CXI" (for the company Novell bought) immediately prior to
  5823.       the interrupt handler
  5824. SeeAlso: AX=0105h,AX=ABCDh
  5825.  
  5826. Format of HLLAPI parameter control block:
  5827. Offset    Size    Description    (Table 2456)
  5828.  00h  3 BYTEs    signature = 'PCB'
  5829.  03h    BYTE    function number (see #2457,#2458)
  5830.  04h    WORD    segment of control string
  5831.  06h    WORD    offset of control string
  5832.  08h    WORD    length of control string, unless explicit end-of-str char set
  5833.  0Ah    BYTE    unused (IBM)
  5834.         ControlString[0] (Rabbit)
  5835.  0Bh    WORD    return code (see #2460)
  5836.  0Dh    WORD    maximum length of control string (IBM)
  5837.         unused (Rabbit)
  5838.  
  5839. (Table 2457)
  5840. Values for HLLAPI function number:
  5841.  00h    OEM function (Query system for Attachmate implementation)
  5842.  01h    Connect presentation space
  5843.  02h    Disconnect presentation space
  5844.  03h    Send string of keystrokes as if typed from keyboard
  5845.  04h    Wait ~60s, returns status of presentation space
  5846.  05h    Copy current presentation space into a user-defined buffer
  5847.  06h    Search presentation space for first occurrence of a specified string
  5848.  07h    Query cursor location in current presentation space
  5849.  08h    Copy part or all of current presentation space into user buffer
  5850.  09h    Set session parameters; parameters vary by vendor (see #2459)
  5851.  0Ah    Get info on sessions currently connected
  5852.  0Bh    Lock current presentation space
  5853.  0Ch    Unlock previously locked presentation space
  5854.  0Dh    Return copy of operator info area (OIA) of current presentation space
  5855.  0Eh    get attribute byte for given position in the current presentation space
  5856.  0Fh    copy string of characters to the current presentation space
  5857.  10h    workstation control functions
  5858.  11h    storage manager functions, intended primarily for BASIC applications
  5859.     (not implemented by Rabbit)
  5860.  12h    set delay period in half-second intervals
  5861.  14h    get info on level of workstation support used
  5862.  15h    reset session parameters to default values
  5863.  16h    get detailed info on the current session
  5864.  17h    start host notification to application on presentation sp or OIA update
  5865.  18h    check host update when host notification enabled
  5866.  19h    stop host notification
  5867.  1Eh    search field within current presentation space for string
  5868.  1Fh    get first positionof a selected field in the current presentation space
  5869.  20h    get length of specified field
  5870.  21h    copy string into a specified field
  5871.  22h    copy specified field into a user-defined buffer
  5872.  23h    create alternate presentation space (IBM only), don't use with BASIC
  5873.  24h    switch to alternate presentation space (IBM only), not with BASIC
  5874.  25h    display cursor in specified area (IBM only), don't use with BASIC
  5875.  26h    display alternate presentation space (IBM only), don't use with BASIC
  5876.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  5877.  28h    set cursor
  5878.  29h    start Close Intercept
  5879.  2Ah    query Close Intercept
  5880.  2Bh    stop Close Intercept
  5881.  32h    start intercepting keystrokes to allow filtering
  5882.  33h    get keystrokes after turning on interception
  5883.  34h    notify operator when keystroke rejected by filter subroutine
  5884.  35h    stop intercepting keystrokes
  5885.  5Ah    send file
  5886.  5Bh    receive file
  5887.  5Ch    run a program (not implemented by Rabbit)
  5888.  5Dh    execute DOS command (not implemented by Rabbit)
  5889.  63h    change presentation space position to PC display row/col or vice versa
  5890.  65h    connect to Window Services
  5891.  66h    disconnect from Window Services
  5892.  67h    set/query window coordinates
  5893.  68h    set/query window status
  5894.  69h    change presentation space name
  5895.  78h    connect Structured Fields
  5896.  79h    disconnect Structured Fields
  5897.  7Ah    query size of communications buffer
  5898.  7Bh    allocate communications buffer
  5899.  7Ch    free communications buffer
  5900.  7Dh    get request completion state
  5901.  7Eh    read Structured Fields
  5902.  7Fh    write Structured Fields
  5903.  FFh    Get info on DCA implementation
  5904.  
  5905. (Table 2458)
  5906. Values for LLAPI function number:
  5907.  80h    initialize LLAPI (internal call)
  5908.  83h    set Session ID (one-character ID)
  5909.  84h    read Session ID (one-character ID)
  5910.  85h    lock 327x keyboard
  5911.  86h    unlock 327x keyboard
  5912.  87h    wait for Clear to Send
  5913.  88h    type ASCII character
  5914.  89h    type 327x key
  5915.  8Ah    read keyboard lock state
  5916.  8Fh    force screen update
  5917.  90h    view session
  5918.  91h    relinquish (suspend foreground until background becomes idle)
  5919.  92h    poke screen character
  5920.  93h    poke translated character
  5921.  94h    peek screen character
  5922.  95h    peek translated character
  5923.  96h    set cursor position
  5924.  97h    send scan code (Rabbit only)
  5925.  98h    synchronize (returns after keystroke queue empty)
  5926.  99h    type PC key (Rabbit only)
  5927.  
  5928. (Table 2459)
  5929. Values for HLLAPI Function 09h Session Parameters:
  5930.  ASCII        ??? (Rabbit only)
  5931.  ATTRIB        return attributes in hex
  5932.  NOATTRIB    return attributes as blanks
  5933.  CONPHYS    make physical connection
  5934.  CONLOG        only make logical connection
  5935.  EAB        copy extended attribute bytes along with data
  5936.  NOEAB        copy data only
  5937.  ESC=n        set escape character to "n" (default '@')
  5938.  EOT=n        set end of string character (default 00h)
  5939.  FPAUSE        full-duration pause
  5940.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  5941.  FTWAIT        wait for file transfer to complete (Rabbit only)
  5942.  IPAUSE        interruptable pause
  5943.  RABESC        ??? (Rabbit only)
  5944.  NORABESC    ??? (Rabbit only)
  5945.  SCANCODE    ??? (Rabbit only)
  5946.  STRLEN        use explicit string lengths
  5947.  STREOT        use terminated strings
  5948.  SRCHALL    search entire presentation space
  5949.  SRCHFROM    search from specified offset
  5950.  SRCHFRWD    search forward from position 1
  5951.  SRCHBKWD    search backward from last position in presentation space
  5952.  TIMEOUT=n    ??? (Rabbit only)
  5953.  TWAIT        wait specified time for keyboard ready
  5954.  LWAIT        wait until keyboard ready
  5955.  NWAIT        no wait
  5956.  TRON        enable tracing
  5957.  TROFF        disable tracing
  5958.  AUTORESET    send reset before sending keys with function 03h
  5959.  NORESET    don't send reset
  5960.  QUIET        don't display messages sent with INT 21/AH=09h
  5961.  NOQUIET    allow messages to be displayed
  5962.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  5963.  XLATE        translate extended attribute bytes
  5964.  NOXLATE    don't translate
  5965.  NEWRET        use HLLAPI v3.0 return code conventions
  5966.  OLDRET        use HLLAPI v2.0 return code conventions
  5967.  
  5968. (Table 2460)
  5969. Values for Windows HLLAPI return code:
  5970.  00h    successful
  5971.  01h    Presentation Space not connected/requested size unavailable
  5972.  02h    invalid function or parameter error/invalid block ID
  5973.  03h    file transfer complete
  5974.  04h    file transfer complete (segmented)/Presentation Space busy
  5975.  05h    inhibited or keyboard locked
  5976.  06h    data truncated
  5977.  07h    invalid Presentation Space position
  5978.  08h    operation not available
  5979.  09h    system error
  5980.  0Ah    blocking error
  5981.  0Bh    resource not available
  5982.  0Ch    session stopped
  5983.  14h    undefined key combination
  5984.  15h    OIA updated
  5985.  16h    Presentation Space updated
  5986.  17h    both Presentation Space and OIA updated
  5987.  18h    no such field
  5988.  19h    no keystrokes available
  5989.  1Ah    Presentation Space or Operator Information Area changed
  5990.  1Bh    file transfer aborted
  5991.  1Ch    zero-length field
  5992.  1Eh    cursor type invalid
  5993.  1Fh    keystroke overflow
  5994.  20h    another application is already connected
  5995.  22h    message sent to host cancelled
  5996.  23h    transmission from host cancelled
  5997.  24h    lost contact with host
  5998.  25h    function successful
  5999.  26h    function incomplete
  6000.  27h    a DDM session is already connected
  6001.  28h    disconnected, but asynchronous requests still pending
  6002.  29h    buffer already in use
  6003.  2Ah    no matching request found
  6004. 12Dh    invalid function number
  6005. 12Eh    file not found
  6006. 131h    access denied
  6007. 134h    out of memory
  6008. 136h    environment invalid
  6009. 137h    format invalid
  6010. 270Eh (9998) invalid Presentation Space ID
  6011. 270Fh (9999) invalid row or column code
  6012. ---Windows HLLAPI extensions---
  6013. F000h    asynchronous call already in progress
  6014. F001h    invalid asynchronous task ID
  6015. F002h    blocking call cancelled
  6016. F003h    underlying subsystem not started
  6017. F004h    unsupported application version
  6018. --------V-7F0105-----------------------------
  6019. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  6020.     AX = 0105h
  6021. Return: CF set on error
  6022.     CF clear if successful
  6023.         CX:DX -> array of FAR pointers to entry points (see #2461)
  6024. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  6025.       and then performing a FAR call via the appropriate vector of the
  6026.       entry point array, placing the FAR address of the function's
  6027.       parameter block on the top of the stack
  6028. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  6029.  
  6030. (Table 2461)
  6031. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  6032.  08h    HOPEN    Open Adapter (see #2493)
  6033.  09h    HSMX    Set Mix (see #2522)
  6034.  10h    HINT    Interrupt (see #2489)
  6035.  13h    HLDPAL    Load Palette (see #2490)
  6036.  15h    HBBW    BitBLT Write Image Data (see #2476)
  6037.  17h    HBBR    BitBLT Read Image Data (see #2477)
  6038.  18h    HBBCHN    Chained Data Go (see #2475)
  6039.  19h    HBBC    BitBLT Copy Data (see #2474)
  6040.  1Dh    HQMODE    Get Current Mode (see #2499)
  6041.  20h    HRECT    Fill Rectangle (see #2501)
  6042.  22h    HCLOSE    Close Adapter and place in quiescent state (see #2482)
  6043.  30h    HINIT    Initialize State (see #2488)
  6044.  31h    HSYNC    Synchronize Adapter (see #2527)
  6045.  39h    HSPAL    Save Palette (see #2524)
  6046.  3Ah    HRPAL    Restore Palette (see #2504)
  6047.  ???    HSGQ    Set Graphics Quality (see #2513)
  6048.  ???    HSCOORD    Set Coordinate Type (see #2510)
  6049.  ???    HESC    Escape, Terminate Processing (see #2487)
  6050.  ???    HSBCOL    Set Background Color (see #2505)
  6051.  ???    HSBP    Set Bit Plane Controls (see #2506)
  6052.  ???    HSCMP    Set Color Comparison Register (see #2508)
  6053.  ???    HSCOL    Set Color (see #2509)
  6054.  ???    HSHS    Set Scissors (clipping rectangle) (see #2514)
  6055.  ???    HXLATE    Assign Text Color (see #2528)
  6056.  ???    HQMODES    Get Adapter Modes (see #2500)
  6057.  ???    HQDPS    Get Drawing Process State Size (see #2498)
  6058.  ???    HQDFPAL    Get Default Palette (see #2497)
  6059.  ???    HQCOORD    Get Coordinate Type (see #2495)
  6060.  ???    HQCP    Get Current Position (see #2496)
  6061.  ???    HSMODE    Change Mode (see #2520)
  6062.  ???    HLINE    Draw Line at Given Position (see #2491)
  6063.  ???    HCLINE    Draw Line at Current Position (see #2481)
  6064.  ???    HRLINE    Draw Line Relative from Given Position (see #2502)
  6065.  ???    HCRLINE    Draw Line Relative at Current Position (see #2484)
  6066.  ???    HSLT    Set Line Type (see #2517)
  6067.  ???    HSLW    Set Line Width (see #2519)
  6068.  ???    HSLPC    Save Line Pattern Count (see #2516)
  6069.  ???    HRLPC    Restore Line Pattern Count (see #2503)
  6070.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #2478)
  6071.  ???    HBAR    Begin Area (see #2473)
  6072.  ???    HEAR    End Area (see #2485)
  6073.  ???    HSPATT    Set Pattern (see #2525)
  6074.  ???    HSPATTO    Set Pattern Reference Point (see #2526)
  6075.  ???    HEGS    Erase Graphics Screen (see #2486)
  6076.  ???    HSCP    Set Current Position (see #2511)
  6077.  ???    HMRK    Set Marker (see #2492)
  6078.  ???    HCMRK    Set Marker at Current Position (see #2483)
  6079.  ???    HSMARK    Set Marker Shape (see #2521)
  6080.  ???    HSCS    Set Character Set (see #2512)
  6081.  ???    HCHST    Write Character String at Given Position (see #2480)
  6082.  ???    HCCHST    Write Character String at Current Position (see #2479)
  6083.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #2507)
  6084.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #2464)
  6085.  ???    ABLOCKCGA Write Character Block CGA (see #2462)
  6086.  ???    AERASE    Erase Rectangle (see #2467)
  6087.  ???    ASCROLL Scroll Rectangle (see #2468)
  6088.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #2466)
  6089.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #2469)
  6090.  ???    ASFONT    Set Font (see #2470)
  6091.  ???    AXLATE    Assign Alphanumeric Color (see #2472)
  6092.  
  6093. Format of ABLOCKCGA parameter block:
  6094. Offset    Size    Description    (Table 2462)
  6095.  00h    WORD    000Ah (length of following data)
  6096.  02h    WORD    top-left coordinate of character block
  6097.  04h    WORD    width of block
  6098.  06h    DWORD    -> block of WORDs describing characters (see #2463)
  6099.  0Ah    BYTE    length of block in characters
  6100.  0Bh    BYTE    highlight attribute
  6101.         bit 4: transparent background
  6102.         bit 5: overstrike
  6103.         bit 6: reverse video
  6104.         bit 7: underscore
  6105. SeeAlso: #2464
  6106.  
  6107. Bitfields for one character in ABLOCKCGA character block:
  6108. Bit(s)    Description    (Table 2463)
  6109.  3-0    foreground attribute
  6110.  7-4    background attribute
  6111.  15-8    character code
  6112.  
  6113. Format of ABLOCKMFI parameter block:
  6114. Offset    Size    Description    (Table 2464)
  6115.  00h    WORD    0009h (length of following data)
  6116.  02h    WORD    top-left coordinate of character block
  6117.  04h    WORD    width of block
  6118.  06h    DWORD    -> block of DWORDs describing characters (see #2465)
  6119.  0Ah    BYTE    length of block in characters
  6120. SeeAlso: #2462
  6121.  
  6122. Bitfields for one character in ABLOCKMFI character block:
  6123. Bit(s)    Description    (Table 2465)
  6124.  7-0    reserved
  6125.  9-8    low two bits of font number
  6126.  12    transparent background
  6127.  13    overstrike
  6128.  14    reverse video
  6129.  15    underscore
  6130.  19-16    foreground color attribute
  6131.  23-20    background color attribute
  6132.  31-24    character code
  6133.  
  6134. Format of ACURSOR parameter block:
  6135. Offset    Size    Description    (Table 2466)
  6136.  00h    WORD    0002h (length of following data)
  6137.  02h    BYTE    column (0-based)
  6138.  03h    BYTE    row (0-based)
  6139. SeeAlso: #2469
  6140.  
  6141. Format of AERASE parameter block:
  6142. Offset    Size    Description    (Table 2467)
  6143.  00h    WORD    0005h (length of following data)
  6144.  02h    BYTE    left-most column (0-based)
  6145.  03h    BYTE    top-most row (0-based)
  6146.  04h    BYTE    rectangle's width in character cells
  6147.  05h    BYTE    rectangle's height in character cells
  6148.  06h    BYTE    background color (bits 7-4)
  6149. SeeAlso: #2468
  6150.  
  6151. Format of ASCROLL parameter block:
  6152. Offset    Size    Description    (Table 2468)
  6153.  00h    WORD    0006h (length of following data)
  6154.  02h    BYTE    left-most column (0-based) of source
  6155.  03h    BYTE    top-most row (0-based) of source
  6156.  04h    BYTE    rectangle's width in character cells
  6157.  05h    BYTE    rectangle's height in character cells
  6158.  06h    BYTE    left-most column (0-based) of destination
  6159.  07h    BYTE    top-most row (0-based) of destination
  6160. SeeAlso: #2467
  6161.  
  6162. Format of ASCUR parameter block:
  6163. Offset    Size    Description    (Table 2469)
  6164.  00h    WORD    0003h (length of following data)
  6165.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  6166.  03h    BYTE    cursor stop line
  6167.  04h    BYTE    cursor attribute
  6168.         00h normal
  6169.         01h hidden
  6170.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  6171.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  6172. Notes:    no cursor is shown if the start line is greater than the stop line
  6173.     the alphanumeric cursor is hidden after each mode change
  6174. SeeAlso: #2466,INT 10/AH=01h
  6175.  
  6176. Format of ASFONT parameter block:
  6177. Offset    Size    Description    (Table 2470)
  6178.  00h    WORD    0005h (length of following data)
  6179.  02h    BYTE    font number (0-3)
  6180.  03h    DWORD    -> character set definition block (see #2471)
  6181.  
  6182. Format of 8514/A character set definition block:
  6183. Offset    Size    Description    (Table 2471)
  6184.  00h    BYTE    reserved
  6185.  01h    BYTE    type of character set
  6186.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  6187.  02h    BYTE    reserved
  6188.  03h    DWORD    reserved
  6189.  07h    BYTE    cell width in pixels
  6190.  08h    BYTE    cell height in pixels
  6191.  09h    BYTE    reserved
  6192.  0Ah    WORD    cell size in bytes
  6193.  0Ch    WORD    flags
  6194.         bit 15: reserved (0)
  6195.         bit 14: color bitmap
  6196.         bit 13: proportional spacing
  6197.  0Eh    DWORD    -> index table
  6198.  12h    DWORD    -> character width table
  6199.  16h    BYTE    initial code point
  6200.  17h    BYTE    final code point
  6201.  18h    DWORD    -> character definition table
  6202.  1Ch    WORD    reserved
  6203.  1Eh    DWORD    -> second character definition table
  6204.  22h    WORD    reserved
  6205.  24h    DWORD    -> third character definition table
  6206.  
  6207. Format of AXLATE parameter block:
  6208. Offset    Size    Description    (Table 2472)
  6209.  00h    WORD    0080h (length of following data)
  6210.  02h 64 BYTEs    character foreground translation table
  6211.  42h 64 BYTEs    character background translation table
  6212.  
  6213. Format of HBAR parameter block:
  6214. Offset    Size    Description    (Table 2473)
  6215.  00h    WORD    0000h (no data following)
  6216. SeeAlso: #2485
  6217.  
  6218. Format of HBBC parameter block:
  6219. Offset    Size    Description    (Table 2474)
  6220.  00h    WORD    0010h (length of following data)
  6221.  02h    WORD    data format
  6222.         0000h across-the-plane copy (color expansion)
  6223.         0008h through-the-plane copy
  6224.  04h    WORD    data rectangle's width
  6225.  06h    WORD    data rectangle's height
  6226.  08h    BYTE    source bit plane number (across-the-plane copies only)
  6227.  09h    BYTE    reserved
  6228.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  6229.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6230.           display memory
  6231. Note:    copies data from one location in video memory to another
  6232. SeeAlso: #2475
  6233.  
  6234. Format of HBBCHN parameter block:
  6235. Offset    Size    Description    (Table 2475)
  6236.  00h    WORD    0006h (length of following data)
  6237.  02h    DWORD    -> data buffer in system memory
  6238.  06h    WORD    number of bytes to transfer
  6239. Note:    this function performs the actual data transfer for a bitBLT set up
  6240.       with HBBR, HBBW, or HCBBW
  6241. SeeAlso: #2474,#2476,#2477,#2478
  6242.  
  6243. Format of HBBR parameter block:
  6244. Offset    Size    Description    (Table 2476)
  6245.  00h    WORD    000Ch or 0014h (length of following data)
  6246.  02h    WORD    data format
  6247.         0000h across-the-plane copy (color expansion)
  6248.         0008h through-the-plane copy
  6249.  04h    WORD    data rectangle's width
  6250.  06h    WORD    data rectangle's height
  6251.  08h    BYTE    source bit plane number
  6252.  09h    BYTE    reserved
  6253.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6254.           display memory
  6255. ---optional---
  6256.  0Eh    WORD    sub-rectangle left margin in pixels
  6257.  10h    WORD    sub-rectangle top margin in pixels
  6258.  12h    WORD    sub-rectangle width
  6259.  14h    WORD    sub-rectangle height
  6260. SeeAlso: #2475,#2476,#2478
  6261.  
  6262. Format of HBBW parameter block:
  6263. Offset    Size    Description    (Table 2477)
  6264.  00h    WORD    000Ah or 0012h (length of following data)
  6265.  02h    WORD    data format
  6266.         0000h across-the-plane copy (color expansion)
  6267.         0008h through-the-plane copy
  6268.  04h    WORD    data rectangle's width
  6269.  06h    WORD    data rectangle's height
  6270.  08h  2 WORDs    X,Y coordinates of destination in display memory
  6271. ---optional---
  6272.  0Ch    WORD    sub-rectangle left margin in pixels
  6273.  0Eh    WORD    sub-rectangle top margin in pixels
  6274.  10h    WORD    sub-rectangle width
  6275.  12h    WORD    sub-rectangle height
  6276. SeeAlso: #2475,#2477,#2478
  6277.  
  6278. Format of HCBBW parameter block:
  6279. Offset    Size    Description    (Table 2478)
  6280.  00h    WORD    0006h or 000Eh (length of following data)
  6281.  02h    WORD    data format
  6282.         0000h across-the-plane copy (color expansion)
  6283.         0008h through-the-plane copy
  6284.  04h    WORD    data rectangle's width
  6285.  06h    WORD    data rectangle's height
  6286. ---optional---
  6287.  08h    WORD    sub-rectangle left margin in pixels
  6288.  0Ah    WORD    sub-rectangle top margin in pixels
  6289.  0Ch    WORD    sub-rectangle width
  6290.  0Eh    WORD    sub-rectangle height
  6291. SeeAlso: #2475,#2476,#2477
  6292.  
  6293. Format of HCCHST parameter block:
  6294. Offset    Size    Description    (Table 2479)
  6295.  00h    WORD    length of following data
  6296.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6297. SeeAlso: #2480
  6298.  
  6299. Format of HCHST parameter block:
  6300. Offset    Size    Description    (Table 2480)
  6301.  00h    WORD    length of following data
  6302.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  6303.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6304. SeeAlso: #2479
  6305.  
  6306. Format of HCLINE parameter block:
  6307. Offset    Size    Description    (Table 2481)
  6308.  00h    WORD    length of following data (multiple of 4)
  6309.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6310. Notes:    the first line segment is drawn beginning at the current position
  6311.     on completion, the current position is set to the last point drawn
  6312. SeeAlso: #2491,#2502,#2484
  6313.  
  6314. Format of HCLOSE parameter block:
  6315. Offset    Size    Description    (Table 2482)
  6316.  00h    WORD    0001h (length of following data)
  6317.  01h    BYTE    (ret) return code
  6318. SeeAlso: #2493
  6319.  
  6320. Format of HCMRK parameter block:
  6321. Offset    Size    Description    (Table 2483)
  6322.  00h    WORD    length of following data
  6323.  02h 2N WORDs    X,Y of N points
  6324. Note:    draws N+1 marker symbols, the first one at the current position
  6325. SeeAlso: #2492
  6326.  
  6327. Format of HCRLINE parameter block:
  6328. Offset    Size    Description    (Table 2484)
  6329.  00h    WORD    length of following data (multiple of 4)
  6330.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  6331.           (current position for first point) for each of N points in
  6332.           polyline
  6333. Notes:    the first line segment is drawn beginning at the current position
  6334.     on completion, the current position is set to the last point drawn
  6335. SeeAlso: #2491,#2481,#2502
  6336.  
  6337. Format of HEAR parameter block:
  6338. Offset    Size    Description    (Table 2485)
  6339.  00h    WORD    0001h (length of following data)
  6340.  02h    BYTE    area definition flags
  6341.         bits 7-6: End Area type
  6342.             00 complete, perform fill
  6343.             01 suspend definition
  6344.             10 complete, but don't fill
  6345. SeeAlso: #2473
  6346.  
  6347. Format of HEGS parameter block:
  6348. Offset    Size    Description    (Table 2486)
  6349.  00h    WORD    0000h (no data following)
  6350.  
  6351. Format of HESC parameter block:
  6352. Offset    Size    Description    (Table 2487)
  6353.  00h    WORD    0000h (no data following)
  6354.  
  6355. Format of HINIT parameter block:
  6356. Offset    Size    Description    (Table 2488)
  6357.  00h    WORD    0002h (length of following data)
  6358.  02h    WORD    segment of task buffer
  6359. SeeAlso: #2527
  6360.  
  6361. Format of HINT parameter block:
  6362. Offset    Size    Description    (Table 2489)
  6363.  00h    WORD    0004h (length of following data)
  6364.  02h    DWORD    interrupt/event identifier
  6365.         bit 31: vertical blanking
  6366.  
  6367. Format of HLDPAL parameter block:
  6368. Offset    Size    Description    (Table 2490)
  6369.  00h    WORD    000Ah (length of following data)
  6370.  02h    BYTE    palette ID (00h = user, 01h = default)
  6371.  03h    BYTE    reserved
  6372.  04h    WORD    number of first palette entry
  6373.  06h    WORD    number of entries
  6374.  08h    DWORD    -> palette entries
  6375. SeeAlso: #2524
  6376.  
  6377. Format of HLINE parameter block:
  6378. Offset    Size    Description    (Table 2491)
  6379.  00h    WORD    length of following data (multiple of 4)
  6380.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6381. Note:    on completion, the current position is set to the last point drawn
  6382. SeeAlso: #2481,#2502,#2484
  6383.  
  6384. Format of HMRK parameter block:
  6385. Offset    Size    Description    (Table 2492)
  6386.  00h    WORD    length of following data (multiple of 4)
  6387.  02h 2N WORDs    X,Y for N points
  6388. SeeAlso: #2483
  6389.  
  6390. Format of HOPEN parameter block:
  6391. Offset    Size    Description    (Table 2493)
  6392.  00h    WORD    0003h (length of following data)
  6393.  01h    BYTE    initialization flags
  6394.         bit 6: don't load default palette
  6395.         bit 7: clear bitplanes
  6396.  02h    BYTE    mode type (see #2494)
  6397.  03h    BYTE    (ret) return code
  6398.         bit 7: no adapter (hardware mismatch)
  6399. SeeAlso: #2482
  6400.  
  6401. (Table 2494)
  6402. Values for 8514/A display mode:
  6403.  0000h    12x20 characters, 1024x768
  6404.  0001h    8x14 characters, 640x480
  6405.  0002h    8x14 characters, 1024x768
  6406.  0003h    7x15 characters, 1024x768
  6407.  
  6408. Format of HQCOORD parameter block:
  6409. Offset    Size    Description    (Table 2495)
  6410.  00h    WORD    0004h (length of following data)
  6411.  02h    BYTE    (ret) coordinate format
  6412.         bits 7-4: bytes per coordinate
  6413.         bits 3-0: fraction bytes in coordinate
  6414.  03h    BYTE    (ret) relative coordinate format
  6415.         bits 7-4: bytes per coordinate
  6416.         bits 3-0: fraction bytes in coordinate
  6417.  04h    BYTE    (ret) number of dimensions (2-4)
  6418.  05h    BYTE    (ret) test results
  6419.         bit 7: coordinate format not supported
  6420.         bit 6: relative coordinate format not supported
  6421.         bit 5: specified dimension not supported
  6422.  
  6423. Format of HQCP parameter block:
  6424. Offset    Size    Description    (Table 2496)
  6425.  00h    WORD    0004h (length of following data)
  6426.  02h    WORD    (ret) current X position
  6427.  04h    WORD    (ret) current Y position
  6428.  
  6429. Format of HQDFPAL parameter block:
  6430. Offset    Size    Description    (Table 2497)
  6431.  00h    WORD    0040h (length of following data)
  6432.  02h 16    DWORDs    (ret) color index values
  6433. Note:    the default palette is set to match the default EGA/VGA 16-color
  6434.       palettes
  6435.  
  6436. Format of HQDPS parameter block:
  6437. Offset    Size    Description    (Table 2498)
  6438.  00h    WORD    0006h (length of following data)
  6439.  02h    WORD    (ret) size of data buffer in bytes
  6440.  04h    WORD    (ret) stack size in bytes
  6441.  06h    WORD    (ret) size of palette save buffer in bytes
  6442.  
  6443. Format of HQMODE parameter block:
  6444. Offset    Size    Description    (Table 2499)
  6445.  00h    WORD    0012h (length of following data)
  6446.  02h    BYTE    current video mode (see #2494)
  6447.  03h    WORD    driver version
  6448.         bit 6: 80286/8086 CPU
  6449.         bit 5: 8 bit planes instead of 4 planes
  6450.         bits 4-0: hardware release number
  6451.  05h    BYTE    adapter type
  6452.         03h 8514/A
  6453.         04h XGA
  6454.  06h    BYTE    reserved (display type)
  6455.  07h    BYTE    character cell width
  6456.  08h    BYTE    character cell height
  6457.  09h    BYTE    number of bit planes
  6458.  0Ah    WORD    screen width (pixels)
  6459.  0Ch    WORD    screen height (pixels)
  6460.  0Eh    WORD    horizontal resolution (pixels/inch)
  6461.  10h    WORD    vertical resolution (pixels/inch)
  6462.  12h    BYTE    flag: 00h = monochrome, FFh = color
  6463.  13h    BYTE    intensity levels
  6464. SeeAlso: #2500
  6465.  
  6466. Format of HQMODES parameter block:
  6467. Offset    Size    Description    (Table 2500)
  6468.  00h    WORD    0021h (length of following data)
  6469.  02h    BYTE    (ret) adapter type
  6470.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  6471. SeeAlso: #2499
  6472.  
  6473. Format of HRECT parameter block:
  6474. Offset    Size    Description    (Table 2501)
  6475.  00h    WORD    0008h (legth of following data)
  6476.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  6477.  06h    WORD    rectangle's width
  6478.  08h    WORD    rectangle's height
  6479. Note:    the rectangle is filled using the current pattern, color, and mix
  6480.  
  6481. Format of HRLINE parameter block:
  6482. Offset    Size    Description    (Table 2502)
  6483.  00h    WORD    length of following data (multiple of 4)
  6484.  02h  2 WORDs    X,Y coordinates of starting point
  6485.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  6486.           for each of N points in polyline
  6487. Note:    on completion, the current position is set to the last point drawn
  6488. SeeAlso: #2491,#2481,#2484
  6489.  
  6490. Format of HRLPC parameter block:
  6491. Offset    Size    Description    (Table 2503)
  6492.  00h    WORD    0000h (no data following)
  6493. Note:    used for continuity of lines crossing scissors boundaries
  6494. SeeAlso: #2516
  6495.  
  6496. Format of HRPAL parameter block:
  6497. Offset    Size    Description    (Table 2504)
  6498.  00h    WORD    0300h (length of following data)
  6499.  02h 768 BYTEs    buffer containing previously-saved palette table
  6500. SeeAlso: #2524
  6501.  
  6502. Format of HSBCOL parameter block:
  6503. Offset    Size    Description    (Table 2505)
  6504.  00h    WORD    0004h (length of following data)
  6505.  02h    DWORD    color index for new background color
  6506. SeeAlso: #2509
  6507.  
  6508. Format of HSBP parameter block:
  6509. Offset    Size    Description    (Table 2506)
  6510.  00h    WORD    000Ch (length of following data)
  6511.  02h    DWORD    bitmask for graphics updates
  6512.  06h    DWORD    bitmask for alphanumeric updates
  6513.  0Ah    DWORD    display bitmask
  6514.  
  6515. Format of HSCELL parameter block:
  6516. Offset    Size    Description    (Table 2507)
  6517.  00h
  6518.  
  6519. Format of HSCMP parameter block:
  6520. Offset    Size    Description    (Table 2508)
  6521.  00h    WORD    0005h (length of following data)
  6522.  02h    DWORD    comparison color
  6523.  06h    BYTE    logical operation
  6524.         00h True
  6525.         01h pel > testcolor
  6526.         02h pel == testcolor
  6527.         03h pel < testcolor
  6528.         04h False
  6529.         05h pel >= testcolor
  6530.         06h pel <> testcolor
  6531.         07h pel <= testcolor
  6532.  
  6533. Format of HSCOL parameter block:
  6534. Offset    Size    Description    (Table 2509)
  6535.  00h    WORD    0004h (length of following data)
  6536.  02h    DWORD    color index for new foreground color
  6537. SeeAlso: #2505
  6538.  
  6539. Format of HSCOORD parameter block:
  6540. Offset    Size    Description    (Table 2510)
  6541.  00h    WORD    0003h (length of following data)
  6542.  02h    BYTE    coordinate format
  6543.         bits 7-4: bytes per coordinate
  6544.         bits 3-0: fraction bytes in coordinate
  6545.  03h    BYTE    relative coordinates format
  6546.         bits 7-4: bytes per coordinate
  6547.         bits 3-0: fraction bytes in coordinate
  6548.  04h    BYTE    number of dimensions (2-4)
  6549.  
  6550. Format of HSCP parameter block:
  6551. Offset    Size    Description    (Table 2511)
  6552.  00h    WORD    0004h (length of following data)
  6553.  02h  2 WORDs    X,Y or coordinate for new current position
  6554.  
  6555. Format of HSCS parameter block:
  6556. Offset    Size    Description    (Table 2512)
  6557.  00h    WORD    0004h (length of following data)
  6558.  02h    DWORD    -> character set definition
  6559.  
  6560. Format of HSGQ parameter block:
  6561. Offset    Size    Description    (Table 2513)
  6562.  00h    WORD    0002h (length of following data)
  6563.  02h    WORD    quality settings (see #2515)
  6564.  
  6565. Format of HSHS parameter block:
  6566. Offset    Size    Description    (Table 2514)
  6567.  00h    WORD    0008h (length of following data)
  6568.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  6569.  04h    WORD    right edge
  6570.  06h    WORD    top edge
  6571.  08h    WORD    bottom edget
  6572.  
  6573. Bitfields for 8514/A quality settings:
  6574. Bit(s)    Description    (Table 2515)
  6575.  15    reserved
  6576.  14    high precision
  6577.  13    reserved
  6578.  12-11    pel code
  6579.     00 not drawn
  6580.     01 drawn
  6581.     02 conditional on overpainting/mixes
  6582.  10    don't close areas to be filed
  6583.  9-0    reserved
  6584.  
  6585. Format of HSLPC parameter block:
  6586. Offset    Size    Description    (Table 2516)
  6587.  00h    WORD    0000h (no data following)
  6588. Note:    used for continuity of lines crossing scissors boundaries
  6589. SeeAlso: #2503
  6590.  
  6591. Format of HSLT parameter block:
  6592. Offset    Size    Description    (Table 2517)
  6593.  00h    WORD    0006h (length of following data)
  6594.  02h    BYTE    line type (see #2518)
  6595.  03h    BYTE    reserved
  6596.  04h    DWORD    -> user line-type definition (if user type)
  6597. SeeAlso: #2519
  6598.  
  6599. (Table 2518)
  6600. Values for 8514/A line type:
  6601.  00h    user line type
  6602.  01h    dotted
  6603.  02h    short dashes
  6604.  03h    dash-dot
  6605.  04h    double dotted
  6606.  05h    dashed
  6607.  06h    dash double dot
  6608.  07h    solid
  6609.  08h    invisible
  6610. SeeAlso: #2517
  6611.  
  6612. Format of HSLW parameter block:
  6613. Offset    Size    Description    (Table 2519)
  6614.  00h    WORD    0001h (length of following data)
  6615.  02h    BYTE    width of line in pixels
  6616. SeeAlso: #2517
  6617.  
  6618. Format of HSMODE parameter block:
  6619. Offset    Size    Description    (Table 2520)
  6620.  00h    WORD    0001h (length of following data)
  6621.  02h    BYTE    new display mode number (see #2494)
  6622.  
  6623. Format of HSMRK paramter block:
  6624. Offset    Size    Description    (Table 2521)
  6625.  00h    WORD    000Eh (length of following data)
  6626.  02h    BYTE    cell width
  6627.  03h    BYTE    cell height
  6628.  04h    BYTE    flags
  6629.  05h    BYTE    reserved
  6630.  06h    WORD    length of marker symbol
  6631.  08h    DWORD    -> image definition data
  6632.  0Ch    DWORD    -> color definition data
  6633. SeeAlso: #2525
  6634.  
  6635. Format of HSMX parameter block:
  6636. Offset    Size    Description    (Table 2522)
  6637.  00h    WORD    0002h (length of following data)
  6638.  02h    BYTE    foreground mix (see #2523)
  6639.  03h    BYTE    background mix (see #2523)
  6640.  
  6641. (Table 2523)
  6642. Values for 8514/A mix:
  6643.  00h    retain previous mix
  6644.  01h    source OR destination
  6645.  02h    source
  6646.  04h    source XOR destination
  6647.  05h    leave as-is
  6648.  06h    max(source,destination)
  6649.  07h    min(source,destination)
  6650.  08h    source+destination (clipped)
  6651.  09h    destination-source (clipped to zero)
  6652.  0Ah    source-destination (clipped to zero)
  6653.  0Bh    average source and destination
  6654.  10h    zero destination
  6655.  11h    source AND destination
  6656.  12h    source AND NOT destination
  6657.  13h    source
  6658.  14h    NOT source AND destination
  6659.  15h    leave as-is
  6660.  16h    source XOR destination
  6661.  17h    source OR destination
  6662.  18h    NOT source AND NOT destination
  6663.  19h    NOT (source XOR destination)
  6664.  1Ah    NOT destination
  6665.  1Bh    source OR NOT destination
  6666.  1Ch    NOT source
  6667.  1Dh    NOT source OR destination
  6668.  1Eh    NOT source OR NOT destination
  6669.  1Fh    set all bits of destination
  6670.  
  6671. Format of HSPAL parameter block:
  6672. Offset    Size    Description    (Table 2524)
  6673.  00h    WORD    0300h (length of following data)
  6674.  02h 768 BYTEs    buffer for palette table
  6675. SeeAlso: #2490,#2504
  6676.  
  6677. Format of HSPATT parameter block:
  6678. Offset    Size    Description    (Table 2525)
  6679.  00h    WORD    000Eh (length of following data)
  6680.  02h    BYTE    cell width
  6681.  03h    BYTE    cell height
  6682.  04h    BYTE    flags
  6683.  05h    BYTE    reserved
  6684.  06h    WORD    length of marker symbol
  6685.  08h    DWORD    -> image definition data
  6686.  0Ch    DWORD    -> color definition data
  6687. SeeAlso: #2521,#2526
  6688.  
  6689. Format of HSPATTO parameter block:
  6690. Offset    Size    Description    (Table 2526)
  6691.  00h    WORD    0004h (length of following data)
  6692.  02h  2 WORDs    X,Y of pattern reference point (origin)
  6693. SeeAlso: #2525
  6694.  
  6695. Format of HSYNC parameter block:
  6696. Offset    Size    Description    (Table 2527)
  6697.  00h    WORD    0002h (length of following data)
  6698.  02h    WORD    segment of task state buffer
  6699. SeeAlso: #2488
  6700.  
  6701. Format of HXLATE parameter block:
  6702. Offset    Size    Description    (Table 2528)
  6703.  00h    WORD    0020h (length of following data)
  6704.  02h 32 BYTEs    color index table
  6705. --------V-7F0105-----------------------------
  6706. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  6707.     AX = 0105h
  6708. Return: CF set on error
  6709.     CF clear if successful
  6710.         CX:DX -> array of FAR pointers to entry points (see #2461)
  6711. Note:    this API is a superset of the 8514/A Adapter Interface
  6712.       (see AX=0105h"HDILOAD")
  6713. --------V-7F0106-----------------------------
  6714. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  6715.     AX = 0106h
  6716. Return: AX = 0105h if successfully unloaded
  6717. SeeAlso: AX=0105h
  6718. --------N-7F02-------------------------------
  6719. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  6720.     AH = 02h
  6721.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  6722. Return: AL = status (see #2455)
  6723.     AH = semaphore owner if status=02h
  6724. SeeAlso: AH=00h,AH=01h,AH=42h
  6725. --------T-7F02-------------------------------
  6726. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  6727.     AH = 02h
  6728. Return: ???
  6729. Desc:    yields CPU to other tasks
  6730. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  6731. --------N-7F02-------------------------------
  6732. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  6733.     AH = 02h
  6734.     AL = stream number (01h-40h)
  6735.     CX = length of frame
  6736.     ES:SI -> frame to be sent
  6737. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  6738. --------f-7F0200-----------------------------
  6739. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  6740.     AX = 0200h
  6741. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  6742. --------N-7F03-------------------------------
  6743. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  6744.     AH = 03h
  6745. Return: AL = user number
  6746.     AH = machine number (MW386)
  6747. Note:    this function call is the recommended method for a CPU-bound process to
  6748.       prevent its priority from being lowered
  6749. SeeAlso: AH=04h,AH=05h,AH=A1h
  6750. --------N-7F03-------------------------------
  6751. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  6752.     AH = 03h
  6753.     AL = stream number (01h-40h)
  6754.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  6755.           bytes is usually sufficient)
  6756. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  6757.     CX = length of received frame
  6758. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  6759. --------N-7F04-------------------------------
  6760. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  6761.     AH = 04h
  6762. Return: AL = total number of users on currrent machine (MW386)
  6763.     AL = number of slaves on system (NTNX)
  6764. SeeAlso: AH=03h
  6765. --------N-7F04-------------------------------
  6766. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  6767.     AH = 04h
  6768.     AL = stream number (01h-40h)
  6769. Return: CX = state (0000h disconnected, 0001h connected)
  6770.     DX = delta state (0000h no change, 0001h changed since last check)
  6771. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  6772. --------N-7F05-------------------------------
  6773. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  6774.     AH = 05h
  6775.     AL = function
  6776.         00h lock system (disable slave services)
  6777.         01h unlock system
  6778.         02h enable spooler
  6779.         03h disable spooler
  6780.         04h enable slave timer update
  6781.         05h disable slave timer update
  6782.         06h enable form feeds
  6783.         07h disable form feeds
  6784. SeeAlso: INT 17/AH=A4h
  6785. --------N-7F05-------------------------------
  6786. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  6787.     AH = 05h
  6788.     DX:DI -> buffer for user information record (see #2529)
  6789. Notes:    MW386 provides this function for backward compatibility only, and sets
  6790.       many of the fields to zero because they are meaningless under MW386
  6791.     this function has no effect when called by the host (user 0)
  6792. SeeAlso: AH=03h
  6793.  
  6794. Format of Alloy user information record:
  6795. Offset    Size    Description    (Table 2529)
  6796.  00h    WORD    segment of video RAM
  6797.  02h    WORD    segment of secondary copy of video RAM
  6798.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  6799.         flag nonzero if update needed
  6800.  06h    WORD    video NMI enable port
  6801.         (not used by MW386, set to 0000h)
  6802.  08h    WORD    video NMI disable port
  6803.         (not used by MW386, set to 0000h)
  6804.  0Ah    BYTE    processor type
  6805.         00h 8088
  6806.         01h V20
  6807.         02h 8086
  6808.         03h V30
  6809.         06h 80386
  6810.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  6811.         (not used by MW386, set to 0000h)
  6812.  0Dh    WORD    offset of terminal driver
  6813.         (not used by MW386, set to 0000h)
  6814.  0Fh    BYTE    port for console I/O
  6815.         (not used by MW386, set to 0000h)
  6816.  10h    WORD    offset of processor communication busy flag
  6817.         bit 7 set when slave communicating with host
  6818.  12h    WORD    pointer to FAR NX system call
  6819.         (not used by MW386, set to 0000h)
  6820.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  6821.  16h    WORD    offset of command/status word
  6822.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  6823.         nonzero if screen must be repainted
  6824.  1Ah    WORD    offset of screen repaint flag
  6825.  1Ch    WORD    pointer to NEAR NX system call
  6826.         (not used by MW386, set to 0000h)
  6827.  1Eh    WORD    offset for intercept flags
  6828.         (not used by MW386, set to 0000h)
  6829.         intercept flag = FFh if MS-DOS intercepts should be disabled
  6830.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  6831.         lock flag = FFh if backgrnd screen updates should be suspended
  6832.  22h 26 BYTEs    reserved
  6833. --------N-7F05-------------------------------
  6834. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  6835.     AH = 05h
  6836.     AL = stream number (01h-40h)
  6837. Note:    this function must be called in order to receive a report of another
  6838.       status change
  6839. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  6840. --------N-7F06-------------------------------
  6841. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  6842.     AH = 06h
  6843.     AL = drive number (1=A:, 2=B:, etc)
  6844.     ES:DI -> drive info record (see #2530)
  6845. Return: AX = status
  6846.         0000h successful
  6847.         ES:DI buffer filled
  6848.         0001h not shared drive
  6849.  
  6850. Format of Alloy drive info record:
  6851. Offset    Size    Description    (Table 2530)
  6852.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  6853.  02h    WORD    segment of allocation map (owner table)
  6854.         one byte per FAT entry, containing user ID owning that entry
  6855.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  6856.  06h    WORD    pointer to configuration file
  6857.  08h    WORD    total number of clusters
  6858.  0Ah    WORD    bytes per sector
  6859.  0Ch    WORD    sectors per cluster
  6860.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  6861. --------N-7F06-------------------------------
  6862. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  6863.     AH = 06h
  6864.     DL = drive number (1=A:,2=B:,etc)
  6865.     CX = number of clusters to allocate
  6866. Return: AH = status
  6867.         00h successful
  6868.         CX = number of clusters still free
  6869.         10h invalid shared drive request
  6870.         CL = first and second shared drives
  6871.         11h invalid cluster count (must be 01h-FFh)
  6872. --------N-7F06-------------------------------
  6873. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  6874.     AH = 06h
  6875.     AL = stream number (01h-40h)
  6876.     CX = subfunction
  6877.         0000h connect to node
  6878.         DL bit 0: use BBS callsign instead of Node Call
  6879.         0001h connect to node
  6880.         use BBS Call if APPLMASK=1
  6881.         0002h disconnect
  6882.         0003h return user to node
  6883. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  6884. --------N-7F07-------------------------------
  6885. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  6886.     AH = 07h
  6887. Return: ES:DI -> shared drive list (see #2531)
  6888. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  6889.       be returned as shared
  6890.  
  6891. Format of Alloy shared drive list:
  6892. Offset    Size    Description    (Table 2531)
  6893.  00h    BYTE    string length
  6894.  01h    BYTE    number of shared drives
  6895.  02h  N BYTEs    one byte per shared drive
  6896. --------N-7F07-------------------------------
  6897. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  6898.     AH = 07h
  6899.     AL = stream number (01h-40h)
  6900. Return: BX = number of pending receive frames
  6901.     CX = number of unacknowledged sent frames
  6902.     DX = number of buffers available
  6903. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  6904. --------N-7F08-------------------------------
  6905. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  6906.     AH = 08h
  6907.     CL = function
  6908.         00h get original interrupt vector
  6909.         01h get Network Executive interrrupt
  6910.     AL = interrupt number
  6911.     DX:SI -> DWORD to hold interrupt vector
  6912. Return: AL = status
  6913.         00h successful
  6914.         01h interrupt vector not used by network executive
  6915.         02h invalid subfunction
  6916. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  6917.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  6918. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  6919. --------N-7F08--CL02-------------------------
  6920. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  6921.     AH = 08h
  6922.     CL = 02h
  6923.     DX = timeout in seconds
  6924. Return: AL = status
  6925.         00h successful
  6926.         02h invalid subfunction
  6927. --------N-7F08-------------------------------
  6928. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  6929.     AH = 08h
  6930.     AL = stream number (01h-40h)
  6931. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  6932.     ---v4.05+ ---
  6933.     AL = radio port to which channel is connected (level 2)
  6934.     AH = session type (see #2532)
  6935.     BX = L2 paclen for session
  6936.     CX = maximum frame size
  6937.     DX = L4 window size or 0000h if not L4 circuit
  6938. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  6939.       John Wiseman which allows a PC to act as a node in an AX.25 network
  6940. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  6941.  
  6942. Bitfields for G8BPQ session type:
  6943. Bit(s)    Description    (Table 2532)
  6944.  0    L2LINK
  6945.  1    SESSION
  6946.  2    UPLINK
  6947.  3    DOWNLIND
  6948.  5    BPQHOST
  6949. --------T-7F09-------------------------------
  6950. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  6951.     AH = 09h
  6952.     AL = priority (0-7)
  6953. Note:    the installation check consists of ensuring that the interrupt vector
  6954.       is not pointing at segment 0000h, then checking whether the byte
  6955.       at offset 0000h in the interrupt handler's segment is E9h
  6956. Index:    installation check;MultiLink Advanced
  6957. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  6958. --------N-7F09-------------------------------
  6959. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  6960.     AH = 09h
  6961.     AL = application
  6962.         00h node
  6963.         01h BBS
  6964.         02h HOST
  6965.         03h SYSOP
  6966.     BL = what to get (00h callsign, 01h application name)
  6967.     ES:SI -> buffer for callsign/name string
  6968. Return: CX = length of returned string
  6969. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  6970. --------N-7F09-------------------------------
  6971. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  6972.     AH = 09h
  6973.     CL = function
  6974.         00h enable checking of RTNX.MUD file
  6975.         01h disable RTNX.MUD checking
  6976. --------N-7F09--CL02-------------------------
  6977. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  6978.     AH = 09h
  6979.     CL = 02h
  6980. Note:    in dedicated mode, the host will only poll for I/O requests from the
  6981.       slave processors, and not provide workstation services
  6982. --------N-7F09--CL03-------------------------
  6983. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  6984.     AH = 09h
  6985.     CL = 03h
  6986.     AL = default interrupt number (67h,7Fh,etc)
  6987. Return: CL = actual interrupt which handles specified interrupt's calls
  6988. SeeAlso: AH=08h
  6989. --------N-7F0A--CL00-------------------------
  6990. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  6991.     AH = 0Ah
  6992.     CL = 00h
  6993.     ES:DI -> buffer for system flags (see #2533)
  6994. Return: ES:DI buffer filled
  6995. Notes:    on a slave, only the NX_Busy flag is returned
  6996.     all three flags are at fixed positions, so this function only needs to
  6997.       be called once
  6998.     an interrupt handler should only perform DOS or device accesses when
  6999.       all three flags are 00h
  7000.  
  7001. Format of Alloy system flags:
  7002. Offset    Size    Description    (Table 2533)
  7003.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  7004.  04h    DWORD    pointer to device driver busy flag
  7005.  08h    DWORD    pointer to InTimer flag
  7006. --------N-7F0A-------------------------------
  7007. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  7008.     AH = 0Ah
  7009.     AL = radio port
  7010.     ES:SI -> buffer containing data to be sent
  7011.     CX = number of bytes to send
  7012. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  7013. --------T-7F0A-------------------------------
  7014. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  7015.     AH = 0Ah
  7016.     AL = task-switch status
  7017.         00h normal (disable task when it repeatedly polls keyboard)
  7018.         01h disable task until keyboard input available
  7019.         FFh never disable task
  7020. Return: ???
  7021. SeeAlso: AH=09h"MultiLink"
  7022. --------N-7F0B--CL02-------------------------
  7023. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  7024.     AH = 0Bh
  7025.     CL = 02h
  7026.     AL = slave ID number
  7027.     CH = DOS to activate
  7028.         00h graphics DOS
  7029.         01h character DOS
  7030. Return: AL = status
  7031.         00h successful
  7032.         01h nothing done, proper DOS type already loaded
  7033. --------N-7F0B-------------------------------
  7034. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  7035.     AH = 0Bh
  7036.     ES:DI -> buffer for received data (see #2534)
  7037. Return: CX = number of bytes received
  7038. Note:    the specified buffer must be large enough to receive a full frame
  7039. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  7040.  
  7041. Format of G8BPQ received data:
  7042. Offset    Size    Description    (Table 2534)
  7043.  00h    WORD    internal control information
  7044.  02h    BYTE    port number (bit 7 set if transmitted frame)
  7045.  03h    WORD    frame length including this header
  7046.  05h    var    user data
  7047. --------N-7F0C-------------------------------
  7048. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  7049.     AH = 0Ch
  7050.     DX = function
  7051.         0001h update beacon text
  7052.         CX = length of data
  7053.         ES:SI -> data to be sent in beacons
  7054.         0002h (v4.07+) initiate NODES broadcast
  7055. SeeAlso: AH=09h"G8BPQ"
  7056. --------N-7F0D00-----------------------------
  7057. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  7058.     AX = 0D00h
  7059. Return: AL = first available stream number, or FFh if none free
  7060. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  7061. --------N-7F0D-------------------------------
  7062. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  7063.     AH = 0Dh
  7064.     AL = stream number (01h-FFh)
  7065.     CL = function
  7066.         01h allocate stream
  7067.         Return: CX = status (0000h successful, else already in use)
  7068.         02h deallocate stream
  7069. SeeAlso: AX=0D00h
  7070. --------N-7F0F-------------------------------
  7071. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  7072.     AH = 0Fh
  7073. Return: AX = time marker (clock ticks modulo 64K)
  7074. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  7075.       John Wiseman which allows a PC to act as a node in an AX.25 network
  7076. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  7077. --------N-7F10--CL00-------------------------
  7078. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  7079.     AH = 10h
  7080.     CL = 00h
  7081.     AL = channel number
  7082.     DX:DI -> channel buffer
  7083. Return: AL = status (00h-03h,0Dh) (see #2535)
  7084. Note:    may not be invoked from within a hardware interrupt handler
  7085. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  7086.  
  7087. (Table 2535)
  7088. Values for Alloy function status:
  7089.  00h    successful
  7090.  01h    busy
  7091.  02h    channel range error (not 00h-3Fh)
  7092.  03h    invalid subfunction
  7093.  0Ah    channel not open
  7094.  0Ch    channel already locked
  7095.  0Dh    unable to open
  7096. --------N-7F10--CL01-------------------------
  7097. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  7098.     AH = 10h
  7099.     CL = 01h
  7100.     AL = channel number
  7101. Return: AL = status (00h-03h,0Ah) (see #2535)
  7102. Note:    may not be invoked from within a hardware interrupt handler
  7103. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  7104. --------N-7F10--CL02-------------------------
  7105. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  7106.     AH = 10h
  7107.     CL = 02h
  7108.     AL = channel number
  7109. Return: AL = status (00h-03h,0Ah,0Ch) (see #2535)
  7110. Note:    may not be invoked from within a hardware interrupt handler
  7111. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  7112. --------N-7F10--CL03-------------------------
  7113. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  7114.     AH = 10h
  7115.     CL = 03h
  7116.     AL = channel number
  7117. Return: AL = status (00h-03h,0Ah) (see #2535)
  7118. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  7119.       locked by receipt of a datagram
  7120.     may not be invoked from within a hardware interrupt handler
  7121. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  7122. --------N-7F10--CL04-------------------------
  7123. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  7124.     AH = 10h
  7125.     CL = 04h
  7126.     AL = channel number
  7127. Return: AL = status (00h-03h) (see #2535)
  7128. Notes:    unlocks buffer after received datagram has been processed
  7129.     may not be invoked from within a hardware interrupt handler
  7130. SeeAlso: AH=10h/CL=00h
  7131. --------N-7F10--CL05-------------------------
  7132. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  7133.     AH = 10h
  7134.     CL = 05h
  7135. Return: AL = status (00h-03h) (see #2535)
  7136. Notes:    clears all pending datagrams and clears buffer pointers before closing
  7137.       the channels
  7138.     may not be invoked from within a hardware interrupt handler
  7139. SeeAlso: AH=10h/CL=01h
  7140. --------N-7F10--CL06-------------------------
  7141. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  7142.     AH = 10h
  7143.     CL = 06h
  7144. Return: AL = status (00h-03h) (see #2535)
  7145. Note:    may not be invoked from within a hardware interrupt handler
  7146. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  7147. --------N-7F10--CL07-------------------------
  7148. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  7149.     AH = 10h
  7150.     CL = 07h
  7151. Return: AL = status (00h-03h) (see #2535)
  7152. Notes:    unlocks all locked channels which have no pending datagrams
  7153.     may not be invoked from within a hardware interrupt handler
  7154. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  7155. --------N-7F10--CL08-------------------------
  7156. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  7157.     AH = 10h
  7158.     CL = 08h
  7159.     DX = maximum channel number to lock
  7160. Return: AL = status (00h-03h) (see #2535)
  7161. Notes:    locks channels numbered 00h through the value in DX
  7162.     may not be invoked from within a hardware interrupt handler
  7163. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  7164. --------N-7F10--CL09-------------------------
  7165. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  7166.     AH = 10h
  7167.     CL = 09h
  7168.     DX = maximum channel number to unlock
  7169. Return: AL = status (00h-03h) (see #2535)
  7170. Notes:    unlocks channels numbered 00h through the value in DX
  7171.     may not be invoked from within a hardware interrupt handler
  7172. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  7173. --------N-7F11-------------------------------
  7174. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  7175.     AH = 11h
  7176.     DX:SI -> request block (see #2537)
  7177. Return: AL = status (see #2536)
  7178. Note:    if wildcard channel FFh used, actual channel number will be filled in
  7179. SeeAlso: AH=12h
  7180.  
  7181. (Table 2536)
  7182. Values for Alloy function status:
  7183.  00h    successful
  7184.  01h    busy
  7185.  02h    channel range error (not 00h-3Fh)
  7186.  03h    invalid subfunction
  7187.  0Ah    packet too large (or <2 bytes if NTNX)
  7188.  0Bh    can't send packet to itself
  7189.  0Ch    invalid number of destinations
  7190.  0Dh    destination channel number out of range
  7191.  0Eh    destination user is busy
  7192.  0Fh    destination user has locked channel
  7193.  10h    channel not open
  7194.  11h    no datagram server on destination (NTNX)
  7195.  
  7196. Format of Alloy request block:
  7197. Offset    Size    Description    (Table 2537)
  7198.  00h    DWORD    pointer to packet to send
  7199.  04h    WORD    packet size in bytes (1-4096)
  7200.  06h    BYTE    number of destinations for packet (max 1Fh)
  7201.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  7202.  26h 31 BYTEs    destination channels (FFh = first available channel)
  7203.  45h 31 BYTEs    return destination statuses
  7204. --------N-7F12-------------------------------
  7205. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  7206.     AH = 12h
  7207.     AL = channel number being acknowledged
  7208.     DI:DX = 32-bit status to return to sender
  7209. Return: AL = status (see #2538)
  7210. Note:    also unlocks the channel, allowing the next datagram to be received
  7211. SeeAlso: AH=11h,AH=15h/CL=04h
  7212.  
  7213. (Table 2538)
  7214. Values for Alloy function status:
  7215.  00h    successful
  7216.  01h    busy
  7217.  02h    channel range error (not 00h-3Fh)
  7218.  03h    invalid subfunction
  7219.  0Ah    channel not open
  7220.  0Bh    no message in channel
  7221.  0Ch    destination slave busy--retry (NTNX)
  7222.  0Dh    destination user not active
  7223.  0Eh    destination slave not active (NTNX)
  7224.  0Fh    destination disabled datagram service
  7225. --------V-7F1234-----------------------------
  7226. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  7227.     AX = 1234h
  7228. SeeAlso: AX=4321h
  7229. --------N-7F13--CL00-------------------------
  7230. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  7231.     AH = 13h
  7232.     CL = 00h
  7233. Note:    clears all pending datagrams and removes all channels opened in NTNX
  7234.       compatibility mode
  7235. --------N-7F14--CL00-------------------------
  7236. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  7237.     AH = 14h
  7238.     CL = 00h
  7239.     DX:DI -> application FAR receive service routine (see #2539)
  7240. Return: AL = status (00h-03h) (see #2538)
  7241. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7242.  
  7243. (Table 2539)
  7244. Values Alloy receive service routine is called with:
  7245.     DH = sender ID
  7246.     DL = channel with datagram
  7247.     interrupts disabled
  7248. Return: AL = response code
  7249.         00h leave buffer locked, set channel status, and repeat call later
  7250.         01h release channel buffer
  7251.         02h change buffer pointer to DX:DI
  7252.     AH,CX,DX,DI,SI may be destroyed
  7253. --------N-7F14--CL01-------------------------
  7254. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  7255.     AH = 14h
  7256.     CL = 01h
  7257.     DX:DI -> application FAR acknowledge service routine (see #2540)
  7258. Return: AL = status (00h-03h) (see #2538)
  7259. Note:    the service routine will be called as soon as an acknowledgment arrives
  7260. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  7261.  
  7262. (Table 2540)
  7263. Values Alloy acknowledge service routine is called with:
  7264.     DS:SI -> acknowledge structure (see #2544)
  7265. Return: AL = response code
  7266.         00h application busy, network executive should call again later
  7267.         01h acknowledge accepted
  7268.     AH,DX,SI may be destroyed
  7269. --------N-7F14--CL02-------------------------
  7270. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  7271.     AH = 14h
  7272.     CL = 02h
  7273.     AL = channel number
  7274.     DX:DI -> receive buffer
  7275. Return: AL = status (00h-03h) (see #2538)
  7276. Note:    may be called from within a receive ISR or when a datagram is pending
  7277. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  7278. --------N-7F14--CL03-------------------------
  7279. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  7280.     AH = 14h
  7281.     CL = 03h
  7282. Return: DX:DI -> current receive ISR
  7283. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  7284. --------N-7F14--CL04-------------------------
  7285. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  7286.     AH = 14h
  7287.     CL = 04h
  7288. Return: DX:DI -> current acknowledge ISR
  7289. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7290. --------N-7F14--CL05-------------------------
  7291. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  7292.     AH = 14h
  7293.     CL = 05h
  7294.     DX:DI -> buffer for busy structure (see #2541)
  7295. Return: DX:DI buffer filled
  7296.  
  7297. Format of Alloy busy structure:
  7298. Offset    Size    Description    (Table 2541)
  7299.  00h    DWORD    pointer to busy flag byte
  7300.  04h    WORD    fixed port address (FF00h)
  7301. --------N-7F15--CL00-------------------------
  7302. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  7303.     AH = 15h
  7304.     CL = 00h
  7305.     AL = channel number
  7306.     DX:DI -> status structure (see #2542)
  7307. Return: AL = status (00h-03h) (see #2538)
  7308. SeeAlso: AH=15h/CL=01h
  7309.  
  7310. Format of Alloy channel status structure:
  7311. Offset    Size    Description    (Table 2542)
  7312.  00h    BYTE    channel status
  7313.         bit 0: channel open
  7314.         bit 1: channel buffer contains received data
  7315.         bit 7: channel locked
  7316.  01h    BYTE    sender ID
  7317. --------N-7F15--CL01-------------------------
  7318. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  7319.     AH = 15h
  7320.     CL = 01h
  7321.     DX:DI -> full-channel structure (see #2543)
  7322. Return: AL = status
  7323.         00h successful
  7324.         01h busy
  7325.         0Ah no datagrams available
  7326. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  7327.       and NTNX return the oldest datagram
  7328. SeeAlso: AH=15h/CL=00h
  7329.  
  7330. Format of Alloy full-channel structure:
  7331. Offset    Size    Description    (Table 2543)
  7332.  00h    BYTE    number of channel with oldest datagram
  7333.  01h    BYTE    sender ID
  7334. --------N-7F15--CL02-------------------------
  7335. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  7336.     AH = 15h
  7337.     CL = 02h
  7338. Return: AH = number of channels available (40h for MW386)
  7339. Note:    the application may always assume at least 32 channels available
  7340. SeeAlso: AH=15h/CL=03h
  7341. --------N-7F15--CL03-------------------------
  7342. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  7343.     AH = 15h
  7344.     CL = 03h
  7345.     DX:DI -> WORD for return value
  7346. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  7347. SeeAlso: AH=15h/CL=02h
  7348. --------N-7F15--CL04-------------------------
  7349. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  7350.     AH = 15h
  7351.     CL = 04h
  7352.     DX:DI -> status structure (see #2544)
  7353. Return: AL = status
  7354.         00h successful
  7355.         DX:DI structure filled
  7356.         01h busy
  7357.         0Ah no acknowledgement has arrived
  7358. SeeAlso: AH=12h,AH=14h/CL=01h
  7359.  
  7360. Format of Alloy status structure:
  7361. Offset    Size    Description    (Table 2544)
  7362.  00h    BYTE    sender ID
  7363.  01h    BYTE    channel number
  7364.  02h  4 BYTEs    receiver status (see #2538)
  7365. --------N-7F16-------------------------------
  7366. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  7367.     AH = 16h
  7368.     DX:SI -> transfer structure (see #2545)
  7369. Return: AL = status
  7370.         00h successful
  7371.         0Ah source or destination out of range
  7372.         0Bh transfer kernal busy--try again
  7373. Notes:    this call transfers memory contents directly between users; both source
  7374.       and destination user IDs may differ from the caller's ID
  7375.     no segment wrap is allowed
  7376.  
  7377. Format of Alloy transfer structure:
  7378. Offset    Size    Description    (Table 2545)
  7379.  00h    WORD    bytes to transfer
  7380.  02h    BYTE    source ID
  7381.         FEh = caller
  7382.  03h    DWORD    source address
  7383.  07h    BYTE    destination ID
  7384.         FFh = all slaves except caller
  7385.         FEh = caller
  7386.  08h    DWORD    destination address
  7387. --------N-7F21-------------------------------
  7388. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  7389.     AH = 21h
  7390.     AL = sender's user ID
  7391.     DS:DX -> control packet (see #2546)
  7392. Note:    messages or commands are ignored if disabled by the destination user
  7393. SeeAlso: AH=22h
  7394.  
  7395. Format of Alloy control packet:
  7396. Offset    Size    Description    (Table 2546)
  7397.  00h    BYTE    packet type
  7398.         00h message
  7399.         01h NTNX command
  7400.         02h MW386 command
  7401.  01h    BYTE    destination user ID or 'A' for all users
  7402.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  7403.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  7404. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  7405. --------N-7F22-------------------------------
  7406. INT 7F - Alloy NTNX - GET MESSAGE
  7407.     AH = 22h
  7408. Return: pending messages displayed on user's screen
  7409. SeeAlso: AH=21h
  7410. --------N-7F24-------------------------------
  7411. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  7412.     AH = 24h
  7413.     CL = function
  7414.         00h attach
  7415.         01h release
  7416.     CH = drive (0=A:,1=B:,etc)
  7417. Return: AX = status (see #2547)
  7418. Note:    only drives on the current machine may be attached
  7419.  
  7420. (Table 2547)
  7421. Values for Alloy function status:
  7422.  00h    successful
  7423.  01h    invalid request
  7424.  02h    already attached
  7425.  03h    not attached
  7426.  04h    lock table full
  7427. --------N-7F24-------------------------------
  7428. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  7429.     AH = 24h
  7430.     CL = function
  7431.         02h attach host
  7432.         03h release host
  7433. Return: AX = status (see #2547)
  7434. Note:    the host processor may be attached in order to perform I/O via the host
  7435. --------N-7F25--CL00-------------------------
  7436. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  7437.     AH = 25h
  7438.     CL = 00h
  7439. Return: AH = version suffix letter
  7440.     CH = major version number
  7441.     CL = minor version number
  7442. SeeAlso: AH=25h/CL=01h
  7443. --------N-7F25--CL01-------------------------
  7444. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  7445.     AH = 25h
  7446.     CL = 01h
  7447. Return: CL = executive type (see #2548)
  7448. SeeAlso: AH=25h/CL=00h
  7449.  
  7450. (Table 2548)
  7451. Values for Alloy network executive type:
  7452.  00h    RTNX
  7453.  01h    ATNX
  7454.  02h    NTNX
  7455.  03h    BTNX
  7456.  04h    MW386
  7457.  05h    ANSK
  7458. --------V-7F2525-----------------------------
  7459. INT 7F - TIGA Communications Driver v2.05 - ???
  7460.     AX = 2525h
  7461.     BX = ???
  7462. Return: ???
  7463. SeeAlso: AX=4321h,AX=5555h
  7464. --------N-7F26--CL00-------------------------
  7465. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  7466.     AH = 26h
  7467.     CL = 00h
  7468. Return: AX = file mode bits (see #2549)
  7469. Note:    MW386 does not support file modes, and always returns AX=001Fh
  7470. SeeAlso: AH=26h,AH=26h/CL=06h
  7471.  
  7472. Bitfields for Alloy file mode bits:
  7473. Bit(s)    Description    (Table 2549)
  7474.  0    directory protection enabled
  7475.  1    extended open enabled
  7476.  2    flush on every disk write
  7477.  3    flush on every disk write in locked interval
  7478.  4    flush on reads from simultaneously opened file
  7479. --------N-7F26-------------------------------
  7480. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  7481.     AH = 26h
  7482.     CL = check type to set/reset
  7483.         01h directory protection
  7484.         02h extended open
  7485.         03h flush on every disk write
  7486.         04h flush on disk write if any lock set during write
  7487.         05h flush on all reads if file written
  7488.     AL = new state (00h off, 01h on)
  7489. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  7490. --------N-7F26--CL06-------------------------
  7491. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  7492.     AH = 26h
  7493.     CL = 06h
  7494. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  7495. SeeAlso: AH=26h/CL=00h
  7496. --------N-7F30-------------------------------
  7497. INT 7F - Alloy MW386 - GET PORT INFORMATION
  7498.     AH = 30h
  7499.     CX = MW386 port number
  7500. Return: AL = result
  7501.         FFh if port not found
  7502.         else driver unit number
  7503.         BL = port mode
  7504.         BH = port type
  7505.             02h remote
  7506.         DH = owner's machine ID
  7507.         DL = owner's user ID
  7508. SeeAlso: INT 17/AH=8Bh
  7509. --------N-7F31-------------------------------
  7510. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  7511.     AH = 31h
  7512.     ???
  7513. Return: ???
  7514. --------N-7F37-------------------------------
  7515. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  7516.     AH = 37h
  7517. Return: ES:AX -> semaphore table
  7518. --------N-7F37-------------------------------
  7519. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  7520.     AH = 37h
  7521.     DS:DX -> ASCIZ string to display
  7522. Note:    if the string is empty, a terminal update will be forced
  7523. --------N-7F38-------------------------------
  7524. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  7525.     AH = 38h
  7526.     AL = new terminal driver number
  7527.         FFh dummy driver
  7528.         FEh current driver
  7529.         FDh load new driver
  7530.         DS:SI -> new driver
  7531. SeeAlso: AH=39h
  7532. --------N-7F39-------------------------------
  7533. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  7534.     AH = 39h
  7535.     AL = new terminal driver number
  7536.         FFh dummy driver
  7537.         FEh current driver
  7538.         FDh load new driver
  7539.         DS:SI -> new driver
  7540.     DL = user number (FFh = caller)
  7541.     DH = machine number if DL <> FFh
  7542. Return: CF set if invalid user number
  7543.     CF clear if successful
  7544. Notes:    only available to supervisors
  7545.     the new driver number will not take effect until the user is rebooted
  7546. SeeAlso: AH=38h
  7547. --------N-7F3A-------------------------------
  7548. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  7549.     AH = 3Ah
  7550.     DL = user number (FFh = caller)
  7551.     DH = machine number
  7552. Return: CF clear if successful
  7553.         AH = terminal driver number
  7554.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  7555.         CL = parity (00h none, 01h even, 02h odd)
  7556.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  7557.     CF set if invalid user number
  7558. SeeAlso: AH=3Bh
  7559. --------N-7F3B-------------------------------
  7560. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  7561.     AH = 3Bh
  7562.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  7563.     CL = parity (00h none, 01h even, 02h odd)
  7564.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  7565.     DL = user number (FFh = caller)
  7566.     DH = machine number for user
  7567. Return: CF set if invalid user number
  7568. Notes:    only available to supervisors
  7569.     the new parameters will take effect immediately if the user's terminal
  7570.       has not been started, else AH=3Dh must be called to post the changes
  7571. SeeAlso: AH=3Ah,AH=3Dh
  7572. --------N-7F3C-------------------------------
  7573. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  7574.     AH = 3Ch
  7575.     AL = new state (00h disabled, 01h enabled)
  7576.     DL = user number (FFh = caller)
  7577.     DH = machine number for user
  7578. Return: CF set if invalid user number
  7579. Note:    only available to supervisors
  7580. SeeAlso: AH=3Dh
  7581. --------N-7F3D-------------------------------
  7582. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  7583.     AH = 3Dh
  7584. Note:    should be called whenever a program changes the terminal type or its
  7585.       parameters
  7586. SeeAlso: AH=3Bh
  7587. --------N-7F41-------------------------------
  7588. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  7589.     AH = 41h
  7590.     AL = user ID
  7591.     DS:DX -> ASCIZ filename
  7592. Return: AL = status (see #2550)
  7593. Note:    requests exclusive read/write access to file
  7594. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  7595.  
  7596. (Table 2550)
  7597. Values for Alloy function status:
  7598.  00h    successful
  7599.  01h    invalid function
  7600.  02h    already locked
  7601.  03h    unable to lock
  7602.  04h    lock table full or semaphore space exhausted
  7603. --------N-7F41-------------------------------
  7604. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  7605.     AH = 41h
  7606.     AL = user ID
  7607.     DS:DX -> ASCIZ semaphore name
  7608. Return: AL = status (see #2550)
  7609. SeeAlso: AH=00h,AH=42h"MW386"
  7610. --------s-7F4150BHC1-------------------------
  7611. INT 7F U - Voyetra - AAPISG - API
  7612.     AX = 4150h ('AP')
  7613.     BH = C1h
  7614.     BL = function (00h-13h)
  7615.         00h initialize (fails except first time called)
  7616.     ???
  7617. Return: AX = status???
  7618.         0000h successful
  7619.         0001h failed
  7620. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  7621. BUG:    the function range check uses JL instead of JB, so it will cause a
  7622.       crash if BL >= 80h on entry
  7623. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  7624. --------N-7F42-------------------------------
  7625. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  7626.     AH = 42h
  7627.     AL = user ID
  7628.     DS:DX -> ASCIZ filename
  7629. Return: AL = status (see #2550)
  7630. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  7631. --------N-7F42-------------------------------
  7632. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  7633.     AH = 42h
  7634.     AL = user ID
  7635.     DS:DX -> ASCIZ semaphore name
  7636. Return: AL = status
  7637.         00h successful
  7638.         01h invalid function
  7639.         03h unable to unlock semaphore
  7640. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  7641. --------V-7F4321-----------------------------
  7642. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  7643.     AX = 4321h
  7644. Return: AX = 0000h if installed
  7645. Note:    INT 7F is the default, but may be overridden
  7646. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  7647. --------s-7F4331BHC1-------------------------
  7648. INT 7F U - Voyetra - VAPISG - API
  7649.     AX = 4331h ('C1')
  7650.     BH = C1h
  7651.     BL = function (00h-7Ah)
  7652.     ???
  7653. Return: ???
  7654. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  7655.       sound board
  7656. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  7657. --------N-7F4E-------------------------------
  7658. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  7659.     AH = 4Eh
  7660.     AL = error mode flags
  7661.         bit 0: display critical disk errors
  7662.         bit 1: display sharing errors
  7663.     DX = 4E58h ("NX")
  7664. Return: AL = status
  7665.         00h successful
  7666. SeeAlso: AH=4Fh
  7667. --------N-7F4F-------------------------------
  7668. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  7669.     AH = 4Fh
  7670.     AL = FCB mode
  7671.         02h read/write compatibility
  7672.         42h read/write shared
  7673.     DX = 4E58h ("NX")
  7674. Return: AL = status
  7675.         00h successful
  7676. --------V-7F5555-----------------------------
  7677. INT 7F - TIGA Communications Driver v2.05 - ???
  7678.     AX = 5555h
  7679.     BX = ???
  7680. Return: ???
  7681. SeeAlso: AX=4321h
  7682. --------s-7F564DBHC1-------------------------
  7683. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  7684.     AX = 564Dh ('VM')
  7685.     BH = C1h
  7686.     BL = function (00h-1Bh)
  7687.         00h ???
  7688.         Return: CF clear
  7689.             AX = 0000h
  7690.     ???
  7691. Return: AX = FFFFh if invalid function
  7692.     ???
  7693. SeeAlso: AX=4331h,AX=5658h
  7694. --------s-7F5658BHC1-------------------------
  7695. INT 7F U - Voyetra - VAPISG - API
  7696.     AX = 5658h ('VX')
  7697.     BH = C1h
  7698.     BL = function (00h-1Bh)
  7699.     ???
  7700. Return: ???
  7701. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  7702.       sound board
  7703. SeeAlso: AX=4331h,AX=564Dh
  7704. --------N-7F81-------------------------------
  7705. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  7706.     AH = 81h
  7707.     AL = user ID
  7708.     DS:DX -> ASCIZ device name
  7709. SeeAlso: AH=82h
  7710. --------N-7F82-------------------------------
  7711. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  7712.     AH = 82h
  7713.     AL = user ID
  7714.     DS:DX -> ASCIZ device name
  7715. SeeAlso: AH=81h
  7716. --------N-7FA0-------------------------------
  7717. INT 7F - Alloy MW386 - GET USER NAME
  7718.     AH = A0h
  7719.     DL = user number (FFh = caller)
  7720.     DH = machine number for user
  7721.     ES:DI -> 17-byte buffer for ASCIZ user name
  7722. Return: CF set if invalid user number
  7723. SeeAlso: AH=03h,AH=A1h
  7724. --------N-7FA1-------------------------------
  7725. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  7726.     AH = A1h
  7727. Return: AL = process number
  7728.     DL = user number
  7729.     DH = machine number
  7730. SeeAlso: AH=03h,AH=A0h,AH=A2h
  7731. --------N-7FA2-------------------------------
  7732. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  7733.     AH = A2h
  7734.     DL = user number (FFh = caller)
  7735.     DH = machine number for user
  7736. Return: CF clear if successful
  7737.         AL = privilege level
  7738.         00h supervisor
  7739.         01h high
  7740.         02h medium
  7741.         03h low
  7742.     CF set if invalid user number
  7743. SeeAlso: AH=A1h,AH=A3h
  7744. --------N-7FA3-------------------------------
  7745. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  7746.     AH = A3h
  7747.     DL = user number
  7748.     DH = machine number for user
  7749. Return: CF clear if successful
  7750.         AL = login state
  7751.         00h never logged in
  7752.         01h currently logged out
  7753.         03h currently logged in
  7754.     CF set if invalid user number or user not active
  7755. SeeAlso: AH=A2h
  7756. --------N-7FA4-------------------------------
  7757. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  7758.     AH = A4h
  7759.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  7760. Return: AL = status
  7761.         00h     accepted
  7762.         else invalid password
  7763. --------N-7FA500-----------------------------
  7764. INT 7F - Alloy MW386 - GET USER STATUS
  7765.     AX = A500h
  7766.     DI = machine number and user number
  7767. Return: CF clear if successful
  7768.         BX = user flags
  7769.         bit 5: allow messages
  7770.         CL = scan code for task manager hotkey
  7771.         CH = scan code for spooler hotkey
  7772.         DL = scan code for task swapper hotkey
  7773.         DH = modifier key status
  7774.     CF set if invalid user number
  7775. SeeAlso: AX=A501h
  7776. Index:    hotkeys;Alloy MW386
  7777. --------N-7FA501-----------------------------
  7778. INT 7F - Alloy MW386 - SET USER STATUS
  7779.     AX = A501h
  7780.     BX = user flags (see AX=A500h)
  7781.     CL = scan code for task manager hotkey
  7782.     CH = scan code for spooler hotkey
  7783.     DL = scan code for task swapper hotkey
  7784.     DH = modifier key status
  7785.     DI = machine number and user number
  7786. Return: CF set if invalid user number
  7787. Note:    must have supervisor privilege to set another user's status
  7788. SeeAlso: AX=A500h
  7789. Index:    hotkeys;Alloy MW386
  7790. --------V-7FABCDBX0000-----------------------
  7791. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  7792.     AX = ABCDh
  7793.     BX = 0000h
  7794. Return: AX = total number of functions available
  7795.     ES:BX -> entry point array (see #2551)
  7796. SeeAlso: AX=0104h,AX=0105h
  7797.  
  7798. (Table 2551)
  7799. Values for 8516 Touch Screen function number:
  7800.  00h    check initialization and reset (see #2552)
  7801.  14h    set user-defined subroutine (see #2553)
  7802. Notes:    each driver function takes two stack parameters using Pascal calling
  7803.       conventions: address of parameter block and address of results buffer
  7804.     all pointers are FAR pointers
  7805.     on return, AX contains the status of the call:
  7806.         AX = 0000h successful
  7807.          0001h invalid input
  7808.          0002h interface error
  7809.          0003h unable to perform function
  7810.  
  7811. Format of 8516 Touch Screen Function 00h parameter block:
  7812. Offset    Size    Description    (Table 2552)
  7813.  00h    WORD    0000h (function number)
  7814. Note:    this function should be called before any other device driver functions
  7815.  
  7816. Format of 8516 Touch Screen Function 00h results buffer:
  7817. Offset    Size    Description    (Table 2553)
  7818.  00h    WORD    touch screen status
  7819.         0000h unavailable
  7820.         0001h uncalibrated
  7821.         FFFFh available
  7822.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  7823. Notes:    the following driver parameters will have been reset to zero:
  7824.       touchdown counter, liftoff counter, position at last touch, position
  7825.       at last lift, int call mask, select on count, select off count,
  7826.       pos select on count, pos select off count.
  7827.     the following driver parameters will have been reset as listed:
  7828.       mouse emulation mode: left on
  7829.       thresholds: 46 on screen, 96 push harder, 80 push release
  7830.       x, y hysteresis: 400
  7831.       data repeat rate: 40/sec
  7832.       select mechanism: push-harder - first-touch
  7833.       coordinate origin: upper left corner
  7834.       filter frequency: medium
  7835.       data block mask: all enabled
  7836.       click lock: on
  7837. --------N-7FB0-------------------------------
  7838. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  7839.     AH = B0h
  7840.     AL = user number
  7841.     DS = code segment
  7842. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  7843.       or INT 7F locking functions
  7844. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  7845. --------N-7FB1--SF00-------------------------
  7846. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  7847.     AH = B1h subfn 00h
  7848.     AL = (bits 7-5) 000
  7849.          (bits 4-0) user ID
  7850. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  7851.       INT 7F locking functions
  7852. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  7853. --------N-7FB2--SF01-------------------------
  7854. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  7855.     AH = B2h subfn 01h
  7856.     AL = (bits 7-5) 001
  7857.          (bits 4-0) user ID
  7858. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  7859. --------N-7FB3--SF02-------------------------
  7860. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  7861.     AH = B3h subfn 02h
  7862.     AL = (bits 7-5) 010
  7863.          (bits 4-0) user ID
  7864. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  7865. --------N-7FB4-------------------------------
  7866. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  7867.     AH = B4h
  7868.     AL = user ID
  7869. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  7870. --------N-7FC3-------------------------------
  7871. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  7872.     AH = C3h
  7873.     AL = byte to write
  7874. Return: CF clear if successful
  7875.     CF set on error
  7876. SeeAlso: AH=C6h
  7877. --------N-7FC5-------------------------------
  7878. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  7879.     AH = C5h
  7880.     AL = new console mode
  7881.         00h keyboard indirect
  7882.         01h keyboard direct
  7883.         02h data handshake enforced
  7884.         03h no data handshake
  7885. Return: CF clear if successful
  7886.         AL = prior console mode
  7887.     CF set on error (caller is not remote user)
  7888. Note:    modes 2 and 3 may be used for input through the console port; no video
  7889.       output should be performed in these modes
  7890. --------N-7FC6-------------------------------
  7891. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  7892.     AH = C6h
  7893.     AL = byte to write
  7894. Return: CF clear if successful
  7895.     CF set on error (caller is not remote user)
  7896. Note:    any terminal driver data translation will be bypassed
  7897. SeeAlso: AH=C3h,AH=C7h
  7898. --------N-7FC7-------------------------------
  7899. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  7900.     AH = C7h
  7901. Return: CF clear if successful
  7902.         AL = byte read
  7903.     CF set on error (no data available or caller is not remote user)
  7904. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  7905. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  7906. --------N-7FC8-------------------------------
  7907. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  7908.     AH = C8h
  7909.     AL = maximum bytes to read
  7910.     ES:DI -> buffer for console data
  7911. Return: CF clear if successful
  7912.         CX = number of bytes read
  7913.     CF set on error (caller is not remote user)
  7914. SeeAlso: AH=C7h
  7915. --------N-7FCF-------------------------------
  7916. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  7917.     AH = CFh
  7918.     DS:DX -> ASCIZ string containing user number to be reset
  7919. SeeAlso: AH=D6h
  7920. --------N-7FD6-------------------------------
  7921. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  7922.     AH = D6h
  7923.     DS:DX -> reset packet (see #2554)
  7924. Return: never if successful
  7925. Note:    all users will be shut down immediately if successful
  7926. SeeAlso: AH=CFh
  7927.  
  7928. Format of Alloy MW386 reset packet:
  7929. Offset    Size    Description    (Table 2554)
  7930.  00h    DWORD    reset code (60606060h)
  7931.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  7932. --------N-7FD7-------------------------------
  7933. INT 7F - Alloy MW386 - POST EVENT
  7934.     AH = D7h
  7935.     AL = user number (if local event)
  7936.     DX = event number
  7937. --------N-7FD8-------------------------------
  7938. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  7939.     AH = D8h
  7940. Return: CF set on error
  7941. Note:    forces all disk buffers to be written out immediately
  7942. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  7943. --------N-7FDB-------------------------------
  7944. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  7945.     AH = DBh
  7946. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  7947. --------N-7FE0-------------------------------
  7948. INT 7F - Alloy MW386 - CREATE DOS TASK
  7949.     AH = E0h
  7950.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  7951.     DS:DX -> ASCIZ task name (max 16 bytes)
  7952. Return: CF clear if successful
  7953.         AL = task create ID
  7954.     CF set on error
  7955. Note:    only foreground DOS tasks can use this function
  7956. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  7957. --------N-7FE1-------------------------------
  7958. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  7959.     AH = E1h
  7960.     AL = create ID (from AH=E0h)
  7961. Return: AL = DOS process number
  7962.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  7963. Note:    this function should not be called immediately after creating a new
  7964.       DOS task, since the new task is being initialized by a concurrent
  7965.       process
  7966. SeeAlso: AH=E0h,AH=E2h
  7967. --------N-7FE2-------------------------------
  7968. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  7969.     AH = E2h
  7970.     AL = DOS process number (from AH=E1h)
  7971. Return: CF set on error (invalid process number or caller not foreground task)
  7972. Notes:    specified task becomes the foreground task and current task is placed
  7973.       in the background
  7974.     may only be called by a foreground task
  7975. SeeAlso: AH=E0h,AH=E1h
  7976. --------N-7FE3-------------------------------
  7977. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  7978.     AH = E3h
  7979.     DS:DX -> ASCIZ task name
  7980. ---v1.x---
  7981.     AL = user number
  7982. ---v2+---
  7983.     BH = user number
  7984.     BL = task number
  7985. Return: CF clear if successful
  7986.     CF set on error (invalid process number)
  7987. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  7988. --------N-7FE4-------------------------------
  7989. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  7990.     AH = E4h
  7991.     ES:DI -> buffer for task name
  7992. ---v1.x---
  7993.     AL = user number
  7994. ---v2+---
  7995.     BH = user number
  7996.     BL = task number
  7997. Return: CF clear if successful
  7998.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  7999.         DX = task flags
  8000.         bit 7: MS-DOS process
  8001.         ES:DI buffer filled
  8002.     CF set on error (invalid process number)
  8003. SeeAlso: AH=E3h,AH=E5h
  8004. --------N-7FE5-------------------------------
  8005. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  8006.     AH = E5h
  8007.     DS:DX -> ASCIZ task name
  8008.     BH = user number
  8009. Return: CF clear if successful
  8010.         AL = DOS process number
  8011.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8012.     CF set on error (no match for name)
  8013. SeeAlso: AH=E3h,AH=E4h
  8014. --------N-7FE6-------------------------------
  8015. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  8016.     AH = E6h
  8017. Return: AX = number of processes available to current user
  8018. SeeAlso: AH=E0h
  8019. --------N-7FE7-------------------------------
  8020. INT 7F - Alloy MW386 - REMOVE DOS TASK
  8021.     AH = E7h
  8022.     AL = DOS process number
  8023. Return:    CF clear if successful
  8024.     CF set on error (invalid process number or first process)
  8025. Note:    can only be called by a foreground task
  8026. SeeAlso: AH=E0h
  8027. --------N-7FE8-------------------------------
  8028. INT 7F - Alloy MW386 - DOS TASK DELAY
  8029.     AH = E8h
  8030.     CX = delay time in milliseconds
  8031. Note:    a delay of 0 may be used to surrender the current time slice
  8032. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  8033. SeeAlso: INT 2F/AX=1680h
  8034. --------N-7FF0-------------------------------
  8035. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  8036.     AH = F0h
  8037.     AL = group number
  8038.     DS:DX -> ASCIZ directory name
  8039. Return: CF clear if successful
  8040.         AX = status
  8041.         0002h directory not found
  8042.         0003h directory not found
  8043.         0005h directory in use, cannot be restricted
  8044.         02xxh restricted to group xxh
  8045.     CF set on error
  8046. Note:    the restriction on the directory may be removed by calling this
  8047.       function with group 0, then using AH=F1h to assign the directory to
  8048.       group 0
  8049. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  8050. --------N-7FF1-------------------------------
  8051. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  8052.     AH = F1h
  8053.     AL = group number
  8054.     DS:DX -> ASCIZ directory name
  8055. Notes:    performs permanent assignment to a group; no immediate action is taken
  8056.       unless the directory has been restricted with AH=F0h
  8057.     may be used to restrict a nonexistent directory
  8058. SeeAlso: AH=F0h
  8059. --------N-7FF2-------------------------------
  8060. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  8061.     AH = F2h
  8062.     CX = entry number
  8063.     ES:DI -> 64-byte buffer
  8064. Return: CF clear if successful
  8065.         buffer filled with 63-byte directory info and 1-byte group number
  8066.     CF set on error (invalid entry)
  8067. SeeAlso: AH=F0h,AH=F3h
  8068. --------N-7FF3-------------------------------
  8069. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  8070.     AH = F3h
  8071.     AL = group number
  8072.     CX = entry number
  8073.     ES:DI -> 64-byte buffer
  8074. Return: CF clear if successful
  8075.         CX = next entry number
  8076.         buffer filled with 63-byte directory info and 1-byte group number
  8077.     CF set on error (no more matching entries)
  8078. Note:    like AH=F2h, but only returns directories belonging to the specified
  8079.       group
  8080. SeeAlso: AH=F2h
  8081. --------N-7FF8-------------------------------
  8082. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  8083.     AH = F8h
  8084.     AL = group number
  8085.     DL = user number
  8086.     DH = machine number (currently 00h)
  8087. Return: CF clear if successful
  8088.     CF set on error (user already in maximum number of groups)
  8089. Note:    each user is allowed eight group assignments
  8090. SeeAlso: AH=F9h,AH=FAh
  8091. --------N-7FF9-------------------------------
  8092. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  8093.     AH = F9h
  8094.     AL = group number
  8095.     DL = user number
  8096.     DH = machine number (currently 00h)
  8097. Return: CF clear if successful
  8098.     CF set if failed
  8099. SeeAlso: AH=F8h,AH=FAh
  8100. --------N-7FFA-------------------------------
  8101. INT 7F - Alloy MW386 - GET USER GROUP LIST
  8102.     AH = FAh
  8103.     DL = user number
  8104.     DH = machine number (currently 00h)
  8105.     ES:DI -> 16-byte buffer for group list
  8106. Return: CX = number of groups
  8107.     ES:DI buffer filled with group numbers
  8108. SeeAlso: AH=F8h,AH=F9h
  8109. --------N-7FFB-------------------------------
  8110. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  8111.     AH = FBh
  8112.     CL = group number
  8113.     ES:DI -> ASCIZ group name (max 17 bytes)
  8114. SeeAlso: AH=FCh
  8115. --------N-7FFC-------------------------------
  8116. INT 7F - Alloy MW386 - GET GROUP NAME
  8117.     AH = FCh
  8118.     CL = group number
  8119.     ES:DI -> 17-byte buffer for ASCIZ name
  8120. Return: ES:DI buffer filled
  8121. Note:    if the group has not been named, "(unnamed)" is returned
  8122. SeeAlso: AH=FBh
  8123. --------!---Section--------------------------
  8124.