From 97da1b9d5e881eb0f269ac33c61401c0545088ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 17 Mar 2017 08:22:37 +0100 Subject: [PATCH] Kernel version 0.9 : TCP, still investigating missing ACK problem --- A2OSX.BOOT.po | Bin 143360 -> 143360 bytes A2OSX.SRC.po | Bin 819200 -> 819200 bytes A2osX.STARTUP.txt | 4 +- DRV/UTHERNET.DRV.S.txt | 242 ++++++++++++++++++++++++----------------- 4 files changed, 145 insertions(+), 101 deletions(-) diff --git a/A2OSX.BOOT.po b/A2OSX.BOOT.po index 8e0daa02bbcbde5f2f0faf37da8e8f8a1abc53de..e7d135648d08bf15ac8e5491114dd657dee16c8b 100644 GIT binary patch delta 796 zcmZ8eOK1~87~WYLNYxFIrp-otWU_;_D0cHGEyY8nt@Le)TMr@_&_jCg=AnYnEp(yO zY_TsBg}@q2=*X^3TCAc?SbHd~2VFdRkm4btXf3@M!8XpOT5bPi$=EIk6FsHbS!nvT(8@$l$ZfR@oZSLw3nEx=LwX3I9XemK+*R3(9 z7u*9W5Tw1Z2i}GcAw|j4FfuiH;ukyUQYcKt@944ksGgPe#fYxkjIz~h8?HA=INI>p z{@8e@Rk~G&J8|AkWpQ;wXsp1Eb`YDvAMY1(3cW91K8zxEq)kJ03QFE#evUUzVoG)( zY?CVyZj`H#ww~+$nvgAyfsZFXJVTlEN>zK+DoXufNaP*VAewWqZz}3(?pLN>jsTQdDfF1(icUY+>*a7 zE9#Pu?WbqL{nRp=Kr!=LMwpsFiMvF|^s=eVnC6MhdgP2J>6_r&i&8)VN&h(C9x6(8 zD}*#3Fv{|E8^=ktael?1^WHzmA;MxJAM#$~eWIuoak1KLbVqQ>w^J*_OMddJGuvM! zYm&&ChxMfYkuUn`41k>srW%c{5#tNakU114VaYnsI6v~*{=-b6|I%mpxTx=;C&&;% zO7w)-y%g=M1zeyKsbpy~p^50qdu;G%D9f%gC#qSnZg h?R_^>JP1Ft#lR+*w9~fK18|fM3JVKh8>F6tf#3G}Rh9q% delta 827 zcmZ8eUr19?7{BN0be0<h=%pUgb?%HAewX{5dw=IU-|u&RpSojL zckHQA8!9Z`v*ia+%VO}_9mlz$z{SD9z~Ge*v9r5lprfxp;5dW=U48vsfli0J1TEaQ z$4+_BBlHs8FMt*<^MZQ&H_748bFU=EsQ6<6Y_#=Hc^g9 zK%K-5w2c7h`KW{IAOR$-iMfU5gmmn@h zYWG6XC%woud|XlkWO zR*(>m?6$TaY_=!&D78I)!9IbVjl{Dp3TI~g%s$@yZj2mmJ!7{0Y?u=@X z3J^y4`QQk*0bz()X#*%1hU7!$U~1iRWoAJNElFfq(kmb=_Y{c@5=gIvS-B@zBvr7< znDaI;ZTTuFh^*_SDN-I2}jbFk(i39x2|8-<@qw9n3m(JaYO{e#u-); zAt>TjwAX{&*WIA8c@ahxG7`gO`}9W8pp4%*#G65DD&r^0cw(CgKIl@KM0DMQymK-N hIt7KZVu!u1t9O@U=qH+chR&?;%V;01?5`kx^e-PHU047B diff --git a/A2OSX.SRC.po b/A2OSX.SRC.po index e47a925aecd3c243416c28d1e915ea924309c5f1..e8f7a920b5e4e505203b931b68fc2788ae1c689c 100644 GIT binary patch delta 3870 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 I#ERzs132$*%K!iX diff --git a/A2osX.STARTUP.txt b/A2osX.STARTUP.txt index 274c8afc..ee3fda07 100644 --- a/A2osX.STARTUP.txt +++ b/A2osX.STARTUP.txt @@ -21,8 +21,8 @@ INSDRV UTHERNET.DRV 000E3A123456 #INSDRV UTHER2.AI.DRV 0008DC123456 #INSDRV LANCEGS.DRV STARTPROC TCPIP -STARTPROC DHCPCLNT -STARTPROC TELNETD +#STARTPROC DHCPCLNT +#STARTPROC TELNETD #STARTPROC HTTPD #NFSMOUNT 192.168.1.5:/A2OSX /MNT/A2OSX #CIFSMOUNT 192.168.1.5:/MSSHARE /MNT/MSSHARE diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index 692a6819..016939d2 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -10,10 +10,13 @@ AUTO 6 *-------------------------------------- .INB /A2OSX.DEV/INC/MACROS.I .INB /A2OSX.DEV/INC/A2OSX.I + .INB /A2OSX.DEV/INC/MLI.ERR.I .INB /A2OSX.DEV/INC/NET.8900A.I .INB /A2OSX.DEV/INC/LIBTCPIP.I *-------------------------------------- ZPTmpPTR .EQ ZPDRV +Size .EQ ZPDRV+2 +Counter .EQ ZPDRV+4 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -52,9 +55,9 @@ Dev.Detect >STYA ARGS bne .2 lda /PP.ID - sta PacketPagePTR,x - lda #PP.ID sta PacketPagePTR+1,x + lda #PP.ID + sta PacketPagePTR,x lda PacketPageDATA,x cmp /DEVID @@ -74,7 +77,7 @@ Dev.Detect >STYA ARGS >LDYA L.MSG.DETECT.KO >SYSCALL CPrintFYA - lda #$28 MLI.ERR.NODEV + lda #MLI.ERR.NODEV sec rts @@ -88,15 +91,15 @@ Dev.Detect >STYA ARGS lda #A2osX.SLOTS.NET sta A2osX.SLOTS,y - lda #PP.ID+2 Get Revision# of ths chip... - sta PacketPagePTR,x - lda /PP.ID+2 + lda /PP.ID+2 Get Revision# of ths chip... sta PacketPagePTR+1,x + lda #PP.ID+2 + sta PacketPagePTR,x lda PacketPageDATA,x - sta DEVSTAT+S.DEVSTAT.VERSION set Hardware version + sta DEVSTAT+S.DEVSTAT.VERSION lda PacketPageDATA+1,x - sta DEVSTAT+S.DEVSTAT.VERSION+1 + sta DEVSTAT+S.DEVSTAT.VERSION+1 set Hardware version >LDYA ARGS >STYA ZPTmpPTR @@ -161,7 +164,7 @@ DRV.CS.START .DA STATUS L.DEVSTAT .DA DEVSTAT .DA 0 end or relocation *-------------------------------------- -BADCALL lda #1 MLI.ERR.BADCALL +BADCALL lda #MLI.ERR.BADCALL sec rts *-------------------------------------- @@ -169,21 +172,29 @@ STATUS lda #S.DEVSTAT.NET.STATUS.10 sta LINK.STATUS ldx DEVSLOTx0 - >LDYAI PP.LineST - >STYA PacketPagePTR,x - >LDYA PacketPageDATA,x - tya + + lda /PP.LineST + sta PacketPagePTR+1,x + lda #PP.LineST + sta PacketPagePTR,x + + lda PacketPageDATA,x and #PP.LineST.LinkOK - bne .1 + beq .1 + lda LINK.STATUS ora #S.DEVSTAT.NET.STATUS.OK sta LINK.STATUS -.1 >LDYAI PP.TestCTL - >STYA PacketPagePTR,x - >LDYA PacketPageDATA,x +.1 lda /PP.TestCTL + sta PacketPagePTR+1,x + lda #PP.TestCTL + sta PacketPagePTR,x + + lda PacketPageDATA+1,x and /PP.TestCTL.FDX - bne .2 + beq .2 + lda LINK.STATUS ora #S.DEVSTAT.NET.STATUS.FD sta LINK.STATUS @@ -192,39 +203,41 @@ STATUS lda #S.DEVSTAT.NET.STATUS.10 clc rts *-------------------------------------- -READBLOCK ldx DEVSLOTx0 - >LDYAI PP.RxEvent - >STYA PacketPagePTR,x - >LDYA PacketPageDATA,x +READBLOCK php + sei + + ldx DEVSLOTx0 + + lda /PP.RxEvent + sta PacketPagePTR+1,x + lda #PP.RxEvent + sta PacketPagePTR,x + + lda PacketPageDATA+1,x + ldy PacketPageDATA,x and /PP.RxEvent.RxOK+PP.RxEvent.Brdcast+PP.RxEvent.IA - bne READBLOCK.RxOK - lda #ERR.DEV.NOFRAME -READBLOCK.Err sec - rts + beq .9 -READBLOCK.RxOK and /PP.RxEvent.Brdcast - beq .10 - lda #$80 + lda RTDATA+1,x discard RxStatus + lda RTDATA,x -.10 sta .8+3 + ldy RTDATA+1,x get RxLength + sty Size+1 - >LDYA RTDATA,x discard RxStatus - - lda RTDATA+1,x get RxLength - sta Size+1 - pha lda RTDATA,x sta Size clc adc #2 - tay - pla - adc #0 + bcc .1 + iny - >PUSHYA Size+2 +.1 >PUSHA Size+2 + tya + >PUSHA >PUSHBI 0 >SYSCALL GetMem - bcs READBLOCK.Err + bcs .99 + >STYA ZPTmpPTR stx .8+1 sty .8+3 @@ -244,37 +257,56 @@ READBLOCK.RxOK and /PP.RxEvent.Brdcast ldx DEVSLOTx0 -.1 inc Counter - bne .12 +.2 inc Counter + bne .3 inc Counter+1 beq .8 -.12 lda RTDATA,x +.3 lda RTDATA,x + sta (ZPTmpPTR),y + iny + bne .4 + inc ZPTmpPTR+1 + +.4 inc Counter + bne .5 + inc Counter+1 + beq .8 + +.5 lda RTDATA+1,x sta (ZPTmpPTR),y iny bne .2 inc ZPTmpPTR+1 - -.2 inc Counter - bne .21 - inc Counter+1 - beq .8 - -.21 lda RTDATA+1,x - sta (ZPTmpPTR),y - iny - bne .1 - inc ZPTmpPTR+1 - bne .1 + bne .2 .8 ldx #$ff hMem ldy #$ff PtrLO lda #$ff PtrHI + + plp clc rts -*-------------------------------------- -WRITEBLOCK >STYA ZPTmpPTR +.9 lda #ERR.DEV.NOFRAME + +.99 plp + sec + rts +*-------------------------------------- +WRITEBLOCK php + sei + >STYA ZPTmpPTR + + ldx #5 + ldy #S.ETH.SRCMAC+5 + +.10 lda MAC,x + sta (ZPTmpPTR),y + dey + dex + bpl .10 + lda (ZPTmpPTR) sta Size eor #$ff @@ -286,67 +318,67 @@ WRITEBLOCK >STYA ZPTmpPTR sta Counter+1 ldx DEVSLOTx0 - >LDYAI PP.TxCMD.LID+PP.TxCMD.TxStartFULL - >STYA TxCMD,x - >LDYA Size - >STYA TxLength,x - >LDYAI PP.BusST - >STYA PacketPagePTR,x + lda /PP.TxCMD.LID+PP.TxCMD.TxStartFULL + sta TxCMD+1,x + lda #PP.TxCMD.LID+PP.TxCMD.TxStartFULL + sta TxCMD,x + + lda Size+1 + sta TxLength+1,x + lda Size + sta TxLength,x + + lda /PP.BusST + sta PacketPagePTR+1,x + lda #PP.BusST + sta PacketPagePTR,x + ldy #16 + .1 lda PacketPageDATA,x and #PP.BusST.TxBidErr bne .9 + lda PacketPageDATA+1,x and /PP.BusST.Rdy4TxNOW bne WRITEBLOCK.1 - lda #0 - -.2 dec - bne .2 dey bne .1 .9 lda #ERR.DEV.NOBUFFER + plp sec rts -WRITEBLOCK.1 ldy #S.ETH.SRCMAC+5 - ldx #5 -.10 lda MAC,x - sta (ZPTmpPTR),y - dey - dex - bpl .10 - - ldx DEVSLOTx0 - ldy #2 +WRITEBLOCK.1 ldy #2 .1 inc Counter - bne .11 + bne .2 inc Counter+1 beq .8 -.11 lda (ZPTmpPTR),y +.2 lda (ZPTmpPTR),y sta RTDATA,x iny - bne .2 + bne .3 inc ZPTmpPTR+1 -.2 inc Counter - bne .21 +.3 inc Counter + bne .4 inc Counter+1 beq .8 -.21 lda (ZPTmpPTR),y +.4 lda (ZPTmpPTR),y sta RTDATA+1,x iny bne .1 inc ZPTmpPTR+1 bne .1 -.8 clc +.8 plp + clc rts *-------------------------------------- OPEN jsr CLOSE @@ -376,29 +408,41 @@ OPEN jsr CLOSE rts *-------------------------------------- CLOSE ldx DEVSLOTx0 - >LDYAI PP.SelfCTL - >STYA PacketPagePTR,x - >LDYAI PP.SelfCTL.LID+PP.SelfCTL.RESET - >STYA PacketPageDATA,x - lda #0 -.1 dec + lda /PP.SelfCTL + sta PacketPagePTR+1,x + lda #PP.SelfCTL + sta PacketPagePTR,x + + lda /PP.SelfCTL.LID+PP.SelfCTL.RESET + sta PacketPageDATA+1,x + + lda #PP.SelfCTL.LID+PP.SelfCTL.RESET + sta PacketPageDATA,x + + ldy #0 + +.1 lda /PP.SelfST + sta PacketPagePTR+1,x + lda #PP.SelfST + sta PacketPagePTR,x + + lda PacketPageDATA+1,x + lda PacketPageDATA,x + and #PP.SelfST.InitDone + + bne .8 + + iny bne .1 - >LDYAI PP.SelfCTL - >STYA PacketPagePTR,x - >LDYAI PP.SelfCTL.LID - >STYA PacketPageDATA,x - - clc +.8 clc rts *-------------------------------------- DRV.CS.END DEVSLOTx0 .BS 1 -Size .BS 2 -Counter .BS 2 *-------------------------------------- -DEVSTAT .DA #S.DEV.S.BLOCK+S.DEV.S.WRITE+S.DEV.S.READ +DEVSTAT .DA #0 .BS 3 size >PSTR "Uthernet/CS8900A" .DA #S.DEVSTAT.TYPE.NET