home *** CD-ROM | disk | FTP | other *** search
/ Power CD-ROM!! 7 / POWERCD7.ISO / prgmming / inter43 / interrup.l < prev    next >
Text File  |  1994-11-06  |  242KB  |  6,394 lines

  1. Interrupt List, part 12 of 12
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------V-7F---------------------------------
  4. INT 7F - Halo88 - API
  5.     BX = function number (see #2270)
  6.     additional parameters on stack
  7. Return: ???
  8. Program: Halo88 is a suite of graphics routines
  9. Note:    according to Stuart Kemp, the code appears to make no provisions for
  10.        chaining
  11.  
  12. (Table 2270)
  13. Values for Halo88 API function:
  14.  64h    arc
  15.  65h    bar
  16.  66h    box
  17.  67h    circle
  18.  68h    clr
  19.  69h    default hatch style
  20.  6Ah    default line style
  21.  6Bh    delhcur
  22.  6Ch    delln / deltcur
  23.  6Dh    ellipse
  24.  6Eh    fill
  25.  6Fh    flood
  26.  70h    flood2
  27.  71h    init graphics
  28.  72h    init hcur
  29.  73h    init marker
  30.  74h    init tcur
  31.  75h    inqarc
  32.  76h    inqbknd
  33.  77h    inqclr
  34.  78h    inqerr
  35.  79h    inqgcur
  36.  7Ah    inqhcur
  37.  7Bh    inqmarker
  38.  7Dh    inqtcur
  39.  7Eh    inqtext
  40.  7Fh    lnabs
  41.  80h    lnrel
  42.  81h    markerabs
  43.  82h    markerrel
  44.  83h    moveabs
  45.  84h    movehcurabs
  46.  85h    movehcurrel
  47.  86h    moverel
  48.  87h    movetcurabs
  49.  88h    movetcurrel
  50.  89h    movefrom
  51.  8Ah    moveto
  52.  8Bh    pie
  53.  8Ch    polylnabs
  54.  8Dh    polylnrel
  55.  8Eh    ptabs
  56.  8Fh    ptrel
  57.  91h    setasp
  58.  92h    set color
  59.  93h    set font
  60.  94h    set hatch    style
  61.  95h    set line style
  62.  97h    settext
  63.  98h    set text color
  64.  99h    btext
  65.  9Ah    setseg
  66.  9Bh    display
  67.  9Ch    setscreen
  68.  9Eh    close graphics
  69.  9Fh    ftinit
  70.  A0h    ftlocate
  71.  A1h    ftext
  72.  A5h    set viewport
  73.  A6h    set window
  74.  A7h    set world
  75.  AAh    ftcolor
  76.  ACh    initlp
  77.  ADh    inqasp
  78.  AEh    inqdev
  79.  AFh    inqdisplay
  80.  B0h    inqft
  81.  B1h    inqftcolor
  82.  B2h    inqinterlace
  83.  B3h    inqlpa
  84.  B4h    inqlpg
  85.  B5h    inqmode
  86.  B6h    inqscreen
  87.  B7h    inqversion
  88.  B8h    roam
  89.  B9h    scroll
  90.  BAh    setieee
  91.  BBh    set interlace
  92.  BCh    shift
  93.  BDh    start graphics
  94.  BEh    vpan
  95.  CBh    gwrite
  96.  CCh    gread
  97.  CDh    setxor
  98.  CEh    rbox
  99.  CFh    rcir
  100.  D0h    rlnabs
  101.  D1h    rlnrel
  102.  D2h    delbox
  103.  D3h    delcir
  104.  D5h    setseg2
  105.  DCh    worldoff
  106.  DDh    mapwtod
  107.  DEh    mapdtow
  108.  DFh    mapwton
  109.  E0h    mapntow
  110.  E1h    mapdton
  111.  E2h    mapntod
  112.  E3h    inqworld
  113.  E4h    inqviewport
  114.  E5h    set line width
  115.  E6h    lnjoint
  116.  E7h    set locator
  117.  E8h    read locator
  118.  E9h    setdev
  119.  EBh    setstext
  120.  ECh    setstclr
  121.  EDh    setstang
  122.  EEh    stext
  123.  EFh    inqstext
  124.  F0h    setdegree
  125.  F1h    inqstsize
  126.  F2h    polyfabs
  127.  F3h    polyfrel
  128.  F4h    inqdrange
  129.  F5h    inqstang
  130.  F6h    orglocator
  131.  F7h    inqlocator
  132.  F8h    inqarea
  133.  F9h    setipal
  134.  FAh    setborder
  135.  FBh    inqcrange
  136.  FEh    setclip
  137.  FFh    fcir
  138. 100h    setcrange
  139. 101h    setdrange
  140. 102h    setlattr
  141. 103h    polycabs
  142. 104h    polycrel
  143. 108h    memcom
  144. 109h    memexp
  145. 10Ah    memmov
  146. 10Eh    movefx
  147. 10Fh    movetx
  148. 110h    inqrgb
  149. 111h    save image
  150. 112h    restore image
  151. 113h    setapal
  152. 114h    setxpal
  153. 118h    inqtsize
  154. 12Eh    gprint
  155. 130h    setprn
  156. 131h    setpattr
  157. 133h    setbattr
  158. 135h    pexpand
  159. 136h    ptnorm
  160. 137h    pfnorm
  161. 13Bh    inqprn
  162. 13Ch    lopen
  163. 13Dh    lclose
  164. 13Eh    lappend
  165. 13Fh    lrecord
  166. 140h    lswitch
  167. 142h    inqfun
  168. 15Dh    lsetup
  169. 15Eh    lrest
  170. 15Fh    lsave
  171. --------N-7F---------------------------------
  172. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  173.     AL = request ID
  174.         01h "Request"/"RequestDirect"
  175.         ES:BX -> pRq
  176.         DX ignored
  177.         04h "Wait"
  178.         ES:BX -> ppMsgRet
  179.         DX = exchange
  180.         05h "AllocExch"
  181.         ES:BX -> pExchRet
  182.         06h "DeAllocExch"
  183.         DX = exchange
  184.         07h "Check"
  185.         ES:BX -> ppMsgRet
  186.         DX = exchange
  187.     CX = 4354h ('CT')
  188. Return: AX = status
  189.         0000h successful
  190. --------S-7F---------------------------------
  191. INT 7F - Telebit ACS SERIAL I/O
  192.     ES:SI-> parameter block (see #2271)
  193. Return: CF set on error
  194.     CF clear on success
  195. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  196.       handler; this serves as the installation check
  197. Index:    installation check;Telebit ACS Serial I/O
  198.  
  199. Format of Telebit ACS parameter block:
  200. Offset    Size    Description    (Table 2271)
  201.  00h    BYTE    command (see #2272)
  202.  01h    BYTE    gateway number
  203.  02h    BYTE    reserved
  204.  03h    BYTE    port
  205.  04h 17 BYTEs    auxiliary buffer
  206.  15h    BYTE    session
  207.  16h    WORD    count of bytes passed to API
  208.  18h    DWORD    buffer pointer passed to/from API
  209.  1Ch    WORD    count of bytes passed from API
  210.  1Eh    BYTE    return code (see #2273)
  211.  
  212. (Table 2272)
  213. Values for Telebit ACS command:
  214.  3Ch    status
  215.  3Dh    connect
  216.  3Eh    disconnect
  217.  3Fh    read
  218.  40h    data/command write
  219.  41h    clear receive buffer
  220.  42h    get configuration
  221.  43h    get receiver status
  222.  44h    raw write
  223.  45h    search servers
  224.  46h    set transmit buffer size
  225.  
  226. (Table 2273)
  227. Values for Telebit ACS return code:
  228.  00h    success
  229.  01h    invalid session
  230.  05h    servername invalid
  231.  06h    NetWare fileserver bindery is locked
  232.  07h    communication server not active
  233.  08h    general failure in NetWare fileserver
  234.  09h    not logged into a fileserver
  235.  10h    connection table full
  236.  11h    no response from communication server
  237.  12h    connection attempt terminated abnormally
  238.  13h    connection refused - no sessions available
  239.  14h    gateway number/port already in use
  240.  15h    invalid connection response
  241.  16h    port invalid
  242.  17h    incorrect version in server response
  243.  18h    gateway number/port combination not configured
  244.  19h    initialization has not been completed
  245.  20h    no more sockets are available
  246.  21h    no active poolname
  247.  23h    FATAL internal interface error
  248.  24h    registration of host workstation failed - name is already in use
  249.  25h    registration of host workstation failed - workstation name table full
  250.  26h    registration of host workstation failed - only one session may be
  251.       registered for dial-in
  252.  FFh    Telebit ACS API is busy - retry later
  253. --------N-7F---------------------------------
  254. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  255. Notes:    the installation check consists of checking for the signature "Lynn"
  256.       in the four bytes preceding the interrupt handler; if present, the
  257.       current program is running as a DOS task on a non-dedicated NetWare
  258.       2.x file server.
  259.     Before placing the server into "console" mode, it is recommended that
  260.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  261. SeeAlso: INT 21/AH=DEh/DL=04h
  262. Index:    installation check;non-dedicated NetWare server
  263. --------S-7F---------------------------------
  264. INT 7F U - YTERM - ???
  265. SeeAlso: INT 7E"YTERM"
  266. --------E-7F---------------------------------
  267. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  268. Notes:    this vector is overwritten when GO32 starts but is not restored by
  269.       early versions of the DOS extender
  270.     the newest versions of GO32 dynamically allocate the vectors used
  271.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  272. SeeAlso: INT 0F,INT 7E"GO32"
  273. ----------7F---------------------------------
  274. INT 7F - Canon IXHND2 Scanner Interface
  275. --------N-7F---------------------------------
  276. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  277. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  278.       MW386 multitasking system is present (i.e. signature "NXNX")
  279.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  280.       load time.  To determine the actual vector used, open the device
  281.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  282.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  283.       be the actual interrupt number being used; the other interrupts may
  284.       be found with INT 7F/AH=09h/CL=03h
  285. --------N-7F---------------------------------
  286. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  287. Note:    a program may determine that it is running on an ANSK Slave by checking
  288.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  289.       address is RAM, and should not be written.  However, the above check
  290.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  291.       device driver
  292. --------N-7F00-------------------------------
  293. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  294.     AH = 00h
  295.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  296. Return: AL = status (see #2274)
  297.     AH = semaphore owner if status=02h
  298. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  299.  
  300. (Table 2274)
  301. Values for Alloy function status:
  302.  00h    successful
  303.  01h    invalid function
  304.  02h    semaphore already locked
  305.  03h    unable to lock/unlock semaphore
  306.  04h    semaphore space exhausted
  307.  05h    host/target PC did not respond (NTNX)
  308. --------N-7F00-------------------------------
  309. INT 7F - G8BPQ - proposed addition - GET NODE/SWITCH VERSION AND DESCRIPTION
  310.     AH = 00h
  311.     ES:SI -> buffer for "USERS" text string
  312. Return: AH = major version
  313.     AL = minor version
  314.     CX = length of returned string
  315. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  316.       John Wiseman which allows a PC to act as a node in an AX.25 network
  317. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  318. --------N-7F01-------------------------------
  319. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  320.     AH = 01h
  321.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  322. Return: AL = status (see #2274)
  323.     AH = semaphore owner if status=02h
  324. SeeAlso: AH=00h,AH=02h,AH=41h
  325. --------V-7F01-------------------------------
  326. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  327.     AH = 01h
  328. Return: BX = 1234h if installed
  329.         DX:AX -> array of FAR entry points
  330.         CH = driver major version
  331.         CL = driver minor version
  332. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  333. SeeAlso: AX=1234h,AX=4321h
  334. --------N-7F01-------------------------------
  335. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  336.     AH = 01h
  337.     AL = stream number (01h-40h)
  338.     CL = new application flags
  339.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  340.     DL = new application mask
  341. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  342.       John Wiseman which allows a PC to act as a node in an AX.25 network
  343. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  344.       (earlier versions were hard-wired for INT 7F)
  345. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  346. --------I-7F0104BX0000-----------------------
  347. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  348.     AX = 0104h (HLLAPI gate ID)
  349.     BX = 0000h
  350.     DS:SI -> parameter control block (see #2275)
  351. Return: parameter control block updated
  352. Note:    the installation check for the Novell HLLAPI TSR is the signature
  353.       string "CXI" (for the company Novell bought) immediately prior to
  354.       the interrupt handler
  355. SeeAlso: AX=0105h,AX=ABCDh
  356.  
  357. Format of HLLAPI parameter control block:
  358. Offset    Size    Description    (Table 2275)
  359.  00h  3 BYTEs    signature = 'PCB'
  360.  03h    BYTE    function number (see #2276,#2277)
  361.  04h    WORD    segment of control string
  362.  06h    WORD    offset of control string
  363.  08h    WORD    length of control string, unless explicit end-of-str char set
  364.  0Ah    BYTE    unused (IBM)
  365.         ControlString[0] (Rabbit)
  366.  0Bh    WORD    return code (see #2279)
  367.  0Dh    WORD    maximum length of control string (IBM)
  368.         unused (Rabbit)
  369.  
  370. (Table 2276)
  371. Values for HLLAPI function number:
  372.  00h    OEM function (Query system for Attachmate implementation)
  373.  01h    Connect presentation space
  374.  02h    Disconnect presentation space
  375.  03h    Send string of keystrokes as if typed from keyboard
  376.  04h    Wait ~60s, returns status of presentation space
  377.  05h    Copy current presentation space into a user-defined buffer
  378.  06h    Search presentation space for first occurrence of a specified string
  379.  07h    Query cursor location in current presentation space
  380.  08h    Copy part or all of current presentation space into user buffer
  381.  09h    Set session parameters; parameters vary by vendor (see #2278)
  382.  0Ah    Get info on sessions currently connected
  383.  0Bh    Lock current presentation space
  384.  0Ch    Unlock previously locked presentation space
  385.  0Dh    Return copy of operator info area (OIA) of current presentation space
  386.  0Eh    get attribute byte for given position in the current presentation space
  387.  0Fh    copy string of characters to the current presentation space
  388.  10h    workstation control functions
  389.  11h    storage manager functions, intended primarily for BASIC applications
  390.     (not implemented by Rabbit)
  391.  12h    set delay period in half-second intervals
  392.  14h    get info on level of workstation support used
  393.  15h    reset session parameters to default values
  394.  16h    get detailed info on the current session
  395.  17h    start host notification to application on presentation sp or OIA update
  396.  18h    check host update when host notification enabled
  397.  19h    stop host notification
  398.  1Eh    search field within current presentation space for string
  399.  1Fh    get first positionof a selected field in the current presentation space
  400.  20h    get length of specified field
  401.  21h    copy string into a specified field
  402.  22h    copy specified field into a user-defined buffer
  403.  23h    create alternate presentation space (IBM only), don't use with BASIC
  404.  24h    switch to alternate presentation space (IBM only), not with BASIC
  405.  25h    display cursor in specified area (IBM only), don't use with BASIC
  406.  26h    display alternate presentation space (IBM only), don't use with BASIC
  407.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  408.  28h    set cursor
  409.  29h    start Close Intercept
  410.  2Ah    query Close Intercept
  411.  2Bh    stop Close Intercept
  412.  32h    start intercepting keystrokes to allow filtering
  413.  33h    get keystrokes after turning on interception
  414.  34h    notify operator when keystroke rejected by filter subroutine
  415.  35h    stop intercepting keystrokes
  416.  5Ah    send file
  417.  5Bh    receive file
  418.  5Ch    run a program (not implemented by Rabbit)
  419.  5Dh    execute DOS command (not implemented by Rabbit)
  420.  63h    change presentation space position to PC display row/col or vice versa
  421.  65h    connect to Window Services
  422.  66h    disconnect from Window Services
  423.  67h    set/query window coordinates
  424.  68h    set/query window status
  425.  69h    change presentation space name
  426.  78h    connect Structured Fields
  427.  79h    disconnect Structured Fields
  428.  7Ah    query size of communications buffer
  429.  7Bh    allocate communications buffer
  430.  7Ch    free communications buffer
  431.  7Dh    get request completion state
  432.  7Eh    read Structured Fields
  433.  7Fh    write Structured Fields
  434.  FFh    Get info on DCA implementation
  435.  
  436. (Table 2277)
  437. Values for LLAPI function number:
  438.  80h    initialize LLAPI (internal call)
  439.  83h    set Session ID (one-character ID)
  440.  84h    read Session ID (one-character ID)
  441.  85h    lock 327x keyboard
  442.  86h    unlock 327x keyboard
  443.  87h    wait for Clear to Send
  444.  88h    type ASCII character
  445.  89h    type 327x key
  446.  8Ah    read keyboard lock state
  447.  8Fh    force screen update
  448.  90h    view session
  449.  91h    relinquish (suspend foreground until background becomes idle)
  450.  92h    poke screen character
  451.  93h    poke translated character
  452.  94h    peek screen character
  453.  95h    peek translated character
  454.  96h    set cursor position
  455.  97h    send scan code (Rabbit only)
  456.  98h    synchronize (returns after keystroke queue empty)
  457.  99h    type PC key (Rabbit only)
  458.  
  459. (Table 2278)
  460. Values for HLLAPI Function 09h Session Parameters:
  461.  ASCII        ??? (Rabbit only)
  462.  ATTRIB        return attributes in hex
  463.  NOATTRIB    return attributes as blanks
  464.  CONPHYS    make physical connection
  465.  CONLOG        only make logical connection
  466.  EAB        copy extended attribute bytes along with data
  467.  NOEAB        copy data only
  468.  ESC=n        set escape character to "n" (default '@')
  469.  EOT=n        set end of string character (default 00h)
  470.  FPAUSE        full-duration pause
  471.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  472.  FTWAIT        wait for file transfer to complete (Rabbit only)
  473.  IPAUSE        interruptable pause
  474.  RABESC        ??? (Rabbit only)
  475.  NORABESC    ??? (Rabbit only)
  476.  SCANCODE    ??? (Rabbit only)
  477.  STRLEN        use explicit string lengths
  478.  STREOT        use terminated strings
  479.  SRCHALL    search entire presentation space
  480.  SRCHFROM    search from specified offset
  481.  SRCHFRWD    search forward from position 1
  482.  SRCHBKWD    search backward from last position in presentation space
  483.  TIMEOUT=n    ??? (Rabbit only)
  484.  TWAIT        wait specified time for keyboard ready
  485.  LWAIT        wait until keyboard ready
  486.  NWAIT        no wait
  487.  TRON        enable tracing
  488.  TROFF        disable tracing
  489.  AUTORESET    send reset before sending keys with function 03h
  490.  NORESET    don't send reset
  491.  QUIET        don't display messages sent with INT 21/AH=09h
  492.  NOQUIET    allow messages to be displayed
  493.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  494.  XLATE        translate extended attribute bytes
  495.  NOXLATE    don't translate
  496.  NEWRET        use HLLAPI v3.0 return code conventions
  497.  OLDRET        use HLLAPI v2.0 return code conventions
  498.  
  499. (Table 2279)
  500. Values for Windows HLLAPI return code:
  501.  00h    successful
  502.  01h    Presentation Space not connected/requested size unavailable
  503.  02h    invalid function or parameter error/invalid block ID
  504.  03h    file transfer complete
  505.  04h    file transfer complete (segmented)/Presentation Space busy
  506.  05h    inhibited or keyboard locked
  507.  06h    data truncated
  508.  07h    invalid Presentation Space position
  509.  08h    operation not available
  510.  09h    system error
  511.  0Ah    blocking error
  512.  0Bh    resource not available
  513.  0Ch    session stopped
  514.  14h    undefined key combination
  515.  15h    OIA updated
  516.  16h    Presentation Space updated
  517.  17h    both Presentation Space and OIA updated
  518.  18h    no such field
  519.  19h    no keystrokes available
  520.  1Ah    Presentation Space or Operator Information Area changed
  521.  1Bh    file transfer aborted
  522.  1Ch    zero-length field
  523.  1Eh    cursor type invalid
  524.  1Fh    keystroke overflow
  525.  20h    another application is already connected
  526.  22h    message sent to host cancelled
  527.  23h    transmission from host cancelled
  528.  24h    lost contact with host
  529.  25h    function successful
  530.  26h    function incomplete
  531.  27h    a DDM session is already connected
  532.  28h    disconnected, but asynchronous requests still pending
  533.  29h    buffer already in use
  534.  2Ah    no matching request found
  535. 12Dh    invalid function number
  536. 12Eh    file not found
  537. 131h    access denied
  538. 134h    out of memory
  539. 136h    environment invalid
  540. 137h    format invalid
  541. 270Eh (9998) invalid Presentation Space ID
  542. 270Fh (9999) invalid row or column code
  543. ---Windows HLLAPI extensions---
  544. F000h    asynchronous call already in progress
  545. F001h    invalid asynchronous task ID
  546. F002h    blocking call cancelled
  547. F003h    underlying subsystem not started
  548. F004h    unsupported application version
  549. --------V-7F0105-----------------------------
  550. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  551.     AX = 0105h
  552. Return: CF set on error
  553.     CF clear if successful
  554.         CX:DX -> array of FAR pointers to entry points (see #2280)
  555. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  556.       and then performing a FAR call via the appropriate vector of the
  557.       entry point array, placing the FAR address of the function's
  558.       parameter block on the top of the stack
  559. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  560.  
  561. (Table 2280)
  562. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  563.  08h    HOPEN    Open Adapter (see #2313)
  564.  09h    HSMX    Set Mix (see #2342)
  565.  10h    HINT    Interrupt (see #2308)
  566.  13h    HLDPAL    Load Palette (see #2309)
  567.  15h    HBBW    BitBLT Write Image Data (see #2295)
  568.  17h    HBBR    BitBLT Read Image Data (see #2296)
  569.  18h    HBBCHN    Chained Data Go (see #2294)
  570.  19h    HBBC    BitBLT Copy Data (see #2293)
  571.  1Dh    HQMODE    Get Current Mode (see #2319)
  572.  20h    HRECT    Fill Rectangle (see #2321)
  573.  22h    HCLOSE    Close Adapter and place in quiescent state (see #2301)
  574.  30h    HINIT    Initialize State (see #2307)
  575.  31h    HSYNC    Synchronize Adapter (see #2346)
  576.  39h    HSPAL    Save Palette (see #2343)
  577.  3Ah    HRPAL    Restore Palette (see #2324)
  578.  ???    HSGQ    Set Graphics Quality (see #2333)
  579.  ???    HSCOORD    Set Coordinate Type (see #2330)
  580.  ???    HESC    Escape, Terminate Processing (see #2306)
  581.  ???    HSBCOL    Set Background Color (see #2325)
  582.  ???    HSBP    Set Bit Plane Controls (see #2326)
  583.  ???    HSCMP    Set Color Comparison Register (see #2328)
  584.  ???    HSCOL    Set Color (see #2329)
  585.  ???    HSHS    Set Scissors (clipping rectangle) (see #2334)
  586.  ???    HXLATE    Assign Text Color (see #2347)
  587.  ???    HQMODES    Get Adapter Modes (see #2320)
  588.  ???    HQDPS    Get Drawing Process State Size (see #2318)
  589.  ???    HQDFPAL    Get Default Palette (see #2317)
  590.  ???    HQCOORD    Get Coordinate Type (see #2315)
  591.  ???    HQCP    Get Current Position (see #2316)
  592.  ???    HSMODE    Change Mode (see #2340)
  593.  ???    HLINE    Draw Line at Given Position (see #2310)
  594.  ???    HCLINE    Draw Line at Current Position (see #2300)
  595.  ???    HRLINE    Draw Line Relative from Given Position (see #2322)
  596.  ???    HCRLINE    Draw Line Relative at Current Position (see #2303)
  597.  ???    HSLT    Set Line Type (see #2337)
  598.  ???    HSLW    Set Line Width (see #2339)
  599.  ???    HSLPC    Save Line Pattern Count (see #2336)
  600.  ???    HRLPC    Restore Line Pattern Count (see #2323)
  601.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #2297)
  602.  ???    HBAR    Begin Area (see #2292)
  603.  ???    HEAR    End Area (see #2304)
  604.  ???    HSPATT    Set Pattern (see #2344)
  605.  ???    HSPATTO    Set Pattern Reference Point (see #2345)
  606.  ???    HEGS    Erase Graphics Screen (see #2305)
  607.  ???    HSCP    Set Current Position (see #2331)
  608.  ???    HMRK    Set Marker (see #2312)
  609.  ???    HCMRK    Set Marker at Current Position (see #2302)
  610.  ???    HSMARK    Set Marker Shape (see #2341)
  611.  ???    HSCS    Set Character Set (see #2332)
  612.  ???    HCHST    Write Character String at Given Position (see #2299)
  613.  ???    HCCHST    Write Character String at Current Position (see #2298)
  614.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #2327)
  615.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #2283)
  616.  ???    ABLOCKCGA Write Character Block CGA (see #2281)
  617.  ???    AERASE    Erase Rectangle (see #2286)
  618.  ???    ASCROLL Scroll Rectangle (see #2287)
  619.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #2285)
  620.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #2288)
  621.  ???    ASFONT    Set Font (see #2289)
  622.  ???    AXLATE    Assign Alphanumeric Color (see #2291)
  623.  
  624. Format of ABLOCKCGA parameter block:
  625. Offset    Size    Description    (Table 2281)
  626.  00h    WORD    000Ah (length of following data)
  627.  02h    WORD    top-left coordinate of character block
  628.  04h    WORD    width of block
  629.  06h    DWORD    -> block of WORDs describing characters (see #2282)
  630.  0Ah    BYTE    length of block in characters
  631.  0Bh    BYTE    highlight attribute
  632.         bit 4: transparent background
  633.         bit 5: overstrike
  634.         bit 6: reverse video
  635.         bit 7: underscore
  636. SeeAlso: #2283
  637.  
  638. Bitfields for one character in ABLOCKCGA character block:
  639. Bit(s)    Description    (Table 2282)
  640.  3-0    foreground attribute
  641.  7-4    background attribute
  642.  15-8    character code
  643.  
  644. Format of ABLOCKMFI parameter block:
  645. Offset    Size    Description    (Table 2283)
  646.  00h    WORD    0009h (length of following data)
  647.  02h    WORD    top-left coordinate of character block
  648.  04h    WORD    width of block
  649.  06h    DWORD    -> block of DWORDs describing characters (see #2284)
  650.  0Ah    BYTE    length of block in characters
  651. SeeAlso: #2281
  652.  
  653. Bitfields for one character in ABLOCKMFI character block:
  654. Bit(s)    Description    (Table 2284)
  655.  7-0    reserved
  656.  9-8    low two bits of font number
  657.  12    transparent background
  658.  13    overstrike
  659.  14    reverse video
  660.  15    underscore
  661.  19-16    foreground color attribute
  662.  23-20    background color attribute
  663.  31-24    character code
  664.  
  665. Format of ACURSOR parameter block:
  666. Offset    Size    Description    (Table 2285)
  667.  00h    WORD    0002h (length of following data)
  668.  02h    BYTE    column (0-based)
  669.  03h    BYTE    row (0-based)
  670. SeeAlso: #2288
  671.  
  672. Format of AERASE parameter block:
  673. Offset    Size    Description    (Table 2286)
  674.  00h    WORD    0005h (length of following data)
  675.  02h    BYTE    left-most column (0-based)
  676.  03h    BYTE    top-most row (0-based)
  677.  04h    BYTE    rectangle's width in character cells
  678.  05h    BYTE    rectangle's height in character cells
  679.  06h    BYTE    background color (bits 7-4)
  680. SeeAlso: #2287
  681.  
  682. Format of ASCROLL parameter block:
  683. Offset    Size    Description    (Table 2287)
  684.  00h    WORD    0006h (length of following data)
  685.  02h    BYTE    left-most column (0-based) of source
  686.  03h    BYTE    top-most row (0-based) of source
  687.  04h    BYTE    rectangle's width in character cells
  688.  05h    BYTE    rectangle's height in character cells
  689.  06h    BYTE    left-most column (0-based) of destination
  690.  07h    BYTE    top-most row (0-based) of destination
  691. SeeAlso: #2286
  692.  
  693. Format of ASCUR parameter block:
  694. Offset    Size    Description    (Table 2288)
  695.  00h    WORD    0003h (length of following data)
  696.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  697.  03h    BYTE    cursor stop line
  698.  04h    BYTE    cursor attribute
  699.         00h normal
  700.         01h hidden
  701.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  702.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  703. Notes:    no cursor is shown if the start line is greater than the stop line
  704.     the alphanumeric cursor is hidden after each mode change
  705. SeeAlso: #2285,INT 10/AH=01h
  706.  
  707. Format of ASFONT parameter block:
  708. Offset    Size    Description    (Table 2289)
  709.  00h    WORD    0005h (length of following data)
  710.  02h    BYTE    font number (0-3)
  711.  03h    DWORD    -> character set definition block (see #2290)
  712.  
  713. Format of 8514/A character set definition block:
  714. Offset    Size    Description    (Table 2290)
  715.  00h    BYTE    reserved
  716.  01h    BYTE    type of character set
  717.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  718.  02h    BYTE    reserved
  719.  03h    DWORD    reserved
  720.  07h    BYTE    cell width in pixels
  721.  08h    BYTE    cell height in pixels
  722.  09h    BYTE    reserved
  723.  0Ah    WORD    cell size in bytes
  724.  0Ch    WORD    flags
  725.         bit 15: reserved (0)
  726.         bit 14: color bitmap
  727.         bit 13: proportional spacing
  728.  0Eh    DWORD    -> index table
  729.  12h    DWORD    -> character width table
  730.  16h    BYTE    initial code point
  731.  17h    BYTE    final code point
  732.  18h    DWORD    -> character definition table
  733.  1Ch    WORD    reserved
  734.  1Eh    DWORD    -> second character definition table
  735.  22h    WORD    reserved
  736.  24h    DWORD    -> third character definition table
  737.  
  738. Format of AXLATE parameter block:
  739. Offset    Size    Description    (Table 2291)
  740.  00h    WORD    0080h (length of following data)
  741.  02h 64 BYTEs    character foreground translation table
  742.  42h 64 BYTEs    character background translation table
  743.  
  744. Format of HBAR parameter block:
  745. Offset    Size    Description    (Table 2292)
  746.  00h    WORD    0000h (no data following)
  747. SeeAlso: #2304
  748.  
  749. Format of HBBC parameter block:
  750. Offset    Size    Description    (Table 2293)
  751.  00h    WORD    0010h (length of following data)
  752.  02h    WORD    data format
  753.         0000h across-the-plane copy (color expansion)
  754.         0008h through-the-plane copy
  755.  04h    WORD    data rectangle's width
  756.  06h    WORD    data rectangle's height
  757.  08h    BYTE    source bit plane number (across-the-plane copies only)
  758.  09h    BYTE    reserved
  759.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  760.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  761.           display memory
  762. Note:    copies data from one location in video memory to another
  763. SeeAlso: #2294
  764.  
  765. Format of HBBCHN parameter block:
  766. Offset    Size    Description    (Table 2294)
  767.  00h    WORD    0006h (length of following data)
  768.  02h    DWORD    -> data buffer in system memory
  769.  06h    WORD    number of bytes to transfer
  770. Note:    this function performs the actual data transfer for a bitBLT set up
  771.       with HBBR, HBBW, or HCBBW
  772. SeeAlso: #2293,#2295,#2296,#2297
  773.  
  774. Format of HBBR parameter block:
  775. Offset    Size    Description    (Table 2295)
  776.  00h    WORD    000Ch or 0014h (length of following data)
  777.  02h    WORD    data format
  778.         0000h across-the-plane copy (color expansion)
  779.         0008h through-the-plane copy
  780.  04h    WORD    data rectangle's width
  781.  06h    WORD    data rectangle's height
  782.  08h    BYTE    source bit plane number
  783.  09h    BYTE    reserved
  784.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  785.           display memory
  786. ---optional---
  787.  0Eh    WORD    sub-rectangle left margin in pixels
  788.  10h    WORD    sub-rectangle top margin in pixels
  789.  12h    WORD    sub-rectangle width
  790.  14h    WORD    sub-rectangle height
  791. SeeAlso: #2294,#2295,#2297
  792.  
  793. Format of HBBW parameter block:
  794. Offset    Size    Description    (Table 2296)
  795.  00h    WORD    000Ah or 0012h (length of following data)
  796.  02h    WORD    data format
  797.         0000h across-the-plane copy (color expansion)
  798.         0008h through-the-plane copy
  799.  04h    WORD    data rectangle's width
  800.  06h    WORD    data rectangle's height
  801.  08h  2 WORDs    X,Y coordinates of destination in display memory
  802. ---optional---
  803.  0Ch    WORD    sub-rectangle left margin in pixels
  804.  0Eh    WORD    sub-rectangle top margin in pixels
  805.  10h    WORD    sub-rectangle width
  806.  12h    WORD    sub-rectangle height
  807. SeeAlso: #2294,#2296,#2297
  808.  
  809. Format of HCBBW parameter block:
  810. Offset    Size    Description    (Table 2297)
  811.  00h    WORD    0006h or 000Eh (length of following data)
  812.  02h    WORD    data format
  813.         0000h across-the-plane copy (color expansion)
  814.         0008h through-the-plane copy
  815.  04h    WORD    data rectangle's width
  816.  06h    WORD    data rectangle's height
  817. ---optional---
  818.  08h    WORD    sub-rectangle left margin in pixels
  819.  0Ah    WORD    sub-rectangle top margin in pixels
  820.  0Ch    WORD    sub-rectangle width
  821.  0Eh    WORD    sub-rectangle height
  822. SeeAlso: #2294,#2295,#2296
  823.  
  824. Format of HCCHST parameter block:
  825. Offset    Size    Description    (Table 2298)
  826.  00h    WORD    length of following data
  827.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  828. SeeAlso: #2299
  829.  
  830. Format of HCHST parameter block:
  831. Offset    Size    Description    (Table 2299)
  832.  00h    WORD    length of following data
  833.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  834.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  835. SeeAlso: #2298
  836.  
  837. Format of HCLINE parameter block:
  838. Offset    Size    Description    (Table 2300)
  839.  00h    WORD    length of following data (multiple of 4)
  840.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  841. Notes:    the first line segment is drawn beginning at the current position
  842.     on completion, the current position is set to the last point drawn
  843. SeeAlso: #2310,#2322,#2303
  844.  
  845. Format of HCLOSE parameter block:
  846. Offset    Size    Description    (Table 2301)
  847.  00h    WORD    0001h (length of following data)
  848.  01h    BYTE    (ret) return code
  849. SeeAlso: #2313
  850.  
  851. Format of HCMRK parameter block:
  852. Offset    Size    Description    (Table 2302)
  853.  00h    WORD    length of following data
  854.  02h 2N WORDs    X,Y of N points
  855. Note:    draws N+1 marker symbols, the first one at the current position
  856. SeeAlso: #2312
  857.  
  858. Format of HCRLINE parameter block:
  859. Offset    Size    Description    (Table 2303)
  860.  00h    WORD    length of following data (multiple of 4)
  861.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  862.           (current position for first point) for each of N points in
  863.           polyline
  864. Notes:    the first line segment is drawn beginning at the current position
  865.     on completion, the current position is set to the last point drawn
  866. SeeAlso: #2310,#2300,#2322
  867.  
  868. Format of HEAR parameter block:
  869. Offset    Size    Description    (Table 2304)
  870.  00h    WORD    0001h (length of following data)
  871.  02h    BYTE    area definition flags
  872.         bits 7-6: End Area type
  873.             00 complete, perform fill
  874.             01 suspend definition
  875.             10 complete, but don't fill
  876. SeeAlso: #2292
  877.  
  878. Format of HEGS parameter block:
  879. Offset    Size    Description    (Table 2305)
  880.  00h    WORD    0000h (no data following)
  881.  
  882. Format of HESC parameter block:
  883. Offset    Size    Description    (Table 2306)
  884.  00h    WORD    0000h (no data following)
  885.  
  886. Format of HINIT parameter block:
  887. Offset    Size    Description    (Table 2307)
  888.  00h    WORD    0002h (length of following data)
  889.  02h    WORD    segment of task buffer
  890. SeeAlso: #2346
  891.  
  892. Format of HINT parameter block:
  893. Offset    Size    Description    (Table 2308)
  894.  00h    WORD    0004h (length of following data)
  895.  02h    DWORD    interrupt/event identifier
  896.         bit 31: vertical blanking
  897.  
  898. Format of HLDPAL parameter block:
  899. Offset    Size    Description    (Table 2309)
  900.  00h    WORD    000Ah (length of following data)
  901.  02h    BYTE    palette ID (00h = user, 01h = default)
  902.  03h    BYTE    reserved
  903.  04h    WORD    number of first palette entry
  904.  06h    WORD    number of entries
  905.  08h    DWORD    -> palette entries
  906. SeeAlso: #2343
  907.  
  908. Format of HLINE parameter block:
  909. Offset    Size    Description    (Table 2310)
  910.  00h    WORD    length of following data (multiple of 4)
  911.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  912. Note:    on completion, the current position is set to the last point drawn
  913. SeeAlso: #2300,#2322,#2303
  914.  
  915. (Table 2311)
  916. Values for 8514/A mix:
  917.  00h    retain previous mix
  918.  01h    source OR destination
  919.  02h    source
  920.  04h    source XOR destination
  921.  05h    leave as-is
  922.  06h    max(source,destination)
  923.  07h    min(source,destination)
  924.  08h    source+destination (clipped)
  925.  09h    destination-source (clipped to zero)
  926.  0Ah    source-destination (clipped to zero)
  927.  0Bh    average source and destination
  928.  10h    zero destination
  929.  11h    source AND destination
  930.  12h    source AND NOT destination
  931.  13h    source
  932.  14h    NOT source AND destination
  933.  15h    leave as-is
  934.  16h    source XOR destination
  935.  17h    source OR destination
  936.  18h    NOT source AND NOT destination
  937.  19h    NOT (source XOR destination)
  938.  1Ah    NOT destination
  939.  1Bh    source OR NOT destination
  940.  1Ch    NOT source
  941.  1Dh    NOT source OR destination
  942.  1Eh    NOT source OR NOT destination
  943.  1Fh    set all bits of destination
  944.  
  945. Format of HMRK parameter block:
  946. Offset    Size    Description    (Table 2312)
  947.  00h    WORD    length of following data (multiple of 4)
  948.  02h 2N WORDs    X,Y for N points
  949. SeeAlso: #2302
  950.  
  951. Format of HOPEN parameter block:
  952. Offset    Size    Description    (Table 2313)
  953.  00h    WORD    0003h (length of following data)
  954.  01h    BYTE    initialization flags
  955.         bit 6: don't load default palette
  956.         bit 7: clear bitplanes
  957.  02h    BYTE    mode type (see #2314)
  958.  03h    BYTE    (ret) return code
  959.         bit 7: no adapter (hardware mismatch)
  960. SeeAlso: #2301
  961.  
  962. (Table 2314)
  963. Values for 8514/A display mode:
  964.  0000h    12x20 characters, 1024x768
  965.  0001h    8x14 characters, 640x480
  966.  0002h    8x14 characters, 1024x768
  967.  0003h    7x15 characters, 1024x768
  968.  
  969. Format of HQCOORD parameter block:
  970. Offset    Size    Description    (Table 2315)
  971.  00h    WORD    0004h (length of following data)
  972.  02h    BYTE    (ret) coordinate format
  973.         bits 7-4: bytes per coordinate
  974.         bits 3-0: fraction bytes in coordinate
  975.  03h    BYTE    (ret) relative coordinate format
  976.         bits 7-4: bytes per coordinate
  977.         bits 3-0: fraction bytes in coordinate
  978.  04h    BYTE    (ret) number of dimensions (2-4)
  979.  05h    BYTE    (ret) test results
  980.         bit 7: coordinate format not supported
  981.         bit 6: relative coordinate format not supported
  982.         bit 5: specified dimension not supported
  983.  
  984. Format of HQCP parameter block:
  985. Offset    Size    Description    (Table 2316)
  986.  00h    WORD    0004h (length of following data)
  987.  02h    WORD    (ret) current X position
  988.  04h    WORD    (ret) current Y position
  989.  
  990. Format of HQDFPAL parameter block:
  991. Offset    Size    Description    (Table 2317)
  992.  00h    WORD    0040h (length of following data)
  993.  02h 16    DWORDs    (ret) color index values
  994. Note:    the default palette is set to match the default EGA/VGA 16-color
  995.       palettes
  996.  
  997. Format of HQDPS parameter block:
  998. Offset    Size    Description    (Table 2318)
  999.  00h    WORD    0006h (length of following data)
  1000.  02h    WORD    (ret) size of data buffer in bytes
  1001.  04h    WORD    (ret) stack size in bytes
  1002.  06h    WORD    (ret) size of palette save buffer in bytes
  1003.  
  1004. Format of HQMODE parameter block:
  1005. Offset    Size    Description    (Table 2319)
  1006.  00h    WORD    0012h (length of following data)
  1007.  02h    BYTE    current video mode (see #2314)
  1008.  03h    WORD    driver version
  1009.         bit 6: 80286/8086 CPU
  1010.         bit 5: 8 bit planes instead of 4 planes
  1011.         bits 4-0: hardware release number
  1012.  05h    BYTE    adapter type
  1013.         03h 8514/A
  1014.         04h XGA
  1015.  06h    BYTE    reserved (display type)
  1016.  07h    BYTE    character cell width
  1017.  08h    BYTE    character cell height
  1018.  09h    BYTE    number of bit planes
  1019.  0Ah    WORD    screen width (pixels)
  1020.  0Ch    WORD    screen height (pixels)
  1021.  0Eh    WORD    horizontal resolution (pixels/inch)
  1022.  10h    WORD    vertical resolution (pixels/inch)
  1023.  12h    BYTE    flag: 00h = monochrome, FFh = color
  1024.  13h    BYTE    intensity levels
  1025. SeeAlso: #2320
  1026.  
  1027. Format of HQMODES parameter block:
  1028. Offset    Size    Description    (Table 2320)
  1029.  00h    WORD    0021h (length of following data)
  1030.  02h    BYTE    (ret) adapter type
  1031.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  1032. SeeAlso: #2319
  1033.  
  1034. Format of HRECT parameter block:
  1035. Offset    Size    Description    (Table 2321)
  1036.  00h    WORD    0008h (legth of following data)
  1037.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  1038.  06h    WORD    rectangle's width
  1039.  08h    WORD    rectangle's height
  1040. Note:    the rectangle is filled using the current pattern, color, and mix
  1041.  
  1042. Format of HRLINE parameter block:
  1043. Offset    Size    Description    (Table 2322)
  1044.  00h    WORD    length of following data (multiple of 4)
  1045.  02h  2 WORDs    X,Y coordinates of starting point
  1046.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  1047.           for each of N points in polyline
  1048. Note:    on completion, the current position is set to the last point drawn
  1049. SeeAlso: #2310,#2300,#2303
  1050.  
  1051. Format of HRLPC parameter block:
  1052. Offset    Size    Description    (Table 2323)
  1053.  00h    WORD    0000h (no data following)
  1054. Note:    used for continuity of lines crossing scissors boundaries
  1055. SeeAlso: #2336
  1056.  
  1057. Format of HRPAL parameter block:
  1058. Offset    Size    Description    (Table 2324)
  1059.  00h    WORD    0300h (length of following data)
  1060.  02h 768 BYTEs    buffer containing previously-saved palette table
  1061. SeeAlso: #2343
  1062.  
  1063. Format of HSBCOL parameter block:
  1064. Offset    Size    Description    (Table 2325)
  1065.  00h    WORD    0004h (length of following data)
  1066.  02h    DWORD    color index for new background color
  1067. SeeAlso: #2329
  1068.  
  1069. Format of HSBP parameter block:
  1070. Offset    Size    Description    (Table 2326)
  1071.  00h    WORD    000Ch (length of following data)
  1072.  02h    DWORD    bitmask for graphics updates
  1073.  06h    DWORD    bitmask for alphanumeric updates
  1074.  0Ah    DWORD    display bitmask
  1075.  
  1076. Format of HSCELL parameter block:
  1077. Offset    Size    Description    (Table 2327)
  1078.  00h    
  1079.  
  1080. Format of HSCMP parameter block:
  1081. Offset    Size    Description    (Table 2328)
  1082.  00h    WORD    0005h (length of following data)
  1083.  02h    DWORD    comparison color
  1084.  06h    BYTE    logical operation
  1085.         00h True
  1086.         01h pel > testcolor
  1087.         02h pel == testcolor
  1088.         03h pel < testcolor
  1089.         04h False
  1090.         05h pel >= testcolor
  1091.         06h pel <> testcolor
  1092.         07h pel <= testcolor
  1093.  
  1094. Format of HSCOL parameter block:
  1095. Offset    Size    Description    (Table 2329)
  1096.  00h    WORD    0004h (length of following data)
  1097.  02h    DWORD    color index for new foreground color
  1098. SeeAlso: #2325
  1099.  
  1100. Format of HSCOORD parameter block:
  1101. Offset    Size    Description    (Table 2330)
  1102.  00h    WORD    0003h (length of following data)
  1103.  02h    BYTE    coordinate format
  1104.         bits 7-4: bytes per coordinate
  1105.         bits 3-0: fraction bytes in coordinate
  1106.  03h    BYTE    relative coordinates format
  1107.         bits 7-4: bytes per coordinate
  1108.         bits 3-0: fraction bytes in coordinate
  1109.  04h    BYTE    number of dimensions (2-4)
  1110.  
  1111. Format of HSCP parameter block:
  1112. Offset    Size    Description    (Table 2331)
  1113.  00h    WORD    0004h (length of following data)
  1114.  02h  2 WORDs    X,Y or coordinate for new current position
  1115.  
  1116. Format of HSCS parameter block:
  1117. Offset    Size    Description    (Table 2332)
  1118.  00h    WORD    0004h (length of following data)
  1119.  02h    DWORD    -> character set definition
  1120.  
  1121. Format of HSGQ parameter block:
  1122. Offset    Size    Description    (Table 2333)
  1123.  00h    WORD    0002h (length of following data)
  1124.  02h    WORD    quality settings (see #2335)
  1125.  
  1126. Format of HSHS parameter block:
  1127. Offset    Size    Description    (Table 2334)
  1128.  00h    WORD    0008h (length of following data)
  1129.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  1130.  04h    WORD    right edge
  1131.  06h    WORD    top edge
  1132.  08h    WORD    bottom edget
  1133.  
  1134. Bitfields for 8514/A quality settings:
  1135. Bit(s)    Description    (Table 2335)
  1136.  15    reserved
  1137.  14    high precision
  1138.  13    reserved
  1139.  12-11    pel code
  1140.     00 not drawn
  1141.     01 drawn
  1142.     02 conditional on overpainting/mixes
  1143.  10    don't close areas to be filed
  1144.  9-0    reserved
  1145.  
  1146. Format of HSLPC parameter block:
  1147. Offset    Size    Description    (Table 2336)
  1148.  00h    WORD    0000h (no data following)
  1149. Note:    used for continuity of lines crossing scissors boundaries
  1150. SeeAlso: #2323
  1151.  
  1152. Format of HSLT parameter block:
  1153. Offset    Size    Description    (Table 2337)
  1154.  00h    WORD    0006h (length of following data)
  1155.  02h    BYTE    line type (see #2338)
  1156.  03h    BYTE    reserved
  1157.  04h    DWORD    -> user line-type definition (if user type)
  1158. SeeAlso: #2339
  1159.  
  1160. (Table 2338)
  1161. Values for 8514/A line type:
  1162.  00h    user line type
  1163.  01h    dotted
  1164.  02h    short dashes
  1165.  03h    dash-dot
  1166.  04h    double dotted
  1167.  05h    dashed
  1168.  06h    dash double dot
  1169.  07h    solid
  1170.  08h    invisible
  1171. SeeAlso: #2337
  1172.  
  1173. Format of HSLW parameter block:
  1174. Offset    Size    Description    (Table 2339)
  1175.  00h    WORD    0001h (length of following data)
  1176.  02h    BYTE    width of line in pixels
  1177. SeeAlso: #2337
  1178.  
  1179. Format of HSMODE parameter block:
  1180. Offset    Size    Description    (Table 2340)
  1181.  00h    WORD    0001h (length of following data)
  1182.  02h    BYTE    new display mode number (see #2314)
  1183.  
  1184. Format of HSMRK paramter block:
  1185. Offset    Size    Description    (Table 2341)
  1186.  00h    WORD    000Eh (length of following data)
  1187.  02h    BYTE    cell width
  1188.  03h    BYTE    cell height
  1189.  04h    BYTE    flags
  1190.  05h    BYTE    reserved
  1191.  06h    WORD    length of marker symbol
  1192.  08h    DWORD    -> image definition data
  1193.  0Ch    DWORD    -> color definition data
  1194. SeeAlso: #2344
  1195.  
  1196. Format of HSMX parameter block:
  1197. Offset    Size    Description    (Table 2342)
  1198.  00h    WORD    0002h (length of following data)
  1199.  02h    BYTE    foreground mix (see #2311)
  1200.  03h    BYTE    background mix (see #2311)
  1201.  
  1202. Format of HSPAL parameter block:
  1203. Offset    Size    Description    (Table 2343)
  1204.  00h    WORD    0300h (length of following data)
  1205.  02h 768 BYTEs    buffer for palette table
  1206. SeeAlso: #2309,#2324
  1207.  
  1208. Format of HSPATT parameter block:
  1209. Offset    Size    Description    (Table 2344)
  1210.  00h    WORD    000Eh (length of following data)
  1211.  02h    BYTE    cell width
  1212.  03h    BYTE    cell height
  1213.  04h    BYTE    flags
  1214.  05h    BYTE    reserved
  1215.  06h    WORD    length of marker symbol
  1216.  08h    DWORD    -> image definition data
  1217.  0Ch    DWORD    -> color definition data
  1218. SeeAlso: #2341,#2345
  1219.  
  1220. Format of HSPATTO parameter block:
  1221. Offset    Size    Description    (Table 2345)
  1222.  00h    WORD    0004h (length of following data)
  1223.  02h  2 WORDs    X,Y of pattern reference point (origin)
  1224. SeeAlso: #2344
  1225.  
  1226. Format of HSYNC parameter block:
  1227. Offset    Size    Description    (Table 2346)
  1228.  00h    WORD    0002h (length of following data)
  1229.  02h    WORD    segment of task state buffer
  1230. SeeAlso: #2307
  1231.  
  1232. Format of HXLATE parameter block:
  1233. Offset    Size    Description    (Table 2347)
  1234.  00h    WORD    0020h (length of following data)
  1235.  02h 32 BYTEs    color index table
  1236. --------V-7F0105-----------------------------
  1237. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  1238.     AX = 0105h
  1239. Return: CF set on error
  1240.     CF clear if successful
  1241.         CX:DX -> array of FAR pointers to entry points (see #2280)
  1242. Note:    this API is a superset of the 8514/A Adapter Interface
  1243.       (see AX=0105h"HDILOAD")
  1244. ----------7F0106-----------------------------
  1245. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  1246.     AX = 0106h
  1247. Return: AX = 0105h if successfully unloaded
  1248. SeeAlso: AX=0105h
  1249. --------N-7F02-------------------------------
  1250. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  1251.     AH = 02h
  1252.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  1253. Return: AL = status (see #2274)
  1254.     AH = semaphore owner if status=02h
  1255. SeeAlso: AH=00h,AH=01h,AH=42h
  1256. --------N-7F02-------------------------------
  1257. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  1258.     AH = 02h
  1259.     AL = stream number (01h-40h)
  1260.     CX = length of frame
  1261.     ES:SI -> frame to be sent
  1262. SeeAlso: AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  1263. --------f-7F0200-----------------------------
  1264. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  1265.     AX = 0200h
  1266. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  1267. --------N-7F03-------------------------------
  1268. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  1269.     AH = 03h
  1270. Return: AL = user number
  1271.     AH = machine number (MW386)
  1272. Note:    this function call is the recommended method for a CPU-bound process to
  1273.       prevent its priority from being lowered
  1274. SeeAlso: AH=04h,AH=05h,AH=A1h
  1275. --------N-7F03-------------------------------
  1276. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  1277.     AH = 03h
  1278.     AL = stream number (01h-40h)
  1279.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  1280.           bytes is usually sufficient)
  1281. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  1282.     CX = length of received frame
  1283. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  1284. --------N-7F04-------------------------------
  1285. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  1286.     AH = 04h
  1287. Return: AL = total number of users on currrent machine (MW386)
  1288.     AL = number of slaves on system (NTNX)
  1289. SeeAlso: AH=03h
  1290. --------N-7F04-------------------------------
  1291. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  1292.     AH = 04h
  1293.     AL = stream number (01h-40h)
  1294. Return: CX = state (0000h disconnected, 0001h connected)
  1295.     DX = delta state (0000h no change, 0001h changed since last check)
  1296. SeeAlso: AH=02h"G8BPQ",AH=05h"G8BPQ"
  1297. --------N-7F05-------------------------------
  1298. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  1299.     AH = 05h
  1300.     AL = function
  1301.         00h lock system (disable slave services)
  1302.         01h unlock system
  1303.         02h enable spooler
  1304.         03h disable spooler
  1305.         04h enable slave timer update
  1306.         05h disable slave timer update
  1307.         06h enable form feeds
  1308.         07h disable form feeds
  1309. SeeAlso: INT 17/AH=A4h
  1310. --------N-7F05-------------------------------
  1311. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  1312.     AH = 05h
  1313.     DX:DI -> buffer for user information record (see #2348)
  1314. Notes:    MW386 provides this function for backward compatibility only, and sets
  1315.       many of the fields to zero because they are meaningless under MW386
  1316.     this function has no effect when called by the host (user 0)
  1317. SeeAlso: AH=03h
  1318.  
  1319. Format of Alloy user information record:
  1320. Offset    Size    Description    (Table 2348)
  1321.  00h    WORD    segment of video RAM
  1322.  02h    WORD    segment of secondary copy of video RAM
  1323.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  1324.         flag nonzero if update needed
  1325.  06h    WORD    video NMI enable port
  1326.         (not used by MW386, set to 0000h)
  1327.  08h    WORD    video NMI disable port
  1328.         (not used by MW386, set to 0000h)
  1329.  0Ah    BYTE    processor type
  1330.         00h 8088
  1331.         01h V20
  1332.         02h 8086
  1333.         03h V30
  1334.         06h 80386
  1335.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  1336.         (not used by MW386, set to 0000h)
  1337.  0Dh    WORD    offset of terminal driver
  1338.         (not used by MW386, set to 0000h)
  1339.  0Fh    BYTE    port for console I/O
  1340.         (not used by MW386, set to 0000h)
  1341.  10h    WORD    offset of processor communication busy flag
  1342.         bit 7 set when slave communicating with host
  1343.  12h    WORD    pointer to FAR NX system call
  1344.         (not used by MW386, set to 0000h)
  1345.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  1346.  16h    WORD    offset of command/status word
  1347.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  1348.         nonzero if screen must be repainted
  1349.  1Ah    WORD    offset of screen repaint flag
  1350.  1Ch    WORD    pointer to NEAR NX system call
  1351.         (not used by MW386, set to 0000h)
  1352.  1Eh    WORD    offset for intercept flags
  1353.         (not used by MW386, set to 0000h)
  1354.         intercept flag = FFh if MS-DOS intercepts should be disabled
  1355.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  1356.         lock flag = FFh if backgrnd screen updates should be suspended
  1357.  22h 26 BYTEs    reserved
  1358. --------N-7F05-------------------------------
  1359. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  1360.     AH = 05h
  1361.     AL = stream number (01h-40h)
  1362. Note:    this function must be called in order to receive a report of another
  1363.       status change
  1364. SeeAlso: AH=04h"G8BPQ"
  1365. --------N-7F06-------------------------------
  1366. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  1367.     AH = 06h
  1368.     AL = drive number (1=A:, 2=B:, etc)
  1369.     ES:DI -> drive info record (see #2349)
  1370. Return: AX = status
  1371.         0000h successful
  1372.         ES:DI buffer filled
  1373.         0001h not shared drive
  1374.  
  1375. Format of Alloy drive info record:
  1376. Offset    Size    Description    (Table 2349)
  1377.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  1378.  02h    WORD    segment of allocation map (owner table)
  1379.         one byte per FAT entry, containing user ID owning that entry
  1380.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  1381.  06h    WORD    pointer to configuration file
  1382.  08h    WORD    total number of clusters
  1383.  0Ah    WORD    bytes per sector
  1384.  0Ch    WORD    sectors per cluster
  1385.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  1386. --------N-7F06-------------------------------
  1387. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  1388.     AH = 06h
  1389.     DL = drive number (1=A:,2=B:,etc)
  1390.     CX = number of clusters to allocate
  1391. Return: AH = status
  1392.         00h successful
  1393.         CX = number of clusters still free
  1394.         10h invalid shared drive request
  1395.         CL = first and second shared drives
  1396.         11h invalid cluster count (must be 01h-FFh)
  1397. --------N-7F06-------------------------------
  1398. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  1399.     AH = 06h
  1400.     AL = stream number (01h-40h)
  1401.     CX = subfunction
  1402.         0000h connect to node
  1403.         DL bit 0: use BBS callsign instead of Node Call
  1404.         0001h connect to node
  1405.         use BBS Call if APPLMASK=1
  1406.         0002h disconnect
  1407.         0003h return user to node
  1408. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  1409. --------N-7F07-------------------------------
  1410. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  1411.     AH = 07h
  1412. Return: ES:DI -> shared drive list (see #2350)
  1413. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  1414.       be returned as shared
  1415.  
  1416. Format of Alloy shared drive list:
  1417. Offset    Size    Description    (Table 2350)
  1418.  00h    BYTE    string length
  1419.  01h    BYTE    number of shared drives
  1420.  02h  N BYTEs    one byte per shared drive
  1421. --------N-7F07-------------------------------
  1422. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  1423.     AH = 07h
  1424.     AL = stream number (01h-40h)
  1425. Return: BX = number of pending receive frames
  1426.     CX = number of unacknowledged sent frames
  1427.     DX = number of buffers available
  1428. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  1429. --------N-7F08-------------------------------
  1430. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  1431.     AH = 08h
  1432.     CL = function
  1433.         00h get original interrupt vector
  1434.         01h get Network Executive interrrupt
  1435.     AL = interrupt number
  1436.     DX:SI -> DWORD to hold interrupt vector
  1437. Return: AL = status
  1438.         00h successful
  1439.         01h interrupt vector not used by network executive
  1440.         02h invalid subfunction
  1441. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  1442.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  1443. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  1444. --------N-7F08--CL02-------------------------
  1445. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  1446.     AH = 08h
  1447.     CL = 02h
  1448.     DX = timeout in seconds
  1449. Return: AL = status
  1450.         00h successful
  1451.         02h invalid subfunction
  1452. --------N-7F08-------------------------------
  1453. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  1454.     AH = 08h
  1455.     AL = stream number (01h-40h)
  1456. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  1457.     ---v4.05+ ---
  1458.     AL = radio port to which channel is connected (level 2)
  1459.     AH = session type (see #2351)
  1460.     BX = L2 paclen for session
  1461.     CX = maximum frame size
  1462.     DX = L4 window size or 0000h if not L4 circuit
  1463. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1464.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1465. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  1466.  
  1467. Bitfields for G8BPQ session type:
  1468. Bit(s)    Description    (Table 2351)
  1469.  0    L2LINK
  1470.  1    SESSION
  1471.  2    UPLINK
  1472.  3    DOWNLIND
  1473.  5    BPQHOST
  1474. --------T-7F09-------------------------------
  1475. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  1476.     AH = 09h
  1477.     AL = priority (0-7)
  1478. Note:    the installation check consists of ensuring that the interrupt vector
  1479.       is not pointing at segment 0000h, then checking whether the byte
  1480.       at offset 0000h in the interrupt handler's segment is E9h
  1481. Index:    installation check;MultiLink Advanced
  1482. --------N-7F09-------------------------------
  1483. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  1484.     AH = 09h
  1485.     AL = application
  1486.         00h node
  1487.         01h BBS
  1488.         02h HOST
  1489.         03h SYSOP
  1490.     BL = what to get (00h callsign, 01h application name)
  1491.     ES:SI -> buffer for callsign/name string
  1492. Return: CX = length of returned string
  1493. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  1494. --------N-7F09-------------------------------
  1495. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  1496.     AH = 09h
  1497.     CL = function
  1498.         00h enable checking of RTNX.MUD file
  1499.         01h disable RTNX.MUD checking
  1500. --------N-7F09--CL02-------------------------
  1501. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  1502.     AH = 09h
  1503.     CL = 02h
  1504. Note:    in dedicated mode, the host will only poll for I/O requests from the
  1505.       slave processors, and not provide workstation services
  1506. --------N-7F09--CL03-------------------------
  1507. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  1508.     AH = 09h
  1509.     CL = 03h
  1510.     AL = default interrupt number (67h,7Fh,etc)
  1511. Return: CL = actual interrupt which handles specified interrupt's calls
  1512. SeeAlso: AH=08h
  1513. --------N-7F0A--CL00-------------------------
  1514. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  1515.     AH = 0Ah
  1516.     CL = 00h
  1517.     ES:DI -> buffer for system flags (see #2352)
  1518. Return: ES:DI buffer filled
  1519. Notes:    on a slave, only the NX_Busy flag is returned
  1520.     all three flags are at fixed positions, so this function only needs to
  1521.       be called once
  1522.     an interrupt handler should only perform DOS or device accesses when
  1523.       all three flags are 00h
  1524.  
  1525. Format of Alloy system flags:
  1526. Offset    Size    Description    (Table 2352)
  1527.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  1528.  04h    DWORD    pointer to device driver busy flag
  1529.  08h    DWORD    pointer to InTimer flag
  1530. --------N-7F0A-------------------------------
  1531. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  1532.     AH = 0Ah
  1533.     AL = radio port
  1534.     ES:SI -> buffer containing data to be sent
  1535.     CX = number of bytes to send
  1536. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  1537. --------N-7F0B--CL02-------------------------
  1538. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  1539.     AH = 0Bh
  1540.     CL = 02h
  1541.     AL = slave ID number
  1542.     CH = DOS to activate
  1543.         00h graphics DOS
  1544.         01h character DOS
  1545. Return: AL = status
  1546.         00h successful
  1547.         01h nothing done, proper DOS type already loaded
  1548. --------N-7F0B-------------------------------
  1549. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  1550.     AH = 0Bh
  1551.     ES:DI -> buffer for received data (see #2353)
  1552. Return: CX = number of bytes received
  1553. Note:    the specified buffer must be large enough to receive a full frame
  1554. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  1555.  
  1556. Format of G8BPQ received data:
  1557. Offset    Size    Description    (Table 2353)
  1558.  00h    WORD    internal control information
  1559.  02h    BYTE    port number (bit 7 set if transmitted frame)
  1560.  03h    WORD    frame length including this header
  1561.  05h    var    user data
  1562. --------N-7F0C-------------------------------
  1563. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  1564.     AH = 0Ch
  1565.     DX = function
  1566.         0001h update beacon text
  1567.         CX = length of data
  1568.         ES:SI -> data to be sent in beacons
  1569. SeeAlso: AH=09h"G8BPQ"
  1570. --------N-7F0F-------------------------------
  1571. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  1572.     AH = 0Fh
  1573. Return: AX = time marker (clock ticks modulo 64K)
  1574. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1575.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1576. SeeAlso: AH=01h"G8BPQ",INT 1A/AH=00h
  1577. --------N-7F10--CL00-------------------------
  1578. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  1579.     AH = 10h
  1580.     CL = 00h
  1581.     AL = channel number
  1582.     DX:DI -> channel buffer
  1583. Return: AL = status (00h-03h,0Dh) (see #2354)
  1584. Note:    may not be invoked from within a hardware interrupt handler
  1585. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  1586.  
  1587. (Table 2354)
  1588. Values for Alloy function status:
  1589.  00h    successful
  1590.  01h    busy
  1591.  02h    channel range error (not 00h-3Fh)
  1592.  03h    invalid subfunction
  1593.  0Ah    channel not open
  1594.  0Ch    channel already locked
  1595.  0Dh    unable to open
  1596. --------N-7F10--CL01-------------------------
  1597. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  1598.     AH = 10h
  1599.     CL = 01h
  1600.     AL = channel number
  1601. Return: AL = status (00h-03h,0Ah) (see #2354)
  1602. Note:    may not be invoked from within a hardware interrupt handler
  1603. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  1604. --------N-7F10--CL02-------------------------
  1605. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  1606.     AH = 10h
  1607.     CL = 02h
  1608.     AL = channel number
  1609. Return: AL = status (00h-03h,0Ah,0Ch) (see #2354)
  1610. Note:    may not be invoked from within a hardware interrupt handler
  1611. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  1612. --------N-7F10--CL03-------------------------
  1613. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  1614.     AH = 10h
  1615.     CL = 03h
  1616.     AL = channel number
  1617. Return: AL = status (00h-03h,0Ah) (see #2354)
  1618. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  1619.       locked by receipt of a datagram
  1620.     may not be invoked from within a hardware interrupt handler
  1621. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  1622. --------N-7F10--CL04-------------------------
  1623. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  1624.     AH = 10h
  1625.     CL = 04h
  1626.     AL = channel number
  1627. Return: AL = status (00h-03h) (see #2354)
  1628. Notes:    unlocks buffer after received datagram has been processed
  1629.     may not be invoked from within a hardware interrupt handler
  1630. SeeAlso: AH=10h/CL=00h
  1631. --------N-7F10--CL05-------------------------
  1632. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  1633.     AH = 10h
  1634.     CL = 05h
  1635. Return: AL = status (00h-03h) (see #2354)
  1636. Notes:    clears all pending datagrams and clears buffer pointers before closing
  1637.       the channels
  1638.     may not be invoked from within a hardware interrupt handler
  1639. SeeAlso: AH=10h/CL=01h
  1640. --------N-7F10--CL06-------------------------
  1641. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  1642.     AH = 10h
  1643.     CL = 06h
  1644. Return: AL = status (00h-03h) (see #2354)
  1645. Note:    may not be invoked from within a hardware interrupt handler
  1646. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  1647. --------N-7F10--CL07-------------------------
  1648. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  1649.     AH = 10h
  1650.     CL = 07h
  1651. Return: AL = status (00h-03h) (see #2354)
  1652. Notes:    unlocks all locked channels which have no pending datagrams
  1653.     may not be invoked from within a hardware interrupt handler
  1654. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  1655. --------N-7F10--CL08-------------------------
  1656. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  1657.     AH = 10h
  1658.     CL = 08h
  1659.     DX = maximum channel number to lock
  1660. Return: AL = status (00h-03h) (see #2354)
  1661. Notes:    locks channels numbered 00h through the value in DX
  1662.     may not be invoked from within a hardware interrupt handler
  1663. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  1664. --------N-7F10--CL09-------------------------
  1665. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  1666.     AH = 10h
  1667.     CL = 09h
  1668.     DX = maximum channel number to unlock
  1669. Return: AL = status (00h-03h) (see #2354)
  1670. Notes:    unlocks channels numbered 00h through the value in DX
  1671.     may not be invoked from within a hardware interrupt handler
  1672. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  1673. --------N-7F11-------------------------------
  1674. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  1675.     AH = 11h
  1676.     DX:SI -> request block (see #2356)
  1677. Return: AL = status (see #2355)
  1678. Note:    if wildcard channel FFh used, actual channel number will be filled in
  1679. SeeAlso: AH=12h
  1680.  
  1681. (Table 2355)
  1682. Values for Alloy function status:
  1683.  00h    successful
  1684.  01h    busy
  1685.  02h    channel range error (not 00h-3Fh)
  1686.  03h    invalid subfunction
  1687.  0Ah    packet too large (or <2 bytes if NTNX)
  1688.  0Bh    can't send packet to itself
  1689.  0Ch    invalid number of destinations
  1690.  0Dh    destination channel number out of range
  1691.  0Eh    destination user is busy
  1692.  0Fh    destination user has locked channel
  1693.  10h    channel not open
  1694.  11h    no datagram server on destination (NTNX)
  1695.  
  1696. Format of Alloy request block:
  1697. Offset    Size    Description    (Table 2356)
  1698.  00h    DWORD    pointer to packet to send
  1699.  04h    WORD    packet size in bytes (1-4096)
  1700.  06h    BYTE    number of destinations for packet (max 1Fh)
  1701.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  1702.  26h 31 BYTEs    destination channels (FFh = first available channel)
  1703.  45h 31 BYTEs    return destination statuses
  1704. --------N-7F12-------------------------------
  1705. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  1706.     AH = 12h
  1707.     AL = channel number being acknowledged
  1708.     DI:DX = 32-bit status to return to sender
  1709. Return: AL = status (see #2357)
  1710. Note:    also unlocks the channel, allowing the next datagram to be received
  1711. SeeAlso: AH=11h,AH=15h/CL=04h
  1712.  
  1713. (Table 2357)
  1714. Values for Alloy function status:
  1715.  00h    successful
  1716.  01h    busy
  1717.  02h    channel range error (not 00h-3Fh)
  1718.  03h    invalid subfunction
  1719.  0Ah    channel not open
  1720.  0Bh    no message in channel
  1721.  0Ch    destination slave busy--retry (NTNX)
  1722.  0Dh    destination user not active
  1723.  0Eh    destination slave not active (NTNX)
  1724.  0Fh    destination disabled datagram service
  1725. --------V-7F1234-----------------------------
  1726. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  1727.     AX = 1234h
  1728. SeeAlso: AX=4321h
  1729. --------N-7F13--CL00-------------------------
  1730. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  1731.     AH = 13h
  1732.     CL = 00h
  1733. Note:    clears all pending datagrams and removes all channels opened in NTNX
  1734.       compatibility mode
  1735. --------N-7F14--CL00-------------------------
  1736. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  1737.     AH = 14h
  1738.     CL = 00h
  1739.     DX:DI -> application FAR receive service routine (see #2358)
  1740. Return: AL = status (00h-03h) (see #2357)
  1741. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  1742.  
  1743. (Table 2358)
  1744. Values Alloy receive service routine is called with:
  1745.     DH = sender ID
  1746.     DL = channel with datagram
  1747.     interrupts disabled
  1748. Return: AL = response code
  1749.         00h leave buffer locked, set channel status, and repeat call later
  1750.         01h release channel buffer
  1751.         02h change buffer pointer to DX:DI
  1752.     AH,CX,DX,DI,SI may be destroyed
  1753. --------N-7F14--CL01-------------------------
  1754. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  1755.     AH = 14h
  1756.     CL = 01h
  1757.     DX:DI -> application FAR acknowledge service routine (see #2359)
  1758. Return: AL = status (00h-03h) (see #2357)
  1759. Note:    the service routine will be called as soon as an acknowledgment arrives
  1760. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  1761.  
  1762. (Table 2359)
  1763. Values Alloy acknowledge service routine is called with:
  1764.     DS:SI -> acknowledge structure (see #2363)
  1765. Return: AL = response code
  1766.         00h application busy, network executive should call again later
  1767.         01h acknowledge accepted
  1768.     AH,DX,SI may be destroyed
  1769. --------N-7F14--CL02-------------------------
  1770. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  1771.     AH = 14h
  1772.     CL = 02h
  1773.     AL = channel number
  1774.     DX:DI -> receive buffer
  1775. Return: AL = status (00h-03h) (see #2357)
  1776. Note:    may be called from within a receive ISR or when a datagram is pending
  1777. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  1778. --------N-7F14--CL03-------------------------
  1779. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  1780.     AH = 14h
  1781.     CL = 03h
  1782. Return: DX:DI -> current receive ISR
  1783. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  1784. --------N-7F14--CL04-------------------------
  1785. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  1786.     AH = 14h
  1787.     CL = 04h
  1788. Return: DX:DI -> current acknowledge ISR
  1789. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  1790. --------N-7F14--CL05-------------------------
  1791. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  1792.     AH = 14h
  1793.     CL = 05h
  1794.     DX:DI -> buffer for busy structure (see #2360)
  1795. Return: DX:DI buffer filled
  1796.  
  1797. Format of Alloy busy structure:
  1798. Offset    Size    Description    (Table 2360)
  1799.  00h    DWORD    pointer to busy flag byte
  1800.  04h    WORD    fixed port address (FF00h)
  1801. --------N-7F15--CL00-------------------------
  1802. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  1803.     AH = 15h
  1804.     CL = 00h
  1805.     AL = channel number
  1806.     DX:DI -> status structure (see #2361)
  1807. Return: AL = status (00h-03h) (see #2357)
  1808. SeeAlso: AH=15h/CL=01h
  1809.  
  1810. Format of Alloy channel status structure:
  1811. Offset    Size    Description    (Table 2361)
  1812.  00h    BYTE    channel status
  1813.         bit 0: channel open
  1814.         bit 1: channel buffer contains received data
  1815.         bit 7: channel locked
  1816.  01h    BYTE    sender ID
  1817. --------N-7F15--CL01-------------------------
  1818. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  1819.     AH = 15h
  1820.     CL = 01h
  1821.     DX:DI -> full-channel structure (see #2362)
  1822. Return: AL = status
  1823.         00h successful
  1824.         01h busy
  1825.         0Ah no datagrams available
  1826. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  1827.       and NTNX return the oldest datagram
  1828. SeeAlso: AH=15h/CL=00h
  1829.  
  1830. Format of Alloy full-channel structure:
  1831. Offset    Size    Description    (Table 2362)
  1832.  00h    BYTE    number of channel with oldest datagram
  1833.  01h    BYTE    sender ID
  1834. --------N-7F15--CL02-------------------------
  1835. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  1836.     AH = 15h
  1837.     CL = 02h
  1838. Return: AH = number of channels available (40h for MW386)
  1839. Note:    the application may always assume at least 32 channels available
  1840. SeeAlso: AH=15h/CL=03h
  1841. --------N-7F15--CL03-------------------------
  1842. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  1843.     AH = 15h
  1844.     CL = 03h
  1845.     DX:DI -> WORD for return value
  1846. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  1847. SeeAlso: AH=15h/CL=02h
  1848. --------N-7F15--CL04-------------------------
  1849. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  1850.     AH = 15h
  1851.     CL = 04h
  1852.     DX:DI -> status structure (see #2363)
  1853. Return: AL = status
  1854.         00h successful
  1855.         DX:DI structure filled
  1856.         01h busy
  1857.         0Ah no acknowledgement has arrived
  1858. SeeAlso: AH=12h,AH=14h/CL=01h
  1859.  
  1860. Format of Alloy status structure:
  1861. Offset    Size    Description    (Table 2363)
  1862.  00h    BYTE    sender ID
  1863.  01h    BYTE    channel number
  1864.  02h  4 BYTEs    receiver status (see #2357)
  1865. --------N-7F16-------------------------------
  1866. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  1867.     AH = 16h
  1868.     DX:SI -> transfer structure (see #2364)
  1869. Return: AL = status
  1870.         00h successful
  1871.         0Ah source or destination out of range
  1872.         0Bh transfer kernal busy--try again
  1873. Notes:    this call transfers memory contents directly between users; both source
  1874.       and destination user IDs may differ from the caller's ID
  1875.     no segment wrap is allowed
  1876.  
  1877. Format of Alloy transfer structure:
  1878. Offset    Size    Description    (Table 2364)
  1879.  00h    WORD    bytes to transfer
  1880.  02h    BYTE    source ID
  1881.         FEh = caller
  1882.  03h    DWORD    source address
  1883.  07h    BYTE    destination ID
  1884.         FFh = all slaves except caller
  1885.         FEh = caller
  1886.  08h    DWORD    destination address
  1887. --------N-7F21-------------------------------
  1888. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  1889.     AH = 21h
  1890.     AL = sender's user ID
  1891.     DS:DX -> control packet (see #2365)
  1892. Note:    messages or commands are ignored if disabled by the destination user
  1893. SeeAlso: AH=22h
  1894.  
  1895. Format of Alloy control packet:
  1896. Offset    Size    Description    (Table 2365)
  1897.  00h    BYTE    packet type
  1898.         00h message
  1899.         01h NTNX command
  1900.         02h MW386 command
  1901.  01h    BYTE    destination user ID or 'A' for all users
  1902.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  1903.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  1904. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  1905. --------N-7F22-------------------------------
  1906. INT 7F - Alloy NTNX - GET MESSAGE
  1907.     AH = 22h
  1908. Return: pending messages displayed on user's screen
  1909. SeeAlso: AH=21h
  1910. --------N-7F24-------------------------------
  1911. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  1912.     AH = 24h
  1913.     CL = function
  1914.         00h attach
  1915.         01h release
  1916.     CH = drive (0=A:,1=B:,etc)
  1917. Return: AX = status (see #2366)
  1918. Note:    only drives on the current machine may be attached
  1919.  
  1920. (Table 2366)
  1921. Values for Alloy function status:
  1922.  00h    successful
  1923.  01h    invalid request
  1924.  02h    already attached
  1925.  03h    not attached
  1926.  04h    lock table full
  1927. --------N-7F24-------------------------------
  1928. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  1929.     AH = 24h
  1930.     CL = function
  1931.         02h attach host
  1932.         03h release host
  1933. Return: AX = status (see #2366)
  1934. Note:    the host processor may be attached in order to perform I/O via the host
  1935. --------N-7F25--CL00-------------------------
  1936. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  1937.     AH = 25h
  1938.     CL = 00h
  1939. Return: AH = version suffix letter
  1940.     CH = major version number
  1941.     CL = minor version number
  1942. SeeAlso: AH=25h/CL=01h
  1943. --------N-7F25--CL01-------------------------
  1944. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  1945.     AH = 25h
  1946.     CL = 01h
  1947. Return: CL = executive type (see #2367)
  1948. SeeAlso: AH=25h/CL=00h
  1949.  
  1950. (Table 2367)
  1951. Values for Alloy network executive type:
  1952.  00h    RTNX
  1953.  01h    ATNX
  1954.  02h    NTNX
  1955.  03h    BTNX
  1956.  04h    MW386
  1957.  05h    ANSK
  1958. ----------7F2525-----------------------------
  1959. INT 7F - TIGA Communications Driver v2.05 - ???
  1960.     AX = 2525h
  1961.     BX = ???
  1962. Return: ???
  1963. SeeAlso: AX=4321h,AX=5555h
  1964. --------N-7F26--CL00-------------------------
  1965. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  1966.     AH = 26h
  1967.     CL = 00h
  1968. Return: AX = file mode bits (see #2368)
  1969. Note:    MW386 does not support file modes, and always returns AX=001Fh
  1970. SeeAlso: AH=26h,AH=26h/CL=06h
  1971.  
  1972. Bitfields for Alloy file mode bits:
  1973. Bit(s)    Description    (Table 2368)
  1974.  0    directory protection enabled
  1975.  1    extended open enabled
  1976.  2    flush on every disk write
  1977.  3    flush on every disk write in locked interval
  1978.  4    flush on reads from simultaneously opened file
  1979. --------N-7F26-------------------------------
  1980. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  1981.     AH = 26h
  1982.     CL = check type to set/reset
  1983.         01h directory protection
  1984.         02h extended open
  1985.         03h flush on every disk write
  1986.         04h flush on disk write if any lock set during write
  1987.         05h flush on all reads if file written
  1988.     AL = new state (00h off, 01h on)
  1989. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  1990. --------N-7F26--CL06-------------------------
  1991. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  1992.     AH = 26h
  1993.     CL = 06h
  1994. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  1995. SeeAlso: AH=26h/CL=00h
  1996. --------N-7F30-------------------------------
  1997. INT 7F - Alloy MW386 - GET PORT INFORMATION
  1998.     AH = 30h
  1999.     CX = MW386 port number
  2000. Return: AL = result
  2001.         FFh if port not found
  2002.         else driver unit number
  2003.         BL = port mode
  2004.         BH = port type
  2005.             02h remote
  2006.         DH = owner's machine ID
  2007.         DL = owner's user ID
  2008. SeeAlso: INT 17/AH=8Bh
  2009. --------N-7F31-------------------------------
  2010. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  2011.     AH = 31h
  2012.     ???
  2013. Return: ???
  2014. --------N-7F37-------------------------------
  2015. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  2016.     AH = 37h
  2017. Return: ES:AX -> semaphore table
  2018. --------N-7F37-------------------------------
  2019. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  2020.     AH = 37h
  2021.     DS:DX -> ASCIZ string to display
  2022. Note:    if the string is empty, a terminal update will be forced
  2023. --------N-7F38-------------------------------
  2024. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  2025.     AH = 38h
  2026.     AL = new terminal driver number
  2027.         FFh dummy driver
  2028.         FEh current driver
  2029.         FDh load new driver
  2030.         DS:SI -> new driver
  2031. SeeAlso: AH=39h
  2032. --------N-7F39-------------------------------
  2033. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  2034.     AH = 39h
  2035.     AL = new terminal driver number
  2036.         FFh dummy driver
  2037.         FEh current driver
  2038.         FDh load new driver
  2039.         DS:SI -> new driver
  2040.     DL = user number (FFh = caller)
  2041.     DH = machine number if DL <> FFh
  2042. Return: CF set if invalid user number
  2043.     CF clear if successful
  2044. Notes:    only available to supervisors
  2045.     the new driver number will not take effect until the user is rebooted
  2046. SeeAlso: AH=38h
  2047. --------N-7F3A-------------------------------
  2048. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  2049.     AH = 3Ah
  2050.     DL = user number (FFh = caller)
  2051.     DH = machine number
  2052. Return: CF clear if successful
  2053.         AH = terminal driver number
  2054.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  2055.         CL = parity (00h none, 01h even, 02h odd)
  2056.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2057.     CF set if invalid user number
  2058. SeeAlso: AH=3Bh
  2059. --------N-7F3B-------------------------------
  2060. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  2061.     AH = 3Bh
  2062.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  2063.     CL = parity (00h none, 01h even, 02h odd)
  2064.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2065.     DL = user number (FFh = caller)
  2066.     DH = machine number for user
  2067. Return: CF set if invalid user number
  2068. Notes:    only available to supervisors
  2069.     the new parameters will take effect immediately if the user's terminal
  2070.       has not been started, else AH=3Dh must be called to post the changes
  2071. SeeAlso: AH=3Ah,AH=3Dh
  2072. --------N-7F3C-------------------------------
  2073. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  2074.     AH = 3Ch
  2075.     AL = new state (00h disabled, 01h enabled)
  2076.     DL = user number (FFh = caller)
  2077.     DH = machine number for user
  2078. Return: CF set if invalid user number
  2079. Note:    only available to supervisors
  2080. SeeAlso: AH=3Dh
  2081. --------N-7F3D-------------------------------
  2082. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  2083.     AH = 3Dh
  2084. Note:    should be called whenever a program changes the terminal type or its
  2085.       parameters
  2086. SeeAlso: AH=3Bh
  2087. --------N-7F41-------------------------------
  2088. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  2089.     AH = 41h
  2090.     AL = user ID
  2091.     DS:DX -> ASCIZ filename
  2092. Return: AL = status (see #2369)
  2093. Note:    requests exclusive read/write access to file
  2094. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  2095.  
  2096. (Table 2369)
  2097. Values for Alloy function status:
  2098.  00h    successful
  2099.  01h    invalid function
  2100.  02h    already locked
  2101.  03h    unable to lock
  2102.  04h    lock table full or semaphore space exhausted
  2103. --------N-7F41-------------------------------
  2104. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  2105.     AH = 41h
  2106.     AL = user ID
  2107.     DS:DX -> ASCIZ semaphore name
  2108. Return: AL = status (see #2369)
  2109. SeeAlso: AH=00h,AH=42h"MW386"
  2110. --------s-7F4150BHC1-------------------------
  2111. INT 7F U - Voyetra - AAPISG - API
  2112.     AX = 4150h ('AP')
  2113.     BH = C1h
  2114.     BL = function (00h-13h)
  2115.         00h initialize (fails except first time called)
  2116.     ???
  2117. Return: AX = status???
  2118.         0000h successful    
  2119.         0001h failed
  2120. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  2121. BUG:    the function range check uses JL instead of JB, so it will cause a
  2122.       crash if BL >= 80h on entry
  2123. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  2124. --------N-7F42-------------------------------
  2125. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  2126.     AH = 42h
  2127.     AL = user ID
  2128.     DS:DX -> ASCIZ filename
  2129. Return: AL = status (see #2369)
  2130. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  2131. --------N-7F42-------------------------------
  2132. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  2133.     AH = 42h
  2134.     AL = user ID
  2135.     DS:DX -> ASCIZ semaphore name
  2136. Return: AL = status
  2137.         00h successful
  2138.         01h invalid function
  2139.         03h unable to unlock semaphore
  2140. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  2141. ----------7F4321-----------------------------
  2142. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  2143.     AX = 4321h
  2144. Return: AX = 0000h if installed
  2145. Note:    INT 7F is the default, but may be overridden
  2146. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  2147. --------s-7F4331BHC1-------------------------
  2148. INT 7F U - Voyetra - VAPISG - API
  2149.     AX = 4331h ('C1')
  2150.     BH = C1h
  2151.     BL = function (00h-7Ah)
  2152.     ???
  2153. Return: ???
  2154. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2155.       sound board
  2156. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  2157. --------N-7F4E-------------------------------
  2158. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  2159.     AH = 4Eh
  2160.     AL = error mode flags
  2161.         bit 0: display critical disk errors
  2162.         bit 1: display sharing errors
  2163.     DX = 4E58h ("NX")
  2164. Return: AL = status
  2165.         00h successful
  2166. SeeAlso: AH=4Fh
  2167. --------N-7F4F-------------------------------
  2168. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  2169.     AH = 4Fh
  2170.     AL = FCB mode
  2171.         02h read/write compatibility
  2172.         42h read/write shared
  2173.     DX = 4E58h ("NX")
  2174. Return: AL = status
  2175.         00h successful
  2176. --------V-7F5555-----------------------------
  2177. INT 7F - TIGA Communications Driver v2.05 - ???
  2178.     AX = 5555h
  2179.     BX = ???
  2180. Return: ???
  2181. SeeAlso: AX=4321h
  2182. --------s-7F564DBHC1-------------------------
  2183. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  2184.     AX = 564Dh ('VM')
  2185.     BH = C1h
  2186.     BL = function (00h-1Bh)
  2187.         00h ???
  2188.         Return: CF clear
  2189.             AX = 0000h
  2190.     ???
  2191. Return: AX = FFFFh if invalid function
  2192.     ???
  2193. SeeAlso: AX=4331h,AX=5658h
  2194. --------s-7F5658BHC1-------------------------
  2195. INT 7F U - Voyetra - VAPISG - API
  2196.     AX = 5658h ('VX')
  2197.     BH = C1h
  2198.     BL = function (00h-1Bh)
  2199.     ???
  2200. Return: ???
  2201. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2202.       sound board
  2203. SeeAlso: AX=4331h,AX=564Dh
  2204. --------N-7F81-------------------------------
  2205. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  2206.     AH = 81h
  2207.     AL = user ID
  2208.     DS:DX -> ASCIZ device name
  2209. SeeAlso: AH=82h
  2210. --------N-7F82-------------------------------
  2211. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  2212.     AH = 82h
  2213.     AL = user ID
  2214.     DS:DX -> ASCIZ device name
  2215. SeeAlso: AH=81h
  2216. --------N-7FA0-------------------------------
  2217. INT 7F - Alloy MW386 - GET USER NAME
  2218.     AH = A0h
  2219.     DL = user number (FFh = caller)
  2220.     DH = machine number for user
  2221.     ES:DI -> 17-byte buffer for ASCIZ user name
  2222. Return: CF set if invalid user number
  2223. SeeAlso: AH=03h,AH=A1h
  2224. --------N-7FA1-------------------------------
  2225. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  2226.     AH = A1h
  2227. Return: AL = process number
  2228.     DL = user number
  2229.     DH = machine number
  2230. SeeAlso: AH=03h,AH=A0h,AH=A2h
  2231. --------N-7FA2-------------------------------
  2232. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  2233.     AH = A2h
  2234.     DL = user number (FFh = caller)
  2235.     DH = machine number for user
  2236. Return: CF clear if successful
  2237.         AL = privilege level
  2238.         00h supervisor
  2239.         01h high
  2240.         02h medium
  2241.         03h low
  2242.     CF set if invalid user number
  2243. SeeAlso: AH=A1h,AH=A3h
  2244. --------N-7FA3-------------------------------
  2245. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  2246.     AH = A3h
  2247.     DL = user number
  2248.     DH = machine number for user
  2249. Return: CF clear if successful
  2250.         AL = login state
  2251.         00h never logged in
  2252.         01h currently logged out
  2253.         03h currently logged in
  2254.     CF set if invalid user number or user not active
  2255. SeeAlso: AH=A2h
  2256. --------N-7FA4-------------------------------
  2257. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  2258.     AH = A4h
  2259.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  2260. Return: AL = status
  2261.         00h     accepted
  2262.         else invalid password
  2263. --------N-7FA500-----------------------------
  2264. INT 7F - Alloy MW386 - GET USER STATUS
  2265.     AX = A500h
  2266.     DI = machine number and user number
  2267. Return: CF clear if successful
  2268.         BX = user flags
  2269.         bit 5: allow messages
  2270.         CL = scan code for task manager hotkey
  2271.         CH = scan code for spooler hotkey
  2272.         DL = scan code for task swapper hotkey
  2273.         DH = modifier key status
  2274.     CF set if invalid user number
  2275. SeeAlso: AX=A501h
  2276. Index:    hotkeys;Alloy MW386
  2277. --------N-7FA501-----------------------------
  2278. INT 7F - Alloy MW386 - SET USER STATUS
  2279.     AX = A501h
  2280.     BX = user flags (see AX=A500h)
  2281.     CL = scan code for task manager hotkey
  2282.     CH = scan code for spooler hotkey
  2283.     DL = scan code for task swapper hotkey
  2284.     DH = modifier key status
  2285.     DI = machine number and user number
  2286. Return: CF set if invalid user number
  2287. Note:    must have supervisor privilege to set another user's status
  2288. SeeAlso: AX=A500h
  2289. Index:    hotkeys;Alloy MW386
  2290. --------V-7FABCDBX0000-----------------------
  2291. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  2292.     AX = ABCDh
  2293.     BX = 0000h
  2294. Return: AX = total number of functions available
  2295.     ES:BX -> entry point array (see #2370)
  2296. SeeAlso: AX=0104h,AX=0105h
  2297.  
  2298. (Table 2370)
  2299. Values for 8516 Touch Screen function number:
  2300.  00h    check initialization and reset (see #2371)
  2301.  14h    set user-defined subroutine (see #2372)
  2302. Notes:    each driver function takes two stack parameters using Pascal calling
  2303.       conventions: address of parameter block and address of results buffer
  2304.     all pointers are FAR pointers
  2305.     on return, AX contains the status of the call:
  2306.         AX = 0000h successful
  2307.          0001h invalid input
  2308.          0002h interface error
  2309.          0003h unable to perform function
  2310.  
  2311. Format of 8516 Touch Screen Function 00h parameter block:
  2312. Offset    Size    Description    (Table 2371)
  2313.  00h    WORD    0000h (function number)
  2314. Note:    this function should be called before any other device driver functions
  2315.  
  2316. Format of 8516 Touch Screen Function 00h results buffer:
  2317. Offset    Size    Description    (Table 2372)
  2318.  00h    WORD    touch screen status
  2319.         0000h unavailable
  2320.         0001h uncalibrated
  2321.         FFFFh available
  2322.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  2323. Notes:    the following driver parameters will have been reset to zero:
  2324.       touchdown counter, liftoff counter, position at last touch, position
  2325.       at last lift, int call mask, select on count, select off count,
  2326.       pos select on count, pos select off count.
  2327.     the following driver parameters will have been reset as listed:
  2328.       mouse emulation mode: left on
  2329.       thresholds: 46 on screen, 96 push harder, 80 push release
  2330.       x, y hysteresis: 400
  2331.       data repeat rate: 40/sec
  2332.       select mechanism: push-harder - first-touch
  2333.       coordinate origin: upper left corner
  2334.       filter frequency: medium
  2335.       data block mask: all enabled
  2336.       click lock: on
  2337. --------N-7FB0-------------------------------
  2338. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  2339.     AH = B0h
  2340.     AL = user number
  2341.     DS = code segment
  2342. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  2343.       or INT 7F locking functions
  2344. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  2345. --------N-7FB1--SF00-------------------------
  2346. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  2347.     AH = B1h subfn 00h
  2348.     AL = (bits 7-5) 000
  2349.          (bits 4-0) user ID
  2350. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  2351.       INT 7F locking functions
  2352. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  2353. --------N-7FB2--SF01-------------------------
  2354. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  2355.     AH = B2h subfn 01h
  2356.     AL = (bits 7-5) 001
  2357.          (bits 4-0) user ID
  2358. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  2359. --------N-7FB3--SF02-------------------------
  2360. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  2361.     AH = B3h subfn 02h
  2362.     AL = (bits 7-5) 010
  2363.          (bits 4-0) user ID
  2364. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  2365. --------N-7FB4-------------------------------
  2366. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  2367.     AH = B4h
  2368.     AL = user ID
  2369. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  2370. --------N-7FC3-------------------------------
  2371. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  2372.     AH = C3h
  2373.     AL = byte to write
  2374. Return: CF clear if successful
  2375.     CF set on error
  2376. SeeAlso: AH=C6h
  2377. --------N-7FC5-------------------------------
  2378. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  2379.     AH = C5h
  2380.     AL = new console mode
  2381.         00h keyboard indirect
  2382.         01h keyboard direct
  2383.         02h data handshake enforced
  2384.         03h no data handshake
  2385. Return: CF clear if successful
  2386.         AL = prior console mode
  2387.     CF set on error (caller is not remote user)
  2388. Note:    modes 2 and 3 may be used for input through the console port; no video
  2389.       output should be performed in these modes
  2390. --------N-7FC6-------------------------------
  2391. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  2392.     AH = C6h
  2393.     AL = byte to write
  2394. Return: CF clear if successful
  2395.     CF set on error (caller is not remote user)
  2396. Note:    any terminal driver data translation will be bypassed
  2397. SeeAlso: AH=C3h,AH=C7h
  2398. --------N-7FC7-------------------------------
  2399. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  2400.     AH = C7h
  2401. Return: CF clear if successful
  2402.         AL = byte read
  2403.     CF set on error (no data available or caller is not remote user)
  2404. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  2405. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  2406. --------N-7FC8-------------------------------
  2407. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  2408.     AH = C8h
  2409.     AL = maximum bytes to read
  2410.     ES:DI -> buffer for console data
  2411. Return: CF clear if successful
  2412.         CX = number of bytes read
  2413.     CF set on error (caller is not remote user)
  2414. SeeAlso: AH=C7h
  2415. --------N-7FCF-------------------------------
  2416. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  2417.     AH = CFh
  2418.     DS:DX -> ASCIZ string containing user number to be reset
  2419. SeeAlso: AH=D6h
  2420. --------N-7FD6-------------------------------
  2421. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  2422.     AH = D6h
  2423.     DS:DX -> reset packet (see #2373)
  2424. Return: never if successful
  2425. Note:    all users will be shut down immediately if successful
  2426. SeeAlso: AH=CFh
  2427.  
  2428. Format of Alloy MW386 reset packet:
  2429. Offset    Size    Description    (Table 2373)
  2430.  00h    DWORD    reset code (60606060h)
  2431.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  2432. --------N-7FD7-------------------------------
  2433. INT 7F - Alloy MW386 - POST EVENT
  2434.     AH = D7h
  2435.     AL = user number (if local event)
  2436.     DX = event number
  2437. --------N-7FD8-------------------------------
  2438. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  2439.     AH = D8h
  2440. Return: CF set on error
  2441. Note:    forces all disk buffers to be written out immediately
  2442. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  2443. --------N-7FDB-------------------------------
  2444. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  2445.     AH = DBh
  2446. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  2447. --------N-7FE0-------------------------------
  2448. INT 7F - Alloy MW386 - CREATE DOS TASK
  2449.     AH = E0h
  2450.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2451.     DS:DX -> ASCIZ task name (max 16 bytes)
  2452. Return: CF clear if successful
  2453.         AL = task create ID
  2454.     CF set on error
  2455. Note:    only foreground DOS tasks can use this function
  2456. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  2457. --------N-7FE1-------------------------------
  2458. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  2459.     AH = E1h
  2460.     AL = create ID (from AH=E0h)
  2461. Return: AL = DOS process number
  2462.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2463. Note:    this function should not be called immediately after creating a new
  2464.       DOS task, since the new task is being initialized by a concurrent
  2465.       process
  2466. SeeAlso: AH=E0h,AH=E2h
  2467. --------N-7FE2-------------------------------
  2468. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  2469.     AH = E2h
  2470.     AL = DOS process number (from AH=E1h)
  2471. Return: CF set on error (invalid process number or caller not foreground task)
  2472. Notes:    specified task becomes the foreground task and current task is placed
  2473.       in the background
  2474.     may only be called by a foreground task
  2475. SeeAlso: AH=E0h,AH=E1h
  2476. --------N-7FE3-------------------------------
  2477. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  2478.     AH = E3h
  2479.     DS:DX -> ASCIZ task name
  2480. ---v1.x---
  2481.     AL = user number
  2482. ---v2+---
  2483.     BH = user number
  2484.     BL = task number
  2485. Return: CF clear if successful
  2486.     CF set on error (invalid process number)
  2487. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  2488. --------N-7FE4-------------------------------
  2489. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  2490.     AH = E4h
  2491.     ES:DI -> buffer for task name
  2492. ---v1.x---
  2493.     AL = user number
  2494. ---v2+---
  2495.     BH = user number
  2496.     BL = task number
  2497. Return: CF clear if successful
  2498.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2499.         DX = task flags
  2500.         bit 7: MS-DOS process
  2501.         ES:DI buffer filled
  2502.     CF set on error (invalid process number)
  2503. SeeAlso: AH=E3h,AH=E5h
  2504. --------N-7FE5-------------------------------
  2505. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  2506.     AH = E5h
  2507.     DS:DX -> ASCIZ task name
  2508.     BH = user number
  2509. Return: CF clear if successful
  2510.         AL = DOS process number
  2511.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2512.     CF set on error (no match for name)
  2513. SeeAlso: AH=E3h,AH=E4h
  2514. --------N-7FE6-------------------------------
  2515. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  2516.     AH = E6h
  2517. Return: AX = number of processes available to current user
  2518. SeeAlso: AH=E0h
  2519. --------N-7FE7-------------------------------
  2520. INT 7F - Alloy MW386 - REMOVE DOS TASK
  2521.     AH = E7h
  2522.     AL = DOS process number
  2523. Return:    CF clear if successful
  2524.     CF set on error (invalid process number or first process)
  2525. Note:    can only be called by a foreground task
  2526. SeeAlso: AH=E0h
  2527. --------N-7FE8-------------------------------
  2528. INT 7F - Alloy MW386 - DOS TASK DELAY
  2529.     AH = E8h
  2530.     CX = delay time in milliseconds
  2531. Note:    a delay of 0 may be used to surrender the current time slice
  2532. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  2533. SeeAlso: INT 2F/AX=1680h
  2534. --------N-7FF0-------------------------------
  2535. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  2536.     AH = F0h
  2537.     AL = group number
  2538.     DS:DX -> ASCIZ directory name
  2539. Return: CF clear if successful
  2540.         AX = status
  2541.         0002h directory not found
  2542.         0003h directory not found
  2543.         0005h directory in use, cannot be restricted
  2544.         02xxh restricted to group xxh
  2545.     CF set on error
  2546. Note:    the restriction on the directory may be removed by calling this
  2547.       function with group 0, then using AH=F1h to assign the directory to
  2548.       group 0
  2549. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  2550. --------N-7FF1-------------------------------
  2551. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  2552.     AH = F1h
  2553.     AL = group number
  2554.     DS:DX -> ASCIZ directory name
  2555. Notes:    performs permanent assignment to a group; no immediate action is taken
  2556.       unless the directory has been restricted with AH=F0h
  2557.     may be used to restrict a nonexistent directory
  2558. SeeAlso: AH=F0h
  2559. --------N-7FF2-------------------------------
  2560. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  2561.     AH = F2h
  2562.     CX = entry number
  2563.     ES:DI -> 64-byte buffer
  2564. Return: CF clear if successful
  2565.         buffer filled with 63-byte directory info and 1-byte group number
  2566.     CF set on error (invalid entry)
  2567. SeeAlso: AH=F0h,AH=F3h
  2568. --------N-7FF3-------------------------------
  2569. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  2570.     AH = F3h
  2571.     AL = group number
  2572.     CX = entry number
  2573.     ES:DI -> 64-byte buffer
  2574. Return: CF clear if successful
  2575.         CX = next entry number
  2576.         buffer filled with 63-byte directory info and 1-byte group number
  2577.     CF set on error (no more matching entries)
  2578. Note:    like AH=F2h, but only returns directories belonging to the specified
  2579.       group
  2580. SeeAlso: AH=F2h
  2581. --------N-7FF8-------------------------------
  2582. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  2583.     AH = F8h
  2584.     AL = group number
  2585.     DL = user number
  2586.     DH = machine number (currently 00h)
  2587. Return: CF clear if successful
  2588.     CF set on error (user already in maximum number of groups)
  2589. Note:    each user is allowed eight group assignments
  2590. SeeAlso: AH=F9h,AH=FAh
  2591. --------N-7FF9-------------------------------
  2592. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  2593.     AH = F9h
  2594.     AL = group number
  2595.     DL = user number
  2596.     DH = machine number (currently 00h)
  2597. Return: CF clear if successful
  2598.     CF set if failed
  2599. SeeAlso: AH=F8h,AH=FAh
  2600. --------N-7FFA-------------------------------
  2601. INT 7F - Alloy MW386 - GET USER GROUP LIST
  2602.     AH = FAh
  2603.     DL = user number
  2604.     DH = machine number (currently 00h)
  2605.     ES:DI -> 16-byte buffer for group list
  2606. Return: CX = number of groups
  2607.     ES:DI buffer filled with group numbers
  2608. SeeAlso: AH=F8h,AH=F9h
  2609. --------N-7FFB-------------------------------
  2610. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  2611.     AH = FBh
  2612.     CL = group number
  2613.     ES:DI -> ASCIZ group name (max 17 bytes)
  2614. SeeAlso: AH=FCh
  2615. --------N-7FFC-------------------------------
  2616. INT 7F - Alloy MW386 - GET GROUP NAME
  2617.     AH = FCh
  2618.     CL = group number
  2619.     ES:DI -> 17-byte buffer for ASCIZ name
  2620. Return: ES:DI buffer filled
  2621. Note:    if the group has not been named, "(unnamed)" is returned
  2622. SeeAlso: AH=FBh
  2623. ----------80---------------------------------
  2624. INT 80 - Q-PRO4 - ???
  2625. --------r-80---------------------------------
  2626. INT 80 - reserved for BASIC
  2627. Note:    this vector and INT 81 through INT ED are modified but not restored by
  2628.       Direct Access v4.0, and may be left dangling by other programs
  2629.       written with the same version of compiled BASIC
  2630. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  2631. --------s-80----BL00-------------------------
  2632. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  2633.     BL = 00h
  2634.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2635. Return: AX = initialization result (see #2374)
  2636. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2637.       which provides access to multiple drivers for the SoundBlaster
  2638.       board through a single interface
  2639. Range:    INT 80h to INT BFh, selected automatically
  2640. Note:    the SBSIM installation check consists of testing for the signature
  2641.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2642. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  2643. SeeAlso: INT 80/BX=0000h"SBSIM"
  2644.  
  2645. (Table 2374)
  2646. Values for SBSIM error code:
  2647.  01h    busy--currently in use
  2648.  02h    bad driver specified
  2649.  03h    invalid function
  2650.  04h    voice process already active
  2651.  05h    couldn't start CT-VOICE
  2652.  06h    couldn't start CTVDSK
  2653.  07h    invalid SBSIM handle
  2654.  08h    buffer not initialized yet
  2655.  09h    bad filename
  2656.  0Ah    bad file handle
  2657.  0Bh    driver not started yet
  2658.  0Ch    XMS driver not installed
  2659.  0Dh    no free SBSIM handles
  2660.  0Eh    bad file type
  2661.  0Fh    couldn't free XMS block
  2662.  10h    invalid source selected
  2663.  11h    get pan position failed
  2664.  12h    set pan position failed
  2665.  13h    set volume failed
  2666.  14h    couldn't start fade/pan
  2667.  15h    couldn't stop fade/pan
  2668.  16h    couldn't pause fade/pan
  2669.  17h    not a fade/pan operation
  2670.  18h    bad mode for fade/pan
  2671.  19h    couldn't start fade/pan
  2672.  1Ah    source not fading/panning
  2673.  1Bh    FM or MIDI already playing
  2674.  1Ch    bad MIDI mapper format
  2675. --------s-80----BL01-------------------------
  2676. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  2677.     BL = 01h
  2678.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2679. Return: AX = result (see #2374)
  2680. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  2681. --------s-80----BL02-------------------------
  2682. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  2683.     BL = 02h
  2684.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2685. Return: nothing
  2686. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  2687. --------s-80----BL03-------------------------
  2688. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  2689.     BL = 03h
  2690.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2691. Return: nothing
  2692. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  2693. SeeAlso: INT 80/BL=05h
  2694. --------s-80----BL04-------------------------
  2695. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  2696.     BL = 04h
  2697.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2698. Return: nothing
  2699. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  2700. --------s-80----BL05-------------------------
  2701. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  2702.     BL = 05h
  2703.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2704. Return: AX = status
  2705. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  2706. --------s-80----BX0000-----------------------
  2707. INT 80 - SoundBlaster SBFM driver - GET VERSION
  2708.     BX = 0000h
  2709. Return: ???
  2710. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  2711. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh
  2712. --------s-80----BX0000-----------------------
  2713. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  2714.     BX = 0000h
  2715. Return: AX = version (AH = major, AL = minor)
  2716. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2717.       which provides access to multiple drivers for the SoundBlaster
  2718.       board through a single interface
  2719. Range:    INT 80h to INT BFh, selected automatically
  2720. Note:    the SBSIM installation check consists of testing for the signature
  2721.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2722. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  2723. Index:    installation check;SBSIM|installation check;SoundBlaster
  2724. --------s-80----BX0001-----------------------
  2725. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  2726.     BX = 0001h
  2727.     DX:AX -> music status byte
  2728. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  2729. --------s-80----BX0001-----------------------
  2730. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  2731.     BX = 0001h
  2732. Return: AX = bit flags for loaded drivers (see #2375)
  2733. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  2734.  
  2735. Bitfields for SBSIM loaded drivers:
  2736. Bit(s)    Description    (Table 2375)
  2737.  0    FM
  2738.  1    double disk-buffered voice driver (DDBV)
  2739.  2    memory voice driver
  2740.  3    auxiliary driver (mixer)
  2741.  4    MIDI
  2742. --------s-80----BX0002-----------------------
  2743. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  2744.     BX = 0002h
  2745.     CX = number of instruments
  2746.     DX:AX -> instrument table
  2747. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  2748. --------s-80----BX0002-----------------------
  2749. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  2750.     BX = 0002h
  2751.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  2752. Return: CF clear if successful
  2753.         DX:AX -> entry point
  2754.     CF set on error
  2755. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  2756. --------s-80----BX0003-----------------------
  2757. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  2758.     BX = 0003h
  2759.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  2760.         FFFFh to restore to 18.2 Hz
  2761. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  2762. --------s-80----BX0004-----------------------
  2763. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  2764.     BX = 0004h
  2765.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  2766. Note:    default frequency is 96 Hz
  2767. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  2768. --------s-80----BX0005-----------------------
  2769. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  2770.     BX = 0005h
  2771.     AX = semi-tone offset
  2772. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  2773. --------s-80----BX0005-----------------------
  2774. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  2775.     BX = 0005h
  2776.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  2777. Return: CF clear if successful
  2778.         DX:AX -> buffer
  2779.         CX = buffer size in K
  2780.     CF set on error
  2781. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2782.       which provides access to multiple drivers for the SoundBlaster
  2783.       board through a single interface
  2784. Range:    INT 80h to INT BFh, selected automatically
  2785. Note:    the SBSIM installation check consists of testing for the signature
  2786.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2787. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  2788. --------s-80----BX0006-----------------------
  2789. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  2790.     BX = 0006h
  2791.     DX:AX -> music block
  2792. Return: AX = status
  2793.         0000h successful
  2794.         0001h music already active
  2795. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  2796. --------s-80----BX0007-----------------------
  2797. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  2798.     BX = 0007h
  2799. Return: AX = status
  2800.         0000h successful
  2801.         0001h music not active
  2802. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  2803. --------s-80----BX0008-----------------------
  2804. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  2805.     BX = 0008h
  2806. Return: AX = status
  2807.         0000h successful
  2808.         0001h music is active
  2809. SeeAlso: BX=0000h"SBFM"
  2810. --------s-80----BX0009-----------------------
  2811. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  2812.     BX = 0009h
  2813. Return: AX = status
  2814.         0000h successful
  2815.         0001h no music active
  2816. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  2817. --------s-80----BX000A-----------------------
  2818. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  2819.     BX = 000Ah
  2820. Return: AX = status
  2821.         0000h successful
  2822.         0001h no music paused
  2823. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  2824. --------s-80----BX000B-----------------------
  2825. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  2826.     BX = 000Bh
  2827.     DX:AX -> trap routine
  2828. SeeAlso: BX=0000h"SBFM"
  2829. --------s-80----BX0400-----------------------
  2830. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  2831.     BX = 0400h
  2832.     AX = sound source (see #2376)
  2833. Return: CF clear if successful
  2834.         AX = volume
  2835.     CF set on error
  2836.         AX = error code (see INT 80/BL=00h)
  2837. SeeAlso: BX=0401h"SBSIM"
  2838.  
  2839. (Table 2376)
  2840. Values for SBSIM sound source:
  2841.  00h    master volume
  2842.  01h    voice
  2843.  02h    FM
  2844.  03h    CD
  2845.  04h    line in
  2846.  05h    microphone
  2847. --------s-80----BX0401-----------------------
  2848. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  2849.     BX = 0401h
  2850.     AX = sound source (see INT 80/BX=0400h)
  2851.     DX = new volume
  2852. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  2853. SeeAlso: BX=0400h"SBSIM"
  2854. --------N-8001-------------------------------
  2855. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  2856.     AH = 01h
  2857. Return: AX = 0000h
  2858.     CX = FFFFh
  2859.     DX = FFFFh
  2860. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  2861.     all buffer pointers are reset back to 0
  2862. --------N-8002-------------------------------
  2863. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  2864.     AH = 02h
  2865.     BX = extra bytes to allocate per packet
  2866. Return: AX = segment address of 10K buffer (for receives???)
  2867.     BX = segment address of 2K buffer (for sends???)
  2868. SeeAlso: AH=05h
  2869. --------N-8003-------------------------------
  2870. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  2871.     AH = 03h
  2872. Return: CX:DX -> receive call address
  2873. Note:    the returned address can be used in the packet driver calls since it
  2874.       will be a valid address in all DOS boxes
  2875. SeeAlso: AH=06h
  2876. --------N-8004-------------------------------
  2877. INT 80 - QPC Software PKTINT.COM - ENABLE???
  2878.     AH = 04h
  2879.     BX = ???
  2880. Return: ???
  2881. SeeAlso: AH=01h
  2882. --------N-8005-------------------------------
  2883. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  2884.     AH = 05h
  2885. Return: AX = amount of buffer currently in use
  2886.     BX = current offset in buffer
  2887.     CX = number of times receive has been called
  2888. SeeAlso: AH=02h
  2889. --------N-8006-------------------------------
  2890. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  2891.     AH = 06h
  2892. Return: BX = next packet offset
  2893.     CX = number of bytes still buffered
  2894.     DX = size of packet released back into buffer pool
  2895. SeeAlso: AH=03h
  2896. --------r-81---------------------------------
  2897. INT 81 - reserved for BASIC
  2898. Note:    this vector is modified but not restored by Direct Access v4.0, and
  2899.       may be left dangling by other programs written with the same version
  2900.       of compiled BASIC
  2901. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  2902. --------N-81---------------------------------
  2903. INT 81 - IBM TOKEN RING ADAPTER - ???
  2904. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  2905. --------r-82---------------------------------
  2906. INT 82 - reserved for BASIC
  2907. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  2908. --------N-82---------------------------------
  2909. INT 82 - IBM TOKEN RING ADAPTER - ???
  2910.     AH = function
  2911.         00h display message???
  2912.         DS:BX -> string
  2913.     ???
  2914. Return: ???
  2915. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  2916. --------r-83---------------------------------
  2917. INT 83 - reserved for BASIC
  2918. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  2919. --------r-84---------------------------------
  2920. INT 84 - reserved for BASIC
  2921. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  2922. --------r-85---------------------------------
  2923. INT 85 - reserved for BASIC
  2924. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  2925.       v4.0, and may be left dangling by other programs written with the
  2926.       same version of compiled BASIC
  2927. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  2928. --------N-86---------------------------------
  2929. INT 86 - NetBIOS - ORIGINAL INT 18
  2930. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  2931. SeeAlso: INT 18
  2932. --------r-86---------------------------------
  2933. INT 86 - IBM ROM BASIC - used while in interpreter
  2934. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2935.     BASIC.COM/BASICA.COM do not restore vector on termination
  2936. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  2937. --------r-86---------------------------------
  2938. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  2939. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  2940. --------r-87---------------------------------
  2941. INT 87 - IBM ROM BASIC - used while in interpreter
  2942. Notes:    called by ROM BASIC
  2943.     BASIC.COM/BASICA.COM do not restore vector on termination
  2944. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  2945. --------r-87---------------------------------
  2946. INT 87 - APL*PLUS/PC - ???
  2947. SeeAlso: INT 86"APL",INT 88/AL=00h
  2948. --------v-87---------------------------------
  2949. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  2950. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  2951.       following
  2952. SeeAlso: INT 8B"VIRUS"
  2953. --------r-88---------------------------------
  2954. INT 88 - IBM ROM BASIC - used while in interpreter
  2955. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  2956.     BASIC.COM/BASICA.COM do not restore vector on termination
  2957. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  2958. --------r-88--00-----------------------------
  2959. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  2960.     AL = 00h
  2961.     BX = STPTR of the variable to be assigned
  2962.     ES:SI -> model of type, rank, and shape (see #2377)
  2963. Return: ES:DI -> first data byte of object
  2964.     DX:CX = number of elements in the object
  2965. SeeAlso: INT C8"APL"
  2966.  
  2967. Format of APL*PLUS/PC shape model:
  2968. Offset    Size    Description    (Table 2377)
  2969.  00h    BYTE    type
  2970.         01h character (2-byte dimension sizes)
  2971.         02h integer (2-byte dimension sizes)
  2972.         08h floating point (2-byte dimension sizes)
  2973.         11h character (4-byte dimension sizes)
  2974.         12h integer (4-byte dimension sizes)
  2975.         18h floating point (4-byte dimension sizes)
  2976.  01h    BYTE    rank
  2977.  02h    (D)WORD first dimension of shape
  2978.  N    (D)WORD second dimension of shape
  2979.     ...
  2980. --------r-88--01-----------------------------
  2981. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  2982.     AL = 01h
  2983.     AH = rank
  2984.     BX = STPTR of the variable to be assigned
  2985.     CX = first dimension (if any)
  2986.     DX = second dimension (if any)
  2987. Return: ES:DI -> object
  2988.     CX = number of elements in the object
  2989. Note:    each dimension must be 32767 or smaller
  2990. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  2991. --------r-88--02-----------------------------
  2992. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  2993.     AL = 02h
  2994.     AH = rank
  2995.     BX = STPTR of the variable to be assigned
  2996.     CX = first dimension (if any)
  2997.     DX = second dimension (if any)
  2998. Return: ES:DI -> object
  2999.     CX = number of elements in the object
  3000. Note:    each dimension must be 32767 or smaller
  3001. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  3002. --------r-88--08-----------------------------
  3003. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  3004.     AL = 08h
  3005.     AH = rank
  3006.     BX = STPTR of the variable to be assigned
  3007.     CX = first dimension (if any)
  3008.     DX = second dimension (if any)
  3009. Return: ES:DI -> object
  3010.     CX = number of elements in the object
  3011. Note:    each dimension must be 32767 or smaller
  3012. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  3013. --------r-88--F5-----------------------------
  3014. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  3015.     AL = F5h
  3016.     BX = STPTR of object
  3017. SeeAlso: INT C8"APL"
  3018. --------r-88--F6-----------------------------
  3019. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  3020.     AL = F6h
  3021.     BX = STPTR of object
  3022. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  3023. --------r-88--F7-----------------------------
  3024. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  3025.     AL = F7h
  3026.     BX = STPTR of object
  3027. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  3028. --------r-88--F8-----------------------------
  3029. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  3030.     AL = F8h
  3031.     BX = STPTR of object
  3032. Return: BX = name's outswapping status
  3033.         0000h eligible
  3034.         0001h not eligible
  3035. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  3036. --------r-88--F9-----------------------------
  3037. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3038.     AL = F9h
  3039.     ES:SI -> name
  3040.     CX = length of name
  3041. Return: CF set if name ill-formed or already in use
  3042.         BX = STPTR if already in symbol table
  3043.     CF clear if name is available for use
  3044.         BX = 0000h
  3045. Note:    does not force the name into the workspace
  3046. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  3047. --------r-88--FC-----------------------------
  3048. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  3049.     AL = FCh
  3050.     BX = amount of memory needed (paragraphs)
  3051. Return: CF clear if memory available
  3052.     CF set if a workspace compaction is required
  3053. SeeAlso: AL=FDh,INT C8"APL"
  3054. --------r-88--FD-----------------------------
  3055. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  3056.     AL = FDh
  3057. Return: BX = number of paragraphs available in workspace
  3058. SeeAlso: AL=FCh,INT C8"APL"
  3059. --------r-88--FE-----------------------------
  3060. INT 88 - APL*PLUS/PC - CREATE NAME
  3061.     AL = FEh
  3062.     ES:SI -> name
  3063.     CX = length of name
  3064. Return: BX = STPTR of name
  3065.     DX = interpreter's data segment
  3066. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  3067. --------r-88--FF-----------------------------
  3068. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3069.     AL = FFh
  3070.     ES:SI -> name
  3071.     CX = length of name
  3072. Return: CF set if name ill-formed or already in use
  3073.         BX = STPTR if already in symbol table
  3074.     CF clear if name is available for use
  3075.         BX = 0000h
  3076. Note:    forces the name into the workspace and makes it immune from outswapping
  3077. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  3078. --------r-89---------------------------------
  3079. INT 89 - IBM ROM BASIC - used while in interpreter
  3080. Notes:    called by ROM BASIC
  3081.     BASIC.COM/BASICA.COM do not restore vector on termination
  3082. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  3083. --------r-8A---------------------------------
  3084. INT 8A - IBM ROM BASIC - used while in interpreter
  3085. Notes:    called by ROM BASIC
  3086.     BASIC.COM/BASICA.COM do not restore vector on termination
  3087. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  3088. --------r-8A---------------------------------
  3089. INT 8A - APL*PLUS/PC - PRINT SCREEN
  3090. Note:    same as INT 05
  3091. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  3092. --------r-8B---------------------------------
  3093. INT 8B - IBM ROM BASIC - used while in interpreter
  3094. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3095.     BASIC.COM/BASICA.COM do not restore vector on termination
  3096. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  3097. --------r-8B---------------------------------
  3098. INT 8B - APL*PLUS/PC - BEEP
  3099. Note:    same as printing a ^G via INT 21/AH=02h
  3100. SeeAlso: INT 21/AH=02h,INT CB"APL"
  3101. --------v-8B---------------------------------
  3102. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  3103. Note:    if the ZeroHunt virus is resident, this vector will contain either
  3104.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  3105. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  3106. --------r-8C---------------------------------
  3107. INT 8C - IBM ROM BASIC - used while in interpreter
  3108. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3109.     BASIC.COM/BASICA.COM do not restore vector on termination
  3110. --------r-8C---------------------------------
  3111. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  3112.     AX = flag
  3113.         0000h do not save display attributes
  3114.         0001h save attributes
  3115. SeeAlso: INT CC"APL"
  3116. --------r-8D---------------------------------
  3117. INT 8D - IBM ROM BASIC - used while in interpreter
  3118. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3119.     BASIC.COM/BASICA.COM do not restore vector on termination
  3120. --------r-8E---------------------------------
  3121. INT 8E - IBM ROM BASIC - used while in interpreter
  3122. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3123.     BASIC.COM/BASICA.COM do not restore vector on termination
  3124. --------r-8F---------------------------------
  3125. INT 8F - IBM ROM BASIC - used while in interpreter
  3126. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3127.     BASIC.COM/BASICA.COM do not restore vector on termination
  3128. --------r-90---------------------------------
  3129. INT 90 - IBM ROM BASIC - used while in interpreter
  3130. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3131.     BASIC.COM/BASICA.COM do not restore vector on termination
  3132. --------r-90---------------------------------
  3133. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  3134. --------r-91---------------------------------
  3135. INT 91 - IBM ROM BASIC - used while in interpreter
  3136. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3137.     BASIC.COM/BASICA.COM do not restore vector on termination
  3138. --------N-91---------------------------------
  3139. INT 91 - IBM TOKEN RING ADAPTER - ???
  3140. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  3141. --------r-92---------------------------------
  3142. INT 92 - IBM ROM BASIC - used while in interpreter
  3143. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3144.     BASIC.COM/BASICA.COM do not restore vector on termination
  3145. --------N-92---------------------------------
  3146. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  3147.     BX:DX -> control block
  3148. SeeAlso: INT 68"Sangoma"
  3149. --------e-92E1-------------------------------
  3150. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  3151.     AH = E1h
  3152.     AL = function
  3153.     BX = stack count (number of words to push)
  3154.     CX:DX -> stack data (in word-reversed order ready to push)
  3155. Return: AX = status (see #2378)
  3156. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  3157.  
  3158. (Table 2378)
  3159. Values for Da Vinci eMail function status:
  3160.  0001h    success
  3161.  FF97h    "ERS_NOT_AVAILABLE"
  3162.  FF99h    "ERS_TOO_MANY_NAMES"
  3163.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  3164.  FFE3h    "ERS_NAME_NOT_FOUND"
  3165.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  3166.  FFFFh    "ERS_NO_SUCH_FILE"
  3167. --------e-92E100-----------------------------
  3168. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  3169.     AX = E100h
  3170.     BX = size of parameter block in words (000Ah)
  3171.     CX:DX -> parameter block (see #2379)
  3172. Return: AX = 0001h success
  3173. Desc:    this function is used to initialize the dispatcher
  3174. SeeAlso: AX=E101h,AX=E103h
  3175.  
  3176. Format of Da Vinci eMail "NetInitStart" parameter block:
  3177. Offset    Size    Description    (Table 2379)
  3178.  00h    WORD    segment of ???
  3179.  02h    WORD    offset of ???
  3180.  04h    WORD    high part of long ???
  3181.  06h    WORD    low part of long ???
  3182.  08h    WORD    high part of long ???
  3183.  0Ah    WORD    low part of long ???
  3184.  0Ch    WORD    high part of long ???
  3185.  0Eh    WORD    low part of long ???
  3186.  10h    WORD    high part of long ???
  3187.  12h    WORD    low part of long ???
  3188. --------e-92E101BX0000-----------------------
  3189. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  3190.     AX = E101h
  3191.     BX = 0000h
  3192.     CX:DX ignored
  3193. Return: AX = 0001h success
  3194. SeeAlso: AX=E100h,AX=E180h
  3195. --------e-92E102BX0000-----------------------
  3196. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  3197.     AX = E102h
  3198.     BX = 0000h
  3199.     CX:DX ignored
  3200. Return: AX = 0001h success
  3201. Desc:    this function is used to determine if the dispatcher is loaded
  3202. SeeAlso: AX=E10Bh,AX=E180h
  3203. --------e-92E103BX0000-----------------------
  3204. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  3205.     AX = E103h
  3206.     BX = 0000h
  3207.     CX:DX ignored
  3208. Return: AX = status (see #2378)
  3209. SeeAlso: AX=E100h
  3210. --------e-92E104-----------------------------
  3211. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  3212.     AX = E104h
  3213.     BX = size of parameter block in words (0006h)
  3214.     CX:DX -> parameter block (see #2380)
  3215. Return: AX = status (see #2378)
  3216. Desc:    this function is used to verify node address for usernames
  3217. SeeAlso: AX=E180h
  3218.  
  3219. Format of Da Vinci eMail "NetWhereIs" parameter block:
  3220. Offset    Size    Description    (Table 2380)
  3221.  00h    WORD    segment of node address buffer
  3222.  02h    WORD    offset of node address buffer
  3223.  04h    WORD    segment of uppercase username
  3224.  06h    WORD    offset of uppercase username
  3225.  08h    WORD    segment of "DVSEMAIL"
  3226.  0Ah    WORD    offset of "DVSEMAIL"
  3227. --------e-92E105-----------------------------
  3228. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  3229.     AX = E105h
  3230.     BX = size of parameter block in words (0007h)
  3231.     CX:DX -> parameter block (see #2381)
  3232. Return: AX = 0000h Error
  3233.     AX = handle
  3234. Desc:    this function is used to open a submission channel
  3235. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  3236.  
  3237. Format of Da Vinci eMail "NetOpen" parameter block:
  3238. Offset    Size    Description    (Table 2381)
  3239.  00h    WORD    operation (1 = read, 2 = write)
  3240.  02h    WORD    segment of uppercase To: username
  3241.  04h    WORD    offset of uppercase To: username
  3242.  06h    WORD    segment of "DVSEMAIL"
  3243.  08h    WORD    offset of "DVSEMAIL"
  3244.  0Ah    WORD    segment of node address
  3245.  0Ch    WORD    offset of node address
  3246. --------e-92E106BX0004-----------------------
  3247. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  3248.     AX = E106h
  3249.     BX = 0004h
  3250.     CX:DX -> parameter block
  3251. Return: AX = 0001h
  3252. SeeAlso: AX=E108h
  3253. --------e-92E107BX0002-----------------------
  3254. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  3255.     AX = E107h
  3256.     BX = 0002h
  3257.     CX:DX -> parameter block
  3258. Return: AX = 0001h
  3259. SeeAlso: AX=E109h,AX=E180h
  3260. --------e-92E108-----------------------------
  3261. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  3262.     AX = E108h
  3263.     BX = size of parameter block in words (0004h)
  3264.     CX:DX -> parameter block (see #2382)
  3265. Return: AX = amount written
  3266. Desc:    This function is used to write transactions to the dispatcher.
  3267.       The command block is written first and then another call is used
  3268.       to write the associated data.
  3269. SeeAlso: AX=E106h
  3270.  
  3271. Format of Da Vinci eMail "NetWrite" parameter block:
  3272. Offset    Size    Description    (Table 2382)
  3273.  00h    WORD    buffer count (see #2384)
  3274.  02h    WORD    segment of command buffer (see #2383)
  3275.  04h    WORD    offset of command buffer
  3276.  06h    WORD    handle from NetOpen
  3277.  
  3278. Format of Da Vinci eMail command buffer:
  3279. Offset    Size    Description    (Table 2383)
  3280.  00h    BYTE    command
  3281.         21h '!' Protocol commands for remote control
  3282.         41h 'A' Authorization protocol element
  3283.         42h 'B' Return(back) routing information
  3284.             Associated data is the From: username
  3285.         43h 'C' Carbon Copy list
  3286.             Associated data is a comma delimitted list of usernames
  3287.         44h 'D' Distribution list
  3288.             Associated data is a comma delimitted list of usernames
  3289.         45h 'E' Mail end marker
  3290.             No associated data
  3291.         48h 'H' Mail message header
  3292.             Associated data is a message header buffer
  3293.         4Dh 'M' Mail message
  3294.             Associated data is the body of the message
  3295.         4Fh 'O' Object
  3296.         50h 'P' Paperclip attachment
  3297.         52h 'R' Routing information
  3298.             Associated data is the To: username
  3299.         53h 'S' Subject
  3300.             Associated data is the subject of the message
  3301.         54h 'T' Trail of Reply/Forwards
  3302.  01h    BYTE    subcommand
  3303.  02h    DWORD    length of associated data
  3304.  
  3305. Format of Da Vinci eMail message header buffer:
  3306. Offset    Size    Description    (Table 2384)
  3307.  00h 30 BYTEs    subject line
  3308.  1Eh 24 BYTEs    To
  3309.  36h 24 BYTEs    From
  3310.  4Eh    DWORD    Time
  3311.         BYTE    00h
  3312.         BYTE    hour
  3313.         BYTE    minute
  3314.         BYTE    second
  3315.  52h    DWORD    Date
  3316.         BYTE    00h
  3317.         BYTE    year
  3318.         BYTE    month
  3319.         BYTE    day
  3320.  56h    DWORD    serial number (00000000h)
  3321.  5Ah    WORD    mail types (see #2385)
  3322.  5Ch    WORD    special types (0)
  3323.  
  3324. Bitfields for Da Vinci eMail mail types:
  3325. Bit(s)    Description    (Table 2385)
  3326.  7    blind carbon copy
  3327.  6    carbon copy
  3328.  5    priority
  3329.  4    confidential
  3330.  3    certified
  3331.  2    bulk
  3332.  1-0    class (first, second, third, bulk)
  3333. --------e-92E109-----------------------------
  3334. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  3335.     AX = E109h
  3336.     BX = size of parameter block in words (0001h)
  3337.     CX:DX -> parameter block (see #2386)
  3338. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  3339. SeeAlso: AX=E107h,AX=E180h
  3340.  
  3341. Format of Da Vinci eMail "NetErrorFix" parameter block:
  3342. Offset    Size    Description    (Table 2386)
  3343.  00h    WORD    ???
  3344. --------e-92E10A-----------------------------
  3345. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  3346.     AX = E10Ah
  3347.     BX = size of parameter block in words (0001h)
  3348.     CX:DX -> parameter block (see #2387)
  3349. Return: AX = 0001h
  3350. Desc:    this function is used to close a dispatcher handle
  3351. SeeAlso: AX=E105h
  3352.  
  3353. Format of Da Vinci eMail "NetClose" parameter block:
  3354. Offset    Size    Description    (Table 2387)
  3355.  00h    WORD    handle from NetOpen
  3356. --------e-92E10B-----------------------------
  3357. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  3358.     AX = E10Bh
  3359.     BX = size of parameter block in words (0004h)
  3360.     CX:DX -> parameter block (see #2388)
  3361. Return: AX = 0001h
  3362. SeeAlso: AX=E102h,AX=E10Ch
  3363.  
  3364. Format of Da Vinci eMail "NetCheckQueue" parameter block:
  3365. Offset    Size    Description    (Table 2388)
  3366.  00h    WORD    segment of 24-byte username buffer
  3367.  02h    WORD    offset of 24-byte username buffer
  3368.  04h    WORD    segment of 24-byte protocol buffer
  3369.  06h    WORD    offset of 24-byte protocol buffer
  3370. --------e-92E10C-----------------------------
  3371. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  3372.     AX = E10Ch
  3373.     BX = size of parameter block in words (0002h)
  3374.     CX:DX -> parameter block (see #2389)
  3375. Return: AX = 0001h
  3376. SeeAlso: AX=E10Bh
  3377.  
  3378. Format of Da Vinci eMail "NetReadQueue" parameter block:
  3379. Offset    Size    Description    (Table 2389)
  3380.  00h    WORD    Segment of 128 byte node address buffer
  3381.  02h    WORD    Offset of 128 byte node address buffer
  3382. --------e-92E10D-----------------------------
  3383. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  3384.     AX = E10Dh
  3385.     BX = size of parameter block in words (0006h)
  3386.     CX:DX -> parameter block (see #2390)
  3387. Return: AX = status (see #2378)
  3388. Desc:    this function is used to verify username/password
  3389. SeeAlso: AX=E10Eh
  3390.  
  3391. Format of Da Vinci eMail "NetSubmitName" parameter block:
  3392. Offset    Size    Description    (Table 2390)
  3393.  00h    WORD    segment of uppercase password string
  3394.  02h    WORD    offset of uppercase password string
  3395.  04h    WORD    segment of uppercase username string
  3396.  06h    WORD    offset of uppercase username string
  3397.  08h    WORD    segment of "DVSEMAIL"
  3398.  0Ah    WORD    offset of "DVSEMAIL"
  3399. --------e-92E10E-----------------------------
  3400. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  3401.     AX = E10Eh
  3402.     BX = size of parameter block in words (0004h)
  3403.     CX:DX -> parameter block (see #2391)
  3404. Return: AX = 0001h
  3405. Desc:    this function is used to remove a username
  3406. SeeAlso: AX=E10Dh
  3407.  
  3408. Format of Da Vinci eMail "NetRemoveName" parameter block:
  3409. Offset    Type    Description    (Table 2391)
  3410.  00h    WORD    segment of uppercase username
  3411.  02h    WORD    offset of uppercase username
  3412.  04h    WORD    segment of "DVSEMAIL"
  3413.  06h    WORD    offset of "DVSEMAIL"
  3414. --------e-92E10FBX0000-----------------------
  3415. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  3416.     AX = E10Fh
  3417.     BX = 0000h
  3418.     CX:DX ignored
  3419. Return: AX = 0001h
  3420. SeeAlso: AX=E180h
  3421. --------e-92E110-----------------------------
  3422. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  3423.     AX = E110h
  3424.     BX = size of parameter block in words (0006h)
  3425.     CX:DX -> parameter block (see #2392)
  3426. Return: AX = 0001h
  3427. SeeAlso: AX=E111h,AX=E113h
  3428.  
  3429. Format of Da Vinci eMail "NetGetAltRoute" parameter block:
  3430. Offset    Size    Description    (Table 2392)
  3431.  00h  6 WORDs    ???
  3432. --------e-92E111-----------------------------
  3433. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  3434.     AX = E111h
  3435.     BX = size of parameter block in words (0004h)
  3436.     CX:DX -> parameter block (see #2393)
  3437. Return: AX = 0001h
  3438. SeeAlso: AX=E110h,AX=E113h
  3439.  
  3440. Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
  3441. Offset    Size    Description    (Table 2393)
  3442.  00h  4 WORDs    ???
  3443. --------e-92E112-----------------------------
  3444. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  3445.     AX = E112h
  3446.     BX = size of parameter block in words (0008h)
  3447.     CX:DX -> parameter block (see #2394)
  3448. Return: AX = 0001h
  3449. SeeAlso: AX=E180h
  3450.  
  3451. Format of Da Vinci eMail "NetChangePassword" parameter block:
  3452. Offset    Size    Description    (Table 2394)
  3453.  00h  8 WORDs    ???
  3454. --------e-92E113-----------------------------
  3455. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  3456.     AX = E113h
  3457.     BX = size of parameter block in words (0008h)
  3458.     CX:DX -> parameter block (see #2395)
  3459. Return: AX = 0001h
  3460. SeeAlso: AX=E110h,AX=E111h
  3461.  
  3462. Format of Da Vinci eMail "NetSetAltRoute" parameter block:
  3463. Offset    Size    Description    (Table 2395)
  3464.  00h  8 WORDs    ???
  3465. --------e-92E175-----------------------------
  3466. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  3467.     AX = E175h
  3468. Return: AX = 0012h
  3469.     BX = PSP
  3470. SeeAlso: AX=E180h
  3471. --------e-92E180-----------------------------
  3472. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  3473.     AX = E180h
  3474. Return: AX = 0012h if installed
  3475.     ES:DX -> '$'-terminated driver information string
  3476. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  3477. --------r-93---------------------------------
  3478. INT 93 - IBM ROM BASIC - used while in interpreter
  3479. Notes:    called by ROM BASIC
  3480.     BASIC.COM/BASICA.COM do not restore vector on termination
  3481. --------N-93---------------------------------
  3482. INT 93 - IBM TOKEN RING ADAPTER - ???
  3483. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  3484. --------r-94---------------------------------
  3485. INT 94 - IBM ROM BASIC - used while in interpreter
  3486. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3487.     BASIC.COM/BASICA.COM do not restore vector on termination
  3488. --------s-94----SI0000-----------------------
  3489. INT 94 u - PCM driver - INITIALIZE SOUND
  3490.     SI = 0000h
  3491.     ES:BX -> parameters
  3492. Return: ???
  3493. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  3494.       sound boards
  3495. Note:    the installation check consists of testing for the signature string
  3496.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  3497.       preceding the signature gives the PCM driver's version
  3498. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  3499. Index:    installation check;PCM driver|PCM.COM;installation check
  3500. Index:    PCM driver;installation check
  3501. --------s-94----SI0001-----------------------
  3502. INT 94 u - PCM driver - INITIALIZE PCM
  3503.     SI = 0001h
  3504.     ES:BX -> parameters
  3505. Return: ???
  3506. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  3507. --------s-94----SI0002-----------------------
  3508. INT 94 u - PCM driver - INITIALIZE PCM INFO
  3509.     SI = 0002h
  3510.     ES:BX -> parameters (see #2396)
  3511. Return: ???
  3512. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  3513.  
  3514. Format of PCM driver function 0002h parameters:
  3515. Offset    Size    Description    (Table 2396)
  3516.  00h    DWORD    rate
  3517.  04h    WORD    channel number
  3518.  06h    WORD    "comp"
  3519.  08h    WORD    "dsize"
  3520. --------s-94----SI0003-----------------------
  3521. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  3522.     SI = 0003h
  3523.     ES:BX -> parameters (see #2397)
  3524. Return: ???
  3525. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  3526.  
  3527. Format of PCM driver function 0003h parameters:
  3528. Offset    Size    Description    (Table 2397)
  3529.  00h    DWORD    -> DMA buffer
  3530.  04h    WORD    size of DMA buffer
  3531.  06h    WORD    number of divisions
  3532. --------s-94----SI0004-----------------------
  3533. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  3534.     SI = 0004h
  3535.     ES:BX -> parameters (see #2398)
  3536. Return: ???
  3537. SeeAlso: SI=0000h,SI=0001h
  3538.  
  3539. Format of PCM driver function 0004h parameters:
  3540. Offset    Size    Description    (Table 2398)
  3541.  00h    DWORD    -> user function
  3542. --------s-94----SI0005-----------------------
  3543. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  3544.     SI = 0005h
  3545. Return: ???
  3546. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  3547. --------s-94----SI0006-----------------------
  3548. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  3549.     SI = 0006h
  3550. Return: ???
  3551. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  3552. --------s-94----SI0007-----------------------
  3553. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  3554.     SI = 0007h
  3555. Return: ???
  3556. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  3557. --------s-94----SI0008-----------------------
  3558. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  3559.     SI = 0008h
  3560. Return: ???
  3561. SeeAlso: SI=0007h
  3562. --------s-94----SI0009-----------------------
  3563. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  3564.     SI = 0009h
  3565. Return: ???
  3566. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  3567. --------s-94----SI000A-----------------------
  3568. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  3569.     SI = 000Ah
  3570. Return: ???
  3571. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  3572. Index:    uninstall;PCM driver
  3573. --------s-94----SI000B-----------------------
  3574. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  3575.     SI = 000Bh
  3576.     ES:BX -> parameters (see #2399)
  3577. Return: ???
  3578. SeeAlso: SI=0003h
  3579.  
  3580. Format of PCM driver functio 000Bh parameters:
  3581. Offset    Size    Description    (Table 2399)
  3582.  00h    DWORD    -> memory block to contain DMA buffer
  3583.  04h    WORD    desired size of DMA buffer
  3584. --------s-94----SI000D-----------------------
  3585. INT 94 u - Media Vision PCM.COM - GET STATUS
  3586.     SI = 000Dh
  3587. Return: AX = status (0000h = waiting) (see #2400)
  3588.  
  3589. Bitfields for PCM.COM status:
  3590. Bit(s)    Description    (Table 2400)
  3591.  0    playing
  3592.  1    recording
  3593.  2    SBplaying
  3594.  3    SBrecording
  3595.  14    SBpaused
  3596.  15    paused
  3597. --------s-94----SI8000-----------------------
  3598. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  3599.     SI = 8000h
  3600. Return: DX:AX -> DMA buffer
  3601. Program: PCM.COM is a superset of the standard PCM driver which provides
  3602.       additional functions for fine control of the driver
  3603. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  3604.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  3605.       the INT 94 handler's segment
  3606. SeeAlso: SI=8001h,SI=8004h
  3607. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  3608. Index:    Media Vision PCM.COM;"shark" functions
  3609. --------s-94----SI8001-----------------------
  3610. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  3611.     SI = 8001h
  3612. Return: AX = DMA buffer size
  3613.     DX = divisions
  3614. SeeAlso: SI=8000h
  3615. --------s-94----SI8002-----------------------
  3616. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  3617.     SI = 8002h
  3618. Return: AX = status
  3619.         0000h if board not at specified I/O address
  3620.         other if board found
  3621. Note:    the I/O address is specified by ORing the base I/O port shifted left
  3622.       four bits into SI before calling INT 94
  3623. SeeAlso: SI=8000h
  3624. --------s-94----SI8004-----------------------
  3625. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  3626.     SI = 8004h
  3627. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  3628.     DX = size of buffer in note structures
  3629. SeeAlso: SI=8000h
  3630. --------s-94----SI8005-----------------------
  3631. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  3632.     SI = 8005h
  3633. Return: ???
  3634. --------s-94----SI8011-----------------------
  3635. INT 94 u - Media Vision PCM.COM - INITIALIZE
  3636.     SI = 8011h
  3637.     ES:BX -> "iobf91" structure
  3638. Return: ???
  3639. --------s-94----SI8012-----------------------
  3640. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  3641.     SI = 8012h
  3642.     ES:BX -> "i94f92buf" structure
  3643. Return: ???
  3644. SeeAlso: SI=8013h,SI=8014h
  3645. --------s-94----SI8013-----------------------
  3646. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  3647.     SI = 8013h
  3648. Return: AX = number of sounds used
  3649.     DX = maximum handles
  3650. --------s-94----SI8014-----------------------
  3651. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  3652.     SI = 8014h
  3653.     ES:BX -> "i94f92buf" structure to be filled in
  3654.         sound number field set to desired sound
  3655. Return: AX = status
  3656.         0000h successful
  3657.         FFFFh sound number out of range
  3658. SeeAlso: SI=8012h,SI=8013h
  3659. --------s-94----SI8015-----------------------
  3660. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  3661.     SI = 8015h
  3662.     ES:BX -> DMA info structure (see #2401)
  3663. Return: ???
  3664.  
  3665. Format of PCM.COM DMA info structure:
  3666. Offset    Size    Description    (Table 2401)
  3667.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  3668.  04h    WORD    DMA buffer size
  3669.  06h    WORD    divisions
  3670. --------s-94----SI8016-----------------------
  3671. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  3672.     SI = 8016h
  3673.     AX = hotkey number (01h-08h)
  3674. Return: ???
  3675. SeeAlso: AL=02h/SI=8017h
  3676. --------s-94--01SI8017-----------------------
  3677. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  3678.     AL = 01h
  3679.     SI = 8017h
  3680.     AH = new state (00h off, 01h on)
  3681. Return: ???
  3682. SeeAlso: AL=02h/SI=8017h
  3683. --------s-94--02SI8017-----------------------
  3684. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  3685.     AL = 02h
  3686.     SI = 8017h
  3687.     AH = new state (00h off, 01h on)
  3688. Return: ???
  3689. --------s-94--04SI8017-----------------------
  3690. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  3691.     AL = 04h
  3692.     SI = 8017h
  3693.     AH = new state
  3694.         00h off
  3695.         01h on
  3696.         CX = minimum delay
  3697.         DX = maximum delay
  3698. Return: ???
  3699. --------s-94--08SI8017-----------------------
  3700. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  3701.     AL = 08h
  3702.     SI = 8017h
  3703.     AH = new state
  3704.         00h off
  3705.         01h on
  3706.         DX:CX = delay
  3707. Return: ???
  3708. SeeAlso: AL=10h/SI=8017h
  3709. --------s-94--10SI8017-----------------------
  3710. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  3711.     AL = 10h
  3712.     SI = 8017h
  3713.     AH bit 7: set timer
  3714.     AH bit 6: timer active (timer turned off if clear)
  3715.     AH bits 5-0: timer number
  3716.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  3717. Return: ???
  3718. SeeAlso: AL=08h/SI=8017h
  3719. --------s-94----SI8018-----------------------
  3720. INT 94 u - Media Vision PCM.COM - GET INFO
  3721.     SI = 8018h
  3722.     AL = what to get
  3723.         00h "F92state"
  3724.         01h "F92bkgd"
  3725.         02h "I10timer"
  3726.         03h "I08state"
  3727. Return: DX:AX -> desired information
  3728. --------r-95---------------------------------
  3729. INT 95 - IBM ROM BASIC - used while in interpreter
  3730. Notes:    called by ROM BASIC
  3731.     BASIC.COM/BASICA.COM do not restore vector on termination
  3732. --------r-95---------------------------------
  3733. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  3734. Note:    use only when the R= option is invoked on entering APL
  3735. --------r-96---------------------------------
  3736. INT 96 - IBM ROM BASIC - used while in interpreter
  3737. Notes:    called by ROM BASIC
  3738.     BASIC.COM/BASICA.COM do not restore vector on termination
  3739. --------r-97---------------------------------
  3740. INT 97 - IBM ROM BASIC - used while in interpreter
  3741. Notes:    called by ROM BASIC
  3742.     BASIC.COM/BASICA.COM do not restore vector on termination
  3743. --------r-98---------------------------------
  3744. INT 98 - IBM ROM BASIC - used while in interpreter
  3745. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3746.     BASIC.COM/BASICA.COM do not restore vector on termination
  3747. --------r-99---------------------------------
  3748. INT 99 - IBM ROM BASIC - used while in interpreter
  3749. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3750.     BASIC.COM/BASICA.COM do not restore vector on termination
  3751. --------r-9A---------------------------------
  3752. INT 9A - IBM ROM BASIC - used while in interpreter
  3753. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3754.     BASIC.COM/BASICA.COM do not restore vector on termination
  3755. SeeAlso: INT 80"BASIC",INT 99,INT 9B
  3756. --------r-9B---------------------------------
  3757. INT 9B - IBM ROM BASIC - used while in interpreter
  3758. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3759.     BASIC.COM/BASICA.COM do not restore vector on termination
  3760. SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"
  3761. --------r-9C---------------------------------
  3762. INT 9C - IBM ROM BASIC - used while in interpreter
  3763. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3764.     BASIC.COM/BASICA.COM do not restore vector on termination
  3765. SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"
  3766. --------v-9C---------------------------------
  3767. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  3768. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  3769. --------r-9D---------------------------------
  3770. INT 9D - IBM ROM BASIC - used while in interpreter
  3771. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3772.     BASIC.COM/BASICA.COM do not restore vector on termination
  3773. SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"
  3774. --------v-9D---------------------------------
  3775. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  3776. Note:    this vector is used by the virus to store the result of a call to
  3777.       INT 2F/AH=13h
  3778. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  3779. --------r-9E---------------------------------
  3780. INT 9E - IBM ROM BASIC - used while in interpreter
  3781. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3782.     BASIC.COM/BASICA.COM do not restore vector on termination
  3783. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"
  3784. --------v-9E---------------------------------
  3785. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  3786. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  3787. --------r-9F---------------------------------
  3788. INT 9F - IBM ROM BASIC - used while in interpreter
  3789. Notes:    called by ROM BASIC
  3790.     BASIC.COM/BASICA.COM do not restore vector on termination
  3791. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"
  3792. --------v-9F---------------------------------
  3793. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  3794. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  3795.       this interrupt to store the existing INT 13 vector for later
  3796.       restoration
  3797. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS"
  3798. --------r-A0---------------------------------
  3799. INT A0 - IBM ROM BASIC - used while in interpreter
  3800. Notes:    called by ROM BASIC
  3801.     BASIC.COM/BASICA.COM do not restore vector on termination
  3802. SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"
  3803. --------r-A0---------------------------------
  3804. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  3805. SeeAlso: INT 59
  3806. --------r-A1---------------------------------
  3807. INT A1 - IBM ROM BASIC - used while in interpreter
  3808. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3809.     BASIC.COM/BASICA.COM do not restore vector on termination
  3810. SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"
  3811. --------r-A2---------------------------------
  3812. INT A2 - IBM ROM BASIC - used while in interpreter
  3813. Notes:    called by ROM BASIC
  3814.     BASIC.COM/BASICA.COM do not restore vector on termination
  3815. SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"
  3816. --------r-A3---------------------------------
  3817. INT A3 - IBM ROM BASIC - used while in interpreter
  3818. Notes:    called by ROM BASIC
  3819.     BASIC.COM/BASICA.COM do not restore vector on termination
  3820. SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"
  3821. --------r-A4---------------------------------
  3822. INT A4 - IBM ROM BASIC - used while in interpreter
  3823. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3824.     BASIC.COM/BASICA.COM do not restore vector on termination
  3825. SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"
  3826. --------U-A4---------------------------------
  3827. INT A4 U - Right Hand Man - API
  3828.     AH = function number (v3.3 supports functions 00h-52h)
  3829. Return: CF set on error
  3830.     CF clear if successful
  3831. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  3832.       which has evolved into Futurus Team
  3833. Note:    this interrupt is only hooked while popped up
  3834. SeeAlso: INT 2F/AX=A4E0h
  3835. --------r-A5---------------------------------
  3836. INT A5 - IBM ROM BASIC - used while in interpreter
  3837. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3838.     BASIC.COM/BASICA.COM do not restore vector on termination
  3839. SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"
  3840. --------r-A6---------------------------------
  3841. INT A6 - IBM ROM BASIC - used while in interpreter
  3842. Notes:    called by ROM BASIC
  3843.     BASIC.COM/BASICA.COM do not restore vector on termination
  3844. SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"
  3845. --------r-A7---------------------------------
  3846. INT A7 - IBM ROM BASIC - used while in interpreter
  3847. Notes:    called by ROM BASIC
  3848.     BASIC.COM/BASICA.COM do not restore vector on termination
  3849. --------r-A8---------------------------------
  3850. INT A8 - IBM ROM BASIC - used while in interpreter
  3851. Notes:    called by ROM BASIC
  3852.     BASIC.COM/BASICA.COM do not restore vector on termination
  3853. --------r-A9---------------------------------
  3854. INT A9 - IBM ROM BASIC - used while in interpreter
  3855. Notes:    called by ROM BASIC
  3856.     BASIC.COM/BASICA.COM do not restore vector on termination
  3857. --------r-AA---------------------------------
  3858. INT AA - IBM ROM BASIC - used while in interpreter
  3859. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3860.     BASIC.COM/BASICA.COM do not restore vector on termination
  3861. --------r-AB---------------------------------
  3862. INT AB - IBM ROM BASIC - used while in interpreter
  3863. Notes:    called by ROM BASIC
  3864.     BASIC.COM/BASICA.COM do not restore vector on termination
  3865. --------r-AC---------------------------------
  3866. INT AC - IBM ROM BASIC - used while in interpreter
  3867. Notes:    called by ROM BASIC
  3868.     BASIC.COM/BASICA.COM do not restore vector on termination
  3869. --------r-AD---------------------------------
  3870. INT AD - IBM ROM BASIC - used while in interpreter
  3871. Notes:    called by ROM BASIC
  3872.     BASIC.COM/BASICA.COM do not restore vector on termination
  3873. --------r-AE---------------------------------
  3874. INT AE - IBM ROM BASIC - used while in interpreter
  3875. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3876.     BASIC.COM/BASICA.COM do not restore vector on termination
  3877. --------r-AF---------------------------------
  3878. INT AF - IBM ROM BASIC - used while in interpreter
  3879. Notes:    called by ROM BASIC
  3880.     BASIC.COM/BASICA.COM do not restore vector on termination
  3881. --------r-B0---------------------------------
  3882. INT B0 - IBM ROM BASIC - used while in interpreter
  3883. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3884.     BASIC.COM/BASICA.COM do not restore vector on termination
  3885. --------r-B1---------------------------------
  3886. INT B1 - IBM ROM BASIC - used while in interpreter
  3887. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3888.     BASIC.COM/BASICA.COM do not restore vector on termination
  3889. --------r-B2---------------------------------
  3890. INT B2 - IBM ROM BASIC - used while in interpreter
  3891. Notes:    called by ROM BASIC
  3892.     BASIC.COM/BASICA.COM do not restore vector on termination
  3893. --------r-B3---------------------------------
  3894. INT B3 - IBM ROM BASIC - used while in interpreter
  3895. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3896.     BASIC.COM/BASICA.COM do not restore vector on termination
  3897. --------U-B370-------------------------------
  3898. INT B3 - ZIPKEY - GET VERSION
  3899.     AH = 70h
  3900. Return: AH = major version
  3901.     AL = minor version
  3902.     CL = number of states and territories in current database
  3903.     DH = year of current database - 1900
  3904.     DL = month of current database's file date
  3905. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  3906. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  3907.       interrupt handler's segment, and the byte at 7Bh contains the API
  3908.       version number (00h for v1.x, 01h for v2.0)
  3909. --------U-B371-------------------------------
  3910. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  3911.     AH = 71h
  3912.     BX = abbreviation, in either case (first letter in BL)
  3913. Return: CF set on error
  3914.         AL = FFh
  3915.     CF clear if successful
  3916.         AL = ZIPKEY state code
  3917. SeeAlso: AH=72h
  3918. --------U-B372-------------------------------
  3919. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  3920.     AH = 72h
  3921.     BL = ZIPKEY state code
  3922. Return: CF set on error
  3923.         AX destroyed
  3924.     CF clear if successful
  3925.         AX = abbreviation, in upper case
  3926. SeeAlso: AH=71h,AH=73h
  3927. --------U-B373-------------------------------
  3928. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  3929.     AH = 73h
  3930.     BL = ZIPKEY state code
  3931.     ES:DI -> buffer for name
  3932. Return: CF set on error
  3933.         AX destroyed
  3934.     CF clear if successful
  3935.         ES:DI points one byte beyond end of name
  3936. SeeAlso: AH=72h
  3937. --------U-B374-------------------------------
  3938. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  3939.     AH = 74h
  3940.     DX = zipcode region (0-999)
  3941.     CH = last two digits of zipcode (0-99)
  3942.     ES:DI -> buffer
  3943. Return: CF set on error
  3944.         AX destroyed
  3945.     CF clear if successful
  3946.         ES:DI points one byte beyond end of digit string
  3947. --------U-B375-------------------------------
  3948. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  3949.     AH = 75h
  3950.     DX = zipcode region (0-999)
  3951.     CH = last two digits of zipcode (0-99)
  3952. Return: CF set on error (zipcode not found)
  3953.         AL = suggested state code, FFh if none
  3954.     CF clear if successful
  3955.         AL = ZIPKEY state code
  3956.         BX = area code (v2.0+)
  3957. SeeAlso: AH=76h,AH=79h
  3958. --------U-B376-------------------------------
  3959. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  3960.     AH = 76h
  3961.     DX = zipcode region (0-999)
  3962.     CH = last two digits of zipcode (0-99)
  3963.     ES:DI -> buffer for name
  3964. Return: CF set on error
  3965.         AL = suggested state code, FFh if none
  3966.         ES:DI buffer filled with suggested city name
  3967.     CF clear if successful
  3968.         AL = ZIPKEY state code
  3969.         BX = area code (v2.0+)
  3970.         ES:DI points one byte beyond end of name
  3971. SeeAlso: AH=75h,AH=78h,AH=7Eh
  3972. --------U-B377-------------------------------
  3973. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  3974.     AH = 77h
  3975.     DX = zipcode region (0-999)
  3976.     CH = last two digits of zipcode (0-99)
  3977.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  3978. Return: CF set on error
  3979.         AX destroyed
  3980.     CF clear if successful
  3981.         zipcode specification as defined by the BX keystroke is placed in
  3982.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  3983.           by pressing the key specified by BX
  3984. --------U-B378-------------------------------
  3985. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  3986.     AH = 78h
  3987.     BL = ZIPKEY state code
  3988.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  3989. Return: BH = number of matching entries (set to 51 if more than 50)
  3990.     DX = zipcode region of first match (0-999)
  3991.     CL = last two digits of first zipcode in the range (0-99)
  3992.     CH = last two digits of last zipcode in the range (0-99)
  3993.     AX destroyed
  3994. SeeAlso: AH=79h,AH=7Ah
  3995. --------U-B379-------------------------------
  3996. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  3997.     AH = 79h
  3998.     BL = ZIPKEY state code of first state to search
  3999.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  4000. Return: AL = ZIPKEY state code of first matching state
  4001.     BH = number of matching entries (set to 51 if more than 50)
  4002.     DX = zipcode region of first match (0-999)
  4003.     CL = last two digits of first zipcode in first range (0-99)
  4004.     CH = last two digits of last zipcode in first range (0-99)
  4005. Note:    to find all matching cities, repeat search with BL set to one more than
  4006.       the returned AL
  4007. SeeAlso: AH=78h,AH=7Ah
  4008. --------U-B37A-------------------------------
  4009. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  4010.     AH = 7Ah
  4011.     BL = case number (0 to one less than value returned in BH by lookup)
  4012. Return: AL = ZIPKEY state code
  4013.     DX = zipcode region (0-999)
  4014.     CL = last two digits of first zipcode in the range (0-99)
  4015.     CH = last two digits of last zipcode in the range (0-99)
  4016. SeeAlso: AH=78h,AH=79h
  4017. --------U-B37B-------------------------------
  4018. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  4019.     AH = 7Bh
  4020. Return: BL = maximum number of characters for a city name
  4021.     BH = ZIPKEY state code for last city-name search, or FFh if none
  4022.     CX:DX = internal code identifying last city search
  4023.     AX destroyed
  4024. SeeAlso: AH=7Ch
  4025. --------U-B37C-------------------------------
  4026. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  4027.     AH = 7Ch
  4028.     BL = maximum number of characters for a city name
  4029.     BH = ZIPKEY state code for last city-name search, or FFh if none
  4030.     CX:DX = internal code returned by AH=7Bh
  4031. Return: CF set on error
  4032.     CF clear if successful
  4033.     AX destroyed
  4034. SeeAlso: AH=7Bh
  4035. --------U-B37D-------------------------------
  4036. INT B3 - ZIPKEY - REQUEST POP UP
  4037.     AH = 7Dh
  4038.     BL = index number to simulate pressing a hotkey
  4039.         FFh for immediate popup with no playback on return
  4040. Return: CF set on error
  4041.         AL = error code
  4042.         FDh already busy with another request
  4043.         FEh illegal function
  4044.     CF clear if successful
  4045.         AX destroyed
  4046.         window popped up and was closed by the user
  4047. SeeAlso: AH=70h
  4048. --------U-B37E-------------------------------
  4049. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  4050.     AH = 7Eh
  4051.     DX = zipcode region (0-999)
  4052.     ES:DI -> buffer for name
  4053. Return: CF set on error
  4054.         AL = FFh region does not exist
  4055.     CF clear if successful
  4056.         AL = ZIPKEY state code
  4057.         ES:DI points one byte beyond end of name
  4058. SeeAlso: AH=76h
  4059. --------U-B37F-------------------------------
  4060. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  4061.     AH = 7Fh
  4062.     BL = function
  4063.         00h turn off hotkeys
  4064.         01h turn on hotkeys
  4065.         02h return hotkey status
  4066.         03h toggle hotkey status
  4067. Return: AL = hotkey status
  4068.         00h off
  4069.         01h on
  4070. --------U-B380-------------------------------
  4071. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  4072.     AH = 80h
  4073.     BX = telephone area code (decimal)
  4074. Return: CF clear if successful
  4075.         AL = ZIPKEY state code
  4076.         DX = first ZIP region for state (03E8h if Canada)
  4077.         CX = number of ZIP regions in state
  4078.     CF set on error
  4079.         AL = FFh
  4080.         DX = 03E9h
  4081. --------r-B4---------------------------------
  4082. INT B4 - IBM ROM BASIC - used while in interpreter
  4083. Notes:    called by ROM BASIC
  4084.     BASIC.COM/BASICA.COM do not restore vector on termination
  4085. --------r-B4---------------------------------
  4086. INT B4 - StackMan - REQUEST NEW STACK
  4087. Return: SS:SP -> new stack
  4088. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  4089.       which functions as a replacement for the DOS STACK= command as well
  4090.       as permitting multiple TSRs to share a pool of stack space
  4091. Note:    the installation check consists of testing for the string "STACKXXX" at
  4092.       offset 0Ah from the interrupt handler
  4093. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  4094. Index:    installation check;STACKMAN
  4095. --------r-B5---------------------------------
  4096. INT B5 - IBM ROM BASIC - used while in interpreter
  4097. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4098.     BASIC.COM/BASICA.COM do not restore vector on termination
  4099. SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"
  4100. --------r-B5---------------------------------
  4101. INT B5 - StackMan - RESTORE ORIGINAL STACK
  4102.     SS:SP -> stack returned by INT B4
  4103. Return: SS:SP restored to value before INT B4
  4104. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  4105. --------m-B5---------------------------------
  4106. INT B5 U - Netroom NETSWAP4 - ???
  4107.     ???
  4108. Return: ???
  4109. SeeAlso: INT 31/AH=57h
  4110. --------r-B6---------------------------------
  4111. INT B6 - IBM ROM BASIC - used while in interpreter
  4112. Notes:    called by ROM BASIC
  4113.     BASIC.COM/BASICA.COM do not restore vector on termination
  4114. SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"
  4115. --------y-B6---------------------------------
  4116. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  4117. Program: TBFence is a security program by ESaSS B.V. which transparently
  4118.       encrypts floppies and optionally allows only encrypted diskettes to
  4119.       be accessed
  4120. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  4121.       TBFence INT 13h code, which starts with the signature word E487h;
  4122.       this forms the installation check
  4123.     the highest byte of this vector contains the start of a FAR JMP
  4124.       instruction to ???
  4125. SeeAlso: INT B7"TBFENCE"
  4126. Index:    installation check;TBFence
  4127. --------r-B7---------------------------------
  4128. INT B7 - IBM ROM BASIC - used while in interpreter
  4129. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4130.     BASIC.COM/BASICA.COM do not restore vector on termination
  4131. SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"
  4132. --------y-B7---------------------------------
  4133. INT B7 - TBFENCE - ???
  4134. SeeAlso: INT B6"TBFENCE"
  4135. --------r-B8---------------------------------
  4136. INT B8 - IBM ROM BASIC - used while in interpreter
  4137. Notes:    called by ROM BASIC
  4138.     BASIC.COM/BASICA.COM do not restore vector on termination
  4139. SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"
  4140. --------r-B9---------------------------------
  4141. INT B9 - IBM ROM BASIC - used while in interpreter
  4142. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4143.     BASIC.COM/BASICA.COM do not restore vector on termination
  4144. --------r-BA---------------------------------
  4145. INT BA - IBM ROM BASIC - used while in interpreter
  4146. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4147.     BASIC.COM/BASICA.COM do not restore vector on termination
  4148. --------r-BB---------------------------------
  4149. INT BB - IBM ROM BASIC - used while in interpreter
  4150. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4151.     BASIC.COM/BASICA.COM do not restore vector on termination
  4152. --------r-BC---------------------------------
  4153. INT BC - IBM ROM BASIC - used while in interpreter
  4154. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4155.     BASIC.COM/BASICA.COM do not restore vector on termination
  4156. --------r-BD---------------------------------
  4157. INT BD - IBM ROM BASIC - used while in interpreter
  4158. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4159.     BASIC.COM/BASICA.COM do not restore vector on termination
  4160. --------r-BE---------------------------------
  4161. INT BE - IBM ROM BASIC - used while in interpreter
  4162. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4163.     BASIC.COM/BASICA.COM do not restore vector on termination
  4164. SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"
  4165. --------Q-BE---------------------------------
  4166. INT BE - DESQview/X - ???
  4167. Note:    points at an IRET
  4168. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  4169. --------r-BF---------------------------------
  4170. INT BF - IBM ROM BASIC - used while in interpreter
  4171. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4172.     BASIC.COM/BASICA.COM do not restore vector on termination
  4173. SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"
  4174. --------r-C0---------------------------------
  4175. INT C0 - IBM ROM BASIC - used while in interpreter
  4176. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4177.     BASIC.COM/BASICA.COM do not restore vector on termination
  4178. SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"
  4179. --------d-C0---------------------------------
  4180. INT C0 - AMI BIOS - DRIVE 0 DATA
  4181. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  4182.       of the hard disk parameter table
  4183. SeeAlso: INT 41,INT 60"Adaptec",INT C1"AMI",INT C2"AMI",INT C3"AMI",INT C4"AMI"
  4184. --------r-C1---------------------------------
  4185. INT C1 - IBM ROM BASIC - used while in interpreter
  4186. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4187.     BASIC.COM/BASICA.COM do not restore vector on termination
  4188. SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"
  4189. --------d-C1---------------------------------
  4190. INT C1 - AMI BIOS - DRIVE 0 DATA
  4191. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  4192.       of the hard disk parameter table
  4193. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C2"AMI",INT C3"AMI"
  4194. --------r-C2---------------------------------
  4195. INT C2 - IBM ROM BASIC - used while in interpreter
  4196. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4197.     BASIC.COM/BASICA.COM do not restore vector on termination
  4198. SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"
  4199. --------d-C2---------------------------------
  4200. INT C2 - AMI BIOS - DRIVE 0 DATA
  4201. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  4202.       of the hard disk parameter table
  4203. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"
  4204. --------r-C3---------------------------------
  4205. INT C3 - IBM ROM BASIC - used while in interpreter
  4206. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4207.     BASIC.COM/BASICA.COM do not restore vector on termination
  4208. SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"
  4209. --------d-C3---------------------------------
  4210. INT C3 - AMI BIOS - DRIVE 0 DATA
  4211. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  4212.       of the hard disk parameter table
  4213. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"
  4214. --------r-C4---------------------------------
  4215. INT C4 - IBM ROM BASIC - used while in interpreter
  4216. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4217.     BASIC.COM/BASICA.COM do not restore vector on termination
  4218. SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"
  4219. --------d-C4---------------------------------
  4220. INT C4 - AMI BIOS - DRIVE 1 DATA
  4221. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  4222.       of the second hard disk's parameter table
  4223. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C5"AMI",INT C6"AMI",INT C7"AMI"
  4224. --------r-C5---------------------------------
  4225. INT C5 - IBM ROM BASIC - used while in interpreter
  4226. Notes:    called by ROM BASIC
  4227.     BASIC.COM/BASICA.COM do not restore vector on termination
  4228. SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"
  4229. --------d-C5---------------------------------
  4230. INT C5 - AMI BIOS - DRIVE 1 DATA
  4231. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  4232.       of the second hard disk's parameter table
  4233. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C6"AMI",INT C7"AMI"
  4234. --------r-C6---------------------------------
  4235. INT C6 - IBM ROM BASIC - used while in interpreter
  4236. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4237.     BASIC.COM/BASICA.COM do not restore vector on termination
  4238. SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"
  4239. --------r-C6---------------------------------
  4240. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  4241. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4242.       the older interrupts
  4243. SeeAlso: INT 86"APL"
  4244. --------d-C6---------------------------------
  4245. INT C6 - AMI BIOS - DRIVE 1 DATA
  4246. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  4247.       of the second hard disk's parameter table
  4248. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C7"AMI"
  4249. --------r-C7---------------------------------
  4250. INT C7 - IBM ROM BASIC - used while in interpreter
  4251. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4252.     BASIC.COM/BASICA.COM do not restore vector on termination
  4253. SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"
  4254. --------r-C7---------------------------------
  4255. INT C7 - APL*PLUS/PC - ???
  4256. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4257.       the older interrupts
  4258. SeeAlso: INT 87"APL"
  4259. --------d-C7---------------------------------
  4260. INT C7 - AMI BIOS - DRIVE 1 DATA
  4261. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  4262.       of the second hard disk's parameter table
  4263. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C6"AMI"
  4264. --------r-C8---------------------------------
  4265. INT C8 - IBM ROM BASIC - used while in interpreter
  4266. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4267.     BASIC.COM/BASICA.COM do not restore vector on termination
  4268. SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"
  4269. --------r-C8---------------------------------
  4270. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  4271. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4272.       the older interrupts
  4273. SeeAlso: INT 88"APL"
  4274. --------r-C9---------------------------------
  4275. INT C9 - IBM ROM BASIC - used while in interpreter
  4276. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4277.     BASIC.COM/BASICA.COM do not restore vector on termination
  4278. SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"
  4279. --------r-C9---------------------------------
  4280. INT C9 - APL*PLUS/PC - ???
  4281. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4282.       the older interrupts
  4283. SeeAlso: INT 89"APL"
  4284. --------r-CA---------------------------------
  4285. INT CA - IBM ROM BASIC - used while in interpreter
  4286. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4287.     BASIC.COM/BASICA.COM do not restore vector on termination
  4288. SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"
  4289. --------r-CA---------------------------------
  4290. INT CA - APL*PLUS/PC - PRINT SCREEN
  4291. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4292.       the older interrupts
  4293. SeeAlso: INT 8A"APL"
  4294. --------r-CB---------------------------------
  4295. INT CB - IBM ROM BASIC - used while in interpreter
  4296. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4297.     BASIC.COM/BASICA.COM do not restore vector on termination
  4298. SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"
  4299. --------r-CB---------------------------------
  4300. INT CB - APL*PLUS/PC - BEEP
  4301. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4302.       the older interrupts
  4303.     same as printing a ^G via INT 21/AH=02h
  4304. SeeAlso: INT 8B"APL"
  4305. --------r-CC---------------------------------
  4306. INT CC - IBM ROM BASIC - used while in interpreter
  4307. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4308.     BASIC.COM/BASICA.COM do not restore vector on termination
  4309. SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"
  4310. --------r-CC---------------------------------
  4311. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  4312.     AX = flag
  4313.         0000h do not save display attributes
  4314.         0001h save attributes
  4315. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4316.       the older interrupts
  4317. SeeAlso: INT 8C"APL"
  4318. --------r-CD---------------------------------
  4319. INT CD - IBM ROM BASIC - used while in interpreter
  4320. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4321.     BASIC.COM/BASICA.COM do not restore vector on termination
  4322. SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"
  4323. --------r-CD---------------------------------
  4324. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4325. --------r-CE---------------------------------
  4326. INT CE - IBM ROM BASIC - used while in interpreter
  4327. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4328.     BASIC.COM/BASICA.COM do not restore vector on termination
  4329. SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"
  4330. --------r-CE---------------------------------
  4331. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4332. --------r-CF---------------------------------
  4333. INT CF - IBM ROM BASIC - used while in interpreter
  4334. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4335.     BASIC.COM/BASICA.COM do not restore vector on termination
  4336. SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"
  4337. --------r-CF---------------------------------
  4338. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  4339. SeeAlso: INT E0"APL"
  4340. --------r-D0---------------------------------
  4341. INT D0 - IBM ROM BASIC - used while in interpreter
  4342. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4343.     BASIC.COM/BASICA.COM do not restore vector on termination
  4344. SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"
  4345. --------r-D0---------------------------------
  4346. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4347. --------U-D0---------------------------------
  4348. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  4349. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  4350.       James" Blaszczak
  4351. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  4352. Index:    installation check;NJFRERAM
  4353. --------r-D1---------------------------------
  4354. INT D1 - IBM ROM BASIC - used while in interpreter
  4355. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4356.     BASIC.COM/BASICA.COM do not restore vector on termination
  4357. SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"
  4358. --------r-D1---------------------------------
  4359. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4360. --------r-D2---------------------------------
  4361. INT D2 - IBM ROM BASIC - used while in interpreter
  4362. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4363.     BASIC.COM/BASICA.COM do not restore vector on termination
  4364. SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"
  4365. --------r-D2---------------------------------
  4366. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4367. --------r-D3---------------------------------
  4368. INT D3 - IBM ROM BASIC - used while in interpreter
  4369. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4370.     BASIC.COM/BASICA.COM do not restore vector on termination
  4371. SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"
  4372. --------r-D3---------------------------------
  4373. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4374. --------r-D4---------------------------------
  4375. INT D4 - IBM ROM BASIC - used while in interpreter
  4376. Notes:    called by ROM BASIC
  4377.     BASIC.COM/BASICA.COM do not restore vector on termination
  4378. SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"
  4379. --------r-D4---------------------------------
  4380. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  4381. --------O-D400-------------------------------
  4382. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  4383.     AH = 00h and 01h
  4384. Return: nothing
  4385. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  4386.       and enters an endless loop
  4387. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4388.       system by The Software Link, Inc.
  4389. --------O-D402-------------------------------
  4390. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  4391.     AH = 02h
  4392. Return: AX = 0000h
  4393.     ES:BX -> System Control Block in V86 mode (see #2402)
  4394.     ES:EBX -> System Control Block in native mode (see #2402)
  4395. Note:    superseded by AH=26h
  4396. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  4397.  
  4398. Format of PC-MOS/386 System Control Block:
  4399. Offset    Size    Description    (Table 2402)
  4400.  00h    WORD    pointer to first TCB in chain
  4401.  02h 17 BYTEs    reserved
  4402.  13h    WORD    pointer to current task's TCB
  4403.  15h    WORD    pointer to TCB of visible (console) task
  4404. --------O-D403-------------------------------
  4405. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  4406.     AH = 03h
  4407.     AL = subfunction (00h get, 01h set)
  4408.     DS:(E)DX -> pathname
  4409.     ES:(E)BX -> 10-byte buffer for directory information (see #2403)
  4410. Return: CF clear if successful
  4411.         AL = permitted access level for file (00h-03h)
  4412.         ES:(E)BX -> modified buffer (AL=01h on entry)
  4413.     CF set on error
  4414.         AX = error code (see #0811 at INT 21/AH=59h)
  4415. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  4416.     the file class cannot be changed for files because it affects the
  4417.       encryption method, but directories can have their classes changed
  4418.  
  4419. Format of PC-MOS/386 directory information:
  4420. Offset    Size    Description    (Table 2403)
  4421.  00h    BYTE    reserved (0)
  4422.  01h    BYTE    file class ('A'-'Z' or 00h)
  4423.  02h    DWORD    user ID of file creator
  4424.  06h    WORD    file creation time (see #0802 at INT 21/AX=5700h)
  4425.  08h    WORD    file creation date (see #0803 at INT 21/AX=5700h)
  4426. --------O-D404-------------------------------
  4427. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  4428.     AH = 04h
  4429.     BX = task ID or FFFFh for calling task
  4430. Return: CF clear if successful
  4431.         ES = segment of Task Control Block (TCB) (see #2404)
  4432.     CF set on error
  4433.         AX = error code (see #0811 at INT 21/AH=59h)
  4434. Note:    superseded by AH=27h
  4435. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  4436.  
  4437. Format of PC-MOS/386 Task Control Block:
  4438. Offset    Size    Description    (Table 2404)
  4439.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4440.  01h    BYTE    header block ID, "T" = TCB
  4441.  02h    WORD    length of block in paragraphs
  4442.  04h    WORD    segment address of next header block (0000h if last)
  4443.  06h    WORD    segment address of previous header block (0000h if first)
  4444.  08h    WORD    pointer to next TCB
  4445.  0Ah    WORD    pointer to previous TCB
  4446.  0Ch    WORD    pointer to associated TCB (if applicable)
  4447.  0Eh    WORD    reserved
  4448. ---TCB---
  4449.  10h    WORD    TCB task ID
  4450.  12h    WORD    native context save area
  4451.  14h    WORD    start address of task
  4452.  16h    WORD    end address of task
  4453.  18h    BYTE    task priority
  4454.  19h    BYTE    task time slice
  4455.  1Ah    BYTE    "TCBWAIT" run status of task
  4456.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  4457.  1Ch    DWORD    address of polling routine
  4458.  20h    BYTE    error code from last function call
  4459.  21h 11 BYTEs    name of currently executing task
  4460.  2Ch  4 BYTEs    ???
  4461.  30h    BYTE    keyboard disabled if bit 1 set
  4462.  31h    BYTE    current shift state and toggles
  4463.  32h  2 BYTEs    ???
  4464.  34h    BYTE    current video mode
  4465.  35h    BYTE    current video page
  4466.  36h    BYTE    number of text columns per screen
  4467.  37h    BYTE    number of text rows per screen
  4468.  38h    WORD    length of video buffer
  4469.  3Ah    WORD    video page length
  4470.  3Ch    WORD    apge start address in video RAM
  4471.  3Eh  4 WORDs    current cursor positions for four screen pages
  4472.  46h  8 BYTEs    ???
  4473.  4Eh    WORD    current cursor type
  4474.  50h    BYTE    current palette setting
  4475.  51h    BYTE    original video mode
  4476.  52h    BYTE    start CRT row (00h or 01h)
  4477.  53h    BYTE    video RAM in task active
  4478.  54h    WORD    handle of video save area
  4479.  56h    WORD    page count of video save area
  4480.  58h    WORD    segment address of video save area
  4481.  5Ah    WORD    poitner to first Task File Block (see #2407)
  4482.  5Ch    WORD    pointer to first Current Directory Block (see #2410)
  4483.  5Eh    WORD    pointer to active Current Directory Block (see #2410)
  4484.  60h    BYTE    number of drives
  4485.  61h    BYTE    current drive (0=A:, etc.)
  4486.  62h    DWORD    disk transfer address
  4487.  66h  4 BYTEs    ???
  4488.  6Ah    BYTE    verify flag (nonzero = on)
  4489.  6Bh    BYTE    break flag (nonzero = on)
  4490.  6Ch    WORD    share/lock retry count
  4491.  6Eh    WORD    ticks between share/lock retries
  4492.  70h    BYTE    remote printer flags (see #2405)
  4493.  71h    BYTE    ETX/ACK delay count
  4494.  72h    WORD    spooler segment address
  4495.  74h  2 BYTEs    ???
  4496.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see #2406)
  4497.  79h  2 BYTEs    ???
  4498.  7Bh    DWORD    offset of username in TCB
  4499.  7Fh    BYTE    current output class
  4500.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  4501.  87h 122 BYTEs    ???
  4502. 101h    BYTE    TCB sleep downcounter value
  4503. 102h 20 BYTEs    ???
  4504. 116h    BYTE    last scan code
  4505.     ...
  4506. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  4507. 5D4h    WORD    offset of logical screen
  4508. 5D6h    WORD    segment of logical screen
  4509. 5D8h    WORD    cursor offset within page
  4510. 5DAh    BYTE    screen columns
  4511. 5DBh    WORD    async port number (0000h = none)
  4512. 5DDh    DWORD    physical baudrate
  4513. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  4514.     ...
  4515. 7A6h    DWORD    far pointer to unregister calling chain
  4516.  
  4517. Bitfields for PC-MOS/386 remote printer flags:
  4518. Bit(s)    Description    (Table 2405)
  4519.  0    LPT1 to terminal
  4520.  1    LPT2 to terminal
  4521.  2    LPT3 to terminal
  4522.  3    escape to printer pending
  4523.  4    use XON/XOFF
  4524.  5    use ETX/ACK
  4525.  6    waiting for ACK or XON
  4526.  7    transparent printing on
  4527.  
  4528. (Table 2406)
  4529. Values for PC-MOS/386 remote printer redirection:
  4530.  00h    not redirected
  4531.  01h    redirected to COM1
  4532.  ...
  4533.  18h    redirected to COM24
  4534.  51h    redirected to LPT1
  4535.  52h    redirected to LPT2
  4536.  53h    redirected to LPT3
  4537.  
  4538. Format of PC-MOS/386 Task File Block:
  4539. Offset    Size    Description    (Table 2407)
  4540.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4541.  01h    BYTE    header block ID, "F" = task file block
  4542.  02h    WORD    length of block in paragraphs
  4543.  04h    WORD    segment address of next header block (0000h if last)
  4544.  06h    WORD    segment address of previous header block (0000h if first)
  4545.  08h    WORD    pointer to next TCB
  4546.  0Ah    WORD    pointer to previous TCB
  4547.  0Ch    WORD    pointer to associated TCB (if applicable)
  4548.  0Eh    WORD    reserved
  4549. ---TFB---
  4550.  10h    WORD    segment address of next TFB
  4551.  12h    WORD    segment address of previous TFB
  4552.  14h    WORD    segment address of TFB's Global File Block (see #2409)
  4553.  16h    WORD    segment address of owner's PSP
  4554.  18h    WORD    file handle
  4555.  1Ah  3 BYTEs    ???
  4556.  1Dh    DWORD    file position
  4557.  21h  4 BYTEs    ???
  4558.  25h    BYTE    IOCTL flags (see #2408)
  4559.  26h  2 BYTEs    ???
  4560.  
  4561. Bitfields for PC-MOS/386 IOCTL flags:
  4562. Bit(s)    Description    (Table 2408)
  4563.  0    stdin
  4564.  1    stdout
  4565.  2    null device
  4566.  3    clock device
  4567.  4    reserved
  4568.  5    ASCII mode instead of binary
  4569.  6    EOF encountered on input
  4570.  7    device rather than file
  4571.  
  4572. Format of PC-MOS/386 Global File Block:
  4573. Offset    Size    Description    (Table 2409)
  4574.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4575.  01h    BYTE    header block ID, "G" = global file block
  4576.  02h    WORD    length of block in paragraphs
  4577.  04h    WORD    segment address of next header block (0000h if last)
  4578.  06h    WORD    segment address of previous header block (0000h if first)
  4579.  08h    WORD    pointer to next TCB
  4580.  0Ah    WORD    pointer to previous TCB
  4581.  0Ch    WORD    pointer to associated TCB (if applicable)
  4582.  0Eh    WORD    reserved
  4583. ---GFB---
  4584.  10h 10 BYTEs    ???
  4585.  1Ah    WORD    file attribute
  4586.  1Ch    BYTE    ???
  4587.  1Dh    DWORD    address of device driver
  4588.  21h    WORD    first cluster
  4589.  23h    WORD    time of last modification
  4590.  25h    WORD    date of last modification
  4591.  27h    DWORD    size of file in bytes
  4592.  2Bh 11 BYTEs    ???
  4593.  36h 11 BYTEs    device name or FCB-format filename
  4594.  41h    WORD    segment address of TFB list
  4595.  43h    WORD    segment address of first RLB (see #2412) (0000h = none)
  4596.  45h    BYTE    flag: nonzero if GFB refers to character device
  4597.  46h    WORD    address of Block Device Block (see #2411)
  4598.  48h    WORD    sector of file's directory entry
  4599.  4Ah    WORD    high word of file's directory entry
  4600.  4Ch    WORD    ofsset of directory entry within sector
  4601.  
  4602. Format of PC-MOS/386 Current Directory Block:
  4603. Offset    Size    Description    (Table 2410)
  4604.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4605.  01h    BYTE    header block ID, "C" = current directory block
  4606.  02h    WORD    length of block in paragraphs
  4607.  04h    WORD    segment address of next header block (0000h if last)
  4608.  06h    WORD    segment address of previous header block (0000h if first)
  4609.  08h    WORD    pointer to next TCB
  4610.  0Ah    WORD    pointer to previous TCB
  4611.  0Ch    WORD    pointer to associated TCB (if applicable)
  4612.  0Eh    WORD    reserved
  4613. ---CDB---
  4614.  10h    BYTE    drive number
  4615.  11h    BYTE    ???
  4616.  12h 64 BYTEs    directory name
  4617.  52h    WORD    first directory cluster (0000h = root)
  4618.  
  4619. Format of PC-MOS/386 Block Device Block:
  4620. Offset    Size    Description    (Table 2411)
  4621.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4622.  01h    BYTE    header block ID, "B" = block device block
  4623.  02h    WORD    length of block in paragraphs
  4624.  04h    WORD    segment address of next header block (0000h if last)
  4625.  06h    WORD    segment address of previous header block (0000h if first)
  4626.  08h    WORD    pointer to next TCB
  4627.  0Ah    WORD    pointer to previous TCB
  4628.  0Ch    WORD    pointer to associated TCB (if applicable)
  4629.  0Eh    WORD    reserved
  4630. ---BDB---
  4631.  10h    BYTE    logical drive
  4632.  11h    BYTE    unit passed to driver
  4633.  12h    WORD    sector size
  4634.  14h    BYTE    cluster mask
  4635.  15h    BYTE    cluster shift count
  4636.  16h    WORD    starting sector of first FAT
  4637.  18h    BYTE    number of FATs
  4638.  19h    WORD    number of root directories
  4639.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  4640.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  4641.  1Fh    BYTE    number of sectors in FAT
  4642.  20h    WORD    beginning root directory sector number
  4643.  22h    DWORD    device driver address
  4644.  26h    BYTE    media descriptor byte
  4645.  27h  5 BYTEs    ???
  4646.  2Ch    BYTE    flag: volume > 32MB
  4647.  2Dh    BYTE    ???
  4648.  2Eh    BYTE    number of sectors per cluster
  4649.  2Fh    WORD    number of clusters on device
  4650.  31h    WORD    number of free clusters (FFFFh = unknown)
  4651.  33h    WORD    root directory cluster number
  4652.  35h    WORD    pointer to alias/subst string
  4653.  37h    WORD    TCB segment address of owner (0000h = none)
  4654.  
  4655. Format of PC-MOS/386 Record Lock Block:
  4656. Offset    Size    Description    (Table 2412)
  4657.  00h    BYTE    signature byte "H" if allocated from system memory pool
  4658.  01h    BYTE    header block ID, "R" = record lock block
  4659.  02h    WORD    length of block in paragraphs
  4660.  04h    WORD    segment address of next header block (0000h if last)
  4661.  06h    WORD    segment address of previous header block (0000h if first)
  4662.  08h    WORD    pointer to next TCB
  4663.  0Ah    WORD    pointer to previous TCB
  4664.  0Ch    WORD    pointer to associated TCB (if applicable)
  4665.  0Eh    WORD    reserved
  4666. ---RLB---
  4667.  10h    WORD    segment address of owner's PSP
  4668.  12h    WORD    segment address of Global File Block (see #2409)
  4669.  14h    WORD    segment address of owner's Task File Block (see #2407)
  4670.  16h    DWORD    file offset of locked region start
  4671.  1Ah    DWORD    length of locked region
  4672.  1Eh    WORD    owner's handle for file
  4673. --------O-D407-------------------------------
  4674. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  4675.     AH = 07h
  4676.     AL = events to monitor (see #2413)
  4677.     BX = number of timer ticks until timeout if AL bit 1 set
  4678.     CX = bitmap of IRQs to monitor if AL bit 2 set
  4679.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  4680.     DX = port to monitor if AL bit 3 set
  4681. Return: CF clear if successful
  4682.         AL = type of event which woke up task (see above)
  4683.         CX = IRQ (if any) which awakened task
  4684.         DX = port (if any) which awakened task
  4685.     CF set on error
  4686.         AX = error code (see #0811 at INT 21/AH=59h)
  4687. Note:    a device driver may make this call with AL=00h, which indicates that
  4688.       the driver is responsible for setting and clearing the TCBWAIT field
  4689.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  4690.       reawaken it, set bit 1 (leaving other bits unchanged)
  4691. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  4692.  
  4693. Bitfields for PC-MOS/386 events to monitor:
  4694. Bit(s)    Description    (Table 2413)
  4695.  0    keystroke
  4696.  1    timeout
  4697.  2    IRQ
  4698.  3    port access
  4699.  7    return status of user poll routine (other ignored if set)
  4700. --------O-D410-------------------------------
  4701. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  4702.     AH = 10h
  4703.     AL = direction (00h return to V86 mode, 01h enter native mode)
  4704.     CX = length in bytes of Native Context Area ( >=1024 )
  4705.     DX = segment of Native Context Area
  4706. Return: CF clear if successful
  4707.         running in desired mode at instruction following INT D4 call
  4708.         all segment registers converted to appropriate selectors/segments
  4709.     CF set on error
  4710.         AX = error code (see #0811 at INT 21/AH=59h)
  4711. Note:    MS-DOS calls are available in protected mode
  4712. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  4713. --------O-D411-------------------------------
  4714. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  4715.     AH = 11h
  4716.     EBX = block length in bytes
  4717. Return: CF clear if successful
  4718.         EBX = number of bytes actually allocated
  4719.         ES = selector for allocated block
  4720.     CF set on error
  4721.         AX = error code (see #0811 at INT 21/AH=59h)
  4722. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4723.       system by The Software Link, Inc.
  4724. Note:    the memory must be released before the program terminates
  4725. SeeAlso: AH=10h,AH=12h,INT 38
  4726. --------O-D412-------------------------------
  4727. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  4728.     AH = 12h
  4729.     ES = selector for block to free
  4730. Return: CF clear if successful
  4731.     CF set on error
  4732.         AX = error code (see #0811 at INT 21/AH=59h)
  4733. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  4734. --------O-D413-------------------------------
  4735. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  4736.     AH = 13h
  4737.     AL = type of alias selector (00h data, 01h stack, 02h code)
  4738.     BX = selector
  4739. Return: CF clear if successful
  4740.         AX = new selector or 0000h if BX selector not found
  4741.     CF set on error
  4742.         AX = error code (see #0811 at INT 21/AH=59h)
  4743. SeeAlso: AH=11h,AH=12h
  4744. --------O-D416-------------------------------
  4745. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  4746.     AH = 16h
  4747.     AL = function (00h clear, 01h set reservation)
  4748.     CX = IRQ number
  4749. Return: AX = status
  4750.         (0000h successful, 0001h currently reserved by another task)
  4751. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  4752. --------O-D419-------------------------------
  4753. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  4754.     AH = 19h
  4755. Return: BX = caller's task ID
  4756. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4757.       system by The Software Link, Inc.
  4758. SeeAlso: AH=1Dh,AH=1Eh
  4759. --------O-D41A-------------------------------
  4760. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  4761.     AH = 1Ah
  4762.     AL = subfunction (00h read, 01h set, 02h get and set)
  4763.     BX = task ID (FFFFh for current task)
  4764.     CL = new priority value
  4765. Return: CF clear if successful
  4766.         CL = current priority value
  4767.     CF set on error
  4768.         AX = error code (see #0811 at INT 21/AH=59h)
  4769. SeeAlso: AH=1Bh,AH=1Ch
  4770. --------O-D41B-------------------------------
  4771. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  4772.     AH = 1Bh
  4773.     AL = subfunction (00h read, 01h set, 02h get and set)
  4774.     BX = task ID (FFFFh for current task) (see AH=19h)
  4775.     CL = new time slice value
  4776. Return: CF clear if successful
  4777.         CL = current time slice value
  4778.     CF set on error
  4779.         AX = error code (see #0811 at INT 21/AH=59h)
  4780. SeeAlso: AH=1Ah,AH=1Ch
  4781. --------O-D41C-------------------------------
  4782. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  4783.     AH = 1Ch
  4784.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  4785.     BX = task ID (FFFFh for current task)
  4786. Return: CF clear if successful
  4787.         CL = current keyboard state
  4788.     CF set on error
  4789.         AX = error code (INT 21/AH=59h)
  4790. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4791.       system by The Software Link, Inc.
  4792. SeeAlso: AH=1Ah,AH=1Bh
  4793. --------O-D41D-------------------------------
  4794. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  4795.     AH = 1Dh
  4796.     BX = task ID (FFFFh for current task) (see AH=19h)
  4797.     ES:DI -> buffer for program name (see #2414)
  4798. Return: CF clear if successful
  4799.         ES:DI buffer filled
  4800.     CF set on error
  4801.         AX = error code (see #0811 at INT 21/AH=59h)
  4802. SeeAlso: AH=19h,AH=1Eh
  4803.  
  4804. Format of PC-MOS/386 program name buffer:
  4805. Offset    Size    Description    (Table 2414)
  4806.  00h  8 BYTEs    filename
  4807.  08h  3 BYTEs    extension
  4808. --------O-D41E-------------------------------
  4809. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  4810.     AH = 1Eh
  4811.     BX = task ID (FFFFh for current task)
  4812.     ES:DI -> 4-byte buffer for username
  4813. Return: CF clear if successful
  4814.         CL = security class
  4815.         20h (' ') none
  4816.         41h-5Ah ('A'-'Z') security level
  4817.         ES:DI buffer filled
  4818.     CF set on error
  4819.         AX = error code (see #0811 at INT 21/AH=59h)
  4820. SeeAlso: AH=19h,AH=1Dh
  4821. --------O-D41F-------------------------------
  4822. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  4823.     AH = 1Fh
  4824.     BX = task ID (FFFFh for current task) (see AH=19h)
  4825. Return: CF clear if successful
  4826.         CX = start segment of task
  4827.         DX = ending segment of task
  4828.     CF set on error
  4829.         AX = error code (see #0811 at INT 21/AH=59h)
  4830. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4831.       system by The Software Link, Inc.
  4832. SeeAlso: AH=2Dh
  4833. --------O-D420-------------------------------
  4834. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  4835.     AH = 20h
  4836.     BX = task ID (FFFFh for current task) (see AH=19h)
  4837. Return: CF clear if successful
  4838.         CX = port number (0000h if none)
  4839.         DI:SI = baudrate (if CX nonzero)
  4840.     CF set on error
  4841.         AX = error code (see #0811 at INT 21/AH=59h)
  4842. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  4843. --------O-D421-------------------------------
  4844. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  4845.     AH = 21h
  4846.     BX = task ID (FFFFh for current task) (see AH=19h)
  4847. Return: CF clear if successful
  4848.         AX = ASCII percentage of System Memory Pool used
  4849.         (AH = tens digit, AL = ones digit)
  4850.         DS,SI destroyed
  4851.     CF set on error
  4852.         AX = error code (see #0811 at INT 21/AH=59h)
  4853. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4854.       system by The Software Link, Inc.
  4855. SeeAlso: AH=22h
  4856. --------O-D422-------------------------------
  4857. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  4858.     AH = 22h
  4859.     DS:SI -> addtask data structure (see #2416)
  4860. Return: CF clear if successful
  4861.         ES = segment address of the new task's TCB data structure
  4862.     CF set on error
  4863.         AX = error code (see #2415)
  4864. SeeAlso: AH=21h
  4865.  
  4866. (Table 2415)
  4867. Values for PC-MOS/386 error code:
  4868.  08h    insufficient memory
  4869.  0Bh    invalid addtask structure format
  4870.  12h    insufficient available space in system memory pool
  4871.  1Fh    general failure
  4872.  55h    already allocated
  4873.  57h    if task already in use or invalid parameter
  4874.  
  4875. Format of PC-MOS/386 addtask data structure:
  4876. Offset    Size    Description    (Table 2416)
  4877.  00h    WORD    task size in KB (min 16KB)
  4878.  02h    WORD    task ID (0000h for automatic selection)
  4879.  04h    BYTE    task class (' ' or 'A'-'Z')
  4880.  05h    DWORD    -> ASCIZ name of task startup batchfile
  4881.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  4882.  0Dh    WORD    task port
  4883.  0Fh    DWORD    task baud rate
  4884.  13h    DWORD    (return) total extended memory
  4885.  17h    DWORD    (return) number of 4K extended memory pages allocated
  4886.  1Bh    WORD    (return) paragraphs of system memory pool allocated
  4887.  1Dh    WORD    (return) system memory pool size in paragraphs
  4888.  1Fh    WORD    (return) ASCII task percentage of system memory pool
  4889.  21h  3 BYTEs    reserved
  4890. --------O-D423-------------------------------
  4891. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  4892.     AH = 23h
  4893.     BX = task ID (FFFFh for current task)
  4894.     DS:SI -> entry point of the new Device Driver Terminal
  4895. Return: CF clear if successful
  4896.     CF set on error
  4897.         AX = error code (see #0811 at INT 21/AH=59h)
  4898. --------O-D424-------------------------------
  4899. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  4900.     AH = 24h
  4901. Return: DS:DX -> '$'-terminated string containing the serial number
  4902. --------O-D425-------------------------------
  4903. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  4904.     AH = 25h
  4905.     DX = driver's CS value
  4906. Return: AX = segment address of driver in system memory pool
  4907.         (0000h if the driver is not within the system memory pool)
  4908. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4909.       system by The Software Link, Inc.
  4910. --------O-D426-------------------------------
  4911. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  4912.     AH = 26h
  4913. Return: DX = segment/selector of the System Control Block (see #2402)
  4914. Note:    this function supersedes AH=02h
  4915. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  4916. --------O-D427-------------------------------
  4917. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  4918.     AH = 27h
  4919.     BX = task ID (FFFFh if current task) (see AH=19h)
  4920. Return: CF clear if successful
  4921.         DX = segment/selector for the Task Control Block (see #2404)
  4922.     CF set on error
  4923.         AX = error code (INT 21/AH=59h)
  4924. Note:    this function supersedes AH=04h
  4925. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  4926. --------O-D428-------------------------------
  4927. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  4928.     AH = 28h
  4929.     BX = offset into control block at which to start reading
  4930.     CX = number of bytes to read
  4931.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  4932.     ES:DI -> buffer for data
  4933. Return: CF clear if successful
  4934.     CF set on error
  4935.         AX = error code (see also INT 21/AH=59h)
  4936.         05h access denied due to an invalid segment/selector
  4937. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  4938. --------O-D429-------------------------------
  4939. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  4940.     AH = 29h
  4941.     BX = offset into control block at which to start writing
  4942.     CX = number of bytes to write
  4943.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  4944.     DS:SI -> buffer containing data to be written
  4945. Return: CF clear if successful
  4946.     CF set on errro
  4947.         AX = error code (see also INT 21/AH=59h)
  4948.         05h access denied due to an invalid segment/selector
  4949. Note:     this function performs no bounds checking
  4950. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4951.       system by The Software Link, Inc.
  4952. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  4953. --------O-D42A-------------------------------
  4954. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  4955.     AH = 2Ah
  4956.     BX = offset into control block at which to start swap
  4957.     CX = number of bytes to swap
  4958.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  4959.     DS:SI -> buffer containing new data and to receive current data
  4960. Return: CF clear if successful
  4961.     CF set on error
  4962.         AX = error code (see also INT 21/AH=59h)
  4963.         05h access denied due to an invalid segment/selector
  4964. Note:    the interrupts are disabled during the swap to prevent corruption
  4965. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  4966. --------O-D42C-------------------------------
  4967. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  4968.     AH = 2Ch
  4969.     AL = function
  4970.         00h set spooler timeout
  4971.         CX = timout value in seconds
  4972.         01h get spooler timeout
  4973.         Return: CX = current timeout in seconds
  4974.         02h get spooler parameters
  4975.         Return: CH = priority (00h-09h)
  4976.             CL = disposition (d, h, i, n, s)
  4977.             SI = class (a - z)
  4978.         03h set spooler parameters
  4979.         CH = priority (00h-09h)
  4980.         CL = disposition (d, h, i, n, s)
  4981.         SI = class (a - z)
  4982.         BX = task ID (FFFFh for current task)
  4983.         DX = LPT number
  4984. Return: CF clear if successful
  4985.     CF set on error
  4986.         AX = error code (see #0811 at INT 21/AH=59h)
  4987. SeeAlso: AH=00h,AH=02h,AH=03h
  4988. --------O-D42D-------------------------------
  4989. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  4990.     AH = 2Dh
  4991. Return: DX = maximum task size in paragraphs
  4992.     BX = start address of task space
  4993. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  4994.       system by The Software Link, Inc.
  4995. SeeAlso: AH=1Fh,AH=22h
  4996. --------r-D5---------------------------------
  4997. INT D5 - IBM ROM BASIC - used while in interpreter
  4998. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4999.     BASIC.COM/BASICA.COM do not restore vector on termination
  5000. SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"
  5001. --------r-D5---------------------------------
  5002. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5003. --------r-D6---------------------------------
  5004. INT D6 - IBM ROM BASIC - used while in interpreter
  5005. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5006.     BASIC.COM/BASICA.COM do not restore vector on termination
  5007. SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"
  5008. --------r-D6---------------------------------
  5009. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5010. --------r-D7---------------------------------
  5011. INT D7 - IBM ROM BASIC - used while in interpreter
  5012. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5013.     BASIC.COM/BASICA.COM do not restore vector on termination
  5014. SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"
  5015. --------r-D7---------------------------------
  5016. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5017. --------r-D8---------------------------------
  5018. INT D8 - IBM ROM BASIC - used while in interpreter
  5019. Notes:    called by ROM BASIC
  5020.     BASIC.COM/BASICA.COM do not restore vector on termination
  5021. SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"
  5022. --------r-D8---------------------------------
  5023. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5024. --------H-D8---------------------------------
  5025. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  5026. Range:    INT 78h to INT E0h, selected by commandline switch
  5027. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  5028.       but may be directed via a commandline switch to use any range
  5029.       starting at a multiple of 8 between 78h and E0h
  5030. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  5031. SeeAlso: INT D9"Screen Thief"
  5032. --------r-D9---------------------------------
  5033. INT D9 - IBM ROM BASIC - used while in interpreter
  5034. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5035.     BASIC.COM/BASICA.COM do not restore vector on termination
  5036. SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"
  5037. --------r-D9---------------------------------
  5038. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5039. --------H-D9---------------------------------
  5040. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  5041. Range:    INT 79h to INT E1h, selected by commandline switch
  5042. Note:    (see INT D8"Screen Thief")
  5043. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  5044. --------r-DA---------------------------------
  5045. INT DA - IBM ROM BASIC - used while in interpreter
  5046. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5047.     BASIC.COM/BASICA.COM do not restore vector on termination
  5048. SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"
  5049. --------r-DA---------------------------------
  5050. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5051. --------H-DA---------------------------------
  5052. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  5053. Range:    INT 7Ah to INT E2h, selected by commandline switch
  5054. Note:    (see INT D8"Screen Thief")
  5055. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  5056. --------r-DB---------------------------------
  5057. INT DB - IBM ROM BASIC - used while in interpreter
  5058. Notes:    called by ROM BASIC
  5059.     BASIC.COM/BASICA.COM do not restore vector on termination
  5060. SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"
  5061. --------r-DB---------------------------------
  5062. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5063. --------H-DB---------------------------------
  5064. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  5065. Range:    INT 7Bh to INT E3h, selected by commandline switch
  5066. Note:    (see INT D8"Screen Thief")
  5067. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  5068. --------u-DC---------------------------------
  5069. INT DC - PC/370 v4.1- - API
  5070. SeeAlso: INT 60"PC/370"
  5071. --------r-DC---------------------------------
  5072. INT DC - IBM ROM BASIC - used while in interpreter
  5073. Notes:    called by ROM BASIC
  5074.     BASIC.COM/BASICA.COM do not restore vector on termination
  5075. SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"
  5076. --------r-DC---------------------------------
  5077. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5078. --------H-DC---------------------------------
  5079. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  5080. Range:    INT 7Ch to INT E4h, selected by commandline switch
  5081. Note:    (see INT D8"Screen Thief")
  5082. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  5083. --------r-DD---------------------------------
  5084. INT DD - IBM ROM BASIC - used while in interpreter
  5085. Notes:    called by ROM BASIC
  5086.     BASIC.COM/BASICA.COM do not restore vector on termination
  5087. SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"
  5088. --------r-DD---------------------------------
  5089. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  5090.     BX = where to place keystrokes
  5091.         FFFFh insert before current buffer contents
  5092.         0000h replace current contents
  5093.         0001h insert after current contents
  5094.     CX = number of keystroke events to insert
  5095.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  5096.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  5097.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  5098. SeeAlso: INT 16/AH=05h
  5099. --------H-DD---------------------------------
  5100. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  5101. Range:    INT 7Dh to INT E5h, selected by commandline switch
  5102. Note:    (see INT D8"Screen Thief")
  5103. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  5104. --------r-DE---------------------------------
  5105. INT DE - IBM ROM BASIC - used while in interpreter
  5106. Notes:    called by ROM BASIC
  5107.     BASIC.COM/BASICA.COM do not restore vector on termination
  5108. SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"
  5109. --------r-DE---------------------------------
  5110. INT DE - APL*PLUS/PC - ???
  5111. Note:    appears to be the same as INT 16
  5112. --------H-DE---------------------------------
  5113. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  5114. Range:    INT 7Eh to INT E6h, selected by commandline switch
  5115. Note:    (see INT D8"Screen Thief")
  5116. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  5117. --------b-DF---------------------------------
  5118. INT DF - Victor 9000 - SuperBIOS
  5119. --------r-DF---------------------------------
  5120. INT DF - IBM ROM BASIC - used while in interpreter
  5121. Notes:    called by ROM BASIC
  5122.     BASIC.COM/BASICA.COM do not restore vector on termination
  5123. SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"
  5124. --------r-DF---------------------------------
  5125. INT DF - APL*PLUS/PC - SAME AS INT 10
  5126. SeeAlso: INT 10
  5127. --------H-DF---------------------------------
  5128. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  5129. Range:    INT 7Fh to INT E7h, selected by commandline switch
  5130. Note:    (see INT D8"Screen Thief")
  5131. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  5132. --------r-E0---------------------------------
  5133. INT E0 - IBM ROM BASIC - used while in interpreter
  5134. Notes:    called by ROM BASIC
  5135.     BASIC.COM/BASICA.COM do not restore vector on termination
  5136. SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"
  5137. --------r-E0---------------------------------
  5138. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5139. SeeAlso: INT CF"APL"
  5140. --------v-E0---------------------------------
  5141. INT E0 - VIRUS - "Micro-128" - ???
  5142. Note:    Micro-128 also overwrites the upper half of the interrupt table
  5143. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  5144. --------O-E0---------------------------------
  5145. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  5146.     CL = function number
  5147.     DS,DX = parameters
  5148. Return: as appropriate for function
  5149. Notes:    several functions are covered in more detail in following entries
  5150.     most of these calls are also supported by Digital Research's DOS Plus
  5151.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  5152.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  5153. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  5154.  
  5155. (Table 2417)
  5156. Values for CP/M-86,DR Multiuser DOS function number:
  5157.  00h    terminate calling process (see also INT 21/AH=00h)
  5158.  01h    read a character
  5159.  02h    write character to default console (see also INT 21/AH=02h)
  5160.  03h    read character from default AUX (see also INT 21/AH=03h)
  5161.  04h    write character to default AUX (see also INT 21/AH=04h)
  5162.  05h    write character to default list device (see also INT 21/AH=05h)
  5163.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  5164.  07h    return default AUX input status
  5165.  08h    return default AUX output status
  5166.  09h    write string to default console (see also INT 21/AH=09h)
  5167.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  5168.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  5169.  0Ch    get BDOS release ID
  5170.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  5171.  0Eh    set default drive (see also INT 21/AH=0Eh)
  5172.  0Fh    open file via FCB (see also INT 21/AH=0Fh,#0506)
  5173.  10h    close file via FCB (see also INT 21/AH=10h)
  5174.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  5175.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  5176.  13h    delete file via FCB (see also INT 21/AH=13h)
  5177.  14h    sequential read via FCB (see also INT 21/AH=14h)
  5178.  15h    sequential write via FCB (see also INT 21/AH=15h)
  5179.  16h    create file via FCB (see also INT 21/AH=16h)
  5180.  17h    rename file via FCB (see also INT 21/AH=17h)
  5181.  18h    get bit map of logged drives
  5182.  19h    get default drive (see also INT 21/AH=19h)
  5183.  1Ah    set DMA address offset
  5184.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  5185.  1Ch    set default drive to read-only
  5186.  1Dh    get bit map of read-only drives
  5187.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  5188.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  5189.  20h    get/set default user number
  5190.  21h    read random record via FCB (see also INT 21/AH=21h)
  5191.  22h    write random record via FCB (see also INT 21/AH=22h)
  5192.  23h    compute file size with FCB (see also INT 21/AH=23h)
  5193.  24h    get FCB random record number (see also INT 21/AH=24h)
  5194.  25h    reset specified drives
  5195.  26h    access specified drives (not in DR DOS Plus v2.1)
  5196.  27h    free specified drives
  5197.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  5198.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  5199.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  5200.  2Ch    set BDOS multisector count
  5201.  2Dh    set BDOS error mode
  5202.  2Eh    get free space on disk
  5203.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  5204.  30h    flush write-deferred buffers
  5205.  31h    get/set system variable (DOS Plus v2.1)
  5206.  32h    call BIOS (XIOS) character routine (see #2418)
  5207.  33h    set DMA address segment
  5208.  34h    get DMA buffer address
  5209.  35h    CP/M-86 allocate maximum memory
  5210.  36h    allocate maximum memory at specified segment
  5211.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  5212.  38h    allocate memory at specified segment
  5213.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  5214.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  5215.  3Bh    load .CMD file into memory
  5216.  3Ch    (DOS Plus v2.1) call RSX program
  5217.  40h    (DR-NET) log on a server
  5218.  41h    (DR-NET) log off a server
  5219.  42h    (DR-NET) send a message
  5220.  43h    (DR-NET) receive a message
  5221.  44h    (DR-NET) get network status
  5222.  45h    (DR-NET) get requestor configuration table
  5223.  46h    (DR-NET) set compatibility attributes
  5224.  47h    (DR-NET) get server configuration table
  5225.  48h    (DR-NET) set network error mode
  5226.  49h    (DR-NET) attach network
  5227.  4Ah    (DR-NET) detach network
  5228.  4Bh    (DR-NET) set default password
  5229.  4Ch    (DR-NET) get-set long timeout
  5230.  4Dh    (DR-NET) get parameter table
  5231.  50h    (DR-NET) get network information
  5232.  53h    get current time (see also INT 21/AH=2Ch)
  5233.  54h    set current time (see also INT 21/AH=2Dh)
  5234.  55h    get binary system date (see also INT 21/AH=2Ah)
  5235.  56h    set system date (see also INT 21/AH=2Bh)
  5236.  57h    allocate system flag
  5237.  58h    deallocate system flag
  5238.  59h    reserve memory in global area
  5239.  5Ah    lock physical drive
  5240.  5Bh    unlock physical drive
  5241.  5Ch    search path for executable file
  5242.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  5243.  5Eh    get/set process exit code
  5244.  5Fh    set country information
  5245.  60h    get country information
  5246.  63h    truncate FCB file (see also INT 21/AH=28h)
  5247.  64h    create/update directory label
  5248.  65h    get directory label
  5249.  66h    get FCB date stamp and password mode
  5250.  67h    write extended FCB
  5251.  68h    set system date and time
  5252.  69h    get system date and time in binary
  5253.  6Ah    establish password for file access
  5254.  6Bh    get OS serial number
  5255.  6Ch    (DOS Plus v2.1) get/set program return code
  5256.  6Dh    get/set console mode
  5257.  6Eh    get/set string delimiter
  5258.  6Fh    write block to default console
  5259.  70h    write block to default list device
  5260.  71h    execute DOS-compatible function
  5261.  74h    set FCB time and date stamps
  5262.  80h    allocate memory
  5263.  82h    deallocate memory
  5264.  83h    poll I/O device
  5265.  84h    wait on system flag
  5266.  85h    set system flag
  5267.  86h    create message queue
  5268.  87h    open message queue
  5269.  88h    delete message queue
  5270.  89h    read from message queue
  5271.  8Ah    conditionally read from message queue
  5272.  8Bh    write to message queue
  5273.  8Ch    conditionally write to message queue
  5274.  8Dh    delay calling process
  5275.  8Eh    call process dispatcher (yield CPU)
  5276.  8Fh    terminate calling process (same as function 00h)
  5277.  90h    create a process
  5278.  91h    set calling process' priority
  5279.  92h    attach to default console
  5280.  93h    detach from default console
  5281.  95h    assign default console to process
  5282.  96h    interpret and execute commandline
  5283.  97h    resident procedure library
  5284.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  5285.  99h    return default console
  5286.  9Ah    get address of system data (SYSDAT)
  5287.  9Bh    get system time and date
  5288.  9Ch    return calling process' descriptor
  5289.  9Dh    terminate process by name or PD address
  5290.  9Eh    attach to default list device
  5291.  9Fh    detach from default list device
  5292.  A0h    select default list device
  5293.  A1h    conditionally attach to default list device
  5294.  A2h    conditionally attach to default console
  5295.  A3h    get OS version number
  5296.  A4h    get default list device
  5297.  A5h    attach to default AUX
  5298.  A6h    detach from default AUX
  5299.  A7h    conditionally attach to default AUX
  5300.  A8h    set default AUX
  5301.  A9h    return default AUX
  5302.  ACh    read block from default AUX
  5303.  ADh    (DOS Plus v2.1) write block to default AUX
  5304.  B0h    configure default AUX
  5305.  B1h    get/set device control parameters
  5306.  B2h    send Break through default AUX
  5307.  B3h    allocate physical memory
  5308.  B4h    free physical memory
  5309.  B5h    map physical memory
  5310.  B6h    nondestructive message queue read
  5311.  B7h    timed wait on system flag
  5312.  B8h    get/set I/O port mapping
  5313.  B9h    set list device timeout
  5314.  BAh    set AUX timeout value
  5315.  BBh    execute XIOS service
  5316.  BDh    (DR Multiuser DOS) delay
  5317.  FFh    return 80386 to native mode
  5318.  
  5319. (Table 2418)
  5320. Values for DOS Plus v2.1 XIOS functions:
  5321.  00h    terminate program
  5322.  01h    ???
  5323.  02h    check for console input status
  5324.  03h    read character from console
  5325.  04h    write character to console
  5326.  05h    write character to list device
  5327.  06h    write character to auxiliary device
  5328.  07h    read cahracter from auxiliary device
  5329.  0Fh    get list device status
  5330.  10h-14h reserved
  5331.  15h    device initialization
  5332.  16h    check console output status
  5333.  17h-7Fh reserved
  5334. ---BBC Acorn---
  5335.  80h    get XIOS version
  5336.  81h    get Tube semaphore
  5337.  82h    release Tube semaphore
  5338.  83h    select text/graphics
  5339.  84h    update B&W graphics rectangle
  5340.  85h    update color graphics rectangle
  5341.  86h    get/release/update mouse
  5342.  87h    get system error info
  5343.  88h    entry in CLOCK called by WatchDog RSP
  5344.  89h    BBC OSBYTE function
  5345.  8Ah    BBC OSWORD function
  5346.  
  5347. (Table 2419)
  5348. Values for DR Multiuser DOS Error Return Code:
  5349.  00h    no error
  5350.  01h    system call not implemented
  5351.  02h    illegal system call number
  5352.  03h    cannot find memory
  5353.  04h    illegal flag number
  5354.  05h    flag overrun
  5355.  06h    flag underrun
  5356.  07h    no unused Queue Descriptors
  5357.  08h    no free queue buffer
  5358.  09h    cannot find queue
  5359.  0Ah    queue in use
  5360.  0Ch    no free Process Descriptors
  5361.  0Dh    no queue access
  5362.  0Eh    empty queue
  5363.  0Fh    full queue
  5364.  10h    CLI queue missing
  5365.  11h    no 8087 in system
  5366.  12h    no unused Memory Descriptors
  5367.  13h    illegal console number
  5368.  14h    no Process Descriptor match
  5369.  15h    no console match
  5370.  16h    no CLI process
  5371.  17h    illegal disk number
  5372.  18h    illegal filename
  5373.  19h    illegal filetype
  5374.  1Ah    character not ready
  5375.  1Bh    illegal Memory Descriptor
  5376.  1Ch    bad return from BDOS load
  5377.  1Dh    bad return from BDOS read
  5378.  1Eh    bad return from BDOS open
  5379.  1Fh    null command
  5380.  20h    not owner of resource
  5381.  21h    no CSEG in load file
  5382.  22h    process Descriptor exists on Thread Root
  5383.  23h    could not terminate process
  5384.  24h    cannot attach to process
  5385.  25h    illegal list device number
  5386.  26h    illegal password
  5387.  28h    external termination occurred
  5388.  29h    fixup error upon load
  5389.  2Ah    flag set ignored
  5390.  2Bh    illegal auxilliary device number
  5391. --------O-E0----CL03-------------------------
  5392. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  5393.     CL = 03h
  5394. Return: AL = ASCII character
  5395. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  5396.       input device (AUXn:); control is not returned to the calling
  5397.       process until a character has been read.
  5398.     if another process owns AUX, this call blocks until the device becomes
  5399.       available
  5400. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  5401. --------O-E0----CL04-------------------------
  5402. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  5403.     CL = 04h
  5404.     DL = ASCII character
  5405. Return: nothing
  5406. Note:    if another process owns AUX, this call blocks until the device becomes
  5407.       available
  5408. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  5409. --------O-E0----CL07-------------------------
  5410. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  5411.     CL = 07h
  5412. Return: AL = status
  5413.         00h not ready
  5414.         FFh character available
  5415. Desc:    determine whether the current AUX device has input available
  5416. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  5417. --------O-E0----CL08-------------------------
  5418. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  5419.     CL = 08h
  5420. Return: AL = status
  5421.         00h not ready
  5422.         FFh ready for output
  5423. Desc:    determine whether the current AUX device is able to accept more output
  5424. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  5425. --------O-E0----CL59-------------------------
  5426. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  5427.     CL = 59h
  5428.     DX = size in bytes
  5429. Return: AX = status
  5430.         FFFFh failed
  5431.         other successful
  5432.         ES:BX -> reserved memory
  5433. --------O-E0----CL86-------------------------
  5434. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  5435.     CL = 86h
  5436.     DS:DX -> queue descriptor (see #2420)
  5437. Return: AX = status (0000h success, FFFFh failure)
  5438.     CX = error code (see #2419)
  5439. SeeAlso: INT E0/CL=87h
  5440.  
  5441. Format of DR Multiuser DOS queue descriptor:
  5442. Offset    Size    Description    (Table 2420)
  5443.  00h  2 WORDs    internal use, initialize to zeros
  5444.  04h    WORD    flags
  5445.  06h  8 BYTEs    queue name
  5446.  0Eh    WORD    length of message
  5447.  10h    WORD    number of messages
  5448.  12h  4 WORDs    internal use, initialize to zeros
  5449.  1Ah    WORD    offset in system area of buffer for messages
  5450. --------O-E0----CL87-------------------------
  5451. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  5452.     CL = 87h
  5453.     DS:DX -> queue parameter block (see #2421)
  5454. Return: AX = status (0000h success, FFFFh failure)
  5455.     CX = error code (see #2419)
  5456. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  5457.  
  5458. Format of DR Multiuser DOS queue parameter block:
  5459. Offset    Size    Description    (Table 2421)
  5460.  00h    WORD    internal use, initialize to zero
  5461.  02h    WORD    queue ID (set by INT E0/CL=87h)
  5462.  04h    WORD    internal use, initialize to zero
  5463.  06h    WORD    offset of queue message buffer
  5464.  08h  8 BYTEs    queue name
  5465. --------O-E0----CL89-------------------------
  5466. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  5467.     CL = 89h
  5468.     DS:DX -> queue parameter block (see #2421)
  5469. Return: AX = status (0000h success, FFFFh failure)
  5470.     CX = error code (see #2419)
  5471. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  5472. --------O-E0----CL8A-------------------------
  5473. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  5474.     CL = 8Ah
  5475.     DS:DX -> queue parameter block (see #2421)
  5476. Return: AX = status (0000h success, FFFFh failure)
  5477.     CX = error code (see #2419)
  5478. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  5479. --------O-E0----CL8B-------------------------
  5480. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  5481.     CL = 8Bh
  5482.     DS:DX -> queue parameter block (see #2421)
  5483. Return: AX = status (0000h success, FFFFh failure)
  5484.     CX = error code (see #2419)
  5485. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  5486. --------O-E0----CL8C-------------------------
  5487. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  5488.     CL = 8Ch
  5489.     DS:DX -> queue parameter block (see #2421)
  5490. Return: AX = status (0000h success, FFFFh failure)
  5491.     CX = error code (see #2419)
  5492. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  5493. --------O-E0----CL8E-------------------------
  5494. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  5495.     CL = 8Eh
  5496.     DX = FFFFh (optional) to force dispatch
  5497. Return: nothing
  5498. Desc:    allow other processes of the same or higher priority to run if they
  5499.       are ready
  5500. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  5501. SeeAlso: INT E0/CL=91h
  5502. --------O-E0----CL91-------------------------
  5503. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  5504.     CL = 91h
  5505.     DL = new priority (00h highest to FFh lowest)
  5506. Note:    sets priority of calling process; transient processes are initialized
  5507.       to priority C8h
  5508. SeeAlso: INT E0/CL=8Eh
  5509. --------O-E0----CL93-------------------------
  5510. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  5511.     CL = 93h
  5512. Return: AX = status
  5513.         0000h successfully detached
  5514.         FFFFh detach failed
  5515. SeeAlso: INT E0/CL=A6h
  5516. --------O-E0----CLA5-------------------------
  5517. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  5518.     CL = A5h
  5519. Desc:    attaches the default auxiliary device to the calling process unless
  5520.       it is already attached to another process, in which case the call
  5521.       blocks until the device becomes available
  5522. Note:    this call should be used before attempting to read or write from
  5523.       the AUX device; however, the I/O calls internally call this function
  5524.       to ensure device ownership
  5525. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  5526. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  5527. --------O-E0----CLA6-------------------------
  5528. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  5529.     CL = A6h
  5530. Return: AX = status
  5531.         0000h successfully detached
  5532.         FFFFh detach failed
  5533.     CX = error code
  5534. SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
  5535. --------O-E0----CLA7-------------------------
  5536. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  5537.     CL = A7h
  5538. Return: AX = status
  5539.         0000h attached
  5540.         FFFFh unable to attach
  5541. Desc:    attaches the default auxiliary device to the calling process if it is
  5542.       available
  5543. Note:    does not block if the device is already in use
  5544. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  5545. --------O-E0----CLA8-------------------------
  5546. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  5547.     CL = A8h
  5548.     DL = auxiliary device number
  5549. Return: AX = status
  5550.         0000h successful
  5551.         FFFFh failed
  5552.     CX = error code
  5553. Desc:    specify which physical device will become AUX
  5554. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  5555. --------O-E0----CLA9-------------------------
  5556. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  5557.     CL = A9h
  5558. Return: AL = current default auxiliary device number
  5559. Desc:    determine which physical device is currently AUX
  5560. SeeAlso: INT E0/CL=A8h
  5561. --------O-E0----CLAC-------------------------
  5562. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  5563.     CL = ACh
  5564.     DS:DX -> character control block (CHCB) (see #2422)
  5565. Return: AX = number of characters read
  5566. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  5567.       until the buffer is full or the device is no longer ready
  5568. Notes:    if the device is initially not ready, blocks until at least one
  5569.       character has been read
  5570.     if another process owns AUX, this call blocks until the device becomes
  5571.       available
  5572. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  5573.  
  5574. Format of DR Multiuser DOS character control block (CHCB):
  5575. Offset    Size    Description    (Table 2422)
  5576.  00h    DWORD    pointer to character buffer
  5577.  04h    WORD    length of character buffer
  5578. --------O-E0----CLAD-------------------------
  5579. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  5580.     CL = ADh
  5581.     DS:DX -> character control block (see INT E0/CL=ACh)
  5582. Return: AX = number of characters written
  5583. Note:    does not return until at least one character has been written
  5584. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  5585. --------O-E0----CLB0-------------------------
  5586. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  5587.     CL = B0h
  5588.     DX:DX -> AUX device parameter block (see #2423)
  5589. Return: AX = status
  5590.         0000h successful
  5591.         parameter block updated
  5592.         FFFFh failed
  5593.         CX = error code
  5594. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  5595.  
  5596. Format of DR Multiuser DOS AUX device parameter block:
  5597. Offset    Size    Description    (Table 2423)
  5598.  00h    BYTE    function (00h get, 01h set)
  5599.  01h    BYTE    baud rate (see #2425) FFh = don't change/unknown
  5600.  02h    BYTE    parity (see #2424)
  5601.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  5602.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  5603.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  5604.         FFh unknown/don't change)
  5605.  06h    BYTE    XON character, FFh unknown/don't change
  5606.  07h    BYTE    XOFF character, FFh unknown/don't change
  5607.  
  5608. (Table 2424)
  5609. Values for DR Multiuser DOS AUX parity:
  5610.  00h    none
  5611.  01h    odd
  5612.  02h    none
  5613.  03h    even
  5614.  04h    stick parity bit
  5615.  FFh    don't change/unknown
  5616.  
  5617. (Table 2425)
  5618. Values for DR Multiuser DOS AUX baud rate:
  5619.  00h    50 baud
  5620.  01h    62.5 baud
  5621.  02h    75 baud
  5622.  03h    110 baud
  5623.  04h    134.5 baud
  5624.  05h    150 baud
  5625.  06h    200 baud
  5626.  07h    300 baud
  5627.  08h    600 baud
  5628.  09h    1200 baud
  5629.  0Ah    1800 baud
  5630.  0Bh    2000 baud
  5631.  0Ch    2400 baud
  5632.  0Dh    3600 baud
  5633.  0Eh    4800 baud
  5634.  0Fh    7200 baud
  5635.  10h    9600 baud
  5636.  11h    19200 baud
  5637.  12h    38400 baud
  5638.  13h    56000 baud
  5639.  14h    76800 baud
  5640.  15h    115200 baud
  5641. --------O-E0----CLB1-------------------------
  5642. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  5643.     CL = B1h
  5644.     DS:DX -> AUX device control block (see #2426)
  5645. Return: AX = status
  5646.         0000h successful
  5647.         control block updated
  5648.         FFFFh failed
  5649.         CX = error code
  5650. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  5651.  
  5652. Format of DR Multiuser DOS AUX device control block:
  5653. Offset    Size    Description    (Table 2426)
  5654.  00h    BYTE    function (00h get, 01h set)
  5655.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  5656.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  5657.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  5658.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  5659.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  5660.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  5661. --------O-E0----CLB2-------------------------
  5662. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  5663.     CL = B2h
  5664.     DX = duration of break in system ticks (0001h-FFFFh)
  5665. Return: AX = status
  5666.         0000h successful
  5667.         break signal completed
  5668.         FFFFh failed
  5669.         CX = error code
  5670. Note:    if the AUX device is currently owned by another process, this call will
  5671.       block until the device becomes available
  5672. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  5673. --------O-E0----CLBD-------------------------
  5674. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  5675.     CL = BDh
  5676.     DX = delay in system ticks
  5677. Return: after the delay elapses
  5678. Notes:    the length of a system tick is installation-dependent (typically
  5679.       1/50 or 1/60 second); the length may be determined by reading the
  5680.       TICKSPERSEC value from the system data segment
  5681.     the actual delay before the process is rescheduled to run may be up to
  5682.       one tick longer than requested; the delay between rescheduling and
  5683.       actual execution cannot be predicted if higher-priority processes
  5684.       are awaiting a turn at the CPU
  5685. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  5686. --------g-E00000-----------------------------
  5687. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  5688.     AX = 0000h
  5689. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  5690.       which specially-written .COM or .EXE programs form robots battling
  5691.       each other in a user-defined arena
  5692. --------g-E00001-----------------------------
  5693. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  5694.     AX = 0001h
  5695.     BX = speed (0-maximum for robot)
  5696.     CX = direction (0-359 degrees)
  5697. Notes:    the speed will change to the specified value at the maximum
  5698.       acceleration the robot is capable of; if the robot is already moving
  5699.       faster than its maximum maneuverability speed, it will not be able
  5700.       to change direction
  5701.     this call also terminates the current robot's turn
  5702. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  5703. --------g-E00002-----------------------------
  5704. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  5705.     AX = 0002h
  5706.     BX = direction (0-359 degrees)
  5707.     CX = resolution (0-45 degrees)
  5708. Return: AX = status
  5709.         FFFFh if nothing detected
  5710.         else robot ID (0-19)
  5711.         BX = range to detected robot
  5712. Notes:    the scan searches within CX degrees to either side of the specified
  5713.       direction
  5714.     the scanner will see right through walls, but shells will not pass
  5715.       through walls
  5716.     this call also terminates the current robot's turn
  5717. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  5718. --------g-E00003-----------------------------
  5719. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  5720.     AX = 0003h
  5721.     BX = direction (0-359 degrees)
  5722.     CX = range (0-700)
  5723. Return: AX = status (0000h not fired, else ID of shell fired)
  5724. Notes:    up to seven shells may be in flight for a robot at one time; the cannon
  5725.       takes 50 ticks to reload
  5726.     this call also terminates the current robot's turn
  5727. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  5728. --------g-E00010-----------------------------
  5729. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  5730.     AX = 0010h
  5731. Return: BX = current X coordinate (0-999)
  5732.     CX = current Y coordinate (0-999)
  5733. --------g-E00011-----------------------------
  5734. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  5735.     AX = 0011h
  5736.     BX = target robot ID
  5737.     CX = data to be sent
  5738. Return: AX = status (0000h data could not be sent, 0001h data sent)
  5739. Note:    this call costs one unit of battery power
  5740. --------g-E00012-----------------------------
  5741. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  5742.     AX = 0012h
  5743. Return: AX = status
  5744.         0000h no data available
  5745.         0001h data retrieved
  5746.         BX = sender's ID
  5747.         CX = data
  5748. Note:    each robot has a 20-word receive FIFO; if the FIFO is full, other
  5749.       robots will be unable to send more data until some is read
  5750. --------g-E00013-----------------------------
  5751. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  5752.     AX = 0013h
  5753. Return: BX = damage status
  5754. Note:    the initial value depends on configuration, but is typically 100; as
  5755.       the robot is damaged, it decreases
  5756. --------g-E00014-----------------------------
  5757. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  5758.     AX = 0014h
  5759. Return: BX = current speed
  5760. --------g-E00015-----------------------------
  5761. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  5762.     AX = 0015h
  5763. Return: BX = current battery charge
  5764. Note:    the battery starts off with 1000 units of charge, and is constantly
  5765.       being charged by solar panels and constantly discharged by motion;
  5766.       the battery is charged at 4 units per turn and discharged at
  5767.       0.1*speed units per turn.
  5768. --------g-E00016-----------------------------
  5769. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  5770.     AX = 0016h
  5771. Return: BX:CX = number of game ticks elapsed (not related to real time)
  5772. --------g-E00017-----------------------------
  5773. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  5774.     AX = 0017h
  5775.     BX = angle (0-359 degrees)
  5776. Return: BX:CX = 100000*sine of angle
  5777. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  5778. --------g-E00018-----------------------------
  5779. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  5780.     AX = 0018h
  5781.     BX = angle (0-359 degrees)
  5782. Return: BX:CX = 100000*cosine of angle
  5783. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  5784. --------g-E00019-----------------------------
  5785. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  5786.     AX = 0019h
  5787.     BX = angle (0-359 degrees)
  5788. Return: BX:CX = 100000*tangent of angle
  5789. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  5790. --------g-E0001A-----------------------------
  5791. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  5792.     AX = 001Ah
  5793.     BX:CX = 100000*tangent of an angle
  5794. Return: AX = angle (-90 to +90 degrees)
  5795. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  5796. --------g-E0001B-----------------------------
  5797. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER 
  5798.     AX = 001Bh
  5799.     BX:CX = value
  5800. Return: BX:CX = square root
  5801. SeeAlso: AX=0017h
  5802. --------g-E0001C-----------------------------
  5803. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  5804.     AX = 001Ch
  5805.     BX:CX -> pattern array
  5806. Note:    the pattern array consists of five bytes, the low five bits of each
  5807.       specifying the bit pattern for one line of the robot's screen display
  5808. --------g-E0001D-----------------------------
  5809. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  5810.     AX = 001Dh
  5811.     BX = flag number (0 or 1)
  5812.     CX = new value (0 reset, 1 set)
  5813. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  5814.       which specially-written .COM or .EXE programs form robots battling
  5815.       each other in a user-defined arena
  5816. Note:    the two flag markers may be used for any purpose, typically for
  5817.       debugging to provide a visual display of progress
  5818. --------g-E0001E-----------------------------
  5819. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  5820.     AX = 001Eh
  5821.     BX = number of armor units to buy (negative to sell)
  5822. Note:    each armor unit is worth 50 battery units; the robot's armor rating
  5823.       will not go above its initial rating, so attempts to purchase more
  5824.       will waste battery units
  5825. SeeAlso: AX=001Fh
  5826. --------g-E0001F-----------------------------
  5827. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  5828.     AX = 001Fh
  5829.     BX = number of shells to buy
  5830. Note:    each shell costs ten battery units
  5831. SeeAlso: AX=001Eh,AX=0020h
  5832. --------g-E00020-----------------------------
  5833. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  5834.     AX = 0020h
  5835. Return: BX = number of shells remaining
  5836. SeeAlso: AX=001Fh
  5837. --------g-E00021-----------------------------
  5838. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  5839.     AX = 0021h
  5840.     BX:CX -> 81-byte buffer for map
  5841. Return: buffer filled with 9x9 area of map centered on robot's position
  5842.  
  5843. (Table 2427)
  5844. Values for PCROBOTS map squares:
  5845.  2Eh '.' empty square
  5846.  44h 'D' damaging trap
  5847.  52h 'R' refueling point
  5848.  58h 'X' wall
  5849. --------g-E00022-----------------------------
  5850. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  5851.     AX = 0022h
  5852.     BX = new state (0000h become visible, 0001h become invisible)
  5853. Notes:    this function has no effect if the robot is not capable of invisibility
  5854.     the robot can only stay invisible for 100 turns, after which it will
  5855.       automatically become visible; it must also be remain visible for
  5856.       as many turns as it was invisible before it can turn invisible
  5857.       again
  5858. SeeAlso: AX=0024h,AX=0080h
  5859. --------g-E00023-----------------------------
  5860. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  5861.     AX = 0023h
  5862. Return: BX = status of last shell to land
  5863.         0000h missed completely
  5864.         0001h hit a wall
  5865.         0002h hit a robot within 50-square radius
  5866.         0003h hit a robot within 25-square radius
  5867.         0004h hit a robot within 5-square radius
  5868. --------g-E00024-----------------------------
  5869. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  5870.     AX = 0024h
  5871. Return: BX = visibility (0000h visible, 0001h invisible)
  5872. SeeAlso: AX=0022h,AX=0080h
  5873. --------g-E00025-----------------------------
  5874. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  5875.     AX = 0025h
  5876.     BX = Y
  5877.     CX = X
  5878. Return: AX = angle (arctangent of Y/X)
  5879. --------g-E00026-----------------------------
  5880. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  5881.     AX = 0026h
  5882. Return: AX = robot ID
  5883. --------g-E00027-----------------------------
  5884. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  5885.     AX = 0027h
  5886.     BX:CX = ASCIZ IFF string
  5887. Note:    the IFF string may only be set once
  5888. SeeAlso: AX=0028h,AX=0029h
  5889. --------g-E00028-----------------------------
  5890. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  5891.     AX = 0028h
  5892.     BX = robot ID to test
  5893. Return: AX = status
  5894.         0000h IFF strings match
  5895.         0001h IFF strings differ or invalid robot ID
  5896. SeeAlso: AX=0027h
  5897. --------g-E00029-----------------------------
  5898. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  5899.     AX = 0029h
  5900.     BX:CX -> ASCIZ name string
  5901. Note:    the name may only be set once
  5902. SeeAlso: AX=0027h,AX=002Ah
  5903. --------g-E0002A-----------------------------
  5904. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  5905.     AX = 002Ah
  5906.     BX:CX -> ASCIZ name string
  5907.     DX = first ID to check
  5908. Return: AX = robot ID or FFFFh if no robot with specified name
  5909. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  5910. --------g-E0002B-----------------------------
  5911. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  5912.     AX = 002Bh
  5913. Return: AX = team ID (0-2) or FFFFh if 'loner'
  5914. SeeAlso: AX=0029h
  5915. --------g-E0002C-----------------------------
  5916. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  5917.     AX = 002Ch
  5918.     BX = shell ID
  5919. Return: AX = status
  5920.         0000h missed completely
  5921.         0001h hit a wall
  5922.         0002h hit a robot within a 50-square radius
  5923.         0003h hit a robot within a 25-square radius
  5924.         0004h hit a robot within a 5-square radius
  5925.         0005h shell not known (too old or not yet fired)
  5926.         0006h shell still in flight
  5927. SeeAlso: AX=0003h
  5928. --------g-E0002D-----------------------------
  5929. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  5930.     AX = 002Dh
  5931.     BX:CX -> X word variable
  5932. Return: AX = status (0001h OK, 0000h problem with address)
  5933. Note:    after this call, PCROBOTS will automatically update the specified
  5934.       word whenever the robot moves
  5935. SeeAlso: AX=002Eh
  5936. --------g-E0002E-----------------------------
  5937. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  5938.     AX = 002Eh
  5939.     BX:CX -> Y word variable
  5940. Return: AX = status (0001h OK, 0000h problem with address)
  5941. Note:    after this call, PCROBOTS will automatically update the specified
  5942.       word whenever the robot moves
  5943. SeeAlso: AX=002Dh
  5944. --------g-E00080-----------------------------
  5945. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  5946.     AX = 0080h
  5947.     BX = basic configuration (see #2428)
  5948.     CX = advanced configuration (see #2429)
  5949. Return: AX = status (0001h OK, 0000h not first call in program)
  5950. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  5951.       which specially-written .COM or .EXE programs form robots battling
  5952.       each other in a user-defined arena
  5953. Notes:    a maximum of ten points may be allocated to the robot; if you attempt
  5954.       to allocate more, some items will be given a value of zero.  If this
  5955.       function is not called, each attribute is set to the default value
  5956.       of 2.
  5957.     if the invisibility option is chosen, the robot will start with only
  5958.       900 cannon shells instead of the default 1000
  5959.  
  5960. Bitfields for PCROBOTS basic configuration:
  5961. Bit(s)    Description    (Table 2428)
  5962.  0-3    maximum speed (0-4 = 50,75,100,150,200)
  5963.  4-7    maneuverability (0-4 = 20%,35%,50%,75%,100%)
  5964.  8-11    cannon range (0-4 = 300,500,700,1000,1500)
  5965.  12-15    robot armor (0-4 = 50,75,100,150,200)
  5966.  
  5967. Bitfields for PCROBOTS advanced configuration:
  5968. Bit(s)    Description    (Table 2429)
  5969.  0-2    robot acceleration (0-4 = 5,7,10,15,20)
  5970.  3    capable of invisibility
  5971. --------r-E1---------------------------------
  5972. INT E1 - IBM ROM BASIC - used while in interpreter
  5973. Notes:    called by ROM BASIC
  5974.     BASIC.COM/BASICA.COM do not restore vector on termination
  5975. --------N-E1---------------------------------
  5976. INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
  5977. Desc:    points at a data table
  5978. SeeAlso: INT E2
  5979. --------r-E2---------------------------------
  5980. INT E2 - IBM ROM BASIC - used while in interpreter
  5981. Notes:    called by ROM BASIC
  5982.     BASIC.COM/BASICA.COM do not restore vector on termination
  5983. --------N-E2---------------------------------
  5984. INT E2 - PC Cluster Program - RELOCATED INT 1C
  5985. SeeAlso: INT 1C
  5986. --------r-E3---------------------------------
  5987. INT E3 - IBM ROM BASIC - used while in interpreter
  5988. Notes:    called by ROM BASIC
  5989.     BASIC.COM/BASICA.COM do not restore vector on termination
  5990. --------r-E40005-----------------------------
  5991. INT E4 - Logitech Modula v2.0 - MonitorEntry
  5992.     AX = 0005h
  5993.     BX = priority
  5994. SeeAlso: AX=0006h
  5995. --------r-E40006-----------------------------
  5996. INT E4 - Logitech Modula v2.0 - MonitorExit
  5997.     AX = 0006h
  5998. SeeAlso: AX=0005h
  5999. --------r-E4---------------------------------
  6000. INT E4 - IBM ROM BASIC - used while in interpreter
  6001. Notes:    called by ROM BASIC
  6002.     BASIC.COM/BASICA.COM do not restore vector on termination
  6003. --------r-E5---------------------------------
  6004. INT E5 - IBM ROM BASIC - used while in interpreter
  6005. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6006.     BASIC.COM/BASICA.COM do not restore vector on termination
  6007. --------r-E6---------------------------------
  6008. INT E6 - IBM ROM BASIC - used while in interpreter
  6009. Notes:    called by ROM BASIC
  6010.     BASIC.COM/BASICA.COM do not restore vector on termination
  6011. --------r-E7---------------------------------
  6012. INT E7 - IBM ROM BASIC - used while in interpreter
  6013. Notes:    called by ROM BASIC
  6014.     BASIC.COM/BASICA.COM do not restore vector on termination
  6015. --------r-E8---------------------------------
  6016. INT E8 - IBM ROM BASIC - used while in interpreter
  6017. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6018.     BASIC.COM/BASICA.COM do not restore vector on termination
  6019. --------r-E9---------------------------------
  6020. INT E9 - IBM ROM BASIC - used while in interpreter
  6021. Notes:    called by ROM BASIC
  6022.     BASIC.COM/BASICA.COM do not restore vector on termination
  6023. --------r-EA---------------------------------
  6024. INT EA - IBM ROM BASIC - used while in interpreter
  6025. Notes:    called by ROM BASIC
  6026.     BASIC.COM/BASICA.COM do not restore vector on termination
  6027. --------r-EB---------------------------------
  6028. INT EB - IBM ROM BASIC - used while in interpreter
  6029. Notes:    called by ROM BASIC
  6030.     BASIC.COM/BASICA.COM do not restore vector on termination
  6031. --------r-EC---------------------------------
  6032. INT EC - IBM ROM BASIC - used while in interpreter
  6033. Notes:    called by ROM BASIC
  6034.     BASIC.COM/BASICA.COM do not restore vector on termination
  6035. --------N-EC---------------------------------
  6036. INT EC - used by Alloy NTNX
  6037. --------r-EC---------------------------------
  6038. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  6039.     AX = function number (0000h to 0140h)
  6040.     STACK:    DWORD address to return to
  6041.         any arguments required by function
  6042. Return: STACK:    return address popped, but otherwise unchanged
  6043. Desc:    this is the interface from applications to the runtime system by Exact
  6044.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  6045.       it can provide DLL-style capabilities under MS-DOS.
  6046. Note:    the interrupt handler removes the return address and flags placed on
  6047.       the stack by the INT EC, then jumps to the appropriate function
  6048. --------r-ED---------------------------------
  6049. INT ED - IBM ROM BASIC - used while in interpreter
  6050. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6051.     BASIC.COM/BASICA.COM do not restore vector on termination
  6052.     INT 80 through INT ED are modified but not restored by Direct Access
  6053.       v4.0, and may be left dangling by other programs written with the
  6054.       same version of compiled BASIC
  6055. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  6056. --------r-EE---------------------------------
  6057. INT EE - IBM ROM BASIC - used while in interpreter
  6058. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6059.     BASIC.COM/BASICA.COM do not restore vector on termination
  6060. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  6061. --------r-EF---------------------------------
  6062. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  6063. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  6064. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  6065. --------O-EF----CX0473-----------------------
  6066. INT EF - GEM - INTERFACE
  6067.     CX = 0473h
  6068.     DS:DX -> GEM parameter block
  6069. --------r-F0---------------------------------
  6070. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  6071. Note:    BASICA.COM does not restore vector on termination
  6072. SeeAlso: INT EF"BASIC"
  6073. --------*-F1---------------------------------
  6074. INT F1 - reserved for user interrupt
  6075. --------s-F1---------------------------------
  6076. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  6077.     DS:BX -> '$'-terminated text string
  6078. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  6079. --------s-F1---------------------------------
  6080. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  6081. SeeAlso: INT F2"SPEECH"
  6082. --------U-F1---------------------------------
  6083. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  6084. Return: AX:BX -> data area
  6085. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  6086.       and COM2 in software
  6087. Note:    The installation check consists of testing for the following signature
  6088.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  6089.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  6090.       version number
  6091. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  6092. --------N-F1---------------------------------
  6093. INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
  6094. Note:    if this vector contains the value 5774654Eh ("NetW"), the remote boot
  6095.       BIOS extension is active, and access to the floppy disk is redirected
  6096.       to an image file in the server's SYS:LOGIN directory
  6097. --------v-F1---------------------------------
  6098. INT F1 - VIRUS - "Violetta" - ???
  6099. Note:    used but not chained by virus
  6100. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  6101. --------*-F2---------------------------------
  6102. INT F2 - reserved for user interrupt
  6103. --------s-F2---------------------------------
  6104. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  6105. SeeAlso: INT F1"SPEECH"
  6106. ----------F2---------------------------------
  6107. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  6108.     AH = function number (see #2430)
  6109.     ???
  6110. Return: ???
  6111. Program: ImageCapture is a product of International Computers
  6112. SeeAlso: INT F3"ICCTSR"
  6113.  
  6114. (Table 2430)
  6115. Values for ImageCapture function:
  6116.  01h    power up
  6117.  02h    power down
  6118.  03h    set controls
  6119.  04h    capture image
  6120.  05h    display image
  6121.  06h    read file
  6122.  07h    write file
  6123.  08h    write array
  6124.  09h    read pixel
  6125.  0Ah    write pixel
  6126.  0Bh    check if VGA present
  6127.  0Ch    set video mode
  6128.  0Dh    check for keystroke
  6129.  0Eh    delay
  6130. --------*-F3---------------------------------
  6131. INT F3 - reserved for user interrupt
  6132. --------s-F3---------------------------------
  6133. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  6134. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  6135.       value selected with SET-ECHO.EXE
  6136. SeeAlso: INT 2F/AX=FBFBh
  6137. ----------F3---------------------------------
  6138. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  6139. Program: ImageCapture is a product of International Computers
  6140. SeeAlso: INT F2"ICCTSR"
  6141. --------*-F4---------------------------------
  6142. INT F4 - reserved for user interrupt
  6143. --------T-F4---------------------------------
  6144. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  6145. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  6146. --------*-F5---------------------------------
  6147. INT F5 - reserved for user interrupt
  6148. --------T-F5---------------------------------
  6149. INT F5 - DoubleDOS - ???
  6150. --------*-F6---------------------------------
  6151. INT F6 - reserved for user interrupt
  6152. --------T-F6---------------------------------
  6153. INT F6 - DoubleDOS - ???
  6154. --------*-F7---------------------------------
  6155. INT F7 - reserved for user interrupt
  6156. --------T-F7---------------------------------
  6157. INT F7 - DoubleDOS - ???
  6158. ----------F700-------------------------------
  6159. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  6160.     AH = 00h
  6161.     AL = function
  6162.         00h get configuration record
  6163.         Return: DS:DX -> configuration record
  6164.         01h set configuration record
  6165.         02h get path for option
  6166.         DS:DX -> option name
  6167.         Return: DS:DX -> path
  6168.         03h determine whether configuration record set
  6169.         Return: AX = status
  6170.                 0000h set
  6171.                 0001h not yet set
  6172.         04h get link state
  6173.         Return: AX = state
  6174.                 0000h unlinked
  6175.                 0001h linked
  6176. Notes:    this information is preliminary and still subject to change
  6177.     all of the INT F7 calls for FSBBS are used for interprogram
  6178.       communication between the BBS kernel and the programs it spawns
  6179. SeeAlso: AH=01h
  6180. ----------F701-------------------------------
  6181. INT F7 - FSBBS 2.0 - USER RECORD
  6182.     AH = 01h
  6183.     AL = function
  6184.         00h get user record for user currently online
  6185.         Return: DS:DX -> user record
  6186.         01h set user record
  6187.         DS:DX -> user record
  6188. SeeAlso: AH=00h,AH=02h
  6189. ----------F702-------------------------------
  6190. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  6191.     AH = 02h
  6192. Return: DS:DX -> 8-character blank-padded account name
  6193. SeeAlso: AH=01h
  6194. ----------F703-------------------------------
  6195. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  6196.     AH = 03h
  6197.     AL = function
  6198.         00h get terminal index number
  6199.         Return: DX = index number
  6200.         01h set terminal index number
  6201.         DX = terminal index
  6202. ----------F704-------------------------------
  6203. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  6204.     AH = 04h
  6205.     AL = function
  6206.         00h get PassData buffer contents
  6207.         DS:DX -> buffer for PassData contents
  6208.         01h set PassData contents
  6209.         DS:DX -> buffer containing new PassData
  6210.         CH = length of data in buffer
  6211. ----------F705-------------------------------
  6212. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  6213.     AH = 05h
  6214.     AL = function
  6215.         00h get time remaining
  6216.         Return: DX = number of minutes remaining
  6217.         01h get current time
  6218.         Return: DS:DX -> 8-character time string
  6219.         02h increment time
  6220.         DX = number of additional minutes
  6221.         03h decrement time
  6222.         DX = number of minutes
  6223. SeeAlso: AH=06h
  6224. ----------F706-------------------------------
  6225. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  6226.     AH = 06h
  6227.     AL = function
  6228.         00h determine whether function is available
  6229.         DX = index of function
  6230.         01h set function availability
  6231.         DX = index of function
  6232.         ???
  6233. SeeAlso: AH=05h,AH=07h
  6234. ----------F707-------------------------------
  6235. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  6236.     AH = 07h
  6237.     AL = function
  6238.         00h get current dump mode
  6239.         Return: DL = mode
  6240.         01h set dump mode
  6241.         DL = mode
  6242. SeeAlso: AH=06h
  6243. --------*-F8---------------------------------
  6244. INT F8 - reserved for user interrupt
  6245. --------h-F8---------------------------------
  6246. INT F8 - TANDY??? - 100 HZ INTERRUPT
  6247. Note:    this vector is not used on the Tandy 1000TL
  6248. SeeAlso: INT FA"USART"
  6249. --------T-F8---------------------------------
  6250. INT F8 - DoubleDOS - ???
  6251. --------*-F9---------------------------------
  6252. INT F9 - reserved for user interrupt
  6253. --------T-F9---------------------------------
  6254. INT F9 - DoubleDOS - ???
  6255. --------*-FA---------------------------------
  6256. INT FA - reserved for user interrupt
  6257. --------h-FA---------------------------------
  6258. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  6259. Note:    this vector is not used on the Tandy 1000TL
  6260. SeeAlso: INT F8"100 HZ",INT FB"USART"
  6261. --------T-FA---------------------------------
  6262. INT FA - DoubleDOS - TURN OFF TIMESHARING
  6263. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  6264. --------*-FB---------------------------------
  6265. INT FB - reserved for user interrupt
  6266. --------h-FB---------------------------------
  6267. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  6268. SeeAlso: INT FA"USART"
  6269. --------T-FB---------------------------------
  6270. INT FB - DoubleDOS - TURN ON TIMESHARING
  6271. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  6272. --------*-FC---------------------------------
  6273. INT FC - reserved for user interrupt
  6274. --------T-FC---------------------------------
  6275. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  6276. Return: ES = segment of display buffer
  6277. Desc:    determine the address of the virtual screen to which the program
  6278.       should write instead of the actual video memory, so that the
  6279.       multitasked programs do not interfere with each other's output
  6280. Note:    the display buffer may be moved if multitasking is enabled
  6281. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  6282. --------*-FD---------------------------------
  6283. INT FD - reserved for user interrupt
  6284. --------T-FD---------------------------------
  6285. INT FD - DoubleDOS - ???
  6286. --------S-FD---------------------------------
  6287. INT FD - TFPCX - INSTALLATION CHECK
  6288.     AH = function (see separate entries below)
  6289. Program: TFPCX is an interface between modem and terminal program for packet-
  6290.       radio communications
  6291. Notes:    the installation check consists of testing for the string "N5NX" three
  6292.       bytes beyond the interrupt handler; INT FD is the default, but may
  6293.       be changed, so the full installation check consists of scanning
  6294.       for the signature
  6295.     TFPCX returns AX=FFFFh on any unsupported function call
  6296. SeeAlso: AH=01h,AH=03h,AH=FEh
  6297. --------S-FD01-------------------------------
  6298. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  6299.     AH = 01h
  6300. Return: AX = status
  6301.         0000h no characters waiting
  6302.         0001h character available for input
  6303. Program: TFPCX is an interface between modem and terminal program for packet-
  6304.       radio communications
  6305. SeeAlso: AH=02h
  6306. --------S-FD02-------------------------------
  6307. INT FD - TFPCX - GET CHARACTER
  6308.     AH = 02h
  6309. Return: AL = character
  6310. Notes:    this call is only allowed if AH=01h indicated that a character is
  6311.       available
  6312.     all available characters should be read before sending any additional
  6313.       characters
  6314. SeeAlso: AH=01h,AH=03h
  6315. --------S-FD03-------------------------------
  6316. INT FD - TFPCX - OUTPUT CHARACTER
  6317.     AH = 03h
  6318.     AL = character to send
  6319. SeeAlso: AH=02h
  6320. --------S-FDFE-------------------------------
  6321. INT FD - TFPCX - GET VERSION
  6322.     AH = FEh
  6323. Return: AH = major version
  6324.     AL = minor version
  6325. Program: TFPCX is an interface between modem and terminal program for packet-
  6326.       radio communications
  6327. SeeAlso: AH=01h,AH=03h
  6328. --------B-FE---------------------------------
  6329. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  6330. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  6331.       is the last fourth of the interrupt vector table.  If the processor
  6332.       is returned to real mode via a hardware reset (the only possibility
  6333.       on an 80286, though there are a number of ways of generating one),
  6334.       then the BIOS startup code stacks three words on its scratch stack
  6335.       before determining that a return to real mode has been requested.
  6336.       As a result, INT FE and INT FF are corrupted.
  6337. SeeAlso: INT FF"XT286"
  6338. --------T-FE---------------------------------
  6339. INT FE - DoubleDOS - GIVE UP TIME
  6340.     AL = number of 55ms time slices to give away
  6341. Return: after other program (if active) has run
  6342. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  6343. --------G-FE---------------------------------
  6344. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  6345. SeeAlso: INT 3F
  6346. --------B-FF---------------------------------
  6347. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  6348. Note:    (see INT FE"XT286")
  6349. SeeAlso: INT FE"XT286"
  6350. --------b-FF---------------------------------
  6351. INT FF - Z100 - WARM BOOT
  6352. SeeAlso: INT 40"Z100"
  6353. --------Q-FF---------------------------------
  6354. INT FF U - QEMM-386.SYS v6.0+ - internal
  6355. Notes:    requires that a byte in the conventional-memory stub be set to the
  6356.       desired function number (00h through 0Ch)
  6357.  
  6358. (Table 2431)
  6359. Values for QEMM internal functions:
  6360.  00h    reflect back to Virtual86-mode interrupt handler (default)
  6361.  01h    ???
  6362.  02h    access DR7???
  6363.  03h    QPI upcall (see INT 67/AH=3Fh)
  6364.  04h    ???
  6365.  05h    ???
  6366.  06h    INT 15/AH=87h
  6367.  07h    EMS services (see INT 67/AH=40h,INT 67/AH=5Dh)
  6368.  08h    ???
  6369.  09h    QEMM exception handler
  6370.  0Ah    XMS services (see INT 2F/AX=4310h)
  6371.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  6372.  0Ch    ???
  6373. --------v-FF---------------------------------
  6374. INT FF - VIRUS - "Violetta" - ???
  6375. Note:    used but not chained by virus
  6376. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  6377. --------!---Admin----------------------------
  6378. Highest Table Number = 2431
  6379. --------!---FILELIST-------------------------
  6380. Please redistribute all of the files comprising the interrupt list (listed at
  6381. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  6382. trio of archives named INTER43A through INTER43C (preferably the original
  6383. authenticated PKZIP archives), and the utility programs in a fourth archive
  6384. called INTER43D.ZIP
  6385.  
  6386. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  6387. --------!---CONTACT_INFO---------------------
  6388. Internet: ralf@telerama.lm.com
  6389. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  6390. FIDO: Ralf Brown 1:129/26.1
  6391.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  6392.     unless you address it to me)
  6393. CIS:  >INTERNET:ralf@telerama.lm.com
  6394.