A2osX/INC/LIBTCPIP.I.txt
2016-10-24 17:54:43 +02:00

332 lines
8.9 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
.LIST OFF
.OP 65C02
*--------------------------------------
K.ARPCACHE.SIZE .EQ 10
K.DNSCACHE.SIZE .EQ 10
K.SKTTABLE.SIZE .EQ 64
K.FRMQUEUE.SIZE .EQ 16
K.FRMSEND.RETRY .EQ 10
K.ETH.FRAME.LEN .EQ 1514
K.ARP.TTL .EQ 600
K.ARP.PENDING.TTL .EQ 10
K.DNS.PENDING.TTL .EQ 10
K.IP.TTL .EQ 64
K.DNS.MAXLEN .EQ 64
K.DYNPORT.START .EQ 49152
K.DYNPORT.END .EQ 65535
K.TCP.MSS .EQ K.ETH.FRAME.LEN-20-20-14
K.TCP.WSIZE .EQ K.TCP.MSS
*--------------------------------------
LIBTCPIP.SET.IPCFG .EQ 4
LIBTCPIP.GET.IPCFG .EQ 6
LIBTCPIP.NEW.ICMP.FRAME .EQ 8
*LIBTCPIP.NEW.TCP.FRAME .EQ 10
*LIBTCPIP.NEW.UDP.FRAME .EQ 12
*LIBTCPIP.NEW.IP.FRAME .EQ 14
*LIBTCPIP.NEW.ARP.FRAME .EQ 16
*LIBTCPIP.NEW.ETH.FRAME .EQ 18
LIBTCPIP.SEND.ICMP.FRAME .EQ 20
*LIBTCPIP.SEND.TCP.FRAME .EQ 22
*LIBTCPIP.SEND.UDP.FRAME .EQ 24
*LIBTCPIP.SEND.IP.FRAME .EQ 26
*LIBTCPIP.SEND.ARP.FRAME .EQ 28
*LIBTCPIP.SEND.ETH.FRAME .EQ 30
LIBTCPIP.ARP.CLEAR .EQ 32
LIBTCPIP.ARP.QUERY .EQ 34
LIBTCPIP.ARP.ADD .EQ 36
LIBTCPIP.ARP.GETCACHE .EQ 38
LIBTCPIP.DNS.CLEAR .EQ 40
LIBTCPIP.DNS.QUERY .EQ 42
LIBTCPIP.DNS.ADD .EQ 44
LIBTCPIP.DNS.GETCACHE .EQ 46
LIBTCPIP.RCVD.FRAMEA .EQ 48
LIBTCPIP.PULSEA .EQ 50
LIBTCPIP.SKT.NEW .EQ 52
*LIBTCPIP.SKT.LISTEN .EQ 54
LIBTCPIP.SKT.ACCEPTA .EQ 56
LIBTCPIP.SKT.SENDA .EQ 58
LIBTCPIP.SKT.SEND .EQ 60
LIBTCPIP.SKT.RCVDA .EQ 62
*LIBTCPIP.SKT.RCVD .EQ 64
LIBTCPIP.SKT.CLOSEA .EQ 66
LIBTCPIP.SKT.GETTABLE .EQ 68
LIBTCPIP.SKT.GETA .EQ 70
LIBTCPIP.HST.GETBYNAME .EQ 72
LIBTCPIP.HST.GETBYADDR .EQ 74
*--------------------------------------
ERR.SKT.OOS .EQ $BF
ERR.SKT.BUSY .EQ $BE
ERR.SKT.BAD .EQ $BD
ERR.DNS.PENDING .EQ $B9
ERR.DNS.ERROR .EQ $B8
ERR.ARP .EQ $B7
ERR.ARP.PENDING .EQ $B5
ERR.ARP.ERROR .EQ $B4
ERR.DEV .EQ $B3
ERR.DEV.NOBUFFER .EQ $B1
ERR.DEV.NOFRAME .EQ $B0
*--------------------------------------
TCP.PORT.TELNET .EQ 23
UDP.PORT.DNS .EQ 53
UDP.PORT.DHCPC .EQ 68
UDP.PORT.DHCPS .EQ 67
UDP.PORT.PMAP .EQ 111
*--------------------------------------
S.IPCFG.STATUS .EQ 0
S.IPCFG.STATUS.OFF .EQ %00000000 TCPIP Unconfigured
S.IPCFG.STATUS.SDISC .EQ %00000001 DISCOVERY Sent
S.IPCFG.STATUS.ROFFER .EQ %00000010 OFFER Received
S.IPCFG.STATUS.SREQ .EQ %00000100 REQUEST Sent
S.IPCFG.STATUS.RACK .EQ %00001000 ACK Received
S.IPCFG.STATUS.OK .EQ %10000000 Fully configured (static or DHCP)
S.IPCFG.HDEV .EQ 1
S.IPCFG.MAC .EQ 2
S.IPCFG.DHCPSRVR .EQ 8
S.IPCFG.IP .EQ 12
S.IPCFG.MASK .EQ 16
S.IPCFG.GW .EQ 20
S.IPCFG.DNS1 .EQ 24
S.IPCFG.DNS2 .EQ 28
S.IPCFG.HOSTNAME .EQ 32 1+15 char PSTR
S.IPCFG.DOMAIN .EQ 48 1+35 char PSTR
*
S.IPCFG .EQ 128
*--------------------------------------
S.ARPCACHE.STATUS .EQ 0
S.ARPCACHE.STATUS.PENDING .EQ 1
S.ARPCACHE.STATUS.STATIC .EQ 2
S.ARPCACHE.STATUS.RESOLVED .EQ 128
S.ARPCACHE.TTL .EQ 2
S.ARPCACHE.IP .EQ 6
S.ARPCACHE.MAC .EQ 10
*
S.ARPCACHE .EQ 16
*--------------------------------------
S.DNSCACHE.STATUS .EQ 0
S.DNSCACHE.STATUS.PENDING .EQ 1
S.DNSCACHE.STATUS.STATIC .EQ 2
S.DNSCACHE.STATUS.RESOLVED .EQ 128
S.DNSCACHE.hNAME .EQ 1
S.DNSCACHE.ID .EQ 2 Store Message.Id in cache (pending req.)
S.DNSCACHE.TTL .EQ 4
S.DNSCACHE.IP .EQ 8
*
S.DNSCACHE .EQ 12
*--------------------------------------
S.SOCKET.SOCK .EQ 0
S.SOCKET.SOCK.DGRAM .EQ 1
S.SOCKET.SOCK.STREAM .EQ 2
S.SOCKET.SO .EQ 1
S.SOCKET.SO.DEBUG .EQ $01
S.SOCKET.SO.ACCEPTCONN .EQ $02
S.SOCKET.SO.REUSEADDR .EQ $04
S.SOCKET.SO.KEEPALIVE .EQ $08
S.SOCKET.SO.DONTROUTE .EQ $10
S.SOCKET.SO.BROADCAST .EQ $20
S.SOCKET.SO.USELOOPBACK .EQ $40
S.SOCKET.SO.LINGER .EQ $80
S.SOCKET.STATUS .EQ 2
S.SOCKET.STATUS.CLOSED .EQ 0
S.SOCKET.STATUS.LISTEN .EQ 1
S.SOCKET.STATUS.SYNSENT .EQ 2
S.SOCKET.STATUS.SYNRCVD .EQ 3
S.SOCKET.STATUS.ESTBLSH .EQ 4
S.SOCKET.STATUS.CLWAIT .EQ 5
S.SOCKET.STATUS.LASTACK .EQ 6
S.SOCKET.STATUS.FINWT1 .EQ 7
S.SOCKET.STATUS.FINWT2 .EQ 8
S.SOCKET.STATUS.CLOSING .EQ 9
S.SOCKET.STATUS.TIMEWT .EQ 10
*S.SOCKET.PARENT .EQ 3
S.SOCKET.SRC.ADDR .EQ 4
S.SOCKET.SRC.PORT .EQ 8
S.SOCKET.DST.ADDR .EQ 10
S.SOCKET.DST.PORT .EQ 14
* Listen type Queue
S.SOCKET.LQ.HEAD .EQ 16
S.SOCKET.LQ.TAIL .EQ 17
S.SOCKET.LQ .EQ 18
S.SOCKET.LQ.MAX .EQ 14 14 hSocket
* Datagram type Queue
S.SOCKET.DQ.HEAD .EQ 16
S.SOCKET.DQ.TAIL .EQ 17
S.SOCKET.DQ .EQ 18
S.SOCKET.DQ.MAX .EQ 14 14 hMem (frames)
* Stream type Queue
S.SOCKET.SQ.hInMem .EQ 16
S.SOCKET.SQ.hOutMem .EQ 17
S.SOCKET.SQ.SIZE .EQ 18
S.SOCKET.SQ.HEAD .EQ 20
S.SOCKET.SQ.TAIL .EQ 22
S.SOCKET.SQ.SEQNUM .EQ 24
S.SOCKET.SQ.ACKNUM .EQ 28
*
S.SOCKET .EQ 32
*--------------------------------------
S.ETH.FRAMELEN .EQ 0
S.ETH.DSTMAC .EQ 2
S.ETH.SRCMAC .EQ 8
S.ETH.ETHERTYPE .EQ 14
S.ETH.ETHERTYPE.IP .EQ $800
S.ETH.ETHERTYPE.ARP .EQ $806
*
S.ETH .EQ 2+6+6+2
*--------------------------------------
S.ARP.HTYPE .EQ S.ETH+0 $0001
S.ARP.PTYPE .EQ S.ETH+2 $0800
S.ARP.HLEN .EQ S.ETH+4 $06
S.ARP.PLEN .EQ S.ETH+5 $04
S.ARP.OPERATION .EQ S.ETH+6 REQ=$0001,REPLY=$0002
S.ARP.OPERATION.REQ .EQ 1
S.ARP.OPERATION.REP .EQ 2
S.ARP.SHA .EQ S.ETH+8 Sender MAC
S.ARP.SPA .EQ S.ETH+14 Sender IP
S.ARP.THA .EQ S.ETH+18 Target MAC
S.ARP.TPA .EQ S.ETH+24 Target IP
*
S.ARP .EQ S.ETH+28
*--------------------------------------
S.IP.V.IHL.DSCP.ECN .EQ S.ETH+0 $0045, IPV4,HDR=5DWORDs
S.IP.TOTAL.LENGTH .EQ S.ETH+2
S.IP.IDENTIFICATION .EQ S.ETH+4 $0000
S.IP.FRAGMENT.FLAGS .EQ S.ETH+6
S.IP.TTL .EQ S.ETH+8
S.IP.PROTOCOL .EQ S.ETH+9
S.IP.PROTOCOL.ICMP .EQ 1
S.IP.PROTOCOL.TCP .EQ 6
S.IP.PROTOCOL.UDP .EQ 17
S.IP.HDR.CHECKSUM .EQ S.ETH+10
S.IP.SRC .EQ S.ETH+12
S.IP.DST .EQ S.ETH+16
*
S.IP .EQ S.ETH+20
*--------------------------------------
S.ICMP.TYPE .EQ S.IP+0
S.ICMP.TYPE.ECHOREP .EQ 0
S.ICMP.TYPE.UNREACH .EQ 3
S.ICMP.TYPE.ECHOREQ .EQ 8
S.ICMP.CODE .EQ S.IP+1
S.ICMP.CHECKSUM .EQ S.IP+2
S.ICMP.IDENTIFIER .EQ S.IP+4
S.ICMP.SEQUENCE .EQ S.IP+6
*
S.ICMP .EQ S.IP+8
*--------------------------------------
S.UDP.SRCPORT .EQ S.IP+0
S.UDP.DSTPORT .EQ S.IP+2
S.UDP.LENGTH .EQ S.IP+4
S.UDP.CHECKSUM .EQ S.IP+6 $0000 = DISABLE
*
S.UDP .EQ S.IP+8
*--------------------------------------
S.TCP.SRCPORT .EQ S.IP+0
S.TCP.DSTPORT .EQ S.IP+2
S.TCP.SEQ.NUMBER .EQ S.IP+4
S.TCP.ACK.NUMBER .EQ S.IP+8
S.TCP.DATAOFFSET .EQ S.IP+12
S.TCP.DATAOFFSET20 .EQ $50
S.TCP.OPTIONS .EQ S.IP+13
S.TCP.OPTIONS.URG .EQ %00100000
S.TCP.OPTIONS.ACK .EQ %00010000
S.TCP.OPTIONS.PSH .EQ %00001000
S.TCP.OPTIONS.RST .EQ %00000100
S.TCP.OPTIONS.SYN .EQ %00000010
S.TCP.OPTIONS.FIN .EQ %00000001
S.TCP.WINDOW .EQ S.IP+14
S.TCP.CHECKSUM .EQ S.IP+16
S.TCP.URGPTR .EQ S.IP+18
*
S.TCP .EQ S.IP+20
*--------------------------------------
S.DHCP.OP .EQ S.UDP+0 1 = BOOTREQUEST, 2 = BOOTREPLY
S.DHCP.OP.BOOTREQUEST .EQ 1
S.DHCP.OP.BOOTREPLY .EQ 2
S.DHCP.HTYPE .EQ S.UDP+1 1 = ETHERNET
S.DHCP.HTYPE.ETHERNET .EQ 1
S.DHCP.HLEN .EQ S.UDP+2 6 (MAC len)
S.DHCP.HLEN.ETHERNET .EQ 6
S.DHCP.HOPS .EQ S.UDP+3 0
S.DHCP.XID .EQ S.UDP+4 client : random number
S.DHCP.SECS .EQ S.UDP+8
S.DHCP.FLAGS .EQ S.UDP+10
S.DHCP.FLAGS.BRDCST .EQ %10000000
S.DHCP.CIADDR .EQ S.UDP+12
S.DHCP.YIADDR .EQ S.UDP+16
S.DHCP.SIADDR .EQ S.UDP+20
S.DHCP.GIADDR .EQ S.UDP+24
S.DHCP.CHADDR .EQ S.UDP+28
S.DHCP.SNAME .EQ S.UDP+44
S.DHCP.FILE .EQ S.UDP+108
S.DHCP.COOKIE .EQ S.UDP+236
S.DHCP.OPTIONS .EQ S.UDP+240
S.DHCP.OPTIONS.DHCPDiscover .EQ 1
S.DHCP.OPTIONS.DHCPOffer .EQ 2
S.DHCP.OPTIONS.DHCPRequest .EQ 3
S.DHCP.OPTIONS.DHCPDecline .EQ 4
S.DHCP.OPTIONS.DHCPAck .EQ 5
S.DHCP.OPTIONS.DHCPNak .EQ 6
S.DHCP.OPTIONS.DHCPRelease .EQ 7
S.DHCP.OPTIONS.DHCPInform .EQ 8
S.DHCP.OPTIONS.MASK .EQ 1
S.DHCP.OPTIONS.GW .EQ 3
S.DHCP.OPTIONS.DNS .EQ 6
S.DHCP.OPTIONS.DOMAIN .EQ 15
S.DHCP.OPTIONS.END .EQ 255
*
S.DHCP .EQ S.UDP+240
*--------------------------------------
S.DNS.ID .EQ S.UDP+0
S.DNS.F .EQ S.UDP+2
S.DNS.F.QR .EQ %10000000.00000000
S.DNS.F.OPCODE.I .EQ %01000000.00000000
S.DNS.F.OPCODE.S .EQ %00100000.00000000
S.DNS.F.AA .EQ %00000100.00000000
S.DNS.F.TC .EQ %00000010.00000000
S.DNS.F.RD .EQ %00000001.00000000
S.DNS.F.RA .EQ %00000000.10000000
S.DNS.F.RCODE.FRMT .EQ %00000000.00000001
S.DNS.F.RCODE.SRVR .EQ %00000000.00000010
S.DNS.F.RCODE.UKWN .EQ %00000000.00000011
S.DNS.F.RCODE.NIMP .EQ %00000000.00000100
S.DNS.F.RCODE.DENY .EQ %00000000.00000101
S.DNS.QDCOUNT .EQ S.UDP+4
S.DNS.ANCOUNT .EQ S.UDP+6
S.DNS.NSCOUNT .EQ S.UDP+8
S.DNS.ARCOUNT .EQ S.UDP+10
*
S.DNS .EQ S.UDP+12
*--------------------------------------
S.DNS.QTYPE.A .EQ 1
S.DNS.QTYPE.NS .EQ 2
S.DNS.QTYPE.CNAME .EQ 5
S.DNS.QTYPE.SOA .EQ 6
S.DNS.QTYPE.WKS .EQ 11
S.DNS.QTYPE.PTR .EQ 12
S.DNS.QTYPE.MX .EQ 15
S.DNS.QTYPE.SRV .EQ 33
S.DNS.QTYPE.ANY .EQ 255
S.DNS.QCLASS.IN .EQ 1
*--------------------------------------
MAN
SAVE /A2OSX.DEV/INC/LIBTCPIP.I