Kernel version 0.9 : TCP, bugfix in TELNETD/NETSTAT

This commit is contained in:
Rémy GIBERT 2017-03-14 08:32:31 +01:00
parent 89f0b22a7a
commit 0769677e5a
6 changed files with 34 additions and 26 deletions

Binary file not shown.

Binary file not shown.

View File

@ -362,7 +362,7 @@ SKT.MkNodA
*\-------------------------------------- *\--------------------------------------
SKT.Write >PULLW ZPDataInLen SKT.Write >PULLW ZPDataInLen
>PULLW ZPDataInPtr >PULLW ZPDataInPtr
>PULLB hSocket >PULLA
SKT.Write.I jsr SKT.GetA.I SKT.Write.I jsr SKT.GetA.I
bcs .9 bcs .9
@ -503,14 +503,17 @@ SKT.ReadA jsr SKT.GetA.I
*\-------------------------------------- *\--------------------------------------
SKT.PutC >PULLB TmpByte SKT.PutC >PULLB TmpByte
>PULLB hSocket >PULLA
lda #1 ldx #1
sta ZPDataOutLen stx ZPDataOutLen
stz ZPDataOutLen+1 stz ZPDataOutLen+1
>LDYA L.TmpByte ldx L.TmpByte
>STYA ZPDataOutPtr stx ZPDataOutPtr
ldx L.TmpByte+1
stx ZPDataOutPtr+1
jmp SKT.Write.I jmp SKT.Write.I
*/-------------------------------------- */--------------------------------------
@ -540,15 +543,16 @@ SKT.PutS >PULLW ZPDataOutPtr
* ##Out : * ##Out :
* A = char * A = char
*\-------------------------------------- *\--------------------------------------
SKT.GetCA sta hSocket SKT.GetCA stz bTextMode
stz bTextMode
lda #1 ldx #1
sta ZPDataOutLen stx ZPDataOutLen
stz ZPDataOutLen+1 stz ZPDataOutLen+1
>LDYA L.TmpByte ldx L.TmpByte
>STYA ZPDataOutPtr stx ZPDataOutPtr
ldx L.TmpByte+1
stx ZPDataOutPtr+1
jsr SKT.Read.I jsr SKT.Read.I
bcs .9 bcs .9
@ -581,7 +585,7 @@ SKT.Read clc
ror bTextMode ror bTextMode
>PULLW ZPDataOutLen >PULLW ZPDataOutLen
>PULLW ZPDataOutPtr >PULLW ZPDataOutPtr
>PULLB hSocket >PULLA
SKT.Read.I jsr SKT.GetA.I SKT.Read.I jsr SKT.GetA.I
bcs .99 bcs .99

View File

@ -62,8 +62,6 @@ TCP.IN jsr IP.FillSKT.TemplateSrcDst
cpy #S.SOCKET.DST.PORT+2 cpy #S.SOCKET.DST.PORT+2
bne .6 bne .6
stx hSocket
ldy #S.TCP.OPTIONS ldy #S.TCP.OPTIONS
lda (ZPFrameInPtr),y lda (ZPFrameInPtr),y
and #S.TCP.OPTIONS.RST RST ? go Kill this socket. and #S.TCP.OPTIONS.RST RST ? go Kill this socket.
@ -139,7 +137,7 @@ TCP.IN.JMP.LISTEN
jsr TCP.OUT.SYNACK jsr TCP.OUT.SYNACK
bcs .9 bcs .9
ldy #S.SOCKET.TCP.STATUS ldy #S.SOCKET.TCP.STATUS
lda #S.SOCKET.TCP.STATUS.SYNRCVD lda #S.SOCKET.TCP.STATUS.SYNRCVD
sta (ZPPtrSKT),y sta (ZPPtrSKT),y
@ -408,7 +406,15 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTUSED+1
bne .1 bne .1
tax tax
beq .2 Y,A=0 : nothing to send.... bne .1 Y,A=0 : nothing to send
ldy #S.SOCKET.TCP.OPTIONS
lda (ZPPtrSKT),y
beq .88 No, data, no flag....exit
txa a least one flag to send
tay
bra .2 go send a O len frame
.1 cpy #K.TCP.MSS .1 cpy #K.TCP.MSS
pha pha
@ -418,9 +424,7 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTUSED+1
>LDYAI K.TCP.MSS yes get only MSS >LDYAI K.TCP.MSS yes get only MSS
.2 >STYA TmpOffset .2 jsr TCP.NewFrame
jsr TCP.NewFrame
bcs .9 bcs .9
jsr SKT.GetDataFromSktOut jsr SKT.GetDataFromSktOut
@ -456,7 +460,7 @@ TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTUSED+1
sta (ZPPtrSKT),y sta (ZPPtrSKT),y
jmp SKT.StoreTCB jmp SKT.StoreTCB
.88 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
TCP.NewFrame ldx #S.IP.PROTOCOL.TCP TCP.NewFrame ldx #S.IP.PROTOCOL.TCP

View File

@ -293,7 +293,7 @@ TmpDWord .BS 4
TmpOffset .BS 2 TmpOffset .BS 2
hFrameIn .BS 1 hFrameIn .BS 1
hFrameOut .BS 1 hFrameOut .BS 1
hSocket .BS 1 * hSocket .BS 1
bTextMode .BS 1 bTextMode .BS 1
HST.DecStr .BS 4 HST.DecStr .BS 4
HST.IP .BS 5 HST.IP .BS 5

View File

@ -177,8 +177,8 @@ CS.RUN.SERVER ldy #hSrvSocket
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.CLIENT >PUSHA hSocket CS.RUN.CLIENT sta .1+1 hSocket
sta .1+1
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetCA >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetCA
bcs .8 bcs .8
sta .2+1 sta .2+1
@ -186,10 +186,10 @@ CS.RUN.CLIENT >PUSHA hSocket
>SYSCALL PutCA >SYSCALL PutCA
.1 lda #$ff .1 lda #$ff hSocket
>PUSHA >PUSHA
.2 lda #$ff .2 lda #$ff data
>PUSHA >PUSHA
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.PutC >LIBCALL hLIBTCPIP,LIBTCPIP.SKT.PutC