2022-03-13 12:58:15 +00:00
|
|
|
|
NEW
|
|
|
|
|
AUTO 3,1
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
U2.Init lda CONF.SLOT
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
asl
|
|
|
|
|
clc
|
|
|
|
|
adc #$88
|
|
|
|
|
sta Slotn0
|
|
|
|
|
tax
|
|
|
|
|
|
|
|
|
|
lda #W5100.MR.RST
|
|
|
|
|
sta W5100.MR,x
|
|
|
|
|
|
|
|
|
|
lda #0
|
|
|
|
|
|
|
|
|
|
.1 dec give some time....
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
lda #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
|
|
|
|
sta W5100.MR,x
|
|
|
|
|
|
|
|
|
|
pha
|
|
|
|
|
pla
|
|
|
|
|
|
|
|
|
|
lda W5100.MR,x
|
|
|
|
|
cmp #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
|
|
|
|
bne .9
|
|
|
|
|
|
|
|
|
|
>AR.SELECT RTR
|
|
|
|
|
lda W5100.DR,x Get RTR HI
|
|
|
|
|
cmp /2000
|
|
|
|
|
bne .9
|
|
|
|
|
|
|
|
|
|
lda W5100.DR,x Get RTR LO
|
|
|
|
|
cmp #2000
|
|
|
|
|
beq .3
|
|
|
|
|
|
|
|
|
|
.9 sec
|
|
|
|
|
rts
|
|
|
|
|
|
|
|
|
|
.3 lda CONF.SLOT
|
|
|
|
|
pha
|
|
|
|
|
|
|
|
|
|
lda #0
|
|
|
|
|
pha
|
|
|
|
|
pha
|
|
|
|
|
|
|
|
|
|
lda #U2.Name
|
|
|
|
|
pha
|
|
|
|
|
lda /U2.Name
|
|
|
|
|
pha
|
|
|
|
|
|
|
|
|
|
>LDYAI VEDRIVE.NICOK
|
|
|
|
|
jsr PrintFYA
|
|
|
|
|
|
|
|
|
|
ldx Slotn0
|
|
|
|
|
|
|
|
|
|
lda #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
|
|
|
|
sta W5100.MR,x
|
|
|
|
|
|
|
|
|
|
>AR.SELECT SHAR
|
|
|
|
|
ldy #0
|
|
|
|
|
|
|
|
|
|
.4 lda CONF.SRCMAC,y
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
iny
|
|
|
|
|
cpy #6
|
|
|
|
|
bne .4
|
|
|
|
|
|
|
|
|
|
>AR.SELECT RMSR
|
|
|
|
|
lda #3 8k,0k,0k,0k
|
|
|
|
|
sta W5100.DR,x ...for Socket RX Buffers
|
|
|
|
|
sta W5100.DR,x ...for Socket TX Buffers
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.MR
|
|
|
|
|
lda #W5100.AR.Sn.MR.MACRAW+W5100.AR.Sn.MR.MF
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.CR
|
|
|
|
|
lda #W5100.AR.Sn.CR.OPEN
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
U2.Read php
|
|
|
|
|
sei
|
|
|
|
|
|
|
|
|
|
ldx Slotn0
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.RX.RSR
|
|
|
|
|
lda W5100.DR,x get the received size HI
|
|
|
|
|
nop
|
|
|
|
|
nop
|
|
|
|
|
ora W5100.DR,x LO
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
jmp U2.READWRITE.9
|
|
|
|
|
|
|
|
|
|
.1 >AR.SELECT S0.RX.RD
|
|
|
|
|
lda W5100.DR,x get the received ptr HI
|
|
|
|
|
sta Offset+1
|
|
|
|
|
ldy W5100.DR,x get the received ptr LO
|
|
|
|
|
sty Offset
|
|
|
|
|
|
|
|
|
|
and /RXTX.MASK
|
|
|
|
|
ora /RX.BASE
|
|
|
|
|
sta W5100.AR,x
|
|
|
|
|
tya
|
|
|
|
|
sta W5100.AR+1,x
|
|
|
|
|
|
|
|
|
|
lda W5100.DR,x get RX.Size HI (Frame size + 2)
|
|
|
|
|
sta TotalSize+1
|
|
|
|
|
lda W5100.DR,x get RX.Size LO
|
|
|
|
|
sta TotalSize
|
|
|
|
|
|
|
|
|
|
sec
|
|
|
|
|
sbc #2 MACRAW:strip 2 bytes Header from Size
|
|
|
|
|
sta ZPBufCnt
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta ZPnCnt
|
|
|
|
|
|
|
|
|
|
lda TotalSize+1
|
|
|
|
|
sbc #0
|
2022-09-11 19:11:32 +00:00
|
|
|
|
sta ZPBufCnt+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
eor #$ff
|
|
|
|
|
sta ZPnCnt+1
|
|
|
|
|
|
|
|
|
|
lda ZPBufPtr+1
|
|
|
|
|
pha
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
|
|
|
|
.2 inc ZPnCnt
|
|
|
|
|
bne .3
|
|
|
|
|
|
|
|
|
|
inc ZPnCnt+1
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
.3 lda W5100.DR,x
|
|
|
|
|
sta (ZPBufPtr),y
|
|
|
|
|
iny
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
inc ZPBufPtr+1
|
|
|
|
|
bra .2
|
|
|
|
|
|
|
|
|
|
.8 >AR.SELECT S0.RX.RD
|
|
|
|
|
|
|
|
|
|
lda Offset
|
|
|
|
|
clc
|
|
|
|
|
adc TotalSize
|
|
|
|
|
pha save LO
|
|
|
|
|
|
|
|
|
|
lda Offset+1
|
|
|
|
|
adc TotalSize+1
|
|
|
|
|
sta W5100.DR,x write HI
|
|
|
|
|
pla
|
|
|
|
|
sta W5100.DR,x write LO
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.CR
|
|
|
|
|
lda #W5100.AR.Sn.CR.RCVD
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
|
|
|
|
|
pla
|
|
|
|
|
sta ZPBufPtr+1
|
|
|
|
|
|
|
|
|
|
plp
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
U2.READWRITE.9 plp
|
|
|
|
|
sec
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
U2.Write php
|
|
|
|
|
sei
|
|
|
|
|
|
|
|
|
|
ldx Slotn0
|
|
|
|
|
|
|
|
|
|
lda ZPBufCnt
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta ZPnCnt
|
|
|
|
|
|
|
|
|
|
lda ZPBufCnt+1
|
|
|
|
|
eor #$ff
|
|
|
|
|
sta ZPnCnt+1
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.TX.FSR
|
|
|
|
|
lda W5100.DR,x get send size HI
|
|
|
|
|
nop
|
|
|
|
|
nop
|
|
|
|
|
ldy W5100.DR,x LO
|
|
|
|
|
cpy ZPBufCnt
|
|
|
|
|
sbc ZPBufCnt+1
|
|
|
|
|
bcc U2.READWRITE.9
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.TX.WR
|
|
|
|
|
lda W5100.DR,x Get HI
|
|
|
|
|
nop
|
|
|
|
|
nop
|
|
|
|
|
ldy W5100.DR,x Get LO
|
|
|
|
|
and /RXTX.MASK
|
|
|
|
|
ora /TX.BASE
|
|
|
|
|
sta W5100.AR,x Write HI
|
|
|
|
|
sta Offset+1
|
|
|
|
|
tya
|
|
|
|
|
sta W5100.AR+1,x Write LO
|
|
|
|
|
sta Offset
|
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
|
|
|
|
.2 inc ZPnCnt
|
|
|
|
|
bne .3
|
|
|
|
|
|
|
|
|
|
inc ZPnCnt+1
|
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
.3 lda (ZPBufPtr),y
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
iny
|
|
|
|
|
bne .2
|
|
|
|
|
|
|
|
|
|
inc ZPBufPtr+1
|
|
|
|
|
bra .2
|
|
|
|
|
|
|
|
|
|
.8 >AR.SELECT S0.TX.WR
|
|
|
|
|
lda Offset
|
|
|
|
|
clc
|
|
|
|
|
adc ZPBufCnt
|
|
|
|
|
pha save LO
|
|
|
|
|
lda Offset+1
|
|
|
|
|
adc ZPBufCnt+1
|
|
|
|
|
sta W5100.DR,x write HI
|
|
|
|
|
pla
|
|
|
|
|
sta W5100.DR,x write LO
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.CR
|
|
|
|
|
lda #W5100.AR.Sn.CR.SEND
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
|
|
|
|
|
plp
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2022-09-17 11:35:52 +00:00
|
|
|
|
U2.Name .PS "Uthernet II"
|
2022-03-13 12:58:15 +00:00
|
|
|
|
Offset .BS 2
|
|
|
|
|
TotalSize .BS 2
|
|
|
|
|
*--------------------------------------
|
2022-04-19 18:24:34 +00:00
|
|
|
|
DRV.U2 .PH DRV.NIC.START
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
jmp DRV.U2.SendARP
|
|
|
|
|
jmp DRV.U2.SendUDP
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
DRV.U2.Rcvd php
|
2022-03-13 12:58:15 +00:00
|
|
|
|
sei
|
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
ldx DRV.BLK.Slotn0
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.RX.RSR
|
|
|
|
|
lda W5100.DR,x get the received size HI
|
|
|
|
|
nop
|
|
|
|
|
nop
|
|
|
|
|
ora W5100.DR,x LO
|
|
|
|
|
bne .1
|
|
|
|
|
|
|
|
|
|
jmp DRV.U2.9
|
|
|
|
|
|
|
|
|
|
.1 >AR.SELECT S0.RX.RD
|
|
|
|
|
lda W5100.DR,x get the received ptr HI
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.Offset+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
ldy W5100.DR,x get the received ptr LO
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sty DRV.Offset
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
|
|
|
|
and /RXTX.MASK
|
|
|
|
|
ora /RX.BASE
|
|
|
|
|
sta W5100.AR,x
|
|
|
|
|
tya
|
|
|
|
|
sta W5100.AR+1,x
|
|
|
|
|
|
|
|
|
|
lda W5100.DR,x get RX.Size HI (Frame size + 2)
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.TotalSize+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
lda W5100.DR,x get RX.Size LO
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.TotalSize
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
* lda DRV.TotalSize
|
2022-03-13 12:58:15 +00:00
|
|
|
|
sec
|
|
|
|
|
sbc #2 MACRAW:strip 2 bytes Header from Size
|
2022-04-19 18:24:34 +00:00
|
|
|
|
sta DRV.FrameSize
|
2022-03-13 12:58:15 +00:00
|
|
|
|
eor #$ff
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.nCnt
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
lda DRV.TotalSize+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
sbc #0
|
2022-04-19 18:24:34 +00:00
|
|
|
|
sta DRV.FrameSize+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
eor #$ff
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.nCnt+1
|
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
>LDYAI DRV.InBuf
|
|
|
|
|
>STYA DRV.A1L
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
.2 inc DRV.nCnt
|
2022-03-13 12:58:15 +00:00
|
|
|
|
bne .3
|
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
inc DRV.nCnt+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
beq .8
|
|
|
|
|
|
|
|
|
|
.3 lda W5100.DR,x
|
2022-04-19 18:24:34 +00:00
|
|
|
|
|
|
|
|
|
sta (DRV.A1L),y
|
2022-03-13 12:58:15 +00:00
|
|
|
|
iny
|
|
|
|
|
bne .2
|
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
inc DRV.A1H
|
2022-03-13 12:58:15 +00:00
|
|
|
|
bra .2
|
|
|
|
|
|
|
|
|
|
.8 >AR.SELECT S0.RX.RD
|
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
lda DRV.Offset
|
2022-03-13 12:58:15 +00:00
|
|
|
|
clc
|
2022-03-15 19:33:19 +00:00
|
|
|
|
adc DRV.TotalSize
|
2022-03-13 12:58:15 +00:00
|
|
|
|
pha save LO
|
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
lda DRV.Offset+1
|
|
|
|
|
adc DRV.TotalSize+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
sta W5100.DR,x write HI
|
|
|
|
|
pla
|
|
|
|
|
sta W5100.DR,x write LO
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.CR
|
|
|
|
|
lda #W5100.AR.Sn.CR.RCVD
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
|
|
|
|
|
plp
|
|
|
|
|
clc
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DRV.U2.9 plp
|
|
|
|
|
sec
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2022-04-19 18:24:34 +00:00
|
|
|
|
DRV.U2.SendARP >LDYAI S.ARP
|
|
|
|
|
>STYA DRV.FrameSize
|
|
|
|
|
>LDYAI DRV.ARPBuf
|
|
|
|
|
bra DRV.U2.Send
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DRV.U2.SendUDP >STYA DRV.FrameSize
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
jsr DRV.BLK.IPUDPCheksum
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
>LDYAI DRV.UDPBuf
|
|
|
|
|
|
|
|
|
|
DRV.U2.Send >STYA DRV.A1L
|
|
|
|
|
|
|
|
|
|
lda DRV.FrameSize+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
eor #$ff
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.nCnt+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
lda DRV.FrameSize
|
2022-03-13 12:58:15 +00:00
|
|
|
|
eor #$ff
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.nCnt
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
php
|
|
|
|
|
sei
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
ldx DRV.BLK.Slotn0
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.TX.FSR
|
|
|
|
|
lda W5100.DR,x get send size HI
|
|
|
|
|
nop
|
|
|
|
|
nop
|
|
|
|
|
ldy W5100.DR,x LO
|
2022-04-19 18:24:34 +00:00
|
|
|
|
cpy DRV.FrameSize
|
|
|
|
|
sbc DRV.FrameSize+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
bcc DRV.U2.9
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.TX.WR
|
|
|
|
|
lda W5100.DR,x Get HI
|
|
|
|
|
nop
|
|
|
|
|
nop
|
|
|
|
|
ldy W5100.DR,x Get LO
|
|
|
|
|
and /RXTX.MASK
|
|
|
|
|
ora /TX.BASE
|
|
|
|
|
sta W5100.AR,x Write HI
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.Offset+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
tya
|
|
|
|
|
sta W5100.AR+1,x Write LO
|
2022-03-15 19:33:19 +00:00
|
|
|
|
sta DRV.Offset
|
2022-03-13 12:58:15 +00:00
|
|
|
|
|
|
|
|
|
ldy #0
|
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
.2 inc DRV.nCnt
|
2022-03-13 12:58:15 +00:00
|
|
|
|
bne .3
|
|
|
|
|
|
2022-03-15 19:33:19 +00:00
|
|
|
|
inc DRV.nCnt+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
beq .8
|
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
.3 lda (DRV.A1L),y
|
2022-03-13 12:58:15 +00:00
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
iny
|
|
|
|
|
bne .2
|
|
|
|
|
|
2022-04-19 18:24:34 +00:00
|
|
|
|
inc DRV.A1H
|
2022-03-13 12:58:15 +00:00
|
|
|
|
bra .2
|
|
|
|
|
|
|
|
|
|
.8 >AR.SELECT S0.TX.WR
|
2022-03-15 19:33:19 +00:00
|
|
|
|
lda DRV.Offset
|
2022-03-13 12:58:15 +00:00
|
|
|
|
clc
|
2022-04-19 18:24:34 +00:00
|
|
|
|
adc DRV.FrameSize
|
2022-03-13 12:58:15 +00:00
|
|
|
|
pha save LO
|
2022-03-15 19:33:19 +00:00
|
|
|
|
lda DRV.Offset+1
|
2022-04-19 18:24:34 +00:00
|
|
|
|
adc DRV.FrameSize+1
|
2022-03-13 12:58:15 +00:00
|
|
|
|
sta W5100.DR,x write HI
|
|
|
|
|
pla
|
|
|
|
|
sta W5100.DR,x write LO
|
|
|
|
|
|
|
|
|
|
>AR.SELECT S0.CR
|
|
|
|
|
lda #W5100.AR.Sn.CR.SEND
|
|
|
|
|
sta W5100.DR,x
|
|
|
|
|
|
|
|
|
|
plp
|
|
|
|
|
clc
|
|
|
|
|
rts
|
2022-03-15 19:33:19 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
DRV.Offset .BS 2
|
|
|
|
|
DRV.TotalSize .BS 2
|
|
|
|
|
*--------------------------------------
|
2022-03-13 12:58:15 +00:00
|
|
|
|
.EP
|
|
|
|
|
|
|
|
|
|
.LIST ON
|
|
|
|
|
DRV.U2.SIZE .EQ *-DRV.U2
|
|
|
|
|
.LIST OFF
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
|
|
|
|
SAVE usr/src/sys/pm.vedrive.s.u2
|
|
|
|
|
LOAD usr/src/sys/pm.vedrive.s
|
|
|
|
|
ASM
|