INT 61 - TCPOpen kernel - API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running.  Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes.
	ES:BX -> request packet (see #03317)
Program: TCPOpen is a TCP/IPThe protocol suite originally developed by DARPA for use on its ARPAnet network, which is now known as the Internet.  See also IP, TCP. 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 03317)
 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	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	-> ???
 22h	WORD	??? or 0000h
 24h	WORD	(ret) ???
SeeAlso: #03318


(Table 03318)
Call TCPOpen Function FFFFh: installation verification
Return: offset 10h = BEEFh
	offset 14h = 0001h
	offset 24h = ???
Index:	installation check;TCPOpen kernel
                                                                                

INT 61 - XFS v1.76 - XFSKRNL.EXE - API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running.  Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes.
	AX = function
	    8000h installation check???
		Return: AX = 0000h
	    8001h ???
		ES:DI -> DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address. ???
		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(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/IP. address??? (or htonl/ntohl)
		DX:BX = IP(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/IP. address???
		Return: DX:AX = byte-swapped IP(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/IP. address
	    8008h set IP(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/IP. address??? (or htonl/ntohl)
		DX:AX = IP(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/IP. address???
		Return: DX:AX = byte-swapped IP(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/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"
                                                                                

INT 61 - FTP(File Transfer Protocol)  The standard protocol for copying files from one machine to another on a TCP/IP (Internet) network.  Also the program of the same name with which a user may transfer files. Software PCIBM PC/TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite.  See also IP, TCP/IP. - TCP/IPThe protocol suite originally developed by DARPA for use on its ARPAnet network, which is now known as the Internet.  See also IP, TCP. TSR(Terminate and Stay Resident) A program which remains in memory after terminating in order to provide services to other programs or the user.  The name comes from the name of the DOS function call used to remain in memory after termination. 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 #03319)
	    AH = suberror number (see #03320,#03321)
InstallCheck:	test for the signature "TCPTSR" three bytes beyond the start
	  of the interrupt handler
Range:	INT 20h to INT E0h, selected by configuration
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"PCIBM PC/TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite.  See also IP, TCP/IP.",INT 61/AH=2Ah,INT 61/AH=54h
Index:	installation check;PCIBM PC/TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite.  See also IP, TCP/IP.


(Table 03319)
Values for PCIBM PC/TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite.  See also IP, TCP/IP. 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 #03320)
 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(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/IP. address or field in IP(Internet Protocol) The lower level (transport layer) of the TCP/IP protocol suite.	See also TCP, TCP/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 #03321)
---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 03320)
Values for subcodes of PCIBM PC/TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite.  See also IP, TCP/IP. 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: #03319,#03321


(Table 03321)
Values for subcodes of PCIBM PC/TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite.  See also IP, TCP/IP. 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: #03319,#03320
                                                                                

INT 61 u - PCIBM PC/TCP(Transmission Control Protocol) A higher level (session layer) of the TCP/IP protocol suite.  See also IP, TCP/IP. 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