Kernel version 0.9 : UTHERNET2.DRV.S.txt & UTHER2.AI.DRV.S.txt , code rework

This commit is contained in:
Rémy GIBERT 2017-04-25 17:44:21 +02:00
parent 173256a691
commit d71c265058
6 changed files with 100 additions and 81 deletions

View File

@ -143,7 +143,7 @@ DEV.HEADER cld
jmp (DRV.CS.START,x)
.DA #0
.BS 6
DEV.HEADER.NAME >PSTR "ETH7" NAME
DEV.HEADER.NAME >PSTR "ETH7"
*--------------------------------------
* Driver Code
*--------------------------------------
@ -177,8 +177,8 @@ READBLOCK ldx DEVSLOTx0
lda #ERR.DEV.NOFRAME
READBLOCK.Err sec
rts
sec
READBLOCK.RTS rts
READBLOCK.RxOK >AR.SELECT S0.RX.RD
lda W5100.DR,x get the received ptr HI
@ -186,8 +186,10 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
and /RXTX.MASK
ora /RX.BASE
sta W5100.AR,x
sta offset+1
tya
sta W5100.AR+1,x
sta offset
ldy #0
@ -207,12 +209,14 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
pha
tya
adc /S.IP
ply
>PUSHA
pla
>PUSHA
>PUSHYA
>PUSHBI 0
>SYSCALL GetMem
bcs READBLOCK.Err
bcs READBLOCK.RTS
>STYA ZPTmpPTR
stx .8+1
sty .8+3
@ -220,23 +224,24 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
lda RXTX.Size
sta (ZPTmpPTR)
pha
eor #$ff
sta Counter
pla
* clc
adc #6 Header Size
sta RXTX.Size
ldy #1
lda RXTX.Size+1
sta (ZPTmpPTR),y
pha
eor #$ff
sta Counter+1
lda RXTX.Size
clc
adc #6 Header Size
sta Offset
lda RXTX.Size+1
pla
adc #0
sta Offset+1
sta RXTX.Size+1
ldy #S.IP.DST+3
ldx #3
@ -264,16 +269,18 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
bne .2
.4 >AR.SELECT S0.RX.RD
ldy W5100.DR,x Get HI
lda W5100.DR,x Get LO
lda Offset
clc
adc Offset
adc RXTX.Size
pha save LO
tya
adc Offset+1
pha
>AR.SELECT S0.RX.RD
pla
lda Offset+1
adc RXTX.Size+1
and /RXTX.MASK
ora /RX.BASE
sta W5100.DR,x write HI
pla
sta W5100.DR,x write LO
@ -331,13 +338,6 @@ WRITEBLOCK.1 >AR.SELECT S0.DIPR
lda (ZPTmpPTR),y
sta W5100.DR,x
* >AR.SELECT S0.TOS
stz W5100.DR,x
* >AR.SELECT S0.TTL
lda #K.IP.TTL
sta W5100.DR,x
>AR.SELECT S0.TX.WR
lda W5100.DR,x Get HI
ldy W5100.DR,x Get LO
@ -353,6 +353,7 @@ WRITEBLOCK.1 >AR.SELECT S0.DIPR
.2 inc Counter
bne .3
inc Counter+1
beq .8
@ -365,8 +366,8 @@ WRITEBLOCK.1 >AR.SELECT S0.DIPR
.8 >AR.SELECT S0.TX.WR
clc
lda Offset
clc
adc RXTX.Size
pha save LO
@ -381,6 +382,7 @@ WRITEBLOCK.1 >AR.SELECT S0.DIPR
>AR.SELECT S0.CR
lda #W5100.AR.S0.CR.SEND
sta W5100.DR,x
clc
rts
*--------------------------------------
@ -391,29 +393,38 @@ OPEN jsr CLOSE
>AR.SELECT GAR
ldy #8 GAR,SUBR
ldy #4
.1 stz W5100.DR,x
dey
bne .1
* >AR.SELECT SUBR
ldy #4
lda #255
.2 sta W5100.DR,x
dey
bne .2
* >AR.SELECT SHAR
ldy #0
.2 lda MAC,y
.3 lda MAC,y
sta W5100.DR,x
iny
cpy #6
bne .2
bne .3
* >AR.SELECT SIPR
ldy #4
.3 stz W5100.DR,x
.4 stz W5100.DR,x
dey
bne .3
bne .4
>AR.SELECT RMSR
lda #3 8k,0k,0k,0k
@ -468,6 +479,13 @@ CONTROL.OPEN >AR.SELECT S0.MR
lda #W5100.AR.S0.MR.IPRAW+W5100.AR.S0.MR.MF
sta W5100.DR,x
>AR.SELECT S0.TOS
stz W5100.DR,x
* >AR.SELECT S0.TTL
lda #K.IP.TTL
sta W5100.DR,x
>AR.SELECT S0.CR
lda #W5100.AR.S0.CR.OPEN
sta W5100.DR,x
@ -487,6 +505,7 @@ CLOSE ldx DEVSLOTx0
.2 eor $C019
bpl .2
clc
rts
*--------------------------------------
DRV.CS.END
@ -498,6 +517,7 @@ DEVSTAT .DA #0
.DA #S.DEVSTAT.TYPE.NET
.BS 1 Subtype
.BS 2 Version
*--------------------------------------
FLAGS .DA #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD+S.DEVSTAT.NET.FLAGS.IPOFFLOAD
LINK.STATUS .DA #S.DEVSTAT.NET.STATUS.OK+S.DEVSTAT.NET.STATUS.FD+S.DEVSTAT.NET.STATUS.100
MAC .BS 6

