Metropoli BBS
VIEWER: interrup.n MODE: TEXT (ASCII)
Interrupt List, part 14 of 16
Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
--------*-61---------------------------------
INT 61 - reserved for user interrupt
--------b-61---------------------------------
INT 61 - Atari Portfolio - EXTENDED BIOS
Desc:	provides subfunctions such as turning off the machine, accessing
	  internal variables, and mapping memory cards
SeeAlso: INT 60"Atari",AH=00h"Portfolio",AH=08h"Portfolio",AH=0Dh"Portfolio"
SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
SeeAlso: AH=30h"Portfolio"
--------b-61---------------------------------
INT 61 - TI Professional PC - FACTORY ROM DATA AREA POINTER (NOT A VECTOR!)
Desc:	the low word of this vector contains the segment of the RAM data area
	  to be used by the expansion ROM at F400h:0000h, and the high word
	  contains the length of the data area; this segment and size are
	  both set to 0000h if no ROM is installed at F400h:0000h
SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
SeeAlso: INT 66"TI Professional PC"
--------b-61---------------------------------
INT 61 - HP 95LX System Manager - LOAD DS
SeeAlso: INT 0F"HP 95LX",INT 60/DI=0102h"HP 95LX"
--------r-61---------------------------------
INT 61 - JPI TopSPEED Modula-2 v1 - PROCEDURE EXIT TRAP
SeeAlso: INT 60"JPI"
--------d-61---------------------------------
INT 61 - Adaptec and OMTI controllers - DRIVE 0 DATA
Desc:	this vector stores the second four bytes of the parameter table for
	  hard disk 0
SeeAlso: INT 60"Adaptec",INT 62"Adaptec",INT 63"Adaptec"
--------I-61---------------------------------
INT 61 - Sangoma CCIP (CCPOP 3270 resident module) INTERFACE
	BX:DX -> control block
SeeAlso: INT 67"Sangoma"
--------v-61---------------------------------
INT 61 - VIRUS - "SEMTEX"/"Screen Trasher" - INT 21h SUBSTITUTE
Note:	the virus copies the original INT 21h vector into INT 61h
SeeAlso: INT 21/AH=00h,INT 21/AH=25h,INT 60"VIRUS",INT 6B"VIRUS"
--------U-61---------------------------------
INT 61 - PC-Magazin - PAGE, SWAPx
	details not yet available
Program: PAGE and SWAPx are utilities from PC-Magazin, the German edition of
	  PC Magazine, issue 47/85, page 31
SeeAlso: INT 66"INCA"
--------N-61---------------------------------
INT 61 - TCPOpen kernel - API
	ES:BX -> request packet (see #2988)
Program: TCPOpen is a TCP/IP protocol stack by Lanera
Range:	INT 60 to INT 7F, selected by configuration file
Note:	there does not appear to be an installation check, though function
	  FFFFh can be used to verify that the software is indeed functioning

Format of TCPOpen request packet:
Offset	Size	Description	(Table 2988)
 00h  8 BYTEs	???
 08h	WORD	function number (0000h-001Ah or FFF9h-FFFFh)
 0Ah	WORD	???
 0Ch  2 BYTEs	???
 0Eh	WORD	(ret) return code
 10h  2 BYTEs	???
 12h	WORD	???
 14h	WORD	(ret) 0001h if requested function complete
 16h	WORD	(ret) ???
 18h  6 BYTEs	???
 1Eh	DWORD	-> ???
 22h	WORD	??? or 0000h
 24h	WORD	(ret) ???
SeeAlso: #2989

(Table 2989)
Call TCPOpen Function FFFFh: installation verification
Return: offset 10h = BEEFh
	offset 14h = 0001h
	offset 24h = ???
Index:	installation check;TCPOpen kernel
--------N-61---------------------------------
INT 61 - XFS v1.76 - XFSKRNL.EXE - API
	AX = function
	    8000h installation check???
		Return: AX = 0000h
	    8001h ???
		ES:DI -> DWORD ???
		Return: AX = status???
	    8002h ???
		BX = ???
		CX = ???
		ES:DI -> ???
		Return: AX = status???
	    8003h ???
		BX = ???
		CX = ???
		ES:DI -> ???
		Return: AX = status???
	    8004h ???
		BX = ???
		Return: AX = status???
	    8005h wait until ???
		Return: DX:AX = ???
	    8006h get ???
		Return: DX:AX -> ??? record
	    8007h set IP address??? (or htonl/ntohl)
		DX:BX = IP address???
		Return: DX:AX = byte-swapped IP address
	    8008h set IP address??? (or htonl/ntohl)
		DX:AX = IP address???
		Return: DX:AX = byte-swapped IP address
	    8009h ???
		ES:DI -> ???
		Return: DX:AX = ???
	    800Ah ???
	    800Bh ???
		Return: DX:AX = ???
	    800Ch ???
	    800Dh ???
	    800Eh ???
	    800Fh ???
	    8010h get ??? record
		Return: DX:AX -> ??? record
	    8011h ???
	    8012h ???
		BX = ???
		Return: DX:AX = ???
	    8013h get ??? record
		Return: DX:AX -> ??? record
	    8014h ???
		ES:DI -> ???
		Return: nothing
	    8015h get ??? record
		Return: DX:AX -> 8-byte ??? record
	    8016h get ??? record
		Return: DX:AX -> 6-byte ??? record
	    8017h ???
		ES:DI -> ???
		Return: DX:AX = ???
	    8018h get ??? record
		Return: DX:AX -> ??? record
	    8019h get ??? record
		Return: DX:AX -> 14-byte ??? record
	    801Ah get ??? record
		Return: DX:AX -> ??? record (max 98 bytes)
	    801Bh get ??? record
		Return: DX:AX -> ??? record
	    801Ch ???
		Return: nothing
	    801Dh get ???
		Return: AL = ???
	    801Eh ???
		Return: AX = ???
	    801Fh uninstall
		Return: AX = status
			    0000h successful
			    other interrupt which could not be released
	AX = other
		Return: AX:BX = ??? (0000h:0000h by default)
Program: XFS is a shareware Network File System client by Robert Juhasz
Range:	INT 60 to INT 65, selected by scanning for two consecutive free
	  vectors and hooking the first
SeeAlso: INT 62"XFS"
--------N-61---------------------------------
INT 61 - FTP Software PC/TCP - TCP/IP TSR System Call interface
	AH = system call number (also see entries below)
	    01h "pkt_alloc" (v2.05; this is "net_config" in v2.1+)
	    02h "pkt_free" (v2.05; this is "get_kernel_info" in v2.1+)
Return: CF clear if successful
	CF set on error
	    AL = basic error (see #2990)
	    AH = suberror number (see #2991,#2992)
Range:	INT 20h to INT E0h, selected by configuration
Notes:	the installation check consists of testing for the signature "TCPTSR"
	  three bytes beyond the start of the interrupt handler
BUG:	the SLIP kernel for v2.05 bounds-checks the wrong register, so values
	  greater than 54h in AH may crash the system.	Other kernels may have
	  this bug as well.
SeeAlso: INT 61/AH=00h"PC/TCP",INT 61/AH=2Ah,INT 61/AH=54h
Index:	installation check;PC/TCP

(Table 2990)
Values for PC/TCP error code:
 00h "NET_NOERR" successful
 01h "NET_ERR_INUSE" protocol or socket already in use
 02h "NET_DOS_ERR" MS-DOS error (returned as suberror code in AH)
 03h "NET_ERR_NOMEM" out of memory
 04h "NET_ERR_NOTNETCONN" not a network descriptor
 05h "NET_ERR_ILLEGALOP" invalid operation on given kind of network descriptor
 06h "NET_ERR_BADPKT" illegal or corrupted packet
 07h "NET_ERR_NOHOST" no host bound to specified connection
 08h "NET_ERR_CANTOPEN" unable to open file
 09h "NET_ERR_NET_UNREACHABLE" network is unreachable
 0Ah "NET_ERR_HOST_UNREACHABLE" host is unreachable (see #2991)
 0Bh "NET_ERR_PROT_UNREACHABLE" protocol is unreachable
 0Ch "NET_ERR_PORT_UNREACHABLE" port is unreachable
 0Dh "NET_ERR_TIMEOUT" operation timed out
 0Eh "NET_ERR_HOSTUNKNOWN" unable to resolve host name
 0Fh "NET_ERR_NOSERVERS" no name servers configured
 10h "NET_ERR_SERVER_ERR" bad reply from name server
	Subcodes: 0= no error, 1 = Host unreachable
 11h "NET_ERR_BADFORMAT" bad format for IP address or field in IP address
			structure is zero
 12h "NET_ERR_BADARG" invalid argument
 13h "NET_ERR_EOF" foreign host closed its end of connection
 14h "NET_ERR_RESET" connection has been reset
 15h "NET_ERR_WOULDBLOCK" recv() call was done on a non-blocking connection
			with no data available
 16h "NET_ERR_UNBOUND" insufficient resources to do operation
 17h "NET_ERR_NODESC" could not allocate network descriptor
 18h "NET_ERR_BADSYSCALL" invalid/unsupported kernel call
 19h "NET_ERR_CANTBROADCAST" unable to broadcast
 1Ah "NET_ERR_NOTESTAB" operation illegal because connection not established
 1Bh kernel busy, try again later
 1Ch "NET_ERR_ICMPMESG" an ICMP message was received (not on streams)
	(see #2992)
---v2.1+---
 1Dh "NET_ERR_TERMINATING" internal kernel fatal error
 1Eh "NET_ERR_TAG_LOCKED" not allowed to set this tag (net_config)
 1Fh "NET_ERR_BAD_INTERFACE" non existent interface specified
 20h "NET_ERR_BADCONFIG" kernel cannot run - bad configuration
 21h "NET_ERR_EMM" expanded memory error
 22h "NET_ERR_CANT_SHUTDOWN" cant unload kernel (multitasker running)
 23h "NET_ERR_PARKED_IN" unable to unhook DOS interrupt
 24h "NET_ERR_NOQIOS" ran out of resources; try again later
 25h "NET_ERR_WOULD_TRUNCATE" datagram too large and "don't truncate" was set

(Table 2991)
Values for subcodes of PC/TCP error 0Ah "NET_ERR_HOST_UNREACHABLE":
 00h	no error
 01h	host unreachable
 02h	ARP failed
 03h	hardware failure
 04h	link failure
 05h	no route
 06h	gateway down
SeeAlso: #2990,#2992

(Table 2992)
Values for subcodes of PC/TCP error 1Ch "NET_ERR_ICMPMESG":
 07h	unrecognised
 08h	can't fragment
 09h	srcr_fail
 0Ah	source quench
 0Bh	time exceeded
 0Ch	parameter problem
 0Dh	admin_prohib. see also code 0Ah
SeeAlso: #2990,#2991
--------N-6100-------------------------------
INT 61 U - PC/TCP kernel v2.05+ - GET DEBUG INFORMATION
	AH = 00h
	DS:SI -> 216-byte buffer for network debugging information (see #2993)
Return: CF clear
	AX = 0000h
	buffer filled
Notes:	this call is not documented by FTP, Inc. for any version
	most of the information returned by this call is available via the
	  documented get_kernel_info or net_info commands.
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=2Ah"PC/TCP"

Format of network debugging information:
Offset	Size	Description	(Table 2993)
 00h	DWORD	number of interrupts
 04h	DWORD	receive buffer low-water mark
 08h	DWORD	transmit buffer low-water mark
 0Ch	DWORD	number of packets received
 10h	DWORD	number of packets transmitted
 14h	DWORD	total receive errors
 18h	DWORD	total transmit errors
 1Ch  4 BYTEs	???
 20h	DWORD	receive resets
 24h	DWORD	transmit resets
 28h	DWORD	number of "runts" received
 2Ch	DWORD	number of alignment errors on received packets
 30h	DWORD	number of CRC errors on received packets
 34h	DWORD	number of parity errors on received packets
 38h	DWORD	number of receive overflow errors
 3Ch	DWORD	number of oversized packets received
 40h	DWORD	number of packets lost due to lack of buffers
 44h	DWORD	receive timeouts
 48h 32 BYTEs	???
 68h	DWORD	number of transmit collisions
 6Ch	DWORD	number of transmit timeouts
 70h	DWORD	number of transmit underflows
 74h	DWORD	number of lost "crs" on transmit
 78h	DWORD	number of times heartbeat failed on transmit
 7Ch 24 BYTEs	???
 94h	WORD	free packet buffers
 96h	WORD	total packet buffers
 98h	WORD	minimum number of packet buffers free since kernel started
 9Ah 24 BYTEs	???
 B2h	DWORD	pointer to TCP connection list???
 B6h	DWORD	pointer to IP routing table???
 BAh 30 BYTEs	???
--------N-6100-------------------------------
INT 61 - Banyan VINES - CALL A SERVICE
	AH = 00h
	AL = service ID (1..16)
	other registers vary by service
Return: AX = status (see #2996)
Desc:	Calls an adapter driver or redirector service. The service handler
	  pointers are stored at offset 0010h in the code segment of the
	  BANV interrupt handler (see #2994).
Note:	Banyan can use any interrupt from 60h through 66h.  The Banyan
	  interrupt handler is identified by the string "BANV" in the four
	  bytes immediately preceding the interrupt handler
SeeAlso: AH=01h,AH=03h

Format of the BANV code segment (revision 5.53):
Offset	Size	Description	(Table 2994)
 00h 16	BYTEs	reserved
 10h 16	DWORDs	far pointers to the service handlers (0 = not installed)
 50h	DWORD	far pointer to last called service
 54h	WORD	VINES revision
 56h	DWORD	VINES revision long
 5Ah	WORD	VINES revision (lower bound)
 5Ch	DWORD	VINES revision (lower bound) long
 60h	WORD	VINES revision (upper bound)
 62h	DWORD	VINES revision (upper bound) long
 66h	WORD	end of PCCONFIG area
 68h	WORD	start of PCCONFIG area
 6Ah  4	BYTEs	BANV interrupt identifier ("BANV")
 6Eh  N	BYTEs	BANV interrupt service
SeeAlso: #2995
--------b-6100-------------------------------
INT 61 - Atari Portfolio - SERVICE INITIALIZATION
	AH = 00h
Return: nothing
Note:	applications using any Portfolio INT 61 calls should call this function
	  exactly once at startup
SeeAlso: AH=07h"Portfolio",AH=09h"Portfolio",AH=0Dh"Portfolio"
SeeAlso: AH=11h"Portfolio",AH=15h"Portfolio",AH=19h"Portfolio"
SeeAlso: AH=1Bh"Portfolio",AH=24h"Portfolio",AH=2Ch"Portfolio"
SeeAlso: AH=30h"Portfolio"
--------V-610000-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ZOOM DISPLAY
	AX = 0000h
	BX = zoom factor (0-7)
Desc:	zooms the display based on the given zoom factor
Notes:	INT 61h is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0001h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
SeeAlso: INT 16/AH=FFh"OPTIMA"
--------N-610001DS0001-----------------------
INT 61 - Banyan VINES - INTERNAL VINES SOCKET API (NEAR DATA)
	AX = 0001h
	DS = 0001h (to distinguish from alternate AX=0001h socket interface)
	CX:BX -> internal communications control block (see #2995)
	DX = caller's data segment
Return: AX = status
	    0000h successful
	    0099h invalid operation
	    00A5h resource not available
Desc:	StreetTalk access with session handles
Range:	INT 60 to INT 66
Notes:	This service is handled by the adapter driver
	The request dispatch table contains dummy entries for subfunctions
	  06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
	  (invalid operation) in the request block's result buffer
	in recent VINES releases, this interface is superseded by the AX=000Fh
	  interface, which allows FAR parameter block pointers (refer to that
	  function's entries for more details on individual subfunctions)
	some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
	  VINES 5.53) ignore the value in CX and use the value from DX instead
SeeAlso: AX=000Fh

Format of internal communications control block:
Offset	Size	Description	(Table 2995)
 00h	WORD	subfunction number
 02h	WORD	magic number (FEFEh)
 04h	WORD	(ret) result, should be set to 0 before calling
 06h	WORD	reserved (will be set to client DS)
 08h	WORD	caller's code segment if function 000Bh, 0 else
 0Ah	WORD	pointer to parameter block
 0Ch	WORD	reserved (segment of parameter block; will be set to client DS)
 0Eh	WORD	StreetTalk handle
SeeAlso: #2994,#3115 at INT 61/AX=000Fh
--------N-610001SF0001-----------------------
INT 61 - Banyan VINES - "Sosock" - OPEN COMMUNICATIONS SOCKET
	AX = 0001h subfn 0001h
	DS:DX -> communications control block (function 0001h) (see #2997)
Return: AX = status (0000h-0002h,0098h,009Eh-00A2h) (see #2996)
Range:	INT 60h to INT 66h
Note:	The Banyan interrupt handler is identified by the string "BANV" in
	  the four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0008h,INT 15/AX=DE2Eh

(Table 2996)
Values for VINES status:
 0000h	successful
 0001h	service not installed
 0002h	invalid service ID
 0003h	invalid function
 0004h-000Ah reserved for BANV interface errors
 0097h	invalid socket identifier
 0098h	resource already in use
 009Bh	destination node unreachable
 009Ch	message overflow
 009Dh	destination socket nonexistent
 009Eh	address family does not exist
 009Fh	socket type does not exist
 00A0h	protocol does not exist
 00A1h	no more sockets available
 00A2h	no more buffer space available
 00A3h	timeout
 00A5h	resource not available
 00A6h	internal communication failure
 00B1h	resource disconnect

Format of VINES control block to open socket:
Offset	Size	Description	(Table 2997)
 00h	WORD	0001h
 02h	WORD	pointer to argument block
 04h	WORD	error return code
 06h  4 BYTEs	reserved
SeeAlso: #2998

Format of VINES argument block for opening socket:
Offset	Size	Description	(Table 2998)
 00h	WORD	pointer to 2-byte buffer for socket identifier
 02h	WORD	address family
		0003h Banyan
 04h	WORD	socket type
		in address family 0003h
		    0001h IPC socket
		    0002h SPP socket
 06h	WORD	protocol number
		FFFFh default
 08h	WORD	pointer to 16-byte buffer for socket address (see #2999)
 0Ah	WORD	local port number
		0000h if service should assign transient port number
		0001h to 01FFh well-known port number (assigned by Banyan)
SeeAlso: #2997

Format of Banyan VINES IPC port:
Offset	Size	Description	(Table 2999)
 00h	WORD	address family (always 0003h for Banyan ports)
 04h  4 BYTEs	network number (server's serial number)
 06h	WORD	subnet number  (0001h = server, 8000h-FFFEh = PC)
 08h	WORD	port ID (0001h-01FFh for "well-known" ports)
 0Ah	BYTE	hop count
 0Bh  5 BYTEs	filler
SeeAlso: #3004
--------N-610001SF0002-----------------------
INT 61 - Banyan VINES - "Sosend" - INITIATE OUTPUT EVENT
	AX = 0001h subfn 0002h
	DS:DX -> communications control block (function 0002h) (see #3000)
Return: AX = status (0000h-0002h,0097h,009Bh-009Dh,00A2h,00A3h,00B1h)
	    (see #2996)
Range:	INT 60h to INT 66h
Note:	The Banyan interrupt handler is identified by the string "BANV" in
	  the four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0005h

Format of VINES control block for subfunction 0002h:
Offset	Size	Description	(Table 3000)
 00h	WORD	0002h
 02h	WORD	pointer to argument block (see #3001)
 04h	WORD	error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
		(see #2996)
 06h  4 BYTEs	reserved
SeeAlso: #3005

Format of VINES argument block for subfunction 0002h:
Offset	Size	Description	(Table 3001)
 00h	WORD	routine metric
 02h	WORD	error return code
 04h	WORD	socket identifier
 06h	WORD	pointer to send buffer (see #3003)
 08h	WORD	length of send buffer
 0Ah	WORD	message request flags (see #3002)
 0Ch 16 BYTEs	socket address (see #3004)
 1Ch	WORD	timeout value in multiples of 200ms
 1Eh	WORD	connection identifier
 20h	WORD	type of request
		0001h send message
		0002h establish a virtual connection
		0003h terminate a virtual connection
SeeAlso: #3000,#3006

Bitfields for message request flags:
Bit(s)	Description	(Table 3002)
 0	async request
 1	reliable message
 2	flush receive buffer on overflow
 3	end of user message received
 4	vectored request (if set, send buffer contains buffer descriptors)
 5	connection-specific receive
 6	change to connection-specific receive mode
SeeAlso: #3001,#3006

Format of buffer descriptor:
Offset	Size	Description	(Table 3003)
 00h	WORD	data segment
 02h	WORD	buffer pointer
 04h	WORD	buffer length
 06h	WORD	character count
SeeAlso: #3001

Format of VINES socket address for unreliable datagrams:
Offset	Size	Description	(Table 3004)
 00h	WORD	0003h	  address family
 02h	DWORD	FFFFFFFFh network number
 06h	WORD	FFFFh	  subnet number
 08h	WORD		  local port number
 0Ah	BYTE	00h-0Fh	  hop count
 0Bh  5 BYTEs	0000h	  filler
SeeAlso: #2999
--------N-610001SF0003-----------------------
INT 61 - Banyan VINES - "Sorec" - RECEIVE INPUT EVENT NOTIFICATION
	AX = 0001h subfn 0003h
	DS:DX -> communications control block (function 0003h) (see #3005)
Return: AX = status (00-0Ah,97h,A2h,A3h) (see #2996)
Range:	INT 60h to INT 66h
Note:	The Banyan interrupt handler is identified by the string "BANV" in
	  the four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0002h

Format of VINES control block for subfunction 0003h:
Offset	Size	Description	(Table 3005)
 00h	WORD	0003h
 02h	WORD	pointer to argument block (see #3006)
 04h	WORD	error return code (0000h,0097h,00A2h,00A3h,00A5h,00A6h,00B1h)
		(see #2996)
 06h  4 BYTEs	reserved
SeeAlso: #3000,#3006,#3008

Format of VINES argument block for subfunction 0003h:
Offset	Size	Description	(Table 3006)
 00h	WORD	character count
 02h	WORD	error return code
 04h	WORD	socket identifier
 06h	WORD	pointer to receive buffer (see #3007)
 08h	WORD	length of receive buffer
 0Ah	WORD	message request flags (see #3002)
 0Ch 16 BYTEs	socket address (see #2999)
 1Ch	WORD	timeout value in multiples of 200ms
 1Eh	WORD	connection identifier
 20h	WORD	type of response
		0001h message received
		0002h virtual connection established
		0003h virtual connection terminated
SeeAlso: #3005,#3009

Format of buffer descriptor:
Offset	Size	Description	(Table 3007)
 00h	WORD	data segment
 02h	WORD	buffer pointer
 04h	WORD	buffer length
 06h	WORD	character count
SeeAlso: #3006
--------N-610001SF0004-----------------------
INT 61 - Banyan VINES - "Soclose" - CLOSE A SOCKET
	AX = 0001h subfn 0004h
	DS:DX -> communications control block (function 0004h) (see #3008)
Return: AX = status (0000h-000Ah,0097h) (see #2996)
Range:	INT 60h to INT 66h
Note:	The Banyan interrupt handler is identified by the string "BANV" in
	  the four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0001h,INT 15/AX=DE2Eh

Format of VINES control block to close socket:
Offset	Size	Description	(Table 3008)
 00h	WORD	0004h
 02h	WORD	pointer to argument block (see #3009)
 04h	WORD	error return code (see #2996)
 06h  4 BYTEs	reserved
SeeAlso: #3005,#3011

Format of VINES argument block for closing socket:
Offset	Size	Description	(Table 3009)
 00h	WORD	socket identifier
SeeAlso: #3006,#3008,#3012
--------N-610001SF0005-----------------------
INT 61 - Banyan VINES - "Sowait" - WAIT FOR ASYNCHRONOUS EVENT COMPLETION
	AX = 0001h subfn 0005h
	DS:DX -> communications control block (see #3011)
Return: AX = status (0000h-000Ah,00A2h,00A3h) (see #3010)
Desc:	returns results for all asynchronous operations invoked from the
	  data segment used for this call
Range:	INT 60h to INT 66h
Notes:	The Banyan interrupt handler is identified by the string "BANV" in
	  the four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0002h,AX=0001h/SF=0009h

(Table 3010)
Values for VINES function status:
 0000h	successful
 0001h	service not installed
 0002h	invalid service ID
 0003h-000Ah reserved for BANV interface errors
 00A2h	no more buffer space available
 00A3h	timeout event

Format of VINES control block for subfunction 0005h:
Offset	Size	Description	(Table 3011)
 00h	WORD	0005h
 02h	WORD	pointer to argument block (see #3012)
 04h	WORD	error return code
 06h  4 BYTEs	reserved
SeeAlso: #3008,#3013

Format of VINES argument block for subfunction 0005h:
Offset	Size	Description	(Table 3012)
 00h	WORD	pointer to WORD event pointer
 02h	WORD	timeout in multiples of 200ms, FFFFh = infinite
SeeAlso: #3009,#3011
--------N-610001SF0008-----------------------
INT 61 - Banyan VINES - "Sosession" - REGISTER APPLICATION WITH COMM SERVICE
	AX = 0001h subfn 0008h
	DS:DX -> communications control block (function 0008h) (see #3013)
Return: AX = status
	    0000h  successful
	    00A2h  no more buffer space available
Range:	INT 60h to INT 66h
Note:	The Banyan interrupt handler is identified by the string "BANV" in
	  the four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0001h,AX=0001h/SF=0009h

Format of VINES control block for subfunction 0006h:
Offset	Size	Description	(Table 3013)
 00h	WORD	0008h
 02h	WORD	process type
		0001h transient process
		0002h resident process
 04h	WORD	error return code
 06h  4 BYTEs	reserved
SeeAlso: #3011,#3014
--------N-610001SF000B-----------------------
INT 61 - Banyan VINES - "Soint" - SET USER COMPLETION FUNCTION
	AX = 0001h subfn 000Bh
	DS:DX -> communications control block (function 000Bh) (see #3014)
Return: AX = status (00h-0Ah,A2h) (see #3010)
Range:	INT 60h to INT 66h
Note:	The Banyan interrupt handler is identified by the string "BANV" in
	  the four bytes immediately preceding the interrupt handler
SeeAlso: AX=0001h/SF=0005h,AX=0001h/SF=0008h

Format of VINES control block for subfunction 000Bh:
Offset	Size	Description	(Table 3014)
 00h	WORD	000Bh
 02h	WORD	pointer to argument block (see #3015)
 04h	WORD	error return code (see #2996)
 06h  2 BYTEs	reserved
 08h	WORD	user CS register
SeeAlso: #3013

Format of VINES argument block for subfunction 000Bh:
Offset	Size	Description	(Table 3015)
 00h	WORD	pointer to user interrupt function (see #3016)
 02h	WORD	pointer to user stack
 04h	WORD	initial timeout value in multiples of 200ms, FFFFh = infinite
SeeAlso: #3015

(Table 3016)
Values FAR user function is invoked with:
	SS = DS = ES = segment of control block
	STACK:	DWORD	return address
		WORD	argument pointer (sosend or sorec argument block)
		WORD	error return code
			0000h argument pointer is valid
			00A3h timeout
--------V-610001-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - CENTER ZOOM WINDOW
	AX = 0001h
	BX = X coordinate to center
	CX = Y coordinate to center
Desc:	Positions the zoom window such that the specified window-relative
	  coordinates appear as close as possible to the center of the
	  display.  Useful for scrolling and panning.
Range:	unknown
Notes:	INT 61h is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",AX=0002h"OPTIMA",AX=0005h"OPTIMA"
SeeAlso: INT 16/AH=FFh"OPTIMA"
--------I-610002-----------------------------
INT 61 - Banyan VINES - 3270 INTERFACE
	AX = 0002h
	BH = function number (see #3017)
	DS:CX -> argument block (except BH=00h,1Ah) (see #3019)
Return: AX = status (see #3018)
Notes:	Either 3270/SNA or 3270/BSC interface may use AX=0002h, depending on
	  which is loaded first.  The other interface will use AX=000Ah
	Status codes greater than 63h indicate an inconsistency in the 3270/SNA
	  or 3270/BSC resident driver, which must be reloaded by the user

(Table 3017)
Values for VINES 3270 interface function number:
 00h "pi2reset"	 reset 3270/SNA or 3270/BSC driver
 02h "pi2bsc"	 (3270/BSC only)
 03h "pi2get"	 get information stored in 3270 resident driver
 04h "pi2put"	 store information in 3270 resident driver
 05h "pi2gcur"	 get current screen position
 07h "pi2sdat"	 send data keystroke
 08h "pi2scom"	 send command keystroke
 0Ah "pi2field"	 get field info for arbitrary screen positions
 0Fh "pi2stat"	 get logical unit/device status
 12h "pi2nlus"	 determine logical unit/device assignment
 13h "pi2gate"	 specifies comm port address to gateway service
 14h "pi2attach" attach a logical unit/device
 15h "pi2sdev"	 save logical unit/device info in resident driver
		(not supported in >3.0)
 16h "pi2gdev"	 get device information (not supported in >3.0)
 17h "pi2luinfo" get info about specific logical unit/device
 18h "pi2gerr"	 get finer error detail
 19h "pi2dhold"	 (3270/SNA only)  holds a 3270 device
 1Ah "pi2shut"	 release memory-resident module
 1Ch "pi2sprof"	 save profile info in res driver (not supp in >3.0)
 1Dh "pi2gprof"	 get prevsly stored profile info (not supp in >3.0)

(Table 3018)
Values for VINES 3270 status:
 0000h	successful
 000Bh	invalid parameter or data does not fit data area
 000Ch	another code path currently active in resident driver
 000Dh	operation currently not allowed
 0032h	encountered connection disconnect error
 0033h	encountered "sosend" completion error
 0034h	encountered "sosend" communication error
 0035h	attach request refused.	extended error info via "pi2gerr":
	01h resource unavailable
	02h invalid type
	03h version mismatch
	04h invalid logical unit number
	05h error during ARL processing
	06h no access for user
 0071h	encountered "sosock" error
 0072h	encountered unrecognizable error
 0073h	encountered "sowait" error (extended info via "pi2gerr")
 0074h	encountered invalid type-of-request on "sowait"
 0075h	encountered "sorec" error (extended info via "pi2gerr")
 0076h	encountered "sorec" completion error (ext info via "pi2gerr")
 0077h	encountered connection request
 0078h	encountered unrecognizable data
 0079h	encountered unknown connection ID (ext info via "pi2gerr")
SeeAlso: #2996

Format of argument block for BH=03h,04h:
Offset	Size	Description	(Table 3019)
 00h	WORD	size of data area (max 256)
 02h  N BYTEs	data area
SeeAlso: #3020,#3021,#3022

Format of argument block for BH=05h:
Offset	Size	Description	(Table 3020)
 00h	WORD	logical unit/device number
 02h	WORD	pointer to WORD buffer for cursor index
 04h	WORD	pointer to BYTE buffer for current field attribute
SeeAlso: #3019,#3021,#3022

Format of argument block for BH=07h:
Offset	Size	Description	(Table 3021)
 00h	WORD	logical unit/device number
 02h	WORD	ASCII data byte
 04h	WORD	pointer to WORD count of characters which will need updating
SeeAlso: #3019,#3020,#3022

Format of argument block for BH=08h:
Offset	Size	Description	(Table 3022)
 00h	WORD	logical unit/device number
 02h	WORD	3270 keystroke (see #3023)
SeeAlso: #3019,#3020,#3021,#3024

(Table 3023)
Values for 3270 keystroke:
 0000h	Enter
 0001h	Clear
 0002h	PA1
 0003h	PA2
 0004h	PA3
 0005h	PF1
 ...
 001Ch	PF24
 001Dh	CSELECT (cursor select)
 001Eh	Insert
 001Fh	Delete
 0020h	EOField
 0021h	EINPUT (erase input)
 0022h	Reset
 0023h	Attention
 0024h	SysReq
 0025h	Duplicate
 0026h	Fieldmark
 0027h	Home
 0028h	NextLine
 0029h	Tab
 002Ah	BackTab
 002Bh	cursor up
 002Ch	cursor down
 002Dh	cursor right
 002Eh	cursor left
 002Fh	double cursor right
 0030h	double cursor left
 0031h	PRINT
 0032h	CANCEL
 0033h	Backspace

Format of argument block for BH=0Ah:
Offset	Size	Description	(Table 3024)
 00h	WORD	logical unit/device number
 02h	WORD	screen index
 04h	WORD	pointer to WORD buffer for field length
 06h	WORD	pointer to WORD buffer for offset in screen of field start
SeeAlso: #3022,#3025

Format of argument block for BH=0Fh:
Offset	Size	Description	(Table 3025)
 00h	WORD	logical unit/device number
 02h	WORD	clear mask (clear these bits of status after returning status)
 04h	WORD	pointer to WORD buffer for device status (see #3026)
SeeAlso: #3024,#3027

Bitfields for Banyan 3270 device status:
Bit(s)	Description	(Table 3026)
 10	status modified
 9	buffer modified
 8	set cursor
 5	sound alarm
 1-0	size of print line for printer logical units
	00  unformatted line
	01  40-character line
	10  64-character line
	11  80-character line

Format of argument block for BH=12h:
Offset	Size	Description	(Table 3027)
 00h	WORD	pointer to WORD buffer for number of logical units or devices
 02h	WORD	pointer to WORD buffer for version number
 04h	WORD	pointer to 64-byte buffer for logical unit/device list
SeeAlso: #3025,#3028

Format of argument block for BH=13h:
Offset	Size	Description	(Table 3028)
 00h 16 BYTEs	communications port address (see #2999)
SeeAlso: #3027,#3029

Format of argument block for BH=14h:
Offset	Size	Description	(Table 3029)
 00h	WORD	logical unit/device number
		0000h attach any free device of the specified type
 02h	WORD	logical unit/device type
		(3270/SNA) 01h, 02h, or 03h
		(3270/BSC) 02h display
		(3270/BSC) 03h printer
 04h	WORD	pointer to WORD buffer for attached logical unit/device number
SeeAlso: #3028,#3030

Format of argument block for BH=16h:
Offset	Size	Description	(Table 3030)
 00h	WORD	pointer to 18-byte buffer for device block (see #3035)
		first WORD must be set to desired logical unit/device number
SeeAlso: #3029,#3031

Format of argument block for BH=17h:
Offset	Size	Description	(Table 3031)
 00h	WORD	logical unit/device number
 02h	WORD	pointer to information block in caller's DS (see #3036)
SeeAlso: #3030,#3032

Format of argument block for BH=18h:
Offset	Size	Description	(Table 3032)
 00h	WORD	pointer to WORD buffer for major error code
 02h	WORD	pointer to WORD buffer for minor error code
SeeAlso: #3031,#3033

Format of argument block for BH=19h:
Offset	Size	Description	(Table 3033)
 00h	WORD	logical unit/device number
SeeAlso: #3032,#3034

Format of argument block for BH=1Ch,1Dh:
Offset	Size	Description	(Table 3034)
 00h	WORD	pointer to profile block in caller's DS (see #3039)
SeeAlso: #3019,#3033

Format of device block, argument block for BH=15h:
Offset	Size	Description	(Table 3035)
 00h	WORD	logical unit/device number
 02h	WORD	logical unit/device type
 04h	WORD	display model number
 06h	WORD	numeric checking
 08h	WORD	status line
 0Ah	BYTE	unprotected normal field attribute
 0Bh	BYTE	unprotected intensified field attribute
 0Ch	BYTE	protected normal field attribute
 0Dh	BYTE	protected intensified field attribute
 0Eh	WORD	reserved
 10h	WORD	printer port number

Format of information block:
Offset	Size	Description	(Table 3036)
 00h	WORD	device model number
 02h	DWORD	screen buffer pointer
 06h	DWORD	status line pointer (see #3037)
 0Ah	DWORD	reserved

Format of Banyan VINES 3270 status line:
Offset	Size	Description	(Table 3037)
 00h	BYTE	comm line status
		00h inactive
		01h active
 01h	BYTE	activation level
		01h physical unit activated
		02h logical unit also activated
		03h session is bound
 02h	BYTE	data traffic state
		00h inactive
		01h active
 03h	BYTE	screen ownership
		00h SLU->PLU session owns screen
		01h SLU->SSCP session owns screen
 04h	BYTE	keyboard status (see #3038)
 05h	BYTE	insert mode
		01h if in insert mode
 06h	BYTE	numeric
		01h if current screen buffer is numeric only
 07h	BYTE	printer status
		00h printer not assigned
		01h printer is inactive
		02h printer error
		03h currently printing
		04h printer is busy
		05h printer is very busy
 08h	BYTE	printer assignment
 09h	BYTE	maximum size of network name
 0Ah  N BYTEs	ASCIZ network name
	BYTE	maximum size of message window
      M BYTEs	null-terminated message window
	BYTE	code set
		00h EBCDIC
		01h ASCII
      M BYTEs	extended attributes
		01h extended attributes are in effect (stored at screen+1920)
		    each extended attribute specifies
		    bits 0,1: 00=normal, 01=blink, 10=reverse, 11=underscor
		    bits 2-4: 000=default,001=blue,010=red,011=pink,
			      100=green,101=turquoise,110=yellow,111=white
	BYTE	extended color
		01h other than base color is in effect

(Table 3038)
Values for Banyan VINES 3270 keyboard status:
 00h	UNLOCK - ready to accept data
 01h	TIME - aid was struck
 02h	SYSTEM - received response no restore
 03h	FUNCTION - unavailable keyboard function
 04h	INPUT - not currently used
 05h	ENDFIELD - field filled in insert mode
 06h	PROTECTED - attempt to enter in protected field
 07h	NUMERIC - attempt to enter in numeric field
 08h	PROGRAM - error in outbound data stream

Format of Banyan VINES 3270 profile block:
Offset	Size	Description	(Table 3039)
 00h 64 BYTEs	gateway service name
 40h 16 BYTEs	gateway comm port address
 50h	WORD	primary logical unit number
 52h	WORD	secondary logical unit type
 54h	WORD	secondary logical unit number
 56h	WORD	printer assignment
 58h 50 BYTEs	keyboard definitions filename
--------V-610002-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - END ZOOM
	AX = 0002h
Desc:	switches off zoom and returns window to its original state
Range:	unknown
Notes:	INT 61h is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",INT 16/AH=FFh"OPTIMA"
--------N-610003SF00-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INIT USER BUFFER PTR INFO
	AX = 0003h subfn 00h
	DS:BX -> argument block (see #3041)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=08h,AX=0003h/SF=0Dh

(Table 3040)
Values for VINES function status:
 0000h	successful
 000Bh	invalid session ID
 000Ch	session not active
 000Dh	invalid request type
 000Eh	invalid parameters
 000Fh	out of heap space
 0010h	timeout on send
 0011h	Banyan communications error
 0012h	session not waiting for host
 0013h	session is active
 0014h	duplicate suspend session request
 0015h	no session suspended
 0016h	ring data buffer full
 0017h	printer error encountered
 0018h	Banyan communications error
 0019h	unable to make connection
 001Ah	no ring buffer specified at startup
 001Bh	service is down
 001Ch	invalid service name
 001Dh	service is closed
 001Eh	invalid connection name
 001Fh	max session limit reached for service
 0020h	access rights list for connection/dialout does not include this user
 0021h	service not responding
 0022h	missing telephone number
SeeAlso: #2996,#3044

Format of VINES argument block:
Offset	Size	Description	(Table 3041)
 00h	BYTE	session ID (00h)
 01h	BYTE	00h (func "initialize user buffer pointer information area")
 02h	WORD	-> user buffer ptr info area in caller's current DS (see #3042)

Format of user buffer ptr info area:
Offset	Size	Description	(Table 3042)
 00h	WORD	flags
		0000h don't read interface's data buffer
		0001h read data buffer
 02h	DWORD	pointer to ring buffer
 06h	WORD	length of ring buffer
 08h	WORD	ring buffer offset to last byte read by caller
 0Ah	DWORD	pointer to WORD containing offset of last byte
		  in ring buffer filled
 0Eh	DWORD	pointer to screen buffer
 12h	DWORD	pointer to field containing cursor position
 16h	DWORD	pointer to terminal status area (see #3043)

Format of VINES terminal status area:
Offset	Size	Description	(Table 3043)
 00h	BYTE	status of session: 4Eh=oNline, 46h=oFfline, 57h=Waiting
 01h	BYTE	terminal type (00h=VT100, 01h=TTY, 02h=VT52, 03h=IBM3101)
 02h	BYTE	current keypad mode (VT100,VT52 only)
		4Eh ("N") numeric mode
		41h ("A") application mode
 03h  4 BYTEs	current state of LEDs (VT100 only)
		00h off
		01h on
 07h	WORD	line error count
 09h	WORD	primary error code (see #3044)
 0Bh	WORD	secondary error code

(Table 3044)
Values for VINES primary error code:
 0000h	no error
 0001h	unable to make connection
 0002h	communications error, restart session
 0003h	async terminal emulation service unavailable
 0004h	lost carrier
 0005h	all matching lines busy
 0006h	no lines defined for connection name
 0007h	no dial lines available on server
 0008h	no matching dial lines available
 0009h	out of heap space
 000Ah	service error encountered
 000Bh	timed out waiting to connect
 000Ch	communications error
 000Dh	communications error
 000Eh	host wants file transferred to/from PC
 000Fh	host software changed session parameter
 0010h	host software changed tap settings
 0011h	host software changed LED indicator
 0012h	host software changed display background (secondary error code 00h for
	  white on black, 01h for black on white)
 0013h	host software changed display option (secondary error code 00h for off,
	  01h for on)
 0014h	communications error
 0015h	communications error
 0016h	unable to make connection
 0017h	unable to make connection
SeeAlso: #3040
--------N-610003SF01-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SEND TO HOST
	AX = 0003h subfn 01h
	DS:BX -> argument block (see #3045)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=02h,AX=0003h/SF=14h

Format of VINES argument block for Function 0003h subfunction 01h:
Offset	Size	Description	(Table 3045)
 00h	BYTE	session ID (00h)
 01h	BYTE	01h (function "send to host")
 02h	BYTE	type
		00h ASCII byte
		01h ASCII string
		02h terminal function code
		03h up arrow
		04h down arrow
		05h left arrow
		06h right arrow
		07h break
 03h  N BYTEs	type-specific info (see #3046)

Format of type-specific info:
Offset	Size	Description	(Table 3046)
---ASCII byte---
 03h	BYTE	byte to send to host
---ASCII string---
 03h	WORD	length of string
 05h	WORD	pointer to string
---terminal function code (VT52/VT100)---
 03h	BYTE	function code
		00h keypad 0
		01h keypad 1
		...
		09h keypad 9
		0Ah keypad -
		0Bh keypad ,
		0Ch keypad .
		0Dh keypad ENTER
		0Eh PF1
		0Fh PF2
		10h PF3
		11h PF4
---terminal function code (IBM3101)---
 03h	BYTE	function code
		00h PF1
		...
		07h PF8
		08h Home
SeeAlso: #3045
--------N-610003SF02-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "CONTROL MONITOR"
	AX = 0003h subfn 02h
	DS:BX -> argument block (see #3047)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=03h,AX=0003h/SF=05h

Format of VINES argument block for Function 0003h subfunction 02h:
Offset	Size	Description	(Table 3047)
 00h	BYTE	session ID (00h)
 01h	BYTE	02h (function "control monitor")
 02h	BYTE	display flag
		00h don't display data received from host
		01h display data
--------N-610003SF03-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - "FLOW CONTROL DATA"
	AX = 0003h subfn 03h
	DS:BX -> argument block (see #3048)
Return: AX = status (see #3040)
Desc:	this function permits the caller to freeze/unfreeze the display and
	  the ring buffer
SeeAlso: AX=0003h/SF=02h,AX=0003h/SF=06h

Format of VINES argument block for Function 0003h subfunction 03h:
Offset	Size	Description	(Table 3048)
 00h	BYTE	session ID (00h)
 01h	BYTE	03h (function "flow control data")
 02h	BYTE	flow control flag
		00h allow characters to be put into display or ring buffer
		01h don't place any more characters into display or ring buffer
--------N-610003SF04-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - END ACTIVE SESSION
	AX = 0003h subfn 04h
	DS:BX -> argument block (see #3049)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=0Ah,AX=0003h/SF=0Dh,AX=0003h/SF=0Fh

Format of VINES argument block for ending active session:
Offset	Size	Description	(Table 3049)
 00h	BYTE	session ID (00h)
 01h	BYTE	04h (function "end active session")
--------N-610003SF05-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SESSION PARAMETER
	AX = 0003h subfn 05h
	DS:BX -> argument block (see #3050)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=06h,AX=0003h/SF=08h

Format of VINES argument block for setting session parameters:
Offset	Size	Description	(Table 3050)
 00h	BYTE	session ID (00h)
 01h	BYTE	05h (function "set session parameter")
 02h	BYTE	parameter number (see #3051)
 03h	BYTE	new parameter value

(Table 3051)
Values for parameter number:
 00h	line speed (00h=any, 01h=50, 02h=110, 03h=134.5, 04h=150,
		  05h=300, 06h=600, 07h=1200, 08h=2400, 09h=4800, 0Ah=9600)
 01h	parity (00h=none, 01h=odd, 02h=even)
 02h	duplex (00h=full, 01h=half)
 03h	character size (00h=7 bits, 01h=8 bits)
 04h	stop bits (00h=1, 01h=2)
 05h	XON/XOFF flow control (00h=no, 01h=yes)
 07h	intercharacter delay in tenths of a second
 08h	interline delay in tenths of a second
 09h	auto linefeed (00h=no, 01h=yes)
 0Ah	filter control characters (00h=no, 01h=yes)
 0Bh	terminal type (00h=VT100,01h=glassTTY,02h=VT52,03h=IBM3101)
 0Ch	auto wrap (00h=no, 01h=yes)
 0Dh	cursor shape (00h=underscore, 01h=block)
 0Eh	character set (00h=UK, 01h=US ASCII)
 0Fh	printer port (00h=LPT1, 01h=LPT2, 02h=LPT3)
SeeAlso: #3050
--------N-610003SF06-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET SESSION PARAMETER
	AX = 0003h subfn 06h
	DS:BX -> argument block (see #3052)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=05h,AX=0003h/SF=07h

Format of VINES argument block for getting session parameters:
Offset	Size	Description	(Table 3052)
 00h	BYTE	session ID (00h)
 01h	BYTE	06h (function "get session parameter")
 02h	BYTE	parameter number (see #3051)
 03h	BYTE	(ret) current parameter value
--------N-610003SF07-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET TAB SETTINGS
	AX = 0003h subfn 07h
	DS:BX -> argument block (see #3053)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=05h,AX=0003h/SF=08h

Format of VINES argument block for setting tab settings:
Offset	Size	Description	(Table 3053)
 00h	BYTE	session ID (00h)
 01h	BYTE	07h (function "set tab settings")
 02h	WORD	pointer to 80-byte buffer in caller's current DS
		  each byte = 00h if no tab, 01h if tab at that position
--------N-610003SF08-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET TAB SETTINGS
	AX = 0003h subfn 08h
	DS:BX -> argument block (see #3054)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=07h

Format of VINES argument block for getting tab settings:
Offset	Size	Description	(Table 3054)
 00h	BYTE	session ID (00h)
 01h	BYTE	08h (function "get tab settings")
 02h	WORD	pointer to 80-byte buffer in caller's current DS
		each byte set to 00h if no tab, 01h if tab at that position
--------N-610003SF09-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - REFRESH EMULATION SCREEN
	AX = 0003h subfn 09h
	DS:BX -> argument block (see #3055)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Bh

Format of VINES argument block for Function 0003h subfunction 09h:
Offset	Size	Description	(Table 3055)
 00h	BYTE	session ID (00h)
 01h	BYTE	09h (function "refresh emulation screen")
--------N-610003SF0A-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SUSPEND SESSION TEMPORARILY
	AX = 0003h subfn 0Ah
	DS:BX -> argument block (see #3056)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=09h,AX=0003h/SF=0Bh,AX=0003h/SF=0Dh

Format of VINES argument block:
Offset	Size	Description	(Table 3056)
 00h	BYTE	session ID (00h)
 01h	BYTE	0Ah (function "suspend session temporarily")
 02h	WORD	size of session information to be saved
 04h	WORD	pointer to buffer in caller's DS
--------N-610003SF0B-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESUME SUSPENDED SESSION
	AX = 0003h subfn 0Bh
	DS:BX -> argument block (see #3057)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=09h,AX=0003h/SF=0Ah

Format of VINES argument block:
Offset	Size	Description	(Table 3057)
 00h	BYTE	session ID (00h)
 01h	BYTE	0Bh (function "restore previously suspended session")
 02h	WORD	size of buffer into which session info is restored
 04h	WORD	pointer to buffer in caller's DS
--------N-610003SF0C-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - SET SCROLL LOCK CHECKING
	AX = 0003h subfn 0Ch
	DS:BX -> argument block (see #3058)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h

Format of VINES argument block:
Offset	Size	Description	(Table 3058)
 00h	BYTE	session ID (00h)
 01h	BYTE	0Ch (function "set state of scroll lock checking")
 02h	BYTE	check_scroll_lock flag
		00h off
		01h on (display of host data stopped while ScrollLock on)
--------N-610003SF0D-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - EXIT EMULATION
	AX = 0003h subfn 0Dh
	DS:BX -> argument block (see #3059)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Ah

Format of VINES argument block:
Offset	Size	Description	(Table 3059)
 00h	BYTE	session ID (00h)
 01h	BYTE	0Dh (function "exit emulation")
--------N-610003SF0E-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON CHAR FROM HOST
	AX = 0003h subfn 0Eh
	DS:BX -> argument block (see #3060)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=14h

Format of VINES argument block:
Offset	Size	Description	(Table 3060)
 00h	BYTE	session ID (00h)
 01h	BYTE	0Eh (function "interrupt on character from host")
 02h	DWORD	pointer to routine to be called (0000h:0000h = don't call)
 06h	DWORD	stack pointer to use when call is made
--------N-610003SF0F-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START A SESSION
	AX = 0003h subfn 0Fh
	DS:BX -> argument block (see #3061)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=04h,AX=0003h/SF=0Bh

Format of VINES argument block:
Offset	Size	Description	(Table 3061)
 00h	BYTE	session ID (00h)
 01h	BYTE	0Fh (function "start a session")
 02h	WORD	pointer to information area in caller's current DS (see #3062)

Format of VINES information area:
Offset	Size	Description	(Table 3062)
 00h	WORD	length of service name
 02h	WORD	pointer to service name in caller's DS
 04h	BYTE	type of connection (00h=connection name, 01h=dialout)
 05h	WORD	length of connection name/telephone number
 07h	WORD	pointer to connection name/telephone number
--------N-610003SF10-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP PRINTING
	AX = 0003h subfn 10h
	DS:BX -> argument block (see #3063)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=06h,AX=0003h/SF=13h

Format of VINES argument block:
Offset	Size	Description	(Table 3063)
 00h	BYTE	session ID (00h)
 01h	BYTE	10h (function "start/stop printing of data received from host")
 02h	WORD	print capture flag (00h=off, 01h=on)
--------N-610003SF11-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET FILE TRANSFER PARAMETERS
	AX = 0003h subfn 11h
	DS:BX -> argument block (see #3064)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h

Format of VINES argument block:
Offset	Size	Description	(Table 3064)
 00h	BYTE	session ID (00h)
 01h	BYTE	11h (function "get file transfer parameters")
 02h	WORD	pointer to info area in caller's current DS (see #3065)

Format of VINES info area:
Offset	Size	Description	(Table 3065)
 00h	BYTE	protocol flag (00h none, 01h Kermit)
 01h	BYTE	direction flag (00h send, 01h receive)
 02h	BYTE	length of null-terminated PC filename
 03h	DWORD	pointer to null-terminated PC filename
 07h	BYTE	length of null-terminated host filename
 08h	DWORD	pointer to null-terminated host filename
--------N-610003SF12-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - GET CONNECTION INFORMATION
	AX = 0003h subfn 12h
	DS:BX -> argument block (see #3066)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=11h,AX=0003h/SF=15h

Format of VINES argument block:
Offset	Size	Description	(Table 3066)
 00h	BYTE	session ID (00h)
 01h	BYTE	12h (function "get connection information")
 02h	WORD	offset of buffer for connection information (see #3067)

Format of VINES connection information:
Offset	Size	Description	(Table 3067)
 00h	WORD	length of service name (returned)
 02h	WORD	pointer to 64-byte buffer for service name
 04h	BYTE	type of connection
		00h connection name
		01h dialout
 05h	WORD	length of connection name/telephone number
 07h	WORD	pointer to 64-byte buffer for name/telno
 09h	BYTE	server line number being used (returned)
--------N-610003SF13-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - START/STOP TRACING TRAFFIC
	AX = 0003h subfn 13h
	DS:BX -> argument block (see #3068)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=0Eh

Format of VINES argument block:
Offset	Size	Description	(Table 3068)
 00h	BYTE	session ID (00h)
 01h	BYTE	13h (function "start/stop tracing data traffic in session")
 02h	BYTE	trace flag (00h=off, 01h=on)
--------N-610003SF14-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - INTERRUPT ON HOST MESSAGE
	AX = 0003h subfn 14h
	DS:BX -> argument block (see #3069)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=0Eh

Format of VINES argument block:
Offset	Size	Description	(Table 3069)
 00h	BYTE	session ID (00h)
 01h	BYTE	14h (function "interrupt on message from host")
 02h	DWORD	pointer to routine to be called (0000h:0000h = don't call)
 06h	DWORD	stack pointer to use when call is made
--------N-610003SF15-------------------------
INT 61 - Banyan VINES - ASYNC TERMINAL EMULATION - RESET ERROR
	AX = 0003h subfn 15h
	DS:BX -> argument block (see #3070)
Return: AX = status (see #3040)
SeeAlso: AX=0003h/SF=00h,AX=0003h/SF=12h

Format of VINES argument block:
Offset	Size	Description	(Table 3070)
 00h	BYTE	session ID (00h)
 01h	BYTE	15h (function "reset error")
--------V-610003-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - REPORT ZOOM FACTOR
	AX = 0003h
Return: AX = zoom factor
Desc:	returns the current zoom factor
Range:	unknown
Notes:	INT 61h is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",AX=0005h"OPTIMA",INT 16/AH=FFh"OPTIMA"
--------N-610004-----------------------------
INT 61 - Banyan VINES - FILE SERVICE CONTROL
	AX = 0004h
	DS:DX -> request block (see #3072)
Return: AX = status (see #3071)
Notes:	This service is handled by the redirector
	The request dispatch table contains dummy entries for requests 0Ah,
	  0Dh, 15h, 19h, and 1Ah, which always return error 0033h (invalid
	  request ID)

(Table 3071)
Values for Banyan VINES file service control status code:
 0000h	successful
 0002h	file not found
 0003h	path not found
 000Fh	invalid drive
 0015h	drive not ready
 0033h	invalid request ID
 0034h	drive not connected
 0037h	drive number out of range
 0038h	drive number not available
 003Ah	invalid operation
 0055h	drive already connected
 0057h	invalid number of entries

Format of Banyan VINES file service request block:
Offset	Size	Description	(Table 3072)
 00h	WORD	request ID (1..28)
 02h  n BYTES	additional parameters and result buffer
--------N-610004SF0001-----------------------
INT 61 - Banyan VINES - SET DRIVE CONNECTION
	AX = 0004h subfn 0001h
	DS:DX -> request block (see #3073)
Return: AX = status (0000h,0037h,0038h,0055h) (see #3071)
Desc:	Maps the specified file service to a DOS drive letter
Note:	If an empty service name is specified, an existing connection will
	  be removed
SeeAlso: AX=0004h/SF=0002h

Format of VINES Function 0004h/Subfunction 0001h request block:
Offset	Size	Description	(Table 3073)
 00h	WORD	0001h
 02h	BYTE	drive number (0=default, 1=A, ...)
 03h 16	BYTEs	reserved
 13h 64	BYTEs	null-terminated file service name
 53h  5	BYTEs	reserved
--------N-610004SF0002-----------------------
INT 61 - Banyan VINES - GET DRIVE CONNECTION
	AX = 0004h subfn 0002h
	DS:DX -> request block (see #3074)
Return: AX = status (0000h,0034h,0037h) (see #3071)
Desc:	Returns the StreetTalk name of the associated file service
SeeAlso: AX=0004h/SF=0001h,AX=0004h/SF=0003h

Format of VINES Function 0004h/Subfunction 0002h request block:
Offset	Size	Description	(Table 3074)
 00h	WORD	0002h
 02h	BYTE	drive number (0=default, 1=A, ...)
 03h 16	BYTEs	reserved
 13h 64	BYTEs	buffer for null-terminated file service name
 53h  5	BYTEs	reserved
--------N-610004SF0003-----------------------
INT 61 - Banyan VINES - GET NETWORK DRIVE MAP
	AX = 0004h subfn 0003h
	DS:DX -> request block (see #3075)
Return: AX = status
	    0000h drive map returned in request block
Desc:	Returns a bit map indicating which drive numbers are connected to a
	  file service
Note:	Only bits 0-25 are significant
SeeAlso: AX=0004h/SF=0002h

Format of VINES Function 0004h/Subfunction 0003h request block:
Offset	Size	Description	(Table 3075)
 00h	WORD	0003h
 02h	DWORD	buffer for drive map (bit0=A, bit1=B, ...)
--------N-610004SF0004-----------------------
INT 61 - Banyan VINES - SET USER NAME
	AX = 0004h subfn 0004h
	DS:DX -> request block (see #3076)
Return: AX = status (0000h) (see #3071)
Notes:	Other side effects, if any, not known
SeeAlso: AX=0004h/SF=0005h,#3102 [ID 0004h],AX=0007h/BX=0005h

Format of VINES Function 0004h/Subfunction 0004h request block:
Offset	Size	Description	(Table 3076)
 00h	WORD	0004h
 02h 64	BYTE	null-terminated user name
--------N-610004SF0005-----------------------
INT 61 - Banyan VINES - GET USER NAME
	AX = 0004h subfn 0005h
	DS:DX -> request block (see #3077)
Return: AX = status (see also #3071)
	    0000h user name returned in request block
Desc:	Returns the StreetTalk name of the currently logged in user
SeeAlso: AX=0004h/SF=0004h,#3102 [ID 0004h],AX=0007h/BX=0005h
SeeAlso: AX=0004h/SF=0004h

Format of VINES Function 0004h/Subfunction 0005h request block:
Offset	Size	Description	(Table 3077)
 00h	WORD	0005h (subfunction "Get User Name")
 02h 64	BYTE	buffer for null-terminated user name
--------N-610004SF0006-----------------------
INT 61 - Banyan VINES - TEST DRIVE CONNECTION
	AX = 0004h subfn 0006h
	DS:DX -> request block (see #3078)
Return: AX = status (see also #3071)
	    0000h connection flag returned in request block
Desc:	Returns a flag indicating if the drive is connected to a file service
SeeAlso: AX=0004h/SF=0007h

Format of VINES Function 0004h/Subfunction 0006h request block:
Offset	Size	Description	(Table 3078)
 00h	WORD	0006h (subfunction "Test Drive Connection")
 02h	BYTE	buffer for connection flag (1 = not connected, 2 = connected)
--------N-610004SF0007-----------------------
INT 61 - Banyan VINES - GET CONNECTION DATA STRUCTURES
	AX = 0004h subfn 0007h
	DS:DX -> request block (see #3079)
Return: AX = status (see also #3071)
	    0000h pointer returned in request block
	    0033h invalid request ID
Desc:	Returns pointers to various internal data structures

Format of VINES Function 0004h/Subfunction 0007h request block:
Offset	Size	Description	(Table 3079)
 00h	WORD	0007h
 02h	BYTE	request ID (0..7) (see #3080)
 03h	WORD	buffer for pointer segment
 05h	WORD	buffer for pointer offset
SeeAlso: #3081,#3082

(Table 3080)
Values for VINES pointer ID:
 00h	job file table ???
 01h	drive handle table
 02h	drive connection table
 03h	IPC port of drive Z:
 04h	end of drive connection table
 05h	???
 06h	???
 07h	redirector data segment (offset=0)
SeeAlso: #3079

Format of VINES drive handle table:
Offset	Size	Description	(Table 3081)
 00h	BYTE	handle to default drive (0 = not connected)
 01h	BYTE	handle to drive A: (0 = not connected)
	...
 1Ah	BYTE	handle to drive Z: (0 = not connected)
SeeAlso: #3082

Format of VINES drive connection table:
Offset	Size	Description	(Table 3082)
 00h	WORD	file service type (?) (0001h if drive Z:, 0000h else)
 02h 16	BYTEs	IPC port (contains the server serial number)
 12h 46	BYTEs	???
 40h 64	BYTEs	null-terminated StreetTalk name of associated file service
 80h 64	BYTEs	null-terminated root directory (/ROOT: parameter of SETDRIVE)
SeeAlso: #3081
--------N-610004SF0008-----------------------
INT 61 - Banyan VINES - GET SERVER SERIAL NUMBER
	AX = 0004h subfn 0008h
	DS:DX -> request block (see #3083)
Return: AX = status (0000h,000Fh,0015h) (see #3071)
Notes:	The server ID is extracted from the IPC port address of the associated
	  file service stored in the drive connection table
	The server serial number and the server subnet number are returned in
	  big-endian (Motorola) format (i.e. MSB first)
SeeAlso: AX=0004h/SF=0005h

Format of VINES request block for getting server serial number:
Offset	Size	Description	(Table 3083)
 00h	WORD	0008h
 02h	WORD	drive number (0=default, 1=A, ...)
 04h	DWORD	buffer for server serial number
 08h	WORD	buffer for server subnet number (always 0001h)
--------N-610004SF0009-----------------------
INT 61 - Banyan VINES - SET ??? PARAMETER
	AX = 0004h subfn 0009h
	DS:DX -> request block (see #3084)
Return: AX = status (0000h) (see #3071)
Notes:	The specified WORD parameter is copied to offset 1702h of the
	  redirector code segment (revision 5.53)
SeeAlso: AX=0004h/SF=000Bh

Format of VINES Function 0004h/Subfunction 0009h request block:
Offset	Size	Description	(Table 3084)
 00h	WORD	0009h
 02h	WORD	parameter
--------N-610004SF000B-----------------------
INT 61 - Banyan VINES - GET ??? DRIVE PARAMETER
	AX = 0004h subfn 000Bh
	DS:DX -> request block (see #3085)
Return: AX = status (0000h,0034h,0037h) (see #3071)
Notes:	This request returns a WORD value from the drive connection table
	  read from offset 0012h of the specified drive's entry (usually 0037h)
SeeAlso: AX=0004h/SF=0009h

Format of VINES Function 0004h/Subfunction 000Bh request block:
Offset	Size	Description	(Table 3085)
 00h	WORD	000Bh
 02h	BYTE	drive number (0=default, 1=A, ...)
 03h	WORD	buffer for parameter
--------N-610004SF000C-----------------------
INT 61 - Banyan VINES - LOGOUT FROM VINES
	AX = 0004h subfn 000Ch
	DS:DX -> request block (see #3086)
Return: AX = status 0000h (see #3071)
Desc:	Terminates a running VINES session and clears all session specific
	  buffers
SeeAlso: AX=0004h/SF=0008h

Format of VINES Function 0004h/Subfunction 000Ch request block:
Offset	Size	Description	(Table 3086)
 00h	WORD	000Ch
--------N-610004SF000E-----------------------
INT 61 - Banyan VINES - GET ACCESS RIGHTS LIST (ARL)
	AX = 0004h subfn 000Eh
	DS:DX -> request block (see #3087)
Return: AX = status (see also #3071)
	    0000h request has been processed
Desc:	Returns the owner, group, and extended access rights for the specified
	  file or directory
Note:	A status of 0000h does not necessarily indicate a successful request;
	  check the status word at offset 000Eh of the request block too
SeeAlso: AX=0004h/SF=000Fh

Format of VINES Function 0004h/Subfunction 000Eh request block:
Offset	Size	Description	(Table 3087)
 00h	WORD	000Eh (subfunction "Get Access Rights List")
 02h	BYTE	drive number (0=default, 1=A, ...)
 03h	BYTE	reserved
 04h	DWORD	pointer to path specification (drive letter ignored)
 08h	DWORD	pointer to ARL control block (see #3088)
 0Ch	WORD	buffer for number of ARL entries (1..5)
 0Eh	WORD	buffer for status (see #3089)

Format of ARL control block:
Offset	Size	Description	(Table 3088)
 00h 64	BYTEs	1st StreetTalk name (user, list, or service)
 40h	WORD	1st ARL
 42h 64	BYTEs	2nd StreetTalk name (user, list, or service)
 82h	WORD	2nd ARL
 84h 64	BYTEs	3rd StreetTalk name (user, list, or service)
 C4h	WORD	3rd ARL
 C6h 64	BYTEs	4th StreetTalk name (user, list, or service)
106h	WORD	4th ARL
108h 64	BYTEs	5th StreetTalk name (user, list, or service)
148h	WORD	5th ARL

(Table 3089)
Values for VINES Get/Set Access Rights List status:
 0000h	successful
 0002h	file not found
 0003h	path not found
 003Ah	invalid operation
 0057h	invalid number of entries
--------N-610004SF000F-----------------------
INT 61 - Banyan VINES - SET ACCESS RIGHTS LIST (ARL)
	AX = 0004h subfn 000Fh
	DS:DX -> request block (see #3090)
Return: AX = status (see also #3071)
	    0000h request has been processed
Desc:	Sets the owner, group, and extended access rights for the specified
	  file or directory
Note:	A status of 0000h does not necessarily indicate a successful request;
	  check the status word at offset 000Eh of the request block too
	If the number of ARL entries is less than 1 or greater than 5, error
	  0057h (invalid number of entries) is returned
SeeAlso: AX=0004h/SF=000Eh

Format of VINES Function 0004h/Subfunction 000Fh request block:
Offset	Size	Description	(Table 3090)
 00h	WORD	000Fh
 02h	BYTE	drive number (0=default, 1=A, ...)
 03h	BYTE	reserved
 04h	DWORD	pointer to path specification (drive letter ignored)
 08h	DWORD	pointer to ARL control block (see #3088)
 0Ch	WORD	number of ARL entries (1..5)
 0Eh	WORD	buffer for status (see #3089)
--------N-610004SF0010-----------------------
INT 61 - Banyan VINES - FILE SERVICE CONTROL - ???
	AX = 0004h subfn 0010h
	DS:DX -> request block (see #3091)
Return: AX = status (see also #3071)
	    0000h request has been processed
SeeAlso: AX=0004h/SF=000Fh

Format of VINES Function 0004h/Subfunction 0010h request block:
Offset	Size	Description	(Table 3091)
 00h	WORD	0010h
 02h	BYTE	drive number (0=default, 1=A, ...)
 03h	BYTE	reserved
 04h 64	BYTEs	???
 44h 16	BYTEs	IPC port (see #2999 at AX=0001h"Sosock")
--------N-610004SF0013-----------------------
INT 61 - Banyan VINES - GET VALUE OF GLOBAL VARIABLE
	AX = 0004h subfn 0013h
	DS:DX -> request block (see #3092)
Return: AX = status (see also #3071)
	    0000h successful
	    0033h invalid request ID (returned if variable index out of range)
Desc:	Returns the value of the specified global variable
Note:	The data will be truncated if the specified buffer is not large enough.
	  Check the length word in the request block to find out how many
	  bytes should have been copied.
SeeAlso: AX=0004h/SF=0014h,AX=0006h

Format of request block:
Offset	Size	Description	(Table 3092)
 00h	WORD	0013h
 02h	WORD	variable index (0000h-001Fh) (see #3093)
 04h	WORD	buffer length (on exit set to # of bytes actually needed)
 06h	DWORD	far pointer to result buffer
SeeAlso: #3094

(Table 3093)
Values for variable indices:
Index	Length	Description
 0000h	   1	???
 0001h	  16	StreetTalk port
 0002h	   4	StreetTalk session handle
 0003h	   6	colors
 0004h	  64	StreetTalk name of currently logged in user
 0005h	   0	old clear text password (not applicable)
 0006h	   0	default group (not applicable)
 0007h	   1	number of messages in message queue
 0008h	   1	message flag
 0009h	  16	TalkPort
 000Ah	   2	TalkPort socket
 000Bh	  64	StreetTalk name of mail service
 000Ch	   2	message timeout
 000Dh	   2	next message place
 000Eh	 246	message queue (3 times 80 characters + 2 flag bytes)
 000Fh	  14	system nonce
 0010h	   2	failed login count
 0011h	   1	new mail message received
 0012h	   8	mail service capabilities
 0013h	   3	printer port diverted
 0014h	  32	international location
 0015h	  16	IPC port of drive Z:
 0016h	1024	pointer to current directory table
 0017h	   2	maximum number of file volume mappings
 0018h	  24	routine to call back for messages (6 far pointers)
 0019h	   4	current virtual machine
 001Ah	  20	DOS redirector message bell tones
 001Bh	   2	various flags used for internal communication
 001Ch	   0	OS/2 client configuration (not applicable)
 001Dh	   8	redirector/IFS file version
 001Eh	   0	reserved (not applicable)
 001Fh	   4	address of VVINESD.386 dispatch
--------N-610004SF0014-----------------------
INT 61 - Banyan VINES - SET VALUE OF GLOBAL VARIABLE
	AX = 0004h subfn 0014h
	DS:DX -> request block (see #3094)
Return: AX = status
	    0000h successful
	    0033h invalid request ID (returned if variable index out of range)
Desc:	Assigns a new value to the specified global variable
Note:	If the specified number of bytes to copy exceeds the size of the
	  destination variable, nothing will be copied.
SeeAlso: AX=0004h/SF=0013h,AX=0006h

Format of request block:
Offset	Size	Description	(Table 3094)
 00h	WORD	0014h
 02h	WORD	variable index (0000h-001Fh) (see #3093)
 04h	WORD	number of bytes to copy
 06h	DWORD	far pointer to new value
SeeAlso: #3092
--------N-610004SF0016-----------------------
INT 61 - Banyan VINES - GET NUMBER OF OPEN FILES ON REMOTE DRIVE
	AX = 0004h subfn 0016h
	DS:DX -> request block (see #3095)
Return: AX = status
	    0000h open file count returned in request block
Desc:	Counts the number of open files on the specified remote drive.
Note:	No error is returned if the specified drive number is invalid or points
	  to a local drive. Use AX=0004h/SF=0006h to test if a given drive
	  number is assigned to a remote drive.
SeeAlso: AX=0004h/SF=0006h

Format of request block:
Offset	Size	Description	(Table 3095)
 00h	WORD	0016h
 02h	BYTE	drive number (0=default, 1=A:, ...)
 03h	BYTE	reserved
 04h	WORD	buffer for open file count
SeeAlso: #3097
--------N-610004SF0018-----------------------
INT 61 - Banyan VINES - SET UNIDENTIFIED INTERNAL FLAG
	AX = 0004h subfn 0018h
	DS:DX -> request block (see #3096)
Return: AX = status
	    0000h success
Desc:	Sets an unidentified BYTE variable in the redirector data segment to 1.
Note:	In the VINES 5.53 "REDIR4" redirector, this variable is located at
	  DS:0B53.

Format of request block:
Offset	Size	Description	(Table 3096)
 00h	WORD	0018h
SeeAlso: #3097
--------N-610004SF001B-----------------------
INT 61 - Banyan VINES - UNIDENTIFIED DRIVE SPECIFIC FUNCTION
	AX = 0004h subfn 001Bh
	DS:DX -> request block (see #3097)
Return: AX = status
	    0000h success
	    0034h drive not connected
	    0037h drive number out of range
Desc:	The purpose of this function is not known.

Format of request block:
Offset	Size	Description	(Table 3097)
 00h	WORD	001Bh
 02h	BYTE	drive number (0=default, 1=A:, ...)
 03h	BYTE	???
 04h	WORD	???
 06h	DWORD	far pointer to data area
 0Ah	WORD	???
 0Ch	DWORD	far pointer to data area
 10h	WORD	buffer for result
SeeAlso: #3095,#3097
--------N-610004SF001C-----------------------
INT 61 - Banyan VINES - UNIDENTIFIED FUNCTION
	AX = 0004h subfn 001Ch
	DS:DX -> request block (see #3098)
Return: AX = status
	    0000h success
	    0057h invalid number of entries
Desc:	The purpose of this function is not known.

Format of request block:
Offset	Size	Description	(Table 3098)
 00h	WORD	001Ch
 02h	WORD	???
 04h	WORD	???
 06h	WORD	???
 08h	WORD	???
 0Ah	DWORD	far pointer to data area (14 bytes)
--------V-610004-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - ENTER SPECIFY MODE
	AX = 0004h
Range:	unknown
Notes:	Specify Mode is enabled by hot key (seeAlso below), and allows
	  panning and zooming via the numeric keypad.
	INT 61 is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",AX=0007h"OPTIMA",INT 16/AH=FFh"OPTIMA"
--------N-610005-----------------------------
INT 61 - Banyan VINES - PRINT SERVICE CONTROL
	AX = 0005h
	DS:DX -> request block (see #3099)
Return: AX = status
	    0000h successful
	    0001h network software not installed or incompatible
Notes:	This service is handled by the redirector
	The size of the request/result block depends on the selected function
	  and the value at offset 04h.
SeeAlso: INT 2F/AX=D702h

Format of VINES request/result block for printer control:
Offset	Size	Description	(Table 3099)
 00h	WORD	function
		0201h "endspool" all data for a print job has been sent
		      (no bytes returned)
		0202h "deassign" the virtual printer port
		    Before the printer port is deassigned all data sent
		      to it is endspooled.
		      (no bytes returned)
		0205h "get_active" get currently active printer port
		      (1 byte required for result)
		    Returns:  - the currently active printer port (1-3) (0 if
				  there is none)
		0207h ??? purpose unknown; called periodically every second
		020Ch "get_bannertitle" gets the title which is printed on the
		      banner page of a print job sent to the virtual port
		      (16 bytes required for result)
		    Returns:  - the null-terminated banner title
		020Eh "get_servicename" gets the name of the print service
		      assigned to the virtual port
		      (64 bytes required for result)
		    Returns:  - the null-terminated print service name assigned
				  to the virtual port
		0210h "set_bannertitle" sets the title which is printed on the
		      banner page of a print job sent to the virtual port
		      (16 bytes required for input)
		    Input:  - the null-terminated banner title (max 16 chars)
		0212h "set_servicename" sets the name of the print service
		      assigned to the virtual port
		      (64 bytes required for input)
		    Input:  - the null-terminated print service name
				  (max 64 chars)
		0216h "get_job_paper_format" gets the paper format for
		      subsequent print jobs
		      (16 bytes required for result)
		    Returns:  - the null-terminated paper format
		0217h "set_job_paper_format" sets the paper format for
		      subsequent print jobs
		      (16 bytes required for input)
		    Input:  - the null-terminated paper format (max 16 chars)
 02h	WORD	number of active virtual port (1-3) (0 for function 0205h)
 04h	WORD	Offset into the request block from which additional input
		  is to be read and/or at which the result is to be copied
		  (if there is any). Therefore the smallest block size for a
		  function which returns a result is
			this offset + the maximum number of returned bytes - 1
 06h	WORD	0000h
--------V-610005-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync - QUERY ZOOM WINDOW
	AX = 0005h
	BX:CX -> buffer for window parameters (see #3100)
Range:	unknown
Notes:	INT 61 is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",AX=0003h"OPTIMA",AX=0006h"OPTIMA"
SeeAlso: INT 16/AH=FFh"OPTIMA"

Format of Optima 1024 window parameters:
Offset	Size	Description	(Table 3100)
 00h	WORD	X start of zoom window
 02h	WORD	Y start of zoom window
 04h	WORD	X end of zoom window
 06h	WORD	Y end of zoom window
 08h	WORD	current zoom factor
 0Ah	WORD	zoom offset start X
 0Ch	WORD	zoom offset start Y
--------V-610006-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM WINDOW
	AX = 0006h
	BX:CX -> zoom window description (see #3101)
Range:	unknown
Notes:	width of zoom window must be a multiple of the pixel replication (zoom)
	  factor
	INT 61 is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0005h"OPTIMA",AX=0008h"OPTIMA"
SeeAlso: INT 16/AH=FFh"OPTIMA"

Format of Optima 1024 zoom window description:
Offset	Size	Description	(Table 3101)
 00h	WORD	X start of zoom window
 02h	WORD	Y start of zoom window
 04h	WORD	X end of zoom window
 06h	WORD	Y end of zoom window
--------N-610006-----------------------------
INT 61 - Banyan VINES - GET ADDRESS OF GLOBAL VARIABLE
	AX = 0006h
	BX = bits 14..0: request ID (see #3102)
	     bit  15:	 result destination flag (0 for ES:BX, 1 for AX:BX)
Return: AX = status
	    0000h successful
	    000Bh invalid request
	ES:BX -> internal variable (bit 15 of BX was not set)
	AX:BX -> internal variable (bit 15 of BX was set)
Note:	This service is handled by the redirector
SeeAlso: AX=0004h/SF=0013h,AX=0004h/SF=0014h

(Table 3102)
Values for request IDs:
Request	Length	Description
 0000h	   1	???
 0001h	  16	StreetTalk port
 0002h	   4	StreetTalk session handle
 0003h	   6	colors
 0004h	  64	StreetTalk name of currently logged in user
 0005h	   0	old clear text password (always returns error code 000Bh)
 0006h	   0	default group (not applicable)
 0007h	   1	message queue count
 0008h	   1	message flag
 0009h	  16	TalkPort
 000Ah	   2	TalkPort socket
 000Bh	  64	StreetTalk name of mail service
 000Ch	   2	message timeout
 000Dh	   2	next message place
 000Eh	 246	message queue
 000Fh	  14	system nonce
 0010h	   2	failed login count
 0011h	   1	new mail message received
 0012h	   8	mail capabilities
 0013h	   3	printer port diverted
 0014h	  32	international location
 0015h	  16	IPC port of drive Z:
 0016h	1024	pointer to current directory table
 0017h	   2	maximum number of file volume mappings
 0018h	  24	routine to call back for messages
 0019h	   4	current virtual machine
 001Ah	  20	DOS redirector message bell tones
 001Bh	   2	various flags used for internal communication
 001Ch	   0	OS/2 client configuration (always returns error code 000Bh)
 001Dh	   8	redirector/IFS file version
 001Eh	   0	reserved (always returns error code 000Bh)
 001Fh	   4	address of VVINESD.386 dispatch
--------V-610007-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY APPLICATION KEY
	AX = 0007h
Return: AX = current state (0000h/0001h)
Desc:	returns the current toggle state of the application (END) key in
	  specify mode. E.g. in the OPTIMA AutoCAD driver, 0 means AutoCAD
	  calls INT 61/AX=0001h every time the crosshair cursor moves.
Notes:	In specify mode, the END key has been reserved for applications.
	INT 61 is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",AX=0001h"OPTIMA",AX=0004h"OPTIMA"
SeeAlso: INT 16/AH=FFh"OPTIMA",INT 7A/AX=0001h"AutoCAD"
--------N-610007BX0000-----------------------
INT 61 - Banyan VINES - RECONNECT TO STREETTALK
	AX = 0007h
	BX = 0000h
Return: AX = status (see #3103)
SeeAlso: AX=0007h/BX=0002h

(Table 3103)
Values for VINES function status:
 0000h	successful
 0001h	requested handler not installed or incompatible
 000Bh	service busy
 000Ch	invalid request ID
 03E9h	incorrect name syntax
 03EAh	organization name too long
 03EBh	group name too long
 03ECh	item name too long
 03EDh	StreetTalk name too long
 03F3h	organization not found
 03F4h	group not found
 03F5h	StreetTalk name not found
 03F8h	not a StreetTalk name
 0409h	modify access denied
 040Dh	appropriate StreetTalk name unavailable
 0411h	all matching names have been returned
 0412h	some groups unavailable, all available matches returned
--------N-610007BX0001-----------------------
INT 61 - Banyan VINES - GET MM PORT FOR A SERVICE
	AX = 0007h
	BX = 0001h
	DS:DX -> StreetTalk service name (64 bytes)
	DS:DI -> 16-byte buffer for IPC port (see #2999 at AX=0001h"Sosock")
Return: AX = status (see #3103)
Notes:	This function calls AX=0007/BX=0002h with the port count set to 1 and
	  the port type set to 00h
SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=000Ah
--------N-610007BX0002-----------------------
INT 61 - Banyan VINES - GET PORTS FOR A SERVICE
	AX = 0007h
	BX = 0002h
	DS:DX -> StreetTalk service name
	DS:DI -> port record block (see #3104)
Return: AX = status (see #3103)
Note:	if the requested number of ports is greater than five, it will be reset
	  to five
SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0003h,AX=0007h/BX=0004h
SeeAlso: AX=0007h/BX=000Ah

Format of VINES port record block:
Offset	Size	Description	(Table 3104)
 00h	WORD	(call) number of 17-byte elements (01h-05h) to be filled
 02h	BYTE	(call) port type for first port
 03h 16 BYTEs	(ret) port (see #2999)
 13h	BYTE	(call) port type for second port
 14h 16 BYTEs	(ret) port (see #2999)
 24h	BYTE	(call) port type for third port
 25h 16 BYTEs	(ret) port (see #2999)
 35h	BYTE	(call) port type for fourth port
 36h 16 BYTEs	(ret) port (see #2999)
 46h	BYTE	(call) port type for fifth port
 47h 16 BYTEs	(ret) port (see #2999)
 57h	BYTE	reserved
SeeAlso: #3106
--------N-610007BX0003-----------------------
INT 61 - Banyan VINES - FIND A SERVICE
	AX = 0007h
	BX = 0003h
	DS:DX -> port control block (see #3105)
Return: AX = status (see AX=0007h/BX=0000h)
SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0004h,AX=0007h/BX=0005h

Format of port control block:
Offset	Size	Description	(Table 3105)
 00h	WORD	???
 02h	WORD	???
 04h 16	BYTEs	IPC port (see #2999 at AX=0001h"Sosock")
 14h  5	WORDs	???
SeeAlso: #3111
--------N-610007BX0004-----------------------
INT 61 - Banyan VINES - SET PORTS FOR A SERVICE
	AX = 0007h
	BX = 0004h
	DS:DX -> StreetTalk name of service (max 64 bytes)
	DS:DI -> port record block (see #3106)
Return: AX = status (see #3103)
SeeAlso: AX=0007h/BX=0002h,AX=0007h/BX=0003h,AX=0007h/BX=000Ah

Format of VINES port record block:
Offset	Size	Description	(Table 3106)
 00h	WORD	number of 17-byte elements
 02h	BYTE	port type for first port
 03h 16 BYTEs	first IPC port (see #2999)
 13h	BYTE	port type for second port
 14h 16 BYTEs	second IPC port (see #2999)
 24h	BYTE	port type for third port
 25h 16 BYTEs	third IPC port (see #2999)
 35h	BYTE	port type for fourth port
 36h 16 BYTEs	fourth IPC port (see #2999)
 46h	BYTE	port type for fifth port
 47h 16 BYTEs	fifth IPC port (see #2999)
 57h	BYTE	reserved
SeeAlso: #3104
--------N-610007BX0005-----------------------
INT 61 - Banyan VINES - GET USER NAME
	AX = 0007h
	BX = 0005h
	DS:DX -> 64-byte buffer for user's StreetTalk name
Return: AX = status (see also #3103)
	    0000h successful
	    0001h network software not installed or incompatible
Note:	if no user logged in, first byte of returned name will be 00h
SeeAlso: AX=0007h/BX=0007h
--------N-610007BX0006-----------------------
INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING
	AX = 0007h
	BX = 0006h
	SI = error code (>100)
	DS:DX -> 80-byte buffer for error text
Return: AX = status (see also #3103)
	    0000h successful
	    0001h network software not installed or incompatible
--------N-610007BX0007-----------------------
INT 61 - Banyan VINES - VERIFY EXISTENCE OF NAME AND RETURN CANONICAL FORM
	AX = 0007h
	BX = 0007h
	DS:DX -> NiceName block (see #3107)
Return: AX = status (see #3103)
SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0008h

Format of VINES NiceName block:
Offset	Size	Description	(Table 3107)
 00h	WORD	type of name
		0064h (100) organization
		00C8h (200) group
		012Ch (300) item
 02h	WORD	pointer to ASCIZ input name
 04h	WORD	pointer to 64-byte buffer for output name
SeeAlso: #3108
--------N-610007BX0008-----------------------
INT 61 - Banyan VINES - ENUMERATE StreetTalk NAMES
	AX = 0007h
	BX = 0008h
	DS:DX -> enumerate block (see #3108)
Return: AX = status (see also #3103)
	    0000h successful
	    0411h all matching names have been returned
	    0412h some groups unavailable, all available matches returned
Note:	each program using this call should continue until a nonzero status
	  is returned; otherwise, some resources will not be freed for several
	  hours
SeeAlso: AX=0007h/BX=0005h,AX=0007h/BX=0007h,AX=0007h/BX=0009h

Format of VINES enumerate block:
Offset	Size	Description	(Table 3108)
 00h	WORD	return code
 02h	WORD	pointer to pattern string
 04h	WORD	enumerate type
		0064h (100) organization
		00C8h (200) group
		012Ch (300) item
 06h	WORD	enumerate class
		0000h unspecified (return all matching items)
		0001h user names
		0002h service names
		0003h list names
		0004h nicknames
 08h	WORD	pointer to category criteria block (see #3109) or 0
 0Ah	WORD	pointer to array of 64-byte returned names
 0Ch	WORD	number of names returned
 0Eh  6 BYTEs	reserved for subsequent enumerated calls (set to zeros on first
		  call)
SeeAlso: #3107

Format of category criteria block:
Offset	Size	Description	(Table 3109)
 00h	WORD	exclude flag
		0000h return only items with the specified categories
		0001h return all items except those with the given categories
 02h	WORD	number of categories (max 5, 0000h = match all categories)
 04h	WORD	category 1 value (see #3110)
 06h	WORD	category 2 value
 08h	WORD	category 3 value
 0Ah	WORD	category 4 value
 0Ch	WORD	category 5 value
SeeAlso: #3108

(Table 3110)
Values for common VINES service categories:
 0001h	server service
 0002h	file service
 0003h	print service
 0004h	mail service
 0005h	StreetTalk
 0006h	time service
 0007h	FTP service
 0008h	semaphore service
 0009h	3270/SNA service
 000Ah	terminal emulation service
 000Bh	asynchronous terminal service
 000Ch	NETBIOS service
 000Dh	PC-based service
 000Eh	BSC service
 000Fh	APPC service
 0010h	NM service
 0011h	VS service
 0012h	POP service
 0013h	AFP service
 0014h	VCS service
 0015h	EMS service
 0016h	LN service
 0017h	BS service
 0023h	RIPL service
 0064h	ADM service
SeeAlso: #3109
--------N-610007BX0009-----------------------
INT 61 - Banyan VINES - TRANSLATE ERROR INTO ASCII STRING (SELECTED PORT)
	AX = 0007h
	BX = 0009h
	SI = error code
	DS:DX -> 80-byte buffer for error text
	DS:DI -> IPC port (16 bytes; see AX=0001h#"Sosock" for port format)
Return: AX = status (see AX=0007h/BX=0000h)
Note:	Same as AX=0007h/BX=0006h, except IPC port is specified explicitly
SeeAlso: AX=0007h/BX=0006h
--------N-610007BX000A-----------------------
INT 61 - Banyan VINES - internal, OS/2 only - GET MANY PORTS FOR SERVICE
	AX = 0007h
	BX = 000Ah
	DS:DX -> port control block (see #3111)
Return: AX = status (see AX=0007h/BX=0000h)
Note:	This function cannot be called from applications, as the DS register
	  is checked against the redirector data segment address (status code
	  0001h will be returned if DS doesn't match)
SeeAlso: AX=0007h/BX=0001h,AX=0007h/BX=0002h,AX=0007h/BX=0004h

Format of port control block:
Offset	Size	Description	(Table 3111)
 00h	WORD	???
 02h	WORD	???
 04h 16	BYTEs	IPC port (see #2999 at AX=0001h"Sosock")
 14h 14 WORDs	???
SeeAlso: #3105
--------V-610008-----------------------------
INT 61 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - SET ZOOM OFFSET
	AX = 0008h
	BX = X start of zoom offset
	CX = Y start of zoom offset
Desc:	specifies the first byte of video memory to appear in the zoom window
Range:	unknown
Notes:	INT 61 is the default interrupt; the actual interrupt number can be
	  obtained by calling INT 16/AH=FFh
	not all vendors include the Tseng TSR which supports these functions
SeeAlso: AX=0000h"OPTIMA",AX=0006h"OPTIMA",INT 16/AH=FFh"OPTIMA"
--------N-610008BX0000-----------------------
INT 61 - Banyan VINES - TALKPORT SERVICE - GET HANDLER ADDRESS
	AX = 0008h
	BX = 0000h
Return: AX = status
	    0000h successful
	ES:DX = far pointer to handler
Desc:	The TalkPort is a facility to display event messages (e.g. mail
	  received, printing on a local printer, ...) on the screen
Note:	This service is handled by the redirector
SeeAlso: AX=0008h/BX=0001h,AX=0008h/BX=0002h
--------N-610008BX0001-----------------------
INT 61 - Banyan VINES - TALKPORT SERVICE - SET HANDLER ADDRESS
	AX = 0008h
	BX = 0001h
	ES:DX -> new handler
Return: AX = status
	    0000h successful
SeeAlso: AX=0008h/BX=0000h
--------N-610008BX0002-----------------------
INT 61 - Banyan VINES - TALKPORT SERVICE - POST MESSAGE ON LOCAL DISPLAY
	AX = 0008h
	BX = 0002h
	CX = message display flags (see #3112)
	DS:DX -> ASCIZ string to display (only first 80 chars used)
Return: AX = status
	    0000h successful
	    000Bh message display function currently busy
	    000Ch message queue full
Notes:	queues up to three messages to be displayed on the bottom line
	This service is handled by the redirector
	In a DOS session, TalkPort messages are displayed on display line 25;
	  in a Windows session, TalkPort messages are displayed in dialog boxes
SeeAlso: AX=0008h/BX=0000h,AX=0008h/BX=0003h

Bitfields for VINES message display flags:
Bit(s)	Description	(Table 3112)
 0	message will remain on screen until user presses ^X
 1	ring bell after displaying message
 2	blink
--------N-610008BX0003-----------------------
INT 61 - Banyan VINES - TALKPORT SERVICE - INTERCEPT VINES 25th-LINE MESSAGES
	AX = 0008h
	BX = 0003h
	DS:DX -> request block (see #3113)
Return: AX = status
	    0000h successful
	    0001h network software not installed or incompatible
Notes:	message handler should not call BIOS or DOS functions, and should
	  either call next handler or simply return
	to stop intercepting messages, set prev and next request blocks to
	  point at each other
SeeAlso: AX=0008h/BX=0002h

Format of VINES request block for 25-th line messages:
Offset	Size	Description	(Table 3113)
 00h	DWORD	pointer to user-written message handler
 04h	DWORD	pointer to next request block (filled in by VINES)
 08h	DWORD	pointer to previous request block (filled in by VINES)
 0Ch	DWORD	pointer to message storage area (filled by VINES) (see #3114)

Format of message storage area:
Offset	Size	Description	(Table 3114)
 00h 16 BYTEs	IPC port of message sender (see #2999)
 10h	BYTE	message flags
 11h	WORD	reserved
 13h	BYTE	length of message
 14h 80 BYTEs	message text
SeeAlso: #3113
--------N-610009-----------------------------
INT 61 - Banyan VINES - NETBIOS CLIENT SERVICE
	AX = 0009h
	other parameters, if any, unknown
--------N-61000A-----------------------------
INT 61 - Banyan VINES - SECONDARY 3270 INTERFACE
	AX = 000Ah
Note:	either 3270/SNA or 3270/BSC interface will use AX=000Ah, depending on
	  which is loaded second.  The first interface loaded will use AX=0002h
SeeAlso: INT 61/AX=0002h
--------N-61000B-----------------------------
INT 61 - Banyan VINES - SEMAPHORE SERVICE
	AX = 000Bh
	other parameters, if any, unknown
--------N-61000C-----------------------------
INT 61 - Banyan VINES - 3270 KEYBOARD HANDLER
	AX = 000Ch
	other parameters, if any, unknown
--------N-61000D-----------------------------
INT 61 - Banyan VINES - T3270 SERVICE FUNCTION
	AX = 000Dh
	other parameters, if any, unknown
--------N-61000E-----------------------------
INT 61 - Banyan VINES - ENHANCED 3270 SERVICE
	AX = 000Eh
	other parameters, if any, unknown
--------N-61000F-----------------------------
INT 61 - Banyan VINES - VINES SOCKET API (FAR DATA)
	AX = 000Fh
	CX:BX -> request block (see #3115)
	DX = application's data segment (should be = CX)
	ES = DS
Return: AX = status
	    0000h successful
	    0099h invalid operation
	    00A5h resource not available
Desc:	StreetTalk access with session handles
Notes:	This service is handled by the adapter driver
	The request dispatch table contains dummy entries for subfunctions
	  06h, 0Dh, 0Eh, 0Fh, 10h, and 11h, which always return error 0099h
	  (invalid operation) in the request block's result buffer
	This interface does the same as the corresponding AX=0001h interface,
	  but with a slightly modified request block structure (i.e it allows
	  FAR parameter block pointers) and without expecting DS=0001h
	Some adapter drivers (e.g. the NDIS2 token ring driver NDTOKBAN for
	  VINES 5.53) ignore the value in CX and use the value from DX instead
SeeAlso: AX=0001h/SF=0001h,AX=000Fh/SF=0001h

Format of VINES Socket request block:
Offset	Size	Description	(Table 3115)
 00h	WORD	subfunction number (01h-16h)
 02h	WORD	magic number (FEFEh)
 04h	WORD	buffer for return code (set to 0 before calling)
 06h	WORD	reserved (will be set to client DS)
 08h	WORD	reserved (obviously not used; set to 0 before calling)
 0Ah	DWORD	far pointer to parameter block
 0Eh	WORD	StreetTalk handle
SeeAlso: #2995 at INT 61/AX=0001h
--------N-61000FSF0001-----------------------
INT 61 - Banyan VINES - OPEN SOCKET
	AX = 000Fh subfn 0001h
	CX:BX -> request block (see #3116)
	DX = application's data segment (should be = CX)
	ES = DS
Return: AX = status
	    0000h successful
	    00A5h resource not available
Desc:	Opens a socket and returns a socket handle

Format of request block:
Offset	Size	Description	(Table 3116)
 00h	WORD	0001h
 02h	WORD	magic number (FEFEh)
 04h	WORD	buffer for return code (set to 0 before calling)
 06h	WORD	reserved (will be set to client DS)
 08h	WORD	reserved (obviously not used; set to 0 before calling)
 0Ah	DWORD	far pointer to parameter block (see #3117)
 0Eh	WORD	process handle (see AX=000Fh/SF=0008h)

Format of parameter block:
Offset	Size	Description	(Table 3117)
 00h	WORD	reserved
 02h	WORD	address family (0003h = VINES)
 04h	WORD	socket type (0001h = IPC, 0002h = SPP)
 06h	WORD	protocol number (FFFFh = default protocol)
 08h	WORD	reserved
 0Ah	WORD	local port number (0 = transient, 1..1FFh = well-known port)
 0Ch	DWORD	far pointer to socket handle buffer (2 bytes)
 10h	DWORD	far pointer to IPC port buffer (16 bytes)
SeeAlso: #3116
--------N-61000FSF0002-----------------------
INT 61 - Banyan VINES - SEND MESSAGE ON A SOCKET
	AX = 000Fh subfn 0002h
	CX:BX -> request block (see #3118)
	DX = application's data segment (should be = CX)
	ES = DS
Return: AX = status
	    0000h successful
	    00A5h resource not available
Desc:	send data to a socket identified by its socket handle

Format of request block:
Offset	Size	Description	(Table 3118)
 00h	WORD	0002h
 02h	WORD	magic number (FEFEh)
 04h	WORD	buffer for return code (set to 0 before calling)
 06h	WORD	reserved (will be set to client DS)
 08h	WORD	reserved (obviously not used; set to 0 before calling)
 0Ah	DWORD	far pointer to parameter block (see #3119)
 0Eh	WORD	process handle (see AX=000Fh/SF=0008h)

Format of parameter block:
Offset	Size	Description	(Table 3119)
 00h	WORD	buffer for estimated communication cost in 220 msec ticks
 02h	WORD	buffer for return code (set to 0 before calling)
 04h	WORD	socket handle
 06h	DWORD	far pointer to IPC/SPP message buffer
 0Ah	WORD	length of IPC/SPP message buffer
 0Ch	WORD	option flags
		bit 0: asynchronous communication
		bit 1: reliable message
		bit 3: end of message
		bit 4: vectored I/O
 0Eh 16	BYTEs	socket address (IPC port of source)
 1Eh	WORD	not used (set to 0 before calling)
 20h	WORD	SPP connection id (0 for IPC messages)
 22h	WORD	request type (1 = data, 2 = connect SPP, 3 = disconnect SPP)
SeeAlso: #3118
--------N-61000FSF0004-----------------------
INT 61 - Banyan VINES - CLOSE SOCKET
	AX = 000Fh subfn 0004h
	CX:BX -> request block (see #3120)
	DX = application's data segment (should be = CX)
	ES = DS
Return: AX = status
	    0000h successful
	    00A5h resource not available
Desc:	Closes a socket identified by its socket handle

Format of request block:
Offset	Size	Description	(Table 3120)
 00h	WORD	0004h
 02h	WORD	magic number (FEFEh)
 04h	WORD	buffer for return code (set to 0 before calling)
 06h	WORD	reserved (will be set to client DS)
 08h	WORD	reserved (obviously not used; set to 0 before calling)
 0Ah	DWORD	far pointer to socket handle (2 bytes)
 0Eh	WORD	process handle (see AX=000Fh/SF=0008h)
--------N-61000FSF0008-----------------------
INT 61 - Banyan VINES - GET PROCESS HANDLE
	AX = 000Fh subfn 0008h
	CX:BX -> request block (see #3121)
	DX = application's data segment (should be = CX)
	ES = DS
Return: AX = status
	    0000h successful
	    00A5h resource not available
Desc:	Returns a process handle to be used in other request blocks
Notes:	This function is a prerequisite to all AX=000Fh subfunctions which
	  expect a process handle in the request block
	Although subsequent calls from the same application return different
	  process handles, there seem to be no restrictions on how many times
	  an application may call this function (in fact, the code in the VINES
	  toolkit library always calls it before issueing other AX=000Fh calls)

Format of request block:
Offset	Size	Description	(Table 3121)
 00h	WORD	0008h
 02h	WORD	magic number (FEFEh)
 04h	WORD	buffer for return code (set to 0 before calling)
 06h	WORD	reserved
 08h	WORD	reserved (obviously not used; set to 0 before calling)
 0Ah	DWORD	process type (1 = transient, 2 = resident; destroyed on exit)
 0Eh	WORD	buffer for process handle
--------N-610010-----------------------------
INT 61 - Banyan VINES - INTERFACE TO NBNS
	AX = 0010h
	other parameters, if any, unknown
--------N-6101-------------------------------
INT 61 - Banyan VINES - CHECK SERVICE
	AH = 01h
	AL = service ID (see #3122)
Return: AX = status
	    0000h installed
	    0001h not installed
	    0002h invalid ID
	    0003h invalid function
Note:	Only the offset part of the service pointer is checked for a nonzero
	  value
SeeAlso: AH=00h,AH=02h"VINES",AH=03h"VINES"

(Table 3122)
Values for VINES service ID:
 01h	communications
 02h	primary 3270 emulation
 03h	async terminal emulation
 04h	file deflection
 05h	print service control
 06h	get address of something
 07h	StreetTalk access service
 08h	environment
 09h	NETBIOS client service
 0Ah	secondary 3270 emulation
 0Bh	semaphore service
 0Ch	3270 emulation active status
 0Dh	T3270 keyboard interrupt simulator
 0Eh	enhanced 3270 service
 0Fh	comm Windows entry point
 10h	interface to NBNS
--------N-6101--BX0000-----------------------
INT 61 u - PC/TCP kernel v2.1+ - "net_config" - CONFIGURE RUNNING KERNEL
	AH = 01h
	BX = 0000h
	DH = tag number
	DL = device number
	DS:SI -> buffer to send to kernel
	ES:DI -> integer containing size of buffer
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
Notes:	there are a large number of tags available; the items returned
	  all refer to local kernel configuration, and are not needed in
	  normal use.
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=02h"PC/TCP"
--------N-6102-------------------------------
INT 61 - Banyan VINES - GET REVISION NUMBER
	AH = 02h
	DS:DX -> 2-byte buffer for result
Return: AX = 0000h installed
	    DS:DX buffer contains revision number as
		10000d * major_ver + 100d * minor_ver + patch_revision
SeeAlso: AH=01h"VINES",AH=04h"VINES",AH=07h"VINES"
--------N-6102--BX0000-----------------------
INT 61 u - PC/TCP kernel v2.1+ - "get_kernel_info" - GET MISCELLAN LOCAL INFO
	AH = 02h
	BX = 0000h
	DH = tag number
	DL = device number
	DS:SI -> buffer for result (up to 48 bytes for version <= 2.2)
	ES:DI -> integer containing size of buffer
Return: CF clear if successful
	    Data loaded into specified buffer, and size value altered
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
Notes:	there are a large number of tags available; the items returned
	  all refer to local kernel configuration, and are not needed in
	  normal use.
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
--------N-6103-------------------------------
INT 61 - Banyan VINES - INSTALL SERVICE HANDLER
	AH = 03h
	AL = service ID (see #3122)
	DS:DX -> new service handler
Return: AX = 0000h successful
SeeAlso: AH=00h,AH=01h"VINES",AH=02h"VINES",AH=05h"VINES"
--------N-6104-------------------------------
INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE
	AH = 04h
	DS:DX -> 2-byte buffer containing the VINES revision number
	    DS:DX buffer contains revision number as
		10000d * major_ver + 100d * minor_ver + patch_revision
Return: AX = status
	    0000h valid version
	    0004h out of range
Note:	For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
SeeAlso: AH=02h"VINES",AH=07h"VINES",AH=08h"VINES"
--------N-6105-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "get_addr" - GET INTERNET ADDRESS OF NET DESCR
	AH = 05h
	BX = network descriptor
Return: CF clear if successful
	    DX:AX = Internet address of ND
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
Notes:	the installation check consists of testing for the signature "TCPTSR"
	  three bytes beyond the start of the interrupt handler
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=16h"PC/TCP"
SeeAlso: INT 63/AH=25h"BW-TCP"
--------N-6105-------------------------------
INT 61 - Banyan VINES - READ PCCONFIG BYTES
	AH = 05h
	CX = number of bytes to copy
	    (max. 0175h for VINES 4.00, max. 017Fh for VINES 4.10+)
	SI = offset of area to be copied (see #3123,#3124)
Return: AX = status
	    0000h successful
	    0004h out of range
Notes:	The PCCONFIG area is located in the code segment of the BANV handler
	To find out which PCCONFIG structure applies, call this function first
	  with CX=0006h to get the VINES revision number
SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=06h"VINES",AH=0Bh"VINES"

Format of PCCONFIG area (VINES 4.00):
Offset	Size	Description	(Table 3123)
 00h  6	BYTEs	VINES revision (ASCII, zero-padded)
 06h  2	BYTEs	NEWREV-number (ASCII, two digits)
 08h	WORD	hardware interrupt level
 0Ah	WORD	DMA channel
 0Ch	WORD	I/O address
 0Eh	DWORD	adapter ROM address (linear)
 12h	DWORD	adapter RAM address (linear)
 16h	WORD	BANV interrupt
 18h 32	BYTEs	default login group #1
 38h 32	BYTEs	default login group #2
 58h 32	BYTEs	default login group #3
 78h	WORD	semaphore locking support flag
 7Ah	WORD	extended StreetTalk flag
 7Ch	WORD	maximum number of file volumes
 7Eh	WORD	NetBIOS flag
 80h 60	BYTEs	default network adapter
 BCh 60	BYTEs	default communications driver
 F8h	WORD	maximum number of SPP connections
 FAh	WORD	maximum number of open sockets
 FCh	WORD	communications buffer size (10..60 KB)
 FEh 20	BYTEs	location directory on drive Z:
112h 33	BYTEs	auxiliary configuration area #1 (see #3125)
133h 33	BYTEs	auxiliary configuration area #2
154h 33	BYTEs	auxiliary configuration area #3
SeeAlso: #3124

Format of PCCONFIG area (VINES 4.10+):
Offset	Size	Description	(Table 3124)
 00h  6	BYTEs	VINES revision (ASCII, zero-padded)
 06h  2	BYTEs	NEWREV-number (ASCII, two digits)
 08h	WORD	hardware interrupt level
 0Ah	WORD	DMA channel
 0Ch	WORD	I/O address
 0Eh	DWORD	adapter ROM address (linear)
 12h	DWORD	adapter RAM address (linear)
 16h	WORD	BANV interrupt
 18h 32	BYTEs	default login group #1
 38h 32	BYTEs	default login group #2
 58h 32	BYTEs	default login group #3
 78h	WORD	semaphore locking support flag
 7Ah	WORD	extended StreetTalk flag
 7Ch	WORD	named pipes support flag
 7Eh	WORD	maximum number of file volumes
 80h	WORD	NetBIOS flag
 82h 60	BYTEs	default network adapter
 BEh 60	BYTEs	default communications driver
 FAh	WORD	maximum number of SPP connections
 FCh	WORD	maximum number of open sockets
 FEh	WORD	communications buffer size (10..60 KB)
100h	WORD	number of mailslots
102h	WORD	maximum number of open files
104h	WORD	maximum number of NetBIOS sessions
106h	WORD	maximum number of NetBIOS commands
108h 20	BYTEs	location directory on drive Z:
11Ch 33	BYTEs	auxiliary configuration area #1 (see #3125)
13Dh 33	BYTEs	auxiliary configuration area #2
15Eh 33	BYTEs	auxiliary configuration area #3

Format of auxiliary configuration area:
Offset	Size	Description	(Table 3125)
 00h 16	BYTEs	item name (no zero terminator if length = 16)
 10h	BYTE	item value type (1=text, else numeric)
 11h 16	BYTEs	item value (string if type 1, else DWORD)
SeeAlso: #3123,#3124
--------N-6106-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_info" - GET INTERFACE STATISTICS
	AH = 06h
	BX = network descriptor (must be allocated and open)
	DS:SI -> 38-byte buffer for interface statistics (see #3126)
Return: CF clear if successful
	    buffer filled
	CF set on error
	    AX = error code (see #2990)
Desc:	returns the statistics relevant to the particular network interface
	   used by the specified network descriptor
Range:	INT 20 to INT E0, selected by configuration
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=05h"PC/TCP"

Format of PC/TCP interface statistics:
Offset	Size	Description	(Table 3126)
 00h	WORD	interface class (e.g. 802.3)
 02h	WORD	type (manufacturer) of interface
 04h	WORD	interface number
 06h	DWORD	(big-endian) IP address of interface
 0Ah	DWORD	subnet mask
 0Eh	WORD	0001h if interface is up
 10h	DWORD	total packets received
 14h	DWORD	total packets sent
 18h	DWORD	receive errors
 1Ch	DWORD	send errors
 20h	WORD	length of local net address (e.g. 0006h for Ethernet)
 22h	DWORD	pointer to local net address
--------N-6106-------------------------------
INT 61 - Banyan VINES - GET PCCONFIG BASE ADDRESS
	AH = 06h
	DS:DX -> 4-byte buffer for far pointer to PCCONFIG area
Return: AX = 0000h successful
Note:	The PCCONFIG area is located in the code segment of the BANV handler
SeeAlso: AH=05h"VINES",AH=0Bh"VINES"
--------N-6107-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_globalize" - MAKE NET DESCRIPTOR GLOBAL
	AH = 07h
	BX = local network descriptor
Return: CF clear if successful
	    AX = global network descriptor
	CF set on error
	    AX = error code (see #2990)
Notes:	the new network descriptor can be accessed from all processes and is
	  independent of DOS
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
SeeAlso: INT 61/AH=29h
--------N-6107-------------------------------
INT 61 - Banyan VINES - GET VINES REVISION NUMBER (LONG)
	AH = 07h
	DS:DX -> 4-byte buffer for result
Return: AX = 0000h successful
	    DS:DX buffer contains revision number as
		10000d * major_ver + 100d * minor_ver + patch_revision
SeeAlso: AH=02h"VINES",AH=04h"VINES",AH=08h"VINES"
--------b-6107-------------------------------
INT 61 - Atari Portfolio - FORMAT CREDIT CARD MEMORY
	AH = 07h
	AL = drive number (00h = A:,01h = B:)
Return: CF clear if successful
	CF set on error
	    AH = error code (see #0166 at INT 13/AH=01h)
Note:	do not use this function to format the internal disk (drive number 02h)
SeeAlso: AH=00h"Portfolio",AH=08h"Portfolio",AH=09h"Portfolio"
--------N-6108-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_release" - CLOSE A NETWORK DESCRIPTOR
	AH = 08h
	BX = network descriptor
Return: CF clear if successful
	    AX = 0000h (BWPCTCP shim)
	CF set on error
	    AX = error code (see #2990)
Range:	INT 20 to INT E0, selected by configuration
Note:	the descriptor will be closed and resources released.  If a stream
	  descriptor, the protocol (FIN etc) is completed unless the
	  non-blocking option has been set.
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=09h"PC/TCP"
SeeAlso: INT 63/AH=0Eh"BW-TCP"
--------N-6108-------------------------------
INT 61 - Banyan VINES - CHECK VINES REVISION NUMBER IN RANGE (LONG)
	AH = 08h
	DS:DX -> 4-byte buffer containing the VINES revision number
	    DS:DX buffer contains revision number as
		10000d * major_ver + 100d * minor_ver + patch_revision
Return: AX = status
	    0000h valid version
	    0004h out of range
Note:	For Revision 5.53, the valid range is 4.10(0) to 6.19(99)
SeeAlso: AH=04h"VINES",AH=07h"VINES"
--------b-6108-------------------------------
INT 61 - Atari Portfolio - GET SIZE OF INTERNAL DISK
	AH = 08h
Return: AX = segment address of RAMdisk
	BX = size in KB
SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=09h"Portfolio"
--------N-6109-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_releaseall" - CLOSE ALL NON-GLOBAL DESCRS
	AH = 09h
Return: CF clear
Range:	INT 20 to INT E0, selected by configuration
Notes:	this call performs function 08h on every non-global network descriptor.
	  Global descriptors must be released individually.
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
SeeAlso: INT 63/AH=0Eh"BW-TCP"
--------N-6109-------------------------------
INT 61 - Banyan VINES - GET VALUE OF AN OS/2 BACKEND VARIABLE
	AH = 09h
	other parameters, if any, unknown
SeeAlso: AH=0Ah"VINES"
--------b-6109-------------------------------
INT 61 - Atari Portfolio - FORMAT INTERNAL DISK
	AH = 09h
	BX = desired size of disk in KB
Return: CF clear if successful
	CF set on error
	    BX = maximum possible size in KB
Desc:	resize and erase the internal RAMdisk, then reboot the system
SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=08h"Portfolio"
SeeAlso: AH=0Bh"Portfolio"
--------N-610A-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_send" - ???
	AH = 0Ah
	???
Return: ???
Notes:	this function is described as "unused" in the v2.05 and v2.2
	  documentation
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: AH=0Bh
--------N-610A-------------------------------
INT 61 - Banyan VINES - SET VALUE OF AN OS/2 BACKEND VARIABLE
	AH = 0Ah
	other parameters, if any, unknown
SeeAlso: AH=09h"VINES"
--------N-610B-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_sendto" - ???
	AH = 0Bh
	???
Return: ???
Range:	INT 20 to INT E0, selected by configuration
Notes:	this function is described as "unused" in the v2.05 and v2.2
	  documentation
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: AH=0Ah
--------N-610B-------------------------------
INT 61 - Banyan VINES - SET PCCONFIG IN BACKEND
	AH = 0Bh
	other parameters, if any, unknown
SeeAlso: AH=05h"VINES",AH=06h"VINES"
--------b-610B-------------------------------
INT 61 - Atari Portfolio - DETERMINE CCM VALIDITY
	AH = 0Bh
	AL = drive number (00h = A:,01h = B:)
Return: CF clear if successful (card present and correct)
	CF set on error
	    AH = error code (see #0166 at INT 13/AH=01h)
SeeAlso: AH=00h"Portfolio",AH=07h"Portfolio",AH=0Dh"Portfolio"
--------N-610C-------------------------------
INT 61 u - PC/TCP kernel v2.05+ - "net_stat" - GET CONNECTION STATISTICS
	AH = 0Ch
	BX = network descriptor or one of the following:
	    FFFCh for kernel ICMP statistics (see #3130)
	    FFFDh for kernel UDP statistics (see #3129)
	    FFFEh for kernel IP statistics (see #3128)
	    FFFFh for kernel TCP statistics (see #3127)
	DS:DX -> 64-byte buffer
Return: CF clear if successful
	    buffer filled
	CF set on error
	    AX = error code (see #2990)
Notes:	the fields filled in for a network descriptor depend on the protocol
	  family used by that descriptor's connection
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"

Format of PC/TCP kernel TCP statistics:
Offset	Size	Description	(Table 3127)
 00h 16 BYTEs	unused
 10h	DWORD	bytes sent
 14h	DWORD	bytes received
 18h  8 BYTEs	unused
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad checksums
 2Ch	DWORD	count of window ignored by remote
 30h	DWORD	timeouts
 34h	DWORD	resets
 38h	DWORD	duplicate packets
 3Ch	DWORD	retransmits
SeeAlso: #3128,#3129,#3130

Format of PC/TCP kernel IP statistics:
Offset	Size	Description	(Table 3128)
 00h  8 BYTEs	unused
 08h	DWORD	invalid IP header length errors
 0Ch	DWORD	protocol errors (unwanted packets)
 10h	DWORD	duplicate fragments received
 14h	DWORD	bad fragments received
 18h	DWORD	security errors
 1Ch	DWORD	count of bad IP addresses received
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad checksums received
 2Ch	DWORD	total IP protocol errors
 30h	DWORD	fragmentation errors
 34h	DWORD	IP packets discarded + bad security + bad fragments
 38h	DWORD	fragments received
 3Ch  4 BYTEs	unused
SeeAlso: #3127,#3129,#3130

Format of PC/TCP kernel UDP statistics:
Offset	Size	Description	(Table 3129)
 00h 28 BYTEs	unused
 1Ch	DWORD	packets dropped for lack of buffers
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad checksums
 2Ch	DWORD	port not listening errors
 30h  4 BYTEs	unused
 34h	DWORD	truncated receives
 38h  8 BYTEs	unused
SeeAlso: #3127,#3128,#3130

Format of PC/TCP kernel ICMP statistics:
Offset	Size	Description	(Table 3130)
 00h	DWORD	"TimeEx" sent
 04h	DWORD	"TimeEx" received
 08h	DWORD	"ParamProb" sent
 0Ch	DWORD	"ParamProb" received
 10h	DWORD	redirects received
 14h	DWORD	source quenches received
 18h	DWORD	ICMP Echo Requests ("ping") sent
 1Ch	DWORD	ICMP Echo Requests received
 20h	DWORD	packets sent
 24h	DWORD	packets received
 28h	DWORD	bad packets received
 2Ch	DWORD	"DestUn" received
 30h	DWORD	packet send errors
 34h	DWORD	"DestUn" sent
 38h	DWORD	ICMP Echo replies received
 3Ch	DWORD	ICMP Echo replies sent
SeeAlso: #3127,#3128,#3129
--------N-610D-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "is_netnd" - CHECK IF NETWORK DESCRIPTOR VALID
	AH = 0Dh
	BX = possible network descriptor
Return: CF clear if valid
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=08h"PC/TCP"
SeeAlso: INT 61/AH=22h
--------b-610D-------------------------------
INT 61 - Atari Portfolio - GET SCREEN SIZE
	AH = 0Dh
Return: AX = physical screen size (AH=rows, AL=columns)
	DX = logical screen size (DH=rows, DL=columns)
SeeAlso: AH=00h"Portfolio",AH=0Bh"Portfolio",AH=0Eh"Portfolio"
--------N-610E-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_select" - DETECT READINESS OF NETWORK
	AH = 0Eh
	BX = maximum value of network descriptor for which to return info
	DS:DX -> 32-bit (max) array of bit flags for read readiness
	ES:DI -> 32-bit (max) array of bit flags for write readiness
Return: CF clear
Range:	INT 20 to INT E0, selected by configuration
Notes:	bits in the DS:DX buffer are set if the corresponding network
	  descriptor may be read without blocking; bits in the ES:DI buffer
	  are set if the corresponding network descriptor may be written
	  without blocking.  This implies that the network descriptor has
	  opened correctly and the protocol initialized.
	the installation check consists of testing for the signature "TCPTSR"
	  three bytes beyond the start of the interrupt handler
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-610E-------------------------------
INT 61 - Atari Portfolio - GET/SET SCREEN MODE
	AH = 0Eh
	AL = function
	    00h get mode
	    01h set mode
		DL = new mode (see #3131)
Return: DL = current/old mode
Note:	if changing the mode places the cursor position or virtual screen
	  origin outside the displayed area, the screen origin will be reset
	  to (0,0), the screen cleared, and the cursor position set to (0,0)
SeeAlso: AH=00h"Portfolio",AH=0Dh"Portfolio",AH=0Fh"Portfolio",INT 10/AH=00h

Bitfields for Atari Portfolio screen mode:
Bit(s)	Description	(Table 3131)
 0	40x8 mode instead of 80x25
 1	tracked mode
 7	graphics
Note:	the above bits are mutually exclusive
--------N-610F-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "get_netversion" - GET SOFTWARE VERSION
	AH = 0Fh
Return: CF clear
	AX = version (AH = major, AL = minor)
	BX = patch level
Notes:	patch levels are no longer used starting with version 2.10; instead,
	  the minor version level is incremented.
	Beame&Whiteside's BWPCTCP v3.0a shim reports version 2.05, but does not
	  set BX
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-610F-------------------------------
INT 61 - Atari Portfolio - GET/SET CURSOR MODE
	AH = 0Fh
	AL = function
	    00h get mode
	    01h set mode
		BL = new cursor mode
			00h cursor off
			01h underline
			02h block
	    02h force mode (set size to reflect NumLock state)
Return: BL = current/old cursor mode
SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=10h"Portfolio",INT 10/AH=01h
--------N-6110-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_shutdown" - UNINSTALL
	AH = 10h
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
Note:	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-6110-------------------------------
INT 61 - Atari Portfolio - GET/SET VIRTUAL SCREEN POSITION
	AH = 10h
	AL = function
	    00h get position
		Return: DH,DL = current row,column
	    01h set position
		DH = row
		DL = column
Desc:	get or specify the upper-left corner of the 40x8 window into the
	  logical screen
SeeAlso: AH=00h"Portfolio",AH=0Eh"Portfolio",AH=0Fh"Portfolio"
SeeAlso: AH=11h"Portfolio"
--------N-6111-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "disable_async" - DISABLE ASYNCHRONOUS HANDLERS
	AH = 11h
Return: CF clear
	AX = previous state
	    0000h async calls were already disabled
	    else  async calls were enabled
SeeAlso: INT 61"FTP Software",INT 61/AH=12h
--------b-6111-------------------------------
INT 61 - Atari Portfolio - MOVE VIRTUAL SCREEN ORIGIN
	AH = 11h
	AL = number of lines to move
	DL = direction of move (1=up, 2=down, 3=left, 4=right)
SeeAlso: AH=00h"Portfolio",AH=10h"Portfolio",AH=12h"Portfolio"
--------N-6112-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "enable_async" - ENABLE ASYNCHRONOUS HANDLERS
	AH = 12h
Return: CF clear
	AX = previous state
	    0000h async calls were disabled
	    else  async calls were already enabled
SeeAlso: INT 61"FTP Software",INT 61/AH=11h
--------b-6112-------------------------------
INT 61 - Atari Portfolio - SCREEN REFRESH
	AH = 12h
Return: nothing
Desc:	copy contents of video RAM to LCD controller
SeeAlso: AH=10h"Portfolio",AH=11h"Portfolio",AH=15h"Portfolio"
--------N-6113-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_connect" - OPEN A NETWORK CONNECTION
	AH = 13h
	BX = network descriptor (FFFFh for automatic net_getdesc)
	DX = protocol (see #3132)
	DS:SI -> buffer for "addr" structure (see #3133)
Return: CF clear if successful
	    AX = network descriptor used or allocated
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Notes:	resets the connection with AH=19h in various cases
	will wait for protocol on stream connections unless non-blocking was
	  set with AH=20h
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=18h,INT 61/AH=23h
SeeAlso: INT 63/AH=14h"BW-TCP"

(Table 3132)
Values for PC/TCP protocol:
 0001h	raw net (undocumented)
 0002h	raw IP
 0003h	datagram (UDP)
 0004h	stream (TCP)
 0005h	raw ICMP

Format of structure "addr":
Offset	Size	Description	(Table 3133)
 00h	DWORD	Internet address (network order)
 04h	WORD	remote socket number (network order)
 06h	WORD	local socket number (network order) 0000h means "you choose"
 08h	BYTE	protocol (see #3132)
--------N-6114-------------------------------
INT 61 Ou - PC/TCP kernel v2.05 - "net_recv" - NO LONGER SUPPORTED
	AH = 14h
	BX = network descriptor
Return: CF set
	    AX = 0018h (see #2990 at INT 61"FTP Software")
Notes:	displays error message "Illegal system call!  Please upgrade your
	  PCserver software" to standard output
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=0Ah,INT 61/AH=15h
--------N-6115-------------------------------
INT 61 - PC/TCP kernel v2.05 - "net_recvfrom" - ???
	AH = 15h
	???
Return: ???
Notes:	this function is described as "unused" in the v2.2 documentation
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61/AH=0Bh,INT 61/AH=14h
--------b-6115-------------------------------
INT 61 - Atari Portfolio - SOUND GENERATION
	AH = 15h
	AL = function
	    00h key click
	    01h beep
	    02h alarm
Return: nothing
SeeAlso: AH=00h"Portfolio",AH=12h"Portfolio",AH=16h"Portfolio"
--------N-6116-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_peer" - GET DATA ON REMOTE PEER
	AH = 16h
	BX = network descriptor
	DS:DX -> 9-byte buffer for "addr" structure (see #3133)
Return: CF clear if successful
	    buffer filled
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-6116-------------------------------
INT 61 - Atari Portfolio - MELODY TONE GENERATOR
	AH = 16h
	CX = length of tones in 1/100 sec
	DL = tone code (see #3134)
SeeAlso: AH=15h"Portfolio",AH=17h"Portfolio"

(Table 3134)
Values for Atari Portfolio tone code:
 04h	A6#1864.7 Hz
 05h	B6	1975.5 Hz
 06h	D7	2348.3 Hz
 07h	D7#	2489.0 Hz
 0Eh	F6#	1480.0 Hz
 25h	C7	2093.0 Hz
 29h	D6	1174.7 Hz
 2Ch	G6#	1661.2 Hz
 2Fh	C7#	2217.5 Hz
 30h	D5#	622.3 Hz
 31h	E5	659.3 Hz
 32h	F5	698.5 Hz
 33h	F5#	740.0 Hz
 34h	G5	784.0 Hz
 35h	G5#	830.6 Hz
 36h	A5	880.6 Hz
 37h	A5#	932.3 Hz
 38h	B5	987.8 Hz
 39h	C6	1046.5 Hz
 3Ah	C6#	1108.7 Hz
 3Bh	D6#	1244.5 Hz
 3Ch	E6	1318.5 Hz
 3Dh	F6	1396.9 Hz
 3Eh	G6	1568.9 Hz
 3Fh	A6	1760.0 Hz
--------N-6117-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_reconfig" - RE-READ KERNEL CONFIGURATION
	AH = 17h
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Notes:	this routine is deprecated in v2.1+ and will eventually be withdrawn;
	  in v2.1+, this function calls AH=01h which should be used instead
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=01h"PC/TCP"
--------b-6117-------------------------------
INT 61 - Atari Portfolio - DIAL NUMBER
	AH = 17h
	DS:SI -> ASCII string containing number to dial
	CX = length of string
Note:	valid characters for string are "0123456789ABCD*#"
SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=16h"Portfolio"
SeeAlso: AH=18h"Portfolio"
--------N-6118-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_eof" - CLOSE TRANSMIT SIDE OF CONNECTION
	AH = 18h
	BX = network descriptor
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	a TCP "FIN" command is sent and no further data may be transmitted,
	  although the connection remains open
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h"PC/TCP"
SeeAlso: INT 63/AH=0Eh"BW-TCP"
--------b-6118-------------------------------
INT 61 - Atari Portfolio - MUTE STATES
	AH = 18h
	AL = function
	    00h get mute state
	    01h set mute state
	    02h get key click state
	    03h set key click state
	    04h get beep state
	    05h set beep state
	    06h get alarm state
	    07h set alarm state
	    08h get DTMF duration
	    09h set DTMF duration
	DL = new state ("set" functions) (00h off [muted], 01h on)
Return: DL = current state ("get" functions) (00h off [muted], 01h on)
SeeAlso: AH=15h"Portfolio",AH=16h"Portfolio",AH=17h"Portfolio"
SeeAlso: AH=19h"Portfolio"
--------N-6119-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_abort" - RESET A NETWORK CONNECTION
	AH = 19h
	BX = network descriptor
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Desc:	immediately destroys the specified connection
Note:	send a TCP "RST" command if a stream connection is open
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=24h
--------b-6119-------------------------------
INT 61 - Atari Portfolio - GET SERIAL PORT PARAMETERS
	AH = 19h
	DX = serial port number
Return: AH = status
	    00h successful
		AL = composite parameters (see #0226 at INT 14/AH=00h"SERIAL")
	    other error
SeeAlso: AH=00h"Portfolio",AH=15h"Portfolio",AH=1Ah"Portfolio"
--------N-611A-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_write" - WRITE TO THE NETWORK
	AH = 1Ah
	BX = network descriptor
	CX = number of bytes to transmit (0000h allowed)
	DX = send options (see #3135)
	DS:SI -> data to be written
Return: CF clear if successful
	    AX = number of bytes actually written
	    DX = ???
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20h to INT E0h, selected by configuration
Notes:	the installation check consists of testing for the signature "TCPTSR"
	  three bytes beyond the start of the interrupt handler
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
SeeAlso: INT 63/AH=19h"BW-TCP",INT 63/AH=1Bh"BW-TCP"

Bitfields for PC/TCP send options:
Bit(s)	Description	(Table 3135)
 0	signal "URG"ent data
 3	attempt rerouting on non-stream calls if first attempt fails
 4	send data with PUSH flag (no override of Nagle)
 5	fail rather than truncating datagram
 6	fail rather than blocking
 7	broadcast packet
--------b-611A-------------------------------
INT 61 - Atari Portfolio - GET PERIPHERAL ID BYTE
	AH = 1Ah
Return: AH = peripheral ID byte
	AL = 00h if no peripheral installed
Desc:	get the ID code for the current terminating peripheral
SeeAlso: AH=00h"Portfolio",AH=18h"Portfolio",AH=1Bh"Portfolio"
--------N-611B-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_read" - READ FROM THE NETWORK
	AH = 1Bh
	BX = network descriptor
	CX = maximum number of bytes to read
	DX = receive options (see #3136)
	DS:SI -> buffer for data
	ES:DI -> "addr" structure (see #3133) for remote from which to read
		0000h:0000h for any
Return: CF clear if successful
	    AX = number of bytes actually read
	    DX = ???
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh

Bitfields for PC/TCP receive options:
Bit(s)	Description	(Table 3136)
 1	do not remove data from queue, just copy it
 2	do not copy data, just remove it from queue
 5	fail if datagram would be truncated
 6	do not block, return error if no data available
Note:	special case for UDP: if both 1 and 2 set, return number of datagrams
--------b-611B-------------------------------
INT 61 - Atari Portfolio - SET PERIPHERAL ID BYTE
	AH = 1Bh
	AL = which peripheral to set
	    00h serial
	    01h parallel
	DL = peripheral ID
Return: nothing
Desc:	specify that a peripheral is compatible with the BIOS serial or
	  parallel services
SeeAlso: AH=1Ah"Portfolio",AH=1Ch"Portfolio"
--------N-611C-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_writeto" - WRITE A DATAGRAM
	AH = 1Ch
	BX = network descriptor
	CX = number of bytes to transmit (0000h allowed)
	DX = send options (see #3135)
	DS:SI -> data to be written
	ES:DI -> "addr" structure (see #3133)
Return: CF clear if successful
	    AX = number of bytes actually written
	    DX = ???
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	this function differs from AH=1Ah in that the address and socket
	  numbers can be overridden
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Ah,INT 61/AH=1Dh
SeeAlso: INT 63/AH=21h"BW-TCP"
--------b-611C-------------------------------
INT 61 - Atari Portfolio - PRESET/GET PERIPHERAL DATA
	AH = 1Ch
	AL = function
	    00h preset data values
		BL = data value
		DX = I/O address
	    01h get data values
	BH = table entry number (04h-09h)
Return: if function 01h
	    BL = data value
	    DX = I/O address
Desc:	preset peripheral I/O data in a table mapping I/O addresses to data
	  values; function 00h additionally outputs the data value to the
	  I/O port
SeeAlso: AH=1Ah"Portfolio",AH=1Bh"Portfolio",AH=1Eh"Portfolio"
--------N-611D-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_readfrom" - READ A DATAGRAM
	AH = 1Dh
	BX = network descriptor
	CX = maximum number of bytes to read
	DX = receive options (see #3135)
	DS:SI -> buffer for received data
	ES:DI -> 9-byte buffer containing "addr" structure (see #3133)
Return: CF clear if successful
	    AX = number of bytes read
	    DX = ???
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Notes:	this function can read from any host or a designated host depending
	  on settings in the "addr" structure
	only for use with datagram or Raw descriptors
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=1Bh,INT 61/AH=1Ch
--------N-611E-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_flush" - FLUSH PENDING DATA
	AH = 1Eh
	BX = network descriptor
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
Notes:	bufferred data is transmitted immediately, overriding Nagle's algorithm
	  if necessary
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-611E-------------------------------
INT 61 - Atari Portfolio - GET/SET CLOCK TICK SPEED
	AH = 1Eh
	AL = function
	    00h get speed
	    01h set speed
		BX = clock tick speed
		    0000h tick every 128 seconds
		    0001h tick every second
Return: if function 00h
	    BX = clock tick speed
Note:	the faster tick speed also uses more power
SeeAlso: AH=00h"Portfolio",AH=1Ch"Portfolio",AH=1Fh"Portfolio"
--------N-611F-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_asynch" - SET UP ASYNCHRONOUS CALL-BACK
	AH = 1Fh
	BX = network descriptor
	CX = event type (see #3137)
	DS:SI -> event handler routine (see #3138)
	ES:DI = 32-bit hint passed to handler
Return: CF clear if successful
	    DS:DX -> previous handler
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	ICMP messages do not trigger events on stream connections
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"

(Table 3137)
Values for PC/TCP event type:
 00h	alarm
 01h	open (successfully opened stream connection)
 02h	receive (data available)
 03h	transmit (ACK received on stream connection)
 04h	transmit flush???
 05h	foreign close (remote host closed data connection)
 06h	close (local host closed connection and protocol is complete)
 07h	error (error code passed to handler as arg)

(Table 3138)
Values PC/TCP user event handler is called with:
	BX = network descriptor
	CX = event type (see #3137)
	DS:DX -> arg
	ES:DI = 32-bit hint value
	STACK:	small stack, possibly the DOS stack
--------b-611F-------------------------------
INT 61 - Atari Portfolio - GET KEY/NMI-INVOKED SCREEN REFRESH
	AH = 1Fh
	AL = function
	    00h get state
	    01h set state
		DH = new refresh-on-NMI state
		    (00h disabled, 01h enabled, bit 7 set = don't change)
		DL = new refresh-on-key state
Return: DH,DL = current/old states
SeeAlso: AH=00h"Portfolio",AH=1Eh"Portfolio",AH=20h"Portfolio"
--------N-6120-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "set_option" - SET AN OPTION ON A DESCRIPTOR
	AH = 20h
	BX = network descriptor
	CX = length of buffer (usually 04h)
	DS:DX -> buffer containing option
	SI = (ignored by v2.2-)
	DI = option to set (see #3139)
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	Beame&Whiteside's BWPCTCP shim only supports options 01h and 0Bh; all
	  others return CF clear
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=21h

(Table 3139)
Values for PC/TCP option to get or set:
 01h	set non-blocking mode if non-zero
 02h	timeout of call in milliseconds
 03h	user-defined 4-byte magic cookie (not used by kernel)
 04h	TCP window or UDP buffer count (WORD, unsigned)
 06h	do TCP keep-alives if non-zero
 09h	(v2.1+) set IP precedence
 0Ah	(v2.1+) set IP type of service
 0Bh	use a privileged port if port = 0
 0Ch	turn off TCP PUSH bit and don't flush buffer every write (see AH=1Ah)
Note:	use "C" true or false values for boolean options
--------b-6120-------------------------------
INT 61 - Atari Portfolio - GET/SET INT 09 REVECTORING
	AH = 20h
	AL = function
	    00h get INT 09 revectoring state
	    01h set state
		DL = new state (00h disable, 01h enable)
Return: if function 00h
	    DL = new state (00h disabled, 01h enabled)
Desc:	specify whether INT 09 is automatically revectored to the BIOS,
	  preventing applications from using their own INT 09 handler on the
	  incompatible keyboard hardware
SeeAlso: AH=1Eh"Portfolio",AH=1Fh"Portfolio",AH=24h"Portfolio"
--------N-6121-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "get_option" - GET OPTIONS APPLIED TO NET DESCR
	AH = 21h
	BX = network descriptor
	CX = length of buffer
	DS:DX -> buffer for return values
	SI = 0004h (ignored by v2.2-)
	DI = option (see #3139)
Return: CF clear if successful
	    DS:DX -> value (usually 32 bits) returned by selected option
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=20h
--------N-6122-------------------------------
INT 61 u - PC/TCP kernel v2.05+ - "net_getdesc" - ALLOCATE NETWORK DESCRIPTOR
	AH = 22h
Return: CF clear if successful
	    AX = network descriptor
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	the descriptor will be an integer in the range 00h-1Fh, and a DOS call
	  is made to allocate this as a file descriptor.  Hence a number may
	  not refer to a PC/TCP network descriptor and a DOS file handle
	  simultaneously.
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h,INT 61/AH=29h
--------N-6123-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_listen" - LISTEN FOR INCOMING CONNECTIONS
	AH = 23h
	BX = network descriptor or FFFFh to allocate descriptor
	DX = type of service
	DS:SI -> "addr" structure (see #3133)
Return: CF clear if successful
	    AX = network descriptor
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Notes:	type of service and "addr" structure are as for AH=13h
	any of the address structure can be zero; normally local socket number
	  is filled in prior to call
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=13h
SeeAlso: INT 63/AH=12h"BW-TCP"
--------N-6124-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_abortall" - RESET ALL NETWORK CONNECTIONS
	AH = 24h
Return: always successful
Note:	performs "net_abort" (AH=19h) on all open non-global descriptors
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=19h
--------b-6124-------------------------------
INT 61 - Atari Portfolio - GET/SET ROM/CCM SPACE STATE
	AH = 24h
	AL = function
	    00h get state
	    01h set state
		DL = new ROM state (see #3140)
		DH = new CCM state (see #3141)
Return: CF clear if successful
	    DL = current/old ROM state
	    DH = current/old CCM state
	CF set on error (invalid option or other error)
Desc:	control whether memory cards or an extension ROM are visible in the
	  range 000C0000h to 000DFFFFh
SeeAlso: AH=00h"Portfolio",AH=20h"Portfolio",AH=26h"Portfolio"

(Table 3140)
Values for Atari Portfolio ROM space state:
 00h	normal application ROM
 01h	CCM drive A:
 02h	CCM drive B:
 03h	expansion ROM
SeeAlso: #3141

(Table 3141)
Values for Atari Portfolio CCM space state:
 00h	CCM drives disabled
 01h	CCM drive A: permanently enabled
 02h	CCM drive B: permanently enabled
SeeAlso: #3140
--------N-6125-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "ad_res_name" - GET HOST NAME GIVEN ADDRESS
	AH = 25h
	DX,BX = IP address in network order
	CX = length of buffer for name
	DS:SI -> buffer for host name
Return: CF clear if successful
	   buffer filled with ASCIZ host name
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	this function will use the host table and or DNS to resolve the
	  address, depending on kernel configuration.  Use this call for the
	  normal gethostbyaddr function.
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=26h,INT 61/AH=27h
--------N-6126-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "ad_htable" - GET HOST NAME FROM LOCAL TABLE
	AH = 26h
	DX,BX = IP address in network order
	CX = length of buffer
	DS:SI -> buffer for host name
Return: CF clear if successful
	    buffer filled with ASCIZ host name
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Notes:	normally one would use AH=25h instead of this function
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=27h
--------b-6126-------------------------------
INT 61 - Atari Portfolio - GET/SET POWER CONTROL
	AH = 26h
	AL = function
	    00h get state
	    01h set state
		DL = new state
		    00h normal power-down on low battery
		    01h no power-down, but display warning
		    02h no power-down, no warning on low battery
Return: AL = current/old state
SeeAlso: AH=00h"Portfolio",AH=24h"Portfolio",AH=28h"Portfolio"
--------N-6127-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "ad_domain" - GET HOST NAME FROM DNS
	AH = 27h
	DX,BX = IP address in network order
	CX = length of buffer
	DS:SI -> buffer for host name
Return: CF clear if successful
	    buffer filled with ASCIZ host name
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	normally one would use AH=25h instead of this function
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=25h,INT 61/AH=26h
--------N-6128-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_swap" - EXCHANGE TWO NETWORK DESCRIPTORS
	AH = 28h
	BX = network descriptor 1
	CX = network descriptor 2
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	the two descriptors will exchange places; both must be local or both
	  global
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-6128-------------------------------
INT 61 - Atari Portfolio - GET/SET TEXT/KEYBOARD LANGUAGE
	AH = 28h
	AL = function
	    00h get languages
	    01h set languages
		DH = new text language (set bit 7 to leave unchanged)
		DL = new keyboard language (set bit 7 to leave unchanged)
	    03h get language table pointers
Return: if function 00h or 01h:
	    DH = current/old text language
	    DL = current/old keyboard language
	if function 03h
	    ES:CX -> keyboard table (see #3142)
	    ES:DX -> language table (see #3142)
SeeAlso: AH=24h"Portfolio",AH=26h"Portfolio",AH=2Ch"Portfolio"

Format of Atari Portfolio language table:
Offset	Size	Description	(Table 3142)
 00h	BYTE	number of languages supported
 01h  N BYTEs	supported languages
		00h English
		01h French
		02h German
		03h Spanish
		04h Italian
		05h Swedish
		06h Danish
--------N-6129-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "net_getglobdesc" - ALLOCATE GLOBAL DESCRIPTOR
	AH = 29h
Return: CF clear if successful
	    AX = network descriptor
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	use this function rather than AH=22h to avoid a DOS call by the PC/TCP
	  kernel; the returned descriptor will be >= 40h and cannot be used
	  with "net_select" (AH=0Eh)
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=07h"PC/TCP"
SeeAlso: INT 61/AH=22h
--------N-612A-------------------------------
INT 61 - PC/TCP kernel v2.05+ - GET CONFIGURATION INFORMATION
	AH = 2Ah
	DS:SI -> 26-byte buffer for configuration information (see #3143)
Return: CF clear
	AX = 0000h
	buffer filled
Notes:	size of buffer may vary with kernel version; 26 bytes is the size for
	  versions 2.05 through 2.2
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"

Format of PC/TCP configuration information:
Offset	Size	Description	(Table 3143)
 00h	BYTE	maximum TCP connections available
 01h	BYTE	maximum UDP connections available
 02h	BYTE	maximum IP connections available
 03h	BYTE	maximum Raw Net connections available
 04h	BYTE	number of TCP connections currently in use
 05h	BYTE	number of UDP connections currently in use
 06h	BYTE	number of IP connections currently in use
 07h	BYTE	number of Raw Net connections currently in use
 08h	WORD	number of local network descriptors active
 0Ah	WORD	number of global network descriptors active
 0Ch	BYTE	maximum header size on network
 0Dh	BYTE	maximum trailer size on network
 0Eh	WORD	size of large packet buffer
 10h	WORD	number of network interfaces attached
 12h	DWORD	milliseconds since kernel started
 16h	DWORD	IP broadcast address
--------N-612B-------------------------------
INT 61 - PC/TCP kernel v2.02+ - "net_alarm" - SET TIMED ASYNCHRONOUS EVENT
	AH = 2Bh
	BX = network descriptor
	CX,DX = time before alarm in milliseconds
	DS:SI -> handler which will receive call (see #3138 at INT 61/AH=1Fh)
	ES:DI = 32-bit cookie passed to handler
Return: CF clear if successful
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Notes:	this function will cause a NET_AS_ALARM to be generated; it is intended
	  for TSRs, etc. to regain control periodically
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-612C-------------------------------
INT 61 - Atari Portfolio - GET VERSION
	AH = 2Ch
Return: DS:BX -> BIOS version string ('$'-terminated)
SeeAlso: AH=28h"Portfolio",AH=2Dh"Portfolio"
--------b-612D-------------------------------
INT 61 - Atari Portfolio - TURN SYSTEM OFF
	AH = 2Dh
Return: nothing
SeeAlso: AH=00h"Portfolio",AH=2Ch"Portfolio",AH=2Eh"Portfolio"
--------b-612E-------------------------------
INT 61 - Atari Portfolio - ENABLE/DISABLE SYSTEM STATUS LINE
	AH = 2Eh
	AL = new state
	    00h disabled
	    01h enabled
		DH,DL = row,column at which to display
Return: nothing
SeeAlso: AH=00h"Portfolio",AH=2Dh"Portfolio",AH=30h"Portfolio"
--------N-6130-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "icmp_ping" - SEND ICMP ECHO REQUEST (PING)
	AH = 30h
	BX,DX = IP address of host
	CX = length of data to send
Return: CF clear if successful (i.e. reply received)
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP"
--------b-6130-------------------------------
INT 61 - Atari Portfolio - FILE TRANSFER SERVICES
	AH = 30h
	AL = function
	    00h transmit block
		CX = number of bytes to send
	    01h receive block
		CX = buffer size
	    02h open ports
	    03h close ports
	    04h wait 500ms
	DS:DX -> start of data buffer
Return: DL = status
	    00h successful
	    01h buffer too small
	    02h transmission timeout
	    03h checksum failure
	    04h invalid subfunction
	    05h peripheral not installed
	if function 01h:
	    CX = number of bytes received
SeeAlso: AH=00h"Portfolio",AH=2Eh"Portfolio"
--------N-61---------------------------------
INT 61 u - PC/TCP kernel v2.05 - NOP for SLIP kernel
	AH = function
	    31h "net_add_route"
	    32h "net_del_route"
	    33h "net_dump_routes"
Notes:	these functions are described as "unused" in the v2.2 documentation
	router configuration can be altered using INT 61/AH=01h
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
--------N-6132-------------------------------
INT 61 U - PC/TCP kernel v2.3 - GET ???
	AH = 32h
Return: AX = ???
Note:	this function is fully re-entrant, and may be called even when another
	  PC/TCP kernel call is already in progress
--------N-6134-------------------------------
INT 61 U - PC/TCP kernel v2.1+ - "icmp_destun" - ???
	AH = 34h
	???
Return: ???
Notes:	this function is described as "reserved" in the v2.2 documentation
	this function is not supported by Beame&Whiteside's BWPCTCP v3.0a shim
--------N-6150-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_prs_addr" - TRANSLATE NUMERICAL IP ADDRESS
	AH = 50h
	DS:DX -> ASCIZ IP address as "dotted quad" (max 127 chars)
Return: CF clear if successful
	    DX:AX -> IP address
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6151-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_htable" - RESOLVE NAME USING HOST TABLE
	AH = 51h
	CX = size of destination buffer
	DS:DX -> ASCIZ host name (max 127 chars)
	ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
	    DX:AX -> IP address of host
	    destination buffer filled with canonical host name
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	this function calls DOS, and can fail if the DOS call fails
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6152-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_domain" - RESOLVE NAME USING DNS
	AH = 52h
	CX = size of destination buffer
	DS:DX -> ASCIZ host name (max 127 chars)
	ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
	    DX:AX -> IP address of host
	    destination buffer filled with canonical host name
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	this function will poll all configured domain name servers if necessary
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6153-------------------------------
INT 61 - PC/TCP kernel v2.05- - "nm_ien116" - RESOLVE HOST NAME USING IEN116
	AH = 53h
	DS:DX -> ASCIZ name to be resolved (max 127 chars)
Return: CF clear if successful
	    DX:AX -> IP address of host
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Range:	INT 20 to INT E0, selected by configuration
Note:	this function is not supported by v2.10+
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=54h
--------N-6154-------------------------------
INT 61 - PC/TCP kernel v2.05+ - "nm_res_name" - RESOLVE HOST NAME
	AH = 54h
	CX = size of destination buffer
	DS:DX -> ASCIZ host name (max 127 chars)
	ES:DI -> destination buffer or 0000h:0000h
Return: CF clear if successful
	    DX:AX -> IP address of host
	    destination buffer filled with canonical host name
	CF set on error
	    AX = error code (see #2990 at INT 61"FTP Software")
Note:	this function uses all configured methods in turn to resolve the
	  name (numerical, then host table, then DNS, then IEN116)
BUG:	the SLIP kernel for v2.05 bounds-checks the wrong register, so values
	  greater than 54h in AH may crash the system.	Other kernels may have
	  this bug as well; it has been fixed in the v2.2 SLIPDRV kernel.
SeeAlso: INT 61"FTP Software",INT 61/AH=00h"PC/TCP",INT 61/AH=50h,INT 61/AH=51h
SeeAlso: INT 61/AH=52h,INT 61/AH=53h
--------N-6155-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 55h
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-6156-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 56h
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-6157-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 57h
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-6158-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 58h
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-6159-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 59h
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-615A-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 5Ah
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-615B-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 5Bh
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-615C-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 5Ch
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-615D-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 5Dh
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-615E-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 5Eh
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------N-615F-------------------------------
INT 61 U - PC/TCP kernel v2.3 - ???
	AH = 5Fh
	???
Return: ???
SeeAlso: INT 61"FTP Software"
--------*-62---------------------------------
INT 62 - reserved for user interrupt
--------d-62---------------------------------
INT 62 - Adaptec and OMTI controllers - DRIVE 0 DATA
Notes:	this vector stores the third four bytes of the parameter table for
	  hard disk 0
SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 63"Adaptec"
--------b-62---------------------------------
INT 62 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc:	the low word of this vector contains the segment of the RAM data area
	  to be used by the expansion ROM at F400h:2000h, and the high word
	  contains the length of the data area; this segment and size are
	  both set to 0000h if no ROM is installed at F400h:2000h
SeeAlso: INT 61"TI Professional PC",INT 63"TI Professional"
SeeAlso: INT 66"TI Professional PC"
--------b-62---------------------------------
INT 62 - HP 95LX - USED BY CALCULATOR
SeeAlso: INT 60/DI=0104h"HP 95LX"
----------62---------------------------------
INT 62 - MS SQL Server/Sybase DBLIBRARY interface - ???
	AH = function (00h to 07h)
	CX = FFFEh
	DX = FFFFh
	???
Return: ???
Note:	the installation check consists of testing for the string "DBLIBRARY"
	  2 bytes past the interrupt handler
SeeAlso: AH=08h"SQL"
Index:	installation check;MS SQL Server|installation check;Sybase DBLIBRARY
----------62---------------------------------
INT 62 - MPAUSE - ???
	details not yet avialable
Program: MPAUSE is a program by Manfred Michael which appeared in the German
	 _EGA-Handbuch_ from  m&t-Verlag
--------N-62---------------------------------
INT 62 - XFS v1.76 - FILTERED PACKET DRIVER API
Program: XFS is a shareware Network File System client by Robert Juhasz
Desc:	XFS requires a packet driver to operate.  Since it does redirections,
	  etc., it provides its own packet driver entry point, changing the
	  signature string of the original packet driver to "XKT DRVR" so that
	  it will no longer be found by the packet driver installation check
Range:	INT 61 to INT 66, selected by scanning for two consecutive free
	  vectors and hooking the second
Note:	the installation check for this vector is the same as that for the
	  packet driver specification: scan for the signature string "PKT DRVR"
	  three bytes past the interrupt handler
SeeAlso: INT 60"Packet Driver Specification",INT 61"XFS"
----------62---------------------------------
INT 62 - PC-DRAFT - PRIMARY DISPLAY DRIVER
	???
Return: ???
Program: PC-DRAFT is a powerful CAD environment by rhv.
SeeAlso: INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
--------N-6200-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET PHYSICAL HARDWARE ADDRESS
	AH = 00h
	DS:DX -> 6-byte buffer for address
Return: AX = length of hardware address???
Range:	INT 4C to INT FB, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=01h"ETHDEV",AH=04h"ETHDEV",AH=09h"ETHDEV",AH=0Eh"ETHDEV"
SeeAlso: AH=14h"ETHDEV",AH=18h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
--------V-620000-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCATE" - CREATE VIRTUAL VIDEO PAGE
	AX = 0000h
	BX = page number (0000h-003Fh)
Return: AX = status (0000h,0001h,0007h,0008h) (see #3144)
Program: FGDRIVER is the external video driver for the shareware
	  Fastgraph/Light by Ted Gruber Software
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	The amount of memory required by the virtual video page depends on the
	  current video mode
	The installation check consists of testing for the signature "FG" ten
	  bytes beyond the start of the interrupt handler
SeeAlso: AX=0001h,AX=0002h,AX=0003h,AX=0038h
Index:	installation check;Fastgraph/Light

(Table 3144)
Values for FGDRIVER status:
 0000h	successful
 0001h	specified page is a physical or logical page
 0007h	virtual page created/released, but memory control blocks corrupted
 0008h	not enough memory
 0009h	attempt to free a page which was never created
 FFFCh	insufficient memory
 FFFDh	page already created, or exists as physical or virtual page
 FFFEh	invalid page number
 FFFFh	memory manager not initialized
SeeAlso: #3145

(Table 3145)
Values for FGDRIVER functions (by driver version):
Name		v1.10	v3.03	v4.02
 FG_ALLOCATE	0042h	0000h	0000h
 FG_ALLOCCMS	009Dh	0001h	0001h
 FG_ALLOCEMS	009Eh	0002h	0002h
 FG_ALLOCXMS	009Fh	0003h	0003h
 FG_AUTOMODE	0004h	0004h	0004h
 FG_BESTMODE	0003h	0005h	0005h
 FG_BOX		00A2h	0006h	0006h
 FG_BOXDEPTH	00A3h	0007h	0007h
 FG_BOXX	 --	0008h	0008h
 FG_BUTTON	0078h	0009h	0009h
 FG_CAPSLOCK	0070h	000Ah	000Ah
 FG_CHGATTR	0035h	000Bh	000Bh
 FG_CHGTEXT	0036h	000Ch	000Ch
 FG_CIRCLE	0030h	000Dh	000Dh
 FG_CIRCLEF	 --	000Eh	000Eh
 FG_CLIPMAP	 --	 --	000Fh
 FG_CLIPMASK	0052h	000Fh	0010h
 FG_CLPIMAGE	004Ah	0010h	0011h
 FG_CLPRECT	002Bh	0011h	0012h
 FG_COLORS	 --	 --	0013h
 FG_COPYPAGE	005Fh	0012h	0014h
 FG_CURSOR	0007h	0013h	0015h
 FG_DASH	0027h	0014h	0016h
 FG_DASHREL	0028h	0015h	0017h
 FG_DEFCOLOR	0014h	0016h	0018h
 FG_DEFPAGES	 --	0017h	0019h
 FG_DISPFILE	004Fh	0018h	001Ah
 FG_DISPLAY	004Dh	0019h	001Bh
 FG_DISPLAYP	004Eh	001Ah	001Ch
 FG_DISPPCX	0060h	 --	 --
 FG_DRAW	0025h	001Bh	001Dh
 FG_DRAWMAP	0047h	001Ch	001Eh
 FG_DRAWMASK	0051h	001Dh	001Fh
 FG_DRAWREL	0026h	001Eh	0020h
 FG_DRAWRELX	 --	001Fh	0021h
 FG_DRAWX	 --	0020h	0022h
 FG_DRECT	002Ch	0021h	0023h
 FG_DRWIMAGE	0049h	0022h	0024h
 FG_EGACHECK	0005h	0023h	0025h
 FG_ELLIPSE	002Dh	0024h	0026h
 FG_ELLIPSEF	 --	0025h	0027h
 FG_ERASE	001Eh	0026h	0028h
 FG_FADEIN	0064h	0027h	0029h
 FG_FADEOUT	0065h	0028h	002Ah
 FG_FILLPAGE	 --	0029h	002Bh
 FG_FINDPAGE	 --	 --	002Ch
 FG_FLICDONE	 --	 --	002Dh
 FG_FLICHEAD	 --	 --	002Eh
 FG_FLICMODE	 --	 --	002Fh
 FG_FLICOPEN	 --	 --	0030h
 FG_FLICPLAY	 --	 --	0031h
 FG_FLICSIZE	 --	 --	0032h
 FG_FLICSKIP	 --	 --	0033h
 FG_FLIPMASK	0054h	002Ah	0034h
 FG_FLOOD	 --	002Bh	0035h
 FG_FLPIMAGE	004Ch	002Ch	0036h
 FG_FONTSIZE	 --	002Dh	0037h
 FG_FREEPAGE	0043h	002Eh	0038h
 FG_GETADDR	0044h	002Fh	0039h
 FG_GETATTR	0037h	0030h	003Ah
 FG_GETBANKS	 --	 --	003Bh
 FG_GETBLOCK	 --	0031h	003Ch
 FG_GETCHAR	0038h	0032h	003Dh
 FG_GETCLIP	 --	 --	003Eh
 FG_GETCLOCK	0099h	0033h	003Fh
 FG_GETCOLOR	0015h	0034h	0040h
 FG_GETDACS	00A4h	0035h	0041h
 FG_GETENTRY	 --	0036h	0042h
 FG_GETHPAGE	0040h	0037h	0043h
 FG_GETIMAGE	0048h	0038h	0044h
 FG_GETINDEX	0016h	0039h	0045h
 FG_GETKEY	006Eh	003Ah	0046h
 FG_GETLINES	0010h	003Bh	0047h
 FG_GETMAP	0046h	003Ch	0048h
 FG_GETMAXX	000Ah	003Dh	0049h
 FG_GETMAXY	000Bh	003Eh	004Ah
 FG_GETMODE	0000h	003Fh	004Bh
 FG_GETPAGE	003Ch	0040h	004Ch
 FG_GETPIXEL	0020h	0041h	004Dh
 FG_GETRGB	001Ch	0042h	004Eh
 FG_GETVIEW	 --	 --	004Fh
 FG_GETVPAGE	003Eh	0043h	0050h
 FG_GETXBOX	 --	 --	0051h
 FG_GETXJOY	0076h	0044h	0052h
 FG_GETXJUST	 --	 --	0053h
 FG_GETXPOS	0021h	0045h	0054h
 FG_GETYBOX	 --	 --	0055h
 FG_GETYJOY	0077h	0046h	0056h
 FG_GETYJUST	 --	 --	0057h
 FG_GETYPOS	0022h	0047h	0058h
 FG_HUSH	008Eh	0048h	0059h
 FG_HUSHNEXT	008Fh	0049h	005Ah
 FG_IMAGEBUF	 --	004Ah	005Bh
 FG_IMAGESIZ	0062h	004Bh	005Ch
 FG_INITEMS	00A0h	004Ch	005Dh
 FG_INITJOY	0075h	004Dh	005Eh
 FG_INITPM	 --	 --	005Fh??? (NOP in v4.02)
 FG_INITXMS	00A1h	004Eh	0060h
 FG_INSIDE	 --	004Fh	0061h
 FG_INTJOY	0079h	0050h	0062h
 FG_INTKEY	006Fh	0051h	0063h
 FG_INVERT	 --	 --	0064h
 FG_JUSTIFY	 --	0052h	0065h
 FG_KBINIT	 --	0053h	0066h
 FG_KBLAST	 --	 --	0067h
 FG_KBRESET	 --	 --	0068h
 FG_KBTEST	 --	0054h	0069h
 FG_LOADPCX	 --	 --	006Ah
 FG_LOCATE	0033h	0055h	006Bh
 FG_MAKEPCX	0061h	0057h	006Ch
 FG_MAKEPPR	 --	0058h	006Dh
 FG_MAKESPR	 --	0059h	006Eh
 FG_MAPRGB	001Dh	005Ah	006Fh
 FG_MEASURE	0098h	005Bh	0070h
 FG_MEMAVAIL	009Bh	005Ch	0071h
 FG_MEMORY	 --	005Dh	0072h
 FG_MOUSE256	 --	 --	0073h
 FG_MOUSEBUT	007Ch	005Eh	0074h
 FG_MOUSECUR	007Eh	005Fh	0075h
 FG_MOUSEFIN	 --	0060h	0076h
 FG_MOUSEINI	007Ah	0061h	0077h
 FG_MOUSELIM	0080h	0062h	0078h
 FG_MOUSEMOV	0081h	0063h	0079h
 FG_MOUSEPOS	007Dh	0064h	007Ah
 FG_MOUSEPTR	007Fh	0065h	007Bh
 FG_MOUSESPD	0082h	0066h	007Ch
 FG_MOUSEVIS	007Bh	0067h	007Dh
 FG_MOVE	0023h	0068h	007Eh
 FG_MOVEREL	0024h	0069h	007Fh
 FG_MUSIC	008Ch	006Ah	0080h
 FG_MUSICB	008Dh	006Bh	0081h
 FG_NUMLOCK	0072h	006Ch	0082h
 FG_PACK	 --	 --	0083h
 FG_PAGESIZE	 --	006Dh	0084h
 FG_PAINT	002Fh	006Eh	0085h
 FG_PALETTE	0017h	006Fh	0086h
 FG_PALETTES	0018h	0070h	0087h
 FG_PAN		0066h	0071h	0088h
 FG_PATTERN	0050h	0072h	0089h
 FG_PCXHEAD	 --	0073h	008Ah
 FG_PCXMODE	 --	0074h	008Bh
 FG_PCXPAL	 --	 --	008Ch
 FG_PCXRANGE	 --	 --	008Dh
 FG_PLAYING	0091h	0075h	008Eh
 FG_POINT	001Fh	0076h	008Fh
 FG_POINTX	 --	0077h	0090h
 FG_POLYEDGE	 --	 --	0091h
 FG_POLYFILL	 --	0078h	0092h
 FG_POLYGON	002Eh	0079h	0093h
 FG_POLYLINE	 --	007Ah	0094h
 FG_POLYOFF	 --	007Bh	0095h
 FG_PRINT	 --	007Ch	0096h
 FG_PRINTC	 --	 --	0097h
 FG_PUTBLOCK	 --	007Dh	0098h
 FG_PUTIMAGE	 --	007Eh	0099h
 FG_QUIET	0090h	007Fh	009Ah
 FG_RECT	002Ah	0080h	009Bh
 FG_RESET	0006h	0081h	009Ch
 FG_RESIZE	0045h	0082h	009Dh
 FG_RESTORE	005Bh	0083h	009Eh
 FG_RESUME	0092h	0084h	009Fh
 FG_REVIMAGE	004Bh	0085h	00A0h
 FG_REVMASK	0053h	0086h	00A1h
 FG_SAVE	 --	0087h	00A2h
 FG_SCALE	 --	 --	00A3h
 FG_SCRLOCK	0074h	0088h	00A4h
 FG_SCROLL	0067h	0089h	00A5h
 FG_SETATTR	0019h	008Ah	00A6h
 FG_SETBANKS	 --	 --	00A7h
 FG_SETCAPS	0071h	008Bh	00A8h
 FG_SETCLIP	0029h	008Ch	00A9h
 FG_SETCOLOR	001Ah	008Dh	00AAh
 FG_SETDACS	00A5h	008Eh	00ABh
 FG_SETENTRY	 --	008Fh	00ACh
 FG_SETFUNC	009Ch	0090h	00ADh
 FG_SETHPAGE	0041h	0091h	00AEh
 FG_SETLINES	0011h	0092h	00AFh
 FG_SETMODE	0001h	0093h	00B0h
 FG_SETNUM	0073h	0094h	00B1h
 FG_SETPAGE	003Dh	0095h	00B2h
 FG_SETRGB	001Bh	0096h	00B3h
 FG_SETVIEW	 --	 --	00B5h
 FG_SETVPAGE	003Fh	0098h	00B6h
 FG_SHEAR	 --	 --	00B7h
 FG_SHOWFLIC	 --	 --	00B8h
 FG_SHOWPCX	 --	009Ah	00B9h
 FG_SHOWPPR	 --	009Bh	00BAh
 FG_SHOWSPR	 --	009Ch	00BBh
 FG_SOUND	0088h	009Dh	00BCh
 FG_SOUNDS	0089h	009Eh	00BDh
 FG_SPLIT	 --	 --	00BEh
 FG_STALL	0097h	009Fh	00BFh
 FG_SUSPEND	0093h	00A0h	00C0h
 FG_SVGAINIT	 --	00A1h	00C1h
 FG_SVGASTAT	 --	00A2h	00C2h
 FG_SVGAVER	 --	00A3h	00C3h
 FG_TCDEFINE	 --	00A4h	00C4h
 FG_TCMASK	005Eh	00A5h	00C5h
 FG_TCXFER	005Dh	00A6h	00C6h
 FG_TESTMODE	0002h	00A7h	00C7h
 FG_TEXT	0032h	00A8h	00C8h
 FG_TEXTC	 --	 --	00C9h
 FG_TRANSFER	005Ch	00A9h	00CAh
 FG_UNPACK	 --	 --	00CBh
 FG_VBADDR	 --	 --	00CCh
 FG_VBALLOC	 --	 --	00CDh
 FG_VBCLOSE	 --	 --	00CEh
 FG_VBCOPY	 --	 --	00CFh
 FG_VBCUT	 --	 --	00D0h
 FG_VBDEFINE	 --	 --	00D1h
 FG_VBFREE	 --	 --	00D2h
 FG_VBHANDLE	 --	 --	00D3h
 FG_VBINIT	 --	 --	00D4h
 FG_VBOPEN	 --	 --	00D5h
 FG_VBPASTE	 --	 --	00D6h
 FG_VBTCCOPY	 --	 --	00D7h
 FG_VBTCXFER	 --	 --	00D8h
 FG_VBUNDEF	 --	 --	00D9h
 FG_VGASTATE	 --	 --	00DAh
 FG_VOICE	008Ah	00AAh	00DBh
 FG_VOICES	008Bh	00ABh	00DCh
 FG_WAITFOR	0096h	00ACh	00DDh
 FG_WAITKEY	006Dh	00ADh	00DEh
 FG_WAITVR	 --	00AEh	00DFh
 FG_WHERE	0034h	00AFh	00E0h
 FG_XALPHA	000Ch	00B0h	00E1h
 FG_XCONVERT	000Eh	00B1h	00E2h
 FG_XVIEW	 --	 --	00E3h
 FG_YALPHA	000Dh	00B2h	00E4h
 FG_YCONVERT	000Fh	00B3h	00E5h
 FG_YVIEW	 --	 --	00E6h
SeeAlso: #3144
--------V-620001-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCCMS" - CREATE LOGICAL VIDEO PAGE (CONV)
	AX = 0001h
	BX = page number (0001h-003Fh)
Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #3144)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	The only operation which is allowed on logical pages is "FG_COPYPAGE"
	  (see AX=0014h)
SeeAlso: AX=0000h,AX=0002h,AX=0003h,AX=0014h,AX=0038h
--------V-620002-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCEMS" - CREATE LOGICAL VIDEO PAGE (EMS)
	AX = 0002h
	BX = page number (0001h-003Fh)
Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #3144)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	You must first call "FG_INITEMS" (see AX=005Dh) before using this
	  function
	The only operation which is allowed on logical pages is "FG_COPYPAGE"
	  (see AX=0014h)
SeeAlso: AX=0000h,AX=0001h,AX=0003h,AX=0014h,AX=0038h,AX=005Dh
--------V-620003-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_ALLOCXMS" - CREATE LOGICAL VIDEO PAGE (XMS)
	AX = 0003h
	BX = page number (0001h-003Fh)
Return: AX = status (0000h,FFFCh,FFFDh,FFFEh) (see #3144)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	You must first call "FG_INITXMS" (see AX=0060h) before using this
	  function
	The only operation which is allowed on logical pages is "FG_COPYPAGE"
	  (see AX=0014h)
SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0014h,AX=0038h,AX=0060h
--------V-620004-----------------------------
INT 62 u - FGDRIVER 1.10,3.03+ - "FG_AUTOMODE" - GET VIDEO MODE W/MOST FEATURES
	AX = 0004h
Return: AX = proposed video mode number (see #3171 at AX=00B0h)
Program: FGDRIVER is the external video driver for the shareware
	  Fastgraph/Light by Ted Gruber Software
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=0005h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
--------V-620005-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_BESTMODE" - GET BEST VIDEO MODE GIVEN RESOLUTN
	AX = 0005h
	BX = horizontal resolution
	CX = vertical resolution
	DX = number of video pages required (both physical and virtual)
Return: AX = proposed video mode number or FFFFh if no matching video mode
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	You must first call "FG_SVGAINIT" (see AX=00C1h) to get SVGA video
	  modes
SeeAlso: AX=0004h,AX=004Bh,AX=00B0h,AX=00C1h,AX=00C7h
--------V-620006-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_BOX" - DRAW UNFILLED RECTANGLE
	AX = 0006h
	BX = left column
	CX = right column
	DX = top row
	SI = bottom row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	The rectangle is drawn in screen space, respecting the clipping region,
	  with edges of the width specified with "FG_BOXDEPTH" (see AX=0007h)
	  (default = 1 is set by "FG_SETMODE")
	This function has no effect in text modes
SeeAlso: AX=0007h,AX=0008h,AX=000Ch,AX=0016h,AX=001Dh,AX=0026h,AX=0051h
SeeAlso: AX=0055h,AX=008Fh
--------V-620007-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_BOXDEPTH" - SET RECTANGLE BORDER WIDTH
	AX = 0007h
	BX = width of left and right edges in pixels (> 0)
	CX = width of top and bottom edges in pixels (> 0)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=0006h,AX=0008h,AX=0051h,AX=0055h
--------V-620008-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_BOXX" - XOR HOLLOW RECTANGLE
	AX = 0008h
	BX = left column
	CX = right column
	DX = top row
	SI = bottom row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	The rectangle is XORed into screen space, respecting the clipping
	  region, with edges of the width specified with "FG_BOXDEPTH"
	  (see AX=0007h) (default = 1 is set by "FG_SETMODE")
	This function has no effect in text modes
SeeAlso: AX=0006h,AX=0007h,AX=0021h,AX=0022h,AX=0051h,AX=0055h,AX=0090h
--------V-620009-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_BUTTON" - GET JOYSTICK BUTTON STATE
	AX = 0009h
	BX = joystick number (0001h or 0002h)
Return: AX = button states
	    bit 0: top button pressed
	    bit 1: bottom button pressed
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=0052h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
--------V-62000A-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_CAPSLOCK" - GET STATE OF CAPSLOCK KEY
	AX = 000Ah
Return: AX = CapsLock state (0000h off, 0001h on)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=0082h,AX=00A4h,AX=00A8h,AX=00B1h
--------V-62000B-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_CHGATTR" - APPLY CURRENT TEXT ATTRIB TO CHARS
	AX = 000Bh
	BX = number of characters to recolor
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in graphics modes
	Starting at the current text cursor position, the specified number of
	  characters have their attributes to the current text attribute
SeeAlso: AX=000Ch,AX=003Ah,AX=00A6h
--------V-62000C-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_CHGTEXT" - DISPLAY STRING AT CURSOR POSITION
	AX = 000Ch
	CX = length of string
	ES:BX -> string to be displayed
Return: text cursor updated
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in graphics modes
SeeAlso: AX=000Bh,AX=0096h
--------V-62000D-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLE" - DRAW UNFILLED CIRCLE
	AX = 000Dh
	BX = radius in horizontal screen space units (> 0)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	The circle is drawn in screen space, centered at the current graphics
	  cursor position
	This call is ignored in text modes
SeeAlso: AX=0006h,AX=0008h,AX=000Eh,AX=0026h,AX=0093h
--------V-62000E-----------------------------
INT 62 u - FGDRIVER v3.03+ - "FG_CIRCLEF" - DRAW FILLED CIRCLE
	AX = 000Eh
	BX = radius in horizontal screen space units (> 0)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=0008h,AX=000Dh,AX=0027h,AX=0092h
--------V-62000F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_CLIPMAP" - DISPLAY CLIPPED IMAGE (MODE-INDEP)
	AX = 000Fh
	ES:BX -> bitmap
	CX = width
	DX = height
Desc:	display a mode-independent bitmap, showing only the portion within
	  the current clipping limits
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes and in native EGA and VGA graphics
	  modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=0086h,AX=00A9h,AX=00C5h
--------V-620010-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_CLIPMASK" - DISPLAY CLIPPED IMAGE (MASKING MAP)
	AX = 0010h
	ES:BX -> array containing image stored as a masking map (see #3146)
	CX = number of pixel runs in masking map
	DX = width of masking map in pixels
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes and in native EGA and VGA graphics
	  modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
SeeAlso: AX=0011h,AX=001Fh,AX=0034h,AX=00A1h,AX=00A9h,AX=00C5h
--------V-620011-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_CLPIMAGE" - DISPLAY CLIPPED IMAGE (BITMAP)
	AX = 0011h
	ES:BX -> mode-specific bitmap
	CX = width of bit map in bytes
	DX = height of bit map in pixel rows
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
	The current clipping region is used, extended to a byte boundary
SeeAlso: AX=0010h,AX=0024h,AX=0036h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
--------V-620012-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_CLPRECT" - DRAW FILLED RECTANGLE IN SCREEN SPCE
	AX = 0012h
	BX = screen space column of left edge
	CX = screen space column of right edge
	DX = screen space row of top edge
	SI = screen space row of bottom edge
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
SeeAlso: AX=0006h,AX=0010h,AX=0011h,AX=0023h,AX=009Bh,AX=00A9h
--------V-620013-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_COLORS" - GET SIMULTANEOUSLY-AVAILABLE COLORS
	AX = 0013h
Return: AX = number of colors available at one time
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
--------V-620014-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_COPYPAGE" - TRANSFER VIDEO PAGE CONTENTS
	AX = 0014h
	BX = source page number (0000h-003Fh)
	CX = destination page number (0000h-003Fh)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	If both source and destination pages are logical pages, they must both
	  be located in the same type (conventional, EMS, XMS) of memory
SeeAlso: AX=009Eh,AX=00A2h,AX=00C6h,AX=00CAh
--------V-620015-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_CURSOR" - SPECIFY WHETHER TEXT CURSR IS VISIBLE
	AX = 0015h
	BX = new state (0000h invisible, 0001h visible)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
SeeAlso: AX=000Ch,AX=0054h,AX=0058h,AX=006Bh,AX=0075h,AX=0079h,AX=007Eh
SeeAlso: AX=00E0h
--------V-620016-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DASH" - DRAW DASHED LINE TO ABSOLUTE POSITION
	AX = 0016h
	BX = endpoint column
	CX = endpoint row
	DX = dash pattern (set bits cause drawn pixels)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
	The starting point is the current graphics cursor position; the cursor
	  position is updated
SeeAlso: AX=0017h,AX=001Dh,AX=008Fh
--------V-620017-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DASHREL" - DRAW DASHED LINE TO RELATVE POSITION
	AX = 0017h
	BX = endpoint column offset
	CX = endpoint row offset
	DX = dash pattern (set bits cause drawn pixels)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
	The starting point is the current graphics cursor position; the cursor
	  position is updated
SeeAlso: AX=0016h,AX=001Eh,AX=008Fh
--------V-620018-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DEFCOLOR" - ASSIGN COLOR VALUE TO COLOR INDEX
	AX = 0018h
	BX = color index (0000h-00FFh)
	CX = new color value (0 to maximum color value for current video mode)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes and 256-color graphics modes
SeeAlso: AX=0040h,AX=0045h,AX=00AAh
--------V-620019-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DEFPAGES" - DEF SRC/DEST PAGES FOR BLOCK XFERS
	AX = 0019h
	BX = source page
	CX = destination page
Desc:	specify the source and destination SVGA banks for block transfers on
	  extended video pages
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This function is ignored if the video controller does not support
	  extended pages or the current video mode does not allow them
SeeAlso: AX=0014h,AX=00CAh
--------V-62001A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DISPFILE" - DISPLAY STORED IMAGE
	AX = 001Ah
	ES:BX -> ASCIZ filename
	CX = image width in pixels (> 0)
	DX = image format
	    0000h Fastgraph standard pixel run format
	    0001h packed pixel run format
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
	The image is displayed with its lower left corner at the current
	  graphics cursor position
SeeAlso: AX=001Bh,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
--------V-62001B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DISPLAY" - DISPLAY IMAGE (STD PIXEL RUN FORMAT)
	AX = 001Bh
	ES:BX -> pixel run map (pairs of bytes: color index, count)
	CX = number of pixel runs to display
	DX = width of image in pixels (> 0)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
	The image is displayed with its lower left corner at the current
	  graphics cursor position
SeeAlso: AX=001Ah,AX=001Ch,AX=00B9h,AX=00BAh,AX=00BBh
--------V-62001C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DISPLAYP" - DISPLAY IMAGE (PACKED PIXEL RUNS)
	AX = 001Ch
	ES:BX -> pixel run map (trios of bytes: colors, count1, count2; colors
		  contains the color for the first run in its high nybble and
		  the color for the second run in its low nybble)
	CX = number of pixel runs to display
	DX = width of image in pixels (> 0)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
	The image is displayed with its lower left corner at the current
	  graphics cursor position
SeeAlso: AX=001Ah,AX=001Bh,AX=00B9h,AX=00BAh,AX=00BBh
--------V-62001D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRAW" - DRAW SOLID LINE TO ABSOLUTE POSITION
	AX = 001Dh
	BX = endpoint column
	CX = endpoint row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes
	The starting point is the current graphics cursor position; the cursor
	  position is updated
SeeAlso: AX=0016h,AX=0020h,AX=0021h,AX=0026h,AX=008Fh,AX=0090h
--------V-62001E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRAWMAP" - DISPLAY MODE-INDEPENDENT BIT MAP
	AX = 001Eh
	ES:BX -> bitmap (each set bit is pixel drawn in current color)
	CX = width of bitmap in bytes
	DX = height of bitmap in pixel rows
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
--------V-62001F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRAWMASK" - DISPLAY IMAGE (MASKING MAP)
	AX = 001Fh
	ES:BX -> array containing image stored as a masking map (see #3146)
	CX = number of pixel runs in masking map
	DX = width of masking map in pixels
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	This call is ignored in text modes and in native EGA and VGA graphics
	  modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
SeeAlso: AX=0010h,AX=001Fh,AX=00A1h,AX=00A9h

Format of FGDRIVER masking map:
Offset	Size	Description	(Table 3146)
 00h	BYTE	length of first "protect" run (pixels remain unchanged)
 01h	BYTE	length of first "zero" run (pixels set to background color)
 02h	BYTE	length of second "protect" run
 03h	BYTE	length of second "zero" run
	...
--------V-620020-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRAWREL" - DRAW SOLID LINE TO RELATIVE POSITION
	AX = 0020h
	BX = endpoint column offset
	CX = endpoint row offset
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The starting point is the current graphics cursor position; the cursor
	  position is updated
SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0021h,AX=0026h,AX=008Fh
--------V-620021-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRAWRELX" - XOR SOLID LINE TO RELATIVE POSITION
	AX = 0021h
	BX = endpoint column offset
	CX = endpoint row offset
Desc:	draw a solid line, XORing each pixel onto the screen
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The starting point is the current graphics cursor position; the cursor
	  position is updated
SeeAlso: AX=0006h,AX=000Dh,AX=001Dh,AX=0020h,AX=0026h,AX=0090h
--------V-620022-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRAWX" - XOR SOLID LINE TO ABSOLUTE POSITION
	AX = 0022h
	BX = endpoint column
	CX = endpoint row
Desc:	draw a solid line, XORing each pixel onto the screen
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The starting point is the current graphics cursor position; the cursor
	  position is updated
SeeAlso: AX=001Dh,AX=0021h,AX=008Fh
--------V-620023-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRECT" - DRAW DITHERED RECTANGLE IN SCRN SPACE
	AX = 0023h
	BX = screen space column of left edge
	CX = screen space column of right edge
	DX = screen space row of top edge
	SI = screen space row of bottom edge
	ES:DI -> dithering matrix (video-mode dependent)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=0006h,AX=0008h,AX=0013h,AX=003Ch,AX=0089h,AX=009Bh
--------V-620024-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_DRWIMAGE" - DISPLAY BITMAPPED IMAGE
	AX = 0024h
	ES:BX -> video mode-specific bitmap
	CX = width of bitmap in bytes
	DX = height of bitmap in pixel rows
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The image will be drawn with its lower left corner at the current
	  cursor position (either text or graphics)
SeeAlso: AX=0011h,AX=0036h,AX=0044h,AX=0099h,AX=00A0h
--------V-620025-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_EGACHECK" - GET INFO ABOUT ACTIVE EGA DISPLAY
	AX = 0025h
Return: AX = number of 64K banks of video memory, or 0000h if no EGA or EGA
	      without an Enhanced Color Display
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00C2h
--------V-620026-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSE" - DRAW UNFILLED ELLIPSE IN SCRN SPACE
	AX = 0026h
	BX = horizontal semi-axis length in screen space units
	CX = vertical semi-axis length in screen space units
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The ellipse is centered at the current graphics cursor position
SeeAlso: AX=0006h,AX=000Dh,AX=0027h,AX=008Fh,AX=0093h
--------V-620027-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_ELLIPSEF" - DRAW FILLED ELLIPSE IN SCREEN SPACE
	AX = 0027h
	BX = horizontal semi-axis length in screen space units
	CX = vertical semi-axis length in screen space units
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The ellipse is centered at the current graphics cursor position
SeeAlso: AX=0006h,AX=000Eh,AX=0026h,AX=008Fh,AX=0092h
--------V-620028-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_ERASE" - CLEAR THE ACTIVE VIDEO PAGE
	AX = 0028h
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function sets each pixel to 0 in graphics modes, each character
	  cell to a blank with a gray foreground attribute in text modes
SeeAlso: AX=0029h,AX=002Bh,AX=0035h
--------V-620029-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FADEIN" - FADE IN HIDDEN PAGE
	AX = 0029h
	BX = delay (0000h = fastest possible fade-in)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The current hidden page is copied to the current visible page in small
	  random sections to produce a fade-in effect
	This call is ignored in text modes
SeeAlso: AX=0028h,AX=002Ah,AX=002Bh
--------V-62002A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FADEOUT" - FADE OUT TO CURRENT COLOR
	AX = 002Ah
	BX = delay (0000h = fastest possible fade-out)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The current visible page is filled with pixels of the current color in
	  small random sections to give a fade-out effect
	This call is ignored in text modes
SeeAlso: AX=0028h,AX=0029h,AX=002Bh
--------V-62002B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FILLPAGE" - FILL THE ACTIVE VIDEO PAGE
	AX = 002Bh
Desc:	fill the active video page with pixels of the current color (graphics
	  modes) or the block character DBh with the current character
	  attributes (text modes)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0028h,AX=0029h,AX=002Ah
--------V-62002C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FINDPAGE" - FIND AVAILABLE VIRTUAL/LOGICAL PAGE
	AX = 002Ch
Return: AX = first available page number (virtual or logical page)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0028h
--------V-62002D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLICDONE" - CLOSE FLIC FILE
	AX = 002Dh
	ES:BX -> context descriptor (see AX=0030h)
Return: nothing
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=002Eh,AX=0030h
--------V-62002E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLICHEAD" - READ FLI/FLC FILE HEADER
	AX = 002Eh
	ES:BX -> FLICHEAD variable pointer record (see #3148)
Return: AX = status (see #3147)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=002Dh,AX=002Fh,AX=0030h,AX=0032h

(Table 3147)
Values for FGDRIVER FLIC processing status:
 0000h	successful
 FFFEh	not an FLI or FLC file
 FFFFh	file not found

Format of FGDRIVER FLICHEAD variable pointer record:
Offset	Size	Description	(Table 3148)
 00h	WORD	segment of ASCIZ FLI/FLC file name
 02h	WORD	offset of ASCIZ FLI/FLC file name
 04h	WORD	segment of buffer for 128-byte file header
 06h	WORD	offset of buffer for 128-byte file header
--------V-62002F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLICMODE" - GET OPTIMAL VIDEO MODE FOR FLI/FLC
	AX = 002Fh
	ES:BX -> 128-byte buffer containing FLI/FLC file header (see AX=002Eh)
Return: AX = optimal 256-color graphics mode number
	    FFFFh if invalid file header
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=002Eh,AX=0030h
--------V-620030-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLICOPEN" - OPEN FLI/FLC FILE
	AX = 0030h
	ES:BX -> FLICOPEN variable pointer record (see #3149)
Return: AX = status (see #3147)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=002Dh,AX=002Eh,AX=002Fh,AX=0030h,AX=0031h,AX=0032h

Format of FGDRIVER FLICOPEN variable pointer record:
Offset	Size	Description	(Table 3149)
 00h	WORD	segment of ASCIZ FLI/FLC file name
 02h	WORD	offset of ASCIZ FLI/FLC file name
 04h	WORD	segment of buffer for 16-byte file context descriptor
 06h	WORD	offset of buffer for 16-byte file context descriptor
--------V-620031-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLICPLAY" - DISPLAY NEXT FRAME(S) IN FLI/FLC
	AX = 0031h
	ES:BX -> context descriptor (see AX=0030h)
	CX = number of frames to display starting at current frame
	DX = control flags (see #3150)
Return: AX = number of frames displayed
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0030h,AX=0033h,AX=00B8h

Bitfields for FGDRIVER FLI/FLC control flags:
Bit(s)	Description	(Table 3150)
 0	skip inter-frame delay specified in FLI/FLC header
 1	display relative to current graphics position
 2	dipslay image from the FG_IMAGEBUF buffer instead of file
--------V-620032-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLICSIZE" - GET IMAGE SIZE
	AX = 0032h
	ES:BX -> FLICSIZE variable pointer record (see #3151)
Return: image height/width buffers updated; height is set to FFFFh on error
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=002Eh,AX=0030h

Format of FGDRIVER FLICSIZE variable pointer record:
Offset	Size	Description	(Table 3151)
 00h	WORD	segment of buffer for 128-byte FLI/FLC file header
 02h	WORD	offset of buffer for 128-byte FLI/FLC file header
 04h	WORD	segment of WORD buffer for image width in pixels
 06h	WORD	offset of WORD buffer for image width in pixels
 08h	WORD	segment of WORD buffer for image height in pixels
 0Ah	WORD	offset of WORD buffer for image height in pixels
--------V-620033-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLICSKIP" - SKIP FRAME(S) IN FLI/FLC FILE
	AX = 0033h
	ES:BX -> context descriptor (see AX=0030h)
	CX = number of frames to skip
	    reset to first frame if skip count is negative
Return: AX = number of frames skipped (may be less than requested if EOF)
	    0000h if resetting to first frame
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0030h,AX=0031h
--------V-620034-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLIPMASK" - DISPLAY INV CLIPPED IMAGE (MASKMAP)
	AX = 0034h
	ES:BX -> array containing image stored as a masking map (see #3146)
	CX = number of pixel runs in masking map
	DX = width of masking map in pixels
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes and in native EGA and VGA graphics
	  modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
SeeAlso: AX=000Fh,AX=001Fh,AX=0036h,AX=00A1h,AX=00A5h,AX=00C5h
--------V-620035-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLOOD" - FLOOD FILL ARBITRARY CLOSED REGION
	AX = 0035h
	BX = starting column
	CX = starting row
Desc:	fill the bounded region around the specified point (respecting clipping
	  region) with the currrent color
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is ignored in text modes
SeeAlso: AX=0028h,AX=0085h
--------V-620036-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FLPIMAGE" - DISPLAY INV CLIPPED IMAGE (BITMAP)
	AX = 0036h
	ES:BX -> mode-specific bitmap
	CX = width of bit map in bytes
	DX = height of bit map in pixel rows
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
	The current clipping region is used, extended to a byte boundary
SeeAlso: AX=0011h,AX=0024h,AX=0034h,AX=0044h,AX=00A0h,AX=00A9h,AX=00B9h
--------V-620037-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FONTSIZE" - SPECIFY FONT SIZE FOR TEXT OUTPUT
	AX = 0037h
	BX = desired character height in scan lines (8, 14, 16)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored if the current mode is not a VGA or SVGA graphics
	  mode, or the specified character height is not 8, 14, or 16
SeeAlso: AX=0096h
--------V-620038-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_FREEPAGE" - FREE VIRTUAL OR LOGICAL VIDEO PAGE
	AX = 0038h
	BX = page number (0000h-003Fh)
Return: AX = status (0000h,0001h,0007h,0009h) (see #3144)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=0003h
--------V-620039-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETADDR" - GET SEGMENT OF ACTIVE VIDEO PAGE
	AX = 0039h
Return: AX = segment of active video page
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0042h,AX=00ACh
--------V-62003A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETATTR" - GET CHARACTER ATTRIB FOR POSITION
	AX = 003Ah
	BX = row
	CX = column
Return: AX = character attribute at specified location on active video page
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in graphics modes
SeeAlso: AX=000Bh,AX=003Dh,AX=0040h,AX=00A6h
--------V-62003B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETBANKS" - GET SVGA READ AND WRITE BANKS
	AX = 003Bh
	ES:BX -> GETBANKS variable pointer record (see #3152)
Return: nothing
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00A7h

Format of FGDRIVER GETBANKS variable pointer record:
Offset	Size	Description	(Table 3152)
 00h	WORD	segment of WORD buffer for read bank number
 02h	WORD	offset of WORD buffer for read bank number
 04h	WORD	segment of WORD buffer for write bank number
 06h	WORD	offset of WORD buffer for write bank number
--------V-62003C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETBLOCK" - GRAB RECTANGLE OF DISPLAY
	AX = 003Ch
	ES:BX -> buffer for screen contents
	CX = leftmost column
	DX = rightmost column
	SI = top row
	DI = bottom row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	In text modes, coordinates are character positions; in graphics modes,
	  they are defined in screen space, and the left and right edges are
	  adjusted to a byte boundary if necessary
	Use "FG_IMAGESIZ" (see AX=005Ch) to determine the required buffer size
SeeAlso: AX=0044h,AX=005Ch,AX=0098h
--------V-62003D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETCHAR" - GET CHARACTER FOR SCREEN POSITION
	AX = 003Dh
	BX = row
	CX = column
Return: AX = character at specified location on active video page
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in graphics modes
SeeAlso: AX=000Bh,AX=003Ah,AX=0096h,AX=00A6h,AX=00C8h
--------V-62003E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETCLIP" - GET CLIPPING REGION IN SCREEN SPACE
	AX = 003Eh
	ES:BX -> GETCLIP variable pointer record (see #3153)
Return: variables specifed by GETCLIP structure updated
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00CAh

Format of FGDRIVER GETCLIP variable pointer record:
Offset	Size	Description	(Table 3153)
 00h	WORD	segment of WORD buffer for minimum X coordinate (left edge)
 02h	WORD	offset of WORD buffer for minimum X coordinate (left edge)
 04h	WORD	segment of WORD buffer for maximum X coordinate (right edge)
 06h	WORD	offset of WORD buffer for maximum X coordinate (right edge)
 08h	WORD	segment of WORD buffer for minimum Y coordinate (top edge)
 0Ah	WORD	offset of WORD buffer for minimum Y coordinate (top edge)
 0Ch	WORD	segment of WORD buffer for maximum Y coordinate (bottom edge)
 0Eh	WORD	offset of WORD buffer for maximum Y coordinate (bottom edge)
--------V-62003F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETCLOCK" - GET CLOCK TICKS SINCE MIDNIGHT
	AX = 003Fh
Return: DX:AX = number of clock ticks since midnight
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: INT 1A/AH=00h
--------V-620040-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETCOLOR" - GET CURRENT TEXT ATTRIBUTE
	AX = 0040h
Return: AX = current text attribute or color index (graphics modes)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Bh,AX=003Ah,AX=00A6h
--------V-620041-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETDACS" - GET VIDEO DAC CONTENTS
	AX = 0041h
	CX = number of DAC registers to return (0001h to 0100h)
	DX = starting DAC register number (0000h to 00FFh)
	ES:BX -> buffer for DAC red/green/blue triples
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The register number wraps back to zero after FFh
SeeAlso: AX=004Eh,AX=0086h,AX=00ABh
--------V-620042-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETENTRY" - GET PAGE TYPE AND ADDRESS
	AX = 0042h
	ES:BX -> variable pointer record (see #3154)
	CX = page number (00h-3Fh)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	Page addresses are segments for pages stored in conventional memory
	  (including physical and virtual pages), and EMS or XMS handles for
	  pages stored in EMS or XMS
SeeAlso: AX=0000h,AX=00ACh

Format of FGDRIVER GETENTRY variable pointer record:
Offset	Size	Description	(Table 3154)
 00h	WORD	segment of WORD buffer for page address
 02h	WORD	offset of WORD buffer for page address
 04h	WORD	segment of WORD buffer for page type (se #3155)
 06h	WORD	offset of WORD buffer for page type

(Table 3155)
Values for FGDRIVER page type:
 0000h	unallocated
 0001h	physical
 0002h	virtual
 0003h	logical page, stored in expanded memory (EMS)
 0004h	logical page, stored in extended memory (XMS)
 0005h	logical page, stored in conventional memory
--------V-620043-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETHPAGE" - GET CURRENT HIDDEN VIDEO PAGE NUM
	AX = 0043h
Return: AX = current hidden video page number (0000h-003Fh)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=004Ch,AX=0050h,AX=00AEh
--------V-620044-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETIMAGE" - STORE IMAGE AS BITMAP
	AX = 0044h
	ES:BX -> buffer for video mode-specific bitmap
	CX = width of bitmap in bytes
	DX = height of bitmap in pixel rows
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0099h,AX=00A0h
--------V-620045-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETINDEX" - GET COLOR VALUE FOR COLOR INDEX
	AX = 0045h
	BX = color index (0000h to 00FFh)
Return: AX = color value for specified color index
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call returns the value passed to it in text and 256-color
	  graphics modes
SeeAlso: AX=0018h,AX=0040h
--------V-620046-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETKEY" - GET NEXT KEYSTROKE
	AX = 0046h
	ES:BX -> variable pointer record (see #3156)
Return: (after next keystroke if no typeahead) variables updated
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Ah,AX=0063h,AX=0069h,AX=00DEh,INT 16/AH=00h

Format of FGDRIVER GETKEY variable pointer record:
Offset	Size	Description	(Table 3156)
 00h	WORD	segment of BYTE buffer for ASCII keycode
 02h	WORD	offset of BYTE buffer for ASCII keycode
 04h	WORD	segment of BYTE buffer for extended keycode
 06h	WORD	offset of BYTE buffer for extended keycode
--------V-620047-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETLINES" - GET TEXT ROWS FOR CURR VIDEO MODE
	AX = 0047h
Return: AX = number of text rows on screen in current video mode
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00AFh,AX=00C2h
--------V-620048-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETMAP" - STORE IMAGE AS MODE-INDEPENDNT BITMAP
	AX = 0048h
	ES:BX -> buffer for video mode-independent bitmap
	CX = width of bitmap in bytes
	DX = height of bitmap in pixel rows
Return: each bit in bitmap is set if corresponding pixel is of the current
	  color, cleared otherwise
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=0011h,AX=001Eh,AX=0024h
--------V-620049-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETMAXX" - GET MAXIMUM COLUMN IN SCREEN SPACE
	AX = 0049h
Return: AX = maximum X coordinate in screen space
	    (or character space if in text mode)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=004Ah,AX=00C1h
--------V-62004A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETMAXY" - GET MAXIMUM ROW IN SCREEN SPACE
	AX = 004Ah
Return: AX = maximum Y coordinate in screen space
		(or character space if in text mode)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0049h,AX=00C1h
--------V-62004B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETMODE" - GET CURRENT VIDEO MODE NUMBER
	AX = 004Bh
	ES:BX -> WORD ???
Return: AX = current video mode number
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00B0h
--------V-62004C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETPAGE" - GET ACTIVE VIDEO PAGE NUMBER
	AX = 004Ch
Return: AX = active video page (0000h-003Fh)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=00B2h
--------V-62004D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETPIXEL" - GET COLOR OF SPECIFIED PIXEL
	AX = 004Dh
	BX = column in screen space
	CX = row in screen space
Return: AX = color value of pixel (0 to num_colors-1)
	    0000h in text modes
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=003Ah,AX=003Dh,AX=008Fh,AX=0090h
--------V-62004E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETRGB" - GET VIDEO DAC REGISTER CONTENTS
	AX = 004Eh
	ES:BX -> variable pointer record (see #3157)
	CX = DAC register number
Return: variables updated
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes and CGA/EGA video modes (since
	  they do not use DAC registers)
SeeAlso: AX=0041h,AX=0086h,AX=00ABh

Format of FGDRIVER GETRGB variable pointer record:
Offset	Size	Description	(Table 3157)
 00h	WORD	segment of WORD buffer for red component of DAC register
 02h	WORD	offset of WORD buffer for red component
 04h	WORD	segment of WORD buffer for green component of DAC register
 06h	WORD	offset of WORD buffer for green component
 08h	WORD	segment of WORD buffer for blue component of DAC register
 0Ah	WORD	offset of WORD buffer for blue component
--------V-62004F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETVIEW" - GET VIEWPORT EXTREME LIMITS
	AX = 004Fh
	ES:BX -> variable pointer record (see #3158)
Return: indicated variables updated
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00B5h

Format of FGDRIVER GETVIEW variable pointer record:
Offset	Size	Description	(Table 3158)
 00h	WORD	segment of WORD buffer for viewport left edge (viewport units)
 02h	WORD	offset of WORD buffer for viewport left edge (viewport units)
 04h	WORD	segment of WORD buffer for viewport right edge (viewport units)
 06h	WORD	offset of WORD buffer for viewport right edge (viewport units)
 08h	WORD	segment of WORD buffer for viewport top edge (viewport units)
 0Ah	WORD	offset of WORD buffer for viewport top edge (viewport units)
 0Ch	WORD	segment of WORD buffer for viewport bottom edge (viewp. units)
 0Eh	WORD	offset of WORD buffer for viewport bottom edge (viewp. units)
 10h	WORD	segment of WORD buffer for viewport left edge (screen space)
 12h	WORD	offset of WORD buffer for viewport left edge (screen space)
 14h	WORD	segment of WORD buffer for viewport right edge (screen space)
 16h	WORD	offset of WORD buffer for viewport right edge (screen space)
 18h	WORD	segment of WORD buffer for viewport top edge (screen space)
 1Ah	WORD	offset of WORD buffer for viewport top edge (screen space)
 1Ch	WORD	segment of WORD buffer for viewport bottom edge (screen space)
 1Eh	WORD	offset of WORD buffer for viewport bottom edge (screen space)
--------V-620050-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETVPAGE" - GET VISIBLE VIDEO PAGE NUMBER
	AX = 0050h
Return: AX = visible video page (0000h-003Fh)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0043h,AX=004Ch,AX=00B6h
--------V-620051-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETXBOX" - GET WIDTH OF VERTICAL BOX LINES
	AX = 0051h
Return: AX = width (in pixels) of left and right edges of rectangles
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=006Bh
--------V-620052-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETXJOY" - GET HORIZONTAL POSITION OF JOYSTICK
	AX = 0052h
	BX = joystick number (0001h or 0002h)
Return: AX = horizontal position of joystick
	    FFFFh if joystick uninitialized or not present
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The actual coordinates are processor- and joystick-dependent
	You must call "FG_INITJOY" (AX=005Eh) before using this function
SeeAlso: AX=0009h,AX=0056h,AX=005Eh,AX=0062h,AX=0077h
--------V-620053-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETXJUST" - GET HORIZONTAL JUSTIFICATION
	AX = 0053h
Return: AX = string justification
	    0000h strings are centered around current graphics X position
	    0001h strings are right-justified at current graphics X position
	    FFFFh strings are left-justified at current graphics X position
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=006Ch,AX=007Bh
--------V-620054-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETXPOS" - GET GRAPHICS CURSOR COLUMN
	AX = 0054h
Return: AX = screen space X coordinate of graphics cursor position
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0058h,AX=007Eh,AX=007Fh
--------V-620055-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETYBOX" - GET WIDTH OF HORIZONTAL BOX LINES
	AX = 0055h
Return: AX = width (in pixels) of top and bottom edges of rectangles
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0006h,AX=0007h,AX=0008h,AX=0063h
--------V-620056-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETYJOY" - GET VERTICAL POSITION OF JOYSTICK
	AX = 0056h
	BX = joystick number (0001h or 0002h)
Return: AX = vertical position of joystick
	    FFFFh if joystick uninitialized or not present
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The actual coordinates are processor- and joystick-dependent
	You must call "FG_INITJOY" (AX=005Eh) before using this function
SeeAlso: AX=0009h,AX=0052h,AX=005Eh,AX=0062h,AX=0077h
--------V-620057-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETYJUST" - GET VERTICAL JUSTIFICATION
	AX = 0057h
Return: AX = string justification
	    0000h strings are centered around current graphics Y position
	    0001h strings have top edge at current graphics Y position
	    FFFFh strings have bottom edge at current graphics Y position
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0053h,AX=0065h
--------V-620058-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_GETYPOS" - GET GRAPHICS CURSOR ROW
	AX = 0058h
Return: AX = screen space Y coordinate of graphics cursor position
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0054h,AX=007Eh,AX=007Fh
--------V-620059-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_HUSH" - STOP ASYNCHRONOUS SOUND IMMEDIATELY
	AX = 0059h
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function immediately stops any sounds started with "FG_MUSICB",
	  "FG_SOUNDS", or "FG_VOICES"; it is ignored if no asynchronous sound
	  is playing
SeeAlso: AX=005Ah,AX=0081h,AX=00BDh,AX=00DCh
--------V-62005A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_HUSHNEXT" - STOP ASYNCHRONOUS SOUND
	AX = 005Ah
Program: FGDRIVER is the external video driver for the shareware
	  Fastgraph/Light by Ted Gruber Software
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function stops any sounds started with "FG_MUSICB", "FG_SOUNDS",
	  or "FG_VOICES" after the current repetition completes; it is ignored
	  unless asynchronous sound is continuous
SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
--------V-62005B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_IMAGEBUF" - SPECIFY TEMPORARY IMAGE BUFFER
	AX = 005Bh
	ES:BX -> buffer to be used when creating or displaying GIF/PCX/PPR/SPR
		  images
	CX = size of buffer in bytes or 0000h to use internal buffer
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	Fastgraph's internal buffer is 4096 bytes; this function allows the
	  application to define a larger buffer which will typically speed
	  processing
SeeAlso: AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
--------V-62005C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_IMAGESIZ" - DETERMINE IMAGE STORAGE REQUIREMENT
	AX = 005Ch
	BX = image width in pixels
	CX = image height in pixels
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
Return: DX:AX = size in bytes of mode-specific bitmap for current video mode
SeeAlso: AX=003Ch,AX=0098h
--------V-62005D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INITEMS" - INITIALIZE EXPANDED MEMORY USE
	AX = 005Dh
Return: AX = status
	    0000h successful
	    FFFFh expanded memory manager inaccessible or not installed
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0002h,AX=0060h"v4.02"
--------V-62005E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INITJOY" - INITIALIZE JOYSTICK USE
	AX = 005Eh
	BX = joystick number (0001h or 0002h)
Return: AX = status
	    0000h successful
	    FFFFh joystick not connected or no game port
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	Fastgraph assumes that the requested joystick is centered at the time
	  this function is called
SeeAlso: AX=0009h,AX=0052h,AX=0056h,AX=0062h,AX=0077h
--------V-62005F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INITPM"??? - (NOT IMPLEMENTED)
	AX = 005Fh
	???
Return: ???
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
--------V-620060-----------------------------
INT 62 u - FGDRIVER v1.10 only - "FG_DISPPCX" - DISPLAY PCX FILE
	AX = 0060h
	ES:BX -> ASCIZ filename
	CX = flags
	    bit 0: use current palette rather than PCX file's palette
	    bits 1-15 reserved (0)
Return: AX = status
	    0000h success
	    0001h file not found
	    0002h file is not a valid PCX file
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes and Hercules low-resolution graphics
	The image is displayed with its upper left corner at the current
	  graphics cursor position
SeeAlso: AX=00B9h
--------V-620060-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INITXMS" - INITIALIZE EXTENDED MEMORY USE
	AX = 0060h
Return: AX = status
	    0000h successful
	    FFFFh extended memory manager inaccessible or not installed
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0003h,AX=005Dh
--------V-620061-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INSIDE" - CHECK IF POINT INSIDE CONVEX POLYGON
	AX = 0061h
	ES:BX -> vertex array
	CX = number of vertices
	DX = screen space column of point to test
	SI = screen space row of point to test
Return: AX = result
	    0000h point is outside polygon
	    0001h point is inside polygon
	    undefined if not a convex polygon
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0092h,AX=0093h,AX=0094h
--------V-620062-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INTJOY" - GET KEYCODES CORRESP TO JOYSTICK POS
	AX = 0062h
	CX = joystick number (0001h or 0002h)
	ES:BX -> variable pointer record (see #3159)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	If the indicated joystick has not been initialized with AX=008Eh, both
	  the button code and joystick position will be set to 00h
	If either button is pressed, a button code of 0Dh is returned;
	  otherwise, a button code of 00h is returned
SeeAlso: AX=0009h,AX=0052h,AX=0046h,AX=005Eh,AX=0077h

Format of FGDRIVER INTJOY variable pointer record:
Offset	Size	Description	(Table 3159)
 00h	WORD	segment of BYTE buffer for button code
 02h	WORD	offset of BYTE buffer for button code
 04h	WORD	segment of BYTE buffer for joystick position
 06h	WORD	offset of BYTE buffer for joystick position
--------V-620063-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INTKEY" - GET KEYSTROKE, NO WAIT
	AX = 0063h
	ES:BX -> variable pointer record (see #3160)
Return: variables updated
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	If the keyboard buffer is empty, both the ASCII and extended keycodes
	  are set to 00h
SeeAlso: AX=000Ah,AX=0046h,AX=0069h,AX=00DEh,INT 16/AH=01h

Format of FGDRIVER INTKEY variable pointer record:
Offset	Size	Description	(Table 3160)
 00h	WORD	segment of BYTE buffer for ASCII keycode
 02h	WORD	offset of BYTE buffer for ASCII keycode
 04h	WORD	segment of BYTE buffer for extended keycode
 06h	WORD	offset of BYTE buffer for extended keycode
--------V-620064-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_INVERT" - INVERT ORIENTATION OF BITMAP
	AX = 0064h
	ES:BX -> bitmap
	CX = width of bitmap in bytes
	DX = height of bitmap in pixel rows
Return: nothing
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
--------V-620065-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_JUSTIFY" - SET TEXT OUTPUT JUSTIFICATION
	AX = 0065h
	BX = horizontal justification
	      (00h centered, 01h right-justified, FFh left-justified)
	CX = vertical justification
	      (00h centered, 01h top of characters, FFh bottom of chars)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Ch,AX=0037h,AX=0053h,AX=0057h,AX=0096h
--------V-620066-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_KBINIT" - ENABLE/DISABLE LOW-LEVEL KBD HANDLER
	AX = 0066h
	BX = new state (0000h disabled, 0001h enabled)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	When the low-level handler is enabled, "FG_GETKEY", "FG_INTKEY",
	  "FG_WAITKEY", and all other functions calling DOS or BIOS keyboard
	  services become unavailable
SeeAlso: AX=0067h,AX=0068h,AX=0069h
--------V-620067-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_KBLAST" - GET MOST RECENT SCANCODE PROCESSED
	AX = 0067h
Return: AX = scancode for keypress most recently processed by FastGraph's
	      low-level keyboard handler, or 0000h if no keys since FG_KBINIT
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0066h,AX=0068h,AX=0069h
--------V-620068-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_KBRESET" - RESET LOW-LEVEL KEYBOARD HANDLER
	AX = 0068h
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0066h,AX=0067h,AX=0069h
--------V-620069-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_KBTEST" - CHECK WHETHER SPECIFIED KEY PRESSED
	AX = 0069h
	BX = scan code of desired key
Return: AX = state
	    0000h key is not pressed
	    0001h key is currently pressed
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The low-level keyboard handler must have been enabled with AX=0066h
SeeAlso: AX=0066h,AX=0067h,INT 16/AH=01h
--------V-62006A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_LOADPCX" - LOAD .PCX INTO ACTIVE VIRTUAL BUFFER
	AX = 006Ah
	ES:BX -> ASCIZ filename for PCX image
	CX = control flags
	    bit 0: use current palette, overriding stored .PCX palette
	    bit 1: load at current graphics position, not stored position
	    bit 2: load image from FG_IMAGEBUF buffer instead of .PCX file
Return: AX = status
	    0000h successful
	    0001h file not found
	    0002h not a .PCX file
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=006Ch,AX=00B9h,AX=00D5h
--------V-62006B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_LOCATE" - SET TEXT-MODE CURSOR POSITION
	AX = 006Bh
	BX = row
	CX = column
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	There are only eight text cursors shared by successive groups of
	  eight video pages (pages 0, 8, 16, ... share one cursor, 1, 9, ...
	  share the second, etc)
SeeAlso: AX=0054h,AX=0058h,AX=007Eh,AX=00E0h
--------V-62006C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MAKEPCX" - CREATE PCX FILE FROM SCREEN WINDOW
	AX = 006Ch
	BX = left edge in screen space units
	CX = right edge in screen space units
	DX = top edge in screen space units
	SI = bottom edge in screen space units
	ES:DI -> ASCIZ filename of PCX file to create
Return: AX = status
	    0000h successful
	    0001h file not created
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The PCX file is created from the specified region of the active video
	  page; the left and right edges are adjusted to a byte boundary if
	  necessary
	If the specified file already exists, it is overwritten
	This call is ignored in text and Hercules low-resolution graphics modes
SeeAlso: AX=005Bh,AX=006Dh,AX=006Ah,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
--------V-62006D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MAKEPPR" - CREATE PACKED PIXEL RUN FILE
	AX = 006Dh
	BX = left edge in screen space units
	CX = right edge in screen space units
	DX = top edge in screen space units
	SI = bottom edge in screen space units
	ES:DI -> ASCIZ filename of PPR file to create
Return: AX = status
	    0000h successful
	    0001h file not created
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The PPR file is created from the specified region of the active video
	  page; the left and right edges are adjusted to byte boundaries if
	  necessary
	If the specified file already exists, it is overwritten
	This call is ignored in text modes
SeeAlso: AX=005Bh,AX=006Ch,AX=006Eh,AX=00B9h,AX=00BAh,AX=00BBh
--------V-62006E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MAKESPR" - CREATE STANDARD PIXEL RUN FILE
	AX = 006Eh
	BX = left edge in screen space units
	CX = right edge in screen space units
	DX = top edge in screen space units
	SI = bottom edge in screen space units
	ES:DI -> ASCIZ filename of SPR file to create
Return: AX = status
	    0000h successful
	    0001h file not created
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The SPR file is created from the specified region of the active video
	  page; the left and right edges are adjusted to byte boundaries if
	  necessary
	If the specified file already exists, it is overwritten
	This call is ignored in text modes
SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=00B9h,AX=00BAh,AX=00BBh
--------V-62006F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MAPRGB" - MAP COLOR COMPONENTS INTO PALETTE VAL
	AX = 006Fh
	BX = red component
	CX = green component
	DX = blue component
Return: AX = mode-specific palette value corresponding to specified components
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is only meaningful in 16-color graphics modes
SeeAlso: AX=004Eh,AX=00B3h
--------V-620070-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MEASURE" - GET DELAY UNITS PER CLOCK TICK
	AX = 0070h
Return: AX = delay units per clock tick (processor-dependent)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	These delay units are used by "FG_STALL" (see AX=00BFh)
SeeAlso: AX=00BFh
--------V-620071-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MEMAVAIL" - QUERY AMOUNT OF FREE MEMORY
	AX = 0071h
Return: DX:AX = number of bytes of conventional memory available
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=005Dh,AX=0072h
--------V-620072-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MEMORY" - GET SIZE OF VIDEO MEMORY
	AX = 0072h
Return: AX = size of video memory in KB
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	You must first call "FG_SVGAINIT" (see AX=00C1h) before using this
	  function
SeeAlso: AX=0071h
--------V-620073-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSE256" - DEFINE 256-COLOR MOUSE CURSOR
	AX = 0073h
	ES:BX -> 512-byte cursor definition
	CX = X offset of hot-spot within mouse cursor
	DX = Y offset of hot-spot within mouse cursor
Return: nothing
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	the cursor definition array consists of 256 bytes defining the 16x16
	  screen mask, followed by another 256 bytes definining the 16x16
	  cursor mask
SeeAlso: AX=0074h,AX=0075h,AX=007Bh
--------V-620074-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEBUT" - GET MOUSE BUTTON PRESS/RELEASE CNTS
	AX = 0074h
	CX = mouse button (1 = left press, 2 = right press, 3 = middle press,
		  -1=left release, -2=right release, -3=middle release)
	ES:BX -> variable pointer record (see #3161)
Return: variables updated
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function returns the count of presses or releases since the last
	  call to this function; if the count is zero, row and column will
	  also be zero
SeeAlso: AX=0075h,AX=0077h,AX=007Ah

Format of FGDRIVER MOUSEBUT variable pointer record:
Offset	Size	Description	(Table 3161)
 00h	WORD	segment of WORD buffer for press/release count
 02h	WORD	offset of WORD buffer for press/release count
 04h	WORD	segment of WORD buffer for screen space col of last press/rls
 06h	WORD	offset of WORD buffer for screen space col of last press/rels
 08h	WORD	segment of WORD buffer for screen space row of last press/rls
 0Ah	WORD	offset of WORD buffer for screen space row of last press/rls
--------V-620075-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSECUR" - SPECIFY TEXT-MODE MOUSE CURSOR
	AX = 0075h
	BX = screen mask
	CX = cursor mask
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in graphics modes
SeeAlso: AX=007Bh,AX=007Dh
--------V-620076-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEFIN" - UNHOOK FASTGRAPH MOUSE HANDLER
	AX = 0076h
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function should be called before switching back to text mode if
	  "FG_MOUSEINI" was called while in an SVGA graphics mode
SeeAlso: AX=0077h
--------V-620077-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEINI" - INITIALIZE MOUSE SUPPORT
	AX = 0077h
Return: AX = status
	    0002h two-button mouse
	    0003h three-button mouse
	    FFFFh initialization failed
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	After this call, the mouse cursor is invisible
SeeAlso: AX=0076h,AX=0078h,AX=007Ch
--------V-620078-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSELIM" - SPECIFY MOUSE CURSOR LIMITS
	AX = 0078h
	BX = left-most position allowed for mouse cursor
	CX = right-most position allowed
	DX = top-most position allowed
	SI = bottom-most position allowed
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0077h,AX=0079h,INT 33/AX=0007h,INT 33/AX=0008h
--------V-620079-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEMOV" - SET MOUSE CURSOR POSITION
	AX = 0079h
	BX = new column
	CX = new row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function will not move the mouse cursor outside the bounding box
	  specified with AX=009Bh
SeeAlso: AX=0078h,AX=007Ah,INT 33/AX=0004h
--------V-62007A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPOS" - GET CURRENT MOUSE POSITION
	AX = 007Ah
	ES:BX -> variable pointer record (see #3162)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0079h

Format of FGDRIVER MOUSEPOS variable pointer record:
Offset	Size	Description	(Table 3162)
 00h	WORD	segment of WORD buffer for mouse column
 02h	WORD	offset of WORD buffer for mouse column
 04h	WORD	segment of WORD buffer for mouse row
 06h	WORD	offset of WORD buffer for mouse row
 08h	WORD	segment of WORD buffer for button status
 0Ah	WORD	offset of WORD buffer for button status
Note:	button status: bit 0 = left button, bit 1 = right, bit 2 = middle
--------V-62007B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEPTR" - SPECIFY GRAPH-MODE MOUSE CURSOR
	AX = 007Bh
	ES:BX -> masks (16-byte screen mask followed by 16-byte cursor mask)
	CX = X offset of hot spot from upper left corner
	DX = Y offset of hot spot from upper left corner
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=0073h,AX=0075h,INT 33/AX=0009h
--------V-62007C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSESPD" - SET MOUSE CURSOR SPEED
	AX = 007Ch
	BX = horizontal mickeys per eight pixels of movement (default 16)
	CX = vertical mickeys per eight pixels of movement (default 16)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: INT 33/AX=000Fh,INT 33/AX=001Ah
--------V-62007D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOUSEVIS" - SET MOUSE CURSOR VISIBILITY
	AX = 007Dh
	BX = new state (0000h invisible, 0001h visible)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0077h,INT 33/AX=0001h,INT 33/AX=0002h
--------V-62007E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOVE" - SET GRAPHICS CURSOR POSITION
	AX = 007Eh
	BX = new column
	CX = new row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=0079h,AX=007Fh,AX=00E0h
--------V-62007F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MOVEREL" - ADJUST GRAPHICS CURSOR POSITION
	AX = 007Fh
	BX = column offset
	CX = row offset
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=0054h,AX=0058h,AX=007Eh
--------V-620080-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MUSIC" - PLAY SERIES OF NOTES
	AX = 0080h
	ES:BX -> '$'-terminated music string in BASIC PLAY format
Return: after music completed
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
	  AX=00AAh) is already in progress
SeeAlso: AX=0081h,AX=00BCh,AX=00DBh
--------V-620081-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_MUSICB" - PLAY SERIES OF NOTES IN BACKGROUND
	AX = 0081h
	CX = number of repetitions (negative = continuous play)
	ES:BX -> '$'-terminated music string in BASIC PLAY format
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
	  AX=00AAh) is already in progress
SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
--------V-620082-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_NUMLOCK" - GET STATE OF NUMLOCK KEY
	AX = 0082h
Return: AX = NumLock state (0000h off, 0001h on)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Ah,AX=00A4h,AX=00A8h,AX=00B1h
--------V-620083-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PACK" - CONVERT PIXEL-PER-BYTE TO PACKED BITMAP
	AX = 0083h
	ES:BX -> variable pointer record (see #3163)
	CX = width of bitmap in pixels
	DX = height of bitmap in pixels
Return: result bitmap buffer updated
SeeAlso: AX=00CBh

Format of FGDRIVER PACK variable pointer record:
Offset	Size	Description	(Table 3163)
 00h	WORD	segment of source (mode-independent) bitmap
 02h	WORD	offset of source (mode-independent) bitmap
 04h	WORD	segment of buffer for result (mode-specific) bitmap
 06h	WORD	offset of buffer for result (mode-specific) bitmap
--------V-620084-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PAGESIZE" - GET VIDEO PAGE SIZE FOR CURR MODE
	AX = 0084h
Return: DX:AX = page size in bytes
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0072h
--------V-620085-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PAINT" - FLOOD CLOSED REGION WITH COLOR
	AX = 0085h
	BX = column
	CX = row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function fills an arbitrary closed region around the specified
	  point with the current color; the screen edges are not considered
	  region boundaries
	This call is ignored in text modes
SeeAlso: AX=0035h
--------V-620086-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PALETTE" - SET PALETTE / SET VIDEO DAC REGISTER
	AX = 0086h
---CGA 4-color graphics---
	BX = CGA paletee number
	CX = background color
---CGA 2-color graphics---
	BX ignored
	CX = foreground color
---16-color graphics---
	BX = palette register number
	CX = palette value
---256-color graphics---
	BX = DAC register number
	CX =  DAC value
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is ignored in text modes and Hercules graphics modes
	Few EGA/VGA adapters correctly set the foreground color in CGA mode 6
SeeAlso: AX=0041h,AX=004Eh,AX=0087h,AX=00ABh
--------V-620087-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PALETTES" - SET ALL PALETTE REGISTERS
	AX = 0087h
	ES:BX -> array of 16 WORDs containing values for palette registers
		  (or first 16 DAC registers in 256-color modes)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is ignored in text modes, CGA and Hercules graphics modes
SeeAlso: AX=0041h,AX=004Eh,AX=0086h,AX=00ABh
--------V-620088-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PAN" - SET SCREEN ORIGIN
	AX = 0088h
	BX = new column for screen origin
	CX = new row for screen origin
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00B2h
--------V-620089-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PATTERN" - SPECIFY DISPLAY PATTERN FOR COLOR
	AX = 0089h
	BX = index of pattern to define
	CX = number of predefined display pattern
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	When displaying a pixel run map, Fastgraph uses the pattern associated
	  with each color index rather than displaying the actual color
	This call has no effect in text and 256-color graphics modes
SeeAlso: AX=0023h,AX=0045h
--------V-62008A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PCXHEAD" - GET PCX FILE HEADER
	AX = 008Ah
	ES:BX -> variable pointer record (see #3164)
Return: AX = status
	    0000h successful
	    FFFEh not a PCX file
	    FFFFh file does not exist
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=008Bh,AX=00B9h

Format of FGDRIVER PCXHEAD variable pointer record:
Offset	Size	Description	(Table 3164)
 00h	WORD	segment of ASCIZ filename
 02h	WORD	offset of ASCIZ filename
 04h	WORD	segment of 128-byte buffer for PCX header
 06h	WORD	offset of 128-byte buffer for PCX header
--------V-62008B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PCXMODE" - GET OPTIMAL VIDEO MODE FOR DISPLAY
	AX = 008Bh
	ES:BX -> PCX header (see AX=008Ah)
Return: AX = optimal video mode for PCX file
	    FFFEh not a valid PCX header
	    FFFFh unable to determine compatible video mode
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=008Ah,AX=00B9h
--------V-62008C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PCXPAL" - GET PALETTE STORED IN PCX FILE
	AX = 008Ch
	ES:BX -> variable pointer record (see #3165)
Return: AX = number of colors in palette (16 or 256) or
	    FFFEh not a valid PCX file
	    FFFFh file not found
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=008Dh

Format of FGDRIVER PCXPAL variable pointer record:
Offset	Size	Description	(Table 3165)
 00h	WORD	segment of ASCIZ .PCX filename
 02h	WORD	offset of ASCIZ .PCX filename
 04h	WORD	segment of buffer for .PCX palette RGB triples
 06h	WORD	offset of buffer for .PCX palette RGB triples
Note:	the buffer for the palette must hold at least three times as many bytes
	  as there are colors in the palette
SeeAlso: #3166
--------V-62008D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PCXRANGE" - GET EXTENT OF PCX IMAGE
	AX = 008Dh
	ES:BX -> variable pointer record (see #3166)
Return: indicated variables updated; if the indicated header is not valid,
	  all of the coordinate variables are set to FFFFh
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=008Ch

Format of FGDRIVER PCXRANGE variable pointer record:
Offset	Size	Description	(Table 3166)
 00h	WORD	segment of 128-byte PCX file header
 02h	WORD	offset of 128-byte PCX file header
 04h	WORD	segment of WORD buffer for X coordinate of image's left edge
 04h	WORD	offset of WORD buffer for X coordinate of image's left edge
 08h	WORD	segment of WORD buffer for X coordinate of image's right edge
 0Ah	WORD	offset of WORD buffer for X coordinate of image's right edge
 0Ch	WORD	segment of WORD buffer for Y coordinate of image's top edge
 0Eh	WORD	offset of WORD buffer for Y coordinate of image's top edge
 10h	WORD	segment of WORD buffer for X coordinate of image's bottom edge
 12h	WORD	offset of WORD buffer for X coordinate of image's bottom edge
SeeAlso: #3165
--------V-62008E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PLAYING" - DETERMINE WHETHER ASYNC SOUND ACTIVE
	AX = 008Eh
Return: AX = sound state (0 = no asynchronous sound, 1 = async sound playing)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DCh
--------V-62008F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_POINT" - DISPLAY A PIXEL
	AX = 008Fh
	BX = column
	CX = row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=0006h,AX=001Dh,AX=004Dh,AX=0090h
--------V-620090-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_POINTX" - DISPLAY A PIXEL IN XOR MODE
	AX = 0090h
	BX = column
	CX = row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=004Dh,AX=008Fh
--------V-620091-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_POLYEDGE" - SPECIFY INCLUSION OF FINAL PIXELS
	AX = 0091h
	BX = edge flag
	    0000h include right- and bottom-edge pixels when drawing polygons
		  with FG_POLYFILL
	    0001h (default) exclue right- and bottom-edge pixels
SeeAlso: AX=0092h
--------V-620092-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_POLYFILL" - DRAW A FILLED CONVEX POLYGON
	AX = 0092h
	CX = number of vertices
	ES:BX -> variable pointer record (see #3167)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The vertex array consists of pairs of words specifying the X and Y
	  coordinates of each vertex; the work array is used internally and
	  must contain at least four times as many bytes as the polygon is
	  high in pixels
	This function is ignored in text modes
	If the polygon is non-convex, only a portion of it may be filled
SeeAlso: AX=000Eh,AX=0027h,AX=0091h,AX=0093h,AX=0094h,AX=0095h

Format of FGDRIVER POLYFILL variable pointer record:
Offset	Size	Description	(Table 3167)
 00h	WORD	segment of vertex array (see #3169)
 02h	WORD	offset of vertex array
 04h	WORD	segment of work array
 06h	WORD	offset of work array
SeeAlso: #3168
--------V-620093-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_POLYGON" - DRAW AN UNFILLED POLYGON
	AX = 0093h
	CX = number of vertices in polygon
	ES:BX -> variable pointer record (see #3168)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
SeeAlso: AX=0091h,AX=0092h,AX=0094h,AX=0095h

Format of FGDRIVER POLYGON variable pointer record:
Offset	Size	Description	(Table 3168)
 00h	WORD	segment of WORD array containing vertex columns
 02h	WORD	offset of WORD array containing vertex columns
 04h	WORD	segment of WORD array containing vertex rows
 06h	WORD	offset of WORD array containing vertex rows
SeeAlso: #3167
--------V-620094-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_POLYLINE" - DRAW AN UNFILLED POLYGON
	AX = 0094h
	CX = number of vertices in polygon
	ES:BX -> vertex array (see #3169)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is equivalent to "FG_POLYGON", but uses only a single
	  array to define the vertices
	This call is ignored in text modes
SeeAlso: AX=008Fh,AX=0092h,AX=0093h,AX=0095h

Format of FGDRIVER POLYFILL/POLYLINE vertex array element:
Offset	Size	Description	(Table 3169)
 00h	WORD	column
 02h	WORD	row
SeeAlso: #3168
--------V-620095-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_POLYOFF" - DEFINE POLYGON DRAWING OFFSET
	AX = 0095h
	BX = horizontal offset (default 0)
	CX = vertical offset (default 0)
Desc:	define the offsets applied to all vertices of polygons drawn with
	  "FG_POLYFILL" or "FG_POLYLINE"
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0092h,AX=0094h
--------V-620096-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PRINT" - DISPLAY STRING OF HARDWARE CHARACTERS
	AX = 0096h
	CX = length of string
	ES:BX -> string to display
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The string is displayed in the current color, and the graphics cursor
	  is updated to be just to the right of the last displayed character
	This function is ignored in text modes
SeeAlso: AX=000Ch,AX=0037h,AX=0065h,AX=0097h
--------V-620097-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PRINTC" - DISPLAY STRING OF HW CHARS (CLIPPED)
	AX = 0097h
	CX = length of string
	ES:BX -> string to display
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The string is displayed in the current color, and the graphics cursor
	  is updated to be just to the right of the last displayed character;
	  only the portion of the string that lies within the current clipping
	  area is displayed
	This function is ignored in text modes
SeeAlso: AX=0096h
--------V-620098-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PUTBLOCK" - RESTORE RECTANGLE OF DISPLAY
	AX = 0098h
	ES:BX -> buffer containing previously-saved image
	CX = left edge
	DX = right edge
	SI = top edge
	DI = bottom edge
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	In text modes, coordinates are character positions; in graphics modes,
	  they are defined in screen space, and the left and right edges are
	  adjusted to a byte boundary if necessary
SeeAlso: AX=003Ch,AX=0099h
--------V-620099-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_PUTIMAGE" - DISPLAY MODE-SPECIFIC BITMAP IMAGE
	AX = 0099h
	ES:BX -> buffer containing mode-specific bitmap
	CX = width in bytes
	DX = height in pixel rows
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The bitmap is displayed with its lower left corner at the graphics
	  cursor position; color 0 is NOT treated as transparent
SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=0098h
--------V-62009A-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_QUIET" - STOP CONTINUOUS SYNCHRONOUS SOUND
	AX = 009Ah
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call has no effect if there is no continuous sound playing
SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00DCh
--------V-62009B-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_RECT" - DRAW UNFILLED RECTANGLE IN SCREEN SPACE
	AX = 009Bh
	BX = left edge column
	CX = right edge column
	DX = top edge row
	SI = bottom edge row
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0006h,AX=0012h,AX=0023h,AX=003Ch
--------V-62009C-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_RESET" - ERASE SCREEN AND RESTORE SCREEN ATTR
	AX = 009Ch
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in graphics modes
	The screen attributes are only restored if ANSI.SYS is loaded
SeeAlso: AX=0028h,AX=00B0h
--------V-62009D-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_RESIZE" - SET GRAPHICS MODE VIDEO PAGE SIZE
	AX = 009Dh
	BX = new page width in pixels
	CX = new page height in pixels
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The visible page must be set to 0000h before making this call
	The mouse, joysticks, expanded memory, and extended memory must be
	  reinitialized after this call
SeeAlso: AX=0084h,AX=00ACh
--------V-62009E-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_RESTORE" - COPY REGION FROM HIDDEN TO VIS PAGE
	AX = 009Eh
	BX = left edge column
	CX = right edge column
	DX = top edge row
	SI = bottom edge row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The left and right edges are adjusted to byte boundaries if necessary
SeeAlso: AX=00A2h,AX=00C6h
--------V-62009F-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_RESUME" - RESTART ASYNCHRONOUS SOUND
	AX = 009Fh
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00BDh,AX=00C0h
--------V-6200A0-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_REVIMAGE" - DISPLAY REVERSED IMAGE (BITMAP)
	AX = 00A0h
	ES:BX -> mode-specific bitmap
	CX = width of bitmap in bytes
	DX = height of bitmap in pixel rows
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
SeeAlso: AX=0011h,AX=0024h,AX=0036h,AX=0044h,AX=00A1h,AX=00A9h,AX=00B9h
--------V-6200A1-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_REVMASK" - DISPLAY REVERSED IMAGE (MASKING MAP)
	AX = 00A1h
	ES:BX -> array containing image stored as a masking map (see #3146)
	CX = number of pixel runs in masking map
	DX = width of masking map in pixels
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes and in native EGA and VGA graphics
	  modes
	The image is drawn with its lower left corner at the current graphics
	  cursor position
SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=00A0h,AX=00A9h,AX=00C5h
--------V-6200A2-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SAVE" - COPY REGION FROM VISIBLE TO HIDDEN PAGE
	AX = 00A2h
	BX = left edge column
	CX = right edge column
	DX = top edge row
	SI = bottom edge row
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The left and right edges are adjusted to byte boundaries if necessary
SeeAlso: AX=009Eh,AX=00C6h
--------V-6200A3-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SCALE" - SCALE BITMAP
	AX = 00A3h
	ES:BX -> variable pointer record (see #3170)
	CX = width of source bitmap in pixels (0 < width <= 1024)
	DX = height of source bitmap in pixels (0 < height <= 1024)
	SI = desired width of scaled bitmap (0 < width <= 1024)
	DI = desired height of scaled bitmap (0 < height <= 1024)
Return: nothing
SeeAlso: AX=00B7h

Format of FGDRIVER SCALE variable pointer record:
Offset	Size	Description	(Table 3170)
 00h	WORD	segment of source bitmap (one pixel per byte)
 02h	WORD	offset of source bitmap
 04h	WORD	segment of buffer for resulting scaled bitmap
 06h	WORD	offset of buffer for resulting scaled bitmap
--------V-6200A4-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SCRLOCK" - GET STATE OF SCROLL LOCK KEY
	AX = 00A4h
Return: AX = ScrollLock state (0000h off, 0001h on)
Program: FGDRIVER is the external video driver for the shareware
	  Fastgraph/Light by Ted Gruber Software
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Ah,AX=0082h,AX=00A8h,AX=00B1h
--------V-6200A5-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SCROLL" - VERTICALLY SCROLL SCREEN REGION
	AX = 00A5h
	BX = left edge column
	CX = right edge column
	DX = top edge row
	SI = bottom edge row
	DI = number of pixels by which to scroll (positive scrolls up,
	      negative scrolls down)
	ES = type of scroll
	    0000h circular (rows scrolled off are copied to vacated rows)
	    else vacated rows are filled with the current color
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	In graphics modes, the left and right edges are adjusted to byte
	  boundaries if necessary
	Circular scrolling uses part of the hidden page as a workspace
SeeAlso: AX=0088h,AX=00B2h
--------V-6200A6-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETATTR" - SET TEXT-MODE CHARACTER ATTRIBUTE
	AX = 00A6h
	BX = foreground
	CX = background
	DX = blink (0000h nonblinking, 0001h blink)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in graphics modes
SeeAlso: AX=000Bh,AX=003Ah,AX=0048h
--------V-6200A7-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETBANKS" - SET SVGA READ AND WRITE BANKS
	AX = 00A7h
	BX = memory bank from which to read (FFFFh leave unchanged)
	CX = memory bank to which to write (FFFFh leave unchanged)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=003Bh
--------V-6200A8-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETCAPS" - SET STATE OF CAPSLOCK KEY
	AX = 00A8h
	BX = new state (0000h off, 0001h on)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00B1h
--------V-6200A9-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETCLIP" - SET CLIPPING REGION
	AX = 00A9h
	BX = left edge of clipping region
	CX = right edge of clipping region
	DX = top edge of clipping region
	SI = bottom edge of clipping region
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0010h,AX=001Fh,AX=0034h,AX=003Eh,AX=00A1h,AX=00C5h
--------V-6200AA-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETCOLOR" - SET CURRENT COLOR
	AX = 00AAh
	BX = new color index (or text attribute in text modes)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0018h,AX=0040h,AX=0045h
--------V-6200AB-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETDACS" - SET VIDEO DAC CONTENTS
	AX = 00ABh
	CX = number of DAC registers to set (0001h to 0100h)
	DX = starting DAC register number (0000h to 00FFh)
	ES:BX -> buffer containing DAC red/green/blue triples
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The register number wraps back to zero after reaching FFh
	This call has no effect in text modes or graphics modes below 11h
SeeAlso: AX=0041h,AX=004Eh,AX=0086h,INT 10/AX=1012h
--------V-6200AC-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETENTRY" - SET TYPE AND ADDRESS OF VIDEO PAGE
	AX = 00ACh
	BX = page number (00h-3Fh)
	CX = page address
	DX = page type (see #3155 at AX=0042h)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0038h,AX=0042h,AX=00B0h
--------V-6200AD-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETFUNC" - SET LOGICAL OPERATION FOR VIDEO OPS
	AX = 00ADh
	BX = operation
	    0000h replacement
	    0001h AND
	    0002h OR
	    0003h XOR
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is only available in native EGA/VGA graphics modes
	  (0Dh to 12h)
SeeAlso: AX=001Eh,AX=008Fh
--------V-6200AE-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETHPAGE" - SET HIDDEN VIDEO PAGE
	AX = 00AEh
	BX = new hidden page (0000h to 003Fh)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The specified page must be a physical page or a virtual page
SeeAlso: AX=0043h,AX=00B2h,AX=00B6h
--------V-6200AF-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETLINES" - SET TEXT ROWS ON SCREEN
	AX = 00AFh
	BX = new screen size (25, 43, 50)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0047h
--------V-6200B0-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETMODE" - SELECT VIDEO MODE AND INITIALIZE
	AX = 00B0h
	BX = new video mode or FFFFh for current mode (see #3171)
	ES:DX -> WORD shareware splash screen flag
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call resets the active video page to page 0000h, the clipping
	  region to the entire screen, text rows to 25, etc.
	in the shareware version, FGDRIVER sets the word pointed at by ES:DX
	  to 9090h after it shows the shareware announcement to the user
SeeAlso: AX=004Bh,INT 10/AH=00h

(Table 3171)
Values for FGDRIVER video mode:
 00h-07h standard BIOS modes
 09h	PCjr/Tandy1000 320x200x16
 0Bh	Hercules graphics 720x348
 0Ch	Hercules graphics 320x200
 0Dh-13h standard BIOS modes
 14h	VGA graphics 320x200x256
 15h	VGA graphics 320x400x256
 16h	VGA graphics 320x240x256
 17h	VGA graphics 320x480x256
 18h	SVGA graphics 640x400x256
 19h	SVGA graphics 640x480x256
 1Ah	SVGA graphics 800x600x256
 1Bh	SVGA graphics 1024x768x256
 1Ch	SVGA graphics 800x600x16
 1Dh	SVGA graphics 1024x768x16
--------V-6200B1-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETNUM" - SET STATE OF NUMLOCK KEY
	AX = 00B1h
	BX = new state (0000h off, 0001h on)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Ah,AX=0082h,AX=00A4h,AX=00A8h
--------V-6200B2-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETPAGE" - SET ACTIVE VIDEO PAGE
	AX = 00B2h
	BX = new video page (0000h to 003Fh)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The specified page must be a physical or virtual page
SeeAlso: AX=0039h,AX=0042h,AX=0043h,AX=0050h,AX=0088h
--------V-6200B3-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETRGB" - SET VIDEO DAC REGISTER CONTENTS
	AX = 00B3h
	BX = palette or DAC register number
	CX = red color component
	DX = green component
	SI = blue component
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The register number may be negative for Tandy, PCjr, and 200-line
	  EGA graphics modes to specify an intense color
	This call has no effect in text, CGA graphics, and Hercules graphics
	  modes
SeeAlso: AX=004Eh
--------V-6200B4-----------------------------
INT 62 u - FGDRIVER v4.02 - UNUSED
	AX = 00B4h
Return: AX = 0000h
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
--------V-6200B5-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETVIEW" - DEFINE VIEWPORT
	AX = 00B5h
	ES:BX -> variable record (see #3172)
	CX = viewport's top edge in screen space
	DX = viewport's bottom edge in screen space
Return: nothing
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=004Fh

Format of FGDRIVER SETVIEW variable record:
Offset	Size	Description	(Table 3172)
 00h	WORD	viewport's left edge in viewport units
 02h	WORD	viewport's right edge in viewport units
 04h	WORD	viewport's top edge in viewport units
 06h	WORD	viewport's bottom edge in viewport units
 08h	WORD	viewport's left edge in screen space
 0Ah	WORD	viewport's right edge in screen space
--------V-6200B6-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SETVPAGE" - SET VISIBLE VIDEO PAGE
	AX = 00B6h
	BX = new video page (0000h to 003Fh)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The specified page must be a physical or virtual page
SeeAlso: AX=0043h,AX=00AEh,AX=00B2h
--------V-6200B7-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SHEAR" - SHEAR UNPACKED BITMAP
	AX = 00B7h
	ES:BX -> variable pointer record (see #3173)
	CX = bitmap width (0 < width <= 1024)
	DX = bitmap height (0 < height <= 1024)
	SI = size of resulting image (width for horiz. shear, height for vert.)
	DI = shear type
	    0000h horizontal shear to left
	    0001h horizontal shear to right
	    0002h vertical shear to left (left edge stretched up)
	    0003h vertical shear to right (right edge stretched up)
Return: nothing
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00A3h

Format of FGDRIVER SHEAR variable pointer record:
Offset	Size	Description	(Table 3173)
 00h	WORD	segment of source bitmap
 02h	WORD	offset of source bitmap
 04h	WORD	segment of buffer for resulting bitmap
 06h	WORD	offset of buffer for resulting bitmap
--------V-6200B8-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SHOWFLIC" - DISPLAY IMAGE FROM FLI/FLC FILE
	AX = 00B8h
	ES:BX -> ASCIZ filename for FLI/FLC file
	CX = number of times to display image file (0000h = continuously)
	DX = control flags (see #3150 at AX=0031h)
Return: AX = status
	    0000h successful
	    0001h file not found
	    0002h not a valid FLI/FLC file
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	the FLI/FLC display may be stopped by the user by pressing Esc
SeeAlso: AX=0030h,AX=0031h,AX=00B9h
--------V-6200B9-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SHOWPCX" - DISPLAY IMAGE FROM PCX FILE
	AX = 00B9h
	ES:BX -> ASCIZ filename of PCX image
	CX = flags (see #3174)
Return: AX = status
	    0000h success
	    0001h file not found
	    0002h not a PCX file
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is ignored in text modes and Hercules low-res graphics
SeeAlso: AX=005Bh,AX=0060h"1.10",AX=006Ch,AX=006Dh,AX=006Eh,AX=00B8h,AX=00BAh
SeeAlso: AX=00BBh

Bitfields for FGDRIVER flags:
Bit(s)	Description	(Table 3174)
 0	use current palette rather than PCX file's palette
 1	display image at cursor position instead of position in PCX header
 2-15	reserved
--------V-6200BA-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SHOWPPR" - DISPLAY IMAGE FROM PPR FILE
	AX = 00BAh
	ES:BX -> ASCIZ filename of packed pixel run image
	CX = width in pixels (nonzero)
Return: AX = status
	    0000h successful
	    0001h file not found
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The image is displayed with its lower left corner at the current
	  graphics cursor position
	This function is ignored in text modes and 256-color graphics modes
SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BBh
--------V-6200BB-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SHOWSPR" - DISPLAY IMAGE FROM SPR FILE
	AX = 00BBh
	ES:BX -> ASCIZ filename of standard pixel run image
	CX = width in pixels (nonzero)
Return: AX = status
	    0000h successful
	    0001h file not found
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The image is displayed with its lower left corner at the current
	  graphics cursor position
	This function is ignored in text modes
SeeAlso: AX=005Bh,AX=006Ch,AX=006Dh,AX=006Eh,AX=00B9h,AX=00BAh
--------V-6200BC-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SOUND" - MAKE SOUND FOR SPECIFIED DURATION
	AX = 00BCh
	BX = frequency in Hertz (18-32767)
	CX = duration in clock ticks (0000h or negative for continuous sound)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
	  AX=00AAh) is already in progress
SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
--------V-6200BD-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SOUNDS" - PLAY SOUNDS IN BACKGROUND
	AX = 00BDh
	CX = number of times to cycle through sound list
	ES:BX -> sounds array (see #3175)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored if asynchronous sound (AX=00A5h,AX=00A8h,
	  AX=00AAh) is already in progress
SeeAlso: AX=0059h,AX=0081h,AX=00BCh,AX=00C0h,AX=00DCh

Format of FGDRIVER sounds array element:
Offset	Size	Description	(Table 3175)
 00h	WORD	frequency of sound in Hertz (0000h ends array)
 02h	WORD	duration of sound in clock ticks
--------V-6200BE-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SPLIT" - ENABLE/DISABLE SPLIT SCREEN ENVIRONMNT
	AX = 00BEh
	BX = beginning row for bottom half of split-screen
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
--------V-6200BF-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_STALL" - PAUSE FOR SPECIFIED DURATION
	AX = 00BFh
	BX = duration in processor-dependent delay units (see AX=0070h)
Return: after delay elapses
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0070h,INT 2F/AX=1224h
--------V-6200C0-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SUSPEND" - TEMPORARILY STOP ASYNCHRONOUS SOUND
	AX = 00C0h
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call has no effect if there is no asynchronous sound in progress
	The program must not exit while sound is suspended
SeeAlso: AX=0059h,AX=0080h,AX=00BDh,AX=00C0h,AX=00DBh
--------V-6200C1-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SVGAINIT" - INITIALIZE FASTGRAPH SVGA KERNEL
	AX = 00C1h
	BX = method (see #3176)
Return: AX = status
	    0000h no VESA BIOS or supported SVGA chipset
	    0001h using VESA BIOS
	    0002h-0016h specific chipset being used (same as "method" below)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function must be called before attempting to set SVGA graphics
	  modes (18h to 1Dh) or using "FG_BESTMODE", "FG_TESTMODE", or
	  "FG_MEMORY"
SeeAlso: AX=0025h,AX=00C2h,AX=00C3h

(Table 3176)
Values for FGDRIVER SVGA method:
 0000h	autodetect, give chipset-specific code priority over VESA
 0001h	autodetect, give VESA priority over chipset-specific code
 0002h	Ahead type "A"
 0003h	Ahead type "B"
 0004h	ATI 18800
 0005h	ATI 18800-1
 0006h	ATI 28800
 0007h	Chips & Technologies 82c451/455/456
 0008h	C&T 82c452
 0009h	C&T 82c453
 000Ah	Genoa 6000 series
 000Bh	Oak OTI-067
 000Ch	Paradise PVGA1a
 000Dh	Paradise WD90C00/WD90C10
 000Eh	Paradise WD90C11/WD90C30/WD90C31
 000Fh	Trident 8800
 0010h	Trident 8900
 0011h	Tseng ET3000
 0012h	Tseng ET4000
 0013h	Video7
 0014h	Cirrus Logic 5400 series
 0015h	S3
 0016h	Trident 8900B/8900C/9000
--------V-6200C2-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SVGASTAT" - GET SVGA CHIPSET INFORMATION
	AX = 00C2h
Return: AX = chipset information (see #3177)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0025h,AX=00C1h,AX=00C3h

Bitfields for FGDRIVER chipset information:
Bit(s)	Description	(Table 3177)
 0	SVGA kernel initialized
 1	VESA support enabled
 2	extended video pages available in modes 13-23
 3	SVGA chipset has separate read and write banks
 4-15	reserved (0)
--------V-6200C3-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_SVGAVER" - GET FASTGRAPH SVGA KERNEL VERSION
	AX = 00C3h
	ES:BX -> variable pointer record (see #3178)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00C1h,AX=00C2h

Format of FGDRIVER variable pointer record:
Offset	Size	Description	(Table 3178)
 00h	WORD	segment of WORD buffer for major version
 02h	WORD	offset of WORD buffer for major version
 04h	WORD	segment of WORD buffer for minor version (hundredths)
 06h	WORD	offset of WORD buffer for minor version
--------V-6200C4-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_TCDEFINE" - DEFINE TRANSPARENCY OF COLOR INDEX
	AX = 00C4h
	BX = color index
	CX = transparency (00h opaque, other transparent)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is ignored in text modes
SeeAlso: AX=00C5h,AX=00C6h
--------V-6200C5-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_TCMASK" - SET TRANSPARENT COLORS
	AX = 00C5h
	BX = colors to consider transparent (bit 0 = color 0, etc)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This call is ignored in text modes
	The specified colors are considered transparent by "FG_TCXFER"
SeeAlso: AX=00C4h,AX=00C6h
--------V-6200C6-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_TCXFER" - COPY REGION EXCLUDING TRANSPARENT
	AX = 00C6h
	CX = source video page
	DX = destination video page
	ES:BX -> copy record (see #3179)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	Pixels which are in any of the colors defined as transparent with
	  "FG_TCMASK" (see AX=00C5h) are left unchanged in the destination
	  region
	The source and destination regions must not overlap if they are located
	  on the same page
	This call is ignored in text modes
SeeAlso: AX=00C4h,AX=00C5h,AX=00CAh
--------V-6200C7-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_TESTMODE" - CHECK IF VIDEO MODE AVAILABLE
	AX = 00C7h
	BX = desired video mode (00h-17h, also 18h-1Dh after "FG_SVGAINIT")
	CX = required number of video pages (ignore memory size if <= 0)
Return: AX = status
	    0000h mode not available with requested number of pages
	    0001h mode is available
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0005h,AX=00B0h
--------V-6200C8-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_TEXT" - DISPLAY STRING OF CHARACTERS
	AX = 00C8h
	CX = length of string
	ES:BX -> string
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The string is displayed starting at the text cursor position using the
	  current text attribute (text modes) or color index (graphics modes)
	The text cursor position is updated after this call
SeeAlso: AX=000Ch,AX=0096h,AX=00C9h
--------V-6200C9-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_TEXTC" - DISPLAY STRING OF CHARACTERS (CLIPPED)
	AX = 00C9h
	CX = length of string
	ES:BX -> string
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	The string is displayed starting at the text cursor position using the
	  current text attribute (text modes) or color index (graphics modes),
	  showing only the portion within the current clipping window
	The text cursor position is updated after this call
SeeAlso: AX=00C8h
--------V-6200CA-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_TRANSFER" - COPY REGION
	AX = 00CAh
	CX = source video page
	DX = destination video page
	ES:BX -> copy record (see #3179)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	The source and destination regions must not overlap if they are located
	  on the same page
SeeAlso: AX=009Eh,AX=00A2h,AX=00A5h,AX=00C6h

Format of FGDRIVER copy record:
Offset	Size	Description	(Table 3179)
 00h	WORD	left edge column of source region
 02h	WORD	right edge column of source region
 04h	WORD	top edge row of source region
 06h	WORD	bottom edge row of source region
 08h	WORD	left edge of destination
 0Ah	WORD	bottom edge of destination
--------V-6200CB-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_UNPACK" - EXPAND MODE-SPECIFIC BITMAP
	AX = 00CBh
	ES:BX -> variable pointer record (see #3180)
	CX = size of source bitmap in bytes
Return: result buffer filled
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=0083h

Format of FGDRIVER UNPACK variable pointer record:
Offset	Size	Description	(Table 3180)
 00h	WORD	segment of source bitmap
 02h	WORD	offset of source bitmap
 04h	WORD	segment of buffer for resulting bitmap
 06h	WORD	offset of buffer for resulting bitmap
--------V-6200CC-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBADDR" - GET ADDRESS OF VIRTUAL BUFFER
	AX = 00CCh
	BX = virtual buffer handle (0000h-001Fh)
Return: DX:AX -> virtual buffer
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00CDh,AX=00CEh,AX=00CFh,AX=00D3h
--------V-6200CD-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBALLOC" - CREATE VIRTUAL BUFFER
	AX = 00CDh
	BX = width of virtual buffer in pixels
	CX = height in pixels
Return: AX = handle for virtual buffer, or
	    FFFEh out of memory
	    FFFFh virtual buffer table full
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00CCh,AX=00CEh,AX=00D0h,AX=00D1h,AX=00D2h,AX=00D4h
--------V-6200CE-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBCLOSE" - CLOSE ACTIVE VIRTUAL BUFFER
	AX = 00CEh
Desc:	close the active virtual buffer and direct further graphics to the
	  active video page
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00CCh,AX=00D1h,AX=00D4h,AX=00D5h,AX=00D9h
--------V-6200CF-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBCOPY" - COPY RECT BETWEEN VIRTUAL BUFFERS
	AX = 00CFh
	ES:BX -> variable record (see #3181)
	CX = handle for source virtual buffer
	DX = handle for destination virtual buffer
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	if the destination buffer is the same as the source buffer, the regions
	  must not overlap
SeeAlso: AX=00D0h,AX=00D1h,AX=00D4h,AX=00D6h,AX=00D7h

Format of FGDRIVER VBCOPY variable record:
Offset	Size	Description	(Table 3181)
 00h	WORD	source region's left edge
 02h	WORD	source region's right edge
 04h	WORD	source region's top edge
 06h	WORD	source region's bottom edge
 08h	WORD	X coordinate of destination's upper left corner
 0Ah	WORD	Y coordinate of destination's upper left corner
--------V-6200D0-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBCUT" - COPY RECT FROM VIDEO TO VIRTUAL BUFFER
	AX = 00D0h
	BX = source region's left edge
	CX = source region's right edge
	DX = source region's top edge
	SI = source region's bottom edge
	DI = X coordinate of destination's upper left corner
	ES = Y coordinate of destination's upper left corner
Desc:	copy a rectangle from the active video page to the active virtual
	  buffer
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00CDh,AX=00CFh,AX=00D4h,AX=00D6h
--------V-6200D1-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBDEFINE" - CREATE VIRTUAL BUFFER
	AX = 00D1h
	ES:BX -> memory block for virtual buffer
	CX = buffer width in pixels
	DX = buffer height in pixels
Return: AX = virtual buffer handle
	    FFFFh on error
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	the application-provided buffer must be large enough to hold CX*DX
	  bytes
SeeAlso: AX=00CCh,AX=00CDh,AX=00CEh,AX=00D2h,AX=00D4h,AX=00D5h
--------V-6200D2-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBFREE" - RELEASE VIRTUAL BUFFER
	AX = 00D2h
	BX = virtual buffer handle
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	this function should be used only for buffers created with FG_VBALLOC
SeeAlso: AX=00CDh,AX=00D4h,AX=00D5h
--------V-6200D3-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBHANDLE" - GET ACTIVE VIRTUAL BUFFER'S HANDLE
	AX = 00D3h
Return: AX = handle for active virtual buffer
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00CCh,AX=00D4h
--------V-6200D4-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBINIT" - INITIALIZE VIRTUAL BUFFER ENVIRONMENT
	AX = 00D4h
Return: nothing
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	this function must be called before any other virtual buffer functions
	  are used
SeeAlso: AX=00CDh,AX=00D5h
--------V-6200D5-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBOPEN" - MAKE VIRTUAL BUFFER ACTIVE
	AX = 00D5h
	BX = virtual buffer handle
Return: AX = status
	    0000h successful
	    FFFEh no buffer defined for specified handle
	    FFFFh invalid buffer handle
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00CDh,AX=00CEh,AX=00D1h,AX=00D4h,AX=00D9h
--------V-6200D6-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBPASTE" - COPY RECT FROM VIRTUAL BUF TO VIDEO
	AX = 00D6h
	BX = source region's left edge
	CX = source region's right edge
	DX = source region's top edge
	SI = source region's bottom edge
	DI = X coordinate of destination's upper left corner
	ES = Y coordinate of destination's upper left corner
Desc:	copy a rectangle from the active virtual buffer to the active video
	  page
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00CFh,AX=00D0h,AX=00D4h,AX=00D7h
--------V-6200D7-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBTCCOPY" - COPY RECTANGLE BETWEEN VIRTUAL BUFS
	AX = 00D7h
	ES:BX -> variable record (see #3182)
	CX = source virtual buffer's handle
	DX = destination virtual buffer's handle
Desc:	copy rectangle from one virtual buffer to another with transparent
	  colors
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	if the destination buffer is the same as the source buffer, the regions
	  must not overlap
SeeAlso: AX=00CFh,AX=00D0h,AX=00D6h,AX=00D8h

Format of FGDRIVER VBTCCOPY variable record:
Offset	Size	Description	(Table 3182)
 00h	WORD	source region's left edge
 02h	WORD	source region's right edge
 04h	WORD	source region's top edge
 06h	WORD	source region's bottom edge
 08h	WORD	X coordinate of destination region's upper left corner
 0Ah	WORD	Y coordinate of destination region's upper left corner
--------V-6200D8-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBTCXFER" - COPY RECTANGLE TO ACTIVE VIDEO PAGE
	AX = 00D8h
	BX = source region's left edge
	CX = source region's right edge
	DX = source region's top edge
	SI = source region's bottom edge
	DI = X coordinate of destination's upper left corner
	ES = Y coordinate of destination's upper left corner
Desc:	copy a rectangle from the active virtual buffer to the active video
	  page, with transparent colors
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
SeeAlso: AX=00D6h,AX=00D7h
--------V-6200D9-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VBUNDEF" - RELEASE HANDLE FOR VIRTUAL BUFFER
	AX = 00D9h
	BX = virtual buffer handle
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	the specified handle must not reference the currently-active virtual
	  buffer
SeeAlso: AX=00D1h,AX=00D5h
--------V-6200DA-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VGASTATE" - SAVE/RESTORE VGA CONTROLLER STATE
	AX = 00DAh
	BX = direction (0000h save, else restore)
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145)
	this function is only meaningful in modes 0Dh and above
--------V-6200DB-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VOICE" - START SOUND
	AX = 00DBh
	BX = channel on TI sound chip
	    1-3 = channels 1-3, 4 = channel 4 with periodic noise,
	    5 = channel 4 with white noise
	CX = frequency in Hz (18-32767 for channels 1-3; 0=512 Hz, 1=1024 Hz,
	      2=2048 Hz for channels 4 and 5)
	DX = volume
	SI = duration in clock ticks (continuous if <= 0)
Program: FGDRIVER is the external video driver for the shareware
	  Fastgraph/Light by Ted Gruber Software
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is only available on the PCjr and Tandy 1000 machines
SeeAlso: AX=0080h,AX=00BCh,AX=00DCh
--------V-6200DC-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_VOICES" - PLAY SOUNDS IN BACKGROUND
	AX = 00DCh
	ES:BX -> tone array (see #3183)
	CX = number of times to repeat tone array
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	This function is only available on the PCjr and Tandy 1000 machines
SeeAlso: AX=0059h,AX=0081h,AX=00BDh,AX=00DBh

Format of FGDRIVER tone array element:
Offset	Size	Description	(Table 3183)
 00h	WORD	channel number (0000h terminates array)
 02h	WORD	frequency
 04h	WORD	volume
 06h	WORD	duration in 1/72.8 seconds
--------V-6200DD-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_WAITFOR" - DELAY FOR SPECIFIED DURATION
	AX = 00DDh
	BX = duration in clock ticks
Return: after delay elapses
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00BFh,INT 1A/AX=FF01h
--------V-6200DE-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_WAITKEY" - FLUSH KEYBOARD BUFFER AND AWAIT KEY
	AX = 00DEh
Return: after next key pressed
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=000Ah,AX=0046h,AX=0063h,AX=0069h,INT 16/AH=00h
--------V-6200DF-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_WAITVR" - ENABLE/DISABLE VERTICAL RETRACE WAIT
	AX = 00DFh
	BX = new state (0000h disabled, 0001h enabled)
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
--------V-6200E0-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_WHERE" - GET CURRENT CURSOR POSITION
	AX = 00E0h
	ES:BX -> variable pointers (see #3184)
Return: indicated variables filled with cursor row and column for active
	  display
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=0054h,AX=0058h,AX=006Bh,AX=007Eh

Format of FGDRIVER variable pointers:
Offset	Size	Description	(Table 3184)
 00h	WORD	segment of WORD buffer for cursor row
 02h	WORD	offset of WORD buffer for cursor row
 04h	WORD	segment WORD buffer for cursor column
 06h	WORD	offset WORD buffer for cursor column
--------V-6200E1-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_XALPHA" - CONVERT SCREEN COLUMN TO CHAR COLUMN
	AX = 00E1h
	BX = screen space column
Return: AX = character space column containing specified coordinate
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00E2h,AX=00E4h
--------V-6200E2-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_XCONVERT" - CONVERT CHAR COLUMN TO SCREEN COL
	AX = 00E2h
	BX = character space column
Return: AX = screen space column of leftmost pixel in specified character col
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00E2h,AX=00E5h
--------V-6200E3-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_XVIEW" - CONVERT VIEWPORT COORDINATE
	AX = 00E3h
	BX = horizontal viewport coordinate
Return: AX = screen space X coordinate corresponding to supplied coordinate
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	if no viewport has been defined, the returned coordinate will be the
	  same as the viewport coordinate
SeeAlso: AX=00E2h,AX=00E6h
--------V-6200E4-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_YALPHA" - CONVERT SCREEN ROW TO CHARACTER ROW
	AX = 00E4h
	BX = screen space row
Return: AX = character space row containing specified coordinate
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00E1h,AX=00E5h
--------V-6200E5-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_YCONVERT" - CONVERT CHARACTER ROW TO SCREEN ROW
	AX = 00E5h
	BX = character space row
Return: AX = screen space row of topmost pixel in specified character row
Note:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
SeeAlso: AX=00E2h,AX=00E4h,AX=00E6h
--------V-6200E6-----------------------------
INT 62 u - FGDRIVER v4.02 - "FG_YVIEW" - TRANSLATE VERTICAL VIEWPORT COORDINATE
	AX = 00E6h
	BX = viewport Y coordinate
Return: AX = screen space row for viewport coordinate
Program: FGDRIVER is the external video driver for the shareware
	  Fastgraph/Light by Ted Gruber Software
Notes:	the FGDRIVER functions are rearranged with each major release, but
	  their parameters do not change (see #3145 at AX=0000h)
	if no viewport has been defined, the returned coordinate will be the
	  same as the viewport coordinate
SeeAlso: AX=00E3h,AX=00E5h
--------T-6201-------------------------------
INT 62 - Cswitch - GIVE UP REST OF TIME-SLICE
	AH = 01h
Program: Cswitch is a set of multitasking functions by Herb Rose
SeeAlso: AH=05h"Cswitch",AH=06h"Cswitch",INT 15/AX=1000h,INT 2F/AX=1680h
--------N-6201-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
	AH = 01h
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6202-------------------------------
INT 62 - Cswitch - WAIT FOR SEMAPHORE
	AH = 02h
	DX = semaphore number (0-63)
Return: AX = FFFFh bad semaphore number
	     else  success
SeeAlso: AH=03h"Cswitch",AH=04h"Cswitch"
--------N-6202-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - INITIALIZE
	AH = 02h
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=00h"ETHDEV",AH=03h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
--------T-6203-------------------------------
INT 62 - Cswitch - CHECK SEMAPHORE
	AH = 03h
	DX = semaphore number (0-63)
Return: AX = status
	    FFFFh not owned
	    else  owned
SeeAlso: AH=02h,AH=04h
--------N-6203-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET REAL IP ADDRESS
	AH = 03h
	DS:SI -> DWORD buffer for IP address
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6204-------------------------------
INT 62 - Cswitch - TRIGGER SEMAPHORE
	AH = 04h
	DX = semaphore number (0-63)
Return: AX = status
	    FFFFh bad semaphore number
	    else  success
SeeAlso: AH=02h"Cswitch",AH=03h"Cswitch"
--------N-6204-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
	AH = 04h
	BX = ???
	ES:SI -> FAR routine for ???
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6205-------------------------------
INT 62 - Cswitch - SLEEP
	AH = 05h
	BX = seconds to sleep
SeeAlso: AH=01h"Cswitch",AH=06h"Cswitch",AH=08h"Cswitch"
--------N-6205-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 05h
	???
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6206-------------------------------
INT 62 - Cswitch - SUSPEND
	AH = 06h
SeeAlso: AH=05h"Cswitch",AH=08h"Cswitch"
--------N-6206-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 06h
	???
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6207-------------------------------
INT 62 - Cswitch - SPAWN
	AH = 07h
	ES:BX -> function address to start executing at
	CX = priority (1-10)
Return: AX = result/status
	    FFFDh  no free memory control blocks
	    FFFEh  no free task control blocks
	    FFFFh  not enough memory to create new task stack
	    >0	   the tcb number of the new task, indicating no error
SeeAlso: AH=0Fh"Cswitch",AH=10h"Cswitch"
--------N-6207-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 07h
	DS:SI -> ???
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6208-------------------------------
INT 62 - Cswitch - WAKE UP TASK
	AH = 08h
	BX = tcb identifier
SeeAlso: AH=05h,AH=06h
--------N-6208-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 08h
	CX = ???
	ES:SI -> ??? buffer (see #3185)
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"

Format of BW-TCP ??? buffer:
Offset	Size	Description	(Table 3185)
 00h  6 BYTEs	hardware address???
 06h  6 BYTEs	???
 0Ch	WORD	???
 0Eh	WORD	???
----------6208--CXFFFE-----------------------
INT 62 - MS SQL Server/Sybase DBLIBRARY interface - UNINSTALL/GET PSP ADDR
	AH = 08h
	CX = FFFEh
	DX = FFFFh
Return: AX = PSP address of resident DBLIBRARY
Note:	this call does not free the memory allocated to the TSR; the calling
	  code must do the deallocation.
SeeAlso: INT 62"DBLIBRARY"
--------T-6209-------------------------------
INT 62 - Cswitch - SET PRIORITY
	AH = 09h
	BX = new base priority (1-10)
Note:	the lower the priority is numerically, the more often the task will run
--------N-6209-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - HOOK TIMER INTERRUPT
	AH = 09h
Return: CF clear if successful
	    AX = handler ID
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=0Ah"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-620A-------------------------------
INT 62 - Cswitch - TEST MESSAGE QUEUE
	AH = 0Ah
	DX = queue number (0-63)
Return: AX = result/message size
	    0000h nothing on queue
	    FFFFh bad queue number
	    else  number of bytes in first message in queue
SeeAlso: AH=0Bh"Cswitch",AH=0Ch"Cswitch"
--------N-620A-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - UNHOOK TIMER INTERRUPT
	AH = 0Ah
	DX = handler ID
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=09h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-620B-------------------------------
INT 62 - Cswitch - SEND MESSAGE
	AH = 0Bh
	CX = number of bytes to write
	DS:SI -> buffer
	DX = queue number (0-63)
Return: AX = result/message size
	    0000h no message was on queue
	    FFFEh triggered by something arriving, redo the call
	    FFFFh bad queue number
	    else  number of bytes in message
SeeAlso: AH=0Ah"Cswitch",AH=0Ch"Cswitch"
--------N-620B-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ADD ???
	AH = 0Bh
	AL = ???
	DX = ???
	BP = ???
	ES:SI -> ???
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=0Ch"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-620C-------------------------------
INT 62 - Cswitch - READ MESSAGE
	AH = 0Ch
	CX = number of bytes to read
	DS:SI -> buffer
	DX = queue number (0-63)
Return: AX = status
	    FFFFh bad queue number
	    else  number of bytes transferred
SeeAlso: AH=0Ah,AH=0Bh
--------N-620C-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - REMOVE ???
	AH = 0Ch
	DX = ???
	BP = ???
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=0Bh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-620D-------------------------------
INT 62 - Cswitch - DON'T ALLOW TASK TO BE SWAPPED OUT
	AH = 0Dh
SeeAlso: AH=0Eh"Cswitch"
--------N-620D-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - NOP for ETHDEV.ODI
	AH = 0Dh
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-620E-------------------------------
INT 62 - Cswitch - ALLOW TASK TO BE SWAPPED OUT
	AH = 0Eh
SeeAlso: AH=0Dh"Cswitch"
--------N-620E-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - BEGIN CRITICAL SECTION
	AH = 0Eh
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=0Fh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
--------T-620F-------------------------------
INT 62 - Cswitch - LOAD AND RUN PROGRAM FROM DISK
	AH = 0Fh
	ES:BX -> command line
	CX = priority (1-10)
	DX = background flag (nonzero allows loading to EMS)
Return: AX = status
	    0000h task loader queue is full
	    0001h  no error
SeeAlso: AH=07h"Cswitch",AH=10h"Cswitch",AH=13h"Cswitch"
--------N-620F-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - END CRITICAL SECTION
	AH = 0Fh
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=0Eh"ETHDEV",AH=10h"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
--------T-6210-------------------------------
INT 62 - Cswitch - TERMINATE SPAWNED PROGRAM
	AH = 10h
SeeAlso: AH=07h"Cswitch",AH=0Fh"Cswitch"
--------N-6210-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - QUERY CRITICAL SECTION
	AH = 10h
Return: CF clear if no critical section active
	CF set if in critical section
SeeAlso: AH=0Eh"ETHDEV",AH=0Fh"ETHDEV",AH=FEh,INT 21/AH=3Fh"BW-TCP"
SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h"BW-TCP",INT 64/AH=01h"BW-NFS"
--------T-6211-------------------------------
INT 62 - Cswitch - GET TCB INFORMATION
	AH = 11h
	ES:BX -> a pointer which will be set to the tcb address
Return: AX = tcb indentifier
SeeAlso: AH=12h
--------N-6211-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - SET ???
	AH = 11h
	ES:SI -> ???
Return: CF clear
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6212-------------------------------
INT 62 - Cswitch - GET TCB ADDRESS
	AH = 12h
	ES:BX -> a pointer which will be set to the tcb table address
Return: AX = tcb indentifier
SeeAlso: AH=11h"Cswitch"
--------N-6212-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET SOCKET NUMBER???
	AH = 12h
Return: CF clear if successful
	    AX = socket number??? (memory variable incremented after reading)
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------T-6213-------------------------------
INT 62 - Cswitch - CHECK STATUS OF PREVIOUS LOAD_TASK
	AH = 13h
Return: AX = result
	    FFFCh no Memory Control Blocks available
	    FFFDh no TCBs available
	    FFFEh insufficient memory
	    FFFFh cannot open file
	    0000h load in progress (not done yet)
	    else  tcb indentifier
SeeAlso: AH=0Fh
--------N-6213-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 13h
	CX = ???
Return: CF clear if successful
	    AL = 00h
	CF set on error
	    AL = error code
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------N-6214-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 14h
	ES:SI -> ???
Return: CF clear if successful
	    AL = 00h
	CF set on error
	    AL = error code
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------N-6215-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - GET ???
	AH = 15h
Return: CF clear if successful
	    AX = ??? (destroyed???)
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Notes:	call this function after reading the "ETHDEV27" device
	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
INT 64/AH=01h"BW-NFS"
--------N-6216-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 16h
	???
Return: CF clear if successful
	CF set on error
	    AL = error code
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------N-6217-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ???
	AH = 17h
	DX = segment of ???
Return: CF clear
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=24h"BW-TCP"
SeeAlso: INT 64/AH=01h"BW-NFS"
--------N-6218-------------------------------
INT 62 - BW-TCP - HW DRIVER (ETHDEV.SYS) - ALLOCATE AND MAP EMS FOR DRIVER
	AH = 18h
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Notes:	calls function 17h after EMS allocated and mapped
	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=FEh,INT 21/AH=3Fh"BW-TCP",INT 63/AH=03h"BW-TCP",INT 63/AH=24h
SeeAlso: INT 64/AH=01h"BW-NFS"
--------R-6247-------------------------------
INT 62 - PC Tools v7 COMMUTE - ???
	AH = 47h
	AL = subfunction (00h-31h)
	???
	CF set
Return: ???
Program: COMMUTE is a remote-control program bundled with Central Point
	  Software's PC Tools
--------R-6248-------------------------------
INT 62 - PC Tools v7 COMMUTE - ???
	AH = 48h
	AL = ???
	???
	CF set
Return: ???
--------R-6249-------------------------------
INT 62 - PC Tools v7 COMMUTE - ???
	AH = 49h
	???
	CF set
Return: ???
Note:	may be the same as AH=4Ch
--------R-624A-------------------------------
INT 62 - PC Tools v7 COMMUTE - ???
	AH = 4Ah
	AL = subfunction (00h-46h)
	???
	CF set
Return: ???
--------R-624B--BX1234-----------------------
INT 62 - PC Tools v7 COMMUTE - ???
	AH = 4Bh
	BX = 1234h
	CX = 1234h
	ES = ???
	CF set
Return: ???
Program: COMMUTE is a remote-control program bundled with Central Point
	  Software's PC Tools
--------R-624C-------------------------------
INT 62 - PC Tools v7 COMMUTE - ???
	AH = 4Ch
	BL = subfunction
	    00h ???
	    02h ???
Return: CF clear if successful
	CF set on error
--------R-626262-----------------------------
INT 62 - PC Tools v7 COMMUTE - INSTALLATION CHECK
	AX = 6262h
	CF set
Return: AX = 0000h
	BX = segment of resident code's PSP
Program: COMMUTE is a remote-control program bundled with Central Point
	  Software's PC Tools
--------s-62C0-------------------------------
INT 62 U - GWBTSR - API
	AH = C0h
	AL = function
	    00h installation check
		Return: AX = 00FFh if installed
	    01h ???
Program: GWBTSR is a huge (48K) resident mixer controller for the Gateway 2000
	  sound card (OEM version of Aztech Sound Galaxy)
Index:	installation check;GWBTSR
--------N-62FE-------------------------------
INT 62 - BW-TCP - ETHDRV.SYS - MAP EMS PAGE FRAME
	AH = FEh
	AL = direction
	    00h map in driver's memory block
	    01h map out driver's memory block
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4C to INT FB, selected by configuration
Notes:	this function is supported by at least the SLIP and ODI versions of
	  ETHDEV.SYS
	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=00h"ETHDEV",INT 62/AH=18h"ETHDEV"
SeeAlso: INT 63/AH=03h"BW-TCP",INT 63/AH=24h,INT 64/AH=FEh
--------*-63---------------------------------
INT 63 - reserved for user interrupt
--------d-63---------------------------------
INT 63 - Adaptec and OMTI controllers - DRIVE 0 DATA
Desc:	this vector stores the last four bytes of the parameter table for
	  hard disk 0
SeeAlso: INT 60"Adaptec",INT 61"Adaptec",INT 62"Adaptec",INT 64"Adaptec"
--------b-63---------------------------------
INT 63 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc:	the low word of this vector contains the segment of the RAM data area
	  to be used by the expansion ROM at F400h:4000h, and the high word
	  contains the length of the data area; this segment and size are
	  both set to 0000h if no ROM is installed at F400h:4000h
SeeAlso: INT 60"TI Professional PC",INT 62"TI Professional"
SeeAlso: INT 64"TI Professional PC"
----------63---------------------------------
INT 63 - Oracle SQL Protected Mode Executive - ???
--------d-63---------------------------------
INT 63 - 4+Power FLOPPY CONTROLLER - ORIGINAL INT 13/40
Desc:	the "4+Power" quad floppy controller BIOS hooks INT 13 (or INT 40 if
	  INT 13 has been moved there) and places the old value here
----------63---------------------------------
INT 63 - Kofax KF9X00 image manipulation card interface
--------Q-63---------------------------------
INT 63 - DESQview/X - SOCKET API
Notes:	parameters are passed by patching (!) data field immediately following
	  the entry point, as detailed below (see #3186); the preferred
	  method for calling the socket API is via INT 15/AX=DE2Eh
	the installation check consists of testing for the string "dvxunix"
	  (yes, lowercase) at offset 9 from the interrupt handler start
	  (see #3186)
SeeAlso: INT 15/AX=DE2Eh,INT BE"DESQview"
Index:	installation check;DESQview/X socket interface

Format of DESQview/X socket interrupt handler entry:
Offset	Size	Description	(Table 3186)
 00h  3 BYTEs	near jump or short jump + NOP to actual interrupt handler
 03h	WORD	offset from following pointer for initial top of local stack
 05h	DWORD	pointer to argument/stack block (see INT 15/AX=DE2Eh)
 09h  7 BYTEs	signature "dvxunix"
--------b-6300-------------------------------
INT 63 - HP 100LX - MAP HIGH MEMORY
	AH = 00h
	AL = physical page (00h seg C000, 01h seg C400h, ...)
	BX = zero-based logical page
	CX = page number
	DX = device ID (00h system ROM, 05h plugin, etc.)
Return: ???
SeeAlso: AH=01h
--------N-6300-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - SET IP ADDRESS???
	AH = 00h
	DS:BX -> DWORD containing IP address (big-endian)
Return: CF clear if successful
	CF set on error
	AX destroyed
Range:	INT 4D to INT FC, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=01h"BW-TCP",AH=02h"BW-TCP"
--------b-6301-------------------------------
INT 63 - HP 100LX - SAVE/RESTORE MEMORY MAP
	AH = 01h
	AL = function (00h save, 01h restore)
	???
Return: ???
--------N-6301-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 01h
	ES:BX -> ???
	???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=00h"BW-TCP",AH=02h"BW-TCP"
--------N-6302-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 02h
	???
Return: ???
SeeAlso: AH=00h"BW-TCP",AH=01h"BW-TCP"
--------N-6303-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - GET IP ADDRESS
	AH = 03h
	DS:SI -> buffer for DWORD IP address (big-endian)
Return: AX destroyed
	CF clear if successful
	CF set on error
Note:	this call may use ARP or RARP to determine the address
--------N-6304-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 04h
	???
Return: ???
--------N-6305-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 05h
	DS:BX -> ???
	ES:SI -> ???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
--------N-6306-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 06h
	???
Return: ???
--------N-6307-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 07h
	???
Return: ???
--------N-6308-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - SET DEFAULT ??? HANDLER
	AH = 08h
	DS:BX -> DWORD containing IP address
Return: CF clear if successful
	CF set on error
	???
--------N-6309-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - INSTALL ??? HANDLERS
	AH = 09h
	BL = handler type
	ES:SI -> FAR handler of specified type
Return: ???
SeeAlso: AH=0Ah,AH=0Dh
--------N-630A-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - DELETE ??? HANDLERS
	AH = 0Ah
	BL = handler type
Return: CF clear if successful
	CF set on error (no handler of specified type installed)
SeeAlso: AH=09h
--------N-630B-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 0Bh
	AL = ???
	DL = ???
	DS:BX -> ???
	ES:SI -> ???
Return: ???
--------N-630C-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 0Ch
	???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
--------N-630D-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - INSTALL DEFAULT ??? HANDLER
	AH = 0Dh
	???
Return: ???
Note:	if not already installed, installs a type 06h handler with AH=09h
SeeAlso: AH=09h
--------N-630E-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - CLOSE NETWORK DESCRIPTOR
	AH = 0Eh
	???
Return: ???
SeeAlso: INT 61/AH=08h"PC/TCP",INT 61/AH=09h"PC/TCP",INT 61/AH=18h
--------N-630F-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 0Fh
	AL = ???
	SI = ???
	DS:DI -> ???
	???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
--------N-6310-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 10h
	DS:DI -> ???
	???
Return: ???
--------N-6311-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 11h
	???
Return: ???
--------N-6312-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - LISTEN FOR INCOMING CONNECTIONS
	AH = 12h
	DS:SI -> ???
	ES:BP -> ???
Return: ???
SeeAlso: AH=14h,INT 61/AH=23h
--------N-6313-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - NOP
	AH = 13h
Return: nothing
Range:	INT 4D to INT FC, selected by configuration
--------N-6314-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - OPEN NETWORK CONNECTION
	AH = 14h
	BX = network descriptor???
	DS:SI -> ???
	ES:BP -> ???
Return: ???
SeeAlso: AH=12h,AH=16h,AH=19h,INT 61/AH=13h"PC/TCP",INT 62/AH=13h"ETHDEV"
--------N-6315-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 15h
	DS:DI -> ???
	???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
--------N-6316-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - RESET NETWORK CONNECTION
	AH = 16h
	DS:DI -> ???
Return: ???
Note:	calls AH=17h after preprocessing
SeeAlso: AH=17h,INT 61/AH=19h"PC/TCP"
--------N-6317-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 17h
	DS:DI -> ???
	???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
SeeAlso: AH=18h
--------N-6318-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 18h
	DS:DI -> ???
	???
Return: ???
Note:	same as AH=17h, except performed with interrupts disabled
SeeAlso: AH=17h
--------N-6319-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - WRITE TO THE NETWORK
	AH = 19h
	DS:DI -> ???
	???
Return: BX = number of bytes NOT written
	???
Range:	INT 4D to INT FC, selected by configuration
Note:	calls AH=17h with interrupts disabled and ??? set to 01h
SeeAlso: AH=14h,AH=1Ah,AH=1Bh,INT 61/AH=1Ah"PC/TCP"
--------N-631A-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - READ FROM THE NETWORK
	AH = 1Ah
	CX = maximum number of bytes to read
	ES:BP -> ???
	???
Return: CX = number of bytes actually read
	???
SeeAlso: AH=12h,AH=14h,AH=19h,INT 61/AH=1Bh"PC/TCP"
--------N-631B-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 1Bh
	CX = ???
	ES:BP -> ???
Return: DX = ???
	???
Range:	INT 4D to INT FC, selected by configuration
--------N-631C-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 1Ch
	DS:DI -> ???
	???
Return: ???
Note:	calls AH=17h with ???
SeeAlso: AH=17h
--------N-631D-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 1Dh
	???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
--------N-631E-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 1Eh
	DS:BX -> DWORD containing IP address (big-endian)
	???
Return: CF clear if successful
	CF set on error
	???
--------N-631F-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - SET SOCKET ??? HANDLER
	AH = 1Fh
	BX = socket number
	ES:SI -> FAR function for ???
Return: CF clear if successful
	CF set on error (out of slots)
SeeAlso: AH=20h
--------N-6320-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - REMOVE SOCKET ??? HANDLER
	AH = 20h
	BX = socket number
Return: CF clear if successful
	CF set on error (not set)
Range:	INT 4D to INT FC, selected by configuration
SeeAlso: AH=1Fh
--------N-6321-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 21h
	ES:SI -> ???
Return: ???
SeeAlso: INT 61/AH=1Ch"PC/TCP"
--------N-6322-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - REMOVE ??? HANDLER
	AH = 22h
Return: CF clear
Range:	INT 4D to INT FC, selected by configuration
Note:	decrements a counter if not already zero, and calls AH=0Ah with BL=11h
	  if the counter reaches zero
--------N-6323-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 23h
	DS:BX -> ???
	ES:SI -> 6-byte buffer for ???
Return: CF clear if successful
	CF set on error
--------N-6324-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - GET SOCKET
	AH = 24h
Return: AX = socket number (0400h-FFFFh)
Range:	INT 4D to INT FC, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
SeeAlso: AH=12h,AH=14h,INT 62/AH=12h"ETHDEV",INT 64/AH=01h"BW-NFS"
--------N-6325-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - GET INTERNET ADDRESS
	AH = 25h
Return: CL:CH:DL:DH = caller's Internet address
SeeAlso: AH=03h,AH=26h,INT 61/AH=05h"PC/TCP"
--------N-6326-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - SET INTERNET ADDRESS???
	AH = 26h
	CL:CH:DL:DH = Internet address
Return: nothing
Range:	INT 4D to INT FC, selected by configuration
Note:	this function sets a different variable than AH=25h returns
SeeAlso: AH=03h,AH=25h
--------N-6327-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - SET ???
	AH = 27h
	BX = ???
	ES:SI -> ???
Return: ???
--------N-6328-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 28h
	???
Return: ???
--------N-6329-------------------------------
INT 63 - BW-TCP - TCPIP.SYS - ???
	AH = 29h
	???
Return: ???
Range:	INT 4D to INT FC, selected by configuration
Note:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
--------*-64---------------------------------
INT 64 - reserved for user interrupt
--------d-64---------------------------------
INT 64 - Adaptec controllers - DRIVE 1 DATA
Desc:	this vector stores the first four bytes of the parameter table for
	  hard disk 1
Notes:	these vectors are used by the following Adaptec controllers:
	    ACB 2370 A/B/C, ACB 2372 A/B/C, ACB 2333 A/B, 2322B-8, 2322B-16
	these vectors are NOT used by the following Adaptec controllers:
	    ACB 2310, ACB 2312, ACB 2320D, ACB 2322D
SeeAlso: INT 60"Adaptec",INT 65"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
--------b-64---------------------------------
INT 64 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc:	the low word of this vector contains the segment of the RAM data area
	  to be used by the expansion ROM at F400h:6000h, and the high word
	  contains the length of the data area; this segment and size are
	  both set to 0000h if no ROM is installed at F400h:6000h
SeeAlso: INT 60"TI Professional PC",INT 63"TI Professional"
SeeAlso: INT 65"TI Professional PC"
----------64---------------------------------
INT 64 - Oracle SQL Protected Mode Executive - ???
--------N-64---------------------------------
INT 64 - Novell NetWare to v2.0a - LOW-LEVEL API
Note:	equivalent to INT 7A for NetWare versions through 2.0a only; later
	  versions do not use this interrupt for IPX/SPX access, instead
	  getting an entry point from INT 2F/AX=7A00h
SeeAlso: INT 2F/AX=7A00h,INT 7A"LOW-LEVEL API"
--------h-64---------------------------------
INT 64 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
SeeAlso: INT 65"DG10",INT 66"DG10"
--------r-64---------------------------------
INT 64 - Extended Batch Language v3.14+
	AH = function
	    00h to 5Fh chained to previous handler
	    60h to 6Ch reserved, return immediately
	    80h to FFh chained to previous handler
	    6Dh (v4.01+) insert tone in queue
		AL = ???
		CX = frequency in Hertz
		DL = duration in clock ticks
		Return: AL = 00h if note stored
			   = 01h if no room to store
	    6Eh clear ??? counter/flag
	    6Fh return counter/flag that AH=6Eh clears
	    70h ???
		AL = ???
	    71h ???
		AL = ???
	    72h ???
	    73h insert byte at end of keyboard buffer
		AL = byte to insert
		Return: AL = 00h if byte inserted
			   = 01h if no room to store
	    74h insert byte at front of keyboard buffer
		AL = byte to insert
		Return: AL = 00h if byte inserted
			   = 01h if no room to store
	    75h ???
	    76h get keyboard "stack" status
		AL = 'K' if kbd read will read physical keyboard
		     'S' if it will read EBL internal keyboard buffer
		AH = ???
	    77h clear internal keyboard buffer
	    78h ???
		AL = ???
	    79h ???
	    7Ah ???
		AL = ???
	    7Bh ???
		AL = ???
	    7Ch ???
		AL = ???
	    7Dh ???
		AL = ???
	    7Eh clear buffer for ???
	    7Fh installation check
		Return: CX = version in BCD
			DI = segment of ???
			BX = segment of next program's PSP???
Program: Extended Batch Language is a batch-file enhancer by Seaware
Notes:	the chaining does not check whether the interrupt had been hooked
	  before, so if you try to chain when the previous vector was
	  0000h:0000h, you'll be in trouble
	functions 72h and 7Ah-7Dh appear to be interfaces to the optional
	  floating-point and extended function packages
Index:	installation check;EBL|installation check;Extended Batch Language
--------d-64---------------------------------
INT 64 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
Note:	This vector is overwritten by Pdisk to install custom harddrive types.
	  It can either destroy 4 vectors and take no memory or TSR and take
	  up some memory.
SeeAlso: INT 65"Pdisk"
----------64---------------------------------
INT 64 - PC-DRAFT - ASYNCHRONOUS DRIVER
	???
Return: ???
Program: PC-DRAFT is a powerful CAD environment by rhv.
SeeAlso: INT 62"PC-DRAFT",INT 65"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
--------N-6401-------------------------------
INT 64 U - BW-NFS - BWRPC - ???
	AH = 01h
	ES:BX -> ??? (at least 8 bytes)
	ES:BP -> DWORD ???
	???
Return: CF clear if successful
	    ???
	CF set on error
	    CX = 0000h
Range:	INT 4E to INT FD, selected by configuration
Notes:	the Beame&Whiteside TCP/IP protocol stack uses two consecutive
	  interrupts (62h and 63h by default); the BW-NFS client uses a third
	  consecutive interrupt (64h by default) if it is loaded
	the BWRPC installation check consists of determining the interrupt
	  vector assigned to it (two more than the value returned by reading
	  the ETHDEV27 device), and testing whether the word immediately
	  preceding the interrupt handler is 4257h ('BW')
SeeAlso: INT 62/AH=00h"ETHDEV",INT 63/AH=03h"BW-TCP",INT 63/AH=24h
Index:	installation checks;BWRPC
--------N-6402-------------------------------
INT 64 U - BW-NFS - BWRPC - ???
	AH = 02h
	DS:DI -> ???
Return: ???
Note:	this call is passed directly through to INT 62/AH=07h
SeeAlso: INT 62/AH=07h"ETHDEV"
--------N-6403-------------------------------
INT 64 U - BW-NFS - BWRPC - ADD ???
	AH = 03h
	AL = ???
	BP = ???
	ES:SI -> ???
Return: ???
Note:	this call is passed directly through to INT 62/AH=0Bh
SeeAlso: AH=04h,INT 62/AH=0Bh"ETHDEV"
--------N-6404-------------------------------
INT 64 U - BW-NFS - BWRPC - REMOVE ???
	AH = 04h
	BP = ???
Return: ???
Range:	INT 4E to INT FD, selected by configuration
Note:	this call is passed directly through to INT 62/AH=0Ch
SeeAlso: AH=03h,INT 62/AH=0Ch"ETHDEV"
--------N-6405-------------------------------
INT 64 U - BW-NFS - BWRPC - ???
	AH = 05h
	CX = ???
Return: ???
Note:	this call is passed directly through to INT 62/AH=13h
SeeAlso: INT 62/AH=13h"ETHDEV"
--------N-6406-------------------------------
INT 64 U - BW-NFS - BWRPC - ???
	AH = 06h
	ES:SI -> ???
Return: AL = 00h if CF clear
Range:	INT 4E to INT FD, selected by configuration
Note:	this call is passed directly through to INT 62/AH=14h
SeeAlso: INT 62/AH=14h"ETHDEV"
--------N-6407-------------------------------
INT 64 U - BW-NFS - BWRPC - GET IP ADDRESS
	AH = 07h
Return: CX:DX = IP address
--------N-6410-------------------------------
INT 64 U - BW-NFS - BWRPC - CALL ETHDEV.SYS
	AH = 10h
	AL = ETHDEV function number
	other registers as appropriate for ETHDEV call
Return: as returned by ETHDEV
Note:	this call is passed directly through to INT 62
SeeAlso: INT 62/AH=00h"ETHDEV"
--------N-6411-------------------------------
INT 64 U - BW-NFS - BWRPC - NOP???
	AH = 11h
Return: CF clear
Range:	INT 4E to INT FD, selected by configuration
--------N-64FE-------------------------------
INT 64 - BW-NFS - BWRPC - MAP EMS PAGE FRAME
	AH = FEh
	AL = direction
	    00h map in driver's memory block
	    01h map out driver's memory block
Return: CF clear if successful
	CF set on error
	    AL = error code
Range:	INT 4E to INT FD, selected by configuration
Note:	this call is passed through directly to ETHDEV.SYS (see INT 62/AH=FEh)
SeeAlso: INT 21/AH=3Fh"BW-TCP",INT 62/AH=FEh,INT 63/AH=03h"BW-TCP"
SeeAlso: INT 63/AH=24h
--------*-65---------------------------------
INT 65 - reserved for user interrupt
--------d-65---------------------------------
INT 65 - Adaptec controllers - DRIVE 1 DATA
Desc:	this vector stores the second four bytes of the parameter table for
	  hard disk 1
SeeAlso: INT 64"Adaptec",INT 66"Adaptec",INT 67"Adaptec"
--------b-65---------------------------------
INT 65 - TI Professional PC - OPTION ROM DATA AREA POINTER (NOT A VECTOR!)
Desc:	the low word of this vector contains the segment of the RAM data area
	  to be used by the expansion ROM at F400h:8000h, and the high word
	  contains the length of the data area; this segment and size are
	  both set to 0000h if no ROM is installed at F400h:8000h
SeeAlso: INT 60"TI Professional PC",INT 64"TI Professional"
SeeAlso: INT 66"TI Professional PC"
--------h-65---------------------------------
INT 65 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
SeeAlso: INT 64"DG10",INT 66"DG10"
--------N-65---------------------------------
INT 65 - FTP Software NDIS-Packet Driver adapter - POST PROCESSING INTERRUPT
--------U-65---------------------------------
INT 65 - SD.COM v6.2
Desc:	The unregistered version of SD62.COM uses the low byte of this vector
	  to count the number of invocations, displaying a registration
	  reminder each time after the 20th use.
--------d-65---------------------------------
INT 65 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
SeeAlso: INT 64"Pdisk",INT 66"Pdisk"
----------65---------------------------------
INT 65 - PC-DRAFT - SECONDARY DISPLAY DRIVER
	???
Return: ???
Program: PC-DRAFT is a powerful CAD environment by rhv.
SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 66"PC-DRAFT",INT 67"PC-DRAFT"
--------s-65---------------------------------
INT 65 - Ad Lib SOUND.COM - INTERFACE
	SI = function number (also see separate entries below)
	    0000h Init
	    0002h RelTimeStart
	    0003h SetState
	    0004h GetState
	    0005h Flush
	    0006h SetMode
	    0007h GetMode
	    0008h SetRelVolume
	    0009h SetTempo
	    000Ah SetTranspose
	    000Bh GetTranspose
	    000Ch SetActVoice
	    000Dh GetActVoice
	    000Eh PlayNoteDel
	    000Fh PlayNote
	    0010h SetTimbre
	    0011h SetPitch
	    0012h SetTickBeat
	    0013h NoteOn
	    0014h NoteOff
	    0015h Timbre
	    0016h SetPitchBend
	    0017h WaveForm
	ES:BX -> arguments
Note:	the installation check consists of checking for the signature block
	  immediately preceding the interrupt handler (see #3187)
SeeAlso: SI=8000h
Index:	installation check;Ad Lib SOUND.COM

Format of AdLib signature block:
Offset	Size	Description	(Table 3187)
 00h	WORD	version number
 02h 19 BYTEs	"SOUND-DRIVER-AD-LIB"
 15h	BYTE	01h
 16h	BYTE	01h
 17h	BYTE	00h
--------N-65----DX4147-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
	DX = 4147h
	BH = 01h
	BL = function number (00h-2Ah)
	???
Return: CF clear if successful
	    AX = ???
	CF set on error
	    AX = error code (0001h=invalid function/subfunction)
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number and function number may be retrieved via INT 2A/AX=4147h
Note:	this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and
	  ROUTER.COM
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4147-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
	DX = 4147h
	BH = 02h
	BL = function number (00h-05h)
	???
Return: CF clear if successful
	    AX = ???
	CF set on error
	    AX = error code (0001h=invalid function/subfunction)
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number and function number may be retrieved via INT 2A/AX=4147h
Note:	this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and
	  ROUTER.COM
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4147-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
	DX = 4147h
	BH = 03h
	BL = function number (00h-03h) (00h-04h for ROUTER.COM)
	???
Return: CF clear if successful
	    AX = ???
	CF set on error
	    AX = error code
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number and function number may be retrieved via INT 2A/AX=4147h
Note:	this API is supported by CLIENT.COM, SERVER.COM, DOSNET.COM, and
	  ROUTER.COM
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4147-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
	DX = 4147h
	BH = 04h
	BL = function number (00h-07h)
	???
Return: CF clear if successful
	    AX = ???
	CF set on error
	    AX = error code
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number and function number may be retrieved via INT 2A/AX=4147h
Note:	this API is supported by CLIENT.COM, SERVER.COM, and DOSNET.COM
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4147-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - ??? API
	DX = 4147h
	BH = 07h
	BL = function number (00h-08h)
	???
Return: CF clear if successful
	    AX = ???
	CF set on error
	    AX = error code (0001h=invalid function/subfunction)
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number and function number may be retrieved via INT 2A/AX=4147h
Note:	this API is supported by CLIENT.COM, SERVER.COM, and DOSNET.COM
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4147-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - INSTALLATION CHECK???
	DX = 4147h
	BH = 80h
Return: CF set
	AX = 0001h
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number and function number may be retrieved via INT 2A/AX=4147h
Note:	this call is supported by CLIENT.COM, SERVER.COM, and ROUTER.COM
SeeAlso: DX=4147h,INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER - ???
	DX = 4741h
	BH = 01h
	AL = 02h
	BL = function number (0Eh,0Fh)
	AH = subfunction number
	???
Return: ???
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ???
	DX = 4741h
	BH = 01h
	AL = 03h
	BL = function number (0Eh,0Fh)
	AH = subfunction number
	???
Return: ???
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR - ???
	DX = 4741h
	BH = 01h
	AL = 04h
	BL = function number (0Eh,0Fh)
	AH = subfunction number
	???
Return: ???
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - NETBIOS - ???
	DX = 4741h
	BH = 01h
	AL = 07h
	BL = function number (0Eh,0Fh)
	AH = subfunction number
	???
Return: ???
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - MACTEST - ???
	DX = 4741h
	BH = 01h
	AL = 08h
	BL = function number (0Eh,0Fh)
	AH = subfunction number
	???
Return: ???
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - Physical Layer - ???
	DX = 4741h
	BH = 02h
	BL = function number (01h-04h)
	???
Return: ???
	---function 02h---
	DS:SI -> ??? data area
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
Note:	this API is supported by PARALLEL.COM, SERIAL.COM, ARCNET.COM,
	  ETHERNET.COM, NDIS.COM, ODI.COM, SMC.COM, and FTP.COM
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - SPOOLER.COM - ???
	DX = 4741h
	BH = 05h
	BL = function number (00h,01h)
Return: CF clear
	AL = status code (00h=successful)
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - PRNREDIR.COM - ???
	DX = 4741h
	BH = 06h
	BL = function number (00h-04h)
	???
Return: ???
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - COMREDIR.COM - ???
	DX = 4741h
	BH = 08h
	BL = function number (00h-01h)
	???
Return: ???
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------N-65----DX4741-----------------------
INT 65 U - NetSoft DOS-NET v1.20+ - FTP.COM - ???
	DX = 4741h
	BX = 8010h
	AL = instance number???
Return: AX = 0008h if AL matches internal variable (call chained otherwise)
Range:	INT ?? to INT ??, selected by configuration option; actual interrupt
	  number may be retrieved via INT 2A/AX=4147h
SeeAlso: DX=4147h"INSTALLATION",INT 2A/AX=4147h
--------s-65----SI0000-----------------------
INT 65 - Ad Lib SOUND.COM - INITIALIZE (RESET)
	SI = 0000h
--------s-65----SI0003-----------------------
INT 65 - Ad Lib SOUND.COM - SET STATE
	SI = 0003h
	ES:BX -> WORD new state (0000h disabled, 0001h enabled)
SeeAlso: SI=0004h
--------s-65----SI0004-----------------------
INT 65 - Ad Lib SOUND.COM - GET STATE
	SI = 0004h
Return: AX = status
	    0000h all done playing sounds
	    else  still playing sounds
SeeAlso: SI=0003h
--------s-65----SI0006-----------------------
INT 65 - Ad Lib SOUND.COM - SET MODE
	SI = 0006h
	ES:BX -> WORD new mode (0000h melodic, 0001h percussive)
SeeAlso: SI=0007h
--------s-65----SI0007-----------------------
INT 65 - Ad Lib SOUND.COM - GET MODE
	SI = 0007h
Return: AX = mode
	    0000h melodic
	    0001h percussive
SeeAlso: SI=0006h
--------s-65----SI000C-----------------------
INT 65 - Ad Lib SOUND.COM - SET ACTIVE VOICE
	SI = 000Ch
	ES:BX -> WORD voice = 0000h to 0008h
SeeAlso: SI=000Dh
--------s-65----SI000D-----------------------
INT 65 - Ad Lib SOUND.COM - GET ACTIVE VOICE
	SI = 000Dh
Return: AX = voice (0000h to 0008h)
SeeAlso: SI=000Ch
--------s-65----SI8000-----------------------
INT 65 u - Media Vision FM.COM v4.1a+ - GET INTERNAL DATA STRUCTURES
	SI = 8000h
Return: DX:AX -> internal data structures
Program: FM.COM is an Ad Lib SOUND.COM-compatible driver for Media Vision's
	  Pro Audio Spectrum sound boards
SeeAlso: SI=8001h
--------s-65----SI8001-----------------------
INT 65 u - Media Vision FM.COM v4.1a+ - GET VOICE COUNT
	SI = 8001h
Return: AX = ???
	DX = number of voices??? (09h or 0Bh)
SeeAlso: SI=8000h
--------s-65----SI8002-----------------------
INT 65 - Media Vision FM.COM v4.1a+ - START BACKGROUND FM SOUNDS
	SI = 8002h
SeeAlso: SI=8003h
--------s-65----SI8003-----------------------
INT 65 - Media Vision FM.COM v4.1a+ - STOP BACKGROUND FM SOUNDS
	SI = 8003h
SeeAlso: SI=8002h
--------s-65----SI8004-----------------------
INT 65 U - Media Vision FM.COM v4.1a+ - GET ???
	SI = 8004h
Return: AX = ??? (0280h)
	DX = ??? (01A0h)
--------s-65----SI8005-----------------------
INT 65 U - Media Vision FM.COM v4.1a+ - ???
	SI = 8005h
	???
Return: ???
SeeAlso: SI=8000h
--------S-65---------------------------------
INT 65 U - EZRECV v1.0 - API
	AX = function
	    0000h ???
		Return: AX = ??? or FFFFh
	    0001h ???
		Return: AX = status (0000h or 0001h)
	    0002h ???
		Return: AX = status (0000h or 0001h)
	    0003h set ??? to 0001h
		Return: AX = 0000h
	    0004h ???
		Return: AX = ???
Return: BH = COM port being used
	BL = speed???
	CH = ???
	CL = ???
	DX = ???
	DS = ???
	ES = EZRECV data segment
Program: EZRECV is a background Zmodem file receiver by Express Consulting
--------*-66---------------------------------
INT 66 - reserved for user interrupt
--------d-66---------------------------------
INT 66 - Adaptec controllers - DRIVE 1 DATA
Desc:	this vector stores the third four bytes of the parameter table for
	  hard disk 1
SeeAlso: INT 64"Adaptec",INT 65"Adaptec",INT 67"Adaptec"
--------b-66---------------------------------
INT 66 - TI Professional PC - SYSTEM INFORMATION (NOT A VECTOR!)
Desc:	the low word of this vector contains the system memory size in
	  paragraphs; the third byte contains the number of outstanding
	  interrupt requests, and the fourth byte contains a description
	  of the installed drive types (see #3188)
SeeAlso: INT 60"TI Professional PC",INT 67"TI Professional"

Bitfields for TI Professional drive type information:
Bit(s)	Description	(Table 3188)
 7	floppy drive D: has 80 tracks
 6	floppy drive D: is double-sided
 5	floppy drive C: has 80 tracks
 4	floppy drive C: is double-sided
 3	floppy drive B: has 80 tracks
 2	floppy drive B: is double-sided
 1	floppy drive A: has 80 tracks
 0	floppy drive A: is double-sided
--------h-66---------------------------------
INT 66 - Data General DG10 - MicroECLIPSE COPROCESSOR INTERFACE
SeeAlso: INT 64"DG10"
--------N-66---------------------------------
INT 66 C - Nanosoft, Inc. TurboNET - NETWORK PROCESSING ???
Program: TurboNET is a NetBIOS-based file redirector and server
Note:	hooked but not used (IRET) by both redirector and server; called from
	  server's INT 28 handler
SeeAlso: INT 2F/AX=8100h
--------d-66---------------------------------
INT 66 - Pdisk by Scott Garfinkle - Overwritten for Hard Drive information
SeeAlso: INT 64"Pdisk",INT 67"Pdisk"
--------W-66---------------------------------
INT 66 - Microsoft Windows VITD.386 Virtual Interval Timer
Note:	This Windows 3.x Virtual Device Driver implements a virtual timer
	  which will expire and call INT 66.  This timer can be used to
	  calculate elapsed execution time etc.
--------K-66---------------------------------
INT 66 - Newkey v5.4 - INSTALLATION VECTOR
Return: immediately (IRET)
Program: Newkey is a shareware keyboard macro program by Frank A. Bell
Range:	INT 60h to INT 67h, selected by scanning for highest unused vector
Note:	the installation check consists of testing for the signature bytes
	  FDh FCh FFh FEh at offset 03h in the interrupt handlers segment
BUG:	the code obviously intends to use INT F0-FE, INT 70-77, and INT 68-6F
	  before falling back to INT 60-67, but only uses the last of these
	  ranges in v5.4
SeeAlso: INT 2F/AX=E300h
Index: installation checks;Newkey|Newkey;installation check
----------66---------------------------------
INT 66 - PC-DRAFT - TABLET/DIGITIZER DRIVER
	???
Return: ???
Program: PC-DRAFT is a powerful CAD environment by rhv.
SeeAlso: INT 62"PC-DRAFT",INT 64"PC-DRAFT",INT 65"PC-DRAFT",INT 67"PC-DRAFT"
--------U-66---------------------------------
INT 66 - PC-Magazin - INCA
	details not yet availble
Program: INCA is a utility from PC-Magazin (the German edition of PC Magazine)
	  issue 51-52/85.
SeeAlso: INT 61"SWAPx"
--------F-6601-------------------------------
INT 66 - BitFax Scheduler - SET MODE???
	AH = 01h
SeeAlso: AH=02h
--------F-6602-------------------------------
INT 66 - BitFax Scheduler - SET MODE???
	AH = 02h
SeeAlso: AH=01h
--------F-6603-------------------------------
INT 66 - BitFax Scheduler - SCHEDULE FAX TRANSMISSIONS
	AH = 03h
	???
Return: ???
SeeAlso: AH=05h
--------F-6604-------------------------------
INT 66 - BitFax Scheduler - GET STATUS???
	AH = 04h
Return: AX = ??? (0000h or 0001h)
	DX = BitSched version???  (for versions >= 3.00)
	    9796h (ver. 3.00)
	    97E6h (ver. 3.02)
	    92D0h (ver. 3.04.06)
	    9510h (ver. 3.06.02)
SeeAlso: AH=06h,AX=3345h,INT 2F/AX=8000h"FaxBIOS"
--------F-6605-------------------------------
INT 66 - BitFax Scheduler - CONVERT FILE AND SEND FAX
	AH = 05h
	BX:CX -> command block (see #3189)
	???
Return: ???
SeeAlso: AH=03h

Format of BitFax command block:
Offset	Size	Description	(Table 3189)
 00h 18 BYTEs	configuration bytes???
 12h	BYTEs	ASCIZ temporary file name to place converted fax
 52h	BYTEs	ASCIZ directory containing BitFax executables
 92h	BYTEs	ASCIZ telephone number
 C2h	BYTE	cover page control (00h don't send, 01h do send cover page)
 C3h 15 BYTEs	configuration bytes???
 E2h	BYTEs	ASCIZ path of BITFAX.TRA file (containing additional
		  configuration information???)
122h	BYTEs	configuration bytes???
12Ch	BYTE	00h don't send cover page
		01h send cover page
12Dh  7 BYTEs	configuration bytes???
134h	BYTEs	ASCIZ path of file to send
174h	BYTEs	more configuration bytes???
	???
--------F-6606-------------------------------
INT 66 - BitFax Scheduler - SET MODE???
	AH = 06h
Return: DX = BitSched version??? (same as AH=04h)
SeeAlso: AH=04h
--------s-660688-----------------------------
INT 66 - IBMSND driver, DIGPAK - PLAY 8-BIT DIGITIZED SOUND
	AX = 0688h
	DS:SI -> SNDSTRUC (see #3190)
Return: ???
Program: The IBMSND driver is part of John W. Ratcliff's
	   The IBM Digitized Sound Package
	DIGPAK is a set of digitized sound drivers written by
	  John W. Ratcliff, The Audio Solution, Inc.
Note:	the installation check consists of looking for a valid signature
	  string six bytes prior to the interrupt handler; this string may
	  be either "KERN" or "MIDI" (in the latter case, call AX=0701h to
	  determine whether IBMSND is installed)
SeeAlso: AX=068Bh,AX=068Fh,AX=0701h

Format of IBMSND driver SNDSTRUC:
Offset	Size	Description	(Table 3190)
 00h	DWORD	-> audio data
 04h	WORD	length of audio data in bytes
 06h	DWORD	-> playback status flag
 0Ah	WORD	playback frequency
--------s-660689-----------------------------
INT 66 - IBMSND driver, DIGPAK - REPORT SOUND DRIVER STATUS
	AX = 0689h
Return: AX = status
	    0000h no sound playing
	    0001h sound effect is currently playing
	---DIGPAK---
	BX = version number (v3.1+)
	DX = looping status
	    0000h no sound looping
	    0001h sound effect is currently looping
SeeAlso: AX=0688h,AX=068Bh,AX=068Ch
Index:	version check;DIGPAK
--------s-66068A-----------------------------
INT 66 - IBMSND driver, DIGPAK - PREFORMAT SOUND
	AX = 068Ah
	DS:SI -> SNDSTRUC (see #3190)
Desc:	convert audio data into output hardware format
SeeAlso: AX=068Bh
--------s-66068B-----------------------------
INT 66 - IBMSND driver, DIGPAK - PLAY PREFORMATTED SOUND
	AX = 068Bh
	DS:SI -> SNDSTRUC (see #3190)
Return: AX = ???
SeeAlso: AX=0688h,AX=068Ah,AX=068Fh
--------s-66068C-----------------------------
INT 66 - IBMSND driver, DIGPAK - REPORT AUDIO DRIVER CAPABILITIES
	AX = 068Ch
Return: AX = capabilities (see #3191)
	DX = playback rate if fixed-frequency playback
	---DIGPAK---
	BX:CX -> ASCIZ ID string
SeeAlso: AX=0689h,AX=068Dh

Bitfields for IBMSND driver capabilities:
Bit(s)	Description	(Table 3191)
 0	can play audio in background
 1	data is massaged for output device
 2	driver plays at fixed frequency, resampling input data to fit
 3	driver uses timer interrupt
---DIGPAK---
 4	device supports timer sharing
 5	supports looped sounds and pending
 6	supports stereo panning
 7	supports 8-bit PCM stereo playback
 8	supports audio recording
 9	supports DMA bakcfilling
--------s-66068D-----------------------------
INT 66 - IBMSND driver, DIGPAK - REPORT CURRENT SAMPLE ADDRESS
	AX = 068Dh
Return: AX = current playback address
Desc:	determine what point in the audio data the playback has reached, for
	  synchronization with video or animation effects
Notes:	this function applies to background playback only
	the reported address may be an approximation rather than the exact
	  address
SeeAlso: AX=068Ch,AX=0691h
--------s-66068E-----------------------------
INT 66 - IBMSND driver, DIGPAK - SET CALLBACK ADDRESS
	AX = 068Eh
	BX:DX -> callback function
	    0000h:0000h to disable callback
	DS = value to load into DS when calling the callback function
Desc:	specify the function to be called when playback of a sound effect is
	  completed
Note:	the callback function will typically be called during a hardware
	  interrupt, so all the usual precautions should be taken except for
	  preserving registers
SeeAlso: AX=0691h
--------s-66068F-----------------------------
INT 66 - IBMSND driver, DIGPAK - STOP CURRENT SOUND
	AX = 068Fh
Desc:	cause any currently-playing sound effect to be terminated
SeeAlso: AX=0688h,AX=068Bh
--------s-660690-----------------------------
INT 66 - IBMSND driver, DIGPAK - "SetAudioHardware" - SET UP HARDWARE INFO
	AX = 0690h
	BX = IRQ
	CX = base address
	DX = other setup value (device-dependent???)
--------s-660691-----------------------------
INT 66 - IBMSND driver, DIGPAK - REPORT CALLBACK ADDRESS
	AX = 0691h
Return: AX:DX -> current callback function
	BX = original caller's DS register
Program: The IBMSND driver is part of John W. Ratcliff's
	   The IBM Digitized Sound Package
	DIGPAK is a set of digitized sound drivers written by
	  John W. Ratcliff, The Audio Solution, Inc.
SeeAlso: AX=068Eh
--------s-660693-----------------------------
INT 66 - DIGPAK - SET TIMER DIVISOR RATE
	AX = 0693h
	DX = rate
Program: DIGPAK is a set of digitized sound drivers written by
	  John W. Ratcliff, The Audio Solution, Inc.
--------s-660694-----------------------------
INT 66 - DIGPAK - PLAY PREFORMATTED DATA
	AX = 0694h
	DS:SI -> Sound Data structure (see #3190)
Return: AX = status???
--------s-660695-----------------------------
INT 66 - DIGPAK - POST AUDIO PENDING
	AX = 0695h
	DS:SI -> Sound Data structure (***)
Return: AX = status
	    0000h sound started playing
	    0001h sound was posted as pending to play
	    0002h sound effect already pending, this one not posted
SeeAlso: AX=0696h
--------s-660696-----------------------------
INT 66 - DIGPAK - GET AUDIO PENDING STATUS
	AX = 0696h
Return: AX = status
	    0000h no sound is playing
	    0001h sound playing, and a sound is pending
	    0002h sound playing, no sound pending
SeeAlso: AX=0695h
--------s-660697-----------------------------
INT 66 - DIGPAK - SET STEREO PANNING
	AX = 0697h
	DX = panning position (0 = right, 127 = left)
Return: AX = status
	    0000h command ignored (not supported)
	    0001h panning set
--------s-660698-----------------------------
INT 66 - DIGPAK - SET PLAY MODE
	AX = 0698h
	DX = playback mode
	    0000h 8-bit PCM
	    0001h 8-bit stereo PCM
	    0002h 16-bit PCM
	    0003h 16-bit stereo PCM
Return: AX = status
	    0000h command ignored
	    0001h mode set
--------s-660699-----------------------------
INT 66 - DIGPAK - GET ADDRESSES
	AX = 0699h
Return: AX = pending address
	BX = semaphore address
--------s-66069A-----------------------------
INT 66 - DIGPAK - SET RECORD MODE
	AX = 069Ah
	DX = recording mode
	    0000h turn audio recording on
	    0001h turn audio recording off
Return: AX = status
	    0000h command ignored
	    0001h audio recording mode set
--------s-66069B-----------------------------
INT 66 - DIGPAK - STOP NEXT LOOP
	AX = 069Bh
--------s-66069C-----------------------------
INT 66 - DIGPAK - SET DMA BACKFILL MODE
	AX = 069Ch
	DX = mode
	    0000h turn backfill mode on
	    0001h turn backfill mode off
Return: AX = status
	    0000h command ignored
	    0001h backfill mode set
SeeAlso: AX=069Dh,AX=069Eh
--------s-66069D-----------------------------
INT 66 - DIGPAK - REPORT DMA COUNTER
	AX = 069Dh
Return: AX = DMA counter
SeeAlso: AX=069Eh
--------s-66069E-----------------------------
INT 66 - DIGPAK - VERIFY DMA BLOCK
	AX = 069Eh
	CX = length of buffer
	ES:BX -> buffer containing sound data
Return: AX = status
	    0000h block crosses 64K bounadary
	    0001h block is OK
SeeAlso: AX=069Dh
--------s-66069F-----------------------------
INT 66 - DIGPAK - SET PCM VOLUME
	AX = 069Fh
	BX = left channel volume (0-100)
	CX = right channel volume (0-100)
Return: AX =  status
	    0000h command ignored
	    0001h volume set
--------s-6606A0-----------------------------
INT 66 - DIGPAK - SET DPMI MODE
	AX = 06A0h
	DX = mode
	    0000h 32-bit register addressing on
	    0001h 32-bit register addressing off
SeeAlso: INT 31/AX=0400h
--------s-660700-----------------------------
INT 66 - MIDPAK - UNINSTALL
	AX = 0700h
Note:	this function should NOT be called by applications
Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
	  Incorporated.
--------s-660701-----------------------------
INT 66 - IBM Digitized Sound Package MIDI driver - GET DIGITIZED SOUND CAPABIL
	AX = 0701h
Return: AX = digitized sound capabilities
	    0000h if digitized sound driver (functions 06xxh) not available
Notes:	the installation check for the MIDI driver is to test for the signature
	  "MIDI" six bytes before the interrupt handler
	also supported by MIDPAK, the successor to the Digitized Sound
	  Package's MIDI driver
SeeAlso: AX=0688h
--------s-660702-----------------------------
INT 66 - MIDPAK - PLAY SEQUENCE
	AX = 0702h
	BX = Sequence number
Return: AX = status
	    0000h Sequence is being played
	    0001h Sequence not available
SeeAlso: AX=0703h,AX=0705h
--------s-660703-----------------------------
INT 66 - MIDPAK - SEGUE SEQUENCE
	AX = 0703h
	BX = sequence number
	CX = activation code (FFFFh is next trigger)
Return: ???
--------s-660704-----------------------------
INT 66 - MIDPAK - REGISTER XMIDI
	AX = 0704h
	CX:BX -> XMIDI sequence data
	DI:SI = length of XMIDI data
Return: AX = status
	    0000h unable to register XMIDI data
	    0001h XMIDI file registered resident
	    0002h XMIDI file was registered to the application
--------s-660705-----------------------------
INT 66 - MIDPAK - STOP MIDI
	AX = 0705h
SeeAlso: AX=0702h,AX=0709h
--------s-660706-----------------------------
INT 66 O - MIDPAK - REMAP CHANNEL
	AX = 0706h
	BX = sequence
	CX = physical
--------s-660707-----------------------------
INT 66 - MIDPAK - REPORT TRIGGER EVENT COUNTER
	AX = 0707h
Return: AX = count of number of callbacks since last reset
	DX = ID
SeeAlso: AX=0708h,AX=0713h
--------s-660708-----------------------------
INT 66 - MIDPAK - RESET EVENT TRIGGER COUNTER
	AX = 0708h
SeeAlso: AX=0707h,AX=0713h
--------s-660709-----------------------------
INT 66 O - MIDPAK - MIDI SLEEP
	AX = 0709h
SeeAlso: AX=070Ah
--------s-66070A-----------------------------
INT 66 O - MIDPAK - MIDI AWAKE
	AX = 070Ah
SeeAlso: AX=0709h
--------s-66070B-----------------------------
INT 66 - MIDPAK - RESUME PLAYING
	AX = 070Bh
SeeAlso: AX=070Ch
--------s-66070C-----------------------------
INT 66 - MIDPAK - GET SEQUENCE STATUS
	AX = 070Ch
Return: AX = status
	    0000h sequence stopped
	    0001h sequence playing
	    0002h sequence done
SeeAlso: AX=070Bh
--------s-66070D-----------------------------
INT 66 - MIDPAK - REGISTER XMIDI FILE
	AX = 070Dh
	CX:BX -> ASCII filename
SeeAlso: AX=0704h,AX=0710h
--------s-66070E-----------------------------
INT 66 - MIDPAK - GET RELATIVE VOLUME
	AX = 070Eh
Return: AX = current volume
SeeAlso: AX=070Fh
--------s-66070F-----------------------------
INT 66 - MIDPAK - SET RELATIVE VOLUME
	AX = 070Fh
	BX = new volume
	CX = time
SeeAlso: AX=070Eh
--------s-660710-----------------------------
INT 66 - MIDPAK - LOAD MIDPAK DRIVER
	AX = 0710h
	BX = segment of .ADV driver
	CX = 0000h (offset must be zero)
	DX:SI -> .AD driver
SeeAlso: AX=070Dh
--------s-660711-----------------------------
INT 66 - MIDPAK - POLL MIDPAK
	AX = 0711h
Return: AX = ???
	???
SeeAlso: AX=0712h
--------s-660712-----------------------------
INT 66 - MIDPAK - GET MIDI CLOCK
	AX = 0712h
Return: AX:DX = clock counter
	CX:BX = clock address
SeeAlso: AX=0711h,AX=0713h
--------s-660713-----------------------------
INT 66 - MIDPAK - GET TRIGGER COUNT ADDRESS
	AX = 0713h
Return: AX:DX -> trigger counter address
SeeAlso: AX=0707h,AX=0712h,AX=0714h
--------s-660714-----------------------------
INT 66 - MIDPAK - GET EVENT ID ADDRESS
	AX = 0714h
Return: AX:DX -> event ID
SeeAlso: AX=0713h,AX=0716h
--------s-660716-----------------------------
INT 66 - MIDPAK - REPORT SEQUENCE NUMBER
	AX = 0716h
Return: AX = current sequence number
SeeAlso: AX=0702h
Program: MIDPAK is a set of MIDI sound drivers developed by Miles Design
	  Incorporated.
--------n-6610-------------------------------
INT 66 - PenDOS - TDMOUSE.EXE - GET ???
	AH = 10h
Return: CF clear
	AX = 0000h
	BX = ??? (0012h)
	DX:CX -> TDMOUSE INT 33 handler (IRET to hide mouse from other apps)
Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
	  a touchpad; PenDOS is a set of programs by Communication Intelligence
	  Corporation which makes applications pen-aware
--------n-6611-------------------------------
INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
	AH = 11h
	DX:BX -> new handler for ???
Return: CF clear
	AX = 0000h
	DX:BX -> old handler for ??? (points at RETF by default)
--------n-6612-------------------------------
INT 66 - PenDOS - TDMOUSE.EXE - INITIALIZE
	AH = 12h
Return: CF clear
	AX = 0000h
Note:	this function calls the old mouse handler with functions 0000h, 0002h,
	  0007h, 0008h, 000Fh, 0004h, and 000Ch (in that order)
SeeAlso: AH=13h
--------n-6613-------------------------------
INT 66 - PenDOS - TDMOUSE.EXE - SHUTDOWN???
	AH = 13h
Return: CF clear
	other register as returned by INT 33/AX=0000h
SeeAlso: AH=12h
--------n-6614-------------------------------
INT 66 - PenDOS - TDMOUSE.EXE - ???
	AH = 14h
	BX = ???
	CX = ???
Return: CF clear
	AX = 0000h
--------n-6615-------------------------------
INT 66 - PenDOS - TDMOUSE.EXE - SET ??? HANDLER
	AH = 15h
	DX:BX -> new handler for ???
Return: CF clear
	AX = 0000h
	DX:BX -> old handler (points at RETF by default)
--------n-6616-------------------------------
INT 66 - PenDOS - TDMOUSE.EXE - UNUSED FUNCTIONS
	AH = 16h to 1Fh
Return: CF set
Program: TDMOUSE is a PenDOS hardware driver which allows a mouse to emulate
	  a touchpad; PenDOS is a set of programs by Communication Intelligence
	  Corporation which makes applications pen-aware
--------n-6621-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 21h
Return: CF clear if successful
	CF set on error
Note:	this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
--------n-6622-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 22h
	DX:BX -> ???
	CL = ???
Return: CF clear if successful
	CF set on error
	???
SeeAlso: AH=24h
--------n-6623-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 23h
	???
Return: CF clear if successful
	CF set on error
	???
--------n-6624-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 24h
	DX:BX -> ???
	CL = ???
Return: CF clear if successful
	CF set on error
	???
SeeAlso: AH=22h
--------n-6625-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 25h
	CL = ??? (NOP if 00h)
	???
Return: CF clear if successful
	CF set on error
	???
--------n-6627-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 27h
	BL = ???
	BH = ???
	CL = ??? (0-3)
	DL = ??? (> BL)
	DH = ??? (> BH)
Return: ???
--------n-6628-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 28h
	???
Return: CF clear if successful
	CF set on error
	???
Note:	this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
--------n-6629-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 29h
	???
Return: ???
Note:	this function sets ??? flag or counter (also set by AH=2Fh) to FFFFh
--------n-662A-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 2Ah
	DL = ??? (nonzero)
	DH = ??? (nonzero)
Return: CF clear if successful
	CF set on error
	???
--------n-662B-------------------------------
INT 66 - PenDOS - PINK - ???
	AH = 2Bh
	???
Return: CF clear if successful
	CF set on error
	???
--------n-662F-------------------------------
INT 66 - PenDOS - PINK - INITIALIZE
	AH = 2Fh
	???
Return: AX = status
	    0000h failed
	    FFFFh successful
	???
Note:	this function sets ??? flag or counter to FFFFh and hooks INT 1Ch
--------F-663345-----------------------------
INT 66 - BitFax Scheduler - REMOVE TSR FROM MEMORY
	AX = 3345h
Return: AX = FFFFh error removing TSR
Note:	the installation check consists of checking for the signature
	  "BitFax Scheduler" beginning two bytes past the interrupt handler
SeeAlso: AH=04h,INT 2F/AH=2Ah,INT 2F/AX=CB00h
Index:	installation check;BitFax Scheduler
--------n-6640-------------------------------
INT 66 - PenDOS - PKEYUS - GET VERSION
	AH = 40h
Return: CF clear
	AX = 0000h
	BH = major version (02h for version bundled with IBM DOS 6.1)
	BL = minor version (00h for version bundled with IBM DOS 6.1)
	DL = ??? (4Eh)
	DH = ??? (0Eh)
--------n-6641-------------------------------
INT 66 - PenDOS - PKEYUS - SET ???
	AH = 41h
	BX = ???
	CL = ??? (08h-20h)
	DL = screen column??? (<= 50h)
	DH = screen row???  (<= 3Ch)
Return: AX = status (0000h successful, 0001h error)
Note:	this function also sets an internal flag
SeeAlso: AH=42h,AH=43h
--------n-6642-------------------------------
INT 66 - PenDOS - PKEYUS - ???
	AH = 42h
Return: CF clear
	AX = 0000h
Note:	this function also clears the flag set by AH=41h
SeeAlso: AH=41h
--------n-6643-------------------------------
INT 66 - PenDOS - PKEYUS - ???
	AH = 43h
	BX = ???
	DX = ???
Return: AX = status
	    0000h if AH=41h flag set
	    else
		AH = ???
		AL = ???
		BX = ???
		DX = ???
SeeAlso: AH=41h
--------n-6644-------------------------------
INT 66 - PenDOS - PKEYUS - UNUSED FUNCTIONS
	AH = 44h to 4Fh
Return: CF set
--------n-6650-------------------------------
INT 66 - PenDOS - PMOUSE - SET ???
	AH = 50h
	BX = ???
	CH = ???
	DX = ???
Return: CF clear
	AX = 0000h
--------n-6651-------------------------------
INT 66 - PenDOS - PMOUSE - NOP
	AH = 51h
Return: CF set
--------n-6652-------------------------------
INT 66 - PenDOS - PMOUSE - ???
	AH = 52h
	BX = ???
	CL = ???
	DX = ???
Return: ???
--------n-6653-------------------------------
INT 66 - PenDOS - PMOUSE - UNUSED FUNCTIONS
	AH = 53h to 57h
Return: CF set
--------n-66---------------------------------
INT 66 - PenDOS - PMOUSE - ALTERNATE API
	AH = function (58h-5Fh)
Note:	these functions exactly duplicate AH=50h-57h
--------U-66AA02-----------------------------
INT 66 - HelpTSR v2.10 - INSTALLATION CHECK
	AX = AA02h
Return: ES:DI -> 7 byte signature "HelpTSR" if resident
Program: HelpTSR is a resident viewer by David Jurgens for HelpPC
--------n-66C5-------------------------------
INT 66 - PenDOS - VLOAD - API
	AH = C5h
	???
Return: ???
--------t-66FFFBBXFFFB-----------------------
INT 66 - MicroHelp Stay-Res Plus - ???
	AX = FFFBh
	BX = FFFBh
	???
Return: ???
SeeAlso: AX=FFFEh,INT 2D"AMIS"
--------t-66FFFEBXFFFE-----------------------
INT 66 - MicroHelp Stay-Res/Stay-Res Plus - UNINSTALL
	AX = FFFEh
	BX = FFFEh
Return: only if unsuccessful
Notes:	installation check is for the interrupt handler to begin with the bytes
	  FBh 9Ch or 9Ch FAh, and the program name (not case-sensitive) to
	  appear at offset 0005h (older versions) or the offset returned by
	  AX=FFFFh/BX=FFF0h in the interrupt handler segment.
	Programs which use Stay-Res include ThesPlus (program name "THESPLUS")
	  and Personal Calendar (program name "CAL") by Paul Mun~oz-Colman.
SeeAlso: AX=FFFBh,AX=FFFFh,INT 2D"AMIS"
Index:	installation check;MicroHelp Stay-Res|installation check;ThesPlus
Index:	installation check;Personal Calendar|installation check;CAL
--------t-66FFFFBXFFF0-----------------------
INT 66 - MicroHelp Stay-Res Plus - FIND PROGRAM NAME
	AX = FFFFh
	BX = FFF0h
Return: DI = offset of program name in interrupt handler segment
SeeAlso: AX=FFFBh,AX=FFFEh,INT 2D"AMIS"
--------!---Section--------------------------
[ RETURN TO DIRECTORY ]