mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-19 23:29:29 +00:00
Kernel version 0.9 : LAN drivers, bugfix and optimization
This commit is contained in:
parent
f2a899c776
commit
d6aefbe613
@ -4,24 +4,23 @@ NEW
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
ECHO *** A2osX Startup Script ***
|
ECHO *** A2osX Startup Script ***
|
||||||
echo Working Directory:$CD
|
|
||||||
SET PS1='$PWD'
|
SET PS1='$PWD'
|
||||||
# Main Screen
|
# Main Screen
|
||||||
INSDRV CONSOLE.DRV
|
INSDRV CONSOLE.DRV
|
||||||
STARTPROC GETTY CON ${A2OSX}SBIN/LOGIN
|
|
||||||
# Serial Login
|
# Serial Login
|
||||||
#INSDRV SSC.DRV 9600,N,8,1,X
|
#INSDRV SSC.DRV 9600,N,8,1,X
|
||||||
INSDRV SSC.I.DRV 9600,N,8,1,X
|
INSDRV SSC.I.DRV 9600,N,8,1,X
|
||||||
|
STARTPROC GETTY CON ${A2OSX}SBIN/LOGIN
|
||||||
STARTPROC GETTY COM2 ${A2OSX}SBIN/LOGIN
|
STARTPROC GETTY COM2 ${A2OSX}SBIN/LOGIN
|
||||||
#INSDRV PIC.DRV
|
#INSDRV PIC.DRV
|
||||||
# Network Section
|
# Network Section
|
||||||
INSDRV UTHERNET.DRV 000E3A123456
|
INSDRV UTHERNET.DRV 000E3A123456
|
||||||
INSDRV UTHERNET2.DRV 0008DC123456
|
#INSDRV LANCEGS.DRV
|
||||||
#INSDRV UTHER2.AI.DRV 0008DC123456
|
#INSDRV UTHER2.AI.DRV 0008DC123456
|
||||||
INSDRV LANCEGS.DRV
|
#INSDRV UTHERNET2.DRV 0008DC123456
|
||||||
STARTPROC TCPIP
|
#STARTPROC TCPIP
|
||||||
STARTPROC DHCPCLNT
|
#STARTPROC DHCPCLNT
|
||||||
STARTPROC TELNETD
|
#STARTPROC TELNETD
|
||||||
#STARTPROC HTTPD
|
#STARTPROC HTTPD
|
||||||
#NFSMOUNT 192.168.1.5:/A2OSX /MNT/A2OSX
|
#NFSMOUNT 192.168.1.5:/A2OSX /MNT/A2OSX
|
||||||
#CIFSMOUNT 192.168.1.5:/MSSHARE /MNT/MSSHARE
|
#CIFSMOUNT 192.168.1.5:/MSSHARE /MNT/MSSHARE
|
||||||
|
@ -16,6 +16,8 @@ AUTO 6
|
|||||||
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPTmpPTR .EQ ZPDRV
|
ZPTmpPTR .EQ ZPDRV
|
||||||
|
Size .EQ ZPDRV+2
|
||||||
|
Counter .EQ ZPDRV+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -42,15 +44,9 @@ Dev.Detect >STYA Args
|
|||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldx #$70
|
ldx #$70
|
||||||
|
ldy #7
|
||||||
|
|
||||||
.1 txa IO based detection, avoid scanning in Disk Controller IO!!!!
|
.1 lda A2osX.SLOTS,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda A2osX.SLOTS,y
|
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda L91C96.BSR+1,x
|
lda L91C96.BSR+1,x
|
||||||
@ -62,6 +58,7 @@ Dev.Detect >STYA Args
|
|||||||
sec
|
sec
|
||||||
sbc #$10
|
sbc #$10
|
||||||
tax
|
tax
|
||||||
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.DETECT.KO
|
>LDYA L.MSG.DETECT.KO
|
||||||
@ -72,12 +69,6 @@ Dev.Detect >STYA Args
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.3 stx DEVSLOTx0
|
.3 stx DEVSLOTx0
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
lda #A2osX.SLOTS.NET
|
lda #A2osX.SLOTS.NET
|
||||||
sta A2osX.SLOTS,y
|
sta A2osX.SLOTS,y
|
||||||
|
|
||||||
@ -188,12 +179,18 @@ READBLOCK.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ
|
|||||||
asl if odd, CS
|
asl if odd, CS
|
||||||
|
|
||||||
lda L91C96.2.DATA,x get lo byte count
|
lda L91C96.2.DATA,x get lo byte count
|
||||||
sbc #5 compute FRAMELEN
|
sbc #5 compute Size
|
||||||
sta FRAMELEN
|
sta Size
|
||||||
|
eor #$ff
|
||||||
|
sta Counter
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda L91C96.2.DATA,x get hi byte count
|
lda L91C96.2.DATA,x get hi byte count
|
||||||
sbc #0
|
sbc #0
|
||||||
sta FRAMELEN+1
|
sta Size+1
|
||||||
|
eor #$ff
|
||||||
|
sta Counter+1
|
||||||
|
eor #$ff
|
||||||
|
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
@ -212,26 +209,33 @@ READBLOCK.RxOK lda #L91C96.2.PTR.RCVD+L91C96.2.PTR.AUTOI+L91C96.2.PTR.READ
|
|||||||
sty .8+3
|
sty .8+3
|
||||||
sta .8+5
|
sta .8+5
|
||||||
|
|
||||||
lda FRAMELEN
|
lda Size
|
||||||
sta (ZPTmpPTR)
|
sta (ZPTmpPTR)
|
||||||
ldy #1
|
ldy #1
|
||||||
lda FRAMELEN+1
|
lda Size+1
|
||||||
sta (ZPTmpPTR),y
|
sta (ZPTmpPTR),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
ldx DEVSLOTx0
|
ldx DEVSLOTx0
|
||||||
|
|
||||||
.2 jsr DecFrameLen
|
.2 inc Counter
|
||||||
|
bne .21
|
||||||
|
inc Counter+1
|
||||||
beq .4
|
beq .4
|
||||||
lda L91C96.2.DATA,x
|
|
||||||
|
.21 lda L91C96.2.DATA,x
|
||||||
sta (ZPTmpPTR),y
|
sta (ZPTmpPTR),y
|
||||||
iny
|
iny
|
||||||
bne .3
|
bne .3
|
||||||
inc ZPTmpPTR+1
|
inc ZPTmpPTR+1
|
||||||
.3 jsr DecFrameLen
|
|
||||||
|
.3 inc Counter
|
||||||
|
bne .31
|
||||||
|
inc Counter+1
|
||||||
beq .4
|
beq .4
|
||||||
lda L91C96.2.DATA,x
|
|
||||||
|
.31 lda L91C96.2.DATA,x
|
||||||
sta (ZPTmpPTR),y
|
sta (ZPTmpPTR),y
|
||||||
iny
|
iny
|
||||||
bne .2
|
bne .2
|
||||||
@ -254,7 +258,11 @@ WRITEBLOCK >STYA ZPTmpPTR
|
|||||||
sta L91C96.BSR,x
|
sta L91C96.BSR,x
|
||||||
|
|
||||||
lda (ZPTmpPTR)
|
lda (ZPTmpPTR)
|
||||||
sta FRAMELEN
|
sta Size
|
||||||
|
eor #$ff
|
||||||
|
sta Counter
|
||||||
|
eor #$ff
|
||||||
|
|
||||||
clc
|
clc
|
||||||
adc #6 3 WORDs more Status, len & Control
|
adc #6 3 WORDs more Status, len & Control
|
||||||
|
|
||||||
@ -263,7 +271,11 @@ WRITEBLOCK >STYA ZPTmpPTR
|
|||||||
|
|
||||||
.10 ldy #1
|
.10 ldy #1
|
||||||
lda (ZPTmpPTR),y
|
lda (ZPTmpPTR),y
|
||||||
sta FRAMELEN+1
|
sta Size+1
|
||||||
|
eor #$ff
|
||||||
|
sta Counter+1
|
||||||
|
eor #$ff
|
||||||
|
|
||||||
adc #0
|
adc #0
|
||||||
|
|
||||||
.1 ora #L91C96.2.MMUCR.ALLOC
|
.1 ora #L91C96.2.MMUCR.ALLOC
|
||||||
@ -301,31 +313,35 @@ WRITEBLOCK >STYA ZPTmpPTR
|
|||||||
stz L91C96.2.DATA,x write fake status word
|
stz L91C96.2.DATA,x write fake status word
|
||||||
stz L91C96.2.DATA,x
|
stz L91C96.2.DATA,x
|
||||||
|
|
||||||
lda FRAMELEN
|
lda Size
|
||||||
pha
|
pha
|
||||||
eor #$01
|
eor #$01
|
||||||
lsr
|
lsr
|
||||||
pla
|
pla
|
||||||
adc #$05 add 5 if odd, 6 if even
|
adc #$05 add 5 if odd, 6 if even
|
||||||
sta L91C96.2.DATA,x
|
sta L91C96.2.DATA,x
|
||||||
lda FRAMELEN+1
|
lda Size+1
|
||||||
adc #$00
|
adc #$00
|
||||||
sta L91C96.2.DATA,x
|
sta L91C96.2.DATA,x
|
||||||
|
|
||||||
ldy #2
|
ldy #2
|
||||||
|
|
||||||
.5 jsr DecFrameLen
|
.5 inc Counter
|
||||||
|
bne .51
|
||||||
|
inc Counter+1
|
||||||
beq .70
|
beq .70
|
||||||
lda (ZPTmpPTR),y
|
|
||||||
|
.51 lda (ZPTmpPTR),y
|
||||||
iny
|
iny
|
||||||
bne .6
|
bne .6
|
||||||
inc ZPTmpPTR+1
|
inc ZPTmpPTR+1
|
||||||
|
|
||||||
.6 pha
|
.6 inc Counter
|
||||||
jsr DecFrameLen
|
bne .61
|
||||||
|
inc Counter+1
|
||||||
beq .71
|
beq .71
|
||||||
pla
|
|
||||||
sta L91C96.2.DATA,x
|
.61 sta L91C96.2.DATA,x
|
||||||
lda (ZPTmpPTR),y
|
lda (ZPTmpPTR),y
|
||||||
sta L91C96.2.DATA,x
|
sta L91C96.2.DATA,x
|
||||||
iny
|
iny
|
||||||
@ -338,8 +354,7 @@ WRITEBLOCK >STYA ZPTmpPTR
|
|||||||
sta L91C96.2.DATA,x
|
sta L91C96.2.DATA,x
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.71 pla
|
.71 sta L91C96.2.DATA,x
|
||||||
sta L91C96.2.DATA,x
|
|
||||||
lda #%00100000 signal an extra (odd) byte
|
lda #%00100000 signal an extra (odd) byte
|
||||||
sta L91C96.2.DATA,x
|
sta L91C96.2.DATA,x
|
||||||
|
|
||||||
@ -421,19 +436,9 @@ CLOSE ldx DEVSLOTx0
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DecFrameLen lda FRAMELEN
|
|
||||||
bne .1
|
|
||||||
lda FRAMELEN+1
|
|
||||||
beq .8
|
|
||||||
dec FRAMELEN+1
|
|
||||||
.1 dec FRAMELEN
|
|
||||||
lda #1 Make something NZ
|
|
||||||
.8 rts
|
|
||||||
*--------------------------------------
|
|
||||||
DRV.CS.END
|
DRV.CS.END
|
||||||
DEVSLOTx0 .BS 1
|
DEVSLOTx0 .BS 1
|
||||||
USERMAC .BS 1
|
USERMAC .BS 1
|
||||||
FRAMELEN .BS 2
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEVSTAT .DA #0
|
DEVSTAT .DA #0
|
||||||
.BS 3 size
|
.BS 3 size
|
||||||
|
@ -182,14 +182,15 @@ READBLOCK.RTS rts
|
|||||||
|
|
||||||
READBLOCK.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
|
||||||
|
sta offset+1
|
||||||
ldy W5100.DR,x get the received ptr LO
|
ldy W5100.DR,x get the received ptr LO
|
||||||
|
sty offset
|
||||||
|
|
||||||
and /RXTX.MASK
|
and /RXTX.MASK
|
||||||
ora /RX.BASE
|
ora /RX.BASE
|
||||||
sta W5100.AR,x
|
sta W5100.AR,x
|
||||||
sta offset+1
|
|
||||||
tya
|
tya
|
||||||
sta W5100.AR+1,x
|
sta W5100.AR+1,x
|
||||||
sta offset
|
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
@ -278,9 +279,6 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
|
|||||||
lda Offset+1
|
lda Offset+1
|
||||||
adc RXTX.Size+1
|
adc RXTX.Size+1
|
||||||
|
|
||||||
and /RXTX.MASK
|
|
||||||
ora /RX.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
|
||||||
|
@ -44,15 +44,9 @@ Dev.Detect >STYA ARGS
|
|||||||
>SYSCALL CPrintFYA
|
>SYSCALL CPrintFYA
|
||||||
|
|
||||||
ldx #$70
|
ldx #$70
|
||||||
|
ldy #7
|
||||||
|
|
||||||
.1 txa IO based detection, avoid scanning in Disk Controller IO!!!!
|
.1 lda A2osX.SLOTS,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda A2osX.SLOTS,y
|
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda /PP.ID
|
lda /PP.ID
|
||||||
@ -73,6 +67,7 @@ Dev.Detect >STYA ARGS
|
|||||||
sec
|
sec
|
||||||
sbc #$10
|
sbc #$10
|
||||||
tax
|
tax
|
||||||
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.DETECT.KO
|
>LDYA L.MSG.DETECT.KO
|
||||||
@ -83,12 +78,6 @@ Dev.Detect >STYA ARGS
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.3 stx DEVSLOTx0
|
.3 stx DEVSLOTx0
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
lsr
|
|
||||||
tay
|
|
||||||
lda #A2osX.SLOTS.NET
|
lda #A2osX.SLOTS.NET
|
||||||
sta A2osX.SLOTS,y
|
sta A2osX.SLOTS,y
|
||||||
|
|
||||||
|
@ -181,14 +181,15 @@ READBLOCK ldx DEVSLOTx0
|
|||||||
|
|
||||||
READBLOCK.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
|
||||||
|
sta offset+1
|
||||||
ldy W5100.DR,x get the received ptr LO
|
ldy W5100.DR,x get the received ptr LO
|
||||||
|
sty offset
|
||||||
|
|
||||||
and /RXTX.MASK
|
and /RXTX.MASK
|
||||||
ora /RX.BASE
|
ora /RX.BASE
|
||||||
sta W5100.AR,x
|
sta W5100.AR,x
|
||||||
sta offset+1
|
|
||||||
tya
|
tya
|
||||||
sta W5100.AR+1,x
|
sta W5100.AR+1,x
|
||||||
sta offset
|
|
||||||
|
|
||||||
lda W5100.DR,x get RX.Size HI
|
lda W5100.DR,x get RX.Size HI
|
||||||
sta RXTX.Size+1
|
sta RXTX.Size+1
|
||||||
@ -247,9 +248,6 @@ READBLOCK.RxOK >AR.SELECT S0.RX.RD
|
|||||||
lda Offset+1
|
lda Offset+1
|
||||||
adc RXTX.Size+1
|
adc RXTX.Size+1
|
||||||
|
|
||||||
and /RXTX.MASK
|
|
||||||
ora /RX.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
|
||||||
|
@ -57,7 +57,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
lda #1 get PTR to ARG[1] (Driver name)
|
lda #1 get PTR to ARG[1] (Driver name)
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArgA
|
||||||
|
|
||||||
>SYSCALL LoadDrvYA YA = PTR to ARG[1...n]
|
>SYSCALL LoadDrvYA YA = PTR to ARG[1...n]
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda #0 success, but....
|
lda #0 success, but....
|
||||||
|
@ -52,7 +52,7 @@ K.GetMem >PULLB MemMgr.ReqFlags store requested flags
|
|||||||
bcc .10
|
bcc .10
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.10 >STAX MemMgr.ReqSize
|
.10 >STAX MemMgr.ReqSize
|
||||||
|
|
||||||
>LDYAI MemMgr.Table
|
>LDYAI MemMgr.Table
|
||||||
>STYA ZPMemMgrSPtr
|
>STYA ZPMemMgrSPtr
|
||||||
|
Loading…
x
Reference in New Issue
Block a user