View File

@ -185,25 +185,19 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
and /RXTX.MASK
ora /RX.BASE
sta W5100.AR,x
sta offset+1
tya
sta W5100.AR+1,x
sta offset
lda W5100.DR,x get RX.Size HI
sta Offset+1
sta RXTX.Size+1
>PUSHA for SYS.GetMem
tay
lda W5100.DR,x get RX.Size LO
sta Offset
sta RXTX.Size
>PUSHA for SYS.GetMem
sec
sbc #2
sta RXTX.Size
bcs .1
dey
.1 sty RXTX.Size+1
* >PUSHYA Already pushed....
>PUSHBI 0
>SYSCALL GetMem
bcs .99
@ -213,6 +207,8 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
sta .8+5
lda RXTX.Size
sec
sbc #2 Header Size
sta (ZPTmpPTR)
eor #$ff
sta Counter
@ -220,6 +216,7 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
ldy #1
lda RXTX.Size+1
sbc #0
sta (ZPTmpPTR),y
eor #$ff
sta Counter+1
@ -241,16 +238,18 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
bne .2
.4 >AR.SELECT S0.RX.RD
ldy W5100.DR,x Get HI
lda W5100.DR,x Get LO
lda Offset
clc
adc Offset
adc RXTX.Size
pha save LO
tya
adc Offset+1
pha
>AR.SELECT S0.RX.RD
pla
lda Offset+1
adc RXTX.Size+1
and /RXTX.MASK
ora /RX.BASE
sta W5100.DR,x write HI
pla
sta W5100.DR,x write LO
@ -318,7 +317,7 @@ WRITEBLOCK.1 ldy #S.ETH.SRCMAC+5
bne .3
inc Counter+1
beq .4
beq .8
.3 lda (ZPTmpPTR),y
sta W5100.DR,x
@ -327,7 +326,7 @@ WRITEBLOCK.1 ldy #S.ETH.SRCMAC+5
inc ZPTmpPTR+1
bne .2
.4 >AR.SELECT S0.TX.WR
.8 >AR.SELECT S0.TX.WR
lda Offset
clc
@ -357,6 +356,7 @@ OPEN jsr CLOSE
>AR.SELECT SHAR
ldy #0
.1 lda MAC,y
sta W5100.DR,x
iny

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -38,7 +38,6 @@ SET.IPCFG >PULLW ZPTmpPtr1
lda IPCFG+S.IPCFG.HDEV
>SYSCALL GetDevByIDA
>STYA ZPTmpPtr2
>STYA NetDevJmp+1
ldx #DEVMGR.STATUS