From 28036967067c233a721a7bc1e40d98d6c07d1fda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 26 Aug 2018 11:06:04 +0200 Subject: [PATCH] Kernel 0.9.2 --- DRV/UTHER2.AI.DRV.S.txt | 1 + DRV/X.NET.DRV.S.txt | 65 ------------------- DRV/X.U2.DRV.S.txt | 137 ++++++++++++++++++++++++++++++++++++++-- 3 files changed, 131 insertions(+), 72 deletions(-) delete mode 100644 DRV/X.NET.DRV.S.txt diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 8b1e2d16..0ca6ad2d 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -11,6 +11,7 @@ U2AI .EQ 1 .INB INC/NIC.I .INB INC/NIC.W5100.I .INB INC/ETH.I + .INB INC/LIBTCPIP.I .INB /A2OSX.SRC/DRV/X.U2.DRV.S *-------------------------------------- MAN diff --git a/DRV/X.NET.DRV.S.txt b/DRV/X.NET.DRV.S.txt deleted file mode 100644 index 7d0ee07b..00000000 --- a/DRV/X.NET.DRV.S.txt +++ /dev/null @@ -1,65 +0,0 @@ -NEW -PREFIX /A2OSX.BUILD -AUTO 4,1 - .LIST OFF -*-------------------------------------- -DecodeMac ldy #0 - ldx #0 - -.1 lda (ZPTmpPTR),y - beq .9 - iny - - jsr Asc2NibbleA - bcs .9 - - asl - asl - asl - asl - sta MAC,x - - lda (ZPTmpPTR),y - beq .9 - - iny - - jsr Asc2NibbleA - bcs .9 - - ora MAC,x - sta MAC,x - inx - cpx #6 - bne .1 - - clc - rts - -.9 sec - rts -*-------------------------------------- -Asc2NibbleA cmp #'0' - bcc .9 - cmp #'9'+1 - bcs .1 - and #$0F -* clc - rts - -.1 cmp #'A' - bcc .9 - cmp #'F'+1 - bcs .99 - - sbc #$36 - clc - rts - -.9 sec -.99 rts -*-------------------------------------- -MAN -SAVE /A2OSX.SRC/DRV/X.NET.DRV.S -LOAD /A2OSX.SRC/DRV/UTHERNET.DRV.S -ASM diff --git a/DRV/X.U2.DRV.S.txt b/DRV/X.U2.DRV.S.txt index 851d21e0..7dec2847 100644 --- a/DRV/X.U2.DRV.S.txt +++ b/DRV/X.U2.DRV.S.txt @@ -295,9 +295,51 @@ OPEN jsr CLOSE sta W5100.DR,x ...for Socket TX Buffers >AR.SELECT S0.MR + .DO U2AI=1 + lda #W5100.AR.S0.MR.IPRAW+W5100.AR.S0.MR.MF + .ELSE lda #W5100.AR.S0.MR.MACRAW+W5100.AR.S0.MR.MF + .FIN sta W5100.DR,x + .DO U2AI=1 + >AR.SELECT S0.TOS + stz W5100.DR,x + +* >AR.SELECT S0.TTL + lda #K.IP.TTL + sta W5100.DR,x + >AR.SELECT GAR + + ldy #0 + +.2 lda DCB+S.DCB.NIC.GW,y + sta W5100.DR,x + iny + cpy #4 + bne .2 + +* >AR.SELECT SUBR Implicit, next to GAR + + ldy #0 + +.3 lda DCB+S.DCB.NIC.MASK,y + sta W5100.DR,x + iny + cpy #4 + bne .3 + + >AR.SELECT SIPR + + ldy #0 + +.4 lda DCB+S.DCB.NIC.IP,y + sta W5100.DR,x + iny + cpy #4 + bne .4 + .FIN + >AR.SELECT S0.CR lda #W5100.AR.S0.CR.OPEN sta W5100.DR,x @@ -350,12 +392,33 @@ READ php sta W5100.AR,x tya sta W5100.AR+1,x + + .DO U2AI=1 + ldy #0 +.10 lda W5100.DR,x + sta RX.IP,y + iny + cpy #4 + bne .10 + + ldy W5100.DR,x get RX.Size HI + sty RXTX.Size+1 + lda W5100.DR,x get RX.Size LO + sta RXTX.Size + + clc + adc #S.IP + pha + tya + adc /S.IP + ply + .ELSE lda W5100.DR,x get RX.Size HI sta RXTX.Size+1 - ldy W5100.DR,x get RX.Size LO sty RXTX.Size + .FIN >SYSCALL getmem bcs .9 @@ -372,9 +435,28 @@ READ php ldy #S.IOCTL.BYTECNT + .DO U2AI=1 + lda RXTX.Size + sta (ZPIOCTL),y + eor #$ff + sta Counter + eor #$ff + clc + adc #6 Total Size : Add 6 bytes for IPRAW + sta RXTX.Size + + iny + + lda RXTX.Size+1 + eor #$ff + sta Counter+1 + eor #$ff + adc #0 + sta RXTX.Size+1 + .ELSE lda RXTX.Size sec - sbc #2 Header Size + sbc #2 Header Size : strip 2 bytes for MACRAW sta (ZPIOCTL),y eor #$ff sta Counter @@ -386,11 +468,25 @@ READ php sta (ZPIOCTL),y eor #$ff sta Counter+1 + .FIN + + .DO U2AI=1 + ldx #3 + ldy #S.IP.SRC+3 + +.11 lda RX.IP,x + sta (ZPBufPtr),y + dey + dex + bpl .11 + + ldy #S.IP + .ELSE + ldy #0 + .FIN ldx DEVSLOTx0 - - ldy #0 - + .2 inc Counter bne .3 inc Counter+1 @@ -432,20 +528,27 @@ WRITE php >STYA ZPIOCTL - ldx DEVSLOTx0 - ldy #S.IOCTL.BYTECNT lda (ZPIOCTL),y + .DO U2AI=1 + sec + sbc #S.IP + .FIN sta RXTX.Size eor #$ff sta Counter iny lda (ZPIOCTL),y + .DO U2AI=1 + sbc /S.IP + .FIN sta RXTX.Size+1 eor #$ff sta Counter+1 + ldx DEVSLOTx0 + >AR.SELECT S0.TX.FSR lda W5100.DR,x get send size HI @@ -467,6 +570,21 @@ WRITE.1 ldy #S.IOCTL.BUFPTR lda (ZPIOCTL),y sta ZPBufPtr+1 + .DO U2AI=1 + >AR.SELECT S0.DIPR + ldy #S.IP.DST + +.1 lda (ZPBufPtr),y + sta W5100.DR,x + iny + cpy #S.IP.DST+4 + bne .1 + + >AR.SELECT S0.PROTO + ldy #S.IP.PROTOCOL + lda (ZPBufPtr),y + sta W5100.DR,x + .ELSE ldy #S.ETH.SRCMAC+5 ldx #5 @@ -477,6 +595,7 @@ WRITE.1 ldy #S.IOCTL.BUFPTR bpl .1 ldx DEVSLOTx0 + .FIN >AR.SELECT S0.TX.WR lda W5100.DR,x Get HI @@ -489,7 +608,11 @@ WRITE.1 ldy #S.IOCTL.BUFPTR sta W5100.AR+1,x Write LO sta Offset + .DO U2AI=1 + ldy #S.IP + .ELSE ldy #0 + .FIN .2 inc Counter bne .3