Kernel version 0.9 : TCP & Sockets, bugfix session #1

This commit is contained in:
Rémy GIBERT 2017-02-15 22:46:21 +01:00
parent 81afee1ca5
commit 2f2529f8ab
20 changed files with 62 additions and 70 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -136,7 +136,7 @@ CS.RUN.OPENSKT ldx #3
sta (pData),y sta (pData),y
>PUSHW L.Socket >PUSHW L.Socket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
bcc .2 bcc .2
>LDYA L.MSG.SKTKO >LDYA L.MSG.SKTKO

View File

@ -101,7 +101,7 @@ CS.RUN jsr Init.Timeout
rts rts
.2 >PUSHW L.Socket .2 >PUSHW L.Socket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
bcs .99 bcs .99
txa txa

View File

@ -42,20 +42,20 @@ LIBTCPIP.DNS.GETCACHE .EQ 26
LIBTCPIP.HST.GETBYNAME .EQ 28 LIBTCPIP.HST.GETBYNAME .EQ 28
LIBTCPIP.HST.GETBYADDR .EQ 30 LIBTCPIP.HST.GETBYADDR .EQ 30
LIBTCPIP.SKT.NEW .EQ 32 LIBTCPIP.SKT.New .EQ 32
LIBTCPIP.SKT.CLOSEA .EQ 34 LIBTCPIP.SKT.CLOSEA .EQ 34
LIBTCPIP.SKT.GETTABLE .EQ 36 LIBTCPIP.SKT.GETTABLE .EQ 36
LIBTCPIP.SKT.GETA .EQ 38 LIBTCPIP.SKT.GETA .EQ 38
LIBTCPIP.SKT.ACCEPTA .EQ 34 LIBTCPIP.SKT.ACCEPTA .EQ 40
LIBTCPIP.SKT.Write .EQ 38 LIBTCPIP.SKT.Write .EQ 44
LIBTCPIP.SKT.Read .EQ 50 LIBTCPIP.SKT.Read .EQ 46
LIBTCPIP.SKT.ReadA .EQ 40 LIBTCPIP.SKT.ReadA .EQ 48
LIBTCPIP.SKT.PutC .EQ 42 LIBTCPIP.SKT.PutC .EQ 50
LIBTCPIP.SKT.PutS .EQ 44 LIBTCPIP.SKT.PutS .EQ 52
LIBTCPIP.SKT.GetCA .EQ 46 LIBTCPIP.SKT.GetCA .EQ 54
LIBTCPIP.SKT.GetS .EQ 48 LIBTCPIP.SKT.GetS .EQ 56
*-------------------------------------- *--------------------------------------
ERR.SKT.OOS .EQ $BF ERR.SKT.OOS .EQ $BF
ERR.SKT.BUSY .EQ $BE ERR.SKT.BUSY .EQ $BE

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -78,7 +78,7 @@ SET.IPCFG >PULLW ZPTmpPtr1
stz DNS.SOCKET.SP+1 stz DNS.SOCKET.SP+1
>PUSHW L.DNS.SOCKET >PUSHW L.DNS.SOCKET
jsr SKT.NEW jsr SKT.New
bcs .9 bcs .9
stx hDNSSocket1 stx hDNSSocket1
@ -96,7 +96,7 @@ SET.IPCFG >PULLW ZPTmpPtr1
stz DNS.SOCKET.SP+1 stz DNS.SOCKET.SP+1
>PUSHW L.DNS.SOCKET >PUSHW L.DNS.SOCKET
jsr SKT.NEW jsr SKT.New
bcs .9 bcs .9
stx hDNSSocket2 stx hDNSSocket2

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -108,17 +108,17 @@ DNS.REQUEST lda hDNSSocket1
jsr DNS.ADD.I jsr DNS.ADD.I
bcs .9 bcs .9
>PUSHW DNS.MSG.LEN
>PUSHW L.DNS.MSG
>PUSHB hDNSSocket1 >PUSHB hDNSSocket1
>PUSHW L.DNS.MSG
>PUSHW DNS.MSG.LEN
jsr SKT.Write jsr SKT.Write
lda hDNSSocket2 lda hDNSSocket2
beq .3 beq .3
>PUSHW DNS.MSG.LEN
>PUSHW L.DNS.MSG
>PUSHB hDNSSocket2 >PUSHB hDNSSocket2
>PUSHW L.DNS.MSG
>PUSHW DNS.MSG.LEN
jsr SKT.Write jsr SKT.Write
.3 lda #ERR.DNS.PENDING .3 lda #ERR.DNS.PENDING

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
NEW LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
@ -127,6 +127,15 @@ SKT.New.TCP ldy #S.SOCKET.SQ.INFREE
iny iny
sta (ZPTmpPtr3),y sta (ZPTmpPtr3),y
ldx #3
ldy #S.SOCKET.SQ.SEQNUM+3
.2 lda A2osX.TIMER16,x
sta (ZPTmpPtr3),y
dey
dex
bpl .2
>PUSHW K.TCP.WSIZE >PUSHW K.TCP.WSIZE
>PUSHBI 0 >PUSHBI 0
>SYSCALL GetMem >SYSCALL GetMem
@ -247,7 +256,7 @@ SKT.AcceptA jsr SKT.GetA.I
ldy #S.SOCKET.SO ldy #S.SOCKET.SO
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
and #S.SOCKET.SO.ACCEPTCONN and #S.SOCKET.SO.ACCEPTCONN
bne .99 beq .99
ldy #S.SOCKET.HQ.HEAD ldy #S.SOCKET.HQ.HEAD
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
@ -275,7 +284,7 @@ SKT.AcceptA jsr SKT.GetA.I
sec sec
.9 rts .9 rts
*/-------------------------------------- */--------------------------------------
* #SKT.Send (DGRAM,STREAM,RAW) * #SKT.Write (DGRAM,STREAM,RAW)
* Send block of data * Send block of data
* ##In : * ##In :
* PUSHB = hSocket * PUSHB = hSocket
@ -363,7 +372,7 @@ SKT.Write.TCP ldy #S.SOCKET.TCP.STATUS
sec sec
.99 rts .99 rts
*/-------------------------------------- */--------------------------------------
* #SKT.RcvdA (DGRAM,RAW) * #SKT.ReadA (DGRAM,RAW)
* ##In : * ##In :
* A = hSocket * A = hSocket
* ##Out : * ##Out :
@ -787,7 +796,7 @@ SKT.GetDataFromSktOut
.8 clc .8 clc
rts rts
*-------------------------------------- *--------------------------------------
* From SKT.RCVD * From SKT.Write
* In: * In:
* Src : hInMem/INTAIL * Src : hInMem/INTAIL
* Dst : ZPDataOutPtr/ZPDataOutLen * Dst : ZPDataOutPtr/ZPDataOutLen

View File

@ -1,18 +1,11 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
TCP.IN ldy #S.IP.SRC+3 TCP.IN jsr IP.FillTmpSocketSrcDst
ldx #3
.1 lda (ZPFrameInPtr),y
sta TmpSocket+S.SOCKET.DST.ADDR,x
dey
dex
bpl .1
ldy #S.TCP.SRCPORT ldy #S.TCP.SRCPORT
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
@ -21,14 +14,6 @@ TCP.IN ldy #S.IP.SRC+3
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
sta TmpSocket+S.SOCKET.DST.PORT sta TmpSocket+S.SOCKET.DST.PORT
ldy #S.IP.DST+3
ldx #3
.2 lda (ZPFrameInPtr),y
sta TmpSocket+S.SOCKET.SRC.ADDR,x
dey
dex
bpl .2
ldy #S.TCP.DSTPORT ldy #S.TCP.DSTPORT
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
sta TmpSocket+S.SOCKET.SRC.PORT+1 sta TmpSocket+S.SOCKET.SRC.PORT+1
@ -63,7 +48,8 @@ TCP.IN ldy #S.IP.SRC+3
beq .5 beq .5
ldy #S.TCP.OPTIONS yes, only accept SYN packet ldy #S.TCP.OPTIONS yes, only accept SYN packet
lda (ZPFrameOutPtr),y lda (ZPFrameInPtr),y
cmp #S.TCP.OPTIONS.SYN cmp #S.TCP.OPTIONS.SYN
bne .7 not for this listening socket bne .7 not for this listening socket
jmp TCP.IN.LISTEN.NEW jmp TCP.IN.LISTEN.NEW
@ -96,7 +82,7 @@ TCP.IN ldy #S.IP.SRC+3
TCP.IN.LISTEN.NEW TCP.IN.LISTEN.NEW
lda #S.SOCKET.SOCK.STREAM lda #S.SOCKET.SOCK.STREAM
sta TmpSocket sta TmpSocket
stz TmpSocket+S.SOCKET.SO stz TmpSocket+S.SOCKET.SO
ldy #S.TCP.SEQ.NUMBER+3 ldy #S.TCP.SEQ.NUMBER+3
@ -111,15 +97,9 @@ TCP.IN.LISTEN.NEW
dex dex
bpl .1 bpl .1
ldx #3
.2 lda A2osX.TIMER16,x
sta TmpSocket+S.SOCKET.SQ.SEQNUM,x
dex
bpl .2
>PUSHW L.TmpSocket >PUSHW L.TmpSocket
jsr SKT.NEW jsr SKT.New
bcs .9 bcs .9
phy phy
@ -133,7 +113,7 @@ TCP.IN.LISTEN.NEW
pla pla
sta ZPPtrSKT sta ZPPtrSKT
bcc .3 bcc .3 Queued successfully ?
lda #0 error lda #0 error
sta (ZPPtrSKT) clear this socket sta (ZPPtrSKT) clear this socket
@ -144,7 +124,10 @@ TCP.IN.LISTEN.NEW
lda #S.SOCKET.TCP.STATUS.SYNRCVD lda #S.SOCKET.TCP.STATUS.SYNRCVD
sta (ZPPtrSKT),y sta (ZPPtrSKT),y
jmp TCP.SendSYNACK ldy #S.SOCKET.TCP.OPTIONS
lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK
sta (ZPPtrSKT),y
jmp TCP.Out
*-------------------------------------- *--------------------------------------
TCP.IN.REGULAR stx hSocket TCP.IN.REGULAR stx hSocket
ldy #S.SOCKET.TCP.STATUS ldy #S.SOCKET.TCP.STATUS
@ -296,7 +279,7 @@ TCP.OUT ldy #S.SOCKET.SQ.OUTUSED
.7 jsr FRM.SendIP .7 jsr FRM.SendIP
bcs .9 bcs .9
ldy #S.SOCKET.SOCK ldy #S.SOCKET.TCP.OPTIONS
lda (ZPPtrSKT),y lda (ZPPtrSKT),y
and #$ff^S.TCP.OPTIONS.ACK and #$ff^S.TCP.OPTIONS.ACK
sta (ZPPtrSKT),y sta (ZPPtrSKT),y

View File

@ -1,6 +1,6 @@
PR#3 PR#3
PREFIX /A2OSX.SRC PREFIX /A2OSX.SRC
LOMEM $A00 LOMEM $900
INC 1 INC 1
AUTO 6 AUTO 6
.LIST OFF .LIST OFF

View File

@ -52,12 +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 POLL
.DA PULSEA
.DA ARP.CLEAR .DA ARP.CLEAR
.DA ARP.QUERY .DA ARP.QUERY
.DA ARP.ADD .DA ARP.ADD
@ -71,7 +71,7 @@ CS.START cld
.DA HST.GETBYNAME .DA HST.GETBYNAME
.DA HST.GETBYADDR .DA HST.GETBYADDR
.DA SKT.NEW .DA SKT.New
.DA SKT.CLOSEA .DA SKT.CLOSEA
.DA SKT.GETTABLE .DA SKT.GETTABLE
.DA SKT.GETA .DA SKT.GETA

View File

@ -105,7 +105,7 @@ CS.INIT >LDYA L.LIBTCPIP
*-------------------------------------- *--------------------------------------
CS.RUN >PUSHW L.Socket CS.RUN >PUSHW L.Socket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
bcc .1 bcc .1
jmp CS.RUN.KO jmp CS.RUN.KO

View File

@ -92,7 +92,7 @@ CS.RUN.INIT ldx #3
bpl .1 bpl .1
>PUSHW L.Socket >PUSHW L.Socket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
bcs .9 bcs .9
txa txa
ldy #hSrvSocket ldy #hSrvSocket
@ -106,7 +106,7 @@ CS.RUN.INIT ldx #3
.12 ldy #hSrvSocket .12 ldy #hSrvSocket
lda (pData),y lda (pData),y
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ACCEPTA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.AcceptA
bcs .15 bcs .15
pha pha
@ -121,13 +121,13 @@ CS.RUN.INIT ldx #3
bne .13 bne .13
pla pla
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CloseA
bra .15 bra .15
.14 pla .14 pla
sta (pData),y sta (pData),y
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GETA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetA
>STYA ZPSktPtr >STYA ZPSktPtr
ldx #3 ldx #3

View File

@ -87,7 +87,7 @@ CS.RUN.INIT ldx #3
bpl .1 bpl .1
>PUSHW L.Socket >PUSHW L.Socket
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.NEW >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
bcs .9 bcs .9
txa txa
ldy #hSocket ldy #hSocket

View File

@ -110,7 +110,7 @@
##Out : ##Out :
+ A = hSocket + A = hSocket
#SKT.Send (DGRAM,STREAM,RAW) #SKT.Write (DGRAM,STREAM,RAW)
+ Send block of data + Send block of data
##In : ##In :
@ -121,7 +121,7 @@
##Out : ##Out :
+ A = hFrame + A = hFrame
#SKT.RcvdA (DGRAM,RAW) #SKT.ReadA (DGRAM,RAW)
##In : ##In :
+ A = hSocket + A = hSocket