mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-10 22:54:59 +00:00
Kernel version 0.9 : Drivers modification for KCONFIG compliance
This commit is contained in:
parent
e145bd427c
commit
1a57cc4352
@ -10,12 +10,10 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||||
|
.INB /A2OSX.BUILD/INC/MLI.ERR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPTmpPtr1 .EQ ZPDRV
|
ZPTmpPtr1 .EQ ZPDRV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SIG.05 .EQ $48
|
|
||||||
SIG.07 .EQ $48
|
|
||||||
*--------------------------------------
|
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
@ -36,38 +34,48 @@ L.MSG.DETECT.KO .DA MSG.DETECT.KO
|
|||||||
L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
|
L.DEV.HEADER.NAME .DA DEV.HEADER.NAME
|
||||||
.DA 0 End Of Reloc Table
|
.DA 0 End Of Reloc Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Detect >LDYA L.MSG.DETECT
|
Dev.Detect >STYA ARGS
|
||||||
>SYSCALL CPrintFYA
|
>LDYA L.MSG.DETECT
|
||||||
|
>SYSCALL PPrintFYA
|
||||||
|
|
||||||
stz ZPTmpPtr1
|
stz ZPTmpPtr1
|
||||||
lda #$C1
|
lda #$C1
|
||||||
sta ZPTmpPtr1+1
|
sta ZPTmpPtr1+1
|
||||||
.1 ldy #5
|
|
||||||
lda (ZPTmpPtr1),y
|
|
||||||
cmp #SIG.05
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
ldy #7
|
.1 and #$0f
|
||||||
lda (ZPTmpPtr1),y
|
tay
|
||||||
cmp #SIG.07
|
lda A2osX.SLOTS,y
|
||||||
beq .3
|
bne .3
|
||||||
|
|
||||||
.2 inc ZPTmpPtr1+1
|
ldx #DEVSIG.Length-1
|
||||||
|
|
||||||
|
.2 ldy DEVSIG.Offset,x
|
||||||
|
lda (ZPTmpPtr1),y
|
||||||
|
cmp DEVSIG.Value,x
|
||||||
|
bne .3
|
||||||
|
dex
|
||||||
|
bpl .2
|
||||||
|
bra .4
|
||||||
|
|
||||||
|
.3 inc ZPTmpPtr1+1 no match, try next slot....
|
||||||
lda ZPTmpPtr1+1
|
lda ZPTmpPtr1+1
|
||||||
cmp #$C8
|
cmp #$C8
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.DETECT.KO
|
>LDYA L.MSG.DETECT.KO
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL PPrintFYA
|
||||||
|
|
||||||
lda #DEVMGR.ERRNOHW Not Found in any slot, exiting
|
lda #MLI.ERR.NODEV Not Found in any slot, exiting
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 lda ZPTmpPtr1+1
|
.4 lda ZPTmpPtr1+1
|
||||||
sta DEVSLOTCn
|
|
||||||
and #$0F
|
and #$0F
|
||||||
sta DEVSLOT0n
|
pha
|
||||||
|
tay
|
||||||
|
lda #A2osX.SLOTS.COM
|
||||||
|
sta A2osX.SLOTS,y
|
||||||
|
pla
|
||||||
ora #$30
|
ora #$30
|
||||||
sta DEV.HEADER.NAME+4
|
sta DEV.HEADER.NAME+4
|
||||||
asl
|
asl
|
||||||
@ -78,59 +86,79 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
|
|
||||||
>PUSHW L.DEV.HEADER.NAME
|
>PUSHW L.DEV.HEADER.NAME
|
||||||
>LDYA L.MSG.DETECT.OK
|
>LDYA L.MSG.DETECT.OK
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL PPrintFYA
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
|
DEVSIG.Offset .HS 0507
|
||||||
|
DEVSIG.Value .HS 4848
|
||||||
|
DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset
|
||||||
MSG.DETECT >CSTR "Apple PIC (Parallel Interface Card).\n"
|
MSG.DETECT >CSTR "Apple PIC (Parallel Interface Card).\n"
|
||||||
MSG.DETECT.OK >CSTR "PIC Installed As Device : %S\n"
|
MSG.DETECT.OK >CSTR "PIC Installed As Device : %S\n"
|
||||||
MSG.DETECT.KO >CSTR "No PIC Found.\n"
|
MSG.DETECT.KO >CSTR "No PIC Found.\n"
|
||||||
|
ARGS .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Device Header (16 Bytes)
|
* Device Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.HEADER cld
|
DEV.HEADER cld
|
||||||
jmp (DRV.CS.START,x)
|
jmp (DRV.CS.START,x)
|
||||||
.DA #S.DEV.F.EVENT+S.DEV.F.COUT+S.DEV.F.CHAR
|
.DA #S.DEV.S.WRITE
|
||||||
DEV.HEADER.NAME >PSTR "LPT1" NAME
|
.BS 6
|
||||||
.HS 00.00
|
DEV.HEADER.NAME >PSTR "LPT1"
|
||||||
.HS 00.00.00.00
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Driver Code
|
* Driver Code
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CS.START .DA OPEN
|
DRV.CS.START .DA STATUS
|
||||||
.DA GETEVENT
|
.DA BADCALL
|
||||||
.DA COUT
|
.DA BADCALL
|
||||||
|
.DA BADCALL
|
||||||
|
.DA CONTROL
|
||||||
|
.DA BADCALL
|
||||||
|
.DA OPEN
|
||||||
.DA CLOSE
|
.DA CLOSE
|
||||||
.DA GETINFO
|
.DA BADCALL
|
||||||
.DA IRQ
|
.DA WRITE
|
||||||
L.DEVINFO .DA DEVINFO
|
L.STAT .DA STAT
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OPEN clc
|
BADCALL lda #MLI.ERR.BADCALL
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
GETEVENT lda #0
|
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT clc
|
STATUS >LDYA L.STAT
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CLOSE clc
|
CONTROL
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GETINFO >LDYA L.DEVINFO
|
OPEN
|
||||||
IRQ clc
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CLOSE
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
WRITE
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CS.END
|
DRV.CS.END
|
||||||
DEVSLOT0n .BS 1
|
DEVSLOT0n .BS 1
|
||||||
DEVSLOTCn .BS 1
|
DEVSLOTCn .BS 1
|
||||||
DEVSLOTn0 .BS 1
|
DEVSLOTn0 .BS 1
|
||||||
DEVINFO .DA #S.DEVINFO.TYPE.CHAR
|
*--------------------------------------
|
||||||
|
STAT .DA #S.DEVSTAT.S.WRITE
|
||||||
|
.DA #0,#0,#0
|
||||||
|
>PSTR "Parallel Card"
|
||||||
|
.DA #0,#0,#0
|
||||||
|
.DA #S.DEVSTAT.TYPE.CHAR
|
||||||
.DA #0
|
.DA #0
|
||||||
|
.DA $0900
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE DRV/PIC.DRV.S
|
SAVE /A2OSX/SRC/DRV/PIC.DRV.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
PR#3
|
PR#3
|
||||||
PREFIX /A2OSX.BUILD
|
PREFIX /A2OSX.BUILD
|
||||||
NEW
|
LOMEM $A00
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
@ -10,11 +10,16 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||||
|
.INB /A2OSX.BUILD/INC/MLI.ERR.I
|
||||||
|
.INB /A2OSX.BUILD/INC/NET.I
|
||||||
|
.INB /A2OSX.BUILD/INC/NET.W5100.I
|
||||||
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPTmpPTR .EQ ZPDRV
|
ZPTmpPTR .EQ ZPDRV
|
||||||
*--------------------------------------
|
RXTX.Size .EQ ZPDRV+2
|
||||||
.INB DRV/X.NET.W5100.S
|
Counter .EQ ZPDRV+4
|
||||||
|
Offset .EQ ZPDRV+6
|
||||||
|
RX.IP .EQ ZPDRV+8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -40,13 +45,32 @@ Dev.Detect >STYA Args
|
|||||||
>LDYA L.MSG.DETECT
|
>LDYA L.MSG.DETECT
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldx #$10+$88
|
ldx #$70
|
||||||
.1 lda #W5100.MR.RST
|
|
||||||
|
.1 txa IO based detection, avoid scanning in Disk Controller IO!!!!
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda A2osX.SLOTS,y
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
lda #W5100.MR.RST
|
||||||
sta W5100.MR,x
|
sta W5100.MR,x
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.10 dec give some time....
|
||||||
|
bne .10
|
||||||
|
|
||||||
lda #W5100.MR.AI+W5100.MR.IND
|
lda #W5100.MR.AI+W5100.MR.IND
|
||||||
sta W5100.MR,x
|
sta W5100.MR,x
|
||||||
|
|
||||||
|
pha
|
||||||
|
pla
|
||||||
|
|
||||||
lda W5100.MR,x
|
lda W5100.MR,x
|
||||||
cmp #W5100.MR.AI+W5100.MR.IND
|
cmp #W5100.MR.AI+W5100.MR.IND
|
||||||
bne .2
|
bne .2
|
||||||
@ -60,21 +84,29 @@ Dev.Detect >STYA Args
|
|||||||
cmp #2000
|
cmp #2000
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
.2 inc DEV.HEADER.NAME+4
|
.2 dec DEV.HEADER.NAME+4
|
||||||
txa
|
txa
|
||||||
clc
|
sec
|
||||||
adc #$10
|
sbc #$10
|
||||||
tax
|
tax
|
||||||
bcc .1 #$108 ?
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.DETECT.KO
|
>LDYA L.MSG.DETECT.KO
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
lda #DEVMGR.ERRNOHW
|
lda #MLI.ERR.NODEV
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 stx DEVSLOTx8
|
.3 stx DEVSLOTx0
|
||||||
|
txa
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
lda #A2osX.SLOTS.NET
|
||||||
|
sta A2osX.SLOTS,y
|
||||||
|
|
||||||
>LDYA ARGS
|
>LDYA ARGS
|
||||||
>STYA ZPTmpPTR
|
>STYA ZPTmpPTR
|
||||||
@ -96,9 +128,7 @@ Dev.Detect >STYA Args
|
|||||||
sta MAC+5
|
sta MAC+5
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.4 >SYSCALL GetMemPtrA
|
.4 jsr DecodeMac
|
||||||
>STYA ZPTmpPTR
|
|
||||||
jsr DecodeMac
|
|
||||||
bcc .8
|
bcc .8
|
||||||
lda #DEVMGR.ERRICL
|
lda #DEVMGR.ERRICL
|
||||||
sec
|
sec
|
||||||
@ -110,90 +140,58 @@ Dev.Detect >STYA Args
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB DRV/X.NET.DRV.S
|
.INB /A2OSX.SRC/DRV/X.NET.DRV.S
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.DETECT >CSTR "UtherNet2/W5100 Driver (ARP OffLoad).\n"
|
MSG.DETECT >CSTR "UtherNet2/W5100 Driver.\r\n"
|
||||||
MSG.DETECT.OK >CSTR "UtherNet2/W5100 Installed As Device : %S\n"
|
MSG.DETECT.OK >CSTR "UtherNet2/W5100 Installed As Device : %S\r\n"
|
||||||
MSG.DETECT.KO >CSTR "Hardware Not Found.\n"
|
MSG.DETECT.KO >CSTR "Hardware Not Found.\r\n"
|
||||||
Args .BS 2
|
Args .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Device Header (16 Bytes)
|
* Device Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.HEADER cld
|
DEV.HEADER cld
|
||||||
jmp (DRV.CS.START,x)
|
jmp (DRV.CS.START,x)
|
||||||
.HS 00
|
.DA #0
|
||||||
.DA #S.DEV.F.SHARE+S.DEV.F.EVENT
|
.BS 6
|
||||||
DEV.HEADER.NAME >PSTR "ETH1" NAME
|
DEV.HEADER.NAME >PSTR "ETH7" NAME
|
||||||
.HS 00
|
|
||||||
.HS 00.00.00.00
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Driver Code
|
* Driver Code
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CS.START .DA OPEN
|
DRV.CS.START .DA STATUS
|
||||||
.DA GETEVENT
|
.DA READBLOCK
|
||||||
.DA COUT
|
.DA WRITEBLOCK
|
||||||
|
.DA BADCALL
|
||||||
|
.DA CONTROL
|
||||||
|
.DA BADCALL
|
||||||
|
.DA OPEN
|
||||||
.DA CLOSE
|
.DA CLOSE
|
||||||
.DA GETINFO
|
.DA BADCALL
|
||||||
.DA IRQ
|
.DA BADCALL
|
||||||
.DA SEND
|
L.DEVSTAT .DA DEVSTAT
|
||||||
.DA SETIPCFG
|
|
||||||
L.DEVINFO .DA DEVINFO
|
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OPEN jsr Reset
|
BADCALL lda #MLI.ERR.BADCALL
|
||||||
|
sec
|
||||||
lda #W5100.MR.AI+W5100.MR.IND
|
rts
|
||||||
sta W5100.MR,x
|
*--------------------------------------
|
||||||
|
STATUS >LDYA L.DEVSTAT
|
||||||
>AR.SELECT GAR
|
|
||||||
|
|
||||||
ldy #8 GAR,SUBR
|
|
||||||
|
|
||||||
.1 stz W5100.DR,x
|
|
||||||
dey
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
* >AR.SELECT SHAR
|
|
||||||
|
|
||||||
ldy #0
|
|
||||||
|
|
||||||
.2 lda MAC,y
|
|
||||||
sta W5100.DR,x
|
|
||||||
iny
|
|
||||||
cpy #6
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
* >AR.SELECT SIPR
|
|
||||||
|
|
||||||
ldy #4
|
|
||||||
|
|
||||||
.3 stz W5100.DR,x
|
|
||||||
dey
|
|
||||||
bne .3
|
|
||||||
|
|
||||||
>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
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GETEVENT ldx DEVSLOTx8
|
READBLOCK ldx DEVSLOTx0
|
||||||
|
|
||||||
>AR.SELECT S0.RX.RSR
|
>AR.SELECT S0.RX.RSR
|
||||||
lda W5100.DR,x get the received size HI
|
lda W5100.DR,x get the received size HI
|
||||||
ora W5100.DR,x LO
|
ora W5100.DR,x LO
|
||||||
bne GETEVENT.RxOK
|
bne READBLOCK.RxOK
|
||||||
|
|
||||||
lda #ERR.DEV.NOFRAME
|
lda #ERR.DEV.NOFRAME
|
||||||
COUT
|
|
||||||
IRQ
|
READBLOCK.Err sec
|
||||||
GETEVENT.Err sec
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
GETEVENT.RxOK >AR.SELECT S0.RX.RD
|
READBLOCK.RxOK >AR.SELECT S0.RX.RD
|
||||||
lda W5100.DR,x get the received ptr HI
|
lda W5100.DR,x get the received ptr HI
|
||||||
ldy W5100.DR,x get the received ptr LO
|
ldy W5100.DR,x get the received ptr LO
|
||||||
and /RXTX.MASK
|
and /RXTX.MASK
|
||||||
@ -203,6 +201,7 @@ GETEVENT.RxOK >AR.SELECT S0.RX.RD
|
|||||||
sta W5100.AR+1,x
|
sta W5100.AR+1,x
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.10 lda W5100.DR,x
|
.10 lda W5100.DR,x
|
||||||
sta RX.IP,y
|
sta RX.IP,y
|
||||||
iny
|
iny
|
||||||
@ -224,14 +223,11 @@ GETEVENT.RxOK >AR.SELECT S0.RX.RD
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs GETEVENT.Err
|
bcs READBLOCK.Err
|
||||||
>STYA ZPTmpPTR
|
>STYA ZPTmpPTR
|
||||||
txa
|
stx .8+1
|
||||||
ldy #S.EVT.DATALO
|
sty .8+3
|
||||||
sta (pEvent),y
|
sta .8+5
|
||||||
|
|
||||||
lda #S.EVT.F.NET+S.EVT.F.hMEM1
|
|
||||||
sta (pEvent)
|
|
||||||
|
|
||||||
lda RXTX.Size
|
lda RXTX.Size
|
||||||
sta (ZPTmpPTR)
|
sta (ZPTmpPTR)
|
||||||
@ -262,14 +258,14 @@ GETEVENT.RxOK >AR.SELECT S0.RX.RD
|
|||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldx DEVSLOTx8
|
ldx DEVSLOTx0
|
||||||
|
|
||||||
ldy #S.IP
|
ldy #S.IP
|
||||||
|
|
||||||
.2 inc Counter
|
.2 inc Counter
|
||||||
bne .3
|
bne .3
|
||||||
inc Counter+1
|
inc Counter+1
|
||||||
beq .8
|
beq .4
|
||||||
|
|
||||||
.3 lda W5100.DR,x
|
.3 lda W5100.DR,x
|
||||||
sta (ZPTmpPTR),y
|
sta (ZPTmpPTR),y
|
||||||
@ -278,7 +274,7 @@ GETEVENT.RxOK >AR.SELECT S0.RX.RD
|
|||||||
inc ZPTmpPTR+1
|
inc ZPTmpPTR+1
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.8 >AR.SELECT S0.RX.RD
|
.4 >AR.SELECT S0.RX.RD
|
||||||
ldy W5100.DR,x Get HI
|
ldy W5100.DR,x Get HI
|
||||||
lda W5100.DR,x Get LO
|
lda W5100.DR,x Get LO
|
||||||
clc
|
clc
|
||||||
@ -294,38 +290,16 @@ GETEVENT.RxOK >AR.SELECT S0.RX.RD
|
|||||||
sta W5100.DR,x write LO
|
sta W5100.DR,x write LO
|
||||||
|
|
||||||
>AR.SELECT S0.CR
|
>AR.SELECT S0.CR
|
||||||
lda #$40 RECV
|
lda #W5100.AR.S0.CR.RCVD
|
||||||
sta W5100.DR,x
|
sta W5100.DR,x
|
||||||
|
|
||||||
ldy #S.IP.DST
|
.8 ldx #$ff hMem
|
||||||
lda (ZPTmpPTR),y
|
ldy #$ff PtrLO
|
||||||
|
lda #$ff PtrHI
|
||||||
.81 iny
|
|
||||||
and (ZPTmpPTR),y
|
|
||||||
cpy #S.IP.DST+3
|
|
||||||
bne .81 if EQ, CS
|
|
||||||
|
|
||||||
inc $ff = Broadcast ??
|
|
||||||
beq .82
|
|
||||||
clc not a broadcast
|
|
||||||
|
|
||||||
.82 lda #$00
|
|
||||||
ror
|
|
||||||
ldy #S.EVT.DATAHI
|
|
||||||
sta (pEvent),y
|
|
||||||
|
|
||||||
* clc cleared by ROR
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CLOSE jsr Reset
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GETINFO >LDYA L.DEVINFO
|
WRITEBLOCK >PULLW ZPTmpPTR
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
SEND >PULLW ZPTmpPTR
|
|
||||||
|
|
||||||
lda (ZPTmpPTR)
|
lda (ZPTmpPTR)
|
||||||
sec
|
sec
|
||||||
@ -341,20 +315,20 @@ SEND >PULLW ZPTmpPTR
|
|||||||
eor #$ff
|
eor #$ff
|
||||||
sta Counter+1
|
sta Counter+1
|
||||||
|
|
||||||
ldx DEVSLOTx8
|
ldx DEVSLOTx0
|
||||||
>AR.SELECT S0.TX.FSR
|
>AR.SELECT S0.TX.FSR
|
||||||
|
|
||||||
lda W5100.DR,x get send size HI
|
lda W5100.DR,x get send size HI
|
||||||
ldy W5100.DR,x LO
|
ldy W5100.DR,x LO
|
||||||
cpy RXTX.Size
|
cpy RXTX.Size
|
||||||
sbc RXTX.Size+1
|
sbc RXTX.Size+1
|
||||||
bcs SEND.READY
|
bcs WRITEBLOCK.1
|
||||||
|
|
||||||
lda #ERR.DEV.NOBUFFER
|
lda #ERR.DEV.NOBUFFER
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SEND.READY >AR.SELECT S0.DIPR
|
WRITEBLOCK.1 >AR.SELECT S0.DIPR
|
||||||
ldy #S.IP.DST
|
ldy #S.IP.DST
|
||||||
|
|
||||||
.1 lda (ZPTmpPTR),y
|
.1 lda (ZPTmpPTR),y
|
||||||
@ -414,17 +388,55 @@ SEND.READY >AR.SELECT S0.DIPR
|
|||||||
sta W5100.DR,x write LO
|
sta W5100.DR,x write LO
|
||||||
|
|
||||||
>AR.SELECT S0.CR
|
>AR.SELECT S0.CR
|
||||||
lda #$20 SEND
|
lda #W5100.AR.S0.CR.SEND
|
||||||
sta W5100.DR,x
|
sta W5100.DR,x
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SETIPCFG >STYA ZPTmpPTR
|
OPEN jsr CLOSE
|
||||||
|
|
||||||
ldx DEVSLOTx8
|
lda #W5100.MR.AI+W5100.MR.IND
|
||||||
|
sta W5100.MR,x
|
||||||
|
|
||||||
|
>AR.SELECT GAR
|
||||||
|
|
||||||
|
ldy #8 GAR,SUBR
|
||||||
|
|
||||||
|
.1 stz W5100.DR,x
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
* >AR.SELECT SHAR
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.2 lda MAC,y
|
||||||
|
sta W5100.DR,x
|
||||||
|
iny
|
||||||
|
cpy #6
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
* >AR.SELECT SIPR
|
||||||
|
|
||||||
|
ldy #4
|
||||||
|
|
||||||
|
.3 stz W5100.DR,x
|
||||||
|
dey
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
>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
|
||||||
|
|
||||||
|
bra CONTROL.OPEN
|
||||||
|
*--------------------------------------
|
||||||
|
CONTROL >STYA ZPTmpPTR
|
||||||
|
|
||||||
|
ldx DEVSLOTx0
|
||||||
|
|
||||||
>AR.SELECT S0.CR
|
>AR.SELECT S0.CR
|
||||||
lda #$10 CLOSE
|
lda #W5100.AR.S0.CR.CLOSE
|
||||||
sta W5100.DR,x
|
sta W5100.DR,x
|
||||||
|
|
||||||
.10 >AR.SELECT S0.SR
|
.10 >AR.SELECT S0.SR
|
||||||
@ -461,18 +473,18 @@ SETIPCFG >STYA ZPTmpPTR
|
|||||||
cpy #S.IPCFG.IP+4
|
cpy #S.IPCFG.IP+4
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
>AR.SELECT S0.MR
|
CONTROL.OPEN >AR.SELECT S0.MR
|
||||||
lda #W5100.AR.S0.MR.IPRAW+W5100.AR.S0.MR.MF
|
lda #W5100.AR.S0.MR.IPRAW+W5100.AR.S0.MR.MF
|
||||||
sta W5100.DR,x
|
sta W5100.DR,x
|
||||||
|
|
||||||
* >AR.SELECT S0.CR Implicit, next to S0.MR
|
>AR.SELECT S0.CR
|
||||||
lda #1 OPEN
|
lda #W5100.AR.S0.CR.OPEN
|
||||||
sta W5100.DR,x
|
sta W5100.DR,x
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Reset ldx DEVSLOTx8
|
CLOSE ldx DEVSLOTx0
|
||||||
lda #W5100.MR.RST
|
lda #W5100.MR.RST
|
||||||
sta W5100.MR,x
|
sta W5100.MR,x
|
||||||
|
|
||||||
@ -487,16 +499,19 @@ Reset ldx DEVSLOTx8
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CS.END
|
DRV.CS.END
|
||||||
DEVSLOTx8 .BS 1
|
DEVSLOTx0 .BS 1
|
||||||
RX.IP .BS 4
|
|
||||||
RXTX.Size .BS 2
|
|
||||||
Counter .BS 2
|
|
||||||
Offset .BS 2
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEVINFO .DA #S.DEVINFO.TYPE.NET
|
DEVSTAT .DA #0
|
||||||
DEVFLAGS .DA #S.DEVINFO.NET.FLAGS.ARPOFFLOAD+S.DEVINFO.NET.FLAGS.IPOFFLOAD
|
.BS 3 size
|
||||||
|
>PSTR "UtherNetII/W5100"
|
||||||
|
.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
|
MAC .BS 6
|
||||||
LINK.STATUS .DA #S.DEVINFO.NET.STATUS.OK+S.DEVINFO.NET.STATUS.FD+S.DEVINFO.NET.STATUS.100
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE DRV/UTHER2.AI.DRV.S
|
SAVE /A2OSX.SRC/DRV/UTHER2.AI.DRV.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -93,7 +93,7 @@ Dev.Detect >STYA Args
|
|||||||
>LDYA L.MSG.DETECT.KO
|
>LDYA L.MSG.DETECT.KO
|
||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
lda #$28 MLI.ERR.NODEV
|
lda #MLI.ERR.NODEV
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -354,7 +354,7 @@ WRITEBLOCK.1 ldy #S.ETH.SRCMAC+5
|
|||||||
sta W5100.DR,x write LO
|
sta W5100.DR,x write LO
|
||||||
|
|
||||||
>AR.SELECT S0.CR
|
>AR.SELECT S0.CR
|
||||||
lda #$20 SEND
|
lda #W5100.AR.S0.CR.SEND
|
||||||
sta W5100.DR,x
|
sta W5100.DR,x
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user