mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 22:54:59 +00:00
Kernel version 0.9 : TCP/IP API Cleanup
This commit is contained in:
parent
02de1e130a
commit
81afee1ca5
BIN
A2OSX.BOOT.po
BIN
A2OSX.BOOT.po
Binary file not shown.
BIN
A2OSX.DEV.po
BIN
A2OSX.DEV.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
@ -72,9 +72,8 @@ CS.RUN >LDYA L.MSG0
|
|||||||
.1 lda (ZPPTR1)
|
.1 lda (ZPPTR1)
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
ldy #S.SOCKET.STATUS
|
ldy #S.SOCKET.TCP.STATUS
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
and #S.SOCKET.STATUS.MASK
|
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
>PUSHB L.MSG1.S+1,x
|
>PUSHB L.MSG1.S+1,x
|
||||||
@ -90,10 +89,6 @@ CS.RUN >LDYA L.MSG0
|
|||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda (ZPPTR1)
|
lda (ZPPTR1)
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
cmp #S.SOCKET.SOCK.RAW+1
|
cmp #S.SOCKET.SOCK.RAW+1
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ CS.RUN.SEND.ECHO
|
|||||||
>PUSHW L.ICMP.Request
|
>PUSHW L.ICMP.Request
|
||||||
>PUSHWI ICMP.RequestLen
|
>PUSHWI ICMP.RequestLen
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.SEND
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
jsr Init.Timeout
|
jsr Init.Timeout
|
||||||
@ -191,7 +191,7 @@ CS.RUN.WAIT.REPLY
|
|||||||
|
|
||||||
.1 ldy #hSocket
|
.1 ldy #hSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.RCVDA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadA
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
ldy #hFrame
|
ldy #hFrame
|
||||||
|
@ -112,7 +112,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
>PUSHW L.RPC.Request
|
>PUSHW L.RPC.Request
|
||||||
ldy #hSocket
|
ldy #hSocket
|
||||||
>PUSHB (pData),y
|
>PUSHB (pData),y
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.SEND
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SYSCALL Sleep
|
||||||
@ -124,7 +124,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
|
|
||||||
.5 ldy #hSocket
|
.5 ldy #hSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.RCVDA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadA
|
||||||
bcc .6
|
bcc .6
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SYSCALL Sleep
|
||||||
|
@ -26,46 +26,36 @@ K.TCP.WMASK .EQ 2047
|
|||||||
LIBTCPIP.SET.IPCFG .EQ 4
|
LIBTCPIP.SET.IPCFG .EQ 4
|
||||||
LIBTCPIP.GET.IPCFG .EQ 6
|
LIBTCPIP.GET.IPCFG .EQ 6
|
||||||
|
|
||||||
*LIBTCPIP.NEW.ICMP.FRAME .EQ 8
|
LIBTCPIP.POLL .EQ 8
|
||||||
*LIBTCPIP.NEW.TCP.FRAME .EQ 10
|
LIBTCPIP.PULSEA .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.ARP.CLEAR .EQ 12
|
||||||
*LIBTCPIP.SEND.TCP.FRAME .EQ 22
|
LIBTCPIP.ARP.QUERY .EQ 14
|
||||||
*LIBTCPIP.SEND.UDP.FRAME .EQ 24
|
LIBTCPIP.ARP.ADD .EQ 16
|
||||||
*LIBTCPIP.SEND.IP.FRAME .EQ 26
|
LIBTCPIP.ARP.GETCACHE .EQ 18
|
||||||
*LIBTCPIP.SEND.ARP.FRAME .EQ 28
|
|
||||||
*LIBTCPIP.SEND.ETH.FRAME .EQ 30
|
|
||||||
|
|
||||||
LIBTCPIP.ARP.CLEAR .EQ 32
|
LIBTCPIP.DNS.CLEAR .EQ 20
|
||||||
LIBTCPIP.ARP.QUERY .EQ 34
|
LIBTCPIP.DNS.QUERY .EQ 22
|
||||||
LIBTCPIP.ARP.ADD .EQ 36
|
LIBTCPIP.DNS.ADD .EQ 24
|
||||||
LIBTCPIP.ARP.GETCACHE .EQ 38
|
LIBTCPIP.DNS.GETCACHE .EQ 26
|
||||||
|
|
||||||
LIBTCPIP.DNS.CLEAR .EQ 40
|
LIBTCPIP.HST.GETBYNAME .EQ 28
|
||||||
LIBTCPIP.DNS.QUERY .EQ 42
|
LIBTCPIP.HST.GETBYADDR .EQ 30
|
||||||
LIBTCPIP.DNS.ADD .EQ 44
|
|
||||||
LIBTCPIP.DNS.GETCACHE .EQ 46
|
|
||||||
|
|
||||||
LIBTCPIP.POLL .EQ 48
|
LIBTCPIP.SKT.NEW .EQ 32
|
||||||
LIBTCPIP.PULSEA .EQ 50
|
LIBTCPIP.SKT.CLOSEA .EQ 34
|
||||||
|
LIBTCPIP.SKT.GETTABLE .EQ 36
|
||||||
|
LIBTCPIP.SKT.GETA .EQ 38
|
||||||
|
|
||||||
LIBTCPIP.SKT.NEW .EQ 52
|
LIBTCPIP.SKT.ACCEPTA .EQ 34
|
||||||
*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.SKT.Write .EQ 38
|
||||||
LIBTCPIP.HST.GETBYADDR .EQ 74
|
LIBTCPIP.SKT.Read .EQ 50
|
||||||
|
LIBTCPIP.SKT.ReadA .EQ 40
|
||||||
|
LIBTCPIP.SKT.PutC .EQ 42
|
||||||
|
LIBTCPIP.SKT.PutS .EQ 44
|
||||||
|
LIBTCPIP.SKT.GetCA .EQ 46
|
||||||
|
LIBTCPIP.SKT.GetS .EQ 48
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ERR.SKT.OOS .EQ $BF
|
ERR.SKT.OOS .EQ $BF
|
||||||
ERR.SKT.BUSY .EQ $BE
|
ERR.SKT.BUSY .EQ $BE
|
||||||
@ -132,26 +122,9 @@ S.DNSCACHE.IP .EQ 8
|
|||||||
S.DNSCACHE .EQ 12
|
S.DNSCACHE .EQ 12
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.SOCKET.SOCK .EQ 0
|
S.SOCKET.SOCK .EQ 0
|
||||||
S.SOCKET.SOCK.DGRAM .EQ $10
|
S.SOCKET.SOCK.DGRAM .EQ 1
|
||||||
S.SOCKET.SOCK.STREAM .EQ $20
|
S.SOCKET.SOCK.STREAM .EQ 2
|
||||||
S.SOCKET.SOCK.RAW .EQ $30
|
S.SOCKET.SOCK.RAW .EQ 3
|
||||||
S.SOCKET.SOCK.MASK .EQ $70
|
|
||||||
|
|
||||||
S.SOCKET.SOCK.ACK .EQ $80
|
|
||||||
|
|
||||||
S.SOCKET.STATUS .EQ 0
|
|
||||||
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.STATUS.MASK .EQ $0F
|
|
||||||
|
|
||||||
S.SOCKET.SO .EQ 1
|
S.SOCKET.SO .EQ 1
|
||||||
S.SOCKET.SO.DEBUG .EQ $01
|
S.SOCKET.SO.DEBUG .EQ $01
|
||||||
@ -164,8 +137,21 @@ S.SOCKET.SO.USELOOPBACK .EQ $40
|
|||||||
S.SOCKET.SO.LINGER .EQ $80
|
S.SOCKET.SO.LINGER .EQ $80
|
||||||
|
|
||||||
S.SOCKET.RAW.PROTO .EQ 2
|
S.SOCKET.RAW.PROTO .EQ 2
|
||||||
S.SOCKET.STREAM.hInMem .EQ 2
|
|
||||||
S.SOCKET.STREAM.hOutMem .EQ 3
|
S.SOCKET.TCP.STATUS .EQ 2
|
||||||
|
S.SOCKET.TCP.STATUS.CLOSED .EQ 0
|
||||||
|
S.SOCKET.TCP.STATUS.LISTEN .EQ 1
|
||||||
|
S.SOCKET.TCP.STATUS.SYNSENT .EQ 2
|
||||||
|
S.SOCKET.TCP.STATUS.SYNRCVD .EQ 3
|
||||||
|
S.SOCKET.TCP.STATUS.ESTBLSH .EQ 4
|
||||||
|
S.SOCKET.TCP.STATUS.CLWAIT .EQ 5
|
||||||
|
S.SOCKET.TCP.STATUS.LASTACK .EQ 6
|
||||||
|
S.SOCKET.TCP.STATUS.FINWT1 .EQ 7
|
||||||
|
S.SOCKET.TCP.STATUS.FINWT2 .EQ 8
|
||||||
|
S.SOCKET.TCP.STATUS.CLOSING .EQ 9
|
||||||
|
S.SOCKET.TCP.STATUS.TIMEWT .EQ 10
|
||||||
|
|
||||||
|
S.SOCKET.TCP.OPTIONS .EQ 3
|
||||||
|
|
||||||
S.SOCKET.SRC.ADDR .EQ 4
|
S.SOCKET.SRC.ADDR .EQ 4
|
||||||
S.SOCKET.SRC.PORT .EQ 8
|
S.SOCKET.SRC.PORT .EQ 8
|
||||||
@ -191,8 +177,10 @@ S.SOCKET.SQ.INUSED .EQ 28
|
|||||||
S.SOCKET.SQ.OUTUSED .EQ 30
|
S.SOCKET.SQ.OUTUSED .EQ 30
|
||||||
S.SOCKET.SQ.SEQNUM .EQ 32
|
S.SOCKET.SQ.SEQNUM .EQ 32
|
||||||
S.SOCKET.SQ.ACKNUM .EQ 36
|
S.SOCKET.SQ.ACKNUM .EQ 36
|
||||||
|
S.SOCKET.STREAM.hInMem .EQ 40
|
||||||
|
S.SOCKET.STREAM.hOutMem .EQ 41
|
||||||
*
|
*
|
||||||
S.SOCKET .EQ 40
|
S.SOCKET .EQ 42
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.ETH.FRAMELEN .EQ 0
|
S.ETH.FRAMELEN .EQ 0
|
||||||
S.ETH.DSTMAC .EQ 2
|
S.ETH.DSTMAC .EQ 2
|
||||||
@ -219,7 +207,7 @@ S.ARP .EQ S.ETH+28
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.IP.V.IHL.DSCP.ECN .EQ S.ETH+0 $0045, IPV4,HDR=5DWORDs
|
S.IP.V.IHL.DSCP.ECN .EQ S.ETH+0 $0045, IPV4,HDR=5DWORDs
|
||||||
S.IP.TOTAL.LENGTH .EQ S.ETH+2
|
S.IP.TOTAL.LENGTH .EQ S.ETH+2
|
||||||
S.IP.IDENTIFICATION .EQ S.ETH+4 $0000
|
S.IP.IDENTIFICATION .EQ S.ETH+4
|
||||||
S.IP.FRAGMENT.FLAGS .EQ S.ETH+6
|
S.IP.FRAGMENT.FLAGS .EQ S.ETH+6
|
||||||
S.IP.TTL .EQ S.ETH+8
|
S.IP.TTL .EQ S.ETH+8
|
||||||
S.IP.PROTOCOL .EQ S.ETH+9
|
S.IP.PROTOCOL .EQ S.ETH+9
|
||||||
|
@ -4,23 +4,29 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
ARP.CLEAR ldx #K.ARPCACHE.SIZE*S.ARPCACHE
|
* #ARP.Clear
|
||||||
|
* Clear ARP Cache
|
||||||
|
* ##In :
|
||||||
|
* ##Out :
|
||||||
|
*\--------------------------------------
|
||||||
|
ARP.Clear ldx #K.ARPCACHE.SIZE*S.ARPCACHE
|
||||||
.1 stz ARP.CACHE-1,x
|
.1 stz ARP.CACHE-1,x
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
* ARP.QUERY
|
* #ARP.Query
|
||||||
* In:
|
* Query ARP Cache and returns HW address
|
||||||
* PULLW PTR to IP
|
* ##In:
|
||||||
* PULLW PTR to MAC (to fill)
|
* PUSHW PTR to MAC (to fill)
|
||||||
* Out:
|
* PUSHW PTR to IP
|
||||||
* CC: hit: MAC filled
|
* ##Out:
|
||||||
* CS: missed
|
* CC: hit: MAC filled
|
||||||
*--------------------------------------
|
* CS: missed
|
||||||
ARP.QUERY >PULLW ZPPtrIP IP
|
*\--------------------------------------
|
||||||
|
ARP.Query >PULLW ZPPtrIP IP
|
||||||
>PULLW ZPPtrMAC MAC
|
>PULLW ZPPtrMAC MAC
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
@ -38,13 +44,14 @@ ARP.QUERY >PULLW ZPPtrIP IP
|
|||||||
bpl .2
|
bpl .2
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
* ARP.ADD
|
* #ARP.Add
|
||||||
* In:
|
* Add a static ARP cache record
|
||||||
* PULLW PTR to IP
|
* ##In:
|
||||||
* PULLW PTR to MAC
|
* PUSHW PTR to MAC
|
||||||
*--------------------------------------
|
* PUSHW PTR to IP
|
||||||
ARP.ADD >PULLW ZPPtrIP IP
|
*\--------------------------------------
|
||||||
|
ARP.Add >PULLW ZPPtrIP IP
|
||||||
>PULLW ZPPtrMAC MAC
|
>PULLW ZPPtrMAC MAC
|
||||||
|
|
||||||
stz ARP.TmpCache+S.ARPCACHE.TTL
|
stz ARP.TmpCache+S.ARPCACHE.TTL
|
||||||
@ -78,12 +85,14 @@ ARP.ADD.I sta ARP.TmpCache
|
|||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
* ARP.GETCACHE
|
* #ARP.GetCache
|
||||||
* Out:
|
* Return a Ptr to ARP Cache Table
|
||||||
|
* ##In:
|
||||||
|
* ##Out:
|
||||||
* Y,A = PTR to ARP.CACHE
|
* Y,A = PTR to ARP.CACHE
|
||||||
*--------------------------------------
|
*\--------------------------------------
|
||||||
ARP.GETCACHE >LDYA L.ARP.CACHE
|
ARP.GetCache >LDYA L.ARP.CACHE
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -4,26 +4,32 @@ NEW
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
DNS.CLEAR ldx #K.DNSCACHE.SIZE*S.DNSCACHE
|
* #DNS.Clear
|
||||||
|
* Clear DNS Cache
|
||||||
|
* ##In :
|
||||||
|
* ##Out :
|
||||||
|
*\--------------------------------------
|
||||||
|
DNS.Clear ldx #K.DNSCACHE.SIZE*S.DNSCACHE
|
||||||
.1 stz DNS.CACHE-1,x
|
.1 stz DNS.CACHE-1,x
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
* DNS.QUERY
|
* #DNS.Query
|
||||||
* In:
|
* Query DNS for specified host
|
||||||
* PULLW = hostname PTR to PSTR
|
* ##In:
|
||||||
* PULLW = PTR to IP to fill with cached data
|
* PUSHW = PTR to IP to fill with cached data
|
||||||
* Out:
|
* PUSHW = hostname PTR to PSTR
|
||||||
|
* ##Out:
|
||||||
* CC: hit: IP filled with address
|
* CC: hit: IP filled with address
|
||||||
* CS: missed
|
* CS: missed
|
||||||
*--------------------------------------
|
*\--------------------------------------
|
||||||
DNS.QUERY >PULLW ZPPtrDNS Get host string
|
DNS.Query >PULLW ZPPtrDNS Get host string
|
||||||
>PULLW ZPPtrIP Get IP address to fill
|
>PULLW ZPPtrIP Get IP address to fill
|
||||||
|
|
||||||
DNS.QUERY.I jsr DNS.FIND.BY.NAME
|
DNS.Query.I jsr DNS.FIND.BY.NAME
|
||||||
bcs DNS.REQUEST
|
bcs DNS.REQUEST
|
||||||
|
|
||||||
lda (ZPCachePtr) get status...
|
lda (ZPCachePtr) get status...
|
||||||
@ -105,7 +111,7 @@ DNS.REQUEST lda hDNSSocket1
|
|||||||
>PUSHW DNS.MSG.LEN
|
>PUSHW DNS.MSG.LEN
|
||||||
>PUSHW L.DNS.MSG
|
>PUSHW L.DNS.MSG
|
||||||
>PUSHB hDNSSocket1
|
>PUSHB hDNSSocket1
|
||||||
jsr SKT.SEND
|
jsr SKT.Write
|
||||||
|
|
||||||
lda hDNSSocket2
|
lda hDNSSocket2
|
||||||
beq .3
|
beq .3
|
||||||
@ -113,18 +119,19 @@ DNS.REQUEST lda hDNSSocket1
|
|||||||
>PUSHW DNS.MSG.LEN
|
>PUSHW DNS.MSG.LEN
|
||||||
>PUSHW L.DNS.MSG
|
>PUSHW L.DNS.MSG
|
||||||
>PUSHB hDNSSocket2
|
>PUSHB hDNSSocket2
|
||||||
jsr SKT.SEND
|
jsr SKT.Write
|
||||||
|
|
||||||
.3 lda #ERR.DNS.PENDING
|
.3 lda #ERR.DNS.PENDING
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
* DNS.ADD
|
* #DNS.Add
|
||||||
* In:
|
* Add a static DNS record
|
||||||
* PULLW = hostname PSTR to Add
|
* ##In:
|
||||||
* PULLW = PTR to IP
|
* PUSHW = PTR to IP
|
||||||
*--------------------------------------
|
* PUSHW = hostname PSTR to Add
|
||||||
DNS.ADD >PULLW ZPPtrDNS Get host string
|
*\--------------------------------------
|
||||||
|
DNS.Add >PULLW ZPPtrDNS Get host string
|
||||||
>PULLW ZPPtrIP Get host IP address
|
>PULLW ZPPtrIP Get host IP address
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
@ -167,8 +174,14 @@ DNS.ADD.I sta DNS.TmpCache
|
|||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*/--------------------------------------
|
||||||
DNS.GETCACHE >LDYA L.DNS.CACHE
|
* #DNS.GetCache
|
||||||
|
* Return a Ptr to DNS Cache Table
|
||||||
|
* ##In:
|
||||||
|
* ##Out:
|
||||||
|
* Y,A = PTR to DNS.CACHE
|
||||||
|
*\--------------------------------------
|
||||||
|
DNS.GetCache >LDYA L.DNS.CACHE
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -355,13 +368,13 @@ DNS.FREE ldy #S.DNSCACHE.hNAME
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DNS.POLL lda hDNSSocket1
|
DNS.POLL lda hDNSSocket1
|
||||||
beq .8
|
beq .8
|
||||||
jsr SKT.RCVDA
|
jsr SKT.ReadA
|
||||||
bcs .8
|
bcs .8
|
||||||
jsr DNS.DecodeMsg
|
jsr DNS.DecodeMsg
|
||||||
|
|
||||||
lda hDNSSocket2
|
lda hDNSSocket2
|
||||||
beq .8
|
beq .8
|
||||||
jsr SKT.RCVDA
|
jsr SKT.ReadA
|
||||||
bcs .8
|
bcs .8
|
||||||
jsr DNS.DecodeMsg
|
jsr DNS.DecodeMsg
|
||||||
|
|
||||||
|
@ -15,9 +15,9 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FRM.NewIP stx .8+1
|
FRM.NewIP stx .8+1
|
||||||
>STYA ZPDataOutLen
|
>STYA ZPDataOutLen
|
||||||
cpx #S.IP.PROTOCOL.ICMP
|
cpx #S.IP.PROTOCOL.TCP
|
||||||
bne .1
|
bne .1
|
||||||
lda #S.IP-2
|
lda #S.TCP-2
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.1 cpx #S.IP.PROTOCOL.UDP
|
.1 cpx #S.IP.PROTOCOL.UDP
|
||||||
@ -25,10 +25,7 @@ FRM.NewIP stx .8+1
|
|||||||
lda #S.UDP-2
|
lda #S.UDP-2
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.2 cpx #S.IP.PROTOCOL.TCP
|
.2 lda #S.IP-2
|
||||||
bne *
|
|
||||||
|
|
||||||
lda #S.TCP-2
|
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.4 sta .5+1 save Header len for reset later
|
.4 sta .5+1 save Header len for reset later
|
||||||
@ -133,27 +130,6 @@ FRM.NewIP stx .8+1
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FRM.SendICMP
|
|
||||||
|
|
||||||
bra FRM.SendIP
|
|
||||||
*--------------------------------------
|
|
||||||
FRM.SendTCP
|
|
||||||
|
|
||||||
bra FRM.SendIP
|
|
||||||
*--------------------------------------
|
|
||||||
FRM.SendUDP lda ZPFrameOutLen
|
|
||||||
sec
|
|
||||||
sbc #S.IP-2
|
|
||||||
|
|
||||||
ldy #S.UDP.LENGTH+1
|
|
||||||
sta (ZPFrameOutPtr),y
|
|
||||||
|
|
||||||
lda ZPFrameOutLen+1
|
|
||||||
sbc /S.IP-2
|
|
||||||
|
|
||||||
dey
|
|
||||||
sta (ZPFrameOutPtr),y
|
|
||||||
*--------------------------------------
|
|
||||||
FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
|
FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
|
||||||
ldy #S.IP.SRC+3 for proper UDP/TCP CRC calculation
|
ldy #S.IP.SRC+3 for proper UDP/TCP CRC calculation
|
||||||
|
|
||||||
@ -223,6 +199,20 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
|
|||||||
|
|
||||||
.3 cmp #S.IP.PROTOCOL.UDP
|
.3 cmp #S.IP.PROTOCOL.UDP
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
|
lda ZPFrameOutLen
|
||||||
|
sec
|
||||||
|
sbc #S.IP-2
|
||||||
|
|
||||||
|
ldy #S.UDP.LENGTH+1
|
||||||
|
sta (ZPFrameOutPtr),y
|
||||||
|
|
||||||
|
lda ZPFrameOutLen+1
|
||||||
|
sbc /S.IP-2
|
||||||
|
|
||||||
|
dey
|
||||||
|
sta (ZPFrameOutPtr),y
|
||||||
|
|
||||||
jsr UDP.ComputeChecksum
|
jsr UDP.ComputeChecksum
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
|
@ -5,14 +5,14 @@ INC 1
|
|||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HST.GETBYNAME >PULLW ZPPtrDNS
|
HST.GetByName >PULLW ZPPtrDNS
|
||||||
>PULLW ZPPtrIP
|
>PULLW ZPPtrIP
|
||||||
jsr HST.ScanIP
|
jsr HST.ScanIP
|
||||||
bcc .9
|
bcc .9
|
||||||
jmp DNS.QUERY.I
|
jmp DNS.QUERY.I
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HST.GETBYADDR >PULLW ZPPtrIP
|
HST.GetByAddr >PULLW ZPPtrIP
|
||||||
>PULLW ZPPtrDNS
|
>PULLW ZPPtrDNS
|
||||||
|
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ ICMP.IN.ECHOREQ ldy #S.IP.DST+3
|
|||||||
sta hFrameOut DO NOT DISCARD this frame,it is SOURCE frame!!!
|
sta hFrameOut DO NOT DISCARD this frame,it is SOURCE frame!!!
|
||||||
>LDYA ZPFrameInPtr
|
>LDYA ZPFrameInPtr
|
||||||
>STYA ZPFrameOutPtr
|
>STYA ZPFrameOutPtr
|
||||||
jmp FRM.SendICMP
|
jmp FRM.SendIP
|
||||||
|
|
||||||
ICMP.IN.EXIT lda hFrameIn
|
ICMP.IN.EXIT lda hFrameIn
|
||||||
>SYSCALL FreeMemA
|
>SYSCALL FreeMemA
|
||||||
@ -92,7 +92,6 @@ ICMP.IN.ECHOREP jsr IP.FillTmpSocketSrcDst
|
|||||||
|
|
||||||
.3 lda (ZPPtrSKT)
|
.3 lda (ZPPtrSKT)
|
||||||
beq .7
|
beq .7
|
||||||
and #S.SOCKET.SOCK.MASK
|
|
||||||
cmp #S.SOCKET.SOCK.RAW
|
cmp #S.SOCKET.SOCK.RAW
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -52,6 +52,7 @@ TCP.IN ldy #S.IP.SRC+3
|
|||||||
.4 lda TmpSocket,y
|
.4 lda TmpSocket,y
|
||||||
cmp (ZPPtrSKT),y
|
cmp (ZPPtrSKT),y
|
||||||
bne .7 Not for this socket...
|
bne .7 Not for this socket...
|
||||||
|
|
||||||
iny
|
iny
|
||||||
cpy #S.SOCKET.SRC.PORT+2
|
cpy #S.SOCKET.SRC.PORT+2
|
||||||
bne .4
|
bne .4
|
||||||
@ -139,14 +140,14 @@ TCP.IN.LISTEN.NEW
|
|||||||
lda #ERR.SKT.OOS
|
lda #ERR.SKT.OOS
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.3 ldy #S.SOCKET.STATUS
|
.3 ldy #S.SOCKET.TCP.STATUS
|
||||||
lda #S.SOCKET.STATUS.SYNRCVD
|
lda #S.SOCKET.TCP.STATUS.SYNRCVD
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
|
|
||||||
jmp TCP.SendSYNACK
|
jmp TCP.SendSYNACK
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.IN.REGULAR stx hSocket
|
TCP.IN.REGULAR stx hSocket
|
||||||
ldy #S.SOCKET.STATUS
|
ldy #S.SOCKET.TCP.STATUS
|
||||||
lda (ZPPtrSKT),y
|
lda (ZPPtrSKT),y
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
@ -191,8 +192,8 @@ TCP.IN.JMP.SYNRCVD
|
|||||||
dex
|
dex
|
||||||
bpl .12
|
bpl .12
|
||||||
|
|
||||||
ldy #S.SOCKET.STATUS
|
ldy #S.SOCKET.TCP.STATUS
|
||||||
lda #S.SOCKET.STATUS.ESTBLSH
|
lda #S.SOCKET.TCP.STATUS.ESTBLSH
|
||||||
sta (ZPPtrSKT),y
|
sta (ZPPtrSKT),y
|
||||||
|
|
||||||
|
|
||||||
@ -208,7 +209,7 @@ TCP.IN.JMP.ESTBLSH
|
|||||||
jsr TCP.UpdateSktAckNum
|
jsr TCP.UpdateSktAckNum
|
||||||
|
|
||||||
.1 jsr TCP.SetDataInPtrAndLen
|
.1 jsr TCP.SetDataInPtrAndLen
|
||||||
jsr TCP.AddDataToSkt
|
jsr SKT.AddDataToSktIn
|
||||||
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
@ -223,12 +224,18 @@ TCP.IN.JMP.TIMEWT
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.OUT jsr SKT.GetCopy
|
TCP.OUT ldy #S.SOCKET.SQ.OUTUSED
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
|
||||||
lda SKT.TmpCache+S.SOCKET.SQ.OUTUSED+1
|
pha
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
ply
|
||||||
bne .1
|
bne .1
|
||||||
ldy SKT.TmpCache+S.SOCKET.SQ.OUTUSED
|
|
||||||
beq .8 nothing to send....go check if ACK pending
|
tax
|
||||||
|
beq .2 Y,A=0 : nothing to send....
|
||||||
|
|
||||||
.1 cpy #K.TCP.MSS
|
.1 cpy #K.TCP.MSS
|
||||||
pha
|
pha
|
||||||
@ -236,15 +243,75 @@ TCP.OUT jsr SKT.GetCopy
|
|||||||
pla
|
pla
|
||||||
bcs .2 no....get data len
|
bcs .2 no....get data len
|
||||||
|
|
||||||
>LDYAI K.TCP.MSS yes gert only MSS
|
>LDYAI K.TCP.MSS yes get only MSS
|
||||||
|
|
||||||
.2 >STYA ZPDataOutLen
|
.2 >STYA TmpOffset
|
||||||
|
|
||||||
|
ldx #S.IP.PROTOCOL.TCP
|
||||||
|
jsr FRM.NewIP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
jmp FRM.SendTCP
|
jsr SKT.GetDataFromSktOut
|
||||||
|
|
||||||
|
ldy #S.SOCKET.SQ.SEQNUM compute new SEQ.NUM
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
clc
|
||||||
|
adc TmpOffset
|
||||||
|
sta TmpDWord
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
adc TmpOffset+1
|
||||||
|
sta TmpDWord+1
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
adc #0
|
||||||
|
sta TmpDWord+2
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
adc #0
|
||||||
|
sta TmpDWord+3
|
||||||
|
|
||||||
|
ldy #S.TCP.SEQ.NUMBER+3
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.3 lda TmpDWord,x
|
||||||
|
sta (ZPFrameOutPtr),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .3
|
||||||
|
|
||||||
|
ldy #S.SOCKET.TCP.OPTIONS
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
bit #S.TCP.OPTIONS.ACK
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
ldy #S.TCP.OPTIONS
|
||||||
|
lda (ZPFrameOutPtr),y
|
||||||
|
ora #S.TCP.OPTIONS.ACK
|
||||||
|
sta (ZPFrameOutPtr),y
|
||||||
|
|
||||||
|
.7 jsr FRM.SendIP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
ldy #S.SOCKET.SOCK
|
||||||
|
lda (ZPPtrSKT),y
|
||||||
|
and #$ff^S.TCP.OPTIONS.ACK
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
ldy #S.SOCKET.SQ.SEQNUM+3
|
||||||
|
|
||||||
|
.71 lda TmpDWord,x
|
||||||
|
sta (ZPPtrSKT),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .71
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.UpdateSktAckNum
|
TCP.UpdateSktAckNum
|
||||||
ldy #S.SOCKET.SQ.ACKNUM+3
|
ldy #S.SOCKET.SQ.ACKNUM+3
|
||||||
@ -318,83 +385,9 @@ TCP.SetDataInPtrAndLen
|
|||||||
sta ZPDataInLen+1
|
sta ZPDataInLen+1
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TCP.AddDataToSkt
|
|
||||||
ldy #S.SOCKET.STREAM.hInMem
|
|
||||||
lda (ZPPtrSKT),y
|
|
||||||
>SYSCALL GetMemPtrA
|
|
||||||
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
|
|
||||||
|
|
||||||
ldy #S.SOCKET.SQ.INHEAD
|
|
||||||
lda (ZPPtrSKT),y
|
|
||||||
tax save LO for compare later
|
|
||||||
clc
|
|
||||||
adc ZPTmpPtr1
|
|
||||||
sta ZPTmpPtr2 Make ZPTmpPtr2=actual head
|
|
||||||
iny
|
|
||||||
lda (ZPPtrSKT),y
|
|
||||||
pha save HI for compare later
|
|
||||||
adc ZPTmpPtr1+1
|
|
||||||
sta ZPTmpPtr2+1
|
|
||||||
|
|
||||||
lda ZPDataInLen
|
|
||||||
eor #$ff
|
|
||||||
sta ZPTmpPtr3 Make ZPTmpPtr3=!count
|
|
||||||
lda ZPDataInLen+1
|
|
||||||
eor #$ff
|
|
||||||
sta ZPTmpPtr3+1
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.1 inc ZPTmpPtr3
|
|
||||||
bne .2
|
|
||||||
inc ZPTmpPtr3+1
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
.2 lda (ZPDataInPtr),y
|
|
||||||
sta (ZPTmpPtr2)
|
|
||||||
|
|
||||||
iny
|
|
||||||
bne .3
|
|
||||||
inc ZPDataInPtr+1
|
|
||||||
|
|
||||||
.3 inc ZPTmpPtr2
|
|
||||||
bne .4
|
|
||||||
inc ZPTmpPtr2+1
|
|
||||||
|
|
||||||
.4 pla
|
|
||||||
inx
|
|
||||||
bne .5
|
|
||||||
inc
|
|
||||||
.5 pha
|
|
||||||
cpx #K.TCP.WSIZE
|
|
||||||
sbc /K.TCP.WSIZE
|
|
||||||
bcc .1
|
|
||||||
|
|
||||||
.6 inc ZPTmpPtr3
|
|
||||||
bne .7
|
|
||||||
inc ZPTmpPtr3+1
|
|
||||||
beq .9
|
|
||||||
|
|
||||||
.7 lda (ZPDataInPtr),y
|
|
||||||
sta (ZPTmpPtr1)
|
|
||||||
|
|
||||||
iny
|
|
||||||
bne .8
|
|
||||||
inc ZPDataInPtr+1
|
|
||||||
|
|
||||||
.8 inc ZPTmpPtr1
|
|
||||||
bne .6
|
|
||||||
inc ZPTmpPtr1+1
|
|
||||||
bra .6
|
|
||||||
|
|
||||||
.9 pla
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
TCP.SendACK lda #S.TCP.OPTIONS.ACK
|
|
||||||
bra TCP.SendMSG
|
|
||||||
TCP.SendSYNACK lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
|
TCP.SendSYNACK lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
|
||||||
|
|
||||||
TCP.SendMSG sta TCP.MSG+S.TCP.OPTIONS
|
sta TCP.MSG+S.TCP.OPTIONS
|
||||||
|
|
||||||
ldy #S.SOCKET.SRC.ADDR+3
|
ldy #S.SOCKET.SRC.ADDR+3
|
||||||
ldx #3
|
ldx #3
|
||||||
|
@ -52,23 +52,12 @@ CS.START cld
|
|||||||
.1 .DA LIB.LOAD
|
.1 .DA LIB.LOAD
|
||||||
.DA LIB.UNLOAD
|
.DA LIB.UNLOAD
|
||||||
|
|
||||||
|
.DA POLL
|
||||||
|
.DA PULSEA
|
||||||
|
|
||||||
.DA SET.IPCFG
|
.DA SET.IPCFG
|
||||||
.DA GET.IPCFG
|
.DA GET.IPCFG
|
||||||
|
|
||||||
.DA $ffff NEW.ICMP.FRAME
|
|
||||||
.DA $ffff NEW.TCP.FRAME
|
|
||||||
.DA $ffff NEW.UDP.FRAME
|
|
||||||
.DA $ffff NEW.IP.FRAME
|
|
||||||
.DA $ffff NEW.ARP.FRAME
|
|
||||||
.DA $ffff NEW.ETH.FRAME
|
|
||||||
|
|
||||||
.DA $ffff SEND.ICMP.FRAME
|
|
||||||
.DA $ffff SEND.TCP.FRAME
|
|
||||||
.DA $ffff SEND.UDP.FRAME
|
|
||||||
.DA $ffff SEND.IP.FRAME
|
|
||||||
.DA $ffff SEND.ARP.FRAME
|
|
||||||
.DA $ffff SEND.ETH.FRAME
|
|
||||||
|
|
||||||
.DA ARP.CLEAR
|
.DA ARP.CLEAR
|
||||||
.DA ARP.QUERY
|
.DA ARP.QUERY
|
||||||
.DA ARP.ADD
|
.DA ARP.ADD
|
||||||
@ -79,22 +68,24 @@ CS.START cld
|
|||||||
.DA DNS.ADD
|
.DA DNS.ADD
|
||||||
.DA DNS.GETCACHE
|
.DA DNS.GETCACHE
|
||||||
|
|
||||||
.DA POLL
|
.DA HST.GETBYNAME
|
||||||
.DA PULSEA
|
.DA HST.GETBYADDR
|
||||||
|
|
||||||
.DA SKT.NEW
|
.DA SKT.NEW
|
||||||
.DA $FFFF
|
|
||||||
.DA SKT.ACCEPTA
|
|
||||||
.DA $FFFF
|
|
||||||
.DA SKT.SEND
|
|
||||||
.DA SKT.RCVDA
|
|
||||||
.DA $FFFF
|
|
||||||
.DA SKT.CLOSEA
|
.DA SKT.CLOSEA
|
||||||
.DA SKT.GETTABLE
|
.DA SKT.GETTABLE
|
||||||
.DA SKT.GETA
|
.DA SKT.GETA
|
||||||
|
|
||||||
.DA HST.GETBYNAME
|
.DA SKT.ACCEPTA
|
||||||
.DA HST.GETBYADDR
|
.DA $FFFF
|
||||||
|
|
||||||
|
.DA SKT.Write
|
||||||
|
.DA SKT.Read
|
||||||
|
.DA SKT.ReadA
|
||||||
|
.DA SKT.PutC
|
||||||
|
.DA SKT.PutS
|
||||||
|
.DA SKT.GetCA
|
||||||
|
.DA SKT.GetS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.IPCFG .DA IPCFG
|
L.IPCFG .DA IPCFG
|
||||||
L.ARP.REQ .DA ARP.REQ
|
L.ARP.REQ .DA ARP.REQ
|
||||||
@ -331,6 +322,7 @@ TmpSocket .BS S.SOCKET
|
|||||||
hFrameIn .BS 1
|
hFrameIn .BS 1
|
||||||
hFrameOut .BS 1
|
hFrameOut .BS 1
|
||||||
hSocket .BS 1
|
hSocket .BS 1
|
||||||
|
bTextMode .BS 1
|
||||||
TmpOffset .BS 2
|
TmpOffset .BS 2
|
||||||
HST.DecStr .BS 4
|
HST.DecStr .BS 4
|
||||||
HST.IP .BS 5
|
HST.IP .BS 5
|
||||||
|
@ -122,7 +122,7 @@ CS.RUN.SDISC ldy #hSocket
|
|||||||
>PUSHB (pData),y
|
>PUSHB (pData),y
|
||||||
>PUSHW L.DHCP.DISC
|
>PUSHW L.DHCP.DISC
|
||||||
>PUSHWI DHCP.DISC.LEN
|
>PUSHWI DHCP.DISC.LEN
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.SEND
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
|
||||||
bcc .1
|
bcc .1
|
||||||
jmp CS.RUN.KO
|
jmp CS.RUN.KO
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ CS.RUN.SREQ ldx #3
|
|||||||
>PUSHB (pData),y
|
>PUSHB (pData),y
|
||||||
>PUSHW L.DHCP.REQ
|
>PUSHW L.DHCP.REQ
|
||||||
>PUSHWI DHCP.REQ.LEN
|
>PUSHWI DHCP.REQ.LEN
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.SEND
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
|
||||||
bcs CS.RUN.KO
|
bcs CS.RUN.KO
|
||||||
|
|
||||||
lda #S.IPCFG.STATUS.SREQ
|
lda #S.IPCFG.STATUS.SREQ
|
||||||
@ -211,7 +211,7 @@ CS.RUN.KO pha
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.SKT.RCVD ldy #hSocket
|
CS.RUN.SKT.RCVD ldy #hSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.RCVDA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadA
|
||||||
bcs .9
|
bcs .9
|
||||||
ldy #hFrame
|
ldy #hFrame
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
@ -13,6 +13,7 @@ AUTO 6
|
|||||||
.INB /A2OSX.DEV/INC/LIBTCPIP.I
|
.INB /A2OSX.DEV/INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TIMEOUT.MAX .EQ 30 30 sec.
|
TIMEOUT.MAX .EQ 30 30 sec.
|
||||||
|
CONN.MAX .EQ 16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPIPCfgPtr .EQ ZPBIN
|
ZPIPCfgPtr .EQ ZPBIN
|
||||||
ZPSktPtr .EQ ZPBIN+2
|
ZPSktPtr .EQ ZPBIN+2
|
||||||
@ -94,23 +95,38 @@ CS.RUN.INIT ldx #3
|
|||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW
|
||||||
bcs .9
|
bcs .9
|
||||||
txa
|
txa
|
||||||
ldy #hSocket
|
ldy #hSrvSocket
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
>LDYA L.MSG.INITOK
|
>LDYA L.MSG.INITOK
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
.11 >SYSCALL Sleep
|
.11 >SYSCALL Sleep
|
||||||
>SYSCALL GetC
|
|
||||||
bcs .12
|
|
||||||
cmp #03
|
|
||||||
beq CS.RUN.ABORT
|
|
||||||
|
|
||||||
.12 ldy #hSocket
|
.12 ldy #hSrvSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ACCEPTA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ACCEPTA
|
||||||
bcs .11
|
bcs .15
|
||||||
|
|
||||||
|
pha
|
||||||
|
|
||||||
|
ldy #hSockets
|
||||||
|
ldx #CONN.MAX
|
||||||
|
|
||||||
|
.13 lda (pData),y
|
||||||
|
beq .14
|
||||||
|
iny
|
||||||
|
dex
|
||||||
|
bne .13
|
||||||
|
|
||||||
|
pla
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
||||||
|
bra .15
|
||||||
|
|
||||||
|
.14 pla
|
||||||
|
sta (pData),y
|
||||||
|
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETA
|
||||||
>STYA ZPSktPtr
|
>STYA ZPSktPtr
|
||||||
|
|
||||||
@ -124,6 +140,25 @@ CS.RUN.INIT ldx #3
|
|||||||
|
|
||||||
>LDYA L.MSG.INCOMING
|
>LDYA L.MSG.INCOMING
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
|
.15 ldy #SktIndex
|
||||||
|
lda (pData),y
|
||||||
|
tay
|
||||||
|
lda (pData),y hSockets
|
||||||
|
|
||||||
|
beq .16
|
||||||
|
|
||||||
|
jsr CS.RUN.CLIENT
|
||||||
|
|
||||||
|
.16 ldy #SktIndex
|
||||||
|
lda (pData),y
|
||||||
|
inc
|
||||||
|
cmp #CONN.MAX
|
||||||
|
bne .17
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.17 sta (pData),y
|
||||||
|
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.9 >LDYA L.MSG.SKTERR
|
.9 >LDYA L.MSG.SKTERR
|
||||||
@ -138,10 +173,38 @@ CS.RUN.ABORT >LDYA L.MSG.ABORT
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.CLIENT >PUSHA hSocket
|
||||||
|
>PUSHWI UsrBuf256
|
||||||
|
>PUSHWI 256
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetS
|
||||||
|
bcc .1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.1 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT ldy #hSocket
|
CS.QUIT ldx #CONN.MAX
|
||||||
|
ldy #hSockets
|
||||||
|
|
||||||
|
.1 lda (pData),y
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
phx
|
||||||
|
phy
|
||||||
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
||||||
|
ply
|
||||||
|
plx
|
||||||
|
|
||||||
|
.2 iny
|
||||||
|
dex
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
ldy #hSrvSocket
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
||||||
|
|
||||||
@ -159,9 +222,6 @@ Wait.TimeOut sec
|
|||||||
ldy #TimeOut
|
ldy #TimeOut
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .9
|
beq .9
|
||||||
ldy #bCTRLC
|
|
||||||
lda (pData),y
|
|
||||||
bmi .9
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -176,22 +236,22 @@ MSG.ABORT >CSTR "HTTPD:User Aborted\n"
|
|||||||
MSG.INCOMING >CSTR "HTTPD:Incoming Connection From : %d.%d.%d.%d\n"
|
MSG.INCOMING >CSTR "HTTPD:Incoming Connection From : %d.%d.%d.%d\n"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Socket .DA #S.SOCKET.SOCK.STREAM+S.SOCKET.STATUS.LISTEN
|
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||||
.DA #S.SOCKET.SO.ACCEPTCONN
|
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||||
.DA 0
|
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
||||||
.BS 1
|
.BS 1
|
||||||
Socket.Src.Addr .BS 4
|
Socket.Src.Addr .BS 4
|
||||||
Socket.Src.Port .DA 80
|
Socket.Src.Port .DA 80
|
||||||
Socket.Dst.Addr .BS 4
|
Socket.Dst.Addr .BS 4
|
||||||
Socket.Dst.Port .BS 2
|
Socket.Dst.Port .BS 2
|
||||||
.BS 16
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
|
hSockets .BS CONN.MAX pData
|
||||||
|
SktIndex .BS 1
|
||||||
|
hSrvSocket .BS 1
|
||||||
TimeOut .BS 1
|
TimeOut .BS 1
|
||||||
bCTRLC .BS 1
|
|
||||||
hSocket .BS 1
|
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -207,9 +207,10 @@ MSG.ABORT >CSTR "NFSD:User Aborted\n"
|
|||||||
MSG.INCOMING >CSTR "NFSD:Incoming Connection From : %d.%d.%d.%d\n"
|
MSG.INCOMING >CSTR "NFSD:Incoming Connection From : %d.%d.%d.%d\n"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Socket .DA #S.SOCKET.SOCK.DGRAM+S.SOCKET.STATUS.LISTEN
|
Socket .DA #S.SOCKET.SOCK.DGRAM
|
||||||
.DA #S.SOCKET.SO.ACCEPTCONN
|
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||||
.BS 2
|
.DA #S.SOCKET.TCP.STATUS.LISTEN
|
||||||
|
.BS 1
|
||||||
Socket.Src.Addr .BS 4
|
Socket.Src.Addr .BS 4
|
||||||
Socket.Src.Port .DA 2049
|
Socket.Src.Port .DA 2049
|
||||||
Socket.Dst.Addr .BS 4
|
Socket.Dst.Addr .BS 4
|
||||||
|
Loading…
Reference in New Issue
Block a user