UTHERNET drivers optimisation/bugfix

This commit is contained in:
Rémy GIBERT 2016-04-18 22:15:34 +02:00
parent 5e5a1a42cb
commit ebb4ef0618
2 changed files with 53 additions and 28 deletions

View File

@ -43,10 +43,10 @@ PP.RxCTL.ExtradataA .EQ %01000000.00000000
PP.TxCFG .EQ $0106 Transmit Configuration (RW) PP.TxCFG .EQ $0106 Transmit Configuration (RW)
PP.TxCMD .EQ $0108 Receiver Control (RW) PP.TxCMD .EQ $0108 Receiver Control (RW)
PP.TxCMD.LID .EQ %00000000.00001001 PP.TxCMD.LID .EQ %00000000.00001001
PP.TxCMD.TxStart5 .EQ %00000000.00000000 00 = start after 5 Bytes PP.TxCMD.TxStart5 .EQ %00000000.00000000
PP.TxCMD.TxStart381 .EQ %00000000.01000000 01 = start after 381 Bytes PP.TxCMD.TxStart381 .EQ %00000000.01000000
PP.TxCMD.TxStart1021 .EQ %00000000.10000000 10 = start after 1021 Bytes PP.TxCMD.TxStart1021 .EQ %00000000.10000000
PP.TxCMD.TxStartFULL .EQ %00000000.11000000 11 = start after ENTIRE Frame PP.TxCMD.TxStartFULL .EQ %00000000.11000000
PP.TxCMD.Force .EQ %00000001.00000000 PP.TxCMD.Force .EQ %00000001.00000000
PP.TxCMD.OneColl .EQ %00000010.00000000 PP.TxCMD.OneColl .EQ %00000010.00000000
PP.TxCMD.InhibitCRC .EQ %00010000.00000000 PP.TxCMD.InhibitCRC .EQ %00010000.00000000
@ -155,17 +155,31 @@ Dev.Detect sta hArgs
.3 stx DEVSLOTx0 .3 stx DEVSLOTx0
lda hARGS lda hARGS
bne .4
lda #$00
sta MAC
lda #$0E
sta MAC+1
lda #$3A
sta MAC+2
lda A2osX.RANDOM16
eor A2osX.TIMER16
sta MAC+3
eor A2osX.RANDOM16+1
sta MAC+4
eor A2osX.TIMER16+1
sta MAC+5
bra .8
beq .4 .4 >SYSCALL SYS.GetMemPtrA
>SYSCALL SYS.GetMemPtrA
>STYA ZPTmpPTR >STYA ZPTmpPTR
jsr DecodeMac jsr DecodeMac
bcc .4 bcc .8
lda #DEVMGR.ERRICL lda #DEVMGR.ERRICL
sec sec
rts rts
.4 >LDYA L.MSG.DETECT.OK .8 >LDYA L.MSG.DETECT.OK
>SYSCALL SYS.PSTROutYA >SYSCALL SYS.PSTROutYA
>LDYA L.DEV.HEADER.NAME >LDYA L.DEV.HEADER.NAME
>SYSCALL SYS.PSTROutYA >SYSCALL SYS.PSTROutYA
@ -359,14 +373,6 @@ SEND >PULLW ZPTmpPTR
eor #$ff eor #$ff
sta Counter+1 sta Counter+1
ldy #S.ETH.SRCMAC+5
ldx #5
.10 lda MAC,x
sta (ZPTmpPTR),y
dey
dex
bpl .10
ldx DEVSLOTx0 ldx DEVSLOTx0
>LDYAI PP.TxCMD.LID+PP.TxCMD.TxStartFULL >LDYAI PP.TxCMD.LID+PP.TxCMD.TxStartFULL
>STYA TxCMD,x >STYA TxCMD,x
@ -394,7 +400,16 @@ SEND >PULLW ZPTmpPTR
sec sec
rts rts
SENDPREADY ldy #2 SENDPREADY ldy #S.ETH.SRCMAC+5
ldx #5
.10 lda MAC,x
sta (ZPTmpPTR),y
dey
dex
bpl .10
ldx DEVSLOTx0
ldy #2
.1 inc Counter .1 inc Counter
bne .11 bne .11

View File

@ -174,8 +174,8 @@ Dev.Detect sta hArgs
.INB DRV/X.NET.DRV.S .INB DRV/X.NET.DRV.S
*-------------------------------------- *--------------------------------------
CS.END CS.END
MSG.DETECT >PSTRING "UtherNetII/W5100 Driver.\n" MSG.DETECT >PSTRING "UtherNet2/W5100 Driver.\n"
MSG.DETECT.OK >PSTRING "UtherNetII/W5100 Installed As Device : " MSG.DETECT.OK >PSTRING "UtherNet2/W5100 Installed As Device : "
MSG.DETECT.KO >PSTRING "Hardware Not Found.\n" MSG.DETECT.KO >PSTRING "Hardware Not Found.\n"
hArgs .BS 1 hArgs .BS 1
*-------------------------------------- *--------------------------------------
@ -383,7 +383,17 @@ SEND >PULLW ZPTmpPTR
sec sec
rts rts
SEND.READY >AR.SELECT S0.TX.WR SEND.READY ldy #S.ETH.SRCMAC+5
ldx #5
.1 lda MAC,x
sta (ZPTmpPTR),y
dey
dex
bpl .1
ldx DEVSLOTx8
>AR.SELECT S0.TX.WR
lda W5100.DR,x Get HI lda W5100.DR,x Get HI
ldy W5100.DR,x Get LO ldy W5100.DR,x Get LO
and /RXTX.MASK and /RXTX.MASK
@ -418,8 +428,8 @@ SEND.READY >AR.SELECT S0.TX.WR
lda Offset+1 lda Offset+1
adc RXTX.Size+1 adc RXTX.Size+1
and /RXTX.MASK * and /RXTX.MASK
ora /TX.BASE * ora /TX.BASE
sta W5100.DR,x write HI sta W5100.DR,x write HI
pla pla
sta W5100.DR,x write LO sta W5100.DR,x write LO