home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / INTER53C.ZIP / INTERRUP.M < prev    next >
Text File  |  1997-01-12  |  303KB  |  7,409 lines

  1. Interrupt List, part 13 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------*-61---------------------------------
  4. INT 61 - reserved for user interrupt
  5. --------b-61---------------------------------
  6. INT 61 - Atari Portfolio - EXTENDED BIOS
  7. Desc:    provides subfunctions such as turning off the machine, accessing
  8.       internal variables, and mapping memory cards
  9. SeeAlso: INT 60"Atari",AH=00h"Portfolio",AH=08h"Portfolio",AH=0Dh"Portfolio"
  10. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  11. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  12. SeeAlso: AH=30h"Portfolio"
  13. --------b-61---------------------------------
  14. INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
  15. Desc:    the low word of this vector contains the segment of the RAM data area
  16.       to be used by the expansion ROM at F400h:0000h, and the high word
  17.       contains the length of the data area; this segment and size are
  18.       both set to 0000h if no ROM is installed at F400h:0000h
  19. SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
  20. SeeAlso: INT 66"TI Professional PC"
  21. --------b-61---------------------------------
  22. INT 61 - HP 95LX System Manager - LOAD DS
  23. SeeAlso: INT 0F"HP 95LX",INT 60/DI=0102h"HP 95LX"
  24. --------r-61---------------------------------
  25. INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
  26. SeeAlso: INT 60"JPI"
  27. --------d-61---------------------------------
  28. INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
  29. Desc:    this vector stores the second four bytes of the parameter table for
  30.       hard disk 0
  31. SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec",#0629
  32. --------I-61---------------------------------
  33. INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
  34.     BX:DX -> control block
  35. SeeAlso: INT 67"Sangoma"
  36. --------v-61---------------------------------
  37. INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
  38. Note:    the virus copies the original INT 21h vector into INT 61h
  39. SeeAlso: INT 21/AH=00h,INT 21/AH=25h,INT 60"VIRUS",INT 6B"VIRUS"
  40. --------U-61---------------------------------
  41. INT 61 - PC-Magazin - PAGE, SWAPx
  42.     details not yet available
  43. Program: PAGE and SWAPx are utilities from PC-Magazin, the German edition of
  44.       PC Magazine, issue 47/85, page 31
  45. SeeAlso: INT 66"INCA"
  46. --------N-61---------------------------------
  47. INT 61 - TCPOpen kernel - API
  48.     ES:BX -> request packet (see #2566)
  49. Program: TCPOpen is a TCP/IP protocol stack by Lanera
  50. Range:    INT 60 to INT 7F, selected by configuration file
  51. Note:    there does not appear to be an installation check, though function
  52.       FFFFh can be used to verify that the software is indeed functioning
  53.  
  54. Format of TCPOpen request packet:
  55. Offset    Size    Description    (Table 2566)
  56.  00h  8 BYTEs    ???
  57.  08h    WORD    function number (0000h-001Ah or FFF9h-FFFFh)
  58.  0Ah    WORD    ???
  59.  0Ch  2 BYTEs    ???
  60.  0Eh    WORD    (ret) return code
  61.  10h  2 BYTEs    ???
  62.  12h    WORD    ???
  63.  14h    WORD    (ret) 0001h if requested function complete
  64.  16h    WORD    (ret) ???
  65.  18h  6 BYTEs    ???
  66.  1Eh    DWORD    -> ???
  67.  22h    WORD    ??? or 0000h
  68.  24h    WORD    (ret) ???
  69. SeeAlso: #2567
  70.  
  71. (Table 2567)
  72. Call TCPOpen Function FFFFh: installation verification
  73. Return: offset 10h = BEEFh
  74.     offset 14h = 0001h
  75.     offset 24h = ???
  76. Index:    installation check;TCPOpen kernel
  77. --------N-61---------------------------------
  78. INT 61 - XFS v1.76 - XFSKRNL.EXE - API
  79.     AX = function
  80.         8000h installation check???
  81.         Return: AX = 0000h
  82.         8001h ???
  83.         ES:DI -> DWORD ???
  84.         Return: AX = status???
  85.         8002h ???
  86.         BX = ???
  87.         CX = ???
  88.         ES:DI -> ???
  89.         Return: AX = status???
  90.         8003h ???
  91.         BX = ???
  92.         CX = ???
  93.         ES:DI -> ???
  94.         Return: AX = status???
  95.         8004h ???
  96.         BX = ???
  97.         Return: AX = status???
  98.         8005h wait until ???
  99.         Return: DX:AX = ???
  100.         8006h get ???
  101.         Return: DX:AX -> ??? record
  102.         8007h set IP address??? (or htonl/ntohl)
  103.         DX:BX = IP address???
  104.         Return: DX:AX = byte-swapped IP address
  105.         8008h set IP address??? (or htonl/ntohl)
  106.         DX:AX = IP address???
  107.         Return: DX:AX = byte-swapped IP address
  108.         8009h ???
  109.         ES:DI -> ???
  110.         Return: DX:AX = ???
  111.         800Ah ???
  112.         800Bh ???
  113.         Return: DX:AX = ???
  114.         800Ch ???
  115.         800Dh ???
  116.         800Eh ???
  117.         800Fh ???
  118.         8010h get ??? record
  119.         Return: DX:AX -> ??? record
  120.         8011h ???
  121.         8012h ???
  122.         BX = ???
  123.         Return: DX:AX = ???
  124.         8013h get ??? record
  125.         Return: DX:AX -> ??? record
  126.         8014h ???
  127.         ES:DI -> ???
  128.         Return: nothing
  129.         8015h get ??? record
  130.         Return: DX:AX -> 8-byte ??? record
  131.         8016h get ??? record
  132.         Return: DX:AX -> 6-byte ??? record
  133.         8017h ???
  134.         ES:DI -> ???
  135.         Return: DX:AX = ???
  136.         8018h get ??? record
  137.         Return: DX:AX -> ??? record
  138.         8019h get ??? record
  139.         Return: DX:AX -> 14-byte ??? record
  140.         801Ah get ??? record
  141.         Return: DX:AX -> ??? record (max 98 bytes)
  142.         801Bh get ??? record
  143.         Return: DX:AX -> ??? record
  144.         801Ch ???
  145.         Return: nothing
  146.         801Dh get ???
  147.         Return: AL = ???
  148.         801Eh ???
  149.         Return: AX = ???
  150.         801Fh uninstall
  151.         Return: AX = status
  152.                 0000h successful
  153.                 other interrupt which could not be released
  154.     AX = other
  155.         Return: AX:BX = ??? (0000h:0000h by default)
  156. Program: XFS is a shareware Network File System client by Robert Juhasz
  157. Range:    INT 60 to INT 65, selected by scanning for two consecutive free
  158.       vectors and hooking the first
  159. SeeAlso: INT 62"XFS"
  160. --------N-61---------------------------------
  161. INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
  162.     AH = system call number (also see entries below)
  163.         01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+)
  164.         02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+)
  165. Return: CF clear if successful
  166.     CF set on error
  167.         AL = basic error (see #2568)
  168.         AH = suberror number (see #2569,#2570)
  169. Range:    INT 20h to INT E0h, selected by configuration
  170. Notes:    the installation check consists of testing for the signature "TCPTSR"
  171.       three bytes beyond the start of the interrupt handler
  172. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  173.       greater than 54h in AH may crash the system.    Other kernels may have
  174.       this bug as well.
  175. SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
  176. Index:    installation check;PC/TCP
  177.  
  178. (Table 2568)
  179. Values for PC/TCP error code:
  180.  00h "NET_NOERR" successful
  181.  01h "NET_ERR_INUSE" protocol or socket already in use
  182.  02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH)
  183.  03h "NET_ERR_NOMEM" out of memory
  184.  04h "NET_ERR_NOTNETCONN" not a network descriptor
  185.  05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
  186.  06h "NET_ERR_BADPKT" illegal or corrupted packet
  187.  07h "NET_ERR_NOHOST" no host bound to specified connection
  188.  08h "NET_ERR_CANTOPEN" unable to open file
  189.  09h "NET_ERR_NET_UNREACHABLE" network is unreachable
  190.  0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see #2569)
  191.  0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
  192.  0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
  193.  0Dh "NET_ERR_TIMEOUT" operation timed out
  194.  0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
  195.  0Fh "NET_ERR_NOSERVERS" no name servers configured
  196.  10h "NET_ERR_SERVER_ERR" bad reply from name server
  197.     Subcodes: 0= no error, 1 = Host unreachable
  198.  11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address
  199.             structure is zero
  200.  12h "NET_ERR_BADARG" invalid argument
  201.  13h "NET_ERR_EOF" foreign host closed its end of connection
  202.  14h "NET_ERR_RESET" connection has been reset
  203.  15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
  204.             with no data available
  205.  16h "NET_ERR_UNBOUND" insufficient resources to do operation
  206.  17h "NET_ERR_NODESC" could not allocate network descriptor
  207.  18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
  208.  19h "NET_ERR_CANTBROADCAST" unable to broadcast
  209.  1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
  210.  1Bh kernel busy, try again later
  211.  1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams)
  212.     (see #2570)
  213. ---v2.1+---
  214.  1Dh "NET_ERR_TERMINATING" internal kernel fatal error
  215.  1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config)
  216.  1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified
  217.  20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration
  218.  21h "NET_ERR_EMM" expanded memory error
  219.  22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running)
  220.  23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt
  221.  24h "NET_ERR_NOQIOS" ran out of resources; try again later
  222.  25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set
  223.  
  224. (Table 2569)
  225. Values for subcodes of PC/TCP error 0Ah "NET_ERR_HOST_UNREACHABLE":
  226.  00h    no error
  227.  01h    host unreachable
  228.  02h    ARP failed
  229.  03h    hardware failure
  230.  04h    link failure
  231.  05h    no route
  232.  06h    gateway down
  233. SeeAlso: #2568,#2570
  234.  
  235. (Table 2570)
  236. Values for subcodes of PC/TCP error 1Ch "NET_ERR_ICMPMESG":
  237.  07h    unrecognised
  238.  08h    can't fragment
  239.  09h    srcr_fail
  240.  0Ah    source quench
  241.  0Bh    time exceeded
  242.  0Ch    parameter problem
  243.  0Dh    admin_prohib. see also code 0Ah
  244. SeeAlso: #2568,#2569
  245. --------N-6100-------------------------------
  246. INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
  247.     AH = 00h
  248.     DS:SI -> 216-byte buffer for network debugging information (see #2571)
  249. Return: CF clear
  250.     AX = 0000h
  251.     buffer filled
  252. Notes:    this call is not documented by FTP, Inc. for any version
  253.     most of the information returned by this call is available via the
  254.       documented get_kernel_info or net_info commands.
  255.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  256. SeeAlso: INT 61"FTP Software",INT 61/AH=2Ah"PC/TCP"
  257.  
  258. Format of network debugging information:
  259. Offset    Size    Description    (Table 2571)
  260.  00h    DWORD    number of interrupts
  261.  04h    DWORD    receive buffer low-water mark
  262.  08h    DWORD    transmit buffer low-water mark
  263.  0Ch    DWORD    number of packets received
  264.  10h    DWORD    number of packets transmitted
  265.  14h    DWORD    total receive errors
  266.  18h    DWORD    total transmit errors
  267.  1Ch  4 BYTEs    ???
  268.  20h    DWORD    receive resets
  269.  24h    DWORD    transmit resets
  270.  28h    DWORD    number of "runts" received
  271.  2Ch    DWORD    number of alignment errors on received packets
  272.  30h    DWORD    number of CRC errors on received packets
  273.  34h    DWORD    number of parity errors on received packets
  274.  38h    DWORD    number of receive overflow errors
  275.  3Ch    DWORD    number of oversized packets received
  276.  40h    DWORD    number of packets lost due to lack of buffers
  277.  44h    DWORD    receive timeouts
  278.  48h 32 BYTEs    ???
  279.  68h    DWORD    number of transmit collisions
  280.  6Ch    DWORD    number of transmit timeouts
  281.  70h    DWORD    number of transmit underflows
  282.  74h    DWORD    number of lost "crs" on transmit
  283.  78h    DWORD    number of times heartbeat failed on transmit
  284.  7Ch 24 BYTEs    ???
  285.  94h    WORD    free packet buffers
  286.  96h    WORD    total packet buffers
  287.  98h    WORD    minimum number of packet buffers free since kernel started
  288.  9Ah 24 BYTEs    ???
  289.  B2h    DWORD    pointer to TCP connection list???
  290.  B6h    DWORD    pointer to IP routing table???
  291.  BAh 30 BYTEs    ???
  292. --------N-6100-------------------------------
  293. INT 61 - Banyan VINES - CALL A SERVICE
  294.     AH = 00h
  295.     AL = service ID (1..16)
  296.     other registers vary by service
  297. Return: AX = status (see #2574)
  298. Desc:    Calls an adapter driver or redirector service. The service handler
  299.       pointers are stored at offset 0010h in the code segment of the
  300.       BANV interrupt handler (see #2572).
  301. Note:    Banyan can use any interrupt from 60h through 66h.  The Banyan
  302.       interrupt handler is identified by the string "BANV" in the four
  303.       bytes immediately preceding the interrupt handler
  304. SeeAlso: AH=01h,AH=03h
  305.  
  306. Format of the BANV code segment (revision 5.53):
  307. Offset    Size    Description    (Table 2572)
  308.  00h 16    BYTEs    reserved
  309.  10h 16    DWORDs    far pointers to the service handlers (0 = not installed)
  310.  50h    DWORD    far pointer to last called service
  311.  54h    WORD    VINES revision
  312.  56h    DWORD    VINES revision long
  313.  5Ah    WORD    VINES revision (lower bound)
  314.  5Ch    DWORD    VINES revision (lower bound) long
  315.  60h    WORD    VINES revision (upper bound)
  316.  62h    DWORD    VINES revision (upper bound) long
  317.  66h    WORD    end of PCCONFIG area
  318.  68h    WORD    start of PCCONFIG area
  319.  6Ah  4    BYTEs    BANV interrupt identifier ("BANV")
  320.  6Eh  N    BYTEs    BANV interrupt service
  321. SeeAlso: #2573
  322. --------b-6100-------------------------------
  323. INT 61 - Atari Portfolio - SERVICE INITIALIZATION
  324.     AH = 00h
  325. Return: nothing
  326. Note:    applications using any Portfolio INT 61 calls should call this function
  327.       exactly once at startup
  328. SeeAlso: AH=07h"Portfolio",AH=09h"Portfolio",AH=0Dh"Portfolio"
  329. SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
  330. SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
  331. SeeAlso: AH=30h"Portfolio"
  332. --------V-610000-----------------------------
  333. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
  334.     AX = 0000h
  335.     BX = zoom factor (0-7)
  336. Desc:    zooms the display based on the given zoom factor
  337. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  338.       obtained by calling INT 16/AH=FFh
  339.     not all vendors include the Tseng TSR which supports these functions
  340. SeeAlso: AX=0001h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  341. SeeAlso: INT 16/AH=FFh"OPTIMA"
  342. --------N-610001DS0001-----------------------
  343. INT 61 - Banyan VINES - INTERNAL VINES SOCKET API (NEAR DATA)
  344.     AX = 0001h
  345.     DS = 0001h (to distinguish from alternate AX=0001h socket interface)
  346.     CX:BX -> internal communications control block (see #2573)
  347.     DX = caller's data segment
  348. Return: AX = status
  349.         0000h successful
  350.         0099h invalid operation
  351.         00A5h resource not available
  352. Desc:    StreetTalk access with session handles
  353. Range:    INT 60 to INT 66
  354. Notes:    This service is handled by the adapter driver
  355.     The request dispatch table contains dummy entries for subfunctions
  356.       06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  357.       (invalid operation) in the request block's result buffer
  358.     in recent VINES releases, this interface is superseded by the AX=000Fh
  359.       interface, which allows FAR parameter block pointers (refer to that
  360.       function's entries for more details on individual subfunctions)
  361.     some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  362.       VINES 5.53) ignore the value in CX and use the value from DX instead
  363. SeeAlso: AX=000Fh
  364.  
  365. Format of internal communications control block:
  366. Offset    Size    Description    (Table 2573)
  367.  00h    WORD    subfunction number
  368.  02h    WORD    magic number (FEFEh)
  369.  04h    WORD    (ret) result, should be set to 0 before calling
  370.  06h    WORD    reserved (will be set to client DS)
  371.  08h    WORD    caller's code segment if function 000Bh, 0 else
  372.  0Ah    WORD    pointer to parameter block
  373.  0Ch    WORD    reserved (segment of parameter block; will be set to client DS)
  374.  0Eh    WORD    StreetTalk handle
  375. SeeAlso: #2572,#2693 at INT 61/AX=000Fh
  376. --------N-610001SF0001-----------------------
  377. INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
  378.     AX = 0001h subfn 0001h
  379.     DS:DX -> communications control block (function 0001h) (see #2575)
  380. Return: AX = status (0000h-0002h,0098h,009Eh-00A2h) (see #2574)
  381. Range:    INT 60h to INT 66h
  382. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  383.       the four bytes immediately preceding the interrupt handler
  384. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh
  385.  
  386. (Table 2574)
  387. Values for VINES status:
  388.  0000h    successful
  389.  0001h    service not installed
  390.  0002h    invalid service ID
  391.  0003h    invalid function
  392.  0004h-000Ah reserved for BANV interface errors
  393.  0097h    invalid socket identifier
  394.  0098h    resource already in use
  395.  009Bh    destination node unreachable
  396.  009Ch    message overflow
  397.  009Dh    destination socket nonexistent
  398.  009Eh    address family does not exist
  399.  009Fh    socket type does not exist
  400.  00A0h    protocol does not exist
  401.  00A1h    no more sockets available
  402.  00A2h    no more buffer space available
  403.  00A3h    timeout
  404.  00A5h    resource not available
  405.  00A6h    internal communication failure
  406.  00B1h    resource disconnect
  407.  
  408. Format of VINES control block to open socket:
  409. Offset    Size    Description    (Table 2575)
  410.  00h    WORD    0001h
  411.  02h    WORD    pointer to argument block
  412.  04h    WORD    error return code
  413.  06h  4 BYTEs    reserved
  414. SeeAlso: #2576
  415.  
  416. Format of VINES argument block for opening socket:
  417. Offset    Size    Description    (Table 2576)
  418.  00h    WORD    pointer to 2-byte buffer for socket identifier
  419.  02h    WORD    address family
  420.         0003h Banyan
  421.  04h    WORD    socket type
  422.         in address family 0003h
  423.             0001h IPC socket
  424.             0002h SPP socket
  425.  06h    WORD    protocol number
  426.         FFFFh default
  427.  08h    WORD    pointer to 16-byte buffer for socket address (see #2577)
  428.  0Ah    WORD    local port number
  429.         0000h if service should assign transient port number
  430.         0001h to 01FFh well-known port number (assigned by Banyan)
  431. SeeAlso: #2575
  432.  
  433. Format of Banyan VINES IPC port:
  434. Offset    Size    Description    (Table 2577)
  435.  00h    WORD    address family (always 0003h for Banyan ports)
  436.  04h  4 BYTEs    network number (server's serial number)
  437.  06h    WORD    subnet number  (0001h = server, 8000h-FFFEh = PC)
  438.  08h    WORD    port ID (0001h-01FFh for "well-known" ports)
  439.  0Ah    BYTE    hop count
  440.  0Bh  5 BYTEs    filler
  441. SeeAlso: #2582
  442. --------N-610001SF0002-----------------------
  443. INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
  444.     AX = 0001h subfn 0002h
  445.     DS:DX -> communications control block (function 0002h) (see #2578)
  446. Return: AX = status (0000h-0002h,0097h,009Bh-009Dh,00A2h,00A3h,00B1h)
  447.         (see #2574)
  448. Range:    INT 60h to INT 66h
  449. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  450.       the four bytes immediately preceding the interrupt handler
  451. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h
  452.  
  453. Format of VINES control block for subfunction 0002h:
  454. Offset    Size    Description    (Table 2578)
  455.  00h    WORD    0002h
  456.  02h    WORD    pointer to argument block (see #2579)
  457.  04h    WORD    error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  458.         (see #2574)
  459.  06h  4 BYTEs    reserved
  460. SeeAlso: #2583
  461.  
  462. Format of VINES argument block for subfunction 0002h:
  463. Offset    Size    Description    (Table 2579)
  464.  00h    WORD    routine metric
  465.  02h    WORD    error return code
  466.  04h    WORD    socket identifier
  467.  06h    WORD    pointer to send buffer (see #2581)
  468.  08h    WORD    length of send buffer
  469.  0Ah    WORD    message request flags (see #2580)
  470.  0Ch 16 BYTEs    socket address (see #2582)
  471.  1Ch    WORD    timeout value in multiples of 200ms
  472.  1Eh    WORD    connection identifier
  473.  20h    WORD    type of request
  474.         0001h send message
  475.         0002h establish a virtual connection
  476.         0003h terminate a virtual connection
  477. SeeAlso: #2578,#2584
  478.  
  479. Bitfields for message request flags:
  480. Bit(s)    Description    (Table 2580)
  481.  0    async request
  482.  1    reliable message
  483.  2    flush receive buffer on overflow
  484.  3    end of user message received
  485.  4    vectored request (if set, send buffer contains buffer descriptors)
  486.  5    connection-specific receive
  487.  6    change to connection-specific receive mode
  488. SeeAlso: #2579,#2584
  489.  
  490. Format of buffer descriptor:
  491. Offset    Size    Description    (Table 2581)
  492.  00h    WORD    data segment
  493.  02h    WORD    buffer pointer
  494.  04h    WORD    buffer length
  495.  06h    WORD    character count
  496. SeeAlso: #2579
  497.  
  498. Format of VINES socket address for unreliable datagrams:
  499. Offset    Size    Description    (Table 2582)
  500.  00h    WORD    0003h      address family
  501.  02h    DWORD    FFFFFFFFh network number
  502.  06h    WORD    FFFFh      subnet number
  503.  08h    WORD          local port number
  504.  0Ah    BYTE    00h-0Fh      hop count
  505.  0Bh  5 BYTEs    0000h      filler
  506. SeeAlso: #2577
  507. --------N-610001SF0003-----------------------
  508. INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
  509.     AX = 0001h subfn 0003h
  510.     DS:DX -> communications control block (function 0003h) (see #2583)
  511. Return: AX = status (00-0Ah,97h,A2h,A3h) (see #2574)
  512. Range:    INT 60h to INT 66h
  513. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  514.       the four bytes immediately preceding the interrupt handler
  515. SeeAlso: AX=0001h/SF=0002h
  516.  
  517. Format of VINES control block for subfunction 0003h:
  518. Offset    Size    Description    (Table 2583)
  519.  00h    WORD    0003h
  520.  02h    WORD    pointer to argument block (see #2584)
  521.  04h    WORD    error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
  522.         (see #2574)
  523.  06h  4 BYTEs    reserved
  524. SeeAlso: #2578,#2584,#2586
  525.  
  526. Format of VINES argument block for subfunction 0003h:
  527. Offset    Size    Description    (Table 2584)
  528.  00h    WORD    character count
  529.  02h    WORD    error return code
  530.  04h    WORD    socket identifier
  531.  06h    WORD    pointer to receive buffer (see #2585)
  532.  08h    WORD    length of receive buffer
  533.  0Ah    WORD    message request flags (see #2580)
  534.  0Ch 16 BYTEs    socket address (see #2577)
  535.  1Ch    WORD    timeout value in multiples of 200ms
  536.  1Eh    WORD    connection identifier
  537.  20h    WORD    type of response
  538.         0001h message received
  539.         0002h virtual connection established
  540.         0003h virtual connection terminated
  541. SeeAlso: #2583,#2587
  542.  
  543. Format of buffer descriptor:
  544. Offset    Size    Description    (Table 2585)
  545.  00h    WORD    data segment
  546.  02h    WORD    buffer pointer
  547.  04h    WORD    buffer length
  548.  06h    WORD    character count
  549. SeeAlso: #2584
  550. --------N-610001SF0004-----------------------
  551. INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
  552.     AX = 0001h subfn 0004h
  553.     DS:DX -> communications control block (function 0004h) (see #2586)
  554. Return: AX = status (0000h-000Ah,0097h) (see #2574)
  555. Range:    INT 60h to INT 66h
  556. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  557.       the four bytes immediately preceding the interrupt handler
  558. SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh
  559.  
  560. Format of VINES control block to close socket:
  561. Offset    Size    Description    (Table 2586)
  562.  00h    WORD    0004h
  563.  02h    WORD    pointer to argument block (see #2587)
  564.  04h    WORD    error return code (see #2574)
  565.  06h  4 BYTEs    reserved
  566. SeeAlso: #2583,#2589
  567.  
  568. Format of VINES argument block for closing socket:
  569. Offset    Size    Description    (Table 2587)
  570.  00h    WORD    socket identifier
  571. SeeAlso: #2584,#2586,#2590
  572. --------N-610001SF0005-----------------------
  573. INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
  574.     AX = 0001h subfn 0005h
  575.     DS:DX -> communications control block (see #2589)
  576. Return: AX = status (0000h-000Ah,00A2h,00A3h) (see #2588)
  577. Desc:    returns results for all asynchronous operations invoked from the
  578.       data segment used for this call
  579. Range:    INT 60h to INT 66h
  580. Notes:    The Banyan interrupt handler is identified by the string "BANV" in
  581.       the four bytes immediately preceding the interrupt handler
  582. SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h
  583.  
  584. (Table 2588)
  585. Values for VINES function status:
  586.  0000h    successful
  587.  0001h    service not installed
  588.  0002h    invalid service ID
  589.  0003h-000Ah reserved for BANV interface errors
  590.  00A2h    no more buffer space available
  591.  00A3h    timeout event
  592.  
  593. Format of VINES control block for subfunction 0005h:
  594. Offset    Size    Description    (Table 2589)
  595.  00h    WORD    0005h
  596.  02h    WORD    pointer to argument block (see #2590)
  597.  04h    WORD    error return code
  598.  06h  4 BYTEs    reserved
  599. SeeAlso: #2586,#2591
  600.  
  601. Format of VINES argument block for subfunction 0005h:
  602. Offset    Size    Description    (Table 2590)
  603.  00h    WORD    pointer to WORD event pointer
  604.  02h    WORD    timeout in multiples of 200ms, FFFFh = infinite
  605. SeeAlso: #2587,#2589
  606. --------N-610001SF0008-----------------------
  607. INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
  608.     AX = 0001h subfn 0008h
  609.     DS:DX -> communications control block (function 0008h) (see #2591)
  610. Return: AX = status
  611.         0000h  successful
  612.         00A2h  no more buffer space available
  613. Range:    INT 60h to INT 66h
  614. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  615.       the four bytes immediately preceding the interrupt handler
  616. SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h
  617.  
  618. Format of VINES control block for subfunction 0006h:
  619. Offset    Size    Description    (Table 2591)
  620.  00h    WORD    0008h
  621.  02h    WORD    process type
  622.         0001h transient process
  623.         0002h resident process
  624.  04h    WORD    error return code
  625.  06h  4 BYTEs    reserved
  626. SeeAlso: #2589,#2592
  627. --------N-610001SF000B-----------------------
  628. INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
  629.     AX = 0001h subfn 000Bh
  630.     DS:DX -> communications control block (function 000Bh) (see #2592)
  631. Return: AX = status (00h-0Ah,A2h) (see #2588)
  632. Range:    INT 60h to INT 66h
  633. Note:    The Banyan interrupt handler is identified by the string "BANV" in
  634.       the four bytes immediately preceding the interrupt handler
  635. SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h
  636.  
  637. Format of VINES control block for subfunction 000Bh:
  638. Offset    Size    Description    (Table 2592)
  639.  00h    WORD    000Bh
  640.  02h    WORD    pointer to argument block (see #2593)
  641.  04h    WORD    error return code (see #2574)
  642.  06h  2 BYTEs    reserved
  643.  08h    WORD    user CS register
  644. SeeAlso: #2591
  645.  
  646. Format of VINES argument block for subfunction 000Bh:
  647. Offset    Size    Description    (Table 2593)
  648.  00h    WORD    pointer to user interrupt function (see #2594)
  649.  02h    WORD    pointer to user stack
  650.  04h    WORD    initial timeout value in multiples of 200ms, FFFFh = infinite
  651. SeeAlso: #2593
  652.  
  653. (Table 2594)
  654. Values FAR user function is invoked with:
  655.     SS = DS = ES = segment of control block
  656.     STACK:    DWORD    return address
  657.         WORD    argument pointer (sosend or sorec argument block)
  658.         WORD    error return code
  659.             0000h argument pointer is valid
  660.             00A3h timeout
  661. --------V-610001-----------------------------
  662. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
  663.     AX = 0001h
  664.     BX = X coordinate to center
  665.     CX = Y coordinate to center
  666. Desc:    Positions the zoom window such that the specified window-relative
  667.       coordinates appear as close as possible to the center of the
  668.       display.  Useful for scrolling and panning.
  669. Range:    unknown
  670. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  671.       obtained by calling INT 16/AH=FFh
  672.     not all vendors include the Tseng TSR which supports these functions
  673. SeeAlso: AX=0000h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
  674. SeeAlso: INT 16/AH=FFh"OPTIMA"
  675. --------I-610002-----------------------------
  676. INT 61 - Banyan VINES - 3270 INTERFACE
  677.     AX = 0002h
  678.     BH = function number (see #2595)
  679.     DS:CX -> argument block (except BH=00h,1Ah) (see #2597)
  680. Return: AX = status (see #2596)
  681. Notes:    Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
  682.       which is loaded first.  The other interface will use AX=000Ah
  683.     Status codes greater than 63h indicate an inconsistency in the 3270/SNA
  684.       or 3270/BSC resident driver, which must be reloaded by the user
  685.  
  686. (Table 2595)
  687. Values for VINES 3270 interface function number:
  688.  00h "pi2reset"     reset 3270/SNA or 3270/BSC driver
  689.  02h "pi2bsc"     (3270/BSC only)
  690.  03h "pi2get"     get information stored in 3270 resident driver
  691.  04h "pi2put"     store information in 3270 resident driver
  692.  05h "pi2gcur"     get current screen position
  693.  07h "pi2sdat"     send data keystroke
  694.  08h "pi2scom"     send command keystroke
  695.  0Ah "pi2field"     get field info for arbitrary screen positions
  696.  0Fh "pi2stat"     get logical unit/device status
  697.  12h "pi2nlus"     determine logical unit/device assignment
  698.  13h "pi2gate"     specifies comm port address to gateway service
  699.  14h "pi2attach" attach a logical unit/device
  700.  15h "pi2sdev"     save logical unit/device info in resident driver
  701.         (not supported in >3.0)
  702.  16h "pi2gdev"     get device information (not supported in >3.0)
  703.  17h "pi2luinfo" get info about specific logical unit/device
  704.  18h "pi2gerr"     get finer error detail
  705.  19h "pi2dhold"     (3270/SNA only)  holds a 3270 device
  706.  1Ah "pi2shut"     release memory-resident module
  707.  1Ch "pi2sprof"     save profile info in res driver (not supp in >3.0)
  708.  1Dh "pi2gprof"     get prevsly stored profile info (not supp in >3.0)
  709.  
  710. (Table 2596)
  711. Values for VINES 3270 status:
  712.  0000h    successful
  713.  000Bh    invalid parameter or data does not fit data area
  714.  000Ch    another code path currently active in resident driver
  715.  000Dh    operation currently not allowed
  716.  0032h    encountered connection disconnect error
  717.  0033h    encountered "sosend" completion error
  718.  0034h    encountered "sosend" communication error
  719.  0035h    attach request refused.    extended error info via "pi2gerr":
  720.     01h resource unavailable
  721.     02h invalid type
  722.     03h version mismatch
  723.     04h invalid logical unit number
  724.     05h error during ARL processing
  725.     06h no access for user
  726.  0071h    encountered "sosock" error
  727.  0072h    encountered unrecognizable error
  728.  0073h    encountered "sowait" error (extended info via "pi2gerr")
  729.  0074h    encountered invalid type-of-request on "sowait"
  730.  0075h    encountered "sorec" error (extended info via "pi2gerr")
  731.  0076h    encountered "sorec" completion error (ext info via "pi2gerr")
  732.  0077h    encountered connection request
  733.  0078h    encountered unrecognizable data
  734.  0079h    encountered unknown connection ID (ext info via "pi2gerr")
  735. SeeAlso: #2574
  736.  
  737. Format of argument block for BH=03h,04h:
  738. Offset    Size    Description    (Table 2597)
  739.  00h    WORD    size of data area (max 256)
  740.  02h  N BYTEs    data area
  741. SeeAlso: #2598,#2599,#2600
  742.  
  743. Format of argument block for BH=05h:
  744. Offset    Size    Description    (Table 2598)
  745.  00h    WORD    logical unit/device number
  746.  02h    WORD    pointer to WORD buffer for cursor index
  747.  04h    WORD    pointer to BYTE buffer for current field attribute
  748. SeeAlso: #2597,#2599,#2600
  749.  
  750. Format of argument block for BH=07h:
  751. Offset    Size    Description    (Table 2599)
  752.  00h    WORD    logical unit/device number
  753.  02h    WORD    ASCII data byte
  754.  04h    WORD    pointer to WORD count of characters which will need updating
  755. SeeAlso: #2597,#2598,#2600
  756.  
  757. Format of argument block for BH=08h:
  758. Offset    Size    Description    (Table 2600)
  759.  00h    WORD    logical unit/device number
  760.  02h    WORD    3270 keystroke (see #2601)
  761. SeeAlso: #2597,#2598,#2599,#2602
  762.  
  763. (Table 2601)
  764. Values for 3270 keystroke:
  765.  0000h    Enter
  766.  0001h    Clear
  767.  0002h    PA1
  768.  0003h    PA2
  769.  0004h    PA3
  770.  0005h    PF1
  771.  ...
  772.  001Ch    PF24
  773.  001Dh    CSELECT (cursor select)
  774.  001Eh    Insert
  775.  001Fh    Delete
  776.  0020h    EOField
  777.  0021h    EINPUT (erase input)
  778.  0022h    Reset
  779.  0023h    Attention
  780.  0024h    SysReq
  781.  0025h    Duplicate
  782.  0026h    Fieldmark
  783.  0027h    Home
  784.  0028h    NextLine
  785.  0029h    Tab
  786.  002Ah    BackTab
  787.  002Bh    cursor up
  788.  002Ch    cursor down
  789.  002Dh    cursor right
  790.  002Eh    cursor left
  791.  002Fh    double cursor right
  792.  0030h    double cursor left
  793.  0031h    PRINT
  794.  0032h    CANCEL
  795.  0033h    Backspace
  796.  
  797. Format of argument block for BH=0Ah:
  798. Offset    Size    Description    (Table 2602)
  799.  00h    WORD    logical unit/device number
  800.  02h    WORD    screen index
  801.  04h    WORD    pointer to WORD buffer for field length
  802.  06h    WORD    pointer to WORD buffer for offset in screen of field start
  803. SeeAlso: #2600,#2603
  804.  
  805. Format of argument block for BH=0Fh:
  806. Offset    Size    Description    (Table 2603)
  807.  00h    WORD    logical unit/device number
  808.  02h    WORD    clear mask (clear these bits of status after returning status)
  809.  04h    WORD    pointer to WORD buffer for device status (see #2604)
  810. SeeAlso: #2602,#2605
  811.  
  812. Bitfields for Banyan 3270 device status:
  813. Bit(s)    Description    (Table 2604)
  814.  10    status modified
  815.  9    buffer modified
  816.  8    set cursor
  817.  5    sound alarm
  818.  1-0    size of print line for printer logical units
  819.     00  unformatted line
  820.     01  40-character line
  821.     10  64-character line
  822.     11  80-character line
  823.  
  824. Format of argument block for BH=12h:
  825. Offset    Size    Description    (Table 2605)
  826.  00h    WORD    pointer to WORD buffer for number of logical units or devices
  827.  02h    WORD    pointer to WORD buffer for version number
  828.  04h    WORD    pointer to 64-byte buffer for logical unit/device list
  829. SeeAlso: #2603,#2606
  830.  
  831. Format of argument block for BH=13h:
  832. Offset    Size    Description    (Table 2606)
  833.  00h 16 BYTEs    communications port address (see #2577)
  834. SeeAlso: #2605,#2607
  835.  
  836. Format of argument block for BH=14h:
  837. Offset    Size    Description    (Table 2607)
  838.  00h    WORD    logical unit/device number
  839.         0000h attach any free device of the specified type
  840.  02h    WORD    logical unit/device type
  841.         (3270/SNA) 01h, 02h, or 03h
  842.         (3270/BSC) 02h display
  843.         (3270/BSC) 03h printer
  844.  04h    WORD    pointer to WORD buffer for attached logical unit/device number
  845. SeeAlso: #2606,#2608
  846.  
  847. Format of argument block for BH=16h:
  848. Offset    Size    Description    (Table 2608)
  849.  00h    WORD    pointer to 18-byte buffer for device block (see #2613)
  850.         first WORD must be set to desired logical unit/device number
  851. SeeAlso: #2607,#2609
  852.  
  853. Format of argument block for BH=17h:
  854. Offset    Size    Description    (Table 2609)
  855.  00h    WORD    logical unit/device number
  856.  02h    WORD    pointer to information block in caller's DS (see #2614)
  857. SeeAlso: #2608,#2610
  858.  
  859. Format of argument block for BH=18h:
  860. Offset    Size    Description    (Table 2610)
  861.  00h    WORD    pointer to WORD buffer for major error code
  862.  02h    WORD    pointer to WORD buffer for minor error code
  863. SeeAlso: #2609,#2611
  864.  
  865. Format of argument block for BH=19h:
  866. Offset    Size    Description    (Table 2611)
  867.  00h    WORD    logical unit/device number
  868. SeeAlso: #2610,#2612
  869.  
  870. Format of argument block for BH=1Ch,1Dh:
  871. Offset    Size    Description    (Table 2612)
  872.  00h    WORD    pointer to profile block in caller's DS (see #2617)
  873. SeeAlso: #2597,#2611
  874.  
  875. Format of device block, argument block for BH=15h:
  876. Offset    Size    Description    (Table 2613)
  877.  00h    WORD    logical unit/device number
  878.  02h    WORD    logical unit/device type
  879.  04h    WORD    display model number
  880.  06h    WORD    numeric checking
  881.  08h    WORD    status line
  882.  0Ah    BYTE    unprotected normal field attribute
  883.  0Bh    BYTE    unprotected intensified field attribute
  884.  0Ch    BYTE    protected normal field attribute
  885.  0Dh    BYTE    protected intensified field attribute
  886.  0Eh    WORD    reserved
  887.  10h    WORD    printer port number
  888.  
  889. Format of information block:
  890. Offset    Size    Description    (Table 2614)
  891.  00h    WORD    device model number
  892.  02h    DWORD    screen buffer pointer
  893.  06h    DWORD    status line pointer (see #2615)
  894.  0Ah    DWORD    reserved
  895.  
  896. Format of Banyan VINES 3270 status line:
  897. Offset    Size    Description    (Table 2615)
  898.  00h    BYTE    comm line status
  899.         00h inactive
  900.         01h active
  901.  01h    BYTE    activation level
  902.         01h physical unit activated
  903.         02h logical unit also activated
  904.         03h session is bound
  905.  02h    BYTE    data traffic state
  906.         00h inactive
  907.         01h active
  908.  03h    BYTE    screen ownership
  909.         00h SLU->PLU session owns screen
  910.         01h SLU->SSCP session owns screen
  911.  04h    BYTE    keyboard status (see #2616)
  912.  05h    BYTE    insert mode
  913.         01h if in insert mode
  914.  06h    BYTE    numeric
  915.         01h if current screen buffer is numeric only
  916.  07h    BYTE    printer status
  917.         00h printer not assigned
  918.         01h printer is inactive
  919.         02h printer error
  920.         03h currently printing
  921.         04h printer is busy
  922.         05h printer is very busy
  923.  08h    BYTE    printer assignment
  924.  09h    BYTE    maximum size of network name
  925.  0Ah  N BYTEs    ASCIZ network name
  926.     BYTE    maximum size of message window
  927.       M BYTEs    null-terminated message window
  928.     BYTE    code set
  929.         00h EBCDIC
  930.         01h ASCII
  931.       M BYTEs    extended attributes
  932.         01h extended attributes are in effect (stored at screen+1920)
  933.             each extended attribute specifies
  934.             bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
  935.             bits 2-4: 000=default,001=blue,010=red,011=pink,
  936.                   100=green,101=turquoise,110=yellow,111=white
  937.     BYTE    extended color
  938.         01h other than base color is in effect
  939.  
  940. (Table 2616)
  941. Values for Banyan VINES 3270 keyboard status:
  942.  00h    UNLOCK - ready to accept data
  943.  01h    TIME - aid was struck
  944.  02h    SYSTEM - received response no restore
  945.  03h    FUNCTION - unavailable keyboard function
  946.  04h    INPUT - not currently used
  947.  05h    ENDFIELD - field filled in insert mode
  948.  06h    PROTECTED - attempt to enter in protected field
  949.  07h    NUMERIC - attempt to enter in numeric field
  950.  08h    PROGRAM - error in outbound data stream
  951.  
  952. Format of Banyan VINES 3270 profile block:
  953. Offset    Size    Description    (Table 2617)
  954.  00h 64 BYTEs    gateway service name
  955.  40h 16 BYTEs    gateway comm port address
  956.  50h    WORD    primary logical unit number
  957.  52h    WORD    secondary logical unit type
  958.  54h    WORD    secondary logical unit number
  959.  56h    WORD    printer assignment
  960.  58h 50 BYTEs    keyboard definitions filename
  961. --------V-610002-----------------------------
  962. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
  963.     AX = 0002h
  964. Desc:    switches off zoom and returns window to its original state
  965. Range:    unknown
  966. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  967.       obtained by calling INT 16/AH=FFh
  968.     not all vendors include the Tseng TSR which supports these functions
  969. SeeAlso: AX=0000h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  970. --------N-610003SF00-------------------------
  971. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
  972.     AX = 0003h subfn 00h
  973.     DS:BX -> argument block (see #2619)
  974. Return: AX = status (see #2618)
  975. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh
  976.  
  977. (Table 2618)
  978. Values for VINES function status:
  979.  0000h    successful
  980.  000Bh    invalid session ID
  981.  000Ch    session not active
  982.  000Dh    invalid request type
  983.  000Eh    invalid parameters
  984.  000Fh    out of heap space
  985.  0010h    timeout on send
  986.  0011h    Banyan communications error
  987.  0012h    session not waiting for host
  988.  0013h    session is active
  989.  0014h    duplicate suspend session request
  990.  0015h    no session suspended
  991.  0016h    ring data buffer full
  992.  0017h    printer error encountered
  993.  0018h    Banyan communications error
  994.  0019h    unable to make connection
  995.  001Ah    no ring buffer specified at startup
  996.  001Bh    service is down
  997.  001Ch    invalid service name
  998.  001Dh    service is closed
  999.  001Eh    invalid connection name
  1000.  001Fh    max session limit reached for service
  1001.  0020h    access rights list for connection/dialout does not include this user
  1002.  0021h    service not responding
  1003.  0022h    missing telephone number
  1004. SeeAlso: #2574,#2622
  1005.  
  1006. Format of VINES argument block:
  1007. Offset    Size    Description    (Table 2619)
  1008.  00h    BYTE    session ID (00h)
  1009.  01h    BYTE    00h (func "initialize user buffer pointer information area")
  1010.  02h    WORD    -> user buffer ptr info area in caller's current DS (see #2620)
  1011.  
  1012. Format of user buffer ptr info area:
  1013. Offset    Size    Description    (Table 2620)
  1014.  00h    WORD    flags
  1015.         0000h don't read interface's data buffer
  1016.         0001h read data buffer
  1017.  02h    DWORD    pointer to ring buffer
  1018.  06h    WORD    length of ring buffer
  1019.  08h    WORD    ring buffer offset to last byte read by caller
  1020.  0Ah    DWORD    pointer to WORD containing offset of last byte
  1021.           in ring buffer filled
  1022.  0Eh    DWORD    pointer to screen buffer
  1023.  12h    DWORD    pointer to field containing cursor position
  1024.  16h    DWORD    pointer to terminal status area (see #2621)
  1025.  
  1026. Format of VINES terminal status area:
  1027. Offset    Size    Description    (Table 2621)
  1028.  00h    BYTE    status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
  1029.  01h    BYTE    terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
  1030.  02h    BYTE    current keypad mode (VT100,VT52 only)
  1031.         4Eh ("N") numeric mode
  1032.         41h ("A") application mode
  1033.  03h  4 BYTEs    current state of LEDs (VT100 only)
  1034.         00h off
  1035.         01h on
  1036.  07h    WORD    line error count
  1037.  09h    WORD    primary error code (see #2622)
  1038.  0Bh    WORD    secondary error code
  1039.  
  1040. (Table 2622)
  1041. Values for VINES primary error code:
  1042.  0000h    no error
  1043.  0001h    unable to make connection
  1044.  0002h    communications error, restart session
  1045.  0003h    async terminal emulation service unavailable
  1046.  0004h    lost carrier
  1047.  0005h    all matching lines busy
  1048.  0006h    no lines defined for connection name
  1049.  0007h    no dial lines available on server
  1050.  0008h    no matching dial lines available
  1051.  0009h    out of heap space
  1052.  000Ah    service error encountered
  1053.  000Bh    timed out waiting to connect
  1054.  000Ch    communications error
  1055.  000Dh    communications error
  1056.  000Eh    host wants file transferred to/from PC
  1057.  000Fh    host software changed session parameter
  1058.  0010h    host software changed tap settings
  1059.  0011h    host software changed LED indicator
  1060.  0012h    host software changed display background (secondary error code 00h for
  1061.       white on black, 01h for black on white)
  1062.  0013h    host software changed display option (secondary error code 00h for off,
  1063.       01h for on)
  1064.  0014h    communications error
  1065.  0015h    communications error
  1066.  0016h    unable to make connection
  1067.  0017h    unable to make connection
  1068. SeeAlso: #2618
  1069. --------N-610003SF01-------------------------
  1070. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
  1071.     AX = 0003h subfn 01h
  1072.     DS:BX -> argument block (see #2623)
  1073. Return: AX = status (see #2618)
  1074. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h
  1075.  
  1076. Format of VINES argument block for Function 0003h subfunction 01h:
  1077. Offset    Size    Description    (Table 2623)
  1078.  00h    BYTE    session ID (00h)
  1079.  01h    BYTE    01h (function "send to host")
  1080.  02h    BYTE    type
  1081.         00h ASCII byte
  1082.         01h ASCII string
  1083.         02h terminal function code
  1084.         03h up arrow
  1085.         04h down arrow
  1086.         05h left arrow
  1087.         06h right arrow
  1088.         07h break
  1089.  03h  N BYTEs    type-specific info (see #2624)
  1090.  
  1091. Format of type-specific info:
  1092. Offset    Size    Description    (Table 2624)
  1093. ---ASCII byte---
  1094.  03h    BYTE    byte to send to host
  1095. ---ASCII string---
  1096.  03h    WORD    length of string
  1097.  05h    WORD    pointer to string
  1098. ---terminal function code (VT52/VT100)---
  1099.  03h    BYTE    function code
  1100.         00h keypad 0
  1101.         01h keypad 1
  1102.         ...
  1103.         09h keypad 9
  1104.         0Ah keypad -
  1105.         0Bh keypad ,
  1106.         0Ch keypad .
  1107.         0Dh keypad ENTER
  1108.         0Eh PF1
  1109.         0Fh PF2
  1110.         10h PF3
  1111.         11h PF4
  1112. ---terminal function code (IBM3101)---
  1113.  03h    BYTE    function code
  1114.         00h PF1
  1115.         ...
  1116.         07h PF8
  1117.         08h Home
  1118. SeeAlso: #2623
  1119. --------N-610003SF02-------------------------
  1120. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
  1121.     AX = 0003h subfn 02h
  1122.     DS:BX -> argument block (see #2625)
  1123. Return: AX = status (see #2618)
  1124. SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h
  1125.  
  1126. Format of VINES argument block for Function 0003h subfunction 02h:
  1127. Offset    Size    Description    (Table 2625)
  1128.  00h    BYTE    session ID (00h)
  1129.  01h    BYTE    02h (function "control monitor")
  1130.  02h    BYTE    display flag
  1131.         00h don't display data received from host
  1132.         01h display data
  1133. --------N-610003SF03-------------------------
  1134. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
  1135.     AX = 0003h subfn 03h
  1136.     DS:BX -> argument block (see #2626)
  1137. Return: AX = status (see #2618)
  1138. Desc:    this function permits the caller to freeze/unfreeze the display and
  1139.       the ring buffer
  1140. SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h
  1141.  
  1142. Format of VINES argument block for Function 0003h subfunction 03h:
  1143. Offset    Size    Description    (Table 2626)
  1144.  00h    BYTE    session ID (00h)
  1145.  01h    BYTE    03h (function "flow control data")
  1146.  02h    BYTE    flow control flag
  1147.         00h allow characters to be put into display or ring buffer
  1148.         01h don't place any more characters into display or ring buffer
  1149. --------N-610003SF04-------------------------
  1150. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
  1151.     AX = 0003h subfn 04h
  1152.     DS:BX -> argument block (see #2627)
  1153. Return: AX = status (see #2618)
  1154. SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh
  1155.  
  1156. Format of VINES argument block for ending active session:
  1157. Offset    Size    Description    (Table 2627)
  1158.  00h    BYTE    session ID (00h)
  1159.  01h    BYTE    04h (function "end active session")
  1160. --------N-610003SF05-------------------------
  1161. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
  1162.     AX = 0003h subfn 05h
  1163.     DS:BX -> argument block (see #2628)
  1164. Return: AX = status (see #2618)
  1165. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h
  1166.  
  1167. Format of VINES argument block for setting session parameters:
  1168. Offset    Size    Description    (Table 2628)
  1169.  00h    BYTE    session ID (00h)
  1170.  01h    BYTE    05h (function "set session parameter")
  1171.  02h    BYTE    parameter number (see #2629)
  1172.  03h    BYTE    new parameter value
  1173.  
  1174. (Table 2629)
  1175. Values for parameter number:
  1176.  00h    line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
  1177.           05h=300, 06h=600, 07h=1200, 08h=2400, 09h=4800, 0Ah=9600)
  1178.  01h    parity (00h=none, 01h=odd, 02h=even)
  1179.  02h    duplex (00h=full, 01h=half)
  1180.  03h    character size (00h=7 bits, 01h=8 bits)
  1181.  04h    stop bits (00h=1, 01h=2)
  1182.  05h    XON/XOFF flow control (00h=no, 01h=yes)
  1183.  07h    intercharacter delay in tenths of a second
  1184.  08h    interline delay in tenths of a second
  1185.  09h    auto linefeed (00h=no, 01h=yes)
  1186.  0Ah    filter control characters (00h=no, 01h=yes)
  1187.  0Bh    terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
  1188.  0Ch    auto wrap (00h=no, 01h=yes)
  1189.  0Dh    cursor shape (00h=underscore, 01h=block)
  1190.  0Eh    character set (00h=UK, 01h=US ASCII)
  1191.  0Fh    printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
  1192. SeeAlso: #2628
  1193. --------N-610003SF06-------------------------
  1194. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
  1195.     AX = 0003h subfn 06h
  1196.     DS:BX -> argument block (see #2630)
  1197. Return: AX = status (see #2618)
  1198. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h
  1199.  
  1200. Format of VINES argument block for getting session parameters:
  1201. Offset    Size    Description    (Table 2630)
  1202.  00h    BYTE    session ID (00h)
  1203.  01h    BYTE    06h (function "get session parameter")
  1204.  02h    BYTE    parameter number (see #2629)
  1205.  03h    BYTE    (ret) current parameter value
  1206. --------N-610003SF07-------------------------
  1207. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
  1208.     AX = 0003h subfn 07h
  1209.     DS:BX -> argument block (see #2631)
  1210. Return: AX = status (see #2618)
  1211. SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h
  1212.  
  1213. Format of VINES argument block for setting tab settings:
  1214. Offset    Size    Description    (Table 2631)
  1215.  00h    BYTE    session ID (00h)
  1216.  01h    BYTE    07h (function "set tab settings")
  1217.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  1218.           each byte = 00h if no tab, 01h if tab at that position
  1219. --------N-610003SF08-------------------------
  1220. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
  1221.     AX = 0003h subfn 08h
  1222.     DS:BX -> argument block (see #2632)
  1223. Return: AX = status (see #2618)
  1224. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h
  1225.  
  1226. Format of VINES argument block for getting tab settings:
  1227. Offset    Size    Description    (Table 2632)
  1228.  00h    BYTE    session ID (00h)
  1229.  01h    BYTE    08h (function "get tab settings")
  1230.  02h    WORD    pointer to 80-byte buffer in caller's current DS
  1231.         each byte set to 00h if no tab, 01h if tab at that position
  1232. --------N-610003SF09-------------------------
  1233. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
  1234.     AX = 0003h subfn 09h
  1235.     DS:BX -> argument block (see #2633)
  1236. Return: AX = status (see #2618)
  1237. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh
  1238.  
  1239. Format of VINES argument block for Function 0003h subfunction 09h:
  1240. Offset    Size    Description    (Table 2633)
  1241.  00h    BYTE    session ID (00h)
  1242.  01h    BYTE    09h (function "refresh emulation screen")
  1243. --------N-610003SF0A-------------------------
  1244. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
  1245.     AX = 0003h subfn 0Ah
  1246.     DS:BX -> argument block (see #2634)
  1247. Return: AX = status (see #2618)
  1248. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh
  1249.  
  1250. Format of VINES argument block:
  1251. Offset    Size    Description    (Table 2634)
  1252.  00h    BYTE    session ID (00h)
  1253.  01h    BYTE    0Ah (function "suspend session temporarily")
  1254.  02h    WORD    size of session information to be saved
  1255.  04h    WORD    pointer to buffer in caller's DS
  1256. --------N-610003SF0B-------------------------
  1257. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
  1258.     AX = 0003h subfn 0Bh
  1259.     DS:BX -> argument block (see #2635)
  1260. Return: AX = status (see #2618)
  1261. SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah
  1262.  
  1263. Format of VINES argument block:
  1264. Offset    Size    Description    (Table 2635)
  1265.  00h    BYTE    session ID (00h)
  1266.  01h    BYTE    0Bh (function "restore previously suspended session")
  1267.  02h    WORD    size of buffer into which session info is restored
  1268.  04h    WORD    pointer to buffer in caller's DS
  1269. --------N-610003SF0C-------------------------
  1270. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
  1271.     AX = 0003h subfn 0Ch
  1272.     DS:BX -> argument block (see #2636)
  1273. Return: AX = status (see #2618)
  1274. SeeAlso: AX=0003h/SF=00h
  1275.  
  1276. Format of VINES argument block:
  1277. Offset    Size    Description    (Table 2636)
  1278.  00h    BYTE    session ID (00h)
  1279.  01h    BYTE    0Ch (function "set state of scroll lock checking")
  1280.  02h    BYTE    check_scroll_lock flag
  1281.         00h off
  1282.         01h on (display of host data stopped while ScrollLock on)
  1283. --------N-610003SF0D-------------------------
  1284. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
  1285.     AX = 0003h subfn 0Dh
  1286.     DS:BX -> argument block (see #2637)
  1287. Return: AX = status (see #2618)
  1288. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah
  1289.  
  1290. Format of VINES argument block:
  1291. Offset    Size    Description    (Table 2637)
  1292.  00h    BYTE    session ID (00h)
  1293.  01h    BYTE    0Dh (function "exit emulation")
  1294. --------N-610003SF0E-------------------------
  1295. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
  1296.     AX = 0003h subfn 0Eh
  1297.     DS:BX -> argument block (see #2638)
  1298. Return: AX = status (see #2618)
  1299. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h
  1300.  
  1301. Format of VINES argument block:
  1302. Offset    Size    Description    (Table 2638)
  1303.  00h    BYTE    session ID (00h)
  1304.  01h    BYTE    0Eh (function "interrupt on character from host")
  1305.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  1306.  06h    DWORD    stack pointer to use when call is made
  1307. --------N-610003SF0F-------------------------
  1308. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
  1309.     AX = 0003h subfn 0Fh
  1310.     DS:BX -> argument block (see #2639)
  1311. Return: AX = status (see #2618)
  1312. SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh
  1313.  
  1314. Format of VINES argument block:
  1315. Offset    Size    Description    (Table 2639)
  1316.  00h    BYTE    session ID (00h)
  1317.  01h    BYTE    0Fh (function "start a session")
  1318.  02h    WORD    pointer to information area in caller's current DS (see #2640)
  1319.  
  1320. Format of VINES information area:
  1321. Offset    Size    Description    (Table 2640)
  1322.  00h    WORD    length of service name
  1323.  02h    WORD    pointer to service name in caller's DS
  1324.  04h    BYTE    type of connection (00h=connection name, 01h=dialout)
  1325.  05h    WORD    length of connection name/telephone number
  1326.  07h    WORD    pointer to connection name/telephone number
  1327. --------N-610003SF10-------------------------
  1328. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
  1329.     AX = 0003h subfn 10h
  1330.     DS:BX -> argument block (see #2641)
  1331. Return: AX = status (see #2618)
  1332. SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h
  1333.  
  1334. Format of VINES argument block:
  1335. Offset    Size    Description    (Table 2641)
  1336.  00h    BYTE    session ID (00h)
  1337.  01h    BYTE    10h (function "start/stop printing of data received from host")
  1338.  02h    WORD    print capture flag (00h=off, 01h=on)
  1339. --------N-610003SF11-------------------------
  1340. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
  1341.     AX = 0003h subfn 11h
  1342.     DS:BX -> argument block (see #2642)
  1343. Return: AX = status (see #2618)
  1344. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  1345.  
  1346. Format of VINES argument block:
  1347. Offset    Size    Description    (Table 2642)
  1348.  00h    BYTE    session ID (00h)
  1349.  01h    BYTE    11h (function "get file transfer parameters")
  1350.  02h    WORD    pointer to info area in caller's current DS (see #2643)
  1351.  
  1352. Format of VINES info area:
  1353. Offset    Size    Description    (Table 2643)
  1354.  00h    BYTE    protocol flag (00h none, 01h Kermit)
  1355.  01h    BYTE    direction flag (00h send, 01h receive)
  1356.  02h    BYTE    length of null-terminated PC filename
  1357.  03h    DWORD    pointer to null-terminated PC filename
  1358.  07h    BYTE    length of null-terminated host filename
  1359.  08h    DWORD    pointer to null-terminated host filename
  1360. --------N-610003SF12-------------------------
  1361. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
  1362.     AX = 0003h subfn 12h
  1363.     DS:BX -> argument block (see #2644)
  1364. Return: AX = status (see #2618)
  1365. SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h
  1366.  
  1367. Format of VINES argument block:
  1368. Offset    Size    Description    (Table 2644)
  1369.  00h    BYTE    session ID (00h)
  1370.  01h    BYTE    12h (function "get connection information")
  1371.  02h    WORD    offset of buffer for connection information (see #2645)
  1372.  
  1373. Format of VINES connection information:
  1374. Offset    Size    Description    (Table 2645)
  1375.  00h    WORD    length of service name (returned)
  1376.  02h    WORD    pointer to 64-byte buffer for service name
  1377.  04h    BYTE    type of connection
  1378.         00h connection name
  1379.         01h dialout
  1380.  05h    WORD    length of connection name/telephone number
  1381.  07h    WORD    pointer to 64-byte buffer for name/telno
  1382.  09h    BYTE    server line number being used (returned)
  1383. --------N-610003SF13-------------------------
  1384. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
  1385.     AX = 0003h subfn 13h
  1386.     DS:BX -> argument block (see #2646)
  1387. Return: AX = status (see #2618)
  1388. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh
  1389.  
  1390. Format of VINES argument block:
  1391. Offset    Size    Description    (Table 2646)
  1392.  00h    BYTE    session ID (00h)
  1393.  01h    BYTE    13h (function "start/stop tracing data traffic in session")
  1394.  02h    BYTE    trace flag (00h=off, 01h=on)
  1395. --------N-610003SF14-------------------------
  1396. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
  1397.     AX = 0003h subfn 14h
  1398.     DS:BX -> argument block (see #2647)
  1399. Return: AX = status (see #2618)
  1400. SeeAlso: AX=0003h/SF=0Eh
  1401.  
  1402. Format of VINES argument block:
  1403. Offset    Size    Description    (Table 2647)
  1404.  00h    BYTE    session ID (00h)
  1405.  01h    BYTE    14h (function "interrupt on message from host")
  1406.  02h    DWORD    pointer to routine to be called (0000h:0000h = don't call)
  1407.  06h    DWORD    stack pointer to use when call is made
  1408. --------N-610003SF15-------------------------
  1409. INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
  1410.     AX = 0003h subfn 15h
  1411.     DS:BX -> argument block (see #2648)
  1412. Return: AX = status (see #2618)
  1413. SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h
  1414.  
  1415. Format of VINES argument block:
  1416. Offset    Size    Description    (Table 2648)
  1417.  00h    BYTE    session ID (00h)
  1418.  01h    BYTE    15h (function "reset error")
  1419. --------V-610003-----------------------------
  1420. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
  1421.     AX = 0003h
  1422. Return: AX = zoom factor
  1423. Desc:    returns the current zoom factor
  1424. Range:    unknown
  1425. Notes:    INT 61h is the default interrupt; the actual interrupt number can be
  1426.       obtained by calling INT 16/AH=FFh
  1427.     not all vendors include the Tseng TSR which supports these functions
  1428. SeeAlso: AX=0000h"OPTIMA",AX=0005h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  1429. --------N-610004-----------------------------
  1430. INT 61 - Banyan VINES - FILE SERVICE CONTROL
  1431.     AX = 0004h
  1432.     DS:DX -> request block (see #2650)
  1433. Return: AX = status (see #2649)
  1434. Notes:    This service is handled by the redirector
  1435.     The request dispatch table contains dummy entries for requests 0Ah,
  1436.       0Dh, 15h, 19h, and 1Ah, which always return error 0033h (invalid
  1437.       request ID)
  1438.  
  1439. (Table 2649)
  1440. Values for Banyan VINES file service control status code:
  1441.  0000h    successful
  1442.  0002h    file not found
  1443.  0003h    path not found
  1444.  000Fh    invalid drive
  1445.  0015h    drive not ready
  1446.  0033h    invalid request ID
  1447.  0034h    drive not connected
  1448.  0037h    drive number out of range
  1449.  0038h    drive number not available
  1450.  003Ah    invalid operation
  1451.  0055h    drive already connected
  1452.  0057h    invalid number of entries
  1453.  
  1454. Format of Banyan VINES file service request block:
  1455. Offset    Size    Description    (Table 2650)
  1456.  00h    WORD    request ID (1..28)
  1457.  02h  n BYTES    additional parameters and result buffer
  1458. --------N-610004SF0001-----------------------
  1459. INT 61 - Banyan VINES - SET DRIVE CONNECTION
  1460.     AX = 0004h subfn 0001h
  1461.     DS:DX -> request block (see #2651)
  1462. Return: AX = status (0000h,0037h,0038h,0055h) (see #2649)
  1463. Desc:    Maps the specified file service to a DOS drive letter
  1464. Note:    If an empty service name is specified, an existing connection will
  1465.       be removed
  1466. SeeAlso: AX=0004h/SF=0002h
  1467.  
  1468. Format of VINES Function 0004h/Subfunction 0001h request block:
  1469. Offset    Size    Description    (Table 2651)
  1470.  00h    WORD    0001h
  1471.  02h    BYTE    drive number (0=default, 1=A, ...)
  1472.  03h 16    BYTEs    reserved
  1473.  13h 64    BYTEs    null-terminated file service name
  1474.  53h  5    BYTEs    reserved
  1475. --------N-610004SF0002-----------------------
  1476. INT 61 - Banyan VINES - GET DRIVE CONNECTION
  1477.     AX = 0004h subfn 0002h
  1478.     DS:DX -> request block (see #2652)
  1479. Return: AX = status (0000h,0034h,0037h) (see #2649)
  1480. Desc:    Returns the StreetTalk name of the associated file service
  1481. SeeAlso: AX=0004h/SF=0001h,AX=0004h/SF=0003h
  1482.  
  1483. Format of VINES Function 0004h/Subfunction 0002h request block:
  1484. Offset    Size    Description    (Table 2652)
  1485.  00h    WORD    0002h
  1486.  02h    BYTE    drive number (0=default, 1=A, ...)
  1487.  03h 16    BYTEs    reserved
  1488.  13h 64    BYTEs    buffer for null-terminated file service name
  1489.  53h  5    BYTEs    reserved
  1490. --------N-610004SF0003-----------------------
  1491. INT 61 - Banyan VINES - GET NETWORK DRIVE MAP
  1492.     AX = 0004h subfn 0003h
  1493.     DS:DX -> request block (see #2653)
  1494. Return: AX = status
  1495.         0000h drive map returned in request block
  1496. Desc:    Returns a bit map indicating which drive numbers are connected to a
  1497.       file service
  1498. Note:    Only bits 0-25 are significant
  1499. SeeAlso: AX=0004h/SF=0002h
  1500.  
  1501. Format of VINES Function 0004h/Subfunction 0003h request block:
  1502. Offset    Size    Description    (Table 2653)
  1503.  00h    WORD    0003h
  1504.  02h    DWORD    buffer for drive map (bit0=A, bit1=B, ...)
  1505. --------N-610004SF0004-----------------------
  1506. INT 61 - Banyan VINES - SET USER NAME
  1507.     AX = 0004h subfn 0004h
  1508.     DS:DX -> request block (see #2654)
  1509. Return: AX = status (0000h) (see #2649)
  1510. Notes:    Other side effects, if any, not known
  1511. SeeAlso: AX=0004h/SF=0005h,#2680 [ID 0004h],AX=0007h/BX=0005h
  1512.  
  1513. Format of VINES Function 0004h/Subfunction 0004h request block:
  1514. Offset    Size    Description    (Table 2654)
  1515.  00h    WORD    0004h
  1516.  02h 64    BYTE    null-terminated user name
  1517. --------N-610004SF0005-----------------------
  1518. INT 61 - Banyan VINES - GET USER NAME
  1519.     AX = 0004h subfn 0005h
  1520.     DS:DX -> request block (see #2655)
  1521. Return: AX = status (see also #2649)
  1522.         0000h user name returned in request block
  1523. Desc:    Returns the StreetTalk name of the currently logged in user
  1524. SeeAlso: AX=0004h/SF=0004h,#2680 [ID 0004h],AX=0007h/BX=0005h
  1525. SeeAlso: AX=0004h/SF=0004h
  1526.  
  1527. Format of VINES Function 0004h/Subfunction 0005h request block:
  1528. Offset    Size    Description    (Table 2655)
  1529.  00h    WORD    0005h (subfunction "Get User Name")
  1530.  02h 64    BYTE    buffer for null-terminated user name
  1531. --------N-610004SF0006-----------------------
  1532. INT 61 - Banyan VINES - TEST DRIVE CONNECTION
  1533.     AX = 0004h subfn 0006h
  1534.     DS:DX -> request block (see #2656)
  1535. Return: AX = status (see also #2649)
  1536.         0000h connection flag returned in request block
  1537. Desc:    Returns a flag indicating if the drive is connected to a file service
  1538. SeeAlso: AX=0004h/SF=0007h
  1539.  
  1540. Format of VINES Function 0004h/Subfunction 0006h request block:
  1541. Offset    Size    Description    (Table 2656)
  1542.  00h    WORD    0006h (subfunction "Test Drive Connection")
  1543.  02h    BYTE    buffer for connection flag (1 = not connected, 2 = connected)
  1544. --------N-610004SF0007-----------------------
  1545. INT 61 - Banyan VINES - GET CONNECTION DATA STRUCTURES
  1546.     AX = 0004h subfn 0007h
  1547.     DS:DX -> request block (see #2657)
  1548. Return: AX = status (see also #2649)
  1549.         0000h pointer returned in request block
  1550.         0033h invalid request ID
  1551. Desc:    Returns pointers to various internal data structures
  1552.  
  1553. Format of VINES Function 0004h/Subfunction 0007h request block:
  1554. Offset    Size    Description    (Table 2657)
  1555.  00h    WORD    0007h
  1556.  02h    BYTE    request ID (0..7) (see #2658)
  1557.  03h    WORD    buffer for pointer segment
  1558.  05h    WORD    buffer for pointer offset
  1559. SeeAlso: #2659,#2660
  1560.  
  1561. (Table 2658)
  1562. Values for VINES pointer ID:
  1563.  00h    job file table ???
  1564.  01h    drive handle table
  1565.  02h    drive connection table
  1566.  03h    IPC port of drive Z:
  1567.  04h    end of drive connection table
  1568.  05h    ???
  1569.  06h    ???
  1570.  07h    redirector data segment (offset=0)
  1571. SeeAlso: #2657
  1572.  
  1573. Format of VINES drive handle table:
  1574. Offset    Size    Description    (Table 2659)
  1575.  00h    BYTE    handle to default drive (0 = not connected)
  1576.  01h    BYTE    handle to drive A: (0 = not connected)
  1577.     ...
  1578.  1Ah    BYTE    handle to drive Z: (0 = not connected)
  1579. SeeAlso: #2660
  1580.  
  1581. Format of VINES drive connection table:
  1582. Offset    Size    Description    (Table 2660)
  1583.  00h    WORD    file service type (?) (0001h if drive Z:, 0000h else)
  1584.  02h 16    BYTEs    IPC port (contains the server serial number)
  1585.  12h 46    BYTEs    ???
  1586.  40h 64    BYTEs    null-terminated StreetTalk name of associated file service
  1587.  80h 64    BYTEs    null-terminated root directory (/ROOT: parameter of SETDRIVE)
  1588. SeeAlso: #2659
  1589. --------N-610004SF0008-----------------------
  1590. INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
  1591.     AX = 0004h subfn 0008h
  1592.     DS:DX -> request block (see #2661)
  1593. Return: AX = status (0000h,000Fh,0015h) (see #2649)
  1594. Notes:    The server ID is extracted from the IPC port address of the associated
  1595.       file service stored in the drive connection table
  1596.     The server serial number and the server subnet number are returned in
  1597.       big-endian (Motorola) format (i.e. MSB first)
  1598. SeeAlso: AX=0004h/SF=0005h
  1599.  
  1600. Format of VINES request block for getting server serial number:
  1601. Offset    Size    Description    (Table 2661)
  1602.  00h    WORD    0008h
  1603.  02h    WORD    drive number (0=default, 1=A, ...)
  1604.  04h    DWORD    buffer for server serial number
  1605.  08h    WORD    buffer for server subnet number (always 0001h)
  1606. --------N-610004SF0009-----------------------
  1607. INT 61 - Banyan VINES - SET ??? PARAMETER
  1608.     AX = 0004h subfn 0009h
  1609.     DS:DX -> request block (see #2662)
  1610. Return: AX = status (0000h) (see #2649)
  1611. Notes:    The specified WORD parameter is copied to offset 1702h of the
  1612.       redirector code segment (revision 5.53)
  1613. SeeAlso: AX=0004h/SF=000Bh
  1614.  
  1615. Format of VINES Function 0004h/Subfunction 0009h request block:
  1616. Offset    Size    Description    (Table 2662)
  1617.  00h    WORD    0009h
  1618.  02h    WORD    parameter
  1619. --------N-610004SF000B-----------------------
  1620. INT 61 - Banyan VINES - GET ??? DRIVE PARAMETER
  1621.     AX = 0004h subfn 000Bh
  1622.     DS:DX -> request block (see #2663)
  1623. Return: AX = status (0000h,0034h,0037h) (see #2649)
  1624. Notes:    This request returns a WORD value from the drive connection table
  1625.       read from offset 0012h of the specified drive's entry (usually 0037h)
  1626. SeeAlso: AX=0004h/SF=0009h
  1627.  
  1628. Format of VINES Function 0004h/Subfunction 000Bh request block:
  1629. Offset    Size    Description    (Table 2663)
  1630.  00h    WORD    000Bh
  1631.  02h    BYTE    drive number (0=default, 1=A, ...)
  1632.  03h    WORD    buffer for parameter
  1633. --------N-610004SF000C-----------------------
  1634. INT 61 - Banyan VINES - LOGOUT FROM VINES
  1635.     AX = 0004h subfn 000Ch
  1636.     DS:DX -> request block (see #2664)
  1637. Return: AX = status 0000h (see #2649)
  1638. Desc:    Terminates a running VINES session and clears all session specific
  1639.       buffers
  1640. SeeAlso: AX=0004h/SF=0008h
  1641.  
  1642. Format of VINES Function 0004h/Subfunction 000Ch request block:
  1643. Offset    Size    Description    (Table 2664)
  1644.  00h    WORD    000Ch
  1645. --------N-610004SF000E-----------------------
  1646. INT 61 - Banyan VINES - GET ACCESS RIGHTS LIST (ARL)
  1647.     AX = 0004h subfn 000Eh
  1648.     DS:DX -> request block (see #2665)
  1649. Return: AX = status (see also #2649)
  1650.         0000h request has been processed
  1651. Desc:    Returns the owner, group, and extended access rights for the specified
  1652.       file or directory
  1653. Note:    A status of 0000h does not necessarily indicate a successful request;
  1654.       check the status word at offset 000Eh of the request block too
  1655. SeeAlso: AX=0004h/SF=000Fh
  1656.  
  1657. Format of VINES Function 0004h/Subfunction 000Eh request block:
  1658. Offset    Size    Description    (Table 2665)
  1659.  00h    WORD    000Eh (subfunction "Get Access Rights List")
  1660.  02h    BYTE    drive number (0=default, 1=A, ...)
  1661.  03h    BYTE    reserved
  1662.  04h    DWORD    pointer to path specification (drive letter ignored)
  1663.  08h    DWORD    pointer to ARL control block (see #2666)
  1664.  0Ch    WORD    buffer for number of ARL entries (1..5)
  1665.  0Eh    WORD    buffer for status (see #2667)
  1666.  
  1667. Format of ARL control block:
  1668. Offset    Size    Description    (Table 2666)
  1669.  00h 64    BYTEs    1st StreetTalk name (user, list, or service)
  1670.  40h    WORD    1st ARL
  1671.  42h 64    BYTEs    2nd StreetTalk name (user, list, or service)
  1672.  82h    WORD    2nd ARL
  1673.  84h 64    BYTEs    3rd StreetTalk name (user, list, or service)
  1674.  C4h    WORD    3rd ARL
  1675.  C6h 64    BYTEs    4th StreetTalk name (user, list, or service)
  1676. 106h    WORD    4th ARL
  1677. 108h 64    BYTEs    5th StreetTalk name (user, list, or service)
  1678. 148h    WORD    5th ARL
  1679.  
  1680. (Table 2667)
  1681. Values for VINES Get/Set Access Rights List status:
  1682.  0000h    successful
  1683.  0002h    file not found
  1684.  0003h    path not found
  1685.  003Ah    invalid operation
  1686.  0057h    invalid number of entries
  1687. --------N-610004SF000F-----------------------
  1688. INT 61 - Banyan VINES - SET ACCESS RIGHTS LIST (ARL)
  1689.     AX = 0004h subfn 000Fh
  1690.     DS:DX -> request block (see #2668)
  1691. Return: AX = status (see also #2649)
  1692.         0000h request has been processed
  1693. Desc:    Sets the owner, group, and extended access rights for the specified
  1694.       file or directory
  1695. Note:    A status of 0000h does not necessarily indicate a successful request;
  1696.       check the status word at offset 000Eh of the request block too
  1697.     If the number of ARL entries is less than 1 or greater than 5, error
  1698.       0057h (invalid number of entries) is returned
  1699. SeeAlso: AX=0004h/SF=000Eh
  1700.  
  1701. Format of VINES Function 0004h/Subfunction 000Fh request block:
  1702. Offset    Size    Description    (Table 2668)
  1703.  00h    WORD    000Fh
  1704.  02h    BYTE    drive number (0=default, 1=A, ...)
  1705.  03h    BYTE    reserved
  1706.  04h    DWORD    pointer to path specification (drive letter ignored)
  1707.  08h    DWORD    pointer to ARL control block (see #2666)
  1708.  0Ch    WORD    number of ARL entries (1..5)
  1709.  0Eh    WORD    buffer for status (see #2667)
  1710. --------N-610004SF0010-----------------------
  1711. INT 61 - Banyan VINES - FILE SERVICE CONTROL - ???
  1712.     AX = 0004h subfn 0010h
  1713.     DS:DX -> request block (see #2669)
  1714. Return: AX = status (see also #2649)
  1715.         0000h request has been processed
  1716. SeeAlso: AX=0004h/SF=000Fh
  1717.  
  1718. Format of VINES Function 0004h/Subfunction 0010h request block:
  1719. Offset    Size    Description    (Table 2669)
  1720.  00h    WORD    0010h
  1721.  02h    BYTE    drive number (0=default, 1=A, ...)
  1722.  03h    BYTE    reserved
  1723.  04h 64    BYTEs    ???
  1724.  44h 16    BYTEs    IPC port (see #2577 at AX=0001h"Sosock")
  1725. --------N-610004SF0013-----------------------
  1726. INT 61 - Banyan VINES - GET VALUE OF GLOBAL VARIABLE
  1727.     AX = 0004h subfn 0013h
  1728.     DS:DX -> request block (see #2670)
  1729. Return: AX = status (see also #2649)
  1730.         0000h successful
  1731.         0033h invalid request ID (returned if variable index out of range)
  1732. Desc:    Returns the value of the specified global variable
  1733. Note:    The data will be truncated if the specified buffer is not large enough.
  1734.       Check the length word in the request block to find out how many
  1735.       bytes should have been copied.
  1736. SeeAlso: AX=0004h/SF=0014h,AX=0006h
  1737.  
  1738. Format of request block:
  1739. Offset    Size    Description    (Table 2670)
  1740.  00h    WORD    0013h
  1741.  02h    WORD    variable index (0000h-001Fh) (see #2671)
  1742.  04h    WORD    buffer length (on exit set to # of bytes actually needed)
  1743.  06h    DWORD    far pointer to result buffer
  1744. SeeAlso: #2672
  1745.  
  1746. (Table 2671)
  1747. Values for variable indices:
  1748. Index    Length    Description
  1749.  0000h       1    ???
  1750.  0001h      16    StreetTalk port
  1751.  0002h       4    StreetTalk session handle
  1752.  0003h       6    colors
  1753.  0004h      64    StreetTalk name of currently logged in user
  1754.  0005h       0    old clear text password (not applicable)
  1755.  0006h       0    default group (not applicable)
  1756.  0007h       1    number of messages in message queue
  1757.  0008h       1    message flag
  1758.  0009h      16    TalkPort
  1759.  000Ah       2    TalkPort socket
  1760.  000Bh      64    StreetTalk name of mail service
  1761.  000Ch       2    message timeout
  1762.  000Dh       2    next message place
  1763.  000Eh     246    message queue (3 times 80 characters + 2 flag bytes)
  1764.  000Fh      14    system nonce
  1765.  0010h       2    failed login count
  1766.  0011h       1    new mail message received
  1767.  0012h       8    mail service capabilities
  1768.  0013h       3    printer port diverted
  1769.  0014h      32    international location
  1770.  0015h      16    IPC port of drive Z:
  1771.  0016h    1024    pointer to current directory table
  1772.  0017h       2    maximum number of file volume mappings
  1773.  0018h      24    routine to call back for messages (6 far pointers)
  1774.  0019h       4    current virtual machine
  1775.  001Ah      20    DOS redirector message bell tones
  1776.  001Bh       2    various flags used for internal communication
  1777.  001Ch       0    OS/2 client configuration (not applicable)
  1778.  001Dh       8    redirector/IFS file version
  1779.  001Eh       0    reserved (not applicable)
  1780.  001Fh       4    address of VVINESD.386 dispatch
  1781. --------N-610004SF0014-----------------------
  1782. INT 61 - Banyan VINES - SET VALUE OF GLOBAL VARIABLE
  1783.     AX = 0004h subfn 0014h
  1784.     DS:DX -> request block (see #2672)
  1785. Return: AX = status
  1786.         0000h successful
  1787.         0033h invalid request ID (returned if variable index out of range)
  1788. Desc:    Assigns a new value to the specified global variable
  1789. Note:    If the specified number of bytes to copy exceeds the size of the
  1790.       destination variable, nothing will be copied.
  1791. SeeAlso: AX=0004h/SF=0013h,AX=0006h
  1792.  
  1793. Format of request block:
  1794. Offset    Size    Description    (Table 2672)
  1795.  00h    WORD    0014h
  1796.  02h    WORD    variable index (0000h-001Fh) (see #2671)
  1797.  04h    WORD    number of bytes to copy
  1798.  06h    DWORD    far pointer to new value
  1799. SeeAlso: #2670
  1800. --------N-610004SF0016-----------------------
  1801. INT 61 - Banyan VINES - GET NUMBER OF OPEN FILES ON REMOTE DRIVE
  1802.     AX = 0004h subfn 0016h
  1803.     DS:DX -> request block (see #2673)
  1804. Return: AX = status
  1805.         0000h open file count returned in request block
  1806. Desc:    Counts the number of open files on the specified remote drive.
  1807. Note:    No error is returned if the specified drive number is invalid or points
  1808.       to a local drive. Use AX=0004h/SF=0006h to test if a given drive
  1809.       number is assigned to a remote drive.
  1810. SeeAlso: AX=0004h/SF=0006h
  1811.  
  1812. Format of request block:
  1813. Offset    Size    Description    (Table 2673)
  1814.  00h    WORD    0016h
  1815.  02h    BYTE    drive number (0=default, 1=A:, ...)
  1816.  03h    BYTE    reserved
  1817.  04h    WORD    buffer for open file count
  1818. SeeAlso: #2675
  1819. --------N-610004SF0018-----------------------
  1820. INT 61 - Banyan VINES - SET UNIDENTIFIED INTERNAL FLAG
  1821.     AX = 0004h subfn 0018h
  1822.     DS:DX -> request block (see #2674)
  1823. Return: AX = status
  1824.         0000h success
  1825. Desc:    Sets an unidentified BYTE variable in the redirector data segment to 1.
  1826. Note:    In the VINES 5.53 "REDIR4" redirector, this variable is located at
  1827.       DS:0B53.
  1828.  
  1829. Format of request block:
  1830. Offset    Size    Description    (Table 2674)
  1831.  00h    WORD    0018h
  1832. SeeAlso: #2675
  1833. --------N-610004SF001B-----------------------
  1834. INT 61 - Banyan VINES - UNIDENTIFIED DRIVE SPECIFIC FUNCTION
  1835.     AX = 0004h subfn 001Bh
  1836.     DS:DX -> request block (see #2675)
  1837. Return: AX = status
  1838.         0000h success
  1839.         0034h drive not connected
  1840.         0037h drive number out of range
  1841. Desc:    The purpose of this function is not known.
  1842.  
  1843. Format of request block:
  1844. Offset    Size    Description    (Table 2675)
  1845.  00h    WORD    001Bh
  1846.  02h    BYTE    drive number (0=default, 1=A:, ...)
  1847.  03h    BYTE    ???
  1848.  04h    WORD    ???
  1849.  06h    DWORD    far pointer to data area
  1850.  0Ah    WORD    ???
  1851.  0Ch    DWORD    far pointer to data area
  1852.  10h    WORD    buffer for result
  1853. SeeAlso: #2673,#2675
  1854. --------N-610004SF001C-----------------------
  1855. INT 61 - Banyan VINES - UNIDENTIFIED FUNCTION
  1856.     AX = 0004h subfn 001Ch
  1857.     DS:DX -> request block (see #2676)
  1858. Return: AX = status
  1859.         0000h success
  1860.         0057h invalid number of entries
  1861. Desc:    The purpose of this function is not known.
  1862.  
  1863. Format of request block:
  1864. Offset    Size    Description    (Table 2676)
  1865.  00h    WORD    001Ch
  1866.  02h    WORD    ???
  1867.  04h    WORD    ???
  1868.  06h    WORD    ???
  1869.  08h    WORD    ???
  1870.  0Ah    DWORD    far pointer to data area (14 bytes)
  1871. --------V-610004-----------------------------
  1872. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
  1873.     AX = 0004h
  1874. Range:    unknown
  1875. Notes:    Specify Mode is enabled by hot key (seeAlso below), and allows
  1876.       panning and zooming via the numeric keypad.
  1877.     INT 61 is the default interrupt; the actual interrupt number can be
  1878.       obtained by calling INT 16/AH=FFh
  1879.     not all vendors include the Tseng TSR which supports these functions
  1880. SeeAlso: AX=0000h"OPTIMA",AX=0007h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  1881. --------N-610005-----------------------------
  1882. INT 61 - Banyan VINES - PRINT SERVICE CONTROL
  1883.     AX = 0005h
  1884.     DS:DX -> request block (see #2677)
  1885. Return: AX = status
  1886.         0000h successful
  1887.         0001h network software not installed or incompatible
  1888. Notes:    This service is handled by the redirector
  1889.     The size of the request/result block depends on the selected function
  1890.       and the value at offset 04h.
  1891. SeeAlso: INT 2F/AX=D702h
  1892.  
  1893. Format of VINES request/result block for printer control:
  1894. Offset    Size    Description    (Table 2677)
  1895.  00h    WORD    function
  1896.         0201h "endspool" all data for a print job has been sent
  1897.               (no bytes returned)
  1898.         0202h "deassign" the virtual printer port
  1899.             Before the printer port is deassigned all data sent
  1900.               to it is endspooled.
  1901.               (no bytes returned)
  1902.         0205h "get_active" get currently active printer port
  1903.               (1 byte required for result)
  1904.             Returns:  - the currently active printer port (1-3) (0 if
  1905.                   there is none)
  1906.         0207h ??? purpose unknown; called periodically every second
  1907.         020Ch "get_bannertitle" gets the title which is printed on the
  1908.               banner page of a print job sent to the virtual port
  1909.               (16 bytes required for result)
  1910.             Returns:  - the null-terminated banner title
  1911.         020Eh "get_servicename" gets the name of the print service
  1912.               assigned to the virtual port
  1913.               (64 bytes required for result)
  1914.             Returns:  - the null-terminated print service name assigned
  1915.                   to the virtual port
  1916.         0210h "set_bannertitle" sets the title which is printed on the
  1917.               banner page of a print job sent to the virtual port
  1918.               (16 bytes required for input)
  1919.             Input:  - the null-terminated banner title (max 16 chars)
  1920.         0212h "set_servicename" sets the name of the print service
  1921.               assigned to the virtual port
  1922.               (64 bytes required for input)
  1923.             Input:  - the null-terminated print service name
  1924.                   (max 64 chars)
  1925.         0216h "get_job_paper_format" gets the paper format for
  1926.               subsequent print jobs
  1927.               (16 bytes required for result)
  1928.             Returns:  - the null-terminated paper format
  1929.         0217h "set_job_paper_format" sets the paper format for
  1930.               subsequent print jobs
  1931.               (16 bytes required for input)
  1932.             Input:  - the null-terminated paper format (max 16 chars)
  1933.  02h    WORD    number of active virtual port (1-3) (0 for function 0205h)
  1934.  04h    WORD    Offset into the request block from which additional input
  1935.           is to be read and/or at which the result is to be copied
  1936.           (if there is any). Therefore the smallest block size for a
  1937.           function which returns a result is
  1938.             this offset + the maximum number of returned bytes - 1
  1939.  06h    WORD    0000h
  1940. --------V-610005-----------------------------
  1941. INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
  1942.     AX = 0005h
  1943.     BX:CX -> buffer for window parameters (see #2678)
  1944. Range:    unknown
  1945. Notes:    INT 61 is the default interrupt; the actual interrupt number can be
  1946.       obtained by calling INT 16/AH=FFh
  1947.     not all vendors include the Tseng TSR which supports these functions
  1948. SeeAlso: AX=0000h"OPTIMA",AX=0003h"OPTIMA",AX=0006h"OPTIMA"
  1949. SeeAlso: INT 16/AH=FFh"OPTIMA"
  1950.  
  1951. Format of Optima 1024 window parameters:
  1952. Offset    Size    Description    (Table 2678)
  1953.  00h    WORD    X start of zoom window
  1954.  02h    WORD    Y start of zoom window
  1955.  04h    WORD    X end of zoom window
  1956.  06h    WORD    Y end of zoom window
  1957.  08h    WORD    current zoom factor
  1958.  0Ah    WORD    zoom offset start X
  1959.  0Ch    WORD    zoom offset start Y
  1960. --------V-610006-----------------------------
  1961. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
  1962.     AX = 0006h
  1963.     BX:CX -> zoom window description (see #2679)
  1964. Range:    unknown
  1965. Notes:    width of zoom window must be a multiple of the pixel replication (zoom)
  1966.       factor
  1967.     INT 61 is the default interrupt; the actual interrupt number can be
  1968.       obtained by calling INT 16/AH=FFh
  1969.     not all vendors include the Tseng TSR which supports these functions
  1970. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0005h"OPTIMA",AX=0008h"OPTIMA"
  1971. SeeAlso: INT 16/AH=FFh"OPTIMA"
  1972.  
  1973. Format of Optima 1024 zoom window description:
  1974. Offset    Size    Description    (Table 2679)
  1975.  00h    WORD    X start of zoom window
  1976.  02h    WORD    Y start of zoom window
  1977.  04h    WORD    X end of zoom window
  1978.  06h    WORD    Y end of zoom window
  1979. --------N-610006-----------------------------
  1980. INT 61 - Banyan VINES - GET ADDRESS OF GLOBAL VARIABLE
  1981.     AX = 0006h
  1982.     BX = bits 14..0: request ID (see #2680)
  1983.          bit  15:     result destination flag (0 for ES:BX, 1 for AX:BX)
  1984. Return: AX = status
  1985.         0000h successful
  1986.         000Bh invalid request
  1987.     ES:BX -> internal variable (bit 15 of BX was not set)
  1988.     AX:BX -> internal variable (bit 15 of BX was set)
  1989. Note:    This service is handled by the redirector
  1990. SeeAlso: AX=0004h/SF=0013h,AX=0004h/SF=0014h
  1991.  
  1992. (Table 2680)
  1993. Values for request IDs:
  1994. Request    Length    Description
  1995.  0000h       1    ???
  1996.  0001h      16    StreetTalk port
  1997.  0002h       4    StreetTalk session handle
  1998.  0003h       6    colors
  1999.  0004h      64    StreetTalk name of currently logged in user
  2000.  0005h       0    old clear text password (always returns error code 000Bh)
  2001.  0006h       0    default group (not applicable)
  2002.  0007h       1    message queue count
  2003.  0008h       1    message flag
  2004.  0009h      16    TalkPort
  2005.  000Ah       2    TalkPort socket
  2006.  000Bh      64    StreetTalk name of mail service
  2007.  000Ch       2    message timeout
  2008.  000Dh       2    next message place
  2009.  000Eh     246    message queue
  2010.  000Fh      14    system nonce
  2011.  0010h       2    failed login count
  2012.  0011h       1    new mail message received
  2013.  0012h       8    mail capabilities
  2014.  0013h       3    printer port diverted
  2015.  0014h      32    international location
  2016.  0015h      16    IPC port of drive Z:
  2017.  0016h    1024    pointer to current directory table
  2018.  0017h       2    maximum number of file volume mappings
  2019.  0018h      24    routine to call back for messages
  2020.  0019h       4    current virtual machine
  2021.  001Ah      20    DOS redirector message bell tones
  2022.  001Bh       2    various flags used for internal communication
  2023.  001Ch       0    OS/2 client configuration (always returns error code 000Bh)
  2024.  001Dh       8    redirector/IFS file version
  2025.  001Eh       0    reserved (always returns error code 000Bh)
  2026.  001Fh       4    address of VVINESD.386 dispatch
  2027. --------V-610007-----------------------------
  2028. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
  2029.     AX = 0007h
  2030. Return: AX = current state (0000h/0001h)
  2031. Desc:    returns the current toggle state of the application (END) key in
  2032.       specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD
  2033.       calls INT 61/AX=0001h every time the crosshair cursor moves.
  2034. Notes:    In specify mode, the END key has been reserved for applications.
  2035.     INT 61 is the default interrupt; the actual interrupt number can be
  2036.       obtained by calling INT 16/AH=FFh
  2037.     not all vendors include the Tseng TSR which supports these functions
  2038. SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0004h"OPTIMA"
  2039. SeeAlso: INT 16/AH=FFh"OPTIMA",INT 7A/AX=0001h"AutoCAD"
  2040. --------N-610007BX0000-----------------------
  2041. INT 61 - Banyan VINES - RECONNECT TO STREETTALK
  2042.     AX = 0007h
  2043.     BX = 0000h
  2044. Return: AX = status (see #2681)
  2045. SeeAlso: AX=0007h/BX=0002h
  2046.  
  2047. (Table 2681)
  2048. Values for VINES function status:
  2049.  0000h    successful
  2050.  0001h    requested handler not installed or incompatible
  2051.  000Bh    service busy
  2052.  000Ch    invalid request ID
  2053.  03E9h    incorrect name syntax
  2054.  03EAh    organization name too long
  2055.  03EBh    group name too long
  2056.  03ECh    item name too long
  2057.  03EDh    StreetTalk name too long
  2058.  03F3h    organization not found
  2059.  03F4h    group not found
  2060.  03F5h    StreetTalk name not found
  2061.  03F8h    not a StreetTalk name
  2062.  0409h    modify access denied
  2063.  040Dh    appropriate StreetTalk name unavailable
  2064.  0411h    all matching names have been returned
  2065.  0412h    some groups unavailable, all available matches returned
  2066. --------N-610007BX0001-----------------------
  2067. INT 61 - Banyan VINES - GET MM PORT FOR A SERVICE
  2068.     AX = 0007h
  2069.     BX = 0001h
  2070.     DS:DX -> StreetTalk service name (64 bytes)
  2071.     DS:DI -> 16-byte buffer for IPC port (see #2577 at AX=0001h"Sosock")
  2072. Return: AX = status (see #2681)
  2073. Notes:    This function calls AX=0007/BX=0002h with the port count set to 1 and
  2074.       the port type set to 00h
  2075. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=000Ah
  2076. --------N-610007BX0002-----------------------
  2077. INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
  2078.     AX = 0007h
  2079.     BX = 0002h
  2080.     DS:DX -> StreetTalk service name
  2081.     DS:DI -> port record block (see #2682)
  2082. Return: AX = status (see #2681)
  2083. Note:    if the requested number of ports is greater than five, it will be reset
  2084.       to five
  2085. SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0003h,AX=0007h/BX=0004h
  2086. SeeAlso: AX=0007h/BX=000Ah
  2087.  
  2088. Format of VINES port record block:
  2089. Offset    Size    Description    (Table 2682)
  2090.  00h    WORD    (call) number of 17-byte elements (01h-05h) to be filled
  2091.  02h    BYTE    (call) port type for first port
  2092.  03h 16 BYTEs    (ret) port (see #2577)
  2093.  13h    BYTE    (call) port type for second port
  2094.  14h 16 BYTEs    (ret) port (see #2577)
  2095.  24h    BYTE    (call) port type for third port
  2096.  25h 16 BYTEs    (ret) port (see #2577)
  2097.  35h    BYTE    (call) port type for fourth port
  2098.  36h 16 BYTEs    (ret) port (see #2577)
  2099.  46h    BYTE    (call) port type for fifth port
  2100.  47h 16 BYTEs    (ret) port (see #2577)
  2101.  57h    BYTE    reserved
  2102. SeeAlso: #2684
  2103. --------N-610007BX0003-----------------------
  2104. INT 61 - Banyan VINES - FIND A SERVICE
  2105.     AX = 0007h
  2106.     BX = 0003h
  2107.     DS:DX -> port control block (see #2683)
  2108. Return: AX = status (see AX=0007h/BX=0000h)
  2109. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=0005h
  2110.  
  2111. Format of port control block:
  2112. Offset    Size    Description    (Table 2683)
  2113.  00h    WORD    ???
  2114.  02h    WORD    ???
  2115.  04h 16    BYTEs    IPC port (see #2577 at AX=0001h"Sosock")
  2116.  14h  5    WORDs    ???
  2117. SeeAlso: #2689
  2118. --------N-610007BX0004-----------------------
  2119. INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
  2120.     AX = 0007h
  2121.     BX = 0004h
  2122.     DS:DX -> StreetTalk name of service (max 64 bytes)
  2123.     DS:DI -> port record block (see #2684)
  2124. Return: AX = status (see #2681)
  2125. SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0003h,AX=0007h/BX=000Ah
  2126.  
  2127. Format of VINES port record block:
  2128. Offset    Size    Description    (Table 2684)
  2129.  00h    WORD    number of 17-byte elements
  2130.  02h    BYTE    port type for first port
  2131.  03h 16 BYTEs    first IPC port (see #2577)
  2132.  13h    BYTE    port type for second port
  2133.  14h 16 BYTEs    second IPC port (see #2577)
  2134.  24h    BYTE    port type for third port
  2135.  25h 16 BYTEs    third IPC port (see #2577)
  2136.  35h    BYTE    port type for fourth port
  2137.  36h 16 BYTEs    fourth IPC port (see #2577)
  2138.  46h    BYTE    port type for fifth port
  2139.  47h 16 BYTEs    fifth IPC port (see #2577)
  2140.  57h    BYTE    reserved
  2141. SeeAlso: #2682
  2142. --------N-610007BX0005-----------------------
  2143. INT 61 - Banyan VINES - GET USER NAME
  2144.     AX = 0007h
  2145.     BX = 0005h
  2146.     DS:DX -> 64-byte buffer for user's StreetTalk name
  2147. Return: AX = status (see also #2681)
  2148.         0000h successful
  2149.         0001h network software not installed or incompatible
  2150. Note:    if no user logged in, first byte of returned name will be 00h
  2151. SeeAlso: AX=0007h/BX=0007h
  2152. --------N-610007BX0006-----------------------
  2153. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
  2154.     AX = 0007h
  2155.     BX = 0006h
  2156.     SI = error code (>100)
  2157.     DS:DX -> 80-byte buffer for error text
  2158. Return: AX = status (see also #2681)
  2159.         0000h successful
  2160.         0001h network software not installed or incompatible
  2161. --------N-610007BX0007-----------------------
  2162. INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
  2163.     AX = 0007h
  2164.     BX = 0007h
  2165.     DS:DX -> NiceName block (see #2685)
  2166. Return: AX = status (see #2681)
  2167. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h
  2168.  
  2169. Format of VINES NiceName block:
  2170. Offset    Size    Description    (Table 2685)
  2171.  00h    WORD    type of name
  2172.         0064h (100) organization
  2173.         00C8h (200) group
  2174.         012Ch (300) item
  2175.  02h    WORD    pointer to ASCIZ input name
  2176.  04h    WORD    pointer to 64-byte buffer for output name
  2177. SeeAlso: #2686
  2178. --------N-610007BX0008-----------------------
  2179. INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
  2180.     AX = 0007h
  2181.     BX = 0008h
  2182.     DS:DX -> enumerate block (see #2686)
  2183. Return: AX = status (see also #2681)
  2184.         0000h successful
  2185.         0411h all matching names have been returned
  2186.         0412h some groups unavailable, all available matches returned
  2187. Note:    each program using this call should continue until a nonzero status
  2188.       is returned; otherwise, some resources will not be freed for several
  2189.       hours
  2190. SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0007h,AX=0007h/BX=0009h
  2191.  
  2192. Format of VINES enumerate block:
  2193. Offset    Size    Description    (Table 2686)
  2194.  00h    WORD    return code
  2195.  02h    WORD    pointer to pattern string
  2196.  04h    WORD    enumerate type
  2197.         0064h (100) organization
  2198.         00C8h (200) group
  2199.         012Ch (300) item
  2200.  06h    WORD    enumerate class
  2201.         0000h unspecified (return all matching items)
  2202.         0001h user names
  2203.         0002h service names
  2204.         0003h list names
  2205.         0004h nicknames
  2206.  08h    WORD    pointer to category criteria block (see #2687) or 0
  2207.  0Ah    WORD    pointer to array of 64-byte returned names
  2208.  0Ch    WORD    number of names returned
  2209.  0Eh  6 BYTEs    reserved for subsequent enumerated calls (set to zeros on first
  2210.           call)
  2211. SeeAlso: #2685
  2212.  
  2213. Format of category criteria block:
  2214. Offset    Size    Description    (Table 2687)
  2215.  00h    WORD    exclude flag
  2216.         0000h return only items with the specified categories
  2217.         0001h return all items except those with the given categories
  2218.  02h    WORD    number of categories (max 5, 0000h = match all categories)
  2219.  04h    WORD    category 1 value (see #2688)
  2220.  06h    WORD    category 2 value
  2221.  08h    WORD    category 3 value
  2222.  0Ah    WORD    category 4 value
  2223.  0Ch    WORD    category 5 value
  2224. SeeAlso: #2686
  2225.  
  2226. (Table 2688)
  2227. Values for common VINES service categories:
  2228.  0001h    server service
  2229.  0002h    file service
  2230.  0003h    print service
  2231.  0004h    mail service
  2232.  0005h    StreetTalk
  2233.  0006h    time service
  2234.  0007h    FTP service
  2235.  0008h    semaphore service
  2236.  0009h    3270/SNA service
  2237.  000Ah    terminal emulation service
  2238.  000Bh    asynchronous terminal service
  2239.  000Ch    NETBIOS service
  2240.  000Dh    PC-based service
  2241.  000Eh    BSC service
  2242.  000Fh    APPC service
  2243.  0010h    NM service
  2244.  0011h    VS service
  2245.  0012h    POP service
  2246.  0013h    AFP service
  2247.  0014h    VCS service
  2248.  0015h    EMS service
  2249.  0016h    LN service
  2250.  0017h    BS service
  2251.  0023h    RIPL service
  2252.  0064h    ADM service
  2253. SeeAlso: #2687
  2254. --------N-610007BX0009-----------------------
  2255. INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING (SELECTED PORT)
  2256.     AX = 0007h
  2257.     BX = 0009h
  2258.     SI = error code
  2259.     DS:DX -> 80-byte buffer for error text
  2260.     DS:DI -> IPC port (16 bytes; see AX=0001h#"Sosock" for port format)
  2261. Return: AX = status (see AX=0007h/BX=0000h)
  2262. Note:    Same as AX=0007h/BX=0006h, except IPC port is specified explicitly
  2263. SeeAlso: AX=0007h/BX=0006h
  2264. --------N-610007BX000A-----------------------
  2265. INT 61 - Banyan VINES - internal, OS/2 only - GET MANY PORTS FOR SERVICE
  2266.     AX = 0007h
  2267.     BX = 000Ah
  2268.     DS:DX -> port control block (see #2689)
  2269. Return: AX = status (see AX=0007h/BX=0000h)
  2270. Note:    This function cannot be called from applications, as the DS register
  2271.       is checked against the redirector data segment address (status code
  2272.       0001h will be returned if DS doesn't match)
  2273. SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0002h,AX=0007h/BX=0004h
  2274.  
  2275. Format of port control block:
  2276. Offset    Size    Description    (Table 2689)
  2277.  00h    WORD    ???
  2278.  02h    WORD    ???
  2279.  04h 16    BYTEs    IPC port (see #2577 at AX=0001h"Sosock")
  2280.  14h 14 WORDs    ???
  2281. SeeAlso: #2683
  2282. --------V-610008-----------------------------
  2283. INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
  2284.     AX = 0008h
  2285.     BX = X start of zoom offset
  2286.     CX = Y start of zoom offset
  2287. Desc:    specifies the first byte of video memory to appear in the zoom window
  2288. Range:    unknown
  2289. Notes:    INT 61 is the default interrupt; the actual interrupt number can be
  2290.       obtained by calling INT 16/AH=FFh
  2291.     not all vendors include the Tseng TSR which supports these functions
  2292. SeeAlso: AX=0000h"OPTIMA",AX=0006h"OPTIMA",INT 16/AH=FFh"OPTIMA"
  2293. --------N-610008BX0000-----------------------
  2294. INT 61 - Banyan VINES - TALKPORT SERVICE - GET HANDLER ADDRESS
  2295.     AX = 0008h
  2296.     BX = 0000h
  2297. Return: AX = status
  2298.         0000h successful
  2299.     ES:DX = far pointer to handler
  2300. Desc:    The TalkPort is a facility to display event messages (e.g. mail
  2301.       received, printing on a local printer, ...) on the screen
  2302. Note:    This service is handled by the redirector
  2303. SeeAlso: AX=0008h/BX=0001h,AX=0008h/BX=0002h
  2304. --------N-610008BX0001-----------------------
  2305. INT 61 - Banyan VINES - TALKPORT SERVICE - SET HANDLER ADDRESS
  2306.     AX = 0008h
  2307.     BX = 0001h
  2308.     ES:DX -> new handler
  2309. Return: AX = status
  2310.         0000h successful
  2311. SeeAlso: AX=0008h/BX=0000h
  2312. --------N-610008BX0002-----------------------
  2313. INT 61 - Banyan VINES - TALKPORT SERVICE - POST MESSAGE ON LOCAL DISPLAY
  2314.     AX = 0008h
  2315.     BX = 0002h
  2316.     CX = message display flags (see #2690)
  2317.     DS:DX -> ASCIZ string to display (only first 80 chars used)
  2318. Return: AX = status
  2319.         0000h successful
  2320.         000Bh message display function currently busy
  2321.         000Ch message queue full
  2322. Notes:    queues up to three messages to be displayed on the bottom line
  2323.     This service is handled by the redirector
  2324.     In a DOS session, TalkPort messages are displayed on display line 25;
  2325.       in a Windows session, TalkPort messages are displayed in dialog boxes
  2326. SeeAlso: AX=0008h/BX=0000h,AX=0008h/BX=0003h
  2327.  
  2328. Bitfields for VINES message display flags:
  2329. Bit(s)    Description    (Table 2690)
  2330.  0    message will remain on screen until user presses ^X
  2331.  1    ring bell after displaying message
  2332.  2    blink
  2333. --------N-610008BX0003-----------------------
  2334. INT 61 - Banyan VINES - TALKPORT SERVICE - INTERCEPT VINES 25th-LINE MESSAGES
  2335.     AX = 0008h
  2336.     BX = 0003h
  2337.     DS:DX -> request block (see #2691)
  2338. Return: AX = status
  2339.         0000h successful
  2340.         0001h network software not installed or incompatible
  2341. Notes:    message handler should not call BIOS or DOS functions, and should
  2342.       either call next handler or simply return
  2343.     to stop intercepting messages, set prev and next request blocks to
  2344.       point at each other
  2345. SeeAlso: AX=0008h/BX=0002h
  2346.  
  2347. Format of VINES request block for 25-th line messages:
  2348. Offset    Size    Description    (Table 2691)
  2349.  00h    DWORD    pointer to user-written message handler
  2350.  04h    DWORD    pointer to next request block (filled in by VINES)
  2351.  08h    DWORD    pointer to previous request block (filled in by VINES)
  2352.  0Ch    DWORD    pointer to message storage area (filled by VINES) (see #2692)
  2353.  
  2354. Format of message storage area:
  2355. Offset    Size    Description    (Table 2692)
  2356.  00h 16 BYTEs    IPC port of message sender (see #2577)
  2357.  10h    BYTE    message flags
  2358.  11h    WORD    reserved
  2359.  13h    BYTE    length of message
  2360.  14h 80 BYTEs    message text
  2361. SeeAlso: #2691
  2362. --------N-610009-----------------------------
  2363. INT 61 - Banyan VINES - NETBIOS CLIENT SERVICE
  2364.     AX = 0009h
  2365.     other parameters, if any, unknown
  2366. --------N-61000A-----------------------------
  2367. INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
  2368.     AX = 000Ah
  2369. Note:    either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
  2370.       which is loaded second.  The first interface loaded will use AX=0002h
  2371. SeeAlso: INT 61/AX=0002h
  2372. --------N-61000B-----------------------------
  2373. INT 61 - Banyan VINES - SEMAPHORE SERVICE
  2374.     AX = 000Bh
  2375.     other parameters, if any, unknown
  2376. --------N-61000C-----------------------------
  2377. INT 61 - Banyan VINES - 3270 KEYBOARD HANDLER
  2378.     AX = 000Ch
  2379.     other parameters, if any, unknown
  2380. --------N-61000D-----------------------------
  2381. INT 61 - Banyan VINES - T3270 SERVICE FUNCTION
  2382.     AX = 000Dh
  2383.     other parameters, if any, unknown
  2384. --------N-61000E-----------------------------
  2385. INT 61 - Banyan VINES - ENHANCED 3270 SERVICE
  2386.     AX = 000Eh
  2387.     other parameters, if any, unknown
  2388. --------N-61000F-----------------------------
  2389. INT 61 - Banyan VINES - VINES SOCKET API (FAR DATA)
  2390.     AX = 000Fh
  2391.     CX:BX -> request block (see #2693)
  2392.     DX = application's data segment (should be = CX)
  2393.     ES = DS
  2394. Return: AX = status
  2395.         0000h successful
  2396.         0099h invalid operation
  2397.         00A5h resource not available
  2398. Desc:    StreetTalk access with session handles
  2399. Notes:    This service is handled by the adapter driver
  2400.     The request dispatch table contains dummy entries for subfunctions
  2401.       06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
  2402.       (invalid operation) in the request block's result buffer
  2403.     This interface does the same as the corresponding AX=0001h interface,
  2404.       but with a slightly modified request block structure (i.e it allows
  2405.       FAR parameter block pointers) and without expecting DS=0001h
  2406.     Some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
  2407.       VINES 5.53) ignore the value in CX and use the value from DX instead
  2408. SeeAlso: AX=0001h/SF=0001h,AX=000Fh/SF=0001h
  2409.  
  2410. Format of VINES Socket request block:
  2411. Offset    Size    Description    (Table 2693)
  2412.  00h    WORD    subfunction number (01h-16h)
  2413.  02h    WORD    magic number (FEFEh)
  2414.  04h    WORD    buffer for return code (set to 0 before calling)
  2415.  06h    WORD    reserved (will be set to client DS)
  2416.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  2417.  0Ah    DWORD    far pointer to parameter block
  2418.  0Eh    WORD    StreetTalk handle
  2419. SeeAlso: #2573 at INT 61/AX=0001h
  2420. --------N-61000FSF0001-----------------------
  2421. INT 61 - Banyan VINES - OPEN SOCKET
  2422.     AX = 000Fh subfn 0001h
  2423.     CX:BX -> request block (see #2694)
  2424.     DX = application's data segment (should be = CX)
  2425.     ES = DS
  2426. Return: AX = status
  2427.         0000h successful
  2428.         00A5h resource not available
  2429. Desc:    Opens a socket and returns a socket handle
  2430.  
  2431. Format of request block:
  2432. Offset    Size    Description    (Table 2694)
  2433.  00h    WORD    0001h
  2434.  02h    WORD    magic number (FEFEh)
  2435.  04h    WORD    buffer for return code (set to 0 before calling)
  2436.  06h    WORD    reserved (will be set to client DS)
  2437.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  2438.  0Ah    DWORD    far pointer to parameter block (see #2695)
  2439.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  2440.  
  2441. Format of parameter block:
  2442. Offset    Size    Description    (Table 2695)
  2443.  00h    WORD    reserved
  2444.  02h    WORD    address family (0003h = VINES)
  2445.  04h    WORD    socket type (0001h = IPC, 0002h = SPP)
  2446.  06h    WORD    protocol number (FFFFh = default protocol)
  2447.  08h    WORD    reserved
  2448.  0Ah    WORD    local port number (0 = transient, 1..1FFh = well-known port)
  2449.  0Ch    DWORD    far pointer to socket handle buffer (2 bytes)
  2450.  10h    DWORD    far pointer to IPC port buffer (16 bytes)
  2451. SeeAlso: #2694
  2452. --------N-61000FSF0002-----------------------
  2453. INT 61 - Banyan VINES - SEND MESSAGE ON A SOCKET
  2454.     AX = 000Fh subfn 0002h
  2455.     CX:BX -> request block (see #2696)
  2456.     DX = application's data segment (should be = CX)
  2457.     ES = DS
  2458. Return: AX = status
  2459.         0000h successful
  2460.         00A5h resource not available
  2461. Desc:    send data to a socket identified by its socket handle
  2462.  
  2463. Format of request block:
  2464. Offset    Size    Description    (Table 2696)
  2465.  00h    WORD    0002h
  2466.  02h    WORD    magic number (FEFEh)
  2467.  04h    WORD    buffer for return code (set to 0 before calling)
  2468.  06h    WORD    reserved (will be set to client DS)
  2469.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  2470.  0Ah    DWORD    far pointer to parameter block (see #2697)
  2471.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  2472.  
  2473. Format of parameter block:
  2474. Offset    Size    Description    (Table 2697)
  2475.  00h    WORD    buffer for estimated communication cost in 220 msec ticks
  2476.  02h    WORD    buffer for return code (set to 0 before calling)
  2477.  04h    WORD    socket handle
  2478.  06h    DWORD    far pointer to IPC/SPP message buffer
  2479.  0Ah    WORD    length of IPC/SPP message buffer
  2480.  0Ch    WORD    option flags
  2481.         bit 0: asynchronous communication
  2482.         bit 1: reliable message
  2483.         bit 3: end of message
  2484.         bit 4: vectored I/O
  2485.  0Eh 16    BYTEs    socket address (IPC port of source)
  2486.  1Eh    WORD    not used (set to 0 before calling)
  2487.  20h    WORD    SPP connection id (0 for IPC messages)
  2488.  22h    WORD    request type (1 = data, 2 = connect SPP, 3 = disconnect SPP)
  2489. SeeAlso: #2696
  2490. --------N-61000FSF0004-----------------------
  2491. INT 61 - Banyan VINES - CLOSE SOCKET
  2492.     AX = 000Fh subfn 0004h
  2493.     CX:BX -> request block (see #2698)
  2494.     DX = application's data segment (should be = CX)
  2495.     ES = DS
  2496. Return: AX = status
  2497.         0000h successful
  2498.         00A5h resource not available
  2499. Desc:    Closes a socket identified by its socket handle
  2500.  
  2501. Format of request block:
  2502. Offset    Size    Description    (Table 2698)
  2503.  00h    WORD    0004h
  2504.  02h    WORD    magic number (FEFEh)
  2505.  04h    WORD    buffer for return code (set to 0 before calling)
  2506.  06h    WORD    reserved (will be set to client DS)
  2507.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  2508.  0Ah    DWORD    far pointer to socket handle (2 bytes)
  2509.  0Eh    WORD    process handle (see AX=000Fh/SF=0008h)
  2510. --------N-61000FSF0008-----------------------
  2511. INT 61 - Banyan VINES - GET PROCESS HANDLE
  2512.     AX = 000Fh subfn 0008h
  2513.     CX:BX -> request block (see #2699)
  2514.     DX = application's data segment (should be = CX)
  2515.     ES = DS
  2516. Return: AX = status
  2517.         0000h successful
  2518.         00A5h resource not available
  2519. Desc:    Returns a process handle to be used in other request blocks
  2520. Notes:    This function is a prerequisite to all AX=000Fh subfunctions which
  2521.       expect a process handle in the request block
  2522.     Although subsequent calls from the same application return different
  2523.       process handles, there seem to be no restrictions on how many times
  2524.       an application may call this function (in fact, the code in the VINES
  2525.       toolkit library always calls it before issueing other AX=000Fh calls)
  2526.  
  2527. Format of request block:
  2528. Offset    Size    Description    (Table 2699)
  2529.  00h    WORD    0008h
  2530.  02h    WORD    magic number (FEFEh)
  2531.  04h    WORD    buffer for return code (set to 0 before calling)
  2532.  06h    WORD    reserved
  2533.  08h    WORD    reserved (obviously not used; set to 0 before calling)
  2534.  0Ah    DWORD    process type (1 = transient, 2 = resident; destroyed on exit)
  2535.  0Eh    WORD    buffer for process handle
  2536. --------N-610010-----------------------------
  2537. INT 61 - Banyan VINES - INTERFACE TO NBNS
  2538.     AX = 0010h
  2539.     other parameters, if any, unknown
  2540. --------N-6101-------------------------------
  2541. INT 61 - Banyan VINES - CHECK SERVICE
  2542.     AH = 01h
  2543.     AL = service ID (see #2700)
  2544. Return: AX = status
  2545.         0000h installed
  2546.         0001h not installed
  2547.         0002h invalid ID
  2548.         0003h invalid function
  2549. Note:    Only the offset part of the service pointer is checked for a nonzero
  2550.       value
  2551. SeeAlso: AH=00h,AH=02h"VINES",AH=03h"VINES"
  2552.  
  2553. (Table 2700)
  2554. Values for VINES service ID:
  2555.  01h    communications
  2556.  02h    primary 3270 emulation
  2557.  03h    async terminal emulation
  2558.  04h    file deflection
  2559.  05h    print service control
  2560.  06h    get address of something
  2561.  07h    StreetTalk access service
  2562.  08h    environment
  2563.  09h    NETBIOS client service
  2564.  0Ah    secondary 3270 emulation
  2565.  0Bh    semaphore service
  2566.  0Ch    3270 emulation active status
  2567.  0Dh    T3270 keyboard interrupt simulator
  2568.  0Eh    enhanced 3270 service
  2569.  0Fh    comm Windows entry point
  2570.  10h    interface to NBNS
  2571. --------N-6101--BX0000-----------------------
  2572. INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
  2573.     AH = 01h
  2574.     BX = 0000h
  2575.     DH = tag number
  2576.     DL = device number
  2577.     DS:SI -> buffer to send to kernel
  2578.     ES:DI -> integer containing size of buffer
  2579. Return: CF clear if successful
  2580.     CF set on error
  2581.         AX = error code (see #2568 at INT 61"FTP Software")
  2582. Range:    INT 20 to INT E0, selected by configuration
  2583. Notes:    there are a large number of tags available; the items returned
  2584.       all refer to local kernel configuration, and are not needed in
  2585.       normal use.
  2586.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  2587. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=02h"PC/TCP"
  2588. --------N-6102-------------------------------
  2589. INT 61 - Banyan VINES - GET REVISION NUMBER
  2590.     AH = 02h
  2591.     DS:DX -> 2-byte buffer for result
  2592. Return: AX = 0000h installed
  2593.         DS:DX buffer contains revision number as
  2594.         10000d * major_ver + 100d * minor_ver + patch_revision
  2595. SeeAlso: AH=01h"VINES",AH=04h"VINES",AH=07h"VINES"
  2596. --------N-6102--BX0000-----------------------
  2597. INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
  2598.     AH = 02h
  2599.     BX = 0000h
  2600.     DH = tag number
  2601.     DL = device number
  2602.     DS:SI -> buffer for result (up to 48 bytes for version <= 2.2)
  2603.     ES:DI -> integer containing size of buffer
  2604. Return: CF clear if successful
  2605.         Data loaded into specified buffer, and size value altered
  2606.     CF set on error
  2607.         AX = error code (see #2568 at INT 61"FTP Software")
  2608. Range:    INT 20 to INT E0, selected by configuration
  2609. Notes:    there are a large number of tags available; the items returned
  2610.       all refer to local kernel configuration, and are not needed in
  2611.       normal use.
  2612.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  2613. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  2614. --------N-6103-------------------------------
  2615. INT 61 - Banyan VINES - INSTALL SERVICE HANDLER
  2616.     AH = 03h
  2617.     AL = service ID (see #2700)
  2618.     DS:DX -> new service handler
  2619. Return: AX = 0000h successful
  2620. SeeAlso: AH=00h,AH=01h"VINES",AH=02h"VINES",AH=05h"VINES"
  2621. --------N-6104-------------------------------
  2622. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE
  2623.     AH = 04h
  2624.     DS:DX -> 2-byte buffer containing the VINES revision number
  2625.         DS:DX buffer contains revision number as
  2626.         10000d * major_ver + 100d * minor_ver + patch_revision
  2627. Return: AX = status
  2628.         0000h valid version
  2629.         0004h out of range
  2630. Note:    For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  2631. SeeAlso: AH=02h"VINES",AH=07h"VINES",AH=08h"VINES"
  2632. --------N-6105-------------------------------
  2633. INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
  2634.     AH = 05h
  2635.     BX = network descriptor
  2636. Return: CF clear if successful
  2637.         DX:AX = Internet address of ND
  2638.     CF set on error
  2639.         AX = error code (see #2568 at INT 61"FTP Software")
  2640. Range:    INT 20 to INT E0, selected by configuration
  2641. Notes:    the installation check consists of testing for the signature "TCPTSR"
  2642.       three bytes beyond the start of the interrupt handler
  2643. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP"
  2644. SeeAlso: INT 63/AH=25h"BW-TCP"
  2645. --------N-6105-------------------------------
  2646. INT 61 - Banyan VINES - READ PCCONFIG BYTES
  2647.     AH = 05h
  2648.     CX = number of bytes to copy
  2649.         (max. 0175h for VINES 4.00, max. 017Fh for VINES 4.10+)
  2650.     SI = offset of area to be copied (see #2701,#2702)
  2651. Return: AX = status
  2652.         0000h successful
  2653.         0004h out of range
  2654. Notes:    The PCCONFIG area is located in the code segment of the BANV handler
  2655.     To find out which PCCONFIG structure applies, call this function first
  2656.       with CX=0006h to get the VINES revision number
  2657. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=06h"VINES",AH=0Bh"VINES"
  2658.  
  2659. Format of PCCONFIG area (VINES 4.00):
  2660. Offset    Size    Description    (Table 2701)
  2661.  00h  6    BYTEs    VINES revision (ASCII, zero-padded)
  2662.  06h  2    BYTEs    NEWREV-number (ASCII, two digits)
  2663.  08h    WORD    hardware interrupt level
  2664.  0Ah    WORD    DMA channel
  2665.  0Ch    WORD    I/O address
  2666.  0Eh    DWORD    adapter ROM address (linear)
  2667.  12h    DWORD    adapter RAM address (linear)
  2668.  16h    WORD    BANV interrupt
  2669.  18h 32    BYTEs    default login group #1
  2670.  38h 32    BYTEs    default login group #2
  2671.  58h 32    BYTEs    default login group #3
  2672.  78h    WORD    semaphore locking support flag
  2673.  7Ah    WORD    extended StreetTalk flag
  2674.  7Ch    WORD    maximum number of file volumes
  2675.  7Eh    WORD    NetBIOS flag
  2676.  80h 60    BYTEs    default network adapter
  2677.  BCh 60    BYTEs    default communications driver
  2678.  F8h    WORD    maximum number of SPP connections
  2679.  FAh    WORD    maximum number of open sockets
  2680.  FCh    WORD    communications buffer size (10..60 KB)
  2681.  FEh 20    BYTEs    location directory on drive Z:
  2682. 112h 33    BYTEs    auxiliary configuration area #1 (see #2703)
  2683. 133h 33    BYTEs    auxiliary configuration area #2
  2684. 154h 33    BYTEs    auxiliary configuration area #3
  2685. SeeAlso: #2702
  2686.  
  2687. Format of PCCONFIG area (VINES 4.10+):
  2688. Offset    Size    Description    (Table 2702)
  2689.  00h  6    BYTEs    VINES revision (ASCII, zero-padded)
  2690.  06h  2    BYTEs    NEWREV-number (ASCII, two digits)
  2691.  08h    WORD    hardware interrupt level
  2692.  0Ah    WORD    DMA channel
  2693.  0Ch    WORD    I/O address
  2694.  0Eh    DWORD    adapter ROM address (linear)
  2695.  12h    DWORD    adapter RAM address (linear)
  2696.  16h    WORD    BANV interrupt
  2697.  18h 32    BYTEs    default login group #1
  2698.  38h 32    BYTEs    default login group #2
  2699.  58h 32    BYTEs    default login group #3
  2700.  78h    WORD    semaphore locking support flag
  2701.  7Ah    WORD    extended StreetTalk flag
  2702.  7Ch    WORD    named pipes support flag
  2703.  7Eh    WORD    maximum number of file volumes
  2704.  80h    WORD    NetBIOS flag
  2705.  82h 60    BYTEs    default network adapter
  2706.  BEh 60    BYTEs    default communications driver
  2707.  FAh    WORD    maximum number of SPP connections
  2708.  FCh    WORD    maximum number of open sockets
  2709.  FEh    WORD    communications buffer size (10..60 KB)
  2710. 100h    WORD    number of mailslots
  2711. 102h    WORD    maximum number of open files
  2712. 104h    WORD    maximum number of NetBIOS sessions
  2713. 106h    WORD    maximum number of NetBIOS commands
  2714. 108h 20    BYTEs    location directory on drive Z:
  2715. 11Ch 33    BYTEs    auxiliary configuration area #1 (see #2703)
  2716. 13Dh 33    BYTEs    auxiliary configuration area #2
  2717. 15Eh 33    BYTEs    auxiliary configuration area #3
  2718.  
  2719. Format of auxiliary configuration area:
  2720. Offset    Size    Description    (Table 2703)
  2721.  00h 16    BYTEs    item name (no zero terminator if length = 16)
  2722.  10h    BYTE    item value type (1=text, else numeric)
  2723.  11h 16    BYTEs    item value (string if type 1, else DWORD)
  2724. SeeAlso: #2701,#2702
  2725. --------N-6106-------------------------------
  2726. INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
  2727.     AH = 06h
  2728.     BX = network descriptor (must be allocated and open)
  2729.     DS:SI -> 38-byte buffer for interface statistics (see #2704)
  2730. Return: CF clear if successful
  2731.         buffer filled
  2732.     CF set on error
  2733.         AX = error code (see #2568)
  2734. Desc:    returns the statistics relevant to the particular network interface
  2735.        used by the specified network descriptor
  2736. Range:    INT 20 to INT E0, selected by configuration
  2737. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP"
  2738.  
  2739. Format of PC/TCP interface statistics:
  2740. Offset    Size    Description    (Table 2704)
  2741.  00h    WORD    interface class (e.g. 802.3)
  2742.  02h    WORD    type (manufacturer) of interface
  2743.  04h    WORD    interface number
  2744.  06h    DWORD    (big-endian) IP address of interface
  2745.  0Ah    DWORD    subnet mask
  2746.  0Eh    WORD    0001h if interface is up
  2747.  10h    DWORD    total packets received
  2748.  14h    DWORD    total packets sent
  2749.  18h    DWORD    receive errors
  2750.  1Ch    DWORD    send errors
  2751.  20h    WORD    length of local net address (e.g. 0006h for Ethernet)
  2752.  22h    DWORD    pointer to local net address
  2753. --------N-6106-------------------------------
  2754. INT 61 - Banyan VINES - GET PCCONFIG BASE ADDRESS
  2755.     AH = 06h
  2756.     DS:DX -> 4-byte buffer for far pointer to PCCONFIG area
  2757. Return: AX = 0000h successful
  2758. Note:    The PCCONFIG area is located in the code segment of the BANV handler
  2759. SeeAlso: AH=05h"VINES",AH=0Bh"VINES"
  2760. --------N-6107-------------------------------
  2761. INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
  2762.     AH = 07h
  2763.     BX = local network descriptor
  2764. Return: CF clear if successful
  2765.         AX = global network descriptor
  2766.     CF set on error
  2767.         AX = error code (see #2568)
  2768. Notes:    the new network descriptor can be accessed from all processes and is
  2769.       independent of DOS
  2770.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  2771. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  2772. SeeAlso: INT 61/AH=29h
  2773. --------N-6107-------------------------------
  2774. INT 61 - Banyan VINES - GET VINES REVISION NUMBER (LONG)
  2775.     AH = 07h
  2776.     DS:DX -> 4-byte buffer for result
  2777. Return: AX = 0000h successful
  2778.         DS:DX buffer contains revision number as
  2779.         10000d * major_ver + 100d * minor_ver + patch_revision
  2780. SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=08h"VINES"
  2781. --------b-6107-------------------------------
  2782. INT 61 - Atari Portfolio - FORMAT CREDIT CARD MEMORY
  2783.     AH = 07h
  2784.     AL = drive number (00h = A:,01h = B:)
  2785. Return: CF clear if successful
  2786.     CF set on error
  2787.         AH = error code (see #0144 at INT 13/AH=01h)
  2788. Note:    do not use this function to format the internal disk (drive number 02h)
  2789. SeeAlso: AH=00h"Portfolio",AH=08h"Portfolio",AH=09h"Portfolio"
  2790. --------N-6108-------------------------------
  2791. INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
  2792.     AH = 08h
  2793.     BX = network descriptor
  2794. Return: CF clear if successful
  2795.         AX = 0000h (BWPCTCP shim)
  2796.     CF set on error
  2797.         AX = error code (see #2568)
  2798. Range:    INT 20 to INT E0, selected by configuration
  2799. Note:    the descriptor will be closed and resources released.  If a stream
  2800.       descriptor, the protocol (FIN etc) is completed unless the
  2801.       non-blocking option has been set.
  2802. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP"
  2803. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  2804. --------N-6108-------------------------------
  2805. INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE (LONG)
  2806.     AH = 08h
  2807.     DS:DX -> 4-byte buffer containing the VINES revision number
  2808.         DS:DX buffer contains revision number as
  2809.         10000d * major_ver + 100d * minor_ver + patch_revision
  2810. Return: AX = status
  2811.         0000h valid version
  2812.         0004h out of range
  2813. Note:    For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
  2814. SeeAlso: AH=04h"VINES",AH=07h"VINES"
  2815. --------b-6108-------------------------------
  2816. INT 61 - Atari Portfolio - GET SIZE OF INTERNAL DISK
  2817.     AH = 08h
  2818. Return: AX = segment address of RAMdisk
  2819.     BX = size in KB
  2820. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=09h"Portfolio"
  2821. --------N-6109-------------------------------
  2822. INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
  2823.     AH = 09h
  2824. Return: CF clear
  2825. Range:    INT 20 to INT E0, selected by configuration
  2826. Notes:    this call performs function 08h on every non-global network descriptor.
  2827.       Global descriptors must be released individually.
  2828. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  2829. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  2830. --------N-6109-------------------------------
  2831. INT 61 - Banyan VINES - GET VALUE OF AN OS/2 BACKEND VARIABLE
  2832.     AH = 09h
  2833.     other parameters, if any, unknown
  2834. SeeAlso: AH=0Ah"VINES"
  2835. --------b-6109-------------------------------
  2836. INT 61 - Atari Portfolio - FORMAT INTERNAL DISK
  2837.     AH = 09h
  2838.     BX = desired size of disk in KB
  2839. Return: CF clear if successful
  2840.     CF set on error
  2841.         BX = maximum possible size in KB
  2842. Desc:    resize and erase the internal RAMdisk, then reboot the system
  2843. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=08h"Portfolio"
  2844. SeeAlso: AH=0Bh"Portfolio"
  2845. --------N-610A-------------------------------
  2846. INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
  2847.     AH = 0Ah
  2848.     ???
  2849. Return: ???
  2850. Notes:    this function is described as "unused" in the v2.05 and v2.2
  2851.       documentation
  2852.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  2853. SeeAlso: AH=0Bh
  2854. --------N-610A-------------------------------
  2855. INT 61 - Banyan VINES - SET VALUE OF AN OS/2 BACKEND VARIABLE
  2856.     AH = 0Ah
  2857.     other parameters, if any, unknown
  2858. SeeAlso: AH=09h"VINES"
  2859. --------N-610B-------------------------------
  2860. INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
  2861.     AH = 0Bh
  2862.     ???
  2863. Return: ???
  2864. Range:    INT 20 to INT E0, selected by configuration
  2865. Notes:    this function is described as "unused" in the v2.05 and v2.2
  2866.       documentation
  2867.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  2868. SeeAlso: AH=0Ah
  2869. --------N-610B-------------------------------
  2870. INT 61 - Banyan VINES - SET PCCONFIG IN BACKEND
  2871.     AH = 0Bh
  2872.     other parameters, if any, unknown
  2873. SeeAlso: AH=05h"VINES",AH=06h"VINES"
  2874. --------b-610B-------------------------------
  2875. INT 61 - Atari Portfolio - DETERMINE CCM VALIDITY
  2876.     AH = 0Bh
  2877.     AL = drive number (00h = A:,01h = B:)
  2878. Return: CF clear if successful (card present and correct)
  2879.     CF set on error
  2880.         AH = error code (see #0144 at INT 13/AH=01h)
  2881. SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=0Dh"Portfolio"
  2882. --------N-610C-------------------------------
  2883. INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
  2884.     AH = 0Ch
  2885.     BX = network descriptor or one of the following:
  2886.         FFFCh for kernel ICMP statistics (see #2708)
  2887.         FFFDh for kernel UDP statistics (see #2707)
  2888.         FFFEh for kernel IP statistics (see #2706)
  2889.         FFFFh for kernel TCP statistics (see #2705)
  2890.     DS:DX -> 64-byte buffer
  2891. Return: CF clear if successful
  2892.         buffer filled
  2893.     CF set on error
  2894.         AX = error code (see #2568)
  2895. Notes:    the fields filled in for a network descriptor depend on the protocol
  2896.       family used by that descriptor's connection
  2897.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  2898. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  2899.  
  2900. Format of PC/TCP kernel TCP statistics:
  2901. Offset    Size    Description    (Table 2705)
  2902.  00h 16 BYTEs    unused
  2903.  10h    DWORD    bytes sent
  2904.  14h    DWORD    bytes received
  2905.  18h  8 BYTEs    unused
  2906.  20h    DWORD    packets sent
  2907.  24h    DWORD    packets received
  2908.  28h    DWORD    bad checksums
  2909.  2Ch    DWORD    count of window ignored by remote
  2910.  30h    DWORD    timeouts
  2911.  34h    DWORD    resets
  2912.  38h    DWORD    duplicate packets
  2913.  3Ch    DWORD    retransmits
  2914. SeeAlso: #2706,#2707,#2708
  2915.  
  2916. Format of PC/TCP kernel IP statistics:
  2917. Offset    Size    Description    (Table 2706)
  2918.  00h  8 BYTEs    unused
  2919.  08h    DWORD    invalid IP header length errors
  2920.  0Ch    DWORD    protocol errors (unwanted packets)
  2921.  10h    DWORD    duplicate fragments received
  2922.  14h    DWORD    bad fragments received
  2923.  18h    DWORD    security errors
  2924.  1Ch    DWORD    count of bad IP addresses received
  2925.  20h    DWORD    packets sent
  2926.  24h    DWORD    packets received
  2927.  28h    DWORD    bad checksums received
  2928.  2Ch    DWORD    total IP protocol errors
  2929.  30h    DWORD    fragmentation errors
  2930.  34h    DWORD    IP packets discarded + bad security + bad fragments
  2931.  38h    DWORD    fragments received
  2932.  3Ch  4 BYTEs    unused
  2933. SeeAlso: #2705,#2707,#2708
  2934.  
  2935. Format of PC/TCP kernel UDP statistics:
  2936. Offset    Size    Description    (Table 2707)
  2937.  00h 28 BYTEs    unused
  2938.  1Ch    DWORD    packets dropped for lack of buffers
  2939.  20h    DWORD    packets sent
  2940.  24h    DWORD    packets received
  2941.  28h    DWORD    bad checksums
  2942.  2Ch    DWORD    port not listening errors
  2943.  30h  4 BYTEs    unused
  2944.  34h    DWORD    truncated receives
  2945.  38h  8 BYTEs    unused
  2946. SeeAlso: #2705,#2706,#2708
  2947.  
  2948. Format of PC/TCP kernel ICMP statistics:
  2949. Offset    Size    Description    (Table 2708)
  2950.  00h    DWORD    "TimeEx" sent
  2951.  04h    DWORD    "TimeEx" received
  2952.  08h    DWORD    "ParamProb" sent
  2953.  0Ch    DWORD    "ParamProb" received
  2954.  10h    DWORD    redirects received
  2955.  14h    DWORD    source quenches received
  2956.  18h    DWORD    ICMP Echo Requests ("ping") sent
  2957.  1Ch    DWORD    ICMP Echo Requests received
  2958.  20h    DWORD    packets sent
  2959.  24h    DWORD    packets received
  2960.  28h    DWORD    bad packets received
  2961.  2Ch    DWORD    "DestUn" received
  2962.  30h    DWORD    packet send errors
  2963.  34h    DWORD    "DestUn" sent
  2964.  38h    DWORD    ICMP Echo replies received
  2965.  3Ch    DWORD    ICMP Echo replies sent
  2966. SeeAlso: #2705,#2706,#2707
  2967. --------N-610D-------------------------------
  2968. INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
  2969.     AH = 0Dh
  2970.     BX = possible network descriptor
  2971. Return: CF clear if valid
  2972.     CF set on error
  2973.         AX = error code (see #2568 at INT 61"FTP Software")
  2974. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
  2975. SeeAlso: INT 61/AH=22h
  2976. --------b-610D-------------------------------
  2977. INT 61 - Atari Portfolio - GET SCREEN SIZE
  2978.     AH = 0Dh
  2979. Return: AX = physical screen size (AH=rows, AL=columns)
  2980.     DX = logical screen size (DH=rows, DL=columns)
  2981. SeeAlso: AH=00h"Portfolio",AH=0Bh"Portfolio",AH=0Eh"Portfolio"
  2982. --------N-610E-------------------------------
  2983. INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
  2984.     AH = 0Eh
  2985.     BX = maximum value of network descriptor for which to return info
  2986.     DS:DX -> 32-bit (max) array of bit flags for read readiness
  2987.     ES:DI -> 32-bit (max) array of bit flags for write readiness
  2988. Return: CF clear
  2989. Range:    INT 20 to INT E0, selected by configuration
  2990. Notes:    bits in the DS:DX buffer are set if the corresponding network
  2991.       descriptor may be read without blocking; bits in the ES:DI buffer
  2992.       are set if the corresponding network descriptor may be written
  2993.       without blocking.  This implies that the network descriptor has
  2994.       opened correctly and the protocol initialized.
  2995.     the installation check consists of testing for the signature "TCPTSR"
  2996.       three bytes beyond the start of the interrupt handler
  2997. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  2998. --------b-610E-------------------------------
  2999. INT 61 - Atari Portfolio - GET/SET SCREEN MODE
  3000.     AH = 0Eh
  3001.     AL = function
  3002.         00h get mode
  3003.         01h set mode
  3004.         DL = new mode (see #2709)
  3005. Return: DL = current/old mode
  3006. Note:    if changing the mode places the cursor position or virtual screen
  3007.       origin outside the displayed area, the screen origin will be reset
  3008.       to (0,0), the screen cleared, and the cursor position set to (0,0)
  3009. SeeAlso: AH=00h"Portfolio",AH=0Dh"Portfolio",AH=0Fh"Portfolio",INT 10/AH=00h
  3010.  
  3011. Bitfields for Atari Portfolio screen mode:
  3012. Bit(s)    Description    (Table 2709)
  3013.  0    40x8 mode instead of 80x25
  3014.  1    tracked mode
  3015.  7    graphics
  3016. Note:    the above bits are mutually exclusive
  3017. --------N-610F-------------------------------
  3018. INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
  3019.     AH = 0Fh
  3020. Return: CF clear
  3021.     AX = version (AH = major, AL = minor)
  3022.     BX = patch level
  3023. Notes:    patch levels are no longer used starting with version 2.10; instead,
  3024.       the minor version level is incremented.
  3025.     Beame&Whiteside's BWPCTCP v3.0a shim reports version 2.05, but does not
  3026.       set BX
  3027. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3028. --------b-610F-------------------------------
  3029. INT 61 - Atari Portfolio - GET/SET CURSOR MODE
  3030.     AH = 0Fh
  3031.     AL = function
  3032.         00h get mode
  3033.         01h set mode
  3034.         BL = new cursor mode
  3035.             00h cursor off
  3036.             01h underline
  3037.             02h block
  3038.         02h force mode (set size to reflect NumLock state)
  3039. Return: BL = current/old cursor mode
  3040. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=10h"Portfolio",INT 10/AH=01h
  3041. --------N-6110-------------------------------
  3042. INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
  3043.     AH = 10h
  3044. Return: CF clear if successful
  3045.     CF set on error
  3046.         AX = error code (see #2568 at INT 61"FTP Software")
  3047. Range:    INT 20 to INT E0, selected by configuration
  3048. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3049. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3050. --------b-6110-------------------------------
  3051. INT 61 - Atari Portfolio - GET/SET VIRTUAL SCREEN POSITION
  3052.     AH = 10h
  3053.     AL = function
  3054.         00h get position
  3055.         Return: DH,DL = current row,column
  3056.         01h set position
  3057.         DH = row
  3058.         DL = column
  3059. Desc:    get or specify the upper-left corner of the 40x8 window into the
  3060.       logical screen
  3061. SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=0Fh"Portfolio"
  3062. SeeAlso: AH=11h"Portfolio"
  3063. --------N-6111-------------------------------
  3064. INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
  3065.     AH = 11h
  3066. Return: CF clear
  3067.     AX = previous state
  3068.         0000h async calls were already disabled
  3069.         else  async calls were enabled
  3070. SeeAlso: INT 61"FTP Software",INT 61/AH=12h
  3071. --------b-6111-------------------------------
  3072. INT 61 - Atari Portfolio - MOVE VIRTUAL SCREEN ORIGIN
  3073.     AH = 11h
  3074.     AL = number of lines to move
  3075.     DL = direction of move (1=up, 2=down, 3=left, 4=right)
  3076. SeeAlso: AH=00h"Portfolio",AH=10h"Portfolio",AH=12h"Portfolio"
  3077. --------N-6112-------------------------------
  3078. INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
  3079.     AH = 12h
  3080. Return: CF clear
  3081.     AX = previous state
  3082.         0000h async calls were disabled
  3083.         else  async calls were already enabled
  3084. SeeAlso: INT 61"FTP Software",INT 61/AH=11h
  3085. --------b-6112-------------------------------
  3086. INT 61 - Atari Portfolio - SCREEN REFRESH
  3087.     AH = 12h
  3088. Return: nothing
  3089. Desc:    copy contents of video RAM to LCD controller
  3090. SeeAlso: AH=10h"Portfolio",AH=11h"Portfolio",AH=15h"Portfolio"
  3091. --------N-6113-------------------------------
  3092. INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
  3093.     AH = 13h
  3094.     BX = network descriptor (FFFFh for automatic net_getdesc)
  3095.     DX = protocol (see #2710)
  3096.     DS:SI -> buffer for "addr" structure (see #2711)
  3097. Return: CF clear if successful
  3098.         AX = network descriptor used or allocated
  3099.     CF set on error
  3100.         AX = error code (see #2568 at INT 61"FTP Software")
  3101. Notes:    resets the connection with AH=19h in various cases
  3102.     will wait for protocol on stream connections unless non-blocking was
  3103.       set with AH=20h
  3104. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h
  3105. SeeAlso: INT 63/AH=14h"BW-TCP"
  3106.  
  3107. (Table 2710)
  3108. Values for PC/TCP protocol:
  3109.  0001h    raw net (undocumented)
  3110.  0002h    raw IP
  3111.  0003h    datagram (UDP)
  3112.  0004h    stream (TCP)
  3113.  0005h    raw ICMP
  3114.  
  3115. Format of structure "addr":
  3116. Offset    Size    Description    (Table 2711)
  3117.  00h    DWORD    Internet address (network order)
  3118.  04h    WORD    remote socket number (network order)
  3119.  06h    WORD    local socket number (network order) 0000h means "you choose"
  3120.  08h    BYTE    protocol (see #2710)
  3121. --------N-6114-------------------------------
  3122. INT 61 Ou - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
  3123.     AH = 14h
  3124.     BX = network descriptor
  3125. Return: CF set
  3126.         AX = 0018h (see #2568 at INT 61"FTP Software")
  3127. Notes:    displays error message "Illegal system call!  Please upgrade your
  3128.       PCserver software" to standard output
  3129.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3130. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15h
  3131. --------N-6115-------------------------------
  3132. INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
  3133.     AH = 15h
  3134.     ???
  3135. Return: ???
  3136. Notes:    this function is described as "unused" in the v2.2 documentation
  3137.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3138. SeeAlso: INT 61/AH=0Bh,INT 61/AH=14h
  3139. --------b-6115-------------------------------
  3140. INT 61 - Atari Portfolio - SOUND GENERATION
  3141.     AH = 15h
  3142.     AL = function
  3143.         00h key click
  3144.         01h beep
  3145.         02h alarm
  3146. Return: nothing
  3147. SeeAlso: AH=00h"Portfolio",AH=12h"Portfolio",AH=16h"Portfolio"
  3148. --------N-6116-------------------------------
  3149. INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
  3150.     AH = 16h
  3151.     BX = network descriptor
  3152.     DS:DX -> 9-byte buffer for "addr" structure (see #2711)
  3153. Return: CF clear if successful
  3154.         buffer filled
  3155.     CF set on error
  3156.         AX = error code (see #2568 at INT 61"FTP Software")
  3157. Range:    INT 20 to INT E0, selected by configuration
  3158. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3159. --------b-6116-------------------------------
  3160. INT 61 - Atari Portfolio - MELODY TONE GENERATOR
  3161.     AH = 16h
  3162.     CX = length of tones in 1/100 sec
  3163.     DL = tone code (see #2712)
  3164. SeeAlso: AH=15h"Portfolio",AH=17h"Portfolio"
  3165.  
  3166. (Table 2712)
  3167. Values for Atari Portfolio tone code:
  3168.  04h    A6#1864.7 Hz
  3169.  05h    B6    1975.5 Hz
  3170.  06h    D7    2348.3 Hz
  3171.  07h    D7#    2489.0 Hz
  3172.  0Eh    F6#    1480.0 Hz
  3173.  25h    C7    2093.0 Hz
  3174.  29h    D6    1174.7 Hz
  3175.  2Ch    G6#    1661.2 Hz
  3176.  2Fh    C7#    2217.5 Hz
  3177.  30h    D5#    622.3 Hz
  3178.  31h    E5    659.3 Hz
  3179.  32h    F5    698.5 Hz
  3180.  33h    F5#    740.0 Hz
  3181.  34h    G5    784.0 Hz
  3182.  35h    G5#    830.6 Hz
  3183.  36h    A5    880.6 Hz
  3184.  37h    A5#    932.3 Hz
  3185.  38h    B5    987.8 Hz
  3186.  39h    C6    1046.5 Hz
  3187.  3Ah    C6#    1108.7 Hz
  3188.  3Bh    D6#    1244.5 Hz
  3189.  3Ch    E6    1318.5 Hz
  3190.  3Dh    F6    1396.9 Hz
  3191.  3Eh    G6    1568.9 Hz
  3192.  3Fh    A6    1760.0 Hz
  3193. --------N-6117-------------------------------
  3194. INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
  3195.     AH = 17h
  3196. Return: CF clear if successful
  3197.     CF set on error
  3198.         AX = error code (see #2568 at INT 61"FTP Software")
  3199. Notes:    this routine is deprecated in v2.1+ and will eventually be withdrawn;
  3200.       in v2.1+, this function calls AH=01h which should be used instead
  3201.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3202. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
  3203. --------b-6117-------------------------------
  3204. INT 61 - Atari Portfolio - DIAL NUMBER
  3205.     AH = 17h
  3206.     DS:SI -> ASCII string containing number to dial
  3207.     CX = length of string
  3208. Note:    valid characters for string are "0123456789ABCD*#"
  3209. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=16h"Portfolio"
  3210. SeeAlso: AH=18h"Portfolio"
  3211. --------N-6118-------------------------------
  3212. INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
  3213.     AH = 18h
  3214.     BX = network descriptor
  3215. Return: CF clear if successful
  3216.     CF set on error
  3217.         AX = error code (see #2568 at INT 61"FTP Software")
  3218. Note:    a TCP "FIN" command is sent and no further data may be transmitted,
  3219.       although the connection remains open
  3220. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP"
  3221. SeeAlso: INT 63/AH=0Eh"BW-TCP"
  3222. --------b-6118-------------------------------
  3223. INT 61 - Atari Portfolio - MUTE STATES
  3224.     AH = 18h
  3225.     AL = function
  3226.         00h get mute state
  3227.         01h set mute state
  3228.         02h get key click state
  3229.         03h set key click state
  3230.         04h get beep state
  3231.         05h set beep state
  3232.         06h get alarm state
  3233.         07h set alarm state
  3234.         08h get DTMF duration
  3235.         09h set DTMF duration
  3236.     DL = new state ("set" functions) (00h off [muted], 01h on)
  3237. Return: DL = current state ("get" functions) (00h off [muted], 01h on)
  3238. SeeAlso: AH=15h"Portfolio",AH=16h"Portfolio",AH=17h"Portfolio"
  3239. SeeAlso: AH=19h"Portfolio"
  3240. --------N-6119-------------------------------
  3241. INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
  3242.     AH = 19h
  3243.     BX = network descriptor
  3244. Return: CF clear if successful
  3245.     CF set on error
  3246.         AX = error code (see #2568 at INT 61"FTP Software")
  3247. Desc:    immediately destroys the specified connection
  3248. Note:    send a TCP "RST" command if a stream connection is open
  3249. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=24h
  3250. --------b-6119-------------------------------
  3251. INT 61 - Atari Portfolio - GET SERIAL PORT PARAMETERS
  3252.     AH = 19h
  3253.     DX = serial port number
  3254. Return: AH = status
  3255.         00h successful
  3256.         AL = composite parameters (see #0204 at INT 14/AH=00h"SERIAL")
  3257.         other error
  3258. SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=1Ah"Portfolio"
  3259. --------N-611A-------------------------------
  3260. INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
  3261.     AH = 1Ah
  3262.     BX = network descriptor
  3263.     CX = number of bytes to transmit (0000h allowed)
  3264.     DX = send options (see #2713)
  3265.     DS:SI -> data to be written
  3266. Return: CF clear if successful
  3267.         AX = number of bytes actually written
  3268.         DX = ???
  3269.     CF set on error
  3270.         AX = error code (see #2568 at INT 61"FTP Software")
  3271. Range:    INT 20h to INT E0h, selected by configuration
  3272. Notes:    the installation check consists of testing for the signature "TCPTSR"
  3273.       three bytes beyond the start of the interrupt handler
  3274. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  3275. SeeAlso: INT 63/AH=19h"BW-TCP",INT 63/AH=1Bh"BW-TCP"
  3276.  
  3277. Bitfields for PC/TCP send options:
  3278. Bit(s)    Description    (Table 2713)
  3279.  0    signal "URG"ent data
  3280.  3    attempt rerouting on non-stream calls if first attempt fails
  3281.  4    send data with PUSH flag (no override of Nagle)
  3282.  5    fail rather than truncating datagram
  3283.  6    fail rather than blocking
  3284.  7    broadcast packet
  3285. --------b-611A-------------------------------
  3286. INT 61 - Atari Portfolio - GET PERIPHERAL ID BYTE
  3287.     AH = 1Ah
  3288. Return: AH = peripheral ID byte
  3289.     AL = 00h if no peripheral installed
  3290. Desc:    get the ID code for the current terminating peripheral
  3291. SeeAlso: AH=00h"Portfolio",AH=18h"Portfolio",AH=1Bh"Portfolio"
  3292. --------N-611B-------------------------------
  3293. INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
  3294.     AH = 1Bh
  3295.     BX = network descriptor
  3296.     CX = maximum number of bytes to read
  3297.     DX = receive options (see #2714)
  3298.     DS:SI -> buffer for data
  3299.     ES:DI -> "addr" structure (see #2711) for remote from which to read
  3300.         0000h:0000h for any
  3301. Return: CF clear if successful
  3302.         AX = number of bytes actually read
  3303.         DX = ???
  3304.     CF set on error
  3305.         AX = error code (see #2568 at INT 61"FTP Software")
  3306. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  3307.  
  3308. Bitfields for PC/TCP receive options:
  3309. Bit(s)    Description    (Table 2714)
  3310.  1    do not remove data from queue, just copy it
  3311.  2    do not copy data, just remove it from queue
  3312.  5    fail if datagram would be truncated
  3313.  6    do not block, return error if no data available
  3314. Note:    special case for UDP: if both 1 and 2 set, return number of datagrams
  3315. --------b-611B-------------------------------
  3316. INT 61 - Atari Portfolio - SET PERIPHERAL ID BYTE
  3317.     AH = 1Bh
  3318.     AL = which peripheral to set
  3319.         00h serial
  3320.         01h parallel
  3321.     DL = peripheral ID
  3322. Return: nothing
  3323. Desc:    specify that a peripheral is compatible with the BIOS serial or
  3324.       parallel services
  3325. SeeAlso: AH=1Ah"Portfolio",AH=1Ch"Portfolio"
  3326. --------N-611C-------------------------------
  3327. INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
  3328.     AH = 1Ch
  3329.     BX = network descriptor
  3330.     CX = number of bytes to transmit (0000h allowed)
  3331.     DX = send options (see #2713)
  3332.     DS:SI -> data to be written
  3333.     ES:DI -> "addr" structure (see #2711)
  3334. Return: CF clear if successful
  3335.         AX = number of bytes actually written
  3336.         DX = ???
  3337.     CF set on error
  3338.         AX = error code (see #2568 at INT 61"FTP Software")
  3339. Note:    this function differs from AH=1Ah in that the address and socket
  3340.       numbers can be overridden
  3341. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
  3342. SeeAlso: INT 63/AH=21h"BW-TCP"
  3343. --------b-611C-------------------------------
  3344. INT 61 - Atari Portfolio - PRESET/GET PERIPHERAL DATA
  3345.     AH = 1Ch
  3346.     AL = function
  3347.         00h preset data values
  3348.         BL = data value
  3349.         DX = I/O address
  3350.         01h get data values
  3351.     BH = table entry number (04h-09h)
  3352. Return: if function 01h
  3353.         BL = data value
  3354.         DX = I/O address
  3355. Desc:    preset peripheral I/O data in a table mapping I/O addresses to data
  3356.       values; function 00h additionally outputs the data value to the
  3357.       I/O port
  3358. SeeAlso: AH=1Ah"Portfolio",AH=1Bh"Portfolio",AH=1Eh"Portfolio"
  3359. --------N-611D-------------------------------
  3360. INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
  3361.     AH = 1Dh
  3362.     BX = network descriptor
  3363.     CX = maximum number of bytes to read
  3364.     DX = receive options (see #2713)
  3365.     DS:SI -> buffer for received data
  3366.     ES:DI -> 9-byte buffer containing "addr" structure (see #2711)
  3367. Return: CF clear if successful
  3368.         AX = number of bytes read
  3369.         DX = ???
  3370.     CF set on error
  3371.         AX = error code (see #2568 at INT 61"FTP Software")
  3372. Notes:    this function can read from any host or a designated host depending
  3373.       on settings in the "addr" structure
  3374.     only for use with datagram or Raw descriptors
  3375. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
  3376. --------N-611E-------------------------------
  3377. INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
  3378.     AH = 1Eh
  3379.     BX = network descriptor
  3380. Return: CF clear if successful
  3381.     CF set on error
  3382.         AX = error code (see #2568 at INT 61"FTP Software")
  3383. Range:    INT 20 to INT E0, selected by configuration
  3384. Notes:    bufferred data is transmitted immediately, overriding Nagle's algorithm
  3385.       if necessary
  3386.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3387. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3388. --------b-611E-------------------------------
  3389. INT 61 - Atari Portfolio - GET/SET CLOCK TICK SPEED
  3390.     AH = 1Eh
  3391.     AL = function
  3392.         00h get speed
  3393.         01h set speed
  3394.         BX = clock tick speed
  3395.             0000h tick every 128 seconds
  3396.             0001h tick every second
  3397. Return: if function 00h
  3398.         BX = clock tick speed
  3399. Note:    the faster tick speed also uses more power
  3400. SeeAlso: AH=00h"Portfolio",AH=1Ch"Portfolio",AH=1Fh"Portfolio"
  3401. --------N-611F-------------------------------
  3402. INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
  3403.     AH = 1Fh
  3404.     BX = network descriptor
  3405.     CX = event type (see #2715)
  3406.     DS:SI -> event handler routine (see #2716)
  3407.     ES:DI = 32-bit hint passed to handler
  3408. Return: CF clear if successful
  3409.         DS:DX -> previous handler
  3410.     CF set on error
  3411.         AX = error code (see #2568 at INT 61"FTP Software")
  3412. Note:    ICMP messages do not trigger events on stream connections
  3413. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3414.  
  3415. (Table 2715)
  3416. Values for PC/TCP event type:
  3417.  00h    alarm
  3418.  01h    open (successfully opened stream connection)
  3419.  02h    receive (data available)
  3420.  03h    transmit (ACK received on stream connection)
  3421.  04h    transmit flush???
  3422.  05h    foreign close (remote host closed data connection)
  3423.  06h    close (local host closed connection and protocol is complete)
  3424.  07h    error (error code passed to handler as arg)
  3425.  
  3426. (Table 2716)
  3427. Values PC/TCP user event handler is called with:
  3428.     BX = network descriptor
  3429.     CX = event type (see #2715)
  3430.     DS:DX -> arg
  3431.     ES:DI = 32-bit hint value
  3432.     STACK:    small stack, possibly the DOS stack
  3433. --------b-611F-------------------------------
  3434. INT 61 - Atari Portfolio - GET KEY/NMI-INVOKED SCREEN REFRESH
  3435.     AH = 1Fh
  3436.     AL = function
  3437.         00h get state
  3438.         01h set state
  3439.         DH = new refresh-on-NMI state
  3440.             (00h disabled, 01h enabled, bit 7 set = don't change)
  3441.         DL = new refresh-on-key state
  3442. Return: DH,DL = current/old states
  3443. SeeAlso: AH=00h"Portfolio",AH=1Eh"Portfolio",AH=20h"Portfolio"
  3444. --------N-6120-------------------------------
  3445. INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
  3446.     AH = 20h
  3447.     BX = network descriptor
  3448.     CX = length of buffer (usually 04h)
  3449.     DS:DX -> buffer containing option
  3450.     SI = (ignored by v2.2-)
  3451.     DI = option to set (see #2717)
  3452. Return: CF clear if successful
  3453.     CF set on error
  3454.         AX = error code (see #2568 at INT 61"FTP Software")
  3455. Note:    Beame&Whiteside's BWPCTCP shim only supports options 01h and 0Bh; all
  3456.       others return CF clear
  3457. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=21h
  3458.  
  3459. (Table 2717)
  3460. Values for PC/TCP option to get or set:
  3461.  01h    set non-blocking mode if non-zero
  3462.  02h    timeout of call in milliseconds
  3463.  03h    user-defined 4-byte magic cookie (not used by kernel)
  3464.  04h    TCP window or UDP buffer count (WORD, unsigned)
  3465.  06h    do TCP keep-alives if non-zero
  3466.  09h    (v2.1+) set IP precedence
  3467.  0Ah    (v2.1+) set IP type of service
  3468.  0Bh    use a privileged port if port = 0
  3469.  0Ch    turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah)
  3470. Note:    use "C" true or false values for boolean options
  3471. --------b-6120-------------------------------
  3472. INT 61 - Atari Portfolio - GET/SET INT 09 REVECTORING
  3473.     AH = 20h
  3474.     AL = function
  3475.         00h get INT 09 revectoring state
  3476.         01h set state
  3477.         DL = new state (00h disable, 01h enable)
  3478. Return: if function 00h
  3479.         DL = new state (00h disabled, 01h enabled)
  3480. Desc:    specify whether INT 09 is automatically revectored to the BIOS,
  3481.       preventing applications from using their own INT 09 handler on the
  3482.       incompatible keyboard hardware
  3483. SeeAlso: AH=1Eh"Portfolio",AH=1Fh"Portfolio",AH=24h"Portfolio"
  3484. --------N-6121-------------------------------
  3485. INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
  3486.     AH = 21h
  3487.     BX = network descriptor
  3488.     CX = length of buffer
  3489.     DS:DX -> buffer for return values
  3490.     SI = 0004h (ignored by v2.2-)
  3491.     DI = option (see #2717)
  3492. Return: CF clear if successful
  3493.         DS:DX -> value (usually 32 bits) returned by selected option
  3494.     CF set on error
  3495.         AX = error code (see #2568 at INT 61"FTP Software")
  3496. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3497. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
  3498. --------N-6122-------------------------------
  3499. INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
  3500.     AH = 22h
  3501. Return: CF clear if successful
  3502.         AX = network descriptor
  3503.     CF set on error
  3504.         AX = error code (see #2568 at INT 61"FTP Software")
  3505. Note:    the descriptor will be an integer in the range 00h-1Fh, and a DOS call
  3506.       is made to allocate this as a file descriptor.  Hence a number may
  3507.       not refer to a PC/TCP network descriptor and a DOS file handle
  3508.       simultaneously.
  3509. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29h
  3510. --------N-6123-------------------------------
  3511. INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
  3512.     AH = 23h
  3513.     BX = network descriptor or FFFFh to allocate descriptor
  3514.     DX = type of service
  3515.     DS:SI -> "addr" structure (see #2711)
  3516. Return: CF clear if successful
  3517.         AX = network descriptor
  3518.     CF set on error
  3519.         AX = error code (see #2568 at INT 61"FTP Software")
  3520. Notes:    type of service and "addr" structure are as for AH=13h
  3521.     any of the address structure can be zero; normally local socket number
  3522.       is filled in prior to call
  3523. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
  3524. SeeAlso: INT 63/AH=12h"BW-TCP"
  3525. --------N-6124-------------------------------
  3526. INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
  3527.     AH = 24h
  3528. Return: always successful
  3529. Note:    performs "net_abort" (AH=19h) on all open non-global descriptors
  3530. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=19h
  3531. --------b-6124-------------------------------
  3532. INT 61 - Atari Portfolio - GET/SET ROM/CCM SPACE STATE
  3533.     AH = 24h
  3534.     AL = function
  3535.         00h get state
  3536.         01h set state
  3537.         DL = new ROM state (see #2718)
  3538.         DH = new CCM state (see #2719)
  3539. Return: CF clear if successful
  3540.         DL = current/old ROM state
  3541.         DH = current/old CCM state
  3542.     CF set on error (invalid option or other error)
  3543. Desc:    control whether memory cards or an extension ROM are visible in the
  3544.       range 000C0000h to 000DFFFFh
  3545. SeeAlso: AH=00h"Portfolio",AH=20h"Portfolio",AH=26h"Portfolio"
  3546.  
  3547. (Table 2718)
  3548. Values for Atari Portfolio ROM space state:
  3549.  00h    normal application ROM
  3550.  01h    CCM drive A:
  3551.  02h    CCM drive B:
  3552.  03h    expansion ROM
  3553. SeeAlso: #2719
  3554.  
  3555. (Table 2719)
  3556. Values for Atari Portfolio CCM space state:
  3557.  00h    CCM drives disabled
  3558.  01h    CCM drive A: permanently enabled
  3559.  02h    CCM drive B: permanently enabled
  3560. SeeAlso: #2718
  3561. --------N-6125-------------------------------
  3562. INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
  3563.     AH = 25h
  3564.     DX,BX = IP address in network order
  3565.     CX = length of buffer for name
  3566.     DS:SI -> buffer for host name
  3567. Return: CF clear if successful
  3568.        buffer filled with ASCIZ host name
  3569.     CF set on error
  3570.         AX = error code (see #2568 at INT 61"FTP Software")
  3571. Note:    this function will use the host table and or DNS to resolve the
  3572.       address, depending on kernel configuration.  Use this call for the
  3573.       normal gethostbyaddr function.
  3574. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27h
  3575. --------N-6126-------------------------------
  3576. INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
  3577.     AH = 26h
  3578.     DX,BX = IP address in network order
  3579.     CX = length of buffer
  3580.     DS:SI -> buffer for host name
  3581. Return: CF clear if successful
  3582.         buffer filled with ASCIZ host name
  3583.     CF set on error
  3584.         AX = error code (see #2568 at INT 61"FTP Software")
  3585. Notes:    normally one would use AH=25h instead of this function
  3586.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3587. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27h
  3588. --------b-6126-------------------------------
  3589. INT 61 - Atari Portfolio - GET/SET POWER CONTROL
  3590.     AH = 26h
  3591.     AL = function
  3592.         00h get state
  3593.         01h set state
  3594.         DL = new state
  3595.             00h normal power-down on low battery
  3596.             01h no power-down, but display warning
  3597.             02h no power-down, no warning on low battery
  3598. Return: AL = current/old state
  3599. SeeAlso: AH=00h"Portfolio",AH=24h"Portfolio",AH=28h"Portfolio"
  3600. --------N-6127-------------------------------
  3601. INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
  3602.     AH = 27h
  3603.     DX,BX = IP address in network order
  3604.     CX = length of buffer
  3605.     DS:SI -> buffer for host name
  3606. Return: CF clear if successful
  3607.         buffer filled with ASCIZ host name
  3608.     CF set on error
  3609.         AX = error code (see #2568 at INT 61"FTP Software")
  3610. Note:    normally one would use AH=25h instead of this function
  3611. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26h
  3612. --------N-6128-------------------------------
  3613. INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
  3614.     AH = 28h
  3615.     BX = network descriptor 1
  3616.     CX = network descriptor 2
  3617. Return: CF clear if successful
  3618.     CF set on error
  3619.         AX = error code (see #2568 at INT 61"FTP Software")
  3620. Note:    the two descriptors will exchange places; both must be local or both
  3621.       global
  3622. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3623. --------b-6128-------------------------------
  3624. INT 61 - Atari Portfolio - GET/SET TEXT/KEYBOARD LANGUAGE
  3625.     AH = 28h
  3626.     AL = function
  3627.         00h get languages
  3628.         01h set languages
  3629.         DH = new text language (set bit 7 to leave unchanged)
  3630.         DL = new keyboard language (set bit 7 to leave unchanged)
  3631.         03h get language table pointers
  3632. Return: if function 00h or 01h:
  3633.         DH = current/old text language
  3634.         DL = current/old keyboard language
  3635.     if function 03h
  3636.         ES:CX -> keyboard table (see #2720)
  3637.         ES:DX -> language table (see #2720)
  3638. SeeAlso: AH=24h"Portfolio",AH=26h"Portfolio",AH=2Ch"Portfolio"
  3639.  
  3640. Format of Atari Portfolio language table:
  3641. Offset    Size    Description    (Table 2720)
  3642.  00h    BYTE    number of languages supported
  3643.  01h  N BYTEs    supported languages
  3644.         00h English
  3645.         01h French
  3646.         02h German
  3647.         03h Spanish
  3648.         04h Italian
  3649.         05h Swedish
  3650.         06h Danish
  3651. --------N-6129-------------------------------
  3652. INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
  3653.     AH = 29h
  3654. Return: CF clear if successful
  3655.         AX = network descriptor
  3656.     CF set on error
  3657.         AX = error code (see #2568 at INT 61"FTP Software")
  3658. Note:    use this function rather than AH=22h to avoid a DOS call by the PC/TCP
  3659.       kernel; the returned descriptor will be >= 40h and cannot be used
  3660.       with "net_select" (AH=0Eh)
  3661. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP"
  3662. SeeAlso: INT 61/AH=22h
  3663. --------N-612A-------------------------------
  3664. INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
  3665.     AH = 2Ah
  3666.     DS:SI -> 26-byte buffer for configuration information (see #2721)
  3667. Return: CF clear
  3668.     AX = 0000h
  3669.     buffer filled
  3670. Notes:    size of buffer may vary with kernel version; 26 bytes is the size for
  3671.       versions 2.05 through 2.2
  3672.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3673. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3674.  
  3675. Format of PC/TCP configuration information:
  3676. Offset    Size    Description    (Table 2721)
  3677.  00h    BYTE    maximum TCP connections available
  3678.  01h    BYTE    maximum UDP connections available
  3679.  02h    BYTE    maximum IP connections available
  3680.  03h    BYTE    maximum Raw Net connections available
  3681.  04h    BYTE    number of TCP connections currently in use
  3682.  05h    BYTE    number of UDP connections currently in use
  3683.  06h    BYTE    number of IP connections currently in use
  3684.  07h    BYTE    number of Raw Net connections currently in use
  3685.  08h    WORD    number of local network descriptors active
  3686.  0Ah    WORD    number of global network descriptors active
  3687.  0Ch    BYTE    maximum header size on network
  3688.  0Dh    BYTE    maximum trailer size on network
  3689.  0Eh    WORD    size of large packet buffer
  3690.  10h    WORD    number of network interfaces attached
  3691.  12h    DWORD    milliseconds since kernel started
  3692.  16h    DWORD    IP broadcast address
  3693. --------N-612B-------------------------------
  3694. INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
  3695.     AH = 2Bh
  3696.     BX = network descriptor
  3697.     CX,DX = time before alarm in milliseconds
  3698.     DS:SI -> handler which will receive call (see #2716 at INT 61/AH=1Fh)
  3699.     ES:DI = 32-bit cookie passed to handler
  3700. Return: CF clear if successful
  3701.     CF set on error
  3702.         AX = error code (see #2568 at INT 61"FTP Software")
  3703. Notes:    this function will cause a NET_AS_ALARM to be generated; it is intended
  3704.       for TSRs, etc. to regain control periodically
  3705.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3706. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3707. --------b-612C-------------------------------
  3708. INT 61 - Atari Portfolio - GET VERSION
  3709.     AH = 2Ch
  3710. Return: DS:BX -> BIOS version string ('$'-terminated)
  3711. SeeAlso: AH=28h"Portfolio",AH=2Dh"Portfolio"
  3712. --------b-612D-------------------------------
  3713. INT 61 - Atari Portfolio - TURN SYSTEM OFF
  3714.     AH = 2Dh
  3715. Return: nothing
  3716. SeeAlso: AH=00h"Portfolio",AH=2Ch"Portfolio",AH=2Eh"Portfolio"
  3717. --------b-612E-------------------------------
  3718. INT 61 - Atari Portfolio - ENABLE/DISABLE SYSTEM STATUS LINE
  3719.     AH = 2Eh
  3720.     AL = new state
  3721.         00h disabled
  3722.         01h enabled
  3723.         DH,DL = row,column at which to display
  3724. Return: nothing
  3725. SeeAlso: AH=00h"Portfolio",AH=2Dh"Portfolio",AH=30h"Portfolio"
  3726. --------N-6130-------------------------------
  3727. INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
  3728.     AH = 30h
  3729.     BX,DX = IP address of host
  3730.     CX = length of data to send
  3731. Return: CF clear if successful (i.e. reply received)
  3732.     CF set on error
  3733.         AX = error code (see #2568 at INT 61"FTP Software")
  3734. Note:    this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3735. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
  3736. --------b-6130-------------------------------
  3737. INT 61 - Atari Portfolio - FILE TRANSFER SERVICES
  3738.     AH = 30h
  3739.     AL = function
  3740.         00h transmit block
  3741.         CX = number of bytes to send
  3742.         01h receive block
  3743.         CX = buffer size
  3744.         02h open ports
  3745.         03h close ports
  3746.         04h wait 500ms
  3747.     DS:DX -> start of data buffer
  3748. Return: DL = status
  3749.         00h successful
  3750.         01h buffer too small
  3751.         02h transmission timeout
  3752.         03h checksum failure
  3753.         04h invalid subfunction
  3754.         05h peripheral not installed
  3755.     if function 01h:
  3756.         CX = number of bytes received
  3757. SeeAlso: AH=00h"Portfolio",AH=2Eh"Portfolio"
  3758. --------N-61---------------------------------
  3759. INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
  3760.     AH = function
  3761.         31h "net_add_route"
  3762.         32h "net_del_route"
  3763.         33h "net_dump_routes"
  3764. Notes:    these functions are described as "unused" in the v2.2 documentation
  3765.     router configuration can be altered using INT 61/AH=01h
  3766.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3767. --------N-6132-------------------------------
  3768. INT 61 U - PC/TCP kernel v2.3 - GET ???
  3769.     AH = 32h
  3770. Return: AX = ???
  3771. Note:    this function is fully re-entrant, and may be called even when another
  3772.       PC/TCP kernel call is already in progress
  3773. --------N-6134-------------------------------
  3774. INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
  3775.     AH = 34h
  3776.     ???
  3777. Return: ???
  3778. Notes:    this function is described as "reserved" in the v2.2 documentation
  3779.     this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
  3780. --------N-6150-------------------------------
  3781. INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
  3782.     AH = 50h
  3783.     DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars)
  3784. Return: CF clear if successful
  3785.         DX:AX -> IP address
  3786.     CF set on error
  3787.         AX = error code (see #2568 at INT 61"FTP Software")
  3788. Range:    INT 20 to INT E0, selected by configuration
  3789. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  3790. --------N-6151-------------------------------
  3791. INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
  3792.     AH = 51h
  3793.     CX = size of destination buffer
  3794.     DS:DX -> ASCIZ host name (max 127 chars)
  3795.     ES:DI -> destination buffer or 0000h:0000h
  3796. Return: CF clear if successful
  3797.         DX:AX -> IP address of host
  3798.         destination buffer filled with canonical host name
  3799.     CF set on error
  3800.         AX = error code (see #2568 at INT 61"FTP Software")
  3801. Note:    this function calls DOS, and can fail if the DOS call fails
  3802. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  3803. --------N-6152-------------------------------
  3804. INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
  3805.     AH = 52h
  3806.     CX = size of destination buffer
  3807.     DS:DX -> ASCIZ host name (max 127 chars)
  3808.     ES:DI -> destination buffer or 0000h:0000h
  3809. Return: CF clear if successful
  3810.         DX:AX -> IP address of host
  3811.         destination buffer filled with canonical host name
  3812.     CF set on error
  3813.         AX = error code (see #2568 at INT 61"FTP Software")
  3814. Note:    this function will poll all configured domain name servers if necessary
  3815. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  3816. --------N-6153-------------------------------
  3817. INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
  3818.     AH = 53h
  3819.     DS:DX -> ASCIZ name to be resolved (max 127 chars)
  3820. Return: CF clear if successful
  3821.         DX:AX -> IP address of host
  3822.     CF set on error
  3823.         AX = error code (see #2568 at INT 61"FTP Software")
  3824. Range:    INT 20 to INT E0, selected by configuration
  3825. Note:    this function is not supported by v2.10+
  3826. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
  3827. --------N-6154-------------------------------
  3828. INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
  3829.     AH = 54h
  3830.     CX = size of destination buffer
  3831.     DS:DX -> ASCIZ host name (max 127 chars)
  3832.     ES:DI -> destination buffer or 0000h:0000h
  3833. Return: CF clear if successful
  3834.         DX:AX -> IP address of host
  3835.         destination buffer filled with canonical host name
  3836.     CF set on error
  3837.         AX = error code (see #2568 at INT 61"FTP Software")
  3838. Note:    this function uses all configured methods in turn to resolve the
  3839.       name (numerical, then host table, then DNS, then IEN116)
  3840. BUG:    the SLIP kernel for v2.05 bounds-checks the wrong register, so values
  3841.       greater than 54h in AH may crash the system.    Other kernels may have
  3842.       this bug as well; it has been fixed in the v2.2 SLIPDRV kernel.
  3843. SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h
  3844. SeeAlso: INT 61/AH=52h,INT 61/AH=53h
  3845. --------N-6155-------------------------------
  3846. INT 61 U - PC/TCP kernel v2.3 - ???
  3847.     AH = 55h
  3848.     ???
  3849. Return: ???
  3850. SeeAlso: INT 61"FTP Software"
  3851. --------N-6156-------------------------------
  3852. INT 61 U - PC/TCP kernel v2.3 - ???
  3853.     AH = 56h
  3854.     ???
  3855. Return: ???
  3856. SeeAlso: INT 61"FTP Software"
  3857. --------N-6157-------------------------------
  3858. INT 61 U - PC/TCP kernel v2.3 - ???
  3859.     AH = 57h
  3860.     ???
  3861. Return: ???
  3862. SeeAlso: INT 61"FTP Software"
  3863. --------N-6158-------------------------------
  3864. INT 61 U - PC/TCP kernel v2.3 - ???
  3865.     AH = 58h
  3866.     ???
  3867. Return: ???
  3868. SeeAlso: INT 61"FTP Software"
  3869. --------N-6159-------------------------------
  3870. INT 61 U - PC/TCP kernel v2.3 - ???
  3871.     AH = 59h
  3872.     ???
  3873. Return: ???
  3874. SeeAlso: INT 61"FTP Software"
  3875. --------N-615A-------------------------------
  3876. INT 61 U - PC/TCP kernel v2.3 - ???
  3877.     AH = 5Ah
  3878.     ???
  3879. Return: ???
  3880. SeeAlso: INT 61"FTP Software"
  3881. --------N-615B-------------------------------
  3882. INT 61 U - PC/TCP kernel v2.3 - ???
  3883.     AH = 5Bh
  3884.     ???
  3885. Return: ???
  3886. SeeAlso: INT 61"FTP Software"
  3887. --------N-615C-------------------------------
  3888. INT 61 U - PC/TCP kernel v2.3 - ???
  3889.     AH = 5Ch
  3890.     ???
  3891. Return: ???
  3892. SeeAlso: INT 61"FTP Software"
  3893. --------N-615D-------------------------------
  3894. INT 61 U - PC/TCP kernel v2.3 - ???
  3895.     AH = 5Dh
  3896.     ???
  3897. Return: ???
  3898. SeeAlso: INT 61"FTP Software"
  3899. --------N-615E-------------------------------
  3900. INT 61 U - PC/TCP kernel v2.3 - ???
  3901.     AH = 5Eh
  3902.     ???
  3903. Return: ???
  3904. SeeAlso: INT 61"FTP Software"
  3905. --------N-615F-------------------------------
  3906. INT 61 U - PC/TCP kernel v2.3 - ???
  3907.     AH = 5Fh
  3908.     ???
  3909. Return: ???
  3910. SeeAlso: INT 61"FTP Software"
  3911. --------*-62---------------------------------
  3912. INT 62 - reserved for user interrupt
  3913. --------d-62---------------------------------
  3914. INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
  3915. Notes:    this vector stores the third four bytes of the parameter table for
  3916.       hard disk 0
  3917. SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
  3918. --------b-62---------------------------------
  3919. INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
  3920. Desc:    the low word of this vector contains the segment of the RAM data area
  3921.       to be used by the expansion ROM at F400h:2000h, and the high word
  3922.       contains the length of the data area; this segment and size are
  3923.       both set to 0000h if no ROM is installed at F400h:2000h
  3924. SeeAlso: INT 61"TI Professional PC",INT 63"TI Professional"
  3925. SeeAlso: INT 66"TI Professional PC"
  3926. --------b-62---------------------------------
  3927. INT 62 - HP 95LX - USED BY CALCULATOR
  3928. SeeAlso: INT 60/DI=0104h"HP 95LX"
  3929. ----------62---------------------------------
  3930. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
  3931.     AH = function (00h to 07h)
  3932.     CX = FFFEh
  3933.     DX = FFFFh
  3934.     ???
  3935. Return: ???
  3936. Note:    the installation check consists of testing for the string "DBLIBRARY"
  3937.       2 bytes past the interrupt handler
  3938. SeeAlso: AH=08h"SQL"
  3939. Index:    installation check;MS SQL Server|installation check;Sybase DBLIBRARY
  3940. ----------62---------------------------------
  3941. INT 62 - MPAUSE - ???
  3942.     details not yet avialable
  3943. Program: MPAUSE is a program by Manfred Michael which appeared in the German
  3944.      _EGA-Handbuch_ from  m&t-Verlag
  3945. --------N-62---------------------------------
  3946. INT 62 - XFS v1.76 - FILTERED PACKET DRIVER API
  3947. Program: XFS is a shareware Network File System client by Robert Juhasz
  3948. Desc:    XFS requires a packet driver to operate.  Since it does redirections,
  3949.       etc., it provides its own packet driver entry point, changing the
  3950.       signature string of the original packet driver to "XKT DRVR" so that
  3951.       it will no longer be found by the packet driver installation check
  3952. Range:    INT 61 to INT 66, selected by scanning for two consecutive free
  3953.       vectors and hooking the second
  3954. Note:    the installation check for this vector is the same as that for the
  3955.       packet driver specification: scan for the signature string "PKT DRVR"
  3956.       three bytes past the interrupt handler
  3957. SeeAlso: INT 60"Packet Driver Specification",INT 61"XFS"
  3958. ----------62---------------------------------
  3959. INT 62 - PC-DRAFT - PRIMARY DISPLAY DRIVER
  3960.     ???
  3961. Return: ???
  3962. Program: PC-DRAFT is a powerful CAD environment by rhv.
  3963. SeeAlso: INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
  3964. --------N-6200-------------------------------
  3965. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET PHYSICAL HARDWARE ADDRESS
  3966.     AH = 00h
  3967.     DS:DX -> 6-byte buffer for address
  3968. Return: AX = length of hardware address???
  3969. Range:    INT 4C to INT FB, selected by configuration
  3970. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  3971.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  3972.       consecutive interrupt (64h by default) if it is loaded
  3973. SeeAlso: AH=01h"ETHDEV",AH=04h"ETHDEV",AH=09h"ETHDEV",AH=0Eh"ETHDEV"
  3974. SeeAlso: AH=14h"ETHDEV",AH=18h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  3975. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  3976. --------V-620000-----------------------------
  3977. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
  3978.     AX = 0000h
  3979.     BX = page number (0000h-003Fh)
  3980. Return: AX = status (0000h,0001h,0007h,0008h) (see #2722)
  3981. Program: FGDRIVER is the external video driver for the shareware
  3982.       Fastgraph/Light by Ted Gruber Software
  3983. Notes:    the FGDRIVER functions are rearranged with each major release, but
  3984.       their parameters do not change (see #2723)
  3985.     The amount of memory required by the virtual video page depends on the
  3986.       current video mode
  3987.     The installation check consists of testing for the signature "FG" ten
  3988.       bytes beyond the start of the interrupt handler
  3989. SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0038h
  3990. Index:    installation check;Fastgraph/Light
  3991.  
  3992. (Table 2722)
  3993. Values for FGDRIVER status:
  3994.  0000h    successful
  3995.  0001h    specified page is a physical or logical page
  3996.  0007h    virtual page created/released, but memory control blocks corrupted
  3997.  0008h    not enough memory
  3998.  0009h    attempt to free a page which was never created
  3999.  FFFCh    insufficient memory
  4000.  FFFDh    page already created, or exists as physical or virtual page
  4001.  FFFEh    invalid page number
  4002.  FFFFh    memory manager not initialized
  4003. SeeAlso: #2723
  4004.  
  4005. (Table 2723)
  4006. Values for FGDRIVER functions (by driver version):
  4007. Name        v1.10    v3.03    v4.02
  4008.  FG_ALLOCATE    0042h    0000h    0000h
  4009.  FG_ALLOCCMS    009Dh    0001h    0001h
  4010.  FG_ALLOCEMS    009Eh    0002h    0002h
  4011.  FG_ALLOCXMS    009Fh    0003h    0003h
  4012.  FG_AUTOMODE    0004h    0004h    0004h
  4013.  FG_BESTMODE    0003h    0005h    0005h
  4014.  FG_BOX        00A2h    0006h    0006h
  4015.  FG_BOXDEPTH    00A3h    0007h    0007h
  4016.  FG_BOXX     --    0008h    0008h
  4017.  FG_BUTTON    0078h    0009h    0009h
  4018.  FG_CAPSLOCK    0070h    000Ah    000Ah
  4019.  FG_CHGATTR    0035h    000Bh    000Bh
  4020.  FG_CHGTEXT    0036h    000Ch    000Ch
  4021.  FG_CIRCLE    0030h    000Dh    000Dh
  4022.  FG_CIRCLEF     --    000Eh    000Eh
  4023.  FG_CLIPMAP     --     --    000Fh
  4024.  FG_CLIPMASK    0052h    000Fh    0010h
  4025.  FG_CLPIMAGE    004Ah    0010h    0011h
  4026.  FG_CLPRECT    002Bh    0011h    0012h
  4027.  FG_COLORS     --     --    0013h
  4028.  FG_COPYPAGE    005Fh    0012h    0014h
  4029.  FG_CURSOR    0007h    0013h    0015h
  4030.  FG_DASH    0027h    0014h    0016h
  4031.  FG_DASHREL    0028h    0015h    0017h
  4032.  FG_DEFCOLOR    0014h    0016h    0018h
  4033.  FG_DEFPAGES     --    0017h    0019h
  4034.  FG_DISPFILE    004Fh    0018h    001Ah
  4035.  FG_DISPLAY    004Dh    0019h    001Bh
  4036.  FG_DISPLAYP    004Eh    001Ah    001Ch
  4037.  FG_DISPPCX    0060h     --     --
  4038.  FG_DRAW    0025h    001Bh    001Dh
  4039.  FG_DRAWMAP    0047h    001Ch    001Eh
  4040.  FG_DRAWMASK    0051h    001Dh    001Fh
  4041.  FG_DRAWREL    0026h    001Eh    0020h
  4042.  FG_DRAWRELX     --    001Fh    0021h
  4043.  FG_DRAWX     --    0020h    0022h
  4044.  FG_DRECT    002Ch    0021h    0023h
  4045.  FG_DRWIMAGE    0049h    0022h    0024h
  4046.  FG_EGACHECK    0005h    0023h    0025h
  4047.  FG_ELLIPSE    002Dh    0024h    0026h
  4048.  FG_ELLIPSEF     --    0025h    0027h
  4049.  FG_ERASE    001Eh    0026h    0028h
  4050.  FG_FADEIN    0064h    0027h    0029h
  4051.  FG_FADEOUT    0065h    0028h    002Ah
  4052.  FG_FILLPAGE     --    0029h    002Bh
  4053.  FG_FINDPAGE     --     --    002Ch
  4054.  FG_FLICDONE     --     --    002Dh
  4055.  FG_FLICHEAD     --     --    002Eh
  4056.  FG_FLICMODE     --     --    002Fh
  4057.  FG_FLICOPEN     --     --    0030h
  4058.  FG_FLICPLAY     --     --    0031h
  4059.  FG_FLICSIZE     --     --    0032h
  4060.  FG_FLICSKIP     --     --    0033h
  4061.  FG_FLIPMASK    0054h    002Ah    0034h
  4062.  FG_FLOOD     --    002Bh    0035h
  4063.  FG_FLPIMAGE    004Ch    002Ch    0036h
  4064.  FG_FONTSIZE     --    002Dh    0037h
  4065.  FG_FREEPAGE    0043h    002Eh    0038h
  4066.  FG_GETADDR    0044h    002Fh    0039h
  4067.  FG_GETATTR    0037h    0030h    003Ah
  4068.  FG_GETBANKS     --     --    003Bh
  4069.  FG_GETBLOCK     --    0031h    003Ch
  4070.  FG_GETCHAR    0038h    0032h    003Dh
  4071.  FG_GETCLIP     --     --    003Eh
  4072.  FG_GETCLOCK    0099h    0033h    003Fh
  4073.  FG_GETCOLOR    0015h    0034h    0040h
  4074.  FG_GETDACS    00A4h    0035h    0041h
  4075.  FG_GETENTRY     --    0036h    0042h
  4076.  FG_GETHPAGE    0040h    0037h    0043h
  4077.  FG_GETIMAGE    0048h    0038h    0044h
  4078.  FG_GETINDEX    0016h    0039h    0045h
  4079.  FG_GETKEY    006Eh    003Ah    0046h
  4080.  FG_GETLINES    0010h    003Bh    0047h
  4081.  FG_GETMAP    0046h    003Ch    0048h
  4082.  FG_GETMAXX    000Ah    003Dh    0049h
  4083.  FG_GETMAXY    000Bh    003Eh    004Ah
  4084.  FG_GETMODE    0000h    003Fh    004Bh
  4085.  FG_GETPAGE    003Ch    0040h    004Ch
  4086.  FG_GETPIXEL    0020h    0041h    004Dh
  4087.  FG_GETRGB    001Ch    0042h    004Eh
  4088.  FG_GETVIEW     --     --    004Fh
  4089.  FG_GETVPAGE    003Eh    0043h    0050h
  4090.  FG_GETXBOX     --     --    0051h
  4091.  FG_GETXJOY    0076h    0044h    0052h
  4092.  FG_GETXJUST     --     --    0053h
  4093.  FG_GETXPOS    0021h    0045h    0054h
  4094.  FG_GETYBOX     --     --    0055h
  4095.  FG_GETYJOY    0077h    0046h    0056h
  4096.  FG_GETYJUST     --     --    0057h
  4097.  FG_GETYPOS    0022h    0047h    0058h
  4098.  FG_HUSH    008Eh    0048h    0059h
  4099.  FG_HUSHNEXT    008Fh    0049h    005Ah
  4100.  FG_IMAGEBUF     --    004Ah    005Bh
  4101.  FG_IMAGESIZ    0062h    004Bh    005Ch
  4102.  FG_INITEMS    00A0h    004Ch    005Dh
  4103.  FG_INITJOY    0075h    004Dh    005Eh
  4104.  FG_INITPM     --     --    005Fh??? (NOP in v4.02)
  4105.  FG_INITXMS    00A1h    004Eh    0060h
  4106.  FG_INSIDE     --    004Fh    0061h
  4107.  FG_INTJOY    0079h    0050h    0062h
  4108.  FG_INTKEY    006Fh    0051h    0063h
  4109.  FG_INVERT     --     --    0064h
  4110.  FG_JUSTIFY     --    0052h    0065h
  4111.  FG_KBINIT     --    0053h    0066h
  4112.  FG_KBLAST     --     --    0067h
  4113.  FG_KBRESET     --     --    0068h
  4114.  FG_KBTEST     --    0054h    0069h
  4115.  FG_LOADPCX     --     --    006Ah
  4116.  FG_LOCATE    0033h    0055h    006Bh
  4117.  FG_MAKEPCX    0061h    0057h    006Ch
  4118.  FG_MAKEPPR     --    0058h    006Dh
  4119.  FG_MAKESPR     --    0059h    006Eh
  4120.  FG_MAPRGB    001Dh    005Ah    006Fh
  4121.  FG_MEASURE    0098h    005Bh    0070h
  4122.  FG_MEMAVAIL    009Bh    005Ch    0071h
  4123.  FG_MEMORY     --    005Dh    0072h
  4124.  FG_MOUSE256     --     --    0073h
  4125.  FG_MOUSEBUT    007Ch    005Eh    0074h
  4126.  FG_MOUSECUR    007Eh    005Fh    0075h
  4127.  FG_MOUSEFIN     --    0060h    0076h
  4128.  FG_MOUSEINI    007Ah    0061h    0077h
  4129.  FG_MOUSELIM    0080h    0062h    0078h
  4130.  FG_MOUSEMOV    0081h    0063h    0079h
  4131.  FG_MOUSEPOS    007Dh    0064h    007Ah
  4132.  FG_MOUSEPTR    007Fh    0065h    007Bh
  4133.  FG_MOUSESPD    0082h    0066h    007Ch
  4134.  FG_MOUSEVIS    007Bh    0067h    007Dh
  4135.  FG_MOVE    0023h    0068h    007Eh
  4136.  FG_MOVEREL    0024h    0069h    007Fh
  4137.  FG_MUSIC    008Ch    006Ah    0080h
  4138.  FG_MUSICB    008Dh    006Bh    0081h
  4139.  FG_NUMLOCK    0072h    006Ch    0082h
  4140.  FG_PACK     --     --    0083h
  4141.  FG_PAGESIZE     --    006Dh    0084h
  4142.  FG_PAINT    002Fh    006Eh    0085h
  4143.  FG_PALETTE    0017h    006Fh    0086h
  4144.  FG_PALETTES    0018h    0070h    0087h
  4145.  FG_PAN        0066h    0071h    0088h
  4146.  FG_PATTERN    0050h    0072h    0089h
  4147.  FG_PCXHEAD     --    0073h    008Ah
  4148.  FG_PCXMODE     --    0074h    008Bh
  4149.  FG_PCXPAL     --     --    008Ch
  4150.  FG_PCXRANGE     --     --    008Dh
  4151.  FG_PLAYING    0091h    0075h    008Eh
  4152.  FG_POINT    001Fh    0076h    008Fh
  4153.  FG_POINTX     --    0077h    0090h
  4154.  FG_POLYEDGE     --     --    0091h
  4155.  FG_POLYFILL     --    0078h    0092h
  4156.  FG_POLYGON    002Eh    0079h    0093h
  4157.  FG_POLYLINE     --    007Ah    0094h
  4158.  FG_POLYOFF     --    007Bh    0095h
  4159.  FG_PRINT     --    007Ch    0096h
  4160.  FG_PRINTC     --     --    0097h
  4161.  FG_PUTBLOCK     --    007Dh    0098h
  4162.  FG_PUTIMAGE     --    007Eh    0099h
  4163.  FG_QUIET    0090h    007Fh    009Ah
  4164.  FG_RECT    002Ah    0080h    009Bh
  4165.  FG_RESET    0006h    0081h    009Ch
  4166.  FG_RESIZE    0045h    0082h    009Dh
  4167.  FG_RESTORE    005Bh    0083h    009Eh
  4168.  FG_RESUME    0092h    0084h    009Fh
  4169.  FG_REVIMAGE    004Bh    0085h    00A0h
  4170.  FG_REVMASK    0053h    0086h    00A1h
  4171.  FG_SAVE     --    0087h    00A2h
  4172.  FG_SCALE     --     --    00A3h
  4173.  FG_SCRLOCK    0074h    0088h    00A4h
  4174.  FG_SCROLL    0067h    0089h    00A5h
  4175.  FG_SETATTR    0019h    008Ah    00A6h
  4176.  FG_SETBANKS     --     --    00A7h
  4177.  FG_SETCAPS    0071h    008Bh    00A8h
  4178.  FG_SETCLIP    0029h    008Ch    00A9h
  4179.  FG_SETCOLOR    001Ah    008Dh    00AAh
  4180.  FG_SETDACS    00A5h    008Eh    00ABh
  4181.  FG_SETENTRY     --    008Fh    00ACh
  4182.  FG_SETFUNC    009Ch    0090h    00ADh
  4183.  FG_SETHPAGE    0041h    0091h    00AEh
  4184.  FG_SETLINES    0011h    0092h    00AFh
  4185.  FG_SETMODE    0001h    0093h    00B0h
  4186.  FG_SETNUM    0073h    0094h    00B1h
  4187.  FG_SETPAGE    003Dh    0095h    00B2h
  4188.  FG_SETRGB    001Bh    0096h    00B3h
  4189.  FG_SETVIEW     --     --    00B5h
  4190.  FG_SETVPAGE    003Fh    0098h    00B6h
  4191.  FG_SHEAR     --     --    00B7h
  4192.  FG_SHOWFLIC     --     --    00B8h
  4193.  FG_SHOWPCX     --    009Ah    00B9h
  4194.  FG_SHOWPPR     --    009Bh    00BAh
  4195.  FG_SHOWSPR     --    009Ch    00BBh
  4196.  FG_SOUND    0088h    009Dh    00BCh
  4197.  FG_SOUNDS    0089h    009Eh    00BDh
  4198.  FG_SPLIT     --     --    00BEh
  4199.  FG_STALL    0097h    009Fh    00BFh
  4200.  FG_SUSPEND    0093h    00A0h    00C0h
  4201.  FG_SVGAINIT     --    00A1h    00C1h
  4202.  FG_SVGASTAT     --    00A2h    00C2h
  4203.  FG_SVGAVER     --    00A3h    00C3h
  4204.  FG_TCDEFINE     --    00A4h    00C4h
  4205.  FG_TCMASK    005Eh    00A5h    00C5h
  4206.  FG_TCXFER    005Dh    00A6h    00C6h
  4207.  FG_TESTMODE    0002h    00A7h    00C7h
  4208.  FG_TEXT    0032h    00A8h    00C8h
  4209.  FG_TEXTC     --     --    00C9h
  4210.  FG_TRANSFER    005Ch    00A9h    00CAh
  4211.  FG_UNPACK     --     --    00CBh
  4212.  FG_VBADDR     --     --    00CCh
  4213.  FG_VBALLOC     --     --    00CDh
  4214.  FG_VBCLOSE     --     --    00CEh
  4215.  FG_VBCOPY     --     --    00CFh
  4216.  FG_VBCUT     --     --    00D0h
  4217.  FG_VBDEFINE     --     --    00D1h
  4218.  FG_VBFREE     --     --    00D2h
  4219.  FG_VBHANDLE     --     --    00D3h
  4220.  FG_VBINIT     --     --    00D4h
  4221.  FG_VBOPEN     --     --    00D5h
  4222.  FG_VBPASTE     --     --    00D6h
  4223.  FG_VBTCCOPY     --     --    00D7h
  4224.  FG_VBTCXFER     --     --    00D8h
  4225.  FG_VBUNDEF     --     --    00D9h
  4226.  FG_VGASTATE     --     --    00DAh
  4227.  FG_VOICE    008Ah    00AAh    00DBh
  4228.  FG_VOICES    008Bh    00ABh    00DCh
  4229.  FG_WAITFOR    0096h    00ACh    00DDh
  4230.  FG_WAITKEY    006Dh    00ADh    00DEh
  4231.  FG_WAITVR     --    00AEh    00DFh
  4232.  FG_WHERE    0034h    00AFh    00E0h
  4233.  FG_XALPHA    000Ch    00B0h    00E1h
  4234.  FG_XCONVERT    000Eh    00B1h    00E2h
  4235.  FG_XVIEW     --     --    00E3h
  4236.  FG_YALPHA    000Dh    00B2h    00E4h
  4237.  FG_YCONVERT    000Fh    00B3h    00E5h
  4238.  FG_YVIEW     --     --    00E6h
  4239. SeeAlso: #2722
  4240. --------V-620001-----------------------------
  4241. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONV)
  4242.     AX = 0001h
  4243.     BX = page number (0001h-003Fh)
  4244. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2722)
  4245. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4246.       their parameters do not change (see #2723)
  4247.     The only operation which is allowed on logical pages is "FG_COPYPAGE"
  4248.       (see AX=0014h)
  4249. SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0014h,AX=0038h
  4250. --------V-620002-----------------------------
  4251. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
  4252.     AX = 0002h
  4253.     BX = page number (0001h-003Fh)
  4254. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2722)
  4255. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4256.       their parameters do not change (see #2723)
  4257.     You must first call "FG_INITEMS" (see AX=005Dh) before using this
  4258.       function
  4259.     The only operation which is allowed on logical pages is "FG_COPYPAGE"
  4260.       (see AX=0014h)
  4261. SeeAlso: AX=0000h,AX=0001h,AX=0003h,AX=0014h,AX=0038h,AX=005Dh
  4262. --------V-620003-----------------------------
  4263. INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
  4264.     AX = 0003h
  4265.     BX = page number (0001h-003Fh)
  4266. Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #2722)
  4267. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4268.       their parameters do not change (see #2723)
  4269.     You must first call "FG_INITXMS" (see AX=0060h) before using this
  4270.       function
  4271.     The only operation which is allowed on logical pages is "FG_COPYPAGE"
  4272.       (see AX=0014h)
  4273. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0014h,AX=0038h,AX=0060h
  4274. --------V-620004-----------------------------
  4275. INT 62 u - FGDRIVER 1.10,3.03+ - "FG_AUTOMODE" - GET VIDEO MODE W/MOST FEATURES
  4276.     AX = 0004h
  4277. Return: AX = proposed video mode number (see #2749 at AX=00B0h)
  4278. Program: FGDRIVER is the external video driver for the shareware
  4279.       Fastgraph/Light by Ted Gruber Software
  4280. Note:    the FGDRIVER functions are rearranged with each major release, but
  4281.       their parameters do not change (see #2723)
  4282. SeeAlso: AX=0005h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
  4283. --------V-620005-----------------------------
  4284. INT 62 u - FGDRIVER v3.03+ - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
  4285.     AX = 0005h
  4286.     BX = horizontal resolution
  4287.     CX = vertical resolution
  4288.     DX = number of video pages required (both physical and virtual)
  4289. Return: AX = proposed video mode number or FFFFh if no matching video mode
  4290. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4291.       their parameters do not change (see #2723)
  4292.     You must first call "FG_SVGAINIT" (see AX=00C1h) to get SVGA video
  4293.       modes
  4294. SeeAlso: AX=0004h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
  4295. --------V-620006-----------------------------
  4296. INT 62 u - FGDRIVER v3.03+ - "FG_BOX" - DRAW UNFILLED RECTANGLE
  4297.     AX = 0006h
  4298.     BX = left column
  4299.     CX = right column
  4300.     DX = top row
  4301.     SI = bottom row
  4302. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4303.       their parameters do not change (see #2723)
  4304.     The rectangle is drawn in screen space, respecting the clipping region,
  4305.       with edges of the width specified with "FG_BOXDEPTH" (see AX=0007h)
  4306.       (default = 1 is set by "FG_SETMODE")
  4307.     This function has no effect in text modes
  4308. SeeAlso: AX=0007h,AX=0008h,AX=000Ch,AX=0016h,AX=001Dh,AX=0026h,AX=0051h
  4309. SeeAlso: AX=0055h,AX=008Fh
  4310. --------V-620007-----------------------------
  4311. INT 62 u - FGDRIVER v3.03+ - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
  4312.     AX = 0007h
  4313.     BX = width of left and right edges in pixels (> 0)
  4314.     CX = width of top and bottom edges in pixels (> 0)
  4315. Note:    the FGDRIVER functions are rearranged with each major release, but
  4316.       their parameters do not change (see #2723)
  4317. SeeAlso: AX=0006h,AX=0008h,AX=0051h,AX=0055h
  4318. --------V-620008-----------------------------
  4319. INT 62 u - FGDRIVER v3.03+ - "FG_BOXX" - XOR HOLLOW RECTANGLE
  4320.     AX = 0008h
  4321.     BX = left column
  4322.     CX = right column
  4323.     DX = top row
  4324.     SI = bottom row
  4325. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4326.       their parameters do not change (see #2723)
  4327.     The rectangle is XORed into screen space, respecting the clipping
  4328.       region, with edges of the width specified with "FG_BOXDEPTH"
  4329.       (see AX=0007h) (default = 1 is set by "FG_SETMODE")
  4330.     This function has no effect in text modes
  4331. SeeAlso: AX=0006h,AX=0007h,AX=0021h,AX=0022h,AX=0051h,AX=0055h,AX=0090h
  4332. --------V-620009-----------------------------
  4333. INT 62 u - FGDRIVER v3.03+ - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
  4334.     AX = 0009h
  4335.     BX = joystick number (0001h or 0002h)
  4336. Return: AX = button states
  4337.         bit 0: top button pressed
  4338.         bit 1: bottom button pressed
  4339. Note:    the FGDRIVER functions are rearranged with each major release, but
  4340.       their parameters do not change (see #2723)
  4341. SeeAlso: AX=0052h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
  4342. --------V-62000A-----------------------------
  4343. INT 62 u - FGDRIVER v3.03+ - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
  4344.     AX = 000Ah
  4345. Return: AX = CapsLock state (0000h off, 0001h on)
  4346. Note:    the FGDRIVER functions are rearranged with each major release, but
  4347.       their parameters do not change (see #2723)
  4348. SeeAlso: AX=0082h,AX=00A4h,AX=00A8h,AX=00B1h
  4349. --------V-62000B-----------------------------
  4350. INT 62 u - FGDRIVER v3.03+ - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
  4351.     AX = 000Bh
  4352.     BX = number of characters to recolor
  4353. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4354.       their parameters do not change (see #2723)
  4355.     This call is ignored in graphics modes
  4356.     Starting at the current text cursor position, the specified number of
  4357.       characters have their attributes to the current text attribute
  4358. SeeAlso: AX=000Ch,AX=003Ah,AX=00A6h
  4359. --------V-62000C-----------------------------
  4360. INT 62 u - FGDRIVER v3.03+ - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
  4361.     AX = 000Ch
  4362.     CX = length of string
  4363.     ES:BX -> string to be displayed
  4364. Return: text cursor updated
  4365. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4366.       their parameters do not change (see #2723)
  4367.     This call is ignored in graphics modes
  4368. SeeAlso: AX=000Bh,AX=0096h
  4369. --------V-62000D-----------------------------
  4370. INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
  4371.     AX = 000Dh
  4372.     BX = radius in horizontal screen space units (> 0)
  4373. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4374.       their parameters do not change (see #2723)
  4375.     The circle is drawn in screen space, centered at the current graphics
  4376.       cursor position
  4377.     This call is ignored in text modes
  4378. SeeAlso: AX=0006h,AX=0008h,AX=000Eh,AX=0026h,AX=0093h
  4379. --------V-62000E-----------------------------
  4380. INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLEF" - DRAW FILLED CIRCLE
  4381.     AX = 000Eh
  4382.     BX = radius in horizontal screen space units (> 0)
  4383. Note:    the FGDRIVER functions are rearranged with each major release, but
  4384.       their parameters do not change (see #2723)
  4385. SeeAlso: AX=0008h,AX=000Dh,AX=0027h,AX=0092h
  4386. --------V-62000F-----------------------------
  4387. INT 62 u - FGDRIVER v4.02 - "FG_CLIPMAP" - DISPLAY CLIPPED IMAGE (MODE-INDEP)
  4388.     AX = 000Fh
  4389.     ES:BX -> bitmap
  4390.     CX = width
  4391.     DX = height
  4392. Desc:    display a mode-independent bitmap, showing only the portion within
  4393.       the current clipping limits
  4394. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4395.       their parameters do not change (see #2723)
  4396.     This call is ignored in text modes and in native EGA and VGA graphics
  4397.       modes
  4398.     The image is drawn with its lower left corner at the current graphics
  4399.       cursor position
  4400. SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=0086h,AX=00A9h,AX=00C5h
  4401. --------V-620010-----------------------------
  4402. INT 62 u - FGDRIVER v4.02 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
  4403.     AX = 0010h
  4404.     ES:BX -> array containing image stored as a masking map (see #2724)
  4405.     CX = number of pixel runs in masking map
  4406.     DX = width of masking map in pixels
  4407. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4408.       their parameters do not change (see #2723)
  4409.     This call is ignored in text modes and in native EGA and VGA graphics
  4410.       modes
  4411.     The image is drawn with its lower left corner at the current graphics
  4412.       cursor position
  4413. SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=00A1h,AX=00A9h,AX=00C5h
  4414. --------V-620011-----------------------------
  4415. INT 62 u - FGDRIVER v4.02 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
  4416.     AX = 0011h
  4417.     ES:BX -> mode-specific bitmap
  4418.     CX = width of bit map in bytes
  4419.     DX = height of bit map in pixel rows
  4420. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4421.       their parameters do not change (see #2723)
  4422.     This call is ignored in text modes
  4423.     The image is drawn with its lower left corner at the current graphics
  4424.       cursor position
  4425.     The current clipping region is used, extended to a byte boundary
  4426. SeeAlso: AX=0010h,AX=0024h,AX=0036h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
  4427. --------V-620012-----------------------------
  4428. INT 62 u - FGDRIVER v4.02 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
  4429.     AX = 0012h
  4430.     BX = screen space column of left edge
  4431.     CX = screen space column of right edge
  4432.     DX = screen space row of top edge
  4433.     SI = screen space row of bottom edge
  4434. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4435.       their parameters do not change (see #2723)
  4436.     This call is ignored in text modes
  4437. SeeAlso: AX=0006h,AX=0010h,AX=0011h,AX=0023h,AX=009Bh,AX=00A9h
  4438. --------V-620013-----------------------------
  4439. INT 62 u - FGDRIVER v4.02 - "FG_COLORS" - GET SIMULTANEOUSLY-AVAILABLE COLORS
  4440.     AX = 0013h
  4441. Return: AX = number of colors available at one time
  4442. Note:    the FGDRIVER functions are rearranged with each major release, but
  4443.       their parameters do not change (see #2723)
  4444. --------V-620014-----------------------------
  4445. INT 62 u - FGDRIVER v4.02 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
  4446.     AX = 0014h
  4447.     BX = source page number (0000h-003Fh)
  4448.     CX = destination page number (0000h-003Fh)
  4449. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4450.       their parameters do not change (see #2723)
  4451.     If both source and destination pages are logical pages, they must both
  4452.       be located in the same type (conventional, EMS, XMS) of memory
  4453. SeeAlso: AX=009Eh,AX=00A2h,AX=00C6h,AX=00CAh
  4454. --------V-620015-----------------------------
  4455. INT 62 u - FGDRIVER v4.02 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
  4456.     AX = 0015h
  4457.     BX = new state (0000h invisible, 0001h visible)
  4458. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4459.       their parameters do not change (see #2723)
  4460.     This call is ignored in text modes
  4461. SeeAlso: AX=000Ch,AX=0054h,AX=0058h,AX=006Bh,AX=0075h,AX=0079h,AX=007Eh
  4462. SeeAlso: AX=00E0h
  4463. --------V-620016-----------------------------
  4464. INT 62 u - FGDRIVER v4.02 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
  4465.     AX = 0016h
  4466.     BX = endpoint column
  4467.     CX = endpoint row
  4468.     DX = dash pattern (set bits cause drawn pixels)
  4469. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4470.       their parameters do not change (see #2723)
  4471.     This call is ignored in text modes
  4472.     The starting point is the current graphics cursor position; the cursor
  4473.       position is updated
  4474. SeeAlso: AX=0017h,AX=001Dh,AX=008Fh
  4475. --------V-620017-----------------------------
  4476. INT 62 u - FGDRIVER v4.02 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
  4477.     AX = 0017h
  4478.     BX = endpoint column offset
  4479.     CX = endpoint row offset
  4480.     DX = dash pattern (set bits cause drawn pixels)
  4481. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4482.       their parameters do not change (see #2723)
  4483.     This call is ignored in text modes
  4484.     The starting point is the current graphics cursor position; the cursor
  4485.       position is updated
  4486. SeeAlso: AX=0016h,AX=001Eh,AX=008Fh
  4487. --------V-620018-----------------------------
  4488. INT 62 u - FGDRIVER v4.02 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
  4489.     AX = 0018h
  4490.     BX = color index (0000h-00FFh)
  4491.     CX = new color value (0 to maximum color value for current video mode)
  4492. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4493.       their parameters do not change (see #2723)
  4494.     This call is ignored in text modes and 256-color graphics modes
  4495. SeeAlso: AX=0040h,AX=0045h,AX=00AAh
  4496. --------V-620019-----------------------------
  4497. INT 62 u - FGDRIVER v4.02 - "FG_DEFPAGES" - DEF SRC/DEST PAGES FOR BLOCK XFERS
  4498.     AX = 0019h
  4499.     BX = source page
  4500.     CX = destination page
  4501. Desc:    specify the source and destination SVGA banks for block transfers on
  4502.       extended video pages
  4503. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4504.       their parameters do not change (see #2723)
  4505.     This function is ignored if the video controller does not support
  4506.       extended pages or the current video mode does not allow them
  4507. SeeAlso: AX=0014h,AX=00CAh
  4508. --------V-62001A-----------------------------
  4509. INT 62 u - FGDRIVER v4.02 - "FG_DISPFILE" - DISPLAY STORED IMAGE
  4510.     AX = 001Ah
  4511.     ES:BX -> ASCIZ filename
  4512.     CX = image width in pixels (> 0)
  4513.     DX = image format
  4514.         0000h Fastgraph standard pixel run format
  4515.         0001h packed pixel run format
  4516. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4517.       their parameters do not change (see #2723)
  4518.     This call is ignored in text modes
  4519.     The image is displayed with its lower left corner at the current
  4520.       graphics cursor position
  4521. SeeAlso: AX=001Bh,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
  4522. --------V-62001B-----------------------------
  4523. INT 62 u - FGDRIVER v4.02 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
  4524.     AX = 001Bh
  4525.     ES:BX -> pixel run map (pairs of bytes: color index, count)
  4526.     CX = number of pixel runs to display
  4527.     DX = width of image in pixels (> 0)
  4528. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4529.       their parameters do not change (see #2723)
  4530.     This call is ignored in text modes
  4531.     The image is displayed with its lower left corner at the current
  4532.       graphics cursor position
  4533. SeeAlso: AX=001Ah,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
  4534. --------V-62001C-----------------------------
  4535. INT 62 u - FGDRIVER v4.02 - "FG_DISPLAYP" - DISPLAY IMAGE (PACKED PIXEL RUNS)
  4536.     AX = 001Ch
  4537.     ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
  4538.           contains the color for the first run in its high nybble and
  4539.           the color for the second run in its low nybble)
  4540.     CX = number of pixel runs to display
  4541.     DX = width of image in pixels (> 0)
  4542. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4543.       their parameters do not change (see #2723)
  4544.     This call is ignored in text modes
  4545.     The image is displayed with its lower left corner at the current
  4546.       graphics cursor position
  4547. SeeAlso: AX=001Ah,AX=001Bh,AX=00B9h,AX=00BAh,AX=00BBh
  4548. --------V-62001D-----------------------------
  4549. INT 62 u - FGDRIVER v4.02 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
  4550.     AX = 001Dh
  4551.     BX = endpoint column
  4552.     CX = endpoint row
  4553. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4554.       their parameters do not change (see #2723)
  4555.     This call is ignored in text modes
  4556.     The starting point is the current graphics cursor position; the cursor
  4557.       position is updated
  4558. SeeAlso: AX=0016h,AX=0020h,AX=0021h,AX=0026h,AX=008Fh,AX=0090h
  4559. --------V-62001E-----------------------------
  4560. INT 62 u - FGDRIVER v4.02 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
  4561.     AX = 001Eh
  4562.     ES:BX -> bitmap (each set bit is pixel drawn in current color)
  4563.     CX = width of bitmap in bytes
  4564.     DX = height of bitmap in pixel rows
  4565. Note:    the FGDRIVER functions are rearranged with each major release, but
  4566.       their parameters do not change (see #2723)
  4567. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
  4568. --------V-62001F-----------------------------
  4569. INT 62 u - FGDRIVER v4.02 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
  4570.     AX = 001Fh
  4571.     ES:BX -> array containing image stored as a masking map (see #2724)
  4572.     CX = number of pixel runs in masking map
  4573.     DX = width of masking map in pixels
  4574. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4575.       their parameters do not change (see #2723)
  4576.     This call is ignored in text modes and in native EGA and VGA graphics
  4577.       modes
  4578.     The image is drawn with its lower left corner at the current graphics
  4579.       cursor position
  4580. SeeAlso: AX=0010h,AX=001Fh,AX=00A1h,AX=00A9h
  4581.  
  4582. Format of FGDRIVER masking map:
  4583. Offset    Size    Description    (Table 2724)
  4584.  00h    BYTE    length of first "protect" run (pixels remain unchanged)
  4585.  01h    BYTE    length of first "zero" run (pixels set to background color)
  4586.  02h    BYTE    length of second "protect" run
  4587.  03h    BYTE    length of second "zero" run
  4588.     ...
  4589. --------V-620020-----------------------------
  4590. INT 62 u - FGDRIVER v4.02 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
  4591.     AX = 0020h
  4592.     BX = endpoint column offset
  4593.     CX = endpoint row offset
  4594. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4595.       their parameters do not change (see #2723 at AX=0000h)
  4596.     This call is ignored in text modes
  4597.     The starting point is the current graphics cursor position; the cursor
  4598.       position is updated
  4599. SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0021h,AX=0026h,AX=008Fh
  4600. --------V-620021-----------------------------
  4601. INT 62 u - FGDRIVER v4.02 - "FG_DRAWRELX" - XOR SOLID LINE TO RELATIVE POSITION
  4602.     AX = 0021h
  4603.     BX = endpoint column offset
  4604.     CX = endpoint row offset
  4605. Desc:    draw a solid line, XORing each pixel onto the screen
  4606. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4607.       their parameters do not change (see #2723 at AX=0000h)
  4608.     This call is ignored in text modes
  4609.     The starting point is the current graphics cursor position; the cursor
  4610.       position is updated
  4611. SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0020h,AX=0026h,AX=0090h
  4612. --------V-620022-----------------------------
  4613. INT 62 u - FGDRIVER v4.02 - "FG_DRAWX" - XOR SOLID LINE TO ABSOLUTE POSITION
  4614.     AX = 0022h
  4615.     BX = endpoint column
  4616.     CX = endpoint row
  4617. Desc:    draw a solid line, XORing each pixel onto the screen
  4618. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4619.       their parameters do not change (see #2723 at AX=0000h)
  4620.     This call is ignored in text modes
  4621.     The starting point is the current graphics cursor position; the cursor
  4622.       position is updated
  4623. SeeAlso: AX=001Dh,AX=0021h,AX=008Fh
  4624. --------V-620023-----------------------------
  4625. INT 62 u - FGDRIVER v4.02 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
  4626.     AX = 0023h
  4627.     BX = screen space column of left edge
  4628.     CX = screen space column of right edge
  4629.     DX = screen space row of top edge
  4630.     SI = screen space row of bottom edge
  4631.     ES:DI -> dithering matrix (video-mode dependent)
  4632. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4633.       their parameters do not change (see #2723 at AX=0000h)
  4634.     This call is ignored in text modes
  4635. SeeAlso: AX=0006h,AX=0008h,AX=0013h,AX=003Ch,AX=0089h,AX=009Bh
  4636. --------V-620024-----------------------------
  4637. INT 62 u - FGDRIVER v4.02 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
  4638.     AX = 0024h
  4639.     ES:BX -> video mode-specific bitmap
  4640.     CX = width of bitmap in bytes
  4641.     DX = height of bitmap in pixel rows
  4642. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4643.       their parameters do not change (see #2723 at AX=0000h)
  4644.     The image will be drawn with its lower left corner at the current
  4645.       cursor position (either text or graphics)
  4646. SeeAlso: AX=0011h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
  4647. --------V-620025-----------------------------
  4648. INT 62 u - FGDRIVER v4.02 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
  4649.     AX = 0025h
  4650. Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
  4651.           without an Enhanced Color Display
  4652. Note:    the FGDRIVER functions are rearranged with each major release, but
  4653.       their parameters do not change (see #2723 at AX=0000h)
  4654. SeeAlso: AX=00C2h
  4655. --------V-620026-----------------------------
  4656. INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
  4657.     AX = 0026h
  4658.     BX = horizontal semi-axis length in screen space units
  4659.     CX = vertical semi-axis length in screen space units
  4660. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4661.       their parameters do not change (see #2723 at AX=0000h)
  4662.     This call is ignored in text modes
  4663.     The ellipse is centered at the current graphics cursor position
  4664. SeeAlso: AX=0006h,AX=000Dh,AX=0027h,AX=008Fh,AX=0093h
  4665. --------V-620027-----------------------------
  4666. INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSEF" - DRAW FILLED ELLIPSE IN SCREEN SPACE
  4667.     AX = 0027h
  4668.     BX = horizontal semi-axis length in screen space units
  4669.     CX = vertical semi-axis length in screen space units
  4670. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4671.       their parameters do not change (see #2723 at AX=0000h)
  4672.     This call is ignored in text modes
  4673.     The ellipse is centered at the current graphics cursor position
  4674. SeeAlso: AX=0006h,AX=000Eh,AX=0026h,AX=008Fh,AX=0092h
  4675. --------V-620028-----------------------------
  4676. INT 62 u - FGDRIVER v4.02 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
  4677.     AX = 0028h
  4678. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4679.       their parameters do not change (see #2723 at AX=0000h)
  4680.     This function sets each pixel to 0 in graphics modes, each character
  4681.       cell to a blank with a gray foreground attribute in text modes
  4682. SeeAlso: AX=0029h,AX=002Bh,AX=0035h
  4683. --------V-620029-----------------------------
  4684. INT 62 u - FGDRIVER v4.02 - "FG_FADEIN" - FADE IN HIDDEN PAGE
  4685.     AX = 0029h
  4686.     BX = delay (0000h = fastest possible fade-in)
  4687. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4688.       their parameters do not change (see #2723 at AX=0000h)
  4689.     The current hidden page is copied to the current visible page in small
  4690.       random sections to produce a fade-in effect
  4691.     This call is ignored in text modes
  4692. SeeAlso: AX=0028h,AX=002Ah,AX=002Bh
  4693. --------V-62002A-----------------------------
  4694. INT 62 u - FGDRIVER v4.02 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
  4695.     AX = 002Ah
  4696.     BX = delay (0000h = fastest possible fade-out)
  4697. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4698.       their parameters do not change (see #2723 at AX=0000h)
  4699.     The current visible page is filled with pixels of the current color in
  4700.       small random sections to give a fade-out effect
  4701.     This call is ignored in text modes
  4702. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  4703. --------V-62002B-----------------------------
  4704. INT 62 u - FGDRIVER v4.02 - "FG_FILLPAGE" - FILL THE ACTIVE VIDEO PAGE
  4705.     AX = 002Bh
  4706. Desc:    fill the active video page with pixels of the current color (graphics
  4707.       modes) or the block character DBh with the current character
  4708.       attributes (text modes)
  4709. Note:    the FGDRIVER functions are rearranged with each major release, but
  4710.       their parameters do not change (see #2723 at AX=0000h)
  4711. SeeAlso: AX=0028h,AX=0029h,AX=002Ah
  4712. --------V-62002C-----------------------------
  4713. INT 62 u - FGDRIVER v4.02 - "FG_FINDPAGE" - FIND AVAILABLE VIRTUAL/LOGICAL PAGE
  4714.     AX = 002Ch
  4715. Return: AX = first available page number (virtual or logical page)
  4716. Note:    the FGDRIVER functions are rearranged with each major release, but
  4717.       their parameters do not change (see #2723 at AX=0000h)
  4718. SeeAlso: AX=0028h
  4719. --------V-62002D-----------------------------
  4720. INT 62 u - FGDRIVER v4.02 - "FG_FLICDONE" - CLOSE FLIC FILE
  4721.     AX = 002Dh
  4722.     ES:BX -> context descriptor (see AX=0030h)
  4723. Return: nothing
  4724. Note:    the FGDRIVER functions are rearranged with each major release, but
  4725.       their parameters do not change (see #2723 at AX=0000h)
  4726. SeeAlso: AX=002Eh,AX=0030h
  4727. --------V-62002E-----------------------------
  4728. INT 62 u - FGDRIVER v4.02 - "FG_FLICHEAD" - READ FLI/FLC FILE HEADER
  4729.     AX = 002Eh
  4730.     ES:BX -> FLICHEAD variable pointer record (see #2726)
  4731. Return: AX = status (see #2725)
  4732. Note:    the FGDRIVER functions are rearranged with each major release, but
  4733.       their parameters do not change (see #2723 at AX=0000h)
  4734. SeeAlso: AX=002Dh,AX=002Fh,AX=0030h,AX=0032h
  4735.  
  4736. (Table 2725)
  4737. Values for FGDRIVER FLIC processing status:
  4738.  0000h    successful
  4739.  FFFEh    not an FLI or FLC file
  4740.  FFFFh    file not found
  4741.  
  4742. Format of FGDRIVER FLICHEAD variable pointer record:
  4743. Offset    Size    Description    (Table 2726)
  4744.  00h    WORD    segment of ASCIZ FLI/FLC file name
  4745.  02h    WORD    offset of ASCIZ FLI/FLC file name
  4746.  04h    WORD    segment of buffer for 128-byte file header
  4747.  06h    WORD    offset of buffer for 128-byte file header
  4748. --------V-62002F-----------------------------
  4749. INT 62 u - FGDRIVER v4.02 - "FG_FLICMODE" - GET OPTIMAL VIDEO MODE FOR FLI/FLC
  4750.     AX = 002Fh
  4751.     ES:BX -> 128-byte buffer containing FLI/FLC file header (see AX=002Eh)
  4752. Return: AX = optimal 256-color graphics mode number
  4753.         FFFFh if invalid file header
  4754. Note:    the FGDRIVER functions are rearranged with each major release, but
  4755.       their parameters do not change (see #2723 at AX=0000h)
  4756. SeeAlso: AX=002Eh,AX=0030h
  4757. --------V-620030-----------------------------
  4758. INT 62 u - FGDRIVER v4.02 - "FG_FLICOPEN" - OPEN FLI/FLC FILE
  4759.     AX = 0030h
  4760.     ES:BX -> FLICOPEN variable pointer record (see #2727)
  4761. Return: AX = status (see #2725)
  4762. Note:    the FGDRIVER functions are rearranged with each major release, but
  4763.       their parameters do not change (see #2723 at AX=0000h)
  4764. SeeAlso: AX=002Dh,AX=002Eh,AX=002Fh,AX=0030h,AX=0031h,AX=0032h
  4765.  
  4766. Format of FGDRIVER FLICOPEN variable pointer record:
  4767. Offset    Size    Description    (Table 2727)
  4768.  00h    WORD    segment of ASCIZ FLI/FLC file name
  4769.  02h    WORD    offset of ASCIZ FLI/FLC file name
  4770.  04h    WORD    segment of buffer for 16-byte file context descriptor
  4771.  06h    WORD    offset of buffer for 16-byte file context descriptor
  4772. --------V-620031-----------------------------
  4773. INT 62 u - FGDRIVER v4.02 - "FG_FLICPLAY" - DISPLAY NEXT FRAME(S) IN FLI/FLC
  4774.     AX = 0031h
  4775.     ES:BX -> context descriptor (see AX=0030h)
  4776.     CX = number of frames to display starting at current frame
  4777.     DX = control flags (see #2728)
  4778. Return: AX = number of frames displayed
  4779. Note:    the FGDRIVER functions are rearranged with each major release, but
  4780.       their parameters do not change (see #2723 at AX=0000h)
  4781. SeeAlso: AX=0030h,AX=0033h,AX=00B8h
  4782.  
  4783. Bitfields for FGDRIVER FLI/FLC control flags:
  4784. Bit(s)    Description    (Table 2728)
  4785.  0    skip inter-frame delay specified in FLI/FLC header
  4786.  1    display relative to current graphics position
  4787.  2    dipslay image from the FG_IMAGEBUF buffer instead of file
  4788. --------V-620032-----------------------------
  4789. INT 62 u - FGDRIVER v4.02 - "FG_FLICSIZE" - GET IMAGE SIZE
  4790.     AX = 0032h
  4791.     ES:BX -> FLICSIZE variable pointer record (see #2729)
  4792. Return: image height/width buffers updated; height is set to FFFFh on error
  4793. Note:    the FGDRIVER functions are rearranged with each major release, but
  4794.       their parameters do not change (see #2723 at AX=0000h)
  4795. SeeAlso: AX=002Eh,AX=0030h
  4796.  
  4797. Format of FGDRIVER FLICSIZE variable pointer record:
  4798. Offset    Size    Description    (Table 2729)
  4799.  00h    WORD    segment of buffer for 128-byte FLI/FLC file header
  4800.  02h    WORD    offset of buffer for 128-byte FLI/FLC file header
  4801.  04h    WORD    segment of WORD buffer for image width in pixels
  4802.  06h    WORD    offset of WORD buffer for image width in pixels
  4803.  08h    WORD    segment of WORD buffer for image height in pixels
  4804.  0Ah    WORD    offset of WORD buffer for image height in pixels
  4805. --------V-620033-----------------------------
  4806. INT 62 u - FGDRIVER v4.02 - "FG_FLICSKIP" - SKIP FRAME(S) IN FLI/FLC FILE
  4807.     AX = 0033h
  4808.     ES:BX -> context descriptor (see AX=0030h)
  4809.     CX = number of frames to skip
  4810.         reset to first frame if skip count is negative
  4811. Return: AX = number of frames skipped (may be less than requested if EOF)
  4812.         0000h if resetting to first frame
  4813. Note:    the FGDRIVER functions are rearranged with each major release, but
  4814.       their parameters do not change (see #2723 at AX=0000h)
  4815. SeeAlso: AX=0030h,AX=0031h
  4816. --------V-620034-----------------------------
  4817. INT 62 u - FGDRIVER v4.02 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
  4818.     AX = 0034h
  4819.     ES:BX -> array containing image stored as a masking map (see #2724)
  4820.     CX = number of pixel runs in masking map
  4821.     DX = width of masking map in pixels
  4822. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4823.       their parameters do not change (see #2723 at AX=0000h)
  4824.     This call is ignored in text modes and in native EGA and VGA graphics
  4825.       modes
  4826.     The image is drawn with its lower left corner at the current graphics
  4827.       cursor position
  4828. SeeAlso: AX=000Fh,AX=001Fh,AX=0036h,AX=00A1h,AX=00A5h,AX=00C5h
  4829. --------V-620035-----------------------------
  4830. INT 62 u - FGDRIVER v4.02 - "FG_FLOOD" - FLOOD FILL ARBITRARY CLOSED REGION
  4831.     AX = 0035h
  4832.     BX = starting column
  4833.     CX = starting row
  4834. Desc:    fill the bounded region around the specified point (respecting clipping
  4835.       region) with the currrent color
  4836. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4837.       their parameters do not change (see #2723 at AX=0000h)
  4838.     This function is ignored in text modes
  4839. SeeAlso: AX=0028h,AX=0085h
  4840. --------V-620036-----------------------------
  4841. INT 62 u - FGDRIVER v4.02 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
  4842.     AX = 0036h
  4843.     ES:BX -> mode-specific bitmap
  4844.     CX = width of bit map in bytes
  4845.     DX = height of bit map in pixel rows
  4846. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4847.       their parameters do not change (see #2723 at AX=0000h)
  4848.     This call is ignored in text modes
  4849.     The image is drawn with its lower left corner at the current graphics
  4850.       cursor position
  4851.     The current clipping region is used, extended to a byte boundary
  4852. SeeAlso: AX=0011h,AX=0024h,AX=0034h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
  4853. --------V-620037-----------------------------
  4854. INT 62 u - FGDRIVER v4.02 - "FG_FONTSIZE" - SPECIFY FONT SIZE FOR TEXT OUTPUT
  4855.     AX = 0037h
  4856.     BX = desired character height in scan lines (8, 14, 16)
  4857. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4858.       their parameters do not change (see #2723 at AX=0000h)
  4859.     This call is ignored if the current mode is not a VGA or SVGA graphics
  4860.       mode, or the specified character height is not 8, 14, or 16
  4861. SeeAlso: AX=0096h
  4862. --------V-620038-----------------------------
  4863. INT 62 u - FGDRIVER v4.02 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
  4864.     AX = 0038h
  4865.     BX = page number (0000h-003Fh)
  4866. Return: AX = status (0000h,0001h,0007h,0009h) (see #2722)
  4867. Note:    the FGDRIVER functions are rearranged with each major release, but
  4868.       their parameters do not change (see #2723 at AX=0000h)
  4869. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0003h
  4870. --------V-620039-----------------------------
  4871. INT 62 u - FGDRIVER v4.02 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
  4872.     AX = 0039h
  4873. Return: AX = segment of active video page
  4874. Note:    the FGDRIVER functions are rearranged with each major release, but
  4875.       their parameters do not change (see #2723 at AX=0000h)
  4876. SeeAlso: AX=0042h,AX=00ACh
  4877. --------V-62003A-----------------------------
  4878. INT 62 u - FGDRIVER v4.02 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
  4879.     AX = 003Ah
  4880.     BX = row
  4881.     CX = column
  4882. Return: AX = character attribute at specified location on active video page
  4883. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4884.       their parameters do not change (see #2723 at AX=0000h)
  4885.     This call is ignored in graphics modes
  4886. SeeAlso: AX=000Bh,AX=003Dh,AX=0040h,AX=00A6h
  4887. --------V-62003B-----------------------------
  4888. INT 62 u - FGDRIVER v4.02 - "FG_GETBANKS" - GET SVGA READ AND WRITE BANKS
  4889.     AX = 003Bh
  4890.     ES:BX -> GETBANKS variable pointer record (see #2730)
  4891. Return: nothing
  4892. Note:    the FGDRIVER functions are rearranged with each major release, but
  4893.       their parameters do not change (see #2723 at AX=0000h)
  4894. SeeAlso: AX=00A7h
  4895.  
  4896. Format of FGDRIVER GETBANKS variable pointer record:
  4897. Offset    Size    Description    (Table 2730)
  4898.  00h    WORD    segment of WORD buffer for read bank number
  4899.  02h    WORD    offset of WORD buffer for read bank number
  4900.  04h    WORD    segment of WORD buffer for write bank number
  4901.  06h    WORD    offset of WORD buffer for write bank number
  4902. --------V-62003C-----------------------------
  4903. INT 62 u - FGDRIVER v4.02 - "FG_GETBLOCK" - GRAB RECTANGLE OF DISPLAY
  4904.     AX = 003Ch
  4905.     ES:BX -> buffer for screen contents
  4906.     CX = leftmost column
  4907.     DX = rightmost column
  4908.     SI = top row
  4909.     DI = bottom row
  4910. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4911.       their parameters do not change (see #2723 at AX=0000h)
  4912.     In text modes, coordinates are character positions; in graphics modes,
  4913.       they are defined in screen space, and the left and right edges are
  4914.       adjusted to a byte boundary if necessary
  4915.     Use "FG_IMAGESIZ" (see AX=005Ch) to determine the required buffer size
  4916. SeeAlso: AX=0044h,AX=005Ch,AX=0098h
  4917. --------V-62003D-----------------------------
  4918. INT 62 u - FGDRIVER v4.02 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
  4919.     AX = 003Dh
  4920.     BX = row
  4921.     CX = column
  4922. Return: AX = character at specified location on active video page
  4923. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4924.       their parameters do not change (see #2723 at AX=0000h)
  4925.     This call is ignored in graphics modes
  4926. SeeAlso: AX=000Bh,AX=003Ah,AX=0096h,AX=00A6h,AX=00C8h
  4927. --------V-62003E-----------------------------
  4928. INT 62 u - FGDRIVER v4.02 - "FG_GETCLIP" - GET CLIPPING REGION IN SCREEN SPACE
  4929.     AX = 003Eh
  4930.     ES:BX -> GETCLIP variable pointer record (see #2731)
  4931. Return: variables specifed by GETCLIP structure updated
  4932. Note:    the FGDRIVER functions are rearranged with each major release, but
  4933.       their parameters do not change (see #2723 at AX=0000h)
  4934. SeeAlso: AX=00CAh
  4935.  
  4936. Format of FGDRIVER GETCLIP variable pointer record:
  4937. Offset    Size    Description    (Table 2731)
  4938.  00h    WORD    segment of WORD buffer for minimum X coordinate (left edge)
  4939.  02h    WORD    offset of WORD buffer for minimum X coordinate (left edge)
  4940.  04h    WORD    segment of WORD buffer for maximum X coordinate (right edge)
  4941.  06h    WORD    offset of WORD buffer for maximum X coordinate (right edge)
  4942.  08h    WORD    segment of WORD buffer for minimum Y coordinate (top edge)
  4943.  0Ah    WORD    offset of WORD buffer for minimum Y coordinate (top edge)
  4944.  0Ch    WORD    segment of WORD buffer for maximum Y coordinate (bottom edge)
  4945.  0Eh    WORD    offset of WORD buffer for maximum Y coordinate (bottom edge)
  4946. --------V-62003F-----------------------------
  4947. INT 62 u - FGDRIVER v4.02 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
  4948.     AX = 003Fh
  4949. Return: DX:AX = number of clock ticks since midnight
  4950. Note:    the FGDRIVER functions are rearranged with each major release, but
  4951.       their parameters do not change (see #2723 at AX=0000h)
  4952. SeeAlso: INT 1A/AH=00h
  4953. --------V-620040-----------------------------
  4954. INT 62 u - FGDRIVER v4.02 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
  4955.     AX = 0040h
  4956. Return: AX = current text attribute or color index (graphics modes)
  4957. Note:    the FGDRIVER functions are rearranged with each major release, but
  4958.       their parameters do not change (see #2723 at AX=0000h)
  4959. SeeAlso: AX=000Bh,AX=003Ah,AX=00A6h
  4960. --------V-620041-----------------------------
  4961. INT 62 u - FGDRIVER v4.02 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
  4962.     AX = 0041h
  4963.     CX = number of DAC registers to return (0001h to 0100h)
  4964.     DX = starting DAC register number (0000h to 00FFh)
  4965.     ES:BX -> buffer for DAC red/green/blue triples
  4966. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4967.       their parameters do not change (see #2723 at AX=0000h)
  4968.     The register number wraps back to zero after FFh
  4969. SeeAlso: AX=004Eh,AX=0086h,AX=00ABh
  4970. --------V-620042-----------------------------
  4971. INT 62 u - FGDRIVER v4.02 - "FG_GETENTRY" - GET PAGE TYPE AND ADDRESS
  4972.     AX = 0042h
  4973.     ES:BX -> variable pointer record (see #2732)
  4974.     CX = page number (00h-3Fh)
  4975. Notes:    the FGDRIVER functions are rearranged with each major release, but
  4976.       their parameters do not change (see #2723 at AX=0000h)
  4977.     Page addresses are segments for pages stored in conventional memory
  4978.       (including physical and virtual pages), and EMS or XMS handles for
  4979.       pages stored in EMS or XMS
  4980. SeeAlso: AX=0000h,AX=00ACh
  4981.  
  4982. Format of FGDRIVER GETENTRY variable pointer record:
  4983. Offset    Size    Description    (Table 2732)
  4984.  00h    WORD    segment of WORD buffer for page address
  4985.  02h    WORD    offset of WORD buffer for page address
  4986.  04h    WORD    segment of WORD buffer for page type (se #2733)
  4987.  06h    WORD    offset of WORD buffer for page type
  4988.  
  4989. (Table 2733)
  4990. Values for FGDRIVER page type:
  4991.  0000h    unallocated
  4992.  0001h    physical
  4993.  0002h    virtual
  4994.  0003h    logical page, stored in expanded memory (EMS)
  4995.  0004h    logical page, stored in extended memory (XMS)
  4996.  0005h    logical page, stored in conventional memory
  4997. --------V-620043-----------------------------
  4998. INT 62 u - FGDRIVER v4.02 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
  4999.     AX = 0043h
  5000. Return: AX = current hidden video page number (0000h-003Fh)
  5001. Note:    the FGDRIVER functions are rearranged with each major release, but
  5002.       their parameters do not change (see #2723 at AX=0000h)
  5003. SeeAlso: AX=004Ch,AX=0050h,AX=00AEh
  5004. --------V-620044-----------------------------
  5005. INT 62 u - FGDRIVER v4.02 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
  5006.     AX = 0044h
  5007.     ES:BX -> buffer for video mode-specific bitmap
  5008.     CX = width of bitmap in bytes
  5009.     DX = height of bitmap in pixel rows
  5010. Note:    the FGDRIVER functions are rearranged with each major release, but
  5011.       their parameters do not change (see #2723 at AX=0000h)
  5012. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0099h,AX=00A0h
  5013. --------V-620045-----------------------------
  5014. INT 62 u - FGDRIVER v4.02 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
  5015.     AX = 0045h
  5016.     BX = color index (0000h to 00FFh)
  5017. Return: AX = color value for specified color index
  5018. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5019.       their parameters do not change (see #2723 at AX=0000h)
  5020.     This call returns the value passed to it in text and 256-color
  5021.       graphics modes
  5022. SeeAlso: AX=0018h,AX=0040h
  5023. --------V-620046-----------------------------
  5024. INT 62 u - FGDRIVER v4.02 - "FG_GETKEY" - GET NEXT KEYSTROKE
  5025.     AX = 0046h
  5026.     ES:BX -> variable pointer record (see #2734)
  5027. Return: (after next keystroke if no typeahead) variables updated
  5028. Note:    the FGDRIVER functions are rearranged with each major release, but
  5029.       their parameters do not change (see #2723 at AX=0000h)
  5030. SeeAlso: AX=000Ah,AX=0063h,AX=0069h,AX=00DEh,INT 16/AH=00h
  5031.  
  5032. Format of FGDRIVER GETKEY variable pointer record:
  5033. Offset    Size    Description    (Table 2734)
  5034.  00h    WORD    segment of BYTE buffer for ASCII keycode
  5035.  02h    WORD    offset of BYTE buffer for ASCII keycode
  5036.  04h    WORD    segment of BYTE buffer for extended keycode
  5037.  06h    WORD    offset of BYTE buffer for extended keycode
  5038. --------V-620047-----------------------------
  5039. INT 62 u - FGDRIVER v4.02 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
  5040.     AX = 0047h
  5041. Return: AX = number of text rows on screen in current video mode
  5042. Note:    the FGDRIVER functions are rearranged with each major release, but
  5043.       their parameters do not change (see #2723 at AX=0000h)
  5044. SeeAlso: AX=00AFh,AX=00C2h
  5045. --------V-620048-----------------------------
  5046. INT 62 u - FGDRIVER v4.02 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
  5047.     AX = 0048h
  5048.     ES:BX -> buffer for video mode-independent bitmap
  5049.     CX = width of bitmap in bytes
  5050.     DX = height of bitmap in pixel rows
  5051. Return: each bit in bitmap is set if corresponding pixel is of the current
  5052.       color, cleared otherwise
  5053. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5054.       their parameters do not change (see #2723 at AX=0000h)
  5055.     This call is ignored in text modes
  5056. SeeAlso: AX=0011h,AX=001Eh,AX=0024h
  5057. --------V-620049-----------------------------
  5058. INT 62 u - FGDRIVER v4.02 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
  5059.     AX = 0049h
  5060. Return: AX = maximum X coordinate in screen space
  5061.         (or character space if in text mode)
  5062. Note:    the FGDRIVER functions are rearranged with each major release, but
  5063.       their parameters do not change (see #2723 at AX=0000h)
  5064. SeeAlso: AX=004Ah,AX=00C1h
  5065. --------V-62004A-----------------------------
  5066. INT 62 u - FGDRIVER v4.02 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
  5067.     AX = 004Ah
  5068. Return: AX = maximum Y coordinate in screen space
  5069.         (or character space if in text mode)
  5070. Note:    the FGDRIVER functions are rearranged with each major release, but
  5071.       their parameters do not change (see #2723 at AX=0000h)
  5072. SeeAlso: AX=0049h,AX=00C1h
  5073. --------V-62004B-----------------------------
  5074. INT 62 u - FGDRIVER v4.02 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
  5075.     AX = 004Bh
  5076.     ES:BX -> WORD ???
  5077. Return: AX = current video mode number
  5078. Note:    the FGDRIVER functions are rearranged with each major release, but
  5079.       their parameters do not change (see #2723 at AX=0000h)
  5080. SeeAlso: AX=00B0h
  5081. --------V-62004C-----------------------------
  5082. INT 62 u - FGDRIVER v4.02 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
  5083.     AX = 004Ch
  5084. Return: AX = active video page (0000h-003Fh)
  5085. Note:    the FGDRIVER functions are rearranged with each major release, but
  5086.       their parameters do not change (see #2723 at AX=0000h)
  5087. SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=00B2h
  5088. --------V-62004D-----------------------------
  5089. INT 62 u - FGDRIVER v4.02 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
  5090.     AX = 004Dh
  5091.     BX = column in screen space
  5092.     CX = row in screen space
  5093. Return: AX = color value of pixel (0 to num_colors-1)
  5094.         0000h in text modes
  5095. Note:    the FGDRIVER functions are rearranged with each major release, but
  5096.       their parameters do not change (see #2723 at AX=0000h)
  5097. SeeAlso: AX=003Ah,AX=003Dh,AX=008Fh,AX=0090h
  5098. --------V-62004E-----------------------------
  5099. INT 62 u - FGDRIVER v4.02 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
  5100.     AX = 004Eh
  5101.     ES:BX -> variable pointer record (see #2735)
  5102.     CX = DAC register number
  5103. Return: variables updated
  5104. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5105.       their parameters do not change (see #2723 at AX=0000h)
  5106.     This call is ignored in text modes and CGA/EGA video modes (since
  5107.       they do not use DAC registers)
  5108. SeeAlso: AX=0041h,AX=0086h,AX=00ABh
  5109.  
  5110. Format of FGDRIVER GETRGB variable pointer record:
  5111. Offset    Size    Description    (Table 2735)
  5112.  00h    WORD    segment of WORD buffer for red component of DAC register
  5113.  02h    WORD    offset of WORD buffer for red component
  5114.  04h    WORD    segment of WORD buffer for green component of DAC register
  5115.  06h    WORD    offset of WORD buffer for green component
  5116.  08h    WORD    segment of WORD buffer for blue component of DAC register
  5117.  0Ah    WORD    offset of WORD buffer for blue component
  5118. --------V-62004F-----------------------------
  5119. INT 62 u - FGDRIVER v4.02 - "FG_GETVIEW" - GET VIEWPORT EXTREME LIMITS
  5120.     AX = 004Fh
  5121.     ES:BX -> variable pointer record (see #2736)
  5122. Return: indicated variables updated
  5123. Note:    the FGDRIVER functions are rearranged with each major release, but
  5124.       their parameters do not change (see #2723 at AX=0000h)
  5125. SeeAlso: AX=00B5h
  5126.  
  5127. Format of FGDRIVER GETVIEW variable pointer record:
  5128. Offset    Size    Description    (Table 2736)
  5129.  00h    WORD    segment of WORD buffer for viewport left edge (viewport units)
  5130.  02h    WORD    offset of WORD buffer for viewport left edge (viewport units)
  5131.  04h    WORD    segment of WORD buffer for viewport right edge (viewport units)
  5132.  06h    WORD    offset of WORD buffer for viewport right edge (viewport units)
  5133.  08h    WORD    segment of WORD buffer for viewport top edge (viewport units)
  5134.  0Ah    WORD    offset of WORD buffer for viewport top edge (viewport units)
  5135.  0Ch    WORD    segment of WORD buffer for viewport bottom edge (viewp. units)
  5136.  0Eh    WORD    offset of WORD buffer for viewport bottom edge (viewp. units)
  5137.  10h    WORD    segment of WORD buffer for viewport left edge (screen space)
  5138.  12h    WORD    offset of WORD buffer for viewport left edge (screen space)
  5139.  14h    WORD    segment of WORD buffer for viewport right edge (screen space)
  5140.  16h    WORD    offset of WORD buffer for viewport right edge (screen space)
  5141.  18h    WORD    segment of WORD buffer for viewport top edge (screen space)
  5142.  1Ah    WORD    offset of WORD buffer for viewport top edge (screen space)
  5143.  1Ch    WORD    segment of WORD buffer for viewport bottom edge (screen space)
  5144.  1Eh    WORD    offset of WORD buffer for viewport bottom edge (screen space)
  5145. --------V-620050-----------------------------
  5146. INT 62 u - FGDRIVER v4.02 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
  5147.     AX = 0050h
  5148. Return: AX = visible video page (0000h-003Fh)
  5149. Note:    the FGDRIVER functions are rearranged with each major release, but
  5150.       their parameters do not change (see #2723 at AX=0000h)
  5151. SeeAlso: AX=0043h,AX=004Ch,AX=00B6h
  5152. --------V-620051-----------------------------
  5153. INT 62 u - FGDRIVER v4.02 - "FG_GETXBOX" - GET WIDTH OF VERTICAL BOX LINES
  5154.     AX = 0051h
  5155. Return: AX = width (in pixels) of left and right edges of rectangles
  5156. Note:    the FGDRIVER functions are rearranged with each major release, but
  5157.       their parameters do not change (see #2723 at AX=0000h)
  5158. SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=006Bh
  5159. --------V-620052-----------------------------
  5160. INT 62 u - FGDRIVER v4.02 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
  5161.     AX = 0052h
  5162.     BX = joystick number (0001h or 0002h)
  5163. Return: AX = horizontal position of joystick
  5164.         FFFFh if joystick uninitialized or not present
  5165. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5166.       their parameters do not change (see #2723 at AX=0000h)
  5167.     The actual coordinates are processor- and joystick-dependent
  5168.     You must call "FG_INITJOY" (AX=005Eh) before using this function
  5169. SeeAlso: AX=0009h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
  5170. --------V-620053-----------------------------
  5171. INT 62 u - FGDRIVER v4.02 - "FG_GETXJUST" - GET HORIZONTAL JUSTIFICATION
  5172.     AX = 0053h
  5173. Return: AX = string justification
  5174.         0000h strings are centered around current graphics X position
  5175.         0001h strings are right-justified at current graphics X position
  5176.         FFFFh strings are left-justified at current graphics X position
  5177. Note:    the FGDRIVER functions are rearranged with each major release, but
  5178.       their parameters do not change (see #2723 at AX=0000h)
  5179. SeeAlso: AX=006Ch,AX=007Bh
  5180. --------V-620054-----------------------------
  5181. INT 62 u - FGDRIVER v4.02 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
  5182.     AX = 0054h
  5183. Return: AX = screen space X coordinate of graphics cursor position
  5184. Note:    the FGDRIVER functions are rearranged with each major release, but
  5185.       their parameters do not change (see #2723 at AX=0000h)
  5186. SeeAlso: AX=0058h,AX=007Eh,AX=007Fh
  5187. --------V-620055-----------------------------
  5188. INT 62 u - FGDRIVER v4.02 - "FG_GETYBOX" - GET WIDTH OF HORIZONTAL BOX LINES
  5189.     AX = 0055h
  5190. Return: AX = width (in pixels) of top and bottom edges of rectangles
  5191. Note:    the FGDRIVER functions are rearranged with each major release, but
  5192.       their parameters do not change (see #2723 at AX=0000h)
  5193. SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=0063h
  5194. --------V-620056-----------------------------
  5195. INT 62 u - FGDRIVER v4.02 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
  5196.     AX = 0056h
  5197.     BX = joystick number (0001h or 0002h)
  5198. Return: AX = vertical position of joystick
  5199.         FFFFh if joystick uninitialized or not present
  5200. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5201.       their parameters do not change (see #2723 at AX=0000h)
  5202.     The actual coordinates are processor- and joystick-dependent
  5203.     You must call "FG_INITJOY" (AX=005Eh) before using this function
  5204. SeeAlso: AX=0009h,AX=0052h,AX=005Eh,AX=0062h,AX=0077h
  5205. --------V-620057-----------------------------
  5206. INT 62 u - FGDRIVER v4.02 - "FG_GETYJUST" - GET VERTICAL JUSTIFICATION
  5207.     AX = 0057h
  5208. Return: AX = string justification
  5209.         0000h strings are centered around current graphics Y position
  5210.         0001h strings have top edge at current graphics Y position
  5211.         FFFFh strings have bottom edge at current graphics Y position
  5212. Note:    the FGDRIVER functions are rearranged with each major release, but
  5213.       their parameters do not change (see #2723 at AX=0000h)
  5214. SeeAlso: AX=0053h,AX=0065h
  5215. --------V-620058-----------------------------
  5216. INT 62 u - FGDRIVER v4.02 - "FG_GETYPOS" - GET GRAPHICS CURSOR ROW
  5217.     AX = 0058h
  5218. Return: AX = screen space Y coordinate of graphics cursor position
  5219. Note:    the FGDRIVER functions are rearranged with each major release, but
  5220.       their parameters do not change (see #2723 at AX=0000h)
  5221. SeeAlso: AX=0054h,AX=007Eh,AX=007Fh
  5222. --------V-620059-----------------------------
  5223. INT 62 u - FGDRIVER v4.02 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
  5224.     AX = 0059h
  5225. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5226.       their parameters do not change (see #2723 at AX=0000h)
  5227.     This function immediately stops any sounds started with "FG_MUSICB",
  5228.       "FG_SOUNDS", or "FG_VOICES"; it is ignored if no asynchronous sound
  5229.       is playing
  5230. SeeAlso: AX=005Ah,AX=0081h,AX=00BDh,AX=00DCh
  5231. --------V-62005A-----------------------------
  5232. INT 62 u - FGDRIVER v4.02 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
  5233.     AX = 005Ah
  5234. Program: FGDRIVER is the external video driver for the shareware
  5235.       Fastgraph/Light by Ted Gruber Software
  5236. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5237.       their parameters do not change (see #2723 at AX=0000h)
  5238.     This function stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
  5239.       or "FG_VOICES" after the current repetition completes; it is ignored
  5240.       unless asynchronous sound is continuous
  5241. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  5242. --------V-62005B-----------------------------
  5243. INT 62 u - FGDRIVER v4.02 - "FG_IMAGEBUF" - SPECIFY TEMPORARY IMAGE BUFFER
  5244.     AX = 005Bh
  5245.     ES:BX -> buffer to be used when creating or displaying GIF/PCX/PPR/SPR
  5246.           images
  5247.     CX = size of buffer in bytes or 0000h to use internal buffer
  5248. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5249.       their parameters do not change (see #2723 at AX=0000h)
  5250.     Fastgraph's internal buffer is 4096 bytes; this function allows the
  5251.       application to define a larger buffer which will typically speed
  5252.       processing
  5253. SeeAlso: AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  5254. --------V-62005C-----------------------------
  5255. INT 62 u - FGDRIVER v4.02 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
  5256.     AX = 005Ch
  5257.     BX = image width in pixels
  5258.     CX = image height in pixels
  5259. Note:    the FGDRIVER functions are rearranged with each major release, but
  5260.       their parameters do not change (see #2723 at AX=0000h)
  5261. Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
  5262. SeeAlso: AX=003Ch,AX=0098h
  5263. --------V-62005D-----------------------------
  5264. INT 62 u - FGDRIVER v4.02 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
  5265.     AX = 005Dh
  5266. Return: AX = status
  5267.         0000h successful
  5268.         FFFFh expanded memory manager inaccessible or not installed
  5269. Note:    the FGDRIVER functions are rearranged with each major release, but
  5270.       their parameters do not change (see #2723 at AX=0000h)
  5271. SeeAlso: AX=0002h,AX=0060h"v4.02"
  5272. --------V-62005E-----------------------------
  5273. INT 62 u - FGDRIVER v4.02 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
  5274.     AX = 005Eh
  5275.     BX = joystick number (0001h or 0002h)
  5276. Return: AX = status
  5277.         0000h successful
  5278.         FFFFh joystick not connected or no game port
  5279. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5280.       their parameters do not change (see #2723 at AX=0000h)
  5281.     Fastgraph assumes that the requested joystick is centered at the time
  5282.       this function is called
  5283. SeeAlso: AX=0009h,AX=0052h,AX=0056h,AX=0062h,AX=0077h
  5284. --------V-62005F-----------------------------
  5285. INT 62 u - FGDRIVER v4.02 - "FG_INITPM"??? - (NOT IMPLEMENTED)
  5286.     AX = 005Fh
  5287.     ???
  5288. Return: ???
  5289. Note:    the FGDRIVER functions are rearranged with each major release, but
  5290.       their parameters do not change (see #2723 at AX=0000h)
  5291. --------V-620060-----------------------------
  5292. INT 62 u - FGDRIVER v1.10 only - "FG_DISPPCX" - DISPLAY PCX FILE
  5293.     AX = 0060h
  5294.     ES:BX -> ASCIZ filename
  5295.     CX = flags
  5296.         bit 0: use current palette rather than PCX file's palette
  5297.         bits 1-15 reserved (0)
  5298. Return: AX = status
  5299.         0000h success
  5300.         0001h file not found
  5301.         0002h file is not a valid PCX file
  5302. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5303.       their parameters do not change (see #2723 at AX=0000h)
  5304.     This call is ignored in text modes and Hercules low-resolution graphics
  5305.     The image is displayed with its upper left corner at the current
  5306.       graphics cursor position
  5307. SeeAlso: AX=00B9h
  5308. --------V-620060-----------------------------
  5309. INT 62 u - FGDRIVER v4.02 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
  5310.     AX = 0060h
  5311. Return: AX = status
  5312.         0000h successful
  5313.         FFFFh extended memory manager inaccessible or not installed
  5314. Note:    the FGDRIVER functions are rearranged with each major release, but
  5315.       their parameters do not change (see #2723 at AX=0000h)
  5316. SeeAlso: AX=0003h,AX=005Dh
  5317. --------V-620061-----------------------------
  5318. INT 62 u - FGDRIVER v4.02 - "FG_INSIDE" - CHECK IF POINT INSIDE CONVEX POLYGON
  5319.     AX = 0061h
  5320.     ES:BX -> vertex array
  5321.     CX = number of vertices
  5322.     DX = screen space column of point to test
  5323.     SI = screen space row of point to test
  5324. Return: AX = result
  5325.         0000h point is outside polygon
  5326.         0001h point is inside polygon
  5327.         undefined if not a convex polygon
  5328. Note:    the FGDRIVER functions are rearranged with each major release, but
  5329.       their parameters do not change (see #2723 at AX=0000h)
  5330. SeeAlso: AX=0092h,AX=0093h,AX=0094h
  5331. --------V-620062-----------------------------
  5332. INT 62 u - FGDRIVER v4.02 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
  5333.     AX = 0062h
  5334.     CX = joystick number (0001h or 0002h)
  5335.     ES:BX -> variable pointer record (see #2737)
  5336. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5337.       their parameters do not change (see #2723 at AX=0000h)
  5338.     If the indicated joystick has not been initialized with AX=008Eh, both
  5339.       the button code and joystick position will be set to 00h
  5340.     If either button is pressed, a button code of 0Dh is returned;
  5341.       otherwise, a button code of 00h is returned
  5342. SeeAlso: AX=0009h,AX=0052h,AX=0046h,AX=005Eh,AX=0077h
  5343.  
  5344. Format of FGDRIVER INTJOY variable pointer record:
  5345. Offset    Size    Description    (Table 2737)
  5346.  00h    WORD    segment of BYTE buffer for button code
  5347.  02h    WORD    offset of BYTE buffer for button code
  5348.  04h    WORD    segment of BYTE buffer for joystick position
  5349.  06h    WORD    offset of BYTE buffer for joystick position
  5350. --------V-620063-----------------------------
  5351. INT 62 u - FGDRIVER v4.02 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
  5352.     AX = 0063h
  5353.     ES:BX -> variable pointer record (see #2738)
  5354. Return: variables updated
  5355. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5356.       their parameters do not change (see #2723 at AX=0000h)
  5357.     If the keyboard buffer is empty, both the ASCII and extended keycodes
  5358.       are set to 00h
  5359. SeeAlso: AX=000Ah,AX=0046h,AX=0069h,AX=00DEh,INT 16/AH=01h
  5360.  
  5361. Format of FGDRIVER INTKEY variable pointer record:
  5362. Offset    Size    Description    (Table 2738)
  5363.  00h    WORD    segment of BYTE buffer for ASCII keycode
  5364.  02h    WORD    offset of BYTE buffer for ASCII keycode
  5365.  04h    WORD    segment of BYTE buffer for extended keycode
  5366.  06h    WORD    offset of BYTE buffer for extended keycode
  5367. --------V-620064-----------------------------
  5368. INT 62 u - FGDRIVER v4.02 - "FG_INVERT" - INVERT ORIENTATION OF BITMAP
  5369.     AX = 0064h
  5370.     ES:BX -> bitmap
  5371.     CX = width of bitmap in bytes
  5372.     DX = height of bitmap in pixel rows
  5373. Return: nothing
  5374. Note:    the FGDRIVER functions are rearranged with each major release, but
  5375.       their parameters do not change (see #2723 at AX=0000h)
  5376. --------V-620065-----------------------------
  5377. INT 62 u - FGDRIVER v4.02 - "FG_JUSTIFY" - SET TEXT OUTPUT JUSTIFICATION
  5378.     AX = 0065h
  5379.     BX = horizontal justification
  5380.           (00h centered, 01h right-justified, FFh left-justified)
  5381.     CX = vertical justification
  5382.           (00h centered, 01h top of characters, FFh bottom of chars)
  5383. Note:    the FGDRIVER functions are rearranged with each major release, but
  5384.       their parameters do not change (see #2723 at AX=0000h)
  5385. SeeAlso: AX=000Ch,AX=0037h,AX=0053h,AX=0057h,AX=0096h
  5386. --------V-620066-----------------------------
  5387. INT 62 u - FGDRIVER v4.02 - "FG_KBINIT" - ENABLE/DISABLE LOW-LEVEL KBD HANDLER
  5388.     AX = 0066h
  5389.     BX = new state (0000h disabled, 0001h enabled)
  5390. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5391.       their parameters do not change (see #2723 at AX=0000h)
  5392.     When the low-level handler is enabled, "FG_GETKEY", "FG_INTKEY",
  5393.       "FG_WAITKEY", and all other functions calling DOS or BIOS keyboard
  5394.       services become unavailable
  5395. SeeAlso: AX=0067h,AX=0068h,AX=0069h
  5396. --------V-620067-----------------------------
  5397. INT 62 u - FGDRIVER v4.02 - "FG_KBLAST" - GET MOST RECENT SCANCODE PROCESSED
  5398.     AX = 0067h
  5399. Return: AX = scancode for keypress most recently processed by FastGraph's
  5400.           low-level keyboard handler, or 0000h if no keys since FG_KBINIT
  5401. Note:    the FGDRIVER functions are rearranged with each major release, but
  5402.       their parameters do not change (see #2723 at AX=0000h)
  5403. SeeAlso: AX=0066h,AX=0068h,AX=0069h
  5404. --------V-620068-----------------------------
  5405. INT 62 u - FGDRIVER v4.02 - "FG_KBRESET" - RESET LOW-LEVEL KEYBOARD HANDLER
  5406.     AX = 0068h
  5407. Note:    the FGDRIVER functions are rearranged with each major release, but
  5408.       their parameters do not change (see #2723 at AX=0000h)
  5409. SeeAlso: AX=0066h,AX=0067h,AX=0069h
  5410. --------V-620069-----------------------------
  5411. INT 62 u - FGDRIVER v4.02 - "FG_KBTEST" - CHECK WHETHER SPECIFIED KEY PRESSED
  5412.     AX = 0069h
  5413.     BX = scan code of desired key
  5414. Return: AX = state
  5415.         0000h key is not pressed
  5416.         0001h key is currently pressed
  5417. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5418.       their parameters do not change (see #2723 at AX=0000h)
  5419.     The low-level keyboard handler must have been enabled with AX=0066h
  5420. SeeAlso: AX=0066h,AX=0067h,INT 16/AH=01h
  5421. --------V-62006A-----------------------------
  5422. INT 62 u - FGDRIVER v4.02 - "FG_LOADPCX" - LOAD .PCX INTO ACTIVE VIRTUAL BUFFER
  5423.     AX = 006Ah
  5424.     ES:BX -> ASCIZ filename for PCX image
  5425.     CX = control flags
  5426.         bit 0: use current palette, overriding stored .PCX palette
  5427.         bit 1: load at current graphics position, not stored position
  5428.         bit 2: load image from FG_IMAGEBUF buffer instead of .PCX file
  5429. Return: AX = status
  5430.         0000h successful
  5431.         0001h file not found
  5432.         0002h not a .PCX file
  5433. Note:    the FGDRIVER functions are rearranged with each major release, but
  5434.       their parameters do not change (see #2723 at AX=0000h)
  5435. SeeAlso: AX=006Ch,AX=00B9h,AX=00D5h
  5436. --------V-62006B-----------------------------
  5437. INT 62 u - FGDRIVER v4.02 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
  5438.     AX = 006Bh
  5439.     BX = row
  5440.     CX = column
  5441. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5442.       their parameters do not change (see #2723 at AX=0000h)
  5443.     There are only eight text cursors shared by successive groups of
  5444.       eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
  5445.       share the second, etc)
  5446. SeeAlso: AX=0054h,AX=0058h,AX=007Eh,AX=00E0h
  5447. --------V-62006C-----------------------------
  5448. INT 62 u - FGDRIVER v4.02 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
  5449.     AX = 006Ch
  5450.     BX = left edge in screen space units
  5451.     CX = right edge in screen space units
  5452.     DX = top edge in screen space units
  5453.     SI = bottom edge in screen space units
  5454.     ES:DI -> ASCIZ filename of PCX file to create
  5455. Return: AX = status
  5456.         0000h successful
  5457.         0001h file not created
  5458. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5459.       their parameters do not change (see #2723 at AX=0000h)
  5460.     The PCX file is created from the specified region of the active video
  5461.       page; the left and right edges are adjusted to a byte boundary if
  5462.       necessary
  5463.     If the specified file already exists, it is overwritten
  5464.     This call is ignored in text and Hercules low-resolution graphics modes
  5465. SeeAlso: AX=005Bh,AX=006Dh,AX=006Ah,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  5466. --------V-62006D-----------------------------
  5467. INT 62 u - FGDRIVER v4.02 - "FG_MAKEPPR" - CREATE PACKED PIXEL RUN FILE
  5468.     AX = 006Dh
  5469.     BX = left edge in screen space units
  5470.     CX = right edge in screen space units
  5471.     DX = top edge in screen space units
  5472.     SI = bottom edge in screen space units
  5473.     ES:DI -> ASCIZ filename of PPR file to create
  5474. Return: AX = status
  5475.         0000h successful
  5476.         0001h file not created
  5477. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5478.       their parameters do not change (see #2723 at AX=0000h)
  5479.     The PPR file is created from the specified region of the active video
  5480.       page; the left and right edges are adjusted to byte boundaries if
  5481.       necessary
  5482.     If the specified file already exists, it is overwritten
  5483.     This call is ignored in text modes
  5484. SeeAlso: AX=005Bh,AX=006Ch,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
  5485. --------V-62006E-----------------------------
  5486. INT 62 u - FGDRIVER v4.02 - "FG_MAKESPR" - CREATE STANDARD PIXEL RUN FILE
  5487.     AX = 006Eh
  5488.     BX = left edge in screen space units
  5489.     CX = right edge in screen space units
  5490.     DX = top edge in screen space units
  5491.     SI = bottom edge in screen space units
  5492.     ES:DI -> ASCIZ filename of SPR file to create
  5493. Return: AX = status
  5494.         0000h successful
  5495.         0001h file not created
  5496. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5497.       their parameters do not change (see #2723 at AX=0000h)
  5498.     The SPR file is created from the specified region of the active video
  5499.       page; the left and right edges are adjusted to byte boundaries if
  5500.       necessary
  5501.     If the specified file already exists, it is overwritten
  5502.     This call is ignored in text modes
  5503. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=00B9h,AX=00BAh,AX=00BBh
  5504. --------V-62006F-----------------------------
  5505. INT 62 u - FGDRIVER v4.02 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
  5506.     AX = 006Fh
  5507.     BX = red component
  5508.     CX = green component
  5509.     DX = blue component
  5510. Return: AX = mode-specific palette value corresponding to specified components
  5511. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5512.       their parameters do not change (see #2723 at AX=0000h)
  5513.     This function is only meaningful in 16-color graphics modes
  5514. SeeAlso: AX=004Eh,AX=00B3h
  5515. --------V-620070-----------------------------
  5516. INT 62 u - FGDRIVER v4.02 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
  5517.     AX = 0070h
  5518. Return: AX = delay units per clock tick (processor-dependent)
  5519. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5520.       their parameters do not change (see #2723 at AX=0000h)
  5521.     These delay units are used by "FG_STALL" (see AX=00BFh)
  5522. SeeAlso: AX=00BFh
  5523. --------V-620071-----------------------------
  5524. INT 62 u - FGDRIVER v4.02 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
  5525.     AX = 0071h
  5526. Return: DX:AX = number of bytes of conventional memory available
  5527. Note:    the FGDRIVER functions are rearranged with each major release, but
  5528.       their parameters do not change (see #2723 at AX=0000h)
  5529. SeeAlso: AX=005Dh,AX=0072h
  5530. --------V-620072-----------------------------
  5531. INT 62 u - FGDRIVER v4.02 - "FG_MEMORY" - GET SIZE OF VIDEO MEMORY
  5532.     AX = 0072h
  5533. Return: AX = size of video memory in KB
  5534. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5535.       their parameters do not change (see #2723 at AX=0000h)
  5536.     You must first call "FG_SVGAINIT" (see AX=00C1h) before using this
  5537.       function
  5538. SeeAlso: AX=0071h
  5539. --------V-620073-----------------------------
  5540. INT 62 u - FGDRIVER v4.02 - "FG_MOUSE256" - DEFINE 256-COLOR MOUSE CURSOR
  5541.     AX = 0073h
  5542.     ES:BX -> 512-byte cursor definition
  5543.     CX = X offset of hot-spot within mouse cursor
  5544.     DX = Y offset of hot-spot within mouse cursor
  5545. Return: nothing
  5546. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5547.       their parameters do not change (see #2723 at AX=0000h)
  5548.     the cursor definition array consists of 256 bytes defining the 16x16
  5549.       screen mask, followed by another 256 bytes definining the 16x16
  5550.       cursor mask
  5551. SeeAlso: AX=0074h,AX=0075h,AX=007Bh
  5552. --------V-620074-----------------------------
  5553. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
  5554.     AX = 0074h
  5555.     CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
  5556.           -1=left release, -2=right release, -3=middle release)
  5557.     ES:BX -> variable pointer record (see #2739)
  5558. Return: variables updated
  5559. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5560.       their parameters do not change (see #2723 at AX=0000h)
  5561.     This function returns the count of presses or releases since the last
  5562.       call to this function; if the count is zero, row and column will
  5563.       also be zero
  5564. SeeAlso: AX=0075h,AX=0077h,AX=007Ah
  5565.  
  5566. Format of FGDRIVER MOUSEBUT variable pointer record:
  5567. Offset    Size    Description    (Table 2739)
  5568.  00h    WORD    segment of WORD buffer for press/release count
  5569.  02h    WORD    offset of WORD buffer for press/release count
  5570.  04h    WORD    segment of WORD buffer for screen space col of last press/rls
  5571.  06h    WORD    offset of WORD buffer for screen space col of last press/rels
  5572.  08h    WORD    segment of WORD buffer for screen space row of last press/rls
  5573.  0Ah    WORD    offset of WORD buffer for screen space row of last press/rls
  5574. --------V-620075-----------------------------
  5575. INT 62 u - FGDRIVER v4.02 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
  5576.     AX = 0075h
  5577.     BX = screen mask
  5578.     CX = cursor mask
  5579. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5580.       their parameters do not change (see #2723 at AX=0000h)
  5581.     This call is ignored in graphics modes
  5582. SeeAlso: AX=007Bh,AX=007Dh
  5583. --------V-620076-----------------------------
  5584. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEFIN" - UNHOOK FASTGRAPH MOUSE HANDLER
  5585.     AX = 0076h
  5586. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5587.       their parameters do not change (see #2723 at AX=0000h)
  5588.     This function should be called before switching back to text mode if
  5589.       "FG_MOUSEINI" was called while in an SVGA graphics mode
  5590. SeeAlso: AX=0077h
  5591. --------V-620077-----------------------------
  5592. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
  5593.     AX = 0077h
  5594. Return: AX = status
  5595.         0002h two-button mouse
  5596.         0003h three-button mouse
  5597.         FFFFh initialization failed
  5598. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5599.       their parameters do not change (see #2723 at AX=0000h)
  5600.     After this call, the mouse cursor is invisible
  5601. SeeAlso: AX=0076h,AX=0078h,AX=007Ch
  5602. --------V-620078-----------------------------
  5603. INT 62 u - FGDRIVER v4.02 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
  5604.     AX = 0078h
  5605.     BX = left-most position allowed for mouse cursor
  5606.     CX = right-most position allowed
  5607.     DX = top-most position allowed
  5608.     SI = bottom-most position allowed
  5609. Note:    the FGDRIVER functions are rearranged with each major release, but
  5610.       their parameters do not change (see #2723 at AX=0000h)
  5611. SeeAlso: AX=0077h,AX=0079h,INT 33/AX=0007h,INT 33/AX=0008h
  5612. --------V-620079-----------------------------
  5613. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
  5614.     AX = 0079h
  5615.     BX = new column
  5616.     CX = new row
  5617. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5618.       their parameters do not change (see #2723 at AX=0000h)
  5619.     This function will not move the mouse cursor outside the bounding box
  5620.       specified with AX=009Bh
  5621. SeeAlso: AX=0078h,AX=007Ah,INT 33/AX=0004h
  5622. --------V-62007A-----------------------------
  5623. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
  5624.     AX = 007Ah
  5625.     ES:BX -> variable pointer record (see #2740)
  5626. Note:    the FGDRIVER functions are rearranged with each major release, but
  5627.       their parameters do not change (see #2723 at AX=0000h)
  5628. SeeAlso: AX=0079h
  5629.  
  5630. Format of FGDRIVER MOUSEPOS variable pointer record:
  5631. Offset    Size    Description    (Table 2740)
  5632.  00h    WORD    segment of WORD buffer for mouse column
  5633.  02h    WORD    offset of WORD buffer for mouse column
  5634.  04h    WORD    segment of WORD buffer for mouse row
  5635.  06h    WORD    offset of WORD buffer for mouse row
  5636.  08h    WORD    segment of WORD buffer for button status
  5637.  0Ah    WORD    offset of WORD buffer for button status
  5638. Note:    button status: bit 0 = left button, bit 1 = right, bit 2 = middle
  5639. --------V-62007B-----------------------------
  5640. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
  5641.     AX = 007Bh
  5642.     ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
  5643.     CX = X offset of hot spot from upper left corner
  5644.     DX = Y offset of hot spot from upper left corner
  5645. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5646.       their parameters do not change (see #2723 at AX=0000h)
  5647.     This call is ignored in text modes
  5648. SeeAlso: AX=0073h,AX=0075h,INT 33/AX=0009h
  5649. --------V-62007C-----------------------------
  5650. INT 62 u - FGDRIVER v4.02 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
  5651.     AX = 007Ch
  5652.     BX = horizontal mickeys per eight pixels of movement (default 16)
  5653.     CX = vertical mickeys per eight pixels of movement (default 16)
  5654. Note:    the FGDRIVER functions are rearranged with each major release, but
  5655.       their parameters do not change (see #2723 at AX=0000h)
  5656. SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
  5657. --------V-62007D-----------------------------
  5658. INT 62 u - FGDRIVER v4.02 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
  5659.     AX = 007Dh
  5660.     BX = new state (0000h invisible, 0001h visible)
  5661. Note:    the FGDRIVER functions are rearranged with each major release, but
  5662.       their parameters do not change (see #2723 at AX=0000h)
  5663. SeeAlso: AX=0077h,INT 33/AX=0001h,INT 33/AX=0002h
  5664. --------V-62007E-----------------------------
  5665. INT 62 u - FGDRIVER v4.02 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
  5666.     AX = 007Eh
  5667.     BX = new column
  5668.     CX = new row
  5669. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5670.       their parameters do not change (see #2723 at AX=0000h)
  5671.     This call is ignored in text modes
  5672. SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=0079h,AX=007Fh,AX=00E0h
  5673. --------V-62007F-----------------------------
  5674. INT 62 u - FGDRIVER v4.02 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
  5675.     AX = 007Fh
  5676.     BX = column offset
  5677.     CX = row offset
  5678. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5679.       their parameters do not change (see #2723 at AX=0000h)
  5680.     This call is ignored in text modes
  5681. SeeAlso: AX=0054h,AX=0058h,AX=007Eh
  5682. --------V-620080-----------------------------
  5683. INT 62 u - FGDRIVER v4.02 - "FG_MUSIC" - PLAY SERIES OF NOTES
  5684.     AX = 0080h
  5685.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  5686. Return: after music completed
  5687. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5688.       their parameters do not change (see #2723 at AX=0000h)
  5689.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  5690.       AX=00AAh) is already in progress
  5691. SeeAlso: AX=0081h,AX=00BCh,AX=00DBh
  5692. --------V-620081-----------------------------
  5693. INT 62 u - FGDRIVER v4.02 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
  5694.     AX = 0081h
  5695.     CX = number of repetitions (negative = continuous play)
  5696.     ES:BX -> '$'-terminated music string in BASIC PLAY format
  5697. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5698.       their parameters do not change (see #2723 at AX=0000h)
  5699.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  5700.       AX=00AAh) is already in progress
  5701. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  5702. --------V-620082-----------------------------
  5703. INT 62 u - FGDRIVER v4.02 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
  5704.     AX = 0082h
  5705. Return: AX = NumLock state (0000h off, 0001h on)
  5706. Note:    the FGDRIVER functions are rearranged with each major release, but
  5707.       their parameters do not change (see #2723 at AX=0000h)
  5708. SeeAlso: AX=000Ah,AX=00A4h,AX=00A8h,AX=00B1h
  5709. --------V-620083-----------------------------
  5710. INT 62 u - FGDRIVER v4.02 - "FG_PACK" - CONVERT PIXEL-PER-BYTE TO PACKED BITMAP
  5711.     AX = 0083h
  5712.     ES:BX -> variable pointer record (see #2741)
  5713.     CX = width of bitmap in pixels
  5714.     DX = height of bitmap in pixels
  5715. Return: result bitmap buffer updated
  5716. SeeAlso: AX=00CBh
  5717.  
  5718. Format of FGDRIVER PACK variable pointer record:
  5719. Offset    Size    Description    (Table 2741)
  5720.  00h    WORD    segment of source (mode-independent) bitmap
  5721.  02h    WORD    offset of source (mode-independent) bitmap
  5722.  04h    WORD    segment of buffer for result (mode-specific) bitmap
  5723.  06h    WORD    offset of buffer for result (mode-specific) bitmap
  5724. --------V-620084-----------------------------
  5725. INT 62 u - FGDRIVER v4.02 - "FG_PAGESIZE" - GET VIDEO PAGE SIZE FOR CURR MODE
  5726.     AX = 0084h
  5727. Return: DX:AX = page size in bytes
  5728. Note:    the FGDRIVER functions are rearranged with each major release, but
  5729.       their parameters do not change (see #2723 at AX=0000h)
  5730. SeeAlso: AX=0072h
  5731. --------V-620085-----------------------------
  5732. INT 62 u - FGDRIVER v4.02 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
  5733.     AX = 0085h
  5734.     BX = column
  5735.     CX = row
  5736. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5737.       their parameters do not change (see #2723 at AX=0000h)
  5738.     This function fills an arbitrary closed region around the specified
  5739.       point with the current color; the screen edges are not considered
  5740.       region boundaries
  5741.     This call is ignored in text modes
  5742. SeeAlso: AX=0035h
  5743. --------V-620086-----------------------------
  5744. INT 62 u - FGDRIVER v4.02 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
  5745.     AX = 0086h
  5746. ---CGA 4-color graphics---
  5747.     BX = CGA paletee number
  5748.     CX = background color
  5749. ---CGA 2-color graphics---
  5750.     BX ignored
  5751.     CX = foreground color
  5752. ---16-color graphics---
  5753.     BX = palette register number
  5754.     CX = palette value
  5755. ---256-color graphics---
  5756.     BX = DAC register number
  5757.     CX =  DAC value
  5758. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5759.       their parameters do not change (see #2723 at AX=0000h)
  5760.     This function is ignored in text modes and Hercules graphics modes
  5761.     Few EGA/VGA adapters correctly set the foreground color in CGA mode 6
  5762. SeeAlso: AX=0041h,AX=004Eh,AX=0087h,AX=00ABh
  5763. --------V-620087-----------------------------
  5764. INT 62 u - FGDRIVER v4.02 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
  5765.     AX = 0087h
  5766.     ES:BX -> array of 16 WORDs containing values for palette registers
  5767.           (or first 16 DAC registers in 256-color modes)
  5768. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5769.       their parameters do not change (see #2723 at AX=0000h)
  5770.     This function is ignored in text modes, CGA and Hercules graphics modes
  5771. SeeAlso: AX=0041h,AX=004Eh,AX=0086h,AX=00ABh
  5772. --------V-620088-----------------------------
  5773. INT 62 u - FGDRIVER v4.02 - "FG_PAN" - SET SCREEN ORIGIN
  5774.     AX = 0088h
  5775.     BX = new column for screen origin
  5776.     CX = new row for screen origin
  5777. Note:    the FGDRIVER functions are rearranged with each major release, but
  5778.       their parameters do not change (see #2723 at AX=0000h)
  5779. SeeAlso: AX=00B2h
  5780. --------V-620089-----------------------------
  5781. INT 62 u - FGDRIVER v4.02 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
  5782.     AX = 0089h
  5783.     BX = index of pattern to define
  5784.     CX = number of predefined display pattern
  5785. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5786.       their parameters do not change (see #2723 at AX=0000h)
  5787.     When displaying a pixel run map, Fastgraph uses the pattern associated
  5788.       with each color index rather than displaying the actual color
  5789.     This call has no effect in text and 256-color graphics modes
  5790. SeeAlso: AX=0023h,AX=0045h
  5791. --------V-62008A-----------------------------
  5792. INT 62 u - FGDRIVER v4.02 - "FG_PCXHEAD" - GET PCX FILE HEADER
  5793.     AX = 008Ah
  5794.     ES:BX -> variable pointer record (see #2742)
  5795. Return: AX = status
  5796.         0000h successful
  5797.         FFFEh not a PCX file
  5798.         FFFFh file does not exist
  5799. Note:    the FGDRIVER functions are rearranged with each major release, but
  5800.       their parameters do not change (see #2723 at AX=0000h)
  5801. SeeAlso: AX=008Bh,AX=00B9h
  5802.  
  5803. Format of FGDRIVER PCXHEAD variable pointer record:
  5804. Offset    Size    Description    (Table 2742)
  5805.  00h    WORD    segment of ASCIZ filename
  5806.  02h    WORD    offset of ASCIZ filename
  5807.  04h    WORD    segment of 128-byte buffer for PCX header
  5808.  06h    WORD    offset of 128-byte buffer for PCX header
  5809. --------V-62008B-----------------------------
  5810. INT 62 u - FGDRIVER v4.02 - "FG_PCXMODE" - GET OPTIMAL VIDEO MODE FOR DISPLAY
  5811.     AX = 008Bh
  5812.     ES:BX -> PCX header (see AX=008Ah)
  5813. Return: AX = optimal video mode for PCX file
  5814.         FFFEh not a valid PCX header
  5815.         FFFFh unable to determine compatible video mode
  5816. Note:    the FGDRIVER functions are rearranged with each major release, but
  5817.       their parameters do not change (see #2723 at AX=0000h)
  5818. SeeAlso: AX=008Ah,AX=00B9h
  5819. --------V-62008C-----------------------------
  5820. INT 62 u - FGDRIVER v4.02 - "FG_PCXPAL" - GET PALETTE STORED IN PCX FILE
  5821.     AX = 008Ch
  5822.     ES:BX -> variable pointer record (see #2743)
  5823. Return: AX = number of colors in palette (16 or 256) or
  5824.         FFFEh not a valid PCX file
  5825.         FFFFh file not found
  5826. Note:    the FGDRIVER functions are rearranged with each major release, but
  5827.       their parameters do not change (see #2723 at AX=0000h)
  5828. SeeAlso: AX=008Dh
  5829.  
  5830. Format of FGDRIVER PCXPAL variable pointer record:
  5831. Offset    Size    Description    (Table 2743)
  5832.  00h    WORD    segment of ASCIZ .PCX filename
  5833.  02h    WORD    offset of ASCIZ .PCX filename
  5834.  04h    WORD    segment of buffer for .PCX palette RGB triples
  5835.  06h    WORD    offset of buffer for .PCX palette RGB triples
  5836. Note:    the buffer for the palette must hold at least three times as many bytes
  5837.       as there are colors in the palette
  5838. SeeAlso: #2744
  5839. --------V-62008D-----------------------------
  5840. INT 62 u - FGDRIVER v4.02 - "FG_PCXRANGE" - GET EXTENT OF PCX IMAGE
  5841.     AX = 008Dh
  5842.     ES:BX -> variable pointer record (see #2744)
  5843. Return: indicated variables updated; if the indicated header is not valid,
  5844.       all of the coordinate variables are set to FFFFh
  5845. Note:    the FGDRIVER functions are rearranged with each major release, but
  5846.       their parameters do not change (see #2723 at AX=0000h)
  5847. SeeAlso: AX=008Ch
  5848.  
  5849. Format of FGDRIVER PCXRANGE variable pointer record:
  5850. Offset    Size    Description    (Table 2744)
  5851.  00h    WORD    segment of 128-byte PCX file header
  5852.  02h    WORD    offset of 128-byte PCX file header
  5853.  04h    WORD    segment of WORD buffer for X coordinate of image's left edge
  5854.  04h    WORD    offset of WORD buffer for X coordinate of image's left edge
  5855.  08h    WORD    segment of WORD buffer for X coordinate of image's right edge
  5856.  0Ah    WORD    offset of WORD buffer for X coordinate of image's right edge
  5857.  0Ch    WORD    segment of WORD buffer for Y coordinate of image's top edge
  5858.  0Eh    WORD    offset of WORD buffer for Y coordinate of image's top edge
  5859.  10h    WORD    segment of WORD buffer for X coordinate of image's bottom edge
  5860.  12h    WORD    offset of WORD buffer for X coordinate of image's bottom edge
  5861. SeeAlso: #2743
  5862. --------V-62008E-----------------------------
  5863. INT 62 u - FGDRIVER v4.02 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
  5864.     AX = 008Eh
  5865. Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
  5866. Note:    the FGDRIVER functions are rearranged with each major release, but
  5867.       their parameters do not change (see #2723 at AX=0000h)
  5868. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
  5869. --------V-62008F-----------------------------
  5870. INT 62 u - FGDRIVER v4.02 - "FG_POINT" - DISPLAY A PIXEL
  5871.     AX = 008Fh
  5872.     BX = column
  5873.     CX = row
  5874. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5875.       their parameters do not change (see #2723 at AX=0000h)
  5876.     This call is ignored in text modes
  5877. SeeAlso: AX=0006h,AX=001Dh,AX=004Dh,AX=0090h
  5878. --------V-620090-----------------------------
  5879. INT 62 u - FGDRIVER v4.02 - "FG_POINTX" - DISPLAY A PIXEL IN XOR MODE
  5880.     AX = 0090h
  5881.     BX = column
  5882.     CX = row
  5883. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5884.       their parameters do not change (see #2723 at AX=0000h)
  5885.     This call is ignored in text modes
  5886. SeeAlso: AX=004Dh,AX=008Fh
  5887. --------V-620091-----------------------------
  5888. INT 62 u - FGDRIVER v4.02 - "FG_POLYEDGE" - SPECIFY INCLUSION OF FINAL PIXELS
  5889.     AX = 0091h
  5890.     BX = edge flag
  5891.         0000h include right- and bottom-edge pixels when drawing polygons
  5892.           with FG_POLYFILL
  5893.         0001h (default) exclue right- and bottom-edge pixels
  5894. SeeAlso: AX=0092h
  5895. --------V-620092-----------------------------
  5896. INT 62 u - FGDRIVER v4.02 - "FG_POLYFILL" - DRAW A FILLED CONVEX POLYGON
  5897.     AX = 0092h
  5898.     CX = number of vertices
  5899.     ES:BX -> variable pointer record (see #2745)
  5900. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5901.       their parameters do not change (see #2723 at AX=0000h)
  5902.     The vertex array consists of pairs of words specifying the X and Y
  5903.       coordinates of each vertex; the work array is used internally and
  5904.       must contain at least four times as many bytes as the polygon is
  5905.       high in pixels
  5906.     This function is ignored in text modes
  5907.     If the polygon is non-convex, only a portion of it may be filled
  5908. SeeAlso: AX=000Eh,AX=0027h,AX=0091h,AX=0093h,AX=0094h,AX=0095h
  5909.  
  5910. Format of FGDRIVER POLYFILL variable pointer record:
  5911. Offset    Size    Description    (Table 2745)
  5912.  00h    WORD    segment of vertex array (see #2747)
  5913.  02h    WORD    offset of vertex array
  5914.  04h    WORD    segment of work array
  5915.  06h    WORD    offset of work array
  5916. SeeAlso: #2746
  5917. --------V-620093-----------------------------
  5918. INT 62 u - FGDRIVER v4.02 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
  5919.     AX = 0093h
  5920.     CX = number of vertices in polygon
  5921.     ES:BX -> variable pointer record (see #2746)
  5922. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5923.       their parameters do not change (see #2723 at AX=0000h)
  5924.     This call is ignored in text modes
  5925. SeeAlso: AX=0091h,AX=0092h,AX=0094h,AX=0095h
  5926.  
  5927. Format of FGDRIVER POLYGON variable pointer record:
  5928. Offset    Size    Description    (Table 2746)
  5929.  00h    WORD    segment of WORD array containing vertex columns
  5930.  02h    WORD    offset of WORD array containing vertex columns
  5931.  04h    WORD    segment of WORD array containing vertex rows
  5932.  06h    WORD    offset of WORD array containing vertex rows
  5933. SeeAlso: #2745
  5934. --------V-620094-----------------------------
  5935. INT 62 u - FGDRIVER v4.02 - "FG_POLYLINE" - DRAW AN UNFILLED POLYGON
  5936.     AX = 0094h
  5937.     CX = number of vertices in polygon
  5938.     ES:BX -> vertex array (see #2747)
  5939. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5940.       their parameters do not change (see #2723 at AX=0000h)
  5941.     This function is equivalent to "FG_POLYGON", but uses only a single
  5942.       array to define the vertices
  5943.     This call is ignored in text modes
  5944. SeeAlso: AX=008Fh,AX=0092h,AX=0093h,AX=0095h
  5945.  
  5946. Format of FGDRIVER POLYFILL/POLYLINE vertex array element:
  5947. Offset    Size    Description    (Table 2747)
  5948.  00h    WORD    column
  5949.  02h    WORD    row
  5950. SeeAlso: #2746
  5951. --------V-620095-----------------------------
  5952. INT 62 u - FGDRIVER v4.02 - "FG_POLYOFF" - DEFINE POLYGON DRAWING OFFSET
  5953.     AX = 0095h
  5954.     BX = horizontal offset (default 0)
  5955.     CX = vertical offset (default 0)
  5956. Desc:    define the offsets applied to all vertices of polygons drawn with
  5957.       "FG_POLYFILL" or "FG_POLYLINE"
  5958. Note:    the FGDRIVER functions are rearranged with each major release, but
  5959.       their parameters do not change (see #2723 at AX=0000h)
  5960. SeeAlso: AX=0092h,AX=0094h
  5961. --------V-620096-----------------------------
  5962. INT 62 u - FGDRIVER v4.02 - "FG_PRINT" - DISPLAY STRING OF HARDWARE CHARACTERS
  5963.     AX = 0096h
  5964.     CX = length of string
  5965.     ES:BX -> string to display
  5966. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5967.       their parameters do not change (see #2723 at AX=0000h)
  5968.     The string is displayed in the current color, and the graphics cursor
  5969.       is updated to be just to the right of the last displayed character
  5970.     This function is ignored in text modes
  5971. SeeAlso: AX=000Ch,AX=0037h,AX=0065h,AX=0097h
  5972. --------V-620097-----------------------------
  5973. INT 62 u - FGDRIVER v4.02 - "FG_PRINTC" - DISPLAY STRING OF HW CHARS (CLIPPED)
  5974.     AX = 0097h
  5975.     CX = length of string
  5976.     ES:BX -> string to display
  5977. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5978.       their parameters do not change (see #2723 at AX=0000h)
  5979.     The string is displayed in the current color, and the graphics cursor
  5980.       is updated to be just to the right of the last displayed character;
  5981.       only the portion of the string that lies within the current clipping
  5982.       area is displayed
  5983.     This function is ignored in text modes
  5984. SeeAlso: AX=0096h
  5985. --------V-620098-----------------------------
  5986. INT 62 u - FGDRIVER v4.02 - "FG_PUTBLOCK" - RESTORE RECTANGLE OF DISPLAY
  5987.     AX = 0098h
  5988.     ES:BX -> buffer containing previously-saved image
  5989.     CX = left edge
  5990.     DX = right edge
  5991.     SI = top edge
  5992.     DI = bottom edge
  5993. Notes:    the FGDRIVER functions are rearranged with each major release, but
  5994.       their parameters do not change (see #2723 at AX=0000h)
  5995.     In text modes, coordinates are character positions; in graphics modes,
  5996.       they are defined in screen space, and the left and right edges are
  5997.       adjusted to a byte boundary if necessary
  5998. SeeAlso: AX=003Ch,AX=0099h
  5999. --------V-620099-----------------------------
  6000. INT 62 u - FGDRIVER v4.02 - "FG_PUTIMAGE" - DISPLAY MODE-SPECIFIC BITMAP IMAGE
  6001.     AX = 0099h
  6002.     ES:BX -> buffer containing mode-specific bitmap
  6003.     CX = width in bytes
  6004.     DX = height in pixel rows
  6005. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6006.       their parameters do not change (see #2723 at AX=0000h)
  6007.     The bitmap is displayed with its lower left corner at the graphics
  6008.       cursor position; color 0 is NOT treated as transparent
  6009. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0098h
  6010. --------V-62009A-----------------------------
  6011. INT 62 u - FGDRIVER v4.02 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
  6012.     AX = 009Ah
  6013. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6014.       their parameters do not change (see #2723 at AX=0000h)
  6015.     This call has no effect if there is no continuous sound playing
  6016. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00DCh
  6017. --------V-62009B-----------------------------
  6018. INT 62 u - FGDRIVER v4.02 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
  6019.     AX = 009Bh
  6020.     BX = left edge column
  6021.     CX = right edge column
  6022.     DX = top edge row
  6023.     SI = bottom edge row
  6024. Note:    the FGDRIVER functions are rearranged with each major release, but
  6025.       their parameters do not change (see #2723 at AX=0000h)
  6026. SeeAlso: AX=0006h,AX=0012h,AX=0023h,AX=003Ch
  6027. --------V-62009C-----------------------------
  6028. INT 62 u - FGDRIVER v4.02 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
  6029.     AX = 009Ch
  6030. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6031.       their parameters do not change (see #2723 at AX=0000h)
  6032.     This call is ignored in graphics modes
  6033.     The screen attributes are only restored if ANSI.SYS is loaded
  6034. SeeAlso: AX=0028h,AX=00B0h
  6035. --------V-62009D-----------------------------
  6036. INT 62 u - FGDRIVER v4.02 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
  6037.     AX = 009Dh
  6038.     BX = new page width in pixels
  6039.     CX = new page height in pixels
  6040. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6041.       their parameters do not change (see #2723 at AX=0000h)
  6042.     The visible page must be set to 0000h before making this call
  6043.     The mouse, joysticks, expanded memory, and extended memory must be
  6044.       reinitialized after this call
  6045. SeeAlso: AX=0084h,AX=00ACh
  6046. --------V-62009E-----------------------------
  6047. INT 62 u - FGDRIVER v4.02 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
  6048.     AX = 009Eh
  6049.     BX = left edge column
  6050.     CX = right edge column
  6051.     DX = top edge row
  6052.     SI = bottom edge row
  6053. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6054.       their parameters do not change (see #2723 at AX=0000h)
  6055.     The left and right edges are adjusted to byte boundaries if necessary
  6056. SeeAlso: AX=00A2h,AX=00C6h
  6057. --------V-62009F-----------------------------
  6058. INT 62 u - FGDRIVER v4.02 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
  6059.     AX = 009Fh
  6060. Note:    the FGDRIVER functions are rearranged with each major release, but
  6061.       their parameters do not change (see #2723 at AX=0000h)
  6062. SeeAlso: AX=00BDh,AX=00C0h
  6063. --------V-6200A0-----------------------------
  6064. INT 62 u - FGDRIVER v4.02 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
  6065.     AX = 00A0h
  6066.     ES:BX -> mode-specific bitmap
  6067.     CX = width of bitmap in bytes
  6068.     DX = height of bitmap in pixel rows
  6069. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6070.       their parameters do not change (see #2723 at AX=0000h)
  6071.     This call is ignored in text modes
  6072.     The image is drawn with its lower left corner at the current graphics
  6073.       cursor position
  6074. SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=00A1h,AX=00A9h,AX=00B9h
  6075. --------V-6200A1-----------------------------
  6076. INT 62 u - FGDRIVER v4.02 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
  6077.     AX = 00A1h
  6078.     ES:BX -> array containing image stored as a masking map (see #2724)
  6079.     CX = number of pixel runs in masking map
  6080.     DX = width of masking map in pixels
  6081. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6082.       their parameters do not change (see #2723 at AX=0000h)
  6083.     This call is ignored in text modes and in native EGA and VGA graphics
  6084.       modes
  6085.     The image is drawn with its lower left corner at the current graphics
  6086.       cursor position
  6087. SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=00A0h,AX=00A9h,AX=00C5h
  6088. --------V-6200A2-----------------------------
  6089. INT 62 u - FGDRIVER v4.02 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
  6090.     AX = 00A2h
  6091.     BX = left edge column
  6092.     CX = right edge column
  6093.     DX = top edge row
  6094.     SI = bottom edge row
  6095. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6096.       their parameters do not change (see #2723 at AX=0000h)
  6097.     The left and right edges are adjusted to byte boundaries if necessary
  6098. SeeAlso: AX=009Eh,AX=00C6h
  6099. --------V-6200A3-----------------------------
  6100. INT 62 u - FGDRIVER v4.02 - "FG_SCALE" - SCALE BITMAP
  6101.     AX = 00A3h
  6102.     ES:BX -> variable pointer record (see #2748)
  6103.     CX = width of source bitmap in pixels (0 < width <= 1024)
  6104.     DX = height of source bitmap in pixels (0 < height <= 1024)
  6105.     SI = desired width of scaled bitmap (0 < width <= 1024)
  6106.     DI = desired height of scaled bitmap (0 < height <= 1024)
  6107. Return: nothing
  6108. SeeAlso: AX=00B7h
  6109.  
  6110. Format of FGDRIVER SCALE variable pointer record:
  6111. Offset    Size    Description    (Table 2748)
  6112.  00h    WORD    segment of source bitmap (one pixel per byte)
  6113.  02h    WORD    offset of source bitmap
  6114.  04h    WORD    segment of buffer for resulting scaled bitmap
  6115.  06h    WORD    offset of buffer for resulting scaled bitmap
  6116. --------V-6200A4-----------------------------
  6117. INT 62 u - FGDRIVER v4.02 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
  6118.     AX = 00A4h
  6119. Return: AX = ScrollLock state (0000h off, 0001h on)
  6120. Program: FGDRIVER is the external video driver for the shareware
  6121.       Fastgraph/Light by Ted Gruber Software
  6122. Note:    the FGDRIVER functions are rearranged with each major release, but
  6123.       their parameters do not change (see #2723 at AX=0000h)
  6124. SeeAlso: AX=000Ah,AX=0082h,AX=00A8h,AX=00B1h
  6125. --------V-6200A5-----------------------------
  6126. INT 62 u - FGDRIVER v4.02 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
  6127.     AX = 00A5h
  6128.     BX = left edge column
  6129.     CX = right edge column
  6130.     DX = top edge row
  6131.     SI = bottom edge row
  6132.     DI = number of pixels by which to scroll (positive scrolls up,
  6133.           negative scrolls down)
  6134.     ES = type of scroll
  6135.         0000h circular (rows scrolled off are copied to vacated rows)
  6136.         else vacated rows are filled with the current color
  6137. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6138.       their parameters do not change (see #2723 at AX=0000h)
  6139.     In graphics modes, the left and right edges are adjusted to byte
  6140.       boundaries if necessary
  6141.     Circular scrolling uses part of the hidden page as a workspace
  6142. SeeAlso: AX=0088h,AX=00B2h
  6143. --------V-6200A6-----------------------------
  6144. INT 62 u - FGDRIVER v4.02 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
  6145.     AX = 00A6h
  6146.     BX = foreground
  6147.     CX = background
  6148.     DX = blink (0000h nonblinking, 0001h blink)
  6149. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6150.       their parameters do not change (see #2723 at AX=0000h)
  6151.     This call is ignored in graphics modes
  6152. SeeAlso: AX=000Bh,AX=003Ah,AX=0048h
  6153. --------V-6200A7-----------------------------
  6154. INT 62 u - FGDRIVER v4.02 - "FG_SETBANKS" - SET SVGA READ AND WRITE BANKS
  6155.     AX = 00A7h
  6156.     BX = memory bank from which to read (FFFFh leave unchanged)
  6157.     CX = memory bank to which to write (FFFFh leave unchanged)
  6158. Note:    the FGDRIVER functions are rearranged with each major release, but
  6159.       their parameters do not change (see #2723 at AX=0000h)
  6160. SeeAlso: AX=003Bh
  6161. --------V-6200A8-----------------------------
  6162. INT 62 u - FGDRIVER v4.02 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
  6163.     AX = 00A8h
  6164.     BX = new state (0000h off, 0001h on)
  6165. Note:    the FGDRIVER functions are rearranged with each major release, but
  6166.       their parameters do not change (see #2723 at AX=0000h)
  6167. SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00B1h
  6168. --------V-6200A9-----------------------------
  6169. INT 62 u - FGDRIVER v4.02 - "FG_SETCLIP" - SET CLIPPING REGION
  6170.     AX = 00A9h
  6171.     BX = left edge of clipping region
  6172.     CX = right edge of clipping region
  6173.     DX = top edge of clipping region
  6174.     SI = bottom edge of clipping region
  6175. Note:    the FGDRIVER functions are rearranged with each major release, but
  6176.       their parameters do not change (see #2723 at AX=0000h)
  6177. SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=003Eh,AX=00A1h,AX=00C5h
  6178. --------V-6200AA-----------------------------
  6179. INT 62 u - FGDRIVER v4.02 - "FG_SETCOLOR" - SET CURRENT COLOR
  6180.     AX = 00AAh
  6181.     BX = new color index (or text attribute in text modes)
  6182. Note:    the FGDRIVER functions are rearranged with each major release, but
  6183.       their parameters do not change (see #2723 at AX=0000h)
  6184. SeeAlso: AX=0018h,AX=0040h,AX=0045h
  6185. --------V-6200AB-----------------------------
  6186. INT 62 u - FGDRIVER v4.02 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
  6187.     AX = 00ABh
  6188.     CX = number of DAC registers to set (0001h to 0100h)
  6189.     DX = starting DAC register number (0000h to 00FFh)
  6190.     ES:BX -> buffer containing DAC red/green/blue triples
  6191. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6192.       their parameters do not change (see #2723 at AX=0000h)
  6193.     The register number wraps back to zero after reaching FFh
  6194.     This call has no effect in text modes or graphics modes below 11h
  6195. SeeAlso: AX=0041h,AX=004Eh,AX=0086h,INT 10/AX=1012h
  6196. --------V-6200AC-----------------------------
  6197. INT 62 u - FGDRIVER v4.02 - "FG_SETENTRY" - SET TYPE AND ADDRESS OF VIDEO PAGE
  6198.     AX = 00ACh
  6199.     BX = page number (00h-3Fh)
  6200.     CX = page address
  6201.     DX = page type (see #2733 at AX=0042h)
  6202. Note:    the FGDRIVER functions are rearranged with each major release, but
  6203.       their parameters do not change (see #2723 at AX=0000h)
  6204. SeeAlso: AX=0038h,AX=0042h,AX=00B0h
  6205. --------V-6200AD-----------------------------
  6206. INT 62 u - FGDRIVER v4.02 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
  6207.     AX = 00ADh
  6208.     BX = operation
  6209.         0000h replacement
  6210.         0001h AND
  6211.         0002h OR
  6212.         0003h XOR
  6213. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6214.       their parameters do not change (see #2723 at AX=0000h)
  6215.     This function is only available in native EGA/VGA graphics modes
  6216.       (0Dh to 12h)
  6217. SeeAlso: AX=001Eh,AX=008Fh
  6218. --------V-6200AE-----------------------------
  6219. INT 62 u - FGDRIVER v4.02 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
  6220.     AX = 00AEh
  6221.     BX = new hidden page (0000h to 003Fh)
  6222. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6223.       their parameters do not change (see #2723 at AX=0000h)
  6224.     The specified page must be a physical page or a virtual page
  6225. SeeAlso: AX=0043h,AX=00B2h,AX=00B6h
  6226. --------V-6200AF-----------------------------
  6227. INT 62 u - FGDRIVER v4.02 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
  6228.     AX = 00AFh
  6229.     BX = new screen size (25, 43, 50)
  6230. Note:    the FGDRIVER functions are rearranged with each major release, but
  6231.       their parameters do not change (see #2723 at AX=0000h)
  6232. SeeAlso: AX=0047h
  6233. --------V-6200B0-----------------------------
  6234. INT 62 u - FGDRIVER v4.02 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
  6235.     AX = 00B0h
  6236.     BX = new video mode or FFFFh for current mode (see #2749)
  6237.     ES:DX -> WORD shareware splash screen flag
  6238. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6239.       their parameters do not change (see #2723 at AX=0000h)
  6240.     This call resets the active video page to page 0000h, the clipping
  6241.       region to the entire screen, text rows to 25, etc.
  6242.     in the shareware version, FGDRIVER sets the word pointed at by ES:DX
  6243.       to 9090h after it shows the shareware announcement to the user
  6244. SeeAlso: AX=004Bh,INT 10/AH=00h
  6245.  
  6246. (Table 2749)
  6247. Values for FGDRIVER video mode:
  6248.  00h-07h standard BIOS modes
  6249.  09h    PCjr/Tandy1000 320x200x16
  6250.  0Bh    Hercules graphics 720x348
  6251.  0Ch    Hercules graphics 320x200
  6252.  0Dh-13h standard BIOS modes
  6253.  14h    VGA graphics 320x200x256
  6254.  15h    VGA graphics 320x400x256
  6255.  16h    VGA graphics 320x240x256
  6256.  17h    VGA graphics 320x480x256
  6257.  18h    SVGA graphics 640x400x256
  6258.  19h    SVGA graphics 640x480x256
  6259.  1Ah    SVGA graphics 800x600x256
  6260.  1Bh    SVGA graphics 1024x768x256
  6261.  1Ch    SVGA graphics 800x600x16
  6262.  1Dh    SVGA graphics 1024x768x16
  6263. --------V-6200B1-----------------------------
  6264. INT 62 u - FGDRIVER v4.02 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
  6265.     AX = 00B1h
  6266.     BX = new state (0000h off, 0001h on)
  6267. Note:    the FGDRIVER functions are rearranged with each major release, but
  6268.       their parameters do not change (see #2723 at AX=0000h)
  6269. SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00A8h
  6270. --------V-6200B2-----------------------------
  6271. INT 62 u - FGDRIVER v4.02 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
  6272.     AX = 00B2h
  6273.     BX = new video page (0000h to 003Fh)
  6274. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6275.       their parameters do not change (see #2723 at AX=0000h)
  6276.     The specified page must be a physical or virtual page
  6277. SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=0088h
  6278. --------V-6200B3-----------------------------
  6279. INT 62 u - FGDRIVER v4.02 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
  6280.     AX = 00B3h
  6281.     BX = palette or DAC register number
  6282.     CX = red color component
  6283.     DX = green component
  6284.     SI = blue component
  6285. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6286.       their parameters do not change (see #2723 at AX=0000h)
  6287.     The register number may be negative for Tandy, PCjr, and 200-line
  6288.       EGA graphics modes to specify an intense color
  6289.     This call has no effect in text, CGA graphics, and Hercules graphics
  6290.       modes
  6291. SeeAlso: AX=004Eh
  6292. --------V-6200B4-----------------------------
  6293. INT 62 u - FGDRIVER v4.02 - UNUSED
  6294.     AX = 00B4h
  6295. Return: AX = 0000h
  6296. Note:    the FGDRIVER functions are rearranged with each major release, but
  6297.       their parameters do not change (see #2723 at AX=0000h)
  6298. --------V-6200B5-----------------------------
  6299. INT 62 u - FGDRIVER v4.02 - "FG_SETVIEW" - DEFINE VIEWPORT
  6300.     AX = 00B5h
  6301.     ES:BX -> variable record (see #2750)
  6302.     CX = viewport's top edge in screen space
  6303.     DX = viewport's bottom edge in screen space
  6304. Return: nothing
  6305. Note:    the FGDRIVER functions are rearranged with each major release, but
  6306.       their parameters do not change (see #2723)
  6307. SeeAlso: AX=004Fh
  6308.  
  6309. Format of FGDRIVER SETVIEW variable record:
  6310. Offset    Size    Description    (Table 2750)
  6311.  00h    WORD    viewport's left edge in viewport units
  6312.  02h    WORD    viewport's right edge in viewport units
  6313.  04h    WORD    viewport's top edge in viewport units
  6314.  06h    WORD    viewport's bottom edge in viewport units
  6315.  08h    WORD    viewport's left edge in screen space
  6316.  0Ah    WORD    viewport's right edge in screen space
  6317. --------V-6200B6-----------------------------
  6318. INT 62 u - FGDRIVER v4.02 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
  6319.     AX = 00B6h
  6320.     BX = new video page (0000h to 003Fh)
  6321. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6322.       their parameters do not change (see #2723 at AX=0000h)
  6323.     The specified page must be a physical or virtual page
  6324. SeeAlso: AX=0043h,AX=00AEh,AX=00B2h
  6325. --------V-6200B7-----------------------------
  6326. INT 62 u - FGDRIVER v4.02 - "FG_SHEAR" - SHEAR UNPACKED BITMAP
  6327.     AX = 00B7h
  6328.     ES:BX -> variable pointer record (see #2751)
  6329.     CX = bitmap width (0 < width <= 1024)
  6330.     DX = bitmap height (0 < height <= 1024)
  6331.     SI = size of resulting image (width for horiz. shear, height for vert.)
  6332.     DI = shear type
  6333.         0000h horizontal shear to left
  6334.         0001h horizontal shear to right
  6335.         0002h vertical shear to left (left edge stretched up)
  6336.         0003h vertical shear to right (right edge stretched up)
  6337. Return: nothing
  6338. Note:    the FGDRIVER functions are rearranged with each major release, but
  6339.       their parameters do not change (see #2723)
  6340. SeeAlso: AX=00A3h
  6341.  
  6342. Format of FGDRIVER SHEAR variable pointer record:
  6343. Offset    Size    Description    (Table 2751)
  6344.  00h    WORD    segment of source bitmap
  6345.  02h    WORD    offset of source bitmap
  6346.  04h    WORD    segment of buffer for resulting bitmap
  6347.  06h    WORD    offset of buffer for resulting bitmap
  6348. --------V-6200B8-----------------------------
  6349. INT 62 u - FGDRIVER v4.02 - "FG_SHOWFLIC" - DISPLAY IMAGE FROM FLI/FLC FILE
  6350.     AX = 00B8h
  6351.     ES:BX -> ASCIZ filename for FLI/FLC file
  6352.     CX = number of times to display image file (0000h = continuously)
  6353.     DX = control flags (see #2728 at AX=0031h)
  6354. Return: AX = status
  6355.         0000h successful
  6356.         0001h file not found
  6357.         0002h not a valid FLI/FLC file
  6358. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6359.       their parameters do not change (see #2723)
  6360.     the FLI/FLC display may be stopped by the user by pressing Esc
  6361. SeeAlso: AX=0030h,AX=0031h,AX=00B9h
  6362. --------V-6200B9-----------------------------
  6363. INT 62 u - FGDRIVER v4.02 - "FG_SHOWPCX" - DISPLAY IMAGE FROM PCX FILE
  6364.     AX = 00B9h
  6365.     ES:BX -> ASCIZ filename of PCX image
  6366.     CX = flags (see #2752)
  6367. Return: AX = status
  6368.         0000h success
  6369.         0001h file not found
  6370.         0002h not a PCX file
  6371. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6372.       their parameters do not change (see #2723 at AX=0000h)
  6373.     This function is ignored in text modes and Hercules low-res graphics
  6374. SeeAlso: AX=005Bh,AX=0060h"1.10",AX=006Ch,AX=006Dh,AX=006Eh,AX=00B8h,AX=00BAh
  6375. SeeAlso: AX=00BBh
  6376.  
  6377. Bitfields for FGDRIVER flags:
  6378. Bit(s)    Description    (Table 2752)
  6379.  0    use current palette rather than PCX file's palette
  6380.  1    display image at cursor position instead of position in PCX header
  6381.  2-15    reserved
  6382. --------V-6200BA-----------------------------
  6383. INT 62 u - FGDRIVER v4.02 - "FG_SHOWPPR" - DISPLAY IMAGE FROM PPR FILE
  6384.     AX = 00BAh
  6385.     ES:BX -> ASCIZ filename of packed pixel run image
  6386.     CX = width in pixels (nonzero)
  6387. Return: AX = status
  6388.         0000h successful
  6389.         0001h file not found
  6390. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6391.       their parameters do not change (see #2723 at AX=0000h)
  6392.     The image is displayed with its lower left corner at the current
  6393.       graphics cursor position
  6394.     This function is ignored in text modes and 256-color graphics modes
  6395. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BBh
  6396. --------V-6200BB-----------------------------
  6397. INT 62 u - FGDRIVER v4.02 - "FG_SHOWSPR" - DISPLAY IMAGE FROM SPR FILE
  6398.     AX = 00BBh
  6399.     ES:BX -> ASCIZ filename of standard pixel run image
  6400.     CX = width in pixels (nonzero)
  6401. Return: AX = status
  6402.         0000h successful
  6403.         0001h file not found
  6404. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6405.       their parameters do not change (see #2723 at AX=0000h)
  6406.     The image is displayed with its lower left corner at the current
  6407.       graphics cursor position
  6408.     This function is ignored in text modes
  6409. SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh
  6410. --------V-6200BC-----------------------------
  6411. INT 62 u - FGDRIVER v4.02 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
  6412.     AX = 00BCh
  6413.     BX = frequency in Hertz (18-32767)
  6414.     CX = duration in clock ticks (0000h or negative for continuous sound)
  6415. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6416.       their parameters do not change (see #2723 at AX=0000h)
  6417.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  6418.       AX=00AAh) is already in progress
  6419. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
  6420. --------V-6200BD-----------------------------
  6421. INT 62 u - FGDRIVER v4.02 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
  6422.     AX = 00BDh
  6423.     CX = number of times to cycle through sound list
  6424.     ES:BX -> sounds array (see #2753)
  6425. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6426.       their parameters do not change (see #2723 at AX=0000h)
  6427.     This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
  6428.       AX=00AAh) is already in progress
  6429. SeeAlso: AX=0059h,AX=0081h,AX=00BCh,AX=00C0h,AX=00DCh
  6430.  
  6431. Format of FGDRIVER sounds array element:
  6432. Offset    Size    Description    (Table 2753)
  6433.  00h    WORD    frequency of sound in Hertz (0000h ends array)
  6434.  02h    WORD    duration of sound in clock ticks
  6435. --------V-6200BE-----------------------------
  6436. INT 62 u - FGDRIVER v4.02 - "FG_SPLIT" - ENABLE/DISABLE SPLIT SCREEN ENVIRONMNT
  6437.     AX = 00BEh
  6438.     BX = beginning row for bottom half of split-screen
  6439. Note:    the FGDRIVER functions are rearranged with each major release, but
  6440.       their parameters do not change (see #2723)
  6441. --------V-6200BF-----------------------------
  6442. INT 62 u - FGDRIVER v4.02 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
  6443.     AX = 00BFh
  6444.     BX = duration in processor-dependent delay units (see AX=0070h)
  6445. Return: after delay elapses
  6446. Note:    the FGDRIVER functions are rearranged with each major release, but
  6447.       their parameters do not change (see #2723 at AX=0000h)
  6448. SeeAlso: AX=0070h,INT 2F/AX=1224h
  6449. --------V-6200C0-----------------------------
  6450. INT 62 u - FGDRIVER v4.02 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
  6451.     AX = 00C0h
  6452. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6453.       their parameters do not change (see #2723 at AX=0000h)
  6454.     This call has no effect if there is no asynchronous sound in progress
  6455.     The program must not exit while sound is suspended
  6456. SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
  6457. --------V-6200C1-----------------------------
  6458. INT 62 u - FGDRIVER v4.02 - "FG_SVGAINIT" - INITIALIZE FASTGRAPH SVGA KERNEL
  6459.     AX = 00C1h
  6460.     BX = method (see #2754)
  6461. Return: AX = status
  6462.         0000h no VESA BIOS or supported SVGA chipset
  6463.         0001h using VESA BIOS
  6464.         0002h-0016h specific chipset being used (same as "method" below)
  6465. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6466.       their parameters do not change (see #2723 at AX=0000h)
  6467.     This function must be called before attempting to set SVGA graphics
  6468.       modes (18h to 1Dh) or using "FG_BESTMODE", "FG_TESTMODE", or
  6469.       "FG_MEMORY"
  6470. SeeAlso: AX=0025h,AX=00C2h,AX=00C3h
  6471.  
  6472. (Table 2754)
  6473. Values for FGDRIVER SVGA method:
  6474.  0000h    autodetect, give chipset-specific code priority over VESA
  6475.  0001h    autodetect, give VESA priority over chipset-specific code
  6476.  0002h    Ahead type "A"
  6477.  0003h    Ahead type "B"
  6478.  0004h    ATI 18800
  6479.  0005h    ATI 18800-1
  6480.  0006h    ATI 28800
  6481.  0007h    Chips & Technologies 82c451/455/456
  6482.  0008h    C&T 82c452
  6483.  0009h    C&T 82c453
  6484.  000Ah    Genoa 6000 series
  6485.  000Bh    Oak OTI-067
  6486.  000Ch    Paradise PVGA1a
  6487.  000Dh    Paradise WD90C00/WD90C10
  6488.  000Eh    Paradise WD90C11/WD90C30/WD90C31
  6489.  000Fh    Trident 8800
  6490.  0010h    Trident 8900
  6491.  0011h    Tseng ET3000
  6492.  0012h    Tseng ET4000
  6493.  0013h    Video7
  6494.  0014h    Cirrus Logic 5400 series
  6495.  0015h    S3
  6496.  0016h    Trident 8900B/8900C/9000
  6497. --------V-6200C2-----------------------------
  6498. INT 62 u - FGDRIVER v4.02 - "FG_SVGASTAT" - GET SVGA CHIPSET INFORMATION
  6499.     AX = 00C2h
  6500. Return: AX = chipset information (see #2755)
  6501. Note:    the FGDRIVER functions are rearranged with each major release, but
  6502.       their parameters do not change (see #2723 at AX=0000h)
  6503. SeeAlso: AX=0025h,AX=00C1h,AX=00C3h
  6504.  
  6505. Bitfields for FGDRIVER chipset information:
  6506. Bit(s)    Description    (Table 2755)
  6507.  0    SVGA kernel initialized
  6508.  1    VESA support enabled
  6509.  2    extended video pages available in modes 13-23
  6510.  3    SVGA chipset has separate read and write banks
  6511.  4-15    reserved (0)
  6512. --------V-6200C3-----------------------------
  6513. INT 62 u - FGDRIVER v4.02 - "FG_SVGAVER" - GET FASTGRAPH SVGA KERNEL VERSION
  6514.     AX = 00C3h
  6515.     ES:BX -> variable pointer record (see #2756)
  6516. Note:    the FGDRIVER functions are rearranged with each major release, but
  6517.       their parameters do not change (see #2723 at AX=0000h)
  6518. SeeAlso: AX=00C1h,AX=00C2h
  6519.  
  6520. Format of FGDRIVER variable pointer record:
  6521. Offset    Size    Description    (Table 2756)
  6522.  00h    WORD    segment of WORD buffer for major version
  6523.  02h    WORD    offset of WORD buffer for major version
  6524.  04h    WORD    segment of WORD buffer for minor version (hundredths)
  6525.  06h    WORD    offset of WORD buffer for minor version
  6526. --------V-6200C4-----------------------------
  6527. INT 62 u - FGDRIVER v4.02 - "FG_TCDEFINE" - DEFINE TRANSPARENCY OF COLOR INDEX
  6528.     AX = 00C4h
  6529.     BX = color index
  6530.     CX = transparency (00h opaque, other transparent)
  6531. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6532.       their parameters do not change (see #2723 at AX=0000h)
  6533.     This function is ignored in text modes
  6534. SeeAlso: AX=00C5h,AX=00C6h
  6535. --------V-6200C5-----------------------------
  6536. INT 62 u - FGDRIVER v4.02 - "FG_TCMASK" - SET TRANSPARENT COLORS
  6537.     AX = 00C5h
  6538.     BX = colors to consider transparent (bit 0 = color 0, etc)
  6539. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6540.       their parameters do not change (see #2723 at AX=0000h)
  6541.     This call is ignored in text modes
  6542.     The specified colors are considered transparent by "FG_TCXFER"
  6543. SeeAlso: AX=00C4h,AX=00C6h
  6544. --------V-6200C6-----------------------------
  6545. INT 62 u - FGDRIVER v4.02 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
  6546.     AX = 00C6h
  6547.     CX = source video page
  6548.     DX = destination video page
  6549.     ES:BX -> copy record (see #2757)
  6550. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6551.       their parameters do not change (see #2723 at AX=0000h)
  6552.     Pixels which are in any of the colors defined as transparent with
  6553.       "FG_TCMASK" (see AX=00C5h) are left unchanged in the destination
  6554.       region
  6555.     The source and destination regions must not overlap if they are located
  6556.       on the same page
  6557.     This call is ignored in text modes
  6558. SeeAlso: AX=00C4h,AX=00C5h,AX=00CAh
  6559. --------V-6200C7-----------------------------
  6560. INT 62 u - FGDRIVER v4.02 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
  6561.     AX = 00C7h
  6562.     BX = desired video mode (00h-17h, also 18h-1Dh after "FG_SVGAINIT")
  6563.     CX = required number of video pages (ignore memory size if <= 0)
  6564. Return: AX = status
  6565.         0000h mode not available with requested number of pages
  6566.         0001h mode is available
  6567. Note:    the FGDRIVER functions are rearranged with each major release, but
  6568.       their parameters do not change (see #2723 at AX=0000h)
  6569. SeeAlso: AX=0005h,AX=00B0h
  6570. --------V-6200C8-----------------------------
  6571. INT 62 u - FGDRIVER v4.02 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
  6572.     AX = 00C8h
  6573.     CX = length of string
  6574.     ES:BX -> string
  6575. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6576.       their parameters do not change (see #2723 at AX=0000h)
  6577.     The string is displayed starting at the text cursor position using the
  6578.       current text attribute (text modes) or color index (graphics modes)
  6579.     The text cursor position is updated after this call
  6580. SeeAlso: AX=000Ch,AX=0096h,AX=00C9h
  6581. --------V-6200C9-----------------------------
  6582. INT 62 u - FGDRIVER v4.02 - "FG_TEXTC" - DISPLAY STRING OF CHARACTERS (CLIPPED)
  6583.     AX = 00C9h
  6584.     CX = length of string
  6585.     ES:BX -> string
  6586. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6587.       their parameters do not change (see #2723)
  6588.     The string is displayed starting at the text cursor position using the
  6589.       current text attribute (text modes) or color index (graphics modes),
  6590.       showing only the portion within the current clipping window
  6591.     The text cursor position is updated after this call
  6592. SeeAlso: AX=00C8h
  6593. --------V-6200CA-----------------------------
  6594. INT 62 u - FGDRIVER v4.02 - "FG_TRANSFER" - COPY REGION
  6595.     AX = 00CAh
  6596.     CX = source video page
  6597.     DX = destination video page
  6598.     ES:BX -> copy record (see #2757)
  6599. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6600.       their parameters do not change (see #2723 at AX=0000h)
  6601.     The source and destination regions must not overlap if they are located
  6602.       on the same page
  6603. SeeAlso: AX=009Eh,AX=00A2h,AX=00A5h,AX=00C6h
  6604.  
  6605. Format of FGDRIVER copy record:
  6606. Offset    Size    Description    (Table 2757)
  6607.  00h    WORD    left edge column of source region
  6608.  02h    WORD    right edge column of source region
  6609.  04h    WORD    top edge row of source region
  6610.  06h    WORD    bottom edge row of source region
  6611.  08h    WORD    left edge of destination
  6612.  0Ah    WORD    bottom edge of destination
  6613. --------V-6200CB-----------------------------
  6614. INT 62 u - FGDRIVER v4.02 - "FG_UNPACK" - EXPAND MODE-SPECIFIC BITMAP
  6615.     AX = 00CBh
  6616.     ES:BX -> variable pointer record (see #2758)
  6617.     CX = size of source bitmap in bytes
  6618. Return: result buffer filled
  6619. Note:    the FGDRIVER functions are rearranged with each major release, but
  6620.       their parameters do not change (see #2723)
  6621. SeeAlso: AX=0083h
  6622.  
  6623. Format of FGDRIVER UNPACK variable pointer record:
  6624. Offset    Size    Description    (Table 2758)
  6625.  00h    WORD    segment of source bitmap
  6626.  02h    WORD    offset of source bitmap
  6627.  04h    WORD    segment of buffer for resulting bitmap
  6628.  06h    WORD    offset of buffer for resulting bitmap
  6629. --------V-6200CC-----------------------------
  6630. INT 62 u - FGDRIVER v4.02 - "FG_VBADDR" - GET ADDRESS OF VIRTUAL BUFFER
  6631.     AX = 00CCh
  6632.     BX = virtual buffer handle (0000h-001Fh)
  6633. Return: DX:AX -> virtual buffer
  6634. Note:    the FGDRIVER functions are rearranged with each major release, but
  6635.       their parameters do not change (see #2723)
  6636. SeeAlso: AX=00CDh,AX=00CEh,AX=00CFh,AX=00D3h
  6637. --------V-6200CD-----------------------------
  6638. INT 62 u - FGDRIVER v4.02 - "FG_VBALLOC" - CREATE VIRTUAL BUFFER
  6639.     AX = 00CDh
  6640.     BX = width of virtual buffer in pixels
  6641.     CX = height in pixels
  6642. Return: AX = handle for virtual buffer, or
  6643.         FFFEh out of memory
  6644.         FFFFh virtual buffer table full
  6645. Note:    the FGDRIVER functions are rearranged with each major release, but
  6646.       their parameters do not change (see #2723)
  6647. SeeAlso: AX=00CCh,AX=00CEh,AX=00D0h,AX=00D1h,AX=00D2h,AX=00D4h
  6648. --------V-6200CE-----------------------------
  6649. INT 62 u - FGDRIVER v4.02 - "FG_VBCLOSE" - CLOSE ACTIVE VIRTUAL BUFFER
  6650.     AX = 00CEh
  6651. Desc:    close the active virtual buffer and direct further graphics to the
  6652.       active video page
  6653. Note:    the FGDRIVER functions are rearranged with each major release, but
  6654.       their parameters do not change (see #2723)
  6655. SeeAlso: AX=00CCh,AX=00D1h,AX=00D4h,AX=00D5h,AX=00D9h
  6656. --------V-6200CF-----------------------------
  6657. INT 62 u - FGDRIVER v4.02 - "FG_VBCOPY" - COPY RECT BETWEEN VIRTUAL BUFFERS
  6658.     AX = 00CFh
  6659.     ES:BX -> variable record (see #2759)
  6660.     CX = handle for source virtual buffer
  6661.     DX = handle for destination virtual buffer
  6662. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6663.       their parameters do not change (see #2723)
  6664.     if the destination buffer is the same as the source buffer, the regions
  6665.       must not overlap
  6666. SeeAlso: AX=00D0h,AX=00D1h,AX=00D4h,AX=00D6h,AX=00D7h
  6667.  
  6668. Format of FGDRIVER VBCOPY variable record:
  6669. Offset    Size    Description    (Table 2759)
  6670.  00h    WORD    source region's left edge
  6671.  02h    WORD    source region's right edge
  6672.  04h    WORD    source region's top edge
  6673.  06h    WORD    source region's bottom edge
  6674.  08h    WORD    X coordinate of destination's upper left corner
  6675.  0Ah    WORD    Y coordinate of destination's upper left corner
  6676. --------V-6200D0-----------------------------
  6677. INT 62 u - FGDRIVER v4.02 - "FG_VBCUT" - COPY RECT FROM VIDEO TO VIRTUAL BUFFER
  6678.     AX = 00D0h
  6679.     BX = source region's left edge
  6680.     CX = source region's right edge
  6681.     DX = source region's top edge
  6682.     SI = source region's bottom edge
  6683.     DI = X coordinate of destination's upper left corner
  6684.     ES = Y coordinate of destination's upper left corner
  6685. Desc:    copy a rectangle from the active video page to the active virtual
  6686.       buffer
  6687. Note:    the FGDRIVER functions are rearranged with each major release, but
  6688.       their parameters do not change (see #2723)
  6689. SeeAlso: AX=00CDh,AX=00CFh,AX=00D4h,AX=00D6h
  6690. --------V-6200D1-----------------------------
  6691. INT 62 u - FGDRIVER v4.02 - "FG_VBDEFINE" - CREATE VIRTUAL BUFFER
  6692.     AX = 00D1h
  6693.     ES:BX -> memory block for virtual buffer
  6694.     CX = buffer width in pixels
  6695.     DX = buffer height in pixels
  6696. Return: AX = virtual buffer handle
  6697.         FFFFh on error
  6698. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6699.       their parameters do not change (see #2723)
  6700.     the application-provided buffer must be large enough to hold CX*DX
  6701.       bytes
  6702. SeeAlso: AX=00CCh,AX=00CDh,AX=00CEh,AX=00D2h,AX=00D4h,AX=00D5h
  6703. --------V-6200D2-----------------------------
  6704. INT 62 u - FGDRIVER v4.02 - "FG_VBFREE" - RELEASE VIRTUAL BUFFER
  6705.     AX = 00D2h
  6706.     BX = virtual buffer handle
  6707. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6708.       their parameters do not change (see #2723)
  6709.     this function should be used only for buffers created with FG_VBALLOC
  6710. SeeAlso: AX=00CDh,AX=00D4h,AX=00D5h
  6711. --------V-6200D3-----------------------------
  6712. INT 62 u - FGDRIVER v4.02 - "FG_VBHANDLE" - GET ACTIVE VIRTUAL BUFFER'S HANDLE
  6713.     AX = 00D3h
  6714. Return: AX = handle for active virtual buffer
  6715. Note:    the FGDRIVER functions are rearranged with each major release, but
  6716.       their parameters do not change (see #2723)
  6717. SeeAlso: AX=00CCh,AX=00D4h
  6718. --------V-6200D4-----------------------------
  6719. INT 62 u - FGDRIVER v4.02 - "FG_VBINIT" - INITIALIZE VIRTUAL BUFFER ENVIRONMENT
  6720.     AX = 00D4h
  6721. Return: nothing
  6722. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6723.       their parameters do not change (see #2723)
  6724.     this function must be called before any other virtual buffer functions
  6725.       are used
  6726. SeeAlso: AX=00CDh,AX=00D5h
  6727. --------V-6200D5-----------------------------
  6728. INT 62 u - FGDRIVER v4.02 - "FG_VBOPEN" - MAKE VIRTUAL BUFFER ACTIVE
  6729.     AX = 00D5h
  6730.     BX = virtual buffer handle
  6731. Return: AX = status
  6732.         0000h successful
  6733.         FFFEh no buffer defined for specified handle
  6734.         FFFFh invalid buffer handle
  6735. Note:    the FGDRIVER functions are rearranged with each major release, but
  6736.       their parameters do not change (see #2723)
  6737. SeeAlso: AX=00CDh,AX=00CEh,AX=00D1h,AX=00D4h,AX=00D9h
  6738. --------V-6200D6-----------------------------
  6739. INT 62 u - FGDRIVER v4.02 - "FG_VBPASTE" - COPY RECT FROM VIRTUAL BUF TO VIDEO
  6740.     AX = 00D6h
  6741.     BX = source region's left edge
  6742.     CX = source region's right edge
  6743.     DX = source region's top edge
  6744.     SI = source region's bottom edge
  6745.     DI = X coordinate of destination's upper left corner
  6746.     ES = Y coordinate of destination's upper left corner
  6747. Desc:    copy a rectangle from the active virtual buffer to the active video
  6748.       page
  6749. Note:    the FGDRIVER functions are rearranged with each major release, but
  6750.       their parameters do not change (see #2723)
  6751. SeeAlso: AX=00CFh,AX=00D0h,AX=00D4h,AX=00D7h
  6752. --------V-6200D7-----------------------------
  6753. INT 62 u - FGDRIVER v4.02 - "FG_VBTCCOPY" - COPY RECTANGLE BETWEEN VIRTUAL BUFS
  6754.     AX = 00D7h
  6755.     ES:BX -> variable record (see #2760)
  6756.     CX = source virtual buffer's handle
  6757.     DX = destination virtual buffer's handle
  6758. Desc:    copy rectangle from one virtual buffer to another with transparent
  6759.       colors
  6760. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6761.       their parameters do not change (see #2723)
  6762.     if the destination buffer is the same as the source buffer, the regions
  6763.       must not overlap
  6764. SeeAlso: AX=00CFh,AX=00D0h,AX=00D6h,AX=00D8h
  6765.  
  6766. Format of FGDRIVER VBTCCOPY variable record:
  6767. Offset    Size    Description    (Table 2760)
  6768.  00h    WORD    source region's left edge
  6769.  02h    WORD    source region's right edge
  6770.  04h    WORD    source region's top edge
  6771.  06h    WORD    source region's bottom edge
  6772.  08h    WORD    X coordinate of destination region's upper left corner
  6773.  0Ah    WORD    Y coordinate of destination region's upper left corner
  6774. --------V-6200D8-----------------------------
  6775. INT 62 u - FGDRIVER v4.02 - "FG_VBTCXFER" - COPY RECTANGLE TO ACTIVE VIDEO PAGE
  6776.     AX = 00D8h
  6777.     BX = source region's left edge
  6778.     CX = source region's right edge
  6779.     DX = source region's top edge
  6780.     SI = source region's bottom edge
  6781.     DI = X coordinate of destination's upper left corner
  6782.     ES = Y coordinate of destination's upper left corner
  6783. Desc:    copy a rectangle from the active virtual buffer to the active video
  6784.       page, with transparent colors
  6785. Note:    the FGDRIVER functions are rearranged with each major release, but
  6786.       their parameters do not change (see #2723)
  6787. SeeAlso: AX=00D6h,AX=00D7h
  6788. --------V-6200D9-----------------------------
  6789. INT 62 u - FGDRIVER v4.02 - "FG_VBUNDEF" - RELEASE HANDLE FOR VIRTUAL BUFFER
  6790.     AX = 00D9h
  6791.     BX = virtual buffer handle
  6792. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6793.       their parameters do not change (see #2723)
  6794.     the specified handle must not reference the currently-active virtual
  6795.       buffer
  6796. SeeAlso: AX=00D1h,AX=00D5h
  6797. --------V-6200DA-----------------------------
  6798. INT 62 u - FGDRIVER v4.02 - "FG_VGASTATE" - SAVE/RESTORE VGA CONTROLLER STATE
  6799.     AX = 00DAh
  6800.     BX = direction (0000h save, else restore)
  6801. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6802.       their parameters do not change (see #2723)
  6803.     this function is only meaningful in modes 0Dh and above
  6804. --------V-6200DB-----------------------------
  6805. INT 62 u - FGDRIVER v4.02 - "FG_VOICE" - START SOUND
  6806.     AX = 00DBh
  6807.     BX = channel on TI sound chip
  6808.         1-3 = channels 1-3, 4 = channel 4 with periodic noise,
  6809.         5 = channel 4 with white noise
  6810.     CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz,
  6811.           2=2048 Hz for channels 4 and 5)
  6812.     DX = volume
  6813.     SI = duration in clock ticks (continuous if <= 0)
  6814. Program: FGDRIVER is the external video driver for the shareware
  6815.       Fastgraph/Light by Ted Gruber Software
  6816. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6817.       their parameters do not change (see #2723 at AX=0000h)
  6818.     This function is only available on the PCjr and Tandy 1000 machines
  6819. SeeAlso: AX=0080h,AX=00BCh,AX=00DCh
  6820. --------V-6200DC-----------------------------
  6821. INT 62 u - FGDRIVER v4.02 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
  6822.     AX = 00DCh
  6823.     ES:BX -> tone array (see #2761)
  6824.     CX = number of times to repeat tone array
  6825. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6826.       their parameters do not change (see #2723 at AX=0000h)
  6827.     This function is only available on the PCjr and Tandy 1000 machines
  6828. SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DBh
  6829.  
  6830. Format of FGDRIVER tone array element:
  6831. Offset    Size    Description    (Table 2761)
  6832.  00h    WORD    channel number (0000h terminates array)
  6833.  02h    WORD    frequency
  6834.  04h    WORD    volume
  6835.  06h    WORD    duration in 1/72.8 seconds
  6836. --------V-6200DD-----------------------------
  6837. INT 62 u - FGDRIVER v4.02 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
  6838.     AX = 00DDh
  6839.     BX = duration in clock ticks
  6840. Return: after delay elapses
  6841. Note:    the FGDRIVER functions are rearranged with each major release, but
  6842.       their parameters do not change (see #2723 at AX=0000h)
  6843. SeeAlso: AX=00BFh,INT 1A/AX=FF01h
  6844. --------V-6200DE-----------------------------
  6845. INT 62 u - FGDRIVER v4.02 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
  6846.     AX = 00DEh
  6847. Return: after next key pressed
  6848. Note:    the FGDRIVER functions are rearranged with each major release, but
  6849.       their parameters do not change (see #2723 at AX=0000h)
  6850. SeeAlso: AX=000Ah,AX=0046h,AX=0063h,AX=0069h,INT 16/AH=00h
  6851. --------V-6200DF-----------------------------
  6852. INT 62 u - FGDRIVER v4.02 - "FG_WAITVR" - ENABLE/DISABLE VERTICAL RETRACE WAIT
  6853.     AX = 00DFh
  6854.     BX = new state (0000h disabled, 0001h enabled)
  6855. Note:    the FGDRIVER functions are rearranged with each major release, but
  6856.       their parameters do not change (see #2723 at AX=0000h)
  6857. --------V-6200E0-----------------------------
  6858. INT 62 u - FGDRIVER v4.02 - "FG_WHERE" - GET CURRENT CURSOR POSITION
  6859.     AX = 00E0h
  6860.     ES:BX -> variable pointers (see #2762)
  6861. Return: indicated variables filled with cursor row and column for active
  6862.       display
  6863. Note:    the FGDRIVER functions are rearranged with each major release, but
  6864.       their parameters do not change (see #2723 at AX=0000h)
  6865. SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=007Eh
  6866.  
  6867. Format of FGDRIVER variable pointers:
  6868. Offset    Size    Description    (Table 2762)
  6869.  00h    WORD    segment of WORD buffer for cursor row
  6870.  02h    WORD    offset of WORD buffer for cursor row
  6871.  04h    WORD    segment WORD buffer for cursor column
  6872.  06h    WORD    offset WORD buffer for cursor column
  6873. --------V-6200E1-----------------------------
  6874. INT 62 u - FGDRIVER v4.02 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
  6875.     AX = 00E1h
  6876.     BX = screen space column
  6877. Return: AX = character space column containing specified coordinate
  6878. Note:    the FGDRIVER functions are rearranged with each major release, but
  6879.       their parameters do not change (see #2723 at AX=0000h)
  6880. SeeAlso: AX=00E2h,AX=00E4h
  6881. --------V-6200E2-----------------------------
  6882. INT 62 u - FGDRIVER v4.02 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
  6883.     AX = 00E2h
  6884.     BX = character space column
  6885. Return: AX = screen space column of leftmost pixel in specified character col
  6886. Note:    the FGDRIVER functions are rearranged with each major release, but
  6887.       their parameters do not change (see #2723 at AX=0000h)
  6888. SeeAlso: AX=00E2h,AX=00E5h
  6889. --------V-6200E3-----------------------------
  6890. INT 62 u - FGDRIVER v4.02 - "FG_XVIEW" - CONVERT VIEWPORT COORDINATE
  6891.     AX = 00E3h
  6892.     BX = horizontal viewport coordinate
  6893. Return: AX = screen space X coordinate corresponding to supplied coordinate
  6894. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6895.       their parameters do not change (see #2723 at AX=0000h)
  6896.     if no viewport has been defined, the returned coordinate will be the
  6897.       same as the viewport coordinate
  6898. SeeAlso: AX=00E2h,AX=00E6h
  6899. --------V-6200E4-----------------------------
  6900. INT 62 u - FGDRIVER v4.02 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
  6901.     AX = 00E4h
  6902.     BX = screen space row
  6903. Return: AX = character space row containing specified coordinate
  6904. Note:    the FGDRIVER functions are rearranged with each major release, but
  6905.       their parameters do not change (see #2723 at AX=0000h)
  6906. SeeAlso: AX=00E1h,AX=00E5h
  6907. --------V-6200E5-----------------------------
  6908. INT 62 u - FGDRIVER v4.02 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
  6909.     AX = 00E5h
  6910.     BX = character space row
  6911. Return: AX = screen space row of topmost pixel in specified character row
  6912. Note:    the FGDRIVER functions are rearranged with each major release, but
  6913.       their parameters do not change (see #2723 at AX=0000h)
  6914. SeeAlso: AX=00E2h,AX=00E4h,AX=00E6h
  6915. --------V-6200E6-----------------------------
  6916. INT 62 u - FGDRIVER v4.02 - "FG_YVIEW" - TRANSLATE VERTICAL VIEWPORT COORDINATE
  6917.     AX = 00E6h
  6918.     BX = viewport Y coordinate
  6919. Return: AX = screen space row for viewport coordinate
  6920. Program: FGDRIVER is the external video driver for the shareware
  6921.       Fastgraph/Light by Ted Gruber Software
  6922. Notes:    the FGDRIVER functions are rearranged with each major release, but
  6923.       their parameters do not change (see #2723 at AX=0000h)
  6924.     if no viewport has been defined, the returned coordinate will be the
  6925.       same as the viewport coordinate
  6926. SeeAlso: AX=00E3h,AX=00E5h
  6927. --------T-6201-------------------------------
  6928. INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
  6929.     AH = 01h
  6930. Program: Cswitch is a set of multitasking functions by Herb Rose
  6931. SeeAlso: AH=05h"Cswitch",AH=06h"Cswitch",INT 15/AX=1000h,INT 2F/AX=1680h
  6932. --------N-6201-------------------------------
  6933. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
  6934.     AH = 01h
  6935. Return: CF clear if successful
  6936.     CF set on error
  6937.         AL = error code
  6938. Range:    INT 4C to INT FB, selected by configuration
  6939. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  6940. SeeAlso: INT 64/AH=01h"BW-NFS"
  6941. --------T-6202-------------------------------
  6942. INT 62 - Cswitch - WAIT FOR SEMAPHORE
  6943.     AH = 02h
  6944.     DX = semaphore number (0-63)
  6945. Return: AX = FFFFh bad semaphore number
  6946.          else  success
  6947. SeeAlso: AH=03h"Cswitch",AH=04h"Cswitch"
  6948. --------N-6202-------------------------------
  6949. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - INITIALIZE
  6950.     AH = 02h
  6951. Return: CF clear if successful
  6952.     CF set on error
  6953.         AL = error code
  6954. SeeAlso: AH=00h"ETHDEV",AH=03h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  6955. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  6956. --------T-6203-------------------------------
  6957. INT 62 - Cswitch - CHECK SEMAPHORE
  6958.     AH = 03h
  6959.     DX = semaphore number (0-63)
  6960. Return: AX = status
  6961.         FFFFh not owned
  6962.         else  owned
  6963. SeeAlso: AH=02h,AH=04h
  6964. --------N-6203-------------------------------
  6965. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET REAL IP ADDRESS
  6966.     AH = 03h
  6967.     DS:SI -> DWORD buffer for IP address
  6968. Return: CF clear if successful
  6969.     CF set on error
  6970.         AL = error code
  6971. Range:    INT 4C to INT FB, selected by configuration
  6972. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  6973.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  6974.       consecutive interrupt (64h by default) if it is loaded
  6975. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  6976. SeeAlso: INT 64/AH=01h"BW-NFS"
  6977. --------T-6204-------------------------------
  6978. INT 62 - Cswitch - TRIGGER SEMAPHORE
  6979.     AH = 04h
  6980.     DX = semaphore number (0-63)
  6981. Return: AX = status
  6982.         FFFFh bad semaphore number
  6983.         else  success
  6984. SeeAlso: AH=02h"Cswitch",AH=03h"Cswitch"
  6985. --------N-6204-------------------------------
  6986. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
  6987.     AH = 04h
  6988.     BX = ???
  6989.     ES:SI -> FAR routine for ???
  6990. Return: CF clear if successful
  6991.     CF set on error
  6992.         AL = error code
  6993. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  6994. SeeAlso: INT 64/AH=01h"BW-NFS"
  6995. --------T-6205-------------------------------
  6996. INT 62 - Cswitch - SLEEP
  6997.     AH = 05h
  6998.     BX = seconds to sleep
  6999. SeeAlso: AH=01h"Cswitch",AH=06h"Cswitch",AH=08h"Cswitch"
  7000. --------N-6205-------------------------------
  7001. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7002.     AH = 05h
  7003.     ???
  7004. Return: CF clear if successful
  7005.     CF set on error
  7006.         AL = error code
  7007. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7008. SeeAlso: INT 64/AH=01h"BW-NFS"
  7009. --------T-6206-------------------------------
  7010. INT 62 - Cswitch - SUSPEND
  7011.     AH = 06h
  7012. SeeAlso: AH=05h"Cswitch",AH=08h"Cswitch"
  7013. --------N-6206-------------------------------
  7014. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7015.     AH = 06h
  7016.     ???
  7017. Return: CF clear if successful
  7018.     CF set on error
  7019.         AL = error code
  7020. Range:    INT 4C to INT FB, selected by configuration
  7021. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7022.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7023.       consecutive interrupt (64h by default) if it is loaded
  7024. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7025. SeeAlso: INT 64/AH=01h"BW-NFS"
  7026. --------T-6207-------------------------------
  7027. INT 62 - Cswitch - SPAWN
  7028.     AH = 07h
  7029.     ES:BX -> function address to start executing at
  7030.     CX = priority (1-10)
  7031. Return: AX = result/status
  7032.         FFFDh  no free memory control blocks
  7033.         FFFEh  no free task control blocks
  7034.         FFFFh  not enough memory to create new task stack
  7035.         >0       the tcb number of the new task, indicating no error
  7036. SeeAlso: AH=0Fh"Cswitch",AH=10h"Cswitch"
  7037. --------N-6207-------------------------------
  7038. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7039.     AH = 07h
  7040.     DS:SI -> ???
  7041. Return: CF clear if successful
  7042.     CF set on error
  7043.         AL = error code
  7044. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7045. SeeAlso: INT 64/AH=01h"BW-NFS"
  7046. --------T-6208-------------------------------
  7047. INT 62 - Cswitch - WAKE UP TASK
  7048.     AH = 08h
  7049.     BX = tcb identifier
  7050. SeeAlso: AH=05h,AH=06h
  7051. --------N-6208-------------------------------
  7052. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7053.     AH = 08h
  7054.     CX = ???
  7055.     ES:SI -> ??? buffer (see #2763)
  7056. Return: CF clear if successful
  7057.     CF set on error
  7058.         AL = error code
  7059. Range:    INT 4C to INT FB, selected by configuration
  7060. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7061. SeeAlso: INT 64/AH=01h"BW-NFS"
  7062.  
  7063. Format of BW-TCP ??? buffer:
  7064. Offset    Size    Description    (Table 2763)
  7065.  00h  6 BYTEs    hardware address???
  7066.  06h  6 BYTEs    ???
  7067.  0Ch    WORD    ???
  7068.  0Eh    WORD    ???
  7069. ----------6208--CXFFFE-----------------------
  7070. INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
  7071.     AH = 08h
  7072.     CX = FFFEh
  7073.     DX = FFFFh
  7074. Return: AX = PSP address of resident DBLIBRARY
  7075. Note:    this call does not free the memory allocated to the TSR; the calling
  7076.       code must do the deallocation.
  7077. SeeAlso: INT 62"DBLIBRARY"
  7078. --------T-6209-------------------------------
  7079. INT 62 - Cswitch - SET PRIORITY
  7080.     AH = 09h
  7081.     BX = new base priority (1-10)
  7082. Note:    the lower the priority is numerically, the more often the task will run
  7083. --------N-6209-------------------------------
  7084. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - HOOK TIMER INTERRUPT
  7085.     AH = 09h
  7086. Return: CF clear if successful
  7087.         AX = handler ID
  7088.     CF set on error
  7089.         AL = error code
  7090. Range:    INT 4C to INT FB, selected by configuration
  7091. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7092.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7093.       consecutive interrupt (64h by default) if it is loaded
  7094. SeeAlso: AH=0Ah"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7095. SeeAlso: INT 64/AH=01h"BW-NFS"
  7096. --------T-620A-------------------------------
  7097. INT 62 - Cswitch - TEST MESSAGE QUEUE
  7098.     AH = 0Ah
  7099.     DX = queue number (0-63)
  7100. Return: AX = result/message size
  7101.         0000h nothing on queue
  7102.         FFFFh bad queue number
  7103.         else  number of bytes in first message in queue
  7104. SeeAlso: AH=0Bh"Cswitch",AH=0Ch"Cswitch"
  7105. --------N-620A-------------------------------
  7106. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - UNHOOK TIMER INTERRUPT
  7107.     AH = 0Ah
  7108.     DX = handler ID
  7109. Return: CF clear if successful
  7110.     CF set on error
  7111.         AL = error code
  7112. SeeAlso: AH=09h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7113. SeeAlso: INT 64/AH=01h"BW-NFS"
  7114. --------T-620B-------------------------------
  7115. INT 62 - Cswitch - SEND MESSAGE
  7116.     AH = 0Bh
  7117.     CX = number of bytes to write
  7118.     DS:SI -> buffer
  7119.     DX = queue number (0-63)
  7120. Return: AX = result/message size
  7121.         0000h no message was on queue
  7122.         FFFEh triggered by something arriving, redo the call
  7123.         FFFFh bad queue number
  7124.         else  number of bytes in message
  7125. SeeAlso: AH=0Ah"Cswitch",AH=0Ch"Cswitch"
  7126. --------N-620B-------------------------------
  7127. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ADD ???
  7128.     AH = 0Bh
  7129.     AL = ???
  7130.     DX = ???
  7131.     BP = ???
  7132.     ES:SI -> ???
  7133. Return: CF clear if successful
  7134.     CF set on error
  7135.         AL = error code
  7136. SeeAlso: AH=0Ch"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7137. SeeAlso: INT 64/AH=01h"BW-NFS"
  7138. --------T-620C-------------------------------
  7139. INT 62 - Cswitch - READ MESSAGE
  7140.     AH = 0Ch
  7141.     CX = number of bytes to read
  7142.     DS:SI -> buffer
  7143.     DX = queue number (0-63)
  7144. Return: AX = status
  7145.         FFFFh bad queue number
  7146.         else  number of bytes transferred
  7147. SeeAlso: AH=0Ah,AH=0Bh
  7148. --------N-620C-------------------------------
  7149. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - REMOVE ???
  7150.     AH = 0Ch
  7151.     DX = ???
  7152.     BP = ???
  7153. Return: CF clear if successful
  7154.     CF set on error
  7155.         AL = error code
  7156. Range:    INT 4C to INT FB, selected by configuration
  7157. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7158.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7159.       consecutive interrupt (64h by default) if it is loaded
  7160. SeeAlso: AH=0Bh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7161. SeeAlso: INT 64/AH=01h"BW-NFS"
  7162. --------T-620D-------------------------------
  7163. INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
  7164.     AH = 0Dh
  7165. SeeAlso: AH=0Eh"Cswitch"
  7166. --------N-620D-------------------------------
  7167. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
  7168.     AH = 0Dh
  7169. Return: CF clear if successful
  7170.     CF set on error
  7171.         AL = error code
  7172. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7173. SeeAlso: INT 64/AH=01h"BW-NFS"
  7174. --------T-620E-------------------------------
  7175. INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
  7176.     AH = 0Eh
  7177. SeeAlso: AH=0Dh"Cswitch"
  7178. --------N-620E-------------------------------
  7179. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - BEGIN CRITICAL SECTION
  7180.     AH = 0Eh
  7181. Return: CF clear if successful
  7182.     CF set on error
  7183.         AL = error code
  7184. SeeAlso: AH=0Fh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  7185. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  7186. --------T-620F-------------------------------
  7187. INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
  7188.     AH = 0Fh
  7189.     ES:BX -> command line
  7190.     CX = priority (1-10)
  7191.     DX = background flag (nonzero allows loading to EMS)
  7192. Return: AX = status
  7193.         0000h task loader queue is full
  7194.         0001h  no error
  7195. SeeAlso: AH=07h"Cswitch",AH=10h"Cswitch",AH=13h"Cswitch"
  7196. --------N-620F-------------------------------
  7197. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - END CRITICAL SECTION
  7198.     AH = 0Fh
  7199. Return: CF clear if successful
  7200.     CF set on error
  7201.         AL = error code
  7202. Range:    INT 4C to INT FB, selected by configuration
  7203. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7204.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7205.       consecutive interrupt (64h by default) if it is loaded
  7206. SeeAlso: AH=0Eh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  7207. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  7208. --------T-6210-------------------------------
  7209. INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
  7210.     AH = 10h
  7211. SeeAlso: AH=07h"Cswitch",AH=0Fh"Cswitch"
  7212. --------N-6210-------------------------------
  7213. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - QUERY CRITICAL SECTION
  7214.     AH = 10h
  7215. Return: CF clear if no critical section active
  7216.     CF set if in critical section
  7217. SeeAlso: AH=0Eh"ETHDEV",AH=0Fh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
  7218. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
  7219. --------T-6211-------------------------------
  7220. INT 62 - Cswitch - GET TCB INFORMATION
  7221.     AH = 11h
  7222.     ES:BX -> a pointer which will be set to the tcb address
  7223. Return: AX = tcb indentifier
  7224. SeeAlso: AH=12h
  7225. --------N-6211-------------------------------
  7226. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
  7227.     AH = 11h
  7228.     ES:SI -> ???
  7229. Return: CF clear
  7230. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7231. SeeAlso: INT 64/AH=01h"BW-NFS"
  7232. --------T-6212-------------------------------
  7233. INT 62 - Cswitch - GET TCB ADDRESS
  7234.     AH = 12h
  7235.     ES:BX -> a pointer which will be set to the tcb table address
  7236. Return: AX = tcb indentifier
  7237. SeeAlso: AH=11h"Cswitch"
  7238. --------N-6212-------------------------------
  7239. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET SOCKET NUMBER???
  7240.     AH = 12h
  7241. Return: CF clear if successful
  7242.         AX = socket number??? (memory variable incremented after reading)
  7243.     CF set on error
  7244.         AL = error code
  7245. Range:    INT 4C to INT FB, selected by configuration
  7246. Note:    the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7247.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7248.       consecutive interrupt (64h by default) if it is loaded
  7249. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7250. SeeAlso: INT 64/AH=01h"BW-NFS"
  7251. --------T-6213-------------------------------
  7252. INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
  7253.     AH = 13h
  7254. Return: AX = result
  7255.         FFFCh no Memory Control Blocks available
  7256.         FFFDh no TCBs available
  7257.         FFFEh insufficient memory
  7258.         FFFFh cannot open file
  7259.         0000h load in progress (not done yet)
  7260.         else  tcb indentifier
  7261. SeeAlso: AH=0Fh
  7262. --------N-6213-------------------------------
  7263. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7264.     AH = 13h
  7265.     CX = ???
  7266. Return: CF clear if successful
  7267.         AL = 00h
  7268.     CF set on error
  7269.         AL = error code
  7270. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7271. SeeAlso: INT 64/AH=01h"BW-NFS"
  7272. --------N-6214-------------------------------
  7273. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7274.     AH = 14h
  7275.     ES:SI -> ???
  7276. Return: CF clear if successful
  7277.         AL = 00h
  7278.     CF set on error
  7279.         AL = error code
  7280. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7281. SeeAlso: INT 64/AH=01h"BW-NFS"
  7282. --------N-6215-------------------------------
  7283. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET ???
  7284.     AH = 15h
  7285. Return: CF clear if successful
  7286.         AX = ??? (destroyed???)
  7287.     CF set on error
  7288.         AL = error code
  7289. Range:    INT 4C to INT FB, selected by configuration
  7290. Notes:    call this function after reading the "ETHDEV27" device
  7291.     the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7292.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7293.       consecutive interrupt (64h by default) if it is loaded
  7294. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7295. INT 64/AH=01h"BW-NFS"
  7296. --------N-6216-------------------------------
  7297. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7298.     AH = 16h
  7299.     ???
  7300. Return: CF clear if successful
  7301.     CF set on error
  7302.         AL = error code
  7303. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7304. SeeAlso: INT 64/AH=01h"BW-NFS"
  7305. --------N-6217-------------------------------
  7306. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
  7307.     AH = 17h
  7308.     DX = segment of ???
  7309. Return: CF clear
  7310. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
  7311. SeeAlso: INT 64/AH=01h"BW-NFS"
  7312. --------N-6218-------------------------------
  7313. INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ALLOCATE AND MAP EMS FOR DRIVER
  7314.     AH = 18h
  7315. Return: CF clear if successful
  7316.     CF set on error
  7317.         AL = error code
  7318. Range:    INT 4C to INT FB, selected by configuration
  7319. Notes:    calls function 17h after EMS allocated and mapped
  7320.     the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7321.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7322.       consecutive interrupt (64h by default) if it is loaded
  7323. SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=03h"BW-TCP",INT 63/AH=24h
  7324. SeeAlso: INT 64/AH=01h"BW-NFS"
  7325. --------R-6247-------------------------------
  7326. INT 62 - PC Tools v7 COMMUTE - ???
  7327.     AH = 47h
  7328.     AL = subfunction (00h-31h)
  7329.     ???
  7330.     CF set
  7331. Return: ???
  7332. Program: COMMUTE is a remote-control program bundled with Central Point
  7333.       Software's PC Tools
  7334. --------R-6248-------------------------------
  7335. INT 62 - PC Tools v7 COMMUTE - ???
  7336.     AH = 48h
  7337.     AL = ???
  7338.     ???
  7339.     CF set
  7340. Return: ???
  7341. --------R-6249-------------------------------
  7342. INT 62 - PC Tools v7 COMMUTE - ???
  7343.     AH = 49h
  7344.     ???
  7345.     CF set
  7346. Return: ???
  7347. Note:    may be the same as AH=4Ch
  7348. --------R-624A-------------------------------
  7349. INT 62 - PC Tools v7 COMMUTE - ???
  7350.     AH = 4Ah
  7351.     AL = subfunction (00h-46h)
  7352.     ???
  7353.     CF set
  7354. Return: ???
  7355. --------R-624B--BX1234-----------------------
  7356. INT 62 - PC Tools v7 COMMUTE - ???
  7357.     AH = 4Bh
  7358.     BX = 1234h
  7359.     CX = 1234h
  7360.     ES = ???
  7361.     CF set
  7362. Return: ???
  7363. Program: COMMUTE is a remote-control program bundled with Central Point
  7364.       Software's PC Tools
  7365. --------R-624C-------------------------------
  7366. INT 62 - PC Tools v7 COMMUTE - ???
  7367.     AH = 4Ch
  7368.     BL = subfunction
  7369.         00h ???
  7370.         02h ???
  7371. Return: CF clear if successful
  7372.     CF set on error
  7373. --------R-626262-----------------------------
  7374. INT 62 - PC Tools v7 COMMUTE - INSTALLATION CHECK
  7375.     AX = 6262h
  7376.     CF set
  7377. Return: AX = 0000h
  7378.     BX = segment of resident code's PSP
  7379. Program: COMMUTE is a remote-control program bundled with Central Point
  7380.       Software's PC Tools
  7381. --------s-62C0-------------------------------
  7382. INT 62 U - GWBTSR - API
  7383.     AH = C0h
  7384.     AL = function
  7385.         00h installation check
  7386.         Return: AX = 00FFh if installed
  7387.         01h ???
  7388. Program: GWBTSR is a huge (48K) resident mixer controller for the Gateway 2000
  7389.       sound card (OEM version of Aztech Sound Galaxy)
  7390. Index:    installation check;GWBTSR
  7391. --------N-62FE-------------------------------
  7392. INT 62 - BW-TCP - ETHDRV.SYS - MAP EMS PAGE FRAME
  7393.     AH = FEh
  7394.     AL = direction
  7395.         00h map in driver's memory block
  7396.         01h map out driver's memory block
  7397. Return: CF clear if successful
  7398.     CF set on error
  7399.         AL = error code
  7400. Range:    INT 4C to INT FB, selected by configuration
  7401. Notes:    this function is supported by at least the SLIP and ODI versions of
  7402.       ETHDEV.SYS
  7403.     the Beame&Whiteside TCP/IP protocol stack uses two consecutive
  7404.       interrupts (62h and 63h by default); the BW-NFS client uses a third
  7405.       consecutive interrupt (64h by default) if it is loaded
  7406. SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=00h"ETHDEV",INT 62/AH=18h"ETHDEV"
  7407. SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h,INT 64/AH=FEh
  7408. --------!---Section--------------------------
  7409.