From 95844e1698e882ac6975456ab1c42e2494d1eb3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Thu, 23 Mar 2017 17:41:36 +0100 Subject: [PATCH] Kernel version 0.9 : TCP & SKT, bugfix and optimization in TCP.OUT --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.DEV.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes INC/LIBTCPIP.I.txt | 29 ++++---- LIB/LIBTCPIP.S.CFG.txt | 7 ++ LIB/LIBTCPIP.S.SKT.txt | 104 ++++++++++----------------- LIB/LIBTCPIP.S.TCP.txt | 159 +++++++++++++++++------------------------ LIB/LIBTCPIP.S.txt | 25 ------- 8 files changed, 123 insertions(+), 201 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 5ebfa61a42b6d0015df98dffc115aefcc524325c..a41d4c30990394a010afa1e42bc6db75cb5a342b 100644 GIT binary patch delta 4723 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 Sc=VmIzfpVjYWs~i)$w;rGix0H delta 4996 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 delta 1650 zcmZvcS!^3+5XZkS|Fkz+fKk8)EA<%U9OQ(Eq$6v|ZyVfIMEqS(?re7~9b&o?vQ z?q7B6Uv)g+(Lu>#XGgxNtDAH%ME?zuGZ*F-4|k;=r#COsrt|dCd~`l3^2$L@%p3@X z3F{}x#Ed4$37O*+nagBFC1=72@doUWkH_yd;-bVqXh(ZQP2h!D@ot012s^yRhW~CER!i;Z4sW%vD7pn_wr{XOVmD7Y7P7?QOs+f_oDdTon zYD%mQtm9&-?(#Z$(>W#~eT|=0U?T||d zDcM{l;yn&>$wNPZeI+mb6b_aGu@j~@w&9VjEVz;G&rA?kwf}-BX*sEPmVkL#EubOTNeKGkZo)fZCjvlSM8oDI#vB0VfE17JV7|1>9P8(=XvrnWbMr zzU-U-dLsxYofRcPyw9vEA&;T-H@ft7;$`OR>FLbFdLUSypNn#G^;Zh9VE;T z7Q-vqS(tc#G#SK~d+9mIEsx#!6KeIIH;;|M>n$Hcsh=&WUy$L8-B#*?#kP_1{R$_S z2k39GhW2-0Dn9xLTw7u2pOCBg=|#As5}<#np=JRMlsDBa?acjQVHtbSgD?GR2 zV%sdbo69H<>x~`>HQIt)!x1Dy4miCsNZX;gIz%spE353(Wt-lbV0t%NgCWzM>DYuy z+=6Yvkdcb%g!!tMcEOXFY6sM-!?YXDqTLDYwGnzbjMqk{d#w0OTu5i7jgjirMhM$$ zL0 zdpxX-s%hR>&?xZ?fLwP+d^U_@F|hug{5F!>YorZL5>Ei0uDizvZJ3vGMqqeylDLO9 SkdWk69GHaY&PKjLZ~GUL==nYX diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 366601c306d2fd5d13b1b7f45a5a3d05345a1670..03f762eaecb069861a19d899f8e731708f823a07 100644 GIT binary patch delta 20824 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 DUa6Nc delta 21466 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 U^Y5X`VKY7Xfe|D_U3TaH1ERM@YybcN diff --git a/INC/LIBTCPIP.I.txt b/INC/LIBTCPIP.I.txt index 4c9bb323..ebe4c738 100644 --- a/INC/LIBTCPIP.I.txt +++ b/INC/LIBTCPIP.I.txt @@ -28,23 +28,23 @@ LIBTCPIP.GET.IPCFG .EQ 6 LIBTCPIP.POLL .EQ 8 LIBTCPIP.PULSEA .EQ 10 -LIBTCPIP.ARP.CLEAR .EQ 12 -LIBTCPIP.ARP.QUERY .EQ 14 -LIBTCPIP.ARP.ADD .EQ 16 -LIBTCPIP.ARP.GETCACHE .EQ 18 +LIBTCPIP.ARP.Clear .EQ 12 +LIBTCPIP.ARP.Query .EQ 14 +LIBTCPIP.ARP.Add .EQ 16 +LIBTCPIP.ARP.GetCache .EQ 18 -LIBTCPIP.DNS.CLEAR .EQ 20 -LIBTCPIP.DNS.QUERY .EQ 22 -LIBTCPIP.DNS.ADD .EQ 24 -LIBTCPIP.DNS.GETCACHE .EQ 26 +LIBTCPIP.DNS.Clear .EQ 20 +LIBTCPIP.DNS.Query .EQ 22 +LIBTCPIP.DNS.Add .EQ 24 +LIBTCPIP.DNS.GetCache .EQ 26 -LIBTCPIP.HST.GETBYNAME .EQ 28 -LIBTCPIP.HST.GETBYADDR .EQ 30 +LIBTCPIP.HST.GetByName .EQ 28 +LIBTCPIP.HST.GetByAddr .EQ 30 LIBTCPIP.SKT.New .EQ 32 -LIBTCPIP.SKT.CLOSEA .EQ 34 -LIBTCPIP.SKT.GETTABLE .EQ 36 -LIBTCPIP.SKT.GETA .EQ 38 +LIBTCPIP.SKT.CloseA .EQ 34 +LIBTCPIP.SKT.GetTable .EQ 36 +LIBTCPIP.SKT.GetA .EQ 38 LIBTCPIP.SKT.AcceptA .EQ 40 LIBTCPIP.SKT.MkNodA .EQ 42 @@ -180,9 +180,8 @@ S.TCB.INFREE .EQ 12 S.TCB.OUTFREE .EQ 14 S.TCB.SEQNUM .EQ 16 S.TCB.ACKNUM .EQ 20 -S.TCB.NEXTSEQNUM .EQ 24 * -S.TCB .EQ 32 +S.TCB .EQ 24 *-------------------------------------- S.ETH.FRAMELEN .EQ 0 S.ETH.DSTMAC .EQ 2 diff --git a/LIB/LIBTCPIP.S.CFG.txt b/LIB/LIBTCPIP.S.CFG.txt index 2c8d7474..c4c8b81f 100644 --- a/LIB/LIBTCPIP.S.CFG.txt +++ b/LIB/LIBTCPIP.S.CFG.txt @@ -9,6 +9,7 @@ AUTO 6 *-------------------------------------- SET.IPCFG >PULLW ZPTmpPtr1 ldy #0 + .1 lda (ZPTmpPtr1),y sta IPCFG,y iny @@ -16,6 +17,7 @@ SET.IPCFG >PULLW ZPTmpPtr1 bne .1 ldx #5 + .2 lda IPCFG+S.IPCFG.MAC,x sta ARP.REQ.SRCMAC,x sta ARP.REQ.SHA,x @@ -25,6 +27,7 @@ SET.IPCFG >PULLW ZPTmpPtr1 bpl .2 ldx #3 + .3 lda IPCFG+S.IPCFG.IP,x sta ARP.REQ.SPA,x sta ARP.REP.SPA,x @@ -55,15 +58,18 @@ SET.IPCFG >PULLW ZPTmpPtr1 .4 lda hDNSSocket1 beq .41 jsr SKT.CLOSEA + stz hDNSSocket1 .41 lda hDNSSocket2 beq .42 jsr SKT.CLOSEA + stz hDNSSocket2 .42 lda IPCFG+S.IPCFG.DNS1 beq .6 ldx #3 + .5 lda IPCFG+S.IPCFG.DNS1,x sta DNS.SOCKET.DA,x dex @@ -82,6 +88,7 @@ SET.IPCFG >PULLW ZPTmpPtr1 beq .8 ldx #3 + .7 lda IPCFG+S.IPCFG.DNS2,x sta DNS.SOCKET.DA,x dex diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index a586e404..a7dd2aa2 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -103,7 +103,8 @@ SKT.New.Listen sec >LDYA ZPTmpPtr3 >STYA ZPPtrSKT - jsr TCP.OUT.SYN Only for CLIENT conn!!!! + lda #S.TCP.OPTIONS.SYN + jsr TCP.OUT.A Only for CLIENT conn!!!! bcs .99 ldy #S.SOCKET.TCP.STATUS @@ -325,29 +326,44 @@ SKT.Write >PULLW ZPDataInLen >PULLW ZPDataInPtr >PULLA -SKT.Write.I jsr SKT.GetA.I + jsr SKT.GetA.I bcs .9 cmp #S.SOCKET.SOCK.DGRAM beq SKT.Write.UDP + cmp #S.SOCKET.SOCK.RAW + beq SKT.Write.RAW + cmp #S.SOCKET.SOCK.STREAM - bne .1 + bne .99 ldy #S.SOCKET.SO lda (ZPPtrSKT),y and #S.SOCKET.SO.ACCEPTCONN bne .99 jmp SKT.Write.TCP - -.1 cmp #S.SOCKET.SOCK.RAW - bne .99 - jmp SKT.Write.RAW .99 lda #ERR.SKT.BAD sec .9 rts *-------------------------------------- +SKT.Write.RAW ldy #S.SOCKET.RAW.PROTO + lda (ZPPtrSKT),y + + tax + >LDYA ZPDataInLen + jsr FRM.NewIP + bcs .9 + + jsr SKT.SetFrameOutDstIP + + jsr SKT.CopyDataInToOut + + jmp FRM.SendIP + +.9 rts +*-------------------------------------- SKT.Write.UDP ldx #S.IP.PROTOCOL.UDP >LDYA ZPDataInLen jsr FRM.NewIP @@ -381,22 +397,6 @@ SKT.Write.UDP ldx #S.IP.PROTOCOL.UDP jmp FRM.SendIP -.9 rts -*-------------------------------------- -SKT.Write.RAW ldy #S.SOCKET.RAW.PROTO - lda (ZPPtrSKT),y - - tax - >LDYA ZPDataInLen - jsr FRM.NewIP - bcs .9 - - jsr SKT.SetFrameOutDstIP - - jsr SKT.CopyDataInToOut - - jmp FRM.SendIP - .9 rts *-------------------------------------- SKT.Write.TCP ldy #S.SOCKET.TCP.STATUS @@ -464,8 +464,6 @@ SKT.ReadA jsr SKT.GetA.I *\-------------------------------------- SKT.PutC >PULLB TmpByte - >PULLA - ldx #1 stx ZPDataInLen stz ZPDataInLen+1 @@ -475,8 +473,7 @@ SKT.PutC >PULLB TmpByte ldx L.TmpByte+1 stx ZPDataInPtr+1 - - jmp SKT.Write.I + bra SKT.PutS.1 */-------------------------------------- * #SKT.PutS (STREAM) * Write Line in pBuf @@ -492,10 +489,21 @@ SKT.PutS >PULLW ZPDataOutPtr stz ZPDataInLen+1 inc ZPDataInPtr - bne .1 + bne SKT.PutS.1 inc ZPDataInPtr+1 -.1 jmp SKT.Write.I +SKT.PutS.1 >PULLA + jsr SKT.GetA.I + bcs .9 + + cmp #S.SOCKET.SOCK.STREAM + bne .9 + + jmp SKT.Write.TCP + +.9 lda #ERR.SKT.BAD + sec + rts */-------------------------------------- * #SKT.GetCA (STREAM) * Read a Char From Stream in A @@ -1013,44 +1021,6 @@ SKT.GetDataFromSktOut .8 clc rts - -* SKT.AckDataToSktOut should update these values - -.5 lda SKT.TCBCache+S.TCB.SEQNUM+3 - clc - adc ZPDataOutLen - sta SKT.TCBCache+S.TCB.NEXTSEQNUM+3 - - lda SKT.TCBCache+S.TCB.SEQNUM+2 - adc ZPDataOutLen+1 - sta SKT.TCBCache+S.TCB.NEXTSEQNUM+2 - - lda SKT.TCBCache+S.TCB.SEQNUM+1 - adc #0 - sta SKT.TCBCache+S.TCB.NEXTSEQNUM+1 - - lda SKT.TCBCache+S.TCB.SEQNUM - adc #0 - sta SKT.TCBCache+S.TCB.NEXTSEQNUM - - lda SKT.TCBCache+S.TCB.OUTFREE - clc - adc ZPDataOutLen - sta SKT.TCBCache+S.TCB.OUTFREE - - lda SKT.TCBCache+S.TCB.OUTFREE+1 - adc ZPDataOutLen+1 - sta SKT.TCBCache+S.TCB.OUTFREE+1 - - lda SKT.TCBCache+S.TCB.OUTUSED - sec - sbc ZPDataOutLen - sta SKT.TCBCache+S.TCB.OUTUSED - - lda SKT.TCBCache+S.TCB.OUTUSED+1 - sbc ZPDataOutLen+1 - sta SKT.TCBCache+S.TCB.OUTUSED+1 - *-------------------------------------- * From TCP.IN * Src : A,X diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index 64cc607b..25ce6db1 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -132,7 +132,8 @@ TCP.IN.JMP.LISTEN jsr ARP.AddFromFrameInPtr - jsr TCP.OUT.SYNACK + lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK + jsr TCP.OUT.A bcs .9 ldy #S.SOCKET.TCP.STATUS @@ -319,120 +320,72 @@ TCP.IN.SetDataInPtrAndLen stx ZPDataInPtr+1 rts *-------------------------------------- -TCP.OUT.SYN >LDYAI 0 - jsr TCP.NewFrame - bcs .9 - - ldx #3 - ldy #S.TCP.SEQ.NUMBER+3 - -.1 lda SKT.TCBCache+S.TCB.SEQNUM,x - sta (ZPFrameOutPtr),y - dey - dex - bpl .1 - - ldy #S.TCP.OPTIONS - lda #S.TCP.OPTIONS.SYN - sta (ZPFrameOutPtr),y - - iny S.TCP.WINDOW - lda /K.TCP.WSIZE - sta (ZPFrameOutPtr),y - iny - lda #K.TCP.WSIZE - sta (ZPFrameOutPtr),y - - jsr FRM.SendIP - bcs .9 - - ldy #S.SOCKET.TCP.OPTIONS - lda #0 - sta (ZPPtrSKT),y - - clc -.9 rts -*-------------------------------------- -TCP.OUT.SYNACK >LDYAI 0 - jsr TCP.NewFrame - bcs .9 - - ldx #7 - ldy #S.TCP.SEQ.NUMBER+7 - -.1 lda SKT.TCBCache+S.TCB.SEQNUM,x - sta (ZPFrameOutPtr),y - dey - dex - bpl .1 - - ldy #S.TCP.OPTIONS - lda #S.TCP.OPTIONS.SYN+S.TCP.OPTIONS.ACK - sta (ZPFrameOutPtr),y - - iny S.TCP.WINDOW - lda /K.TCP.WSIZE - sta (ZPFrameOutPtr),y - iny - lda #K.TCP.WSIZE - sta (ZPFrameOutPtr),y - - jsr FRM.SendIP - bcs .9 - - ldy #S.SOCKET.TCP.OPTIONS - lda #0 - sta (ZPPtrSKT),y - - clc -.9 rts -*-------------------------------------- TCP.OUT jsr SKT.GetTCB -TCP.OUT.I ldy SKT.TCBCache+S.TCB.OUTUSED - lda SKT.TCBCache+S.TCB.OUTUSED+1 +TCP.OUT.I lda SKT.TCBCache+S.TCB.OUTUSED+1 + ldy SKT.TCBCache+S.TCB.OUTUSED bne .1 tax - bne .1 Y,A=0 : nothing to send + bne .1 Y,A=0 : no data 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 - + bne TCP.OUT.A a least an option... + clc No, data, no flag....exit + rts + .1 cpy #K.TCP.MSS pha sbc /K.TCP.MSS OUTDATA > MSS ? pla - bcs .2 no....get data len + bcs .2 no....keep data len >LDYAI K.TCP.MSS yes get only MSS .2 jsr TCP.NewFrame - bcs .9 + bcs TCP.OUT.9 jsr SKT.GetDataFromSktOut ldy #S.SOCKET.TCP.OPTIONS lda (ZPPtrSKT),y ldy #S.TCP.OPTIONS - sta (ZPFrameOutPtr),y + sta (ZPFrameOutPtr),y - ldx #7 +.7 jsr TCP.OUT.SEND + bcs TCP.OUT.9 + jmp SKT.StoreTCB +TCP.OUT.9 rts +*-------------------------------------- +TCP.OUT.A sta .1+1 + >LDYAI 0 + jsr TCP.NewFrame + bcs TCP.OUT.9 + + ldy #S.TCP.OPTIONS + +.1 lda #$ff + sta (ZPFrameOutPtr),y + +TCP.OUT.SEND ldx #7 ldy #S.TCP.SEQ.NUMBER+7 -.3 lda SKT.TCBCache+S.TCB.SEQNUM,x +.2 lda SKT.TCBCache+S.TCB.SEQNUM,x sta (ZPFrameOutPtr),y dey dex - bpl .3 + bpl .2 -.7 jsr FRM.SendIP + ldy #S.TCP.WINDOW + lda SKT.TCBCache+S.TCB.INFREE+1 + sta (ZPFrameOutPtr),y + iny + lda SKT.TCBCache+S.TCB.INFREE + sta (ZPFrameOutPtr),y + + jsr FRM.SendIP bcs .9 ldy #S.SOCKET.TCP.OPTIONS @@ -447,9 +400,8 @@ TCP.OUT.I ldy SKT.TCBCache+S.TCB.OUTUSED .8 ldy #S.SOCKET.TCP.OPTIONS lda #0 sta (ZPPtrSKT),y - - jmp SKT.StoreTCB -.88 clc + + clc .9 rts *-------------------------------------- TCP.NewFrame ldx #S.IP.PROTOCOL.TCP @@ -540,10 +492,23 @@ TCP.ComputeChecksum ldy #S.IP -.1 jsr DecDataInLen + lda ZPDataInLen + eor #$ff + tax + lda ZPDataInLen+1 + eor #$ff + + pha + +.1 inx + bne .11 + pla + inc beq .8 - lda (ZPTmpPtr1),y + pha + +.11 lda (ZPTmpPtr1),y adc IP.CHECKSUM sta IP.CHECKSUM @@ -551,14 +516,17 @@ TCP.ComputeChecksum bne .20 inc ZPTmpPtr1+1 -.20 jsr DecDataInLen +.20 inx bne .2 - lda #0 - bra .21 + pla + inc + beq .7 + + pha .2 lda (ZPTmpPtr1),y -.21 adc IP.CHECKSUM+1 + adc IP.CHECKSUM+1 sta IP.CHECKSUM+1 iny @@ -566,6 +534,9 @@ TCP.ComputeChecksum inc ZPTmpPtr1+1 bra .1 +.7 adc IP.CHECKSUM+1 A=0 from beq .7 + sta IP.CHECKSUM+1 + .8 ldy #S.TCP.CHECKSUM lda IP.CHECKSUM adc #0 Don't forget to add last carry!!! diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 45717282..e818a4e0 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -108,8 +108,6 @@ L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED .DA TCP.IN.JMP.FINWT2 .DA TCP.IN.JMP.CLOSING .DA TCP.IN.JMP.TIMEWT -L.DUMP.LEN .DA DUMP.LEN -L.DUMP.DATA .DA DUMP.DATA .DA 0 *-------------------------------------- LIB.LOAD lda bFirstLoad @@ -168,8 +166,6 @@ POLL ldx #DEVMGR.READBLOCK cpx /S.ETH.ETHERTYPE.IP bne .9 -* jsr DumpFrame - jmp IP.IN .9 lda hFrameIn @@ -216,24 +212,6 @@ DecDataInLen lda ZPDataInLen .9 rts *-------------------------------------- NetDevJmp jmp * -*-------------------------------------- -DumpFrame ldy #3 - lda (ZPFrameInPtr),y - cmp #$ff - beq .9 - - >PUSHW ZPFrameInLen - >LDYA L.DUMP.LEN - >SYSCALL CPrintFYA - - ldy #63 -.1 >PUSHB (ZPFrameInPtr),y - dey - cpy #1 - bne .1 - >LDYA L.DUMP.DATA - >SYSCALL CPrintFYA -.9 rts *-------------------------------------- .INB LIB/LIBTCPIP.S.ARP .INB LIB/LIBTCPIP.S.CFG @@ -248,9 +226,6 @@ DumpFrame ldy #3 *-------------------------------------- CS.END *-------------------------------------- -DUMP.LEN >CSTR "Len :%D\r\n" -DUMP.DATA >CSTR "Data:%h%h%h%h%h%h%h%h%h%h%h%h%h%h %h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h\r\n %h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h %h%h%h%h%h%h%h%h%h%h%h%h%h%h%h%h\r\n" -*-------------------------------------- ARP.REQ .DA S.ARP-2 Frame size ARP.REQ.DSTMAC .HS FFFFFFFFFFFF ARP.REQ.SRCMAC .BS 6