mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-13 13:30:36 +00:00
Kernel version 0.9 : TCP & Sockets, bugfix session #1
This commit is contained in:
parent
81afee1ca5
commit
2f2529f8ab
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.
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user