diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index af46bf92..1966fb9f 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index fea9e862..4d9f46a0 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -364,26 +364,20 @@ READ php ldx DEVSLOTx0 - lda /PP.RxEvent + lda /PP.RxStatus+$8000 sta PacketPagePTR+1,x - lda #PP.RxEvent + lda #PP.RxStatus sta PacketPagePTR,x lda PacketPageDATA+1,x ldy PacketPageDATA,x and /PP.RxEvent.RxOK+PP.RxEvent.IA+PP.RxEvent.Brdcast+PP.RxEvent.Runt - bne .1 + beq READWRITE.9 - lda #E.NODATA - -.9 plp - sec - rts + lda PacketPageDATA+1,x discard RxStatus + lda PacketPageDATA,x -.1 lda RTDATA+1,x discard RxStatus - lda RTDATA,x - - lda RTDATA+1,x get RxLength + lda PacketPageDATA+1,x get RxLength ldy #S.IOCTL.BYTECNT+1 sta (ZPIOCTL),y @@ -391,7 +385,7 @@ READ php lsr pha - lda RTDATA,x + lda PacketPageDATA,x dey sta (ZPIOCTL),y tay @@ -430,11 +424,11 @@ READ php inc Counter+1 beq .8 -.3 lda RTDATA,x +.3 lda PacketPageDATA,x sta (ZPBufPtr),y iny - lda RTDATA+1,x + lda PacketPageDATA+1,x sta (ZPBufPtr),y iny bne .2 @@ -445,7 +439,13 @@ READ php plp clc - rts +.9 rts + +READWRITE.9 lda #E.NODATA + + plp + sec + rts *-------------------------------------- WRITE php sei @@ -497,7 +497,7 @@ WRITE php lda PacketPageDATA+1,x ldy PacketPageDATA,x and /PP.BusST.Rdy4TxNOW - beq WRITE.9 + beq READWRITE.9 ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y @@ -540,12 +540,6 @@ WRITE php .8 plp clc rts - -WRITE.9 lda #E.NODATA - - plp - sec - rts *-------------------------------------- DRV.CS.END DEVSLOTx0 .BS 1 diff --git a/LIB/LIBTCPIP.S.ARP.txt b/LIB/LIBTCPIP.S.ARP.txt index f4896b35..a8105b10 100644 --- a/LIB/LIBTCPIP.S.ARP.txt +++ b/LIB/LIBTCPIP.S.ARP.txt @@ -7,12 +7,27 @@ NEW * **In:** * ## RETURN VALUE *\-------------------------------------- -ARP.Clear ldx #K.ARPCACHE.SIZE*S.ARPCACHE -.1 stz ARP.CACHE-1,x - dex +ARP.Clear lda hARPCache bne .1 - clc + + >LDYAI K.ARPCACHE.SIZE*S.ARPCACHE + >SYSCALL2 GetMem0 + bcs .9 + stx hARPCache rts + +.1 jsr ARP.GetCache + + lda #0 + tay + +.2 sta (ZPCachePtr),y + iny + cpy #K.ARPCACHE.SIZE*S.ARPCACHE + bne .1 + + clc +.9 rts */-------------------------------------- * # ARP.Query * Query ARP Cache and returns HW address @@ -92,9 +107,12 @@ ARP.ADD.I sta ARP.TmpCache * ## RETURN VALUE * Y,A = PTR to ARP.CACHE *\-------------------------------------- -ARP.GetCache >LDYA L.ARP.CACHE - clc - rts +ARP.GetCache lda hARPCache + >SYSCALL2 GetMemPtr + bcs .9 + >STYA ZPCachePtr + +.9 rts *-------------------------------------- * PRIVATE *-------------------------------------- @@ -248,8 +266,7 @@ ARP.QUERY.I jsr ARP.FIND.BY.IP sec .99 rts *-------------------------------------- -ARP.FIND.BY.IP >LDYA L.ARP.CACHE - >STYA ZPCachePtr +ARP.FIND.BY.IP jsr ARP.GetCache ldx #K.ARPCACHE.SIZE @@ -281,8 +298,7 @@ ARP.FIND.BY.IP >LDYA L.ARP.CACHE sec rts *-------------------------------------- -ARP.FIND.FREE >LDYA L.ARP.CACHE - >STYA ZPCachePtr +ARP.FIND.FREE jsr ARP.GetCache lda #$ff sta TmpDWord @@ -330,8 +346,7 @@ ARP.FIND.FREE >LDYA L.ARP.CACHE .8 clc rts *-------------------------------------- -ARP.EXPIRE >LDYA L.ARP.CACHE - >STYA ZPCachePtr +ARP.EXPIRE jsr ARP.GetCache ldx #K.ARPCACHE.SIZE diff --git a/LIB/LIBTCPIP.S.SKT.txt b/LIB/LIBTCPIP.S.SKT.txt index a33dba4f..65d044bf 100644 --- a/LIB/LIBTCPIP.S.SKT.txt +++ b/LIB/LIBTCPIP.S.SKT.txt @@ -1230,6 +1230,7 @@ SKT.NewTCB ldx #S.SOCKET.TCP.INTAIL >LDYAI K.TCP.WSIZE >STYA SKT.Cache+S.SOCKET.TCP.INFREE + .DO AUXPIPE=1 >SYSCALL2 NewStkObj .ELSE diff --git a/LIB/LIBTCPIP.S.txt b/LIB/LIBTCPIP.S.txt index 23818513..3998e3cb 100644 --- a/LIB/LIBTCPIP.S.txt +++ b/LIB/LIBTCPIP.S.txt @@ -1,11 +1,11 @@ NEW AUTO 3,1 - .LIST OFF + .LIST OFF .OP 65C02 .OR $2000 .TF LIB/LIBTCPIP *-------------------------------------- -AUXPIPE .EQ 0 +AUXPIPE .EQ 1 IPDEBUG .EQ 0 *-------------------------------------- .MA ADC16 @@ -33,7 +33,6 @@ IPDEBUG .EQ 0 .INB INC/IO.I .FIN .INB INC/A2OSX.I -* .INB INC/MLI.I .INB INC/MLI.E.I .INB INC/NIC.I .INB INC/ETH.I @@ -131,7 +130,6 @@ L.ARP.REP .DA ARP.REP L.SA.LOCAL .DA SA.LOCAL L.SA.REMOTE .DA SA.REMOTE L.DNS.MSG .DA DNS.MSG -L.ARP.CACHE .DA ARP.CACHE L.DNS.CACHE .DA DNS.CACHE L.SKT.Table .DA SKT.Table L.HST.SScanF .DA HST.SScanF @@ -412,7 +410,6 @@ FD.SSOCK.SIZE .EQ *-FD.SSOCK IOCTL .BS S.IOCTL DCB.NIC .BS S.DCB.NIC IPCFG .BS S.IPCFG -ARP.CACHE .BS K.ARPCACHE.SIZE*S.ARPCACHE DNS.CACHE .BS K.DNSCACHE.SIZE*S.DNSCACHE *-------------------------------------- ARP.REQ .HS FFFFFFFFFFFF S.ETH.DSTMAC @@ -459,6 +456,7 @@ FRM.QUEUE.LenL .BS K.FRMQUEUE.SIZE FRM.QUEUE.LenH .BS K.FRMQUEUE.SIZE *-------------------------------------- RefCount .DA #0 +hARPCache .DA #0 DYNPORT.LAST .DA K.DYNPORT.START hDNSSocket .BS 1 DNS.TmpCache .BS S.DNSCACHE diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index a060a48e..de75c334 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -406,13 +406,13 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #$80 .DA #0 .DA #$80 - .DA #$40 NewStkObj + .DA #$C0 NewStkObj .DA #$80 .DA #0 .DA #$80 - .DA #$40 GetStkObjPtr + .DA #$C0 GetStkObjPtr .DA #$80 - .DA #$40 FreeStkObj + .DA #$C0 FreeStkObj .DA #$80 *-------------------------------------- .DA #0 $F0 : SLIST