From 6775ed4e5697a0369319bbcabc40d4869a4c7f74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 17 Feb 2017 17:39:38 +0100 Subject: [PATCH] Kernel version 0.9 : TCP & Sockets, bugfix session #4 --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes LIB/LIBTCPIP.S.SKT.txt | 186 +++++++++++++++++++++++++---------------- LIB/LIBTCPIP.S.TCP.txt | 59 ++++++++++++- LIB/LIBTCPIP.S.txt | 4 +- 5 files changed, 172 insertions(+), 77 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 1f4f96a577a14400f31d0a52df38492ea84ecd0f..a8a5fb2278f941956c03d3c7a6685b0b5b7af392 100644 GIT binary patch delta 3803 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 delta 3731 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 G;C}$&zd+#t diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index 67e8a36a8425a584fd936171bb872229719eb3da..2218645d34b2b3259080afa66e16f67027d1f1c9 100644 GIT binary patch delta 11319 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 Ll-qrl<*fe$y&uEO delta 11154 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 diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index 26f10126..0adcf228 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -576,29 +576,73 @@ SKT.AddToQueueA sta .2+1 rts *-------------------------------------- * From TCP.IN +* Src : A,X +* Dst : hOutMem/OUTTAIL +*-------------------------------------- +SKT.FreeDataFromSktOutAX + pha + ldy #S.SOCKET.SQ.OUTTAIL + clc + adc (ZPPtrSKT),y + sta (ZPPtrSKT),y + + iny + txa + adc (ZPPtrSKT),y + and /K.TCP.WSIZE-1 + sta (ZPPtrSKT),y + + pla + sta .1+1 + stx .2+1 + + ldy #S.SOCKET.SQ.OUTFREE + clc + adc (ZPPtrSKT),y + sta (ZPPtrSKT),y + + iny + txa + adc (ZPPtrSKT),y + sta (ZPPtrSKT),y + + ldy #S.SOCKET.SQ.OUTUSED + sec + lda (ZPPtrSKT),y +.1 sbc #$ff + sta (ZPPtrSKT),y + + iny + adc (ZPPtrSKT),y +.2 sbc #$ff + sta (ZPPtrSKT),y + + rts +*-------------------------------------- +* From TCP.IN * Src : ZPDataInPtr/ZPDataInLen * Dst : hInMem/INHEAD *-------------------------------------- SKT.AddDataToSktIn - jsr SKT.GetCopy + jsr SKT.GetTCB ldx ZPDataInLen - cpx SKT.TmpCache+S.SOCKET.SQ.INFREE + cpx SKT.TCBCache+S.SOCKET.SQ.INFREE lda ZPDataInLen+1 - sbc SKT.TmpCache+S.SOCKET.SQ.INFREE+1 + sbc SKT.TCBCache+S.SOCKET.SQ.INFREE+1 bcc .9 Not enough room in Q - lda SKT.TmpCache+S.SOCKET.STREAM.hInMem + lda SKT.TCBCache+S.SOCKET.STREAM.hInMem >SYSCALL GetMemPtrA >STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base lda ZPTmpPtr1 clc - adc SKT.TmpCache+S.SOCKET.SQ.INHEAD + adc SKT.TCBCache+S.SOCKET.SQ.INHEAD sta ZPTmpPtr2 lda ZPTmpPtr1+1 - adc SKT.TmpCache+S.SOCKET.SQ.INHEAD+1 + adc SKT.TCBCache+S.SOCKET.SQ.INHEAD+1 sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail lda ZPDataInLen @@ -627,13 +671,13 @@ SKT.AddDataToSktIn bne .4 inc ZPTmpPtr2+1 -.4 inc SKT.TmpCache+S.SOCKET.SQ.INHEAD +.4 inc SKT.TCBCache+S.SOCKET.SQ.INHEAD bne .1 - inc SKT.TmpCache+S.SOCKET.SQ.INHEAD+1 - lda SKT.TmpCache+S.SOCKET.SQ.INHEAD+1 + inc SKT.TCBCache+S.SOCKET.SQ.INHEAD+1 + lda SKT.TCBCache+S.SOCKET.SQ.INHEAD+1 cmp /K.TCP.WSIZE bne .1 - stz SKT.TmpCache+S.SOCKET.SQ.INHEAD+1 + stz SKT.TCBCache+S.SOCKET.SQ.INHEAD+1 lda ZPTmpPtr1 Dst Ptr=Buffer Base sta ZPTmpPtr2 @@ -644,23 +688,23 @@ SKT.AddDataToSktIn .9 sec rts -.8 lda SKT.TmpCache+S.SOCKET.SQ.INFREE +.8 lda SKT.TCBCache+S.SOCKET.SQ.INFREE sec sbc ZPDataInLen - sta SKT.TmpCache+S.SOCKET.SQ.INFREE - lda SKT.TmpCache+S.SOCKET.SQ.INFREE+1 + sta SKT.TCBCache+S.SOCKET.SQ.INFREE + lda SKT.TCBCache+S.SOCKET.SQ.INFREE+1 sbc ZPDataInLen+1 - sta SKT.TmpCache+S.SOCKET.SQ.INFREE+1 + sta SKT.TCBCache+S.SOCKET.SQ.INFREE+1 - lda SKT.TmpCache+S.SOCKET.SQ.INUSED + lda SKT.TCBCache+S.SOCKET.SQ.INUSED clc adc ZPDataInLen - sta SKT.TmpCache+S.SOCKET.SQ.INUSED - lda SKT.TmpCache+S.SOCKET.SQ.INUSED+1 + sta SKT.TCBCache+S.SOCKET.SQ.INUSED + lda SKT.TCBCache+S.SOCKET.SQ.INUSED+1 adc ZPDataInLen+1 - sta SKT.TmpCache+S.SOCKET.SQ.INUSED+1 + sta SKT.TCBCache+S.SOCKET.SQ.INUSED+1 - jsr SKT.PutCopy + jsr SKT.StoreTCB clc rts *-------------------------------------- @@ -669,25 +713,25 @@ SKT.AddDataToSktIn * Dst : hOutMem/OUTHEAD *-------------------------------------- SKT.AddDataToSktOut - jsr SKT.GetCopy + jsr SKT.GetTCB ldx ZPDataInLen - cpx SKT.TmpCache+S.SOCKET.SQ.OUTFREE + cpx SKT.TCBCache+S.SOCKET.SQ.OUTFREE lda ZPDataInLen+1 - sbc SKT.TmpCache+S.SOCKET.SQ.OUTFREE+1 + sbc SKT.TCBCache+S.SOCKET.SQ.OUTFREE+1 bcc .9 Not enough room in Q - lda SKT.TmpCache+S.SOCKET.STREAM.hOutMem + lda SKT.TCBCache+S.SOCKET.STREAM.hOutMem >SYSCALL GetMemPtrA >STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base lda ZPTmpPtr1 clc - adc SKT.TmpCache+S.SOCKET.SQ.OUTHEAD + adc SKT.TCBCache+S.SOCKET.SQ.OUTHEAD sta ZPTmpPtr2 lda ZPTmpPtr1+1 - adc SKT.TmpCache+S.SOCKET.SQ.OUTHEAD+1 + adc SKT.TCBCache+S.SOCKET.SQ.OUTHEAD+1 sta ZPTmpPtr2+1 Make ZPTmpPtr2=base+Tail lda ZPDataInLen @@ -716,13 +760,13 @@ SKT.AddDataToSktOut bne .4 inc ZPTmpPtr2+1 -.4 inc SKT.TmpCache+S.SOCKET.SQ.OUTHEAD +.4 inc SKT.TCBCache+S.SOCKET.SQ.OUTHEAD bne .1 - inc SKT.TmpCache+S.SOCKET.SQ.OUTHEAD+1 - lda SKT.TmpCache+S.SOCKET.SQ.OUTHEAD+1 + inc SKT.TCBCache+S.SOCKET.SQ.OUTHEAD+1 + lda SKT.TCBCache+S.SOCKET.SQ.OUTHEAD+1 cmp /K.TCP.WSIZE bne .1 - stz SKT.TmpCache+S.SOCKET.SQ.OUTHEAD+1 + stz SKT.TCBCache+S.SOCKET.SQ.OUTHEAD+1 lda ZPTmpPtr1 Dst Ptr=Buffer Base sta ZPTmpPtr2 @@ -733,23 +777,23 @@ SKT.AddDataToSktOut .9 sec rts -.8 lda SKT.TmpCache+S.SOCKET.SQ.OUTFREE +.8 lda SKT.TCBCache+S.SOCKET.SQ.OUTFREE sec sbc ZPDataInLen - sta SKT.TmpCache+S.SOCKET.SQ.OUTFREE - lda SKT.TmpCache+S.SOCKET.SQ.OUTFREE+1 + sta SKT.TCBCache+S.SOCKET.SQ.OUTFREE + lda SKT.TCBCache+S.SOCKET.SQ.OUTFREE+1 sbc ZPDataInLen+1 - sta SKT.TmpCache+S.SOCKET.SQ.OUTFREE+1 + sta SKT.TCBCache+S.SOCKET.SQ.OUTFREE+1 - lda SKT.TmpCache+S.SOCKET.SQ.OUTUSED + lda SKT.TCBCache+S.SOCKET.SQ.OUTUSED clc adc ZPDataInLen - sta SKT.TmpCache+S.SOCKET.SQ.OUTUSED - lda SKT.TmpCache+S.SOCKET.SQ.OUTUSED+1 + sta SKT.TCBCache+S.SOCKET.SQ.OUTUSED + lda SKT.TCBCache+S.SOCKET.SQ.OUTUSED+1 adc ZPDataInLen+1 - sta SKT.TmpCache+S.SOCKET.SQ.OUTUSED+1 + sta SKT.TCBCache+S.SOCKET.SQ.OUTUSED+1 - jsr SKT.PutCopy + jsr SKT.StoreTCB clc rts *-------------------------------------- @@ -758,19 +802,19 @@ SKT.AddDataToSktOut * Dst : ZPDataOutPtr/ZPDataOutLen *-------------------------------------- SKT.GetDataFromSktOut - jsr SKT.GetCopy + jsr SKT.GetTCB - lda SKT.TmpCache+S.SOCKET.STREAM.hOutMem + lda SKT.TCBCache+S.SOCKET.STREAM.hOutMem >SYSCALL GetMemPtrA >STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base lda ZPTmpPtr1 clc - adc SKT.TmpCache+S.SOCKET.SQ.OUTTAIL + adc SKT.TCBCache+S.SOCKET.SQ.OUTTAIL sta ZPTmpPtr2 lda ZPTmpPtr1+1 - adc SKT.TmpCache+S.SOCKET.SQ.OUTTAIL+1 + adc SKT.TCBCache+S.SOCKET.SQ.OUTTAIL+1 sta ZPTmpPtr2+1 lda ZPDataOutLen @@ -799,13 +843,13 @@ SKT.GetDataFromSktOut bne .4 inc ZPTmpPtr2+1 -.4 inc SKT.TmpCache+S.SOCKET.SQ.OUTTAIL +.4 inc SKT.TCBCache+S.SOCKET.SQ.OUTTAIL bne .1 - inc SKT.TmpCache+S.SOCKET.SQ.OUTTAIL+1 - lda SKT.TmpCache+S.SOCKET.SQ.OUTTAIL+1 + inc SKT.TCBCache+S.SOCKET.SQ.OUTTAIL+1 + lda SKT.TCBCache+S.SOCKET.SQ.OUTTAIL+1 cmp /K.TCP.WSIZE bne .1 - stz SKT.TmpCache+S.SOCKET.SQ.OUTTAIL+1 + stz SKT.TCBCache+S.SOCKET.SQ.OUTTAIL+1 lda ZPTmpPtr1 Dst Ptr=Buffer Base sta ZPTmpPtr2 @@ -816,7 +860,7 @@ SKT.GetDataFromSktOut .8 clc rts *-------------------------------------- -* From SKT.Write +* From SKT.Read * In: * Src : hInMem/INTAIL * Dst : ZPDataOutPtr/ZPDataOutLen @@ -831,15 +875,15 @@ SKT.GetDataFromSktIn >SYSCALL GetMemPtrA >STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base - jsr SKT.GetCopy + jsr SKT.GetTCB lda ZPTmpPtr1 clc - adc SKT.TmpCache+S.SOCKET.SQ.INTAIL + adc SKT.TCBCache+S.SOCKET.SQ.INTAIL sta ZPTmpPtr2 lda ZPTmpPtr1+1 - adc SKT.TmpCache+S.SOCKET.SQ.INTAIL+1 + adc SKT.TCBCache+S.SOCKET.SQ.INTAIL+1 sta ZPTmpPtr2+1 lda ZPDataOutLen @@ -862,25 +906,25 @@ SKT.GetDataFromSktIn beq .7 pha -.2 lda SKT.TmpCache+S.SOCKET.SQ.INTAIL - eor SKT.TmpCache+S.SOCKET.SQ.INHEAD +.2 lda SKT.TCBCache+S.SOCKET.SQ.INTAIL + eor SKT.TCBCache+S.SOCKET.SQ.INHEAD bne .3 - lda SKT.TmpCache+S.SOCKET.SQ.INTAIL+1 - eor SKT.TmpCache+S.SOCKET.SQ.INHEAD+1 + lda SKT.TCBCache+S.SOCKET.SQ.INTAIL+1 + eor SKT.TCBCache+S.SOCKET.SQ.INHEAD+1 beq .8 no more data.... .3 lda (ZPTmpPtr2) pha - inc SKT.TmpCache+S.SOCKET.SQ.INTAIL + inc SKT.TCBCache+S.SOCKET.SQ.INTAIL bne .5 - inc SKT.TmpCache+S.SOCKET.SQ.INTAIL+1 - lda SKT.TmpCache+S.SOCKET.SQ.INTAIL+1 + inc SKT.TCBCache+S.SOCKET.SQ.INTAIL+1 + lda SKT.TCBCache+S.SOCKET.SQ.INTAIL+1 cmp /K.TCP.WSIZE bne .4 - stz SKT.TmpCache+S.SOCKET.SQ.INTAIL+1 + stz SKT.TCBCache+S.SOCKET.SQ.INTAIL+1 lda ZPTmpPtr1 sta ZPTmpPtr2 lda ZPTmpPtr1+1 @@ -919,25 +963,25 @@ SKT.GetDataFromSktIn eor ZPTmpPtr3+1 beq .9 - lda SKT.TmpCache+S.SOCKET.SQ.INFREE + lda SKT.TCBCache+S.SOCKET.SQ.INFREE clc adc ZPTmpPtr3 - sta SKT.TmpCache+S.SOCKET.SQ.INFREE + sta SKT.TCBCache+S.SOCKET.SQ.INFREE - lda SKT.TmpCache+S.SOCKET.SQ.INFREE+1 + lda SKT.TCBCache+S.SOCKET.SQ.INFREE+1 adc ZPTmpPtr3+1 - sta SKT.TmpCache+S.SOCKET.SQ.INFREE+1 + sta SKT.TCBCache+S.SOCKET.SQ.INFREE+1 - lda SKT.TmpCache+S.SOCKET.SQ.INUSED + lda SKT.TCBCache+S.SOCKET.SQ.INUSED sec sbc ZPTmpPtr3 - sta SKT.TmpCache+S.SOCKET.SQ.INUSED + sta SKT.TCBCache+S.SOCKET.SQ.INUSED - lda SKT.TmpCache+S.SOCKET.SQ.INUSED+1 + lda SKT.TCBCache+S.SOCKET.SQ.INUSED+1 sbc ZPTmpPtr3+1 - sta SKT.TmpCache+S.SOCKET.SQ.INUSED+1 + sta SKT.TCBCache+S.SOCKET.SQ.INUSED+1 - jsr SKT.PutCopy + jsr SKT.StoreTCB >LDYA ZPTmpPtr3 clc rts @@ -946,15 +990,15 @@ SKT.GetDataFromSktIn sec rts *-------------------------------------- -SKT.GetCopy ldy #S.SOCKET-1 +SKT.GetTCB ldy #S.SOCKET-1 .1 lda (ZPPtrSKT),y - sta SKT.TmpCache + sta SKT.TCBCache,y dey bpl .1 rts *-------------------------------------- -SKT.PutCopy ldy #S.SOCKET-1 -.1 lda SKT.TmpCache +SKT.StoreTCB ldy #S.SOCKET-1 +.1 lda SKT.TCBCache,y sta (ZPPtrSKT),y dey bpl .1 diff --git a/LIB/LIBTCPIP.S.TCP.txt b/LIB/LIBTCPIP.S.TCP.txt index 676529bf..79f3f4e8 100644 --- a/LIB/LIBTCPIP.S.TCP.txt +++ b/LIB/LIBTCPIP.S.TCP.txt @@ -211,15 +211,66 @@ TCP.IN.JMP.ESTBLSH ldy #S.TCP.OPTIONS lda (ZPFrameInPtr),y bit #S.TCP.OPTIONS.ACK - beq .1 + beq .2 - jsr TCP.UpdateSktAckNum + ldy #S.TCP.ACK.NUMBER+3 Get new ACK number from FrameIn... + ldx #3 -.1 jsr TCP.SetDataInPtrAndLen +.1 lda (ZPFrameInPtr),y + sta TmpDWord,x + dey + dex + bpl .1 + + ldy #S.SOCKET.SQ.ACKNUM Substract old Ack from socket + sec + lda (ZPPtrSKT),y + sbc TmpDWord + pha save result LO for FreeData + + lda TmpDWord + sta (ZPPtrSKT),y and store new ACK in skt + + iny + lda (ZPPtrSKT),y + sbc TmpDWord+1 + + tax save result HI for FreeData + + lda TmpDWord+1 we stop here, will never be more than K.TCP.WSIZE + sta (ZPPtrSKT),y + + iny + lda TmpDWord+2 + sta (ZPPtrSKT),y + + iny + lda TmpDWord+3 + sta (ZPPtrSKT),y + + pla + jsr SKT.FreeDataFromSktOutAX +*---------- +.2 lda ZPDataInLen + ora ZPDataInLen+1 + beq .8 No data in this incoming frame... + + ldy #S.TCP.SEQ.NUMBER+3 + ldx #3 + +.3 lda (ZPFrameInPtr),y + sta TmpDWord,x + dey + dex + bpl .3 + + + + jsr TCP.SetDataInPtrAndLen jsr SKT.AddDataToSktIn - clc +.8 clc rts *-------------------------------------- TCP.IN.JMP.CLWAIT diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 419e20fa..36f130b8 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -293,13 +293,13 @@ DNS.HostName .BS K.DNS.MAXLEN+1 DNS.TmpCache .BS S.DNSCACHE ARP.TmpCache .BS S.ARP SKT.Template .BS S.SOCKET.TEMPLATE -SKT.TmpCache .BS S.SOCKET +SKT.TCBCache .BS S.SOCKET TmpDWord .BS 4 +TmpOffset .BS 2 hFrameIn .BS 1 hFrameOut .BS 1 hSocket .BS 1 bTextMode .BS 1 -TmpOffset .BS 2 HST.DecStr .BS 4 HST.IP .BS 5 IP.ID .BS 2