mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-27 00:30:55 +00:00
Kernel 0.94
This commit is contained in:
parent
d215bfbafe
commit
50438e6abf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -365,8 +365,9 @@ CS.RUN.LL.DISKII
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 ldx #0
|
||||
jsr CS.RUN.SeekToX
|
||||
.8
|
||||
* ldx #0
|
||||
* jsr CS.RUN.SeekToX
|
||||
|
||||
>PUSHW L.MSG.CRLF
|
||||
>PUSHBI 0
|
||||
|
@ -279,20 +279,6 @@ OPEN.I jsr CLOSE
|
||||
lda #W5100.MR.PB+W5100.MR.AI+W5100.MR.IND
|
||||
sta W5100.MR,x
|
||||
|
||||
>AR.SELECT SHAR
|
||||
ldy #0
|
||||
|
||||
.1 lda DCB+S.DCB.NIC.MAC,y
|
||||
sta W5100.DR,x
|
||||
iny
|
||||
cpy #6
|
||||
bne .1
|
||||
|
||||
>AR.SELECT RMSR
|
||||
lda #%00100101 ICMP=2k,UDP=2k,TCP=4k,0k
|
||||
sta W5100.DR,x ...for Socket RX Buffers
|
||||
sta W5100.DR,x ...for Socket TX Buffers
|
||||
|
||||
>AR.SELECT GAR
|
||||
|
||||
ldy #0
|
||||
@ -313,7 +299,16 @@ OPEN.I jsr CLOSE
|
||||
cpy #4
|
||||
bne .3
|
||||
|
||||
>AR.SELECT SIPR
|
||||
* >AR.SELECT SHAR
|
||||
ldy #0
|
||||
|
||||
.1 lda DCB+S.DCB.NIC.MAC,y
|
||||
sta W5100.DR,x
|
||||
iny
|
||||
cpy #6
|
||||
bne .1
|
||||
|
||||
* >AR.SELECT SIPR
|
||||
|
||||
ldy #0
|
||||
|
||||
@ -323,15 +318,20 @@ OPEN.I jsr CLOSE
|
||||
cpy #4
|
||||
bne .4
|
||||
|
||||
>AR.SELECT RMSR
|
||||
lda #%00100101 ICMP=2k,UDP=2k,TCP=4k,0k
|
||||
sta W5100.DR,x ...for Socket RX Buffers
|
||||
sta W5100.DR,x ...for Socket TX Buffers
|
||||
|
||||
lda /W5100.AR.S0.MR
|
||||
sta Sn.IO
|
||||
|
||||
ldy #S.IP.PROTOCOL.ICMP
|
||||
ldy #S.IP.PROTOCOL.UDP
|
||||
jsr OPEN.SnY
|
||||
|
||||
inc Sn.IO
|
||||
|
||||
ldy #S.IP.PROTOCOL.UDP
|
||||
ldy #S.IP.PROTOCOL.ICMP
|
||||
jsr OPEN.SnY
|
||||
|
||||
inc Sn.IO
|
||||
@ -412,7 +412,7 @@ READ php
|
||||
jmp READWRITE.NODATA
|
||||
|
||||
.1 lda Sn.IP.PROTOCOL,y
|
||||
sta .15+1
|
||||
sta FRM.HDR.PROTO
|
||||
lda Sn.RX.BASE,y
|
||||
sta Sn.BASE
|
||||
lda Sn.RXTX.MASK,y
|
||||
@ -469,7 +469,16 @@ READ php
|
||||
bcc .11
|
||||
inc RXTX.Size+1
|
||||
|
||||
.11 >LDYA BUF.Size
|
||||
.11 lda RXTX.Size
|
||||
clc
|
||||
adc #S.IP-S.ETH.EII
|
||||
sta FRM.HDR.IPLEN+1
|
||||
|
||||
lda RXTX.Size+1
|
||||
adc /S.IP-S.ETH.EII
|
||||
sta FRM.HDR.IPLEN
|
||||
|
||||
>LDYA BUF.Size
|
||||
>SYSCALL2 getmem
|
||||
bcc .14
|
||||
|
||||
@ -484,28 +493,32 @@ READ php
|
||||
dey
|
||||
pla
|
||||
sta (ZPIOCTL),y
|
||||
|
||||
ldy #S.ETH.EII.TYPE
|
||||
|
||||
.15 lda FRM.HDR-S.ETH.EII.TYPE,y
|
||||
sta (ZPBufPtr),y
|
||||
iny
|
||||
cpy #S.ETH.EII.TYPE+FRM.HDR.LEN
|
||||
bne .15
|
||||
|
||||
.15 lda #$ff SELF MODIFIED
|
||||
* ldy #S.IP.PROTOCOL
|
||||
* sta (ZPBufPtr),y
|
||||
ldx #3
|
||||
ldy #S.IP.SRC+3
|
||||
|
||||
* ldx #3
|
||||
* ldy #S.IP.SRC+3
|
||||
.12 lda RX.IP,x
|
||||
sta (ZPBufPtr),y
|
||||
dey
|
||||
dex
|
||||
bpl .12
|
||||
|
||||
*.12 lda RX.IP,x
|
||||
* sta (ZPBufPtr),y
|
||||
* dey
|
||||
* dex
|
||||
* bpl .12
|
||||
ldx #3
|
||||
ldy #S.IP.DST+3
|
||||
|
||||
* ldx #3
|
||||
* ldy #S.IP.DST+3
|
||||
|
||||
*.13 lda DCB+S.DCB.NIC.IP,x
|
||||
* sta (ZPBufPtr),y
|
||||
* dey
|
||||
* dex
|
||||
* bpl .13
|
||||
.13 lda DCB+S.DCB.NIC.IP,x
|
||||
sta (ZPBufPtr),y
|
||||
dey
|
||||
dex
|
||||
bpl .13
|
||||
|
||||
ldy #S.IP
|
||||
|
||||
@ -677,11 +690,13 @@ GET.IOCTLBUFPTR >STYA ZPIOCTL
|
||||
*--------------------------------------
|
||||
DRV.CS.END
|
||||
Sn.cnt .EQ 3
|
||||
Sn.IP.PROTOCOL .DA #S.IP.PROTOCOL.ICMP,#S.IP.PROTOCOL.UDP,#S.IP.PROTOCOL.TCP
|
||||
.LIST ON
|
||||
Sn.IP.PROTOCOL .DA #S.IP.PROTOCOL.UDP,#S.IP.PROTOCOL.ICMP,#S.IP.PROTOCOL.TCP
|
||||
Sn.IO.BASE .DA /W5100.AR.S0.MR,/W5100.AR.S1.MR,/W5100.AR.S2.MR
|
||||
Sn.TX.BASE .DA /TX.BASE,/TX.BASE+$800,/TX.BASE+$1000
|
||||
Sn.RX.BASE .DA /RX.BASE,/RX.BASE+$800,/RX.BASE+$1000
|
||||
Sn.RXTX.MASK .DA /$7FF,/$FFF,/$1FFF 2k,2k,4k
|
||||
Sn.RXTX.MASK .DA /$7FF,/$7FF,/$FFF 2k-1,2k-1,4k-1
|
||||
.LIST OFF
|
||||
DEVSLOTx0 .BS 1
|
||||
*--------------------------------------
|
||||
DIB .DA #0
|
||||
@ -700,6 +715,18 @@ DCB .DA #S.DCB.T.NIC
|
||||
.DA #255,#255,#255,#255 MASK
|
||||
.DA #0,#0,#0,#0 GW
|
||||
*--------------------------------------
|
||||
FRM.HDR .HS 0800 S.ETH.EII.TYPE
|
||||
.HS 4500
|
||||
FRM.HDR.IPLEN .BS 2 TOTAL LEN
|
||||
.DA 0 ID
|
||||
.DA 0 FLAGS
|
||||
.DA #64 TTL
|
||||
FRM.HDR.PROTO .BS 1 IP.PROTO
|
||||
.DA 0 CHECKSUM
|
||||
FRM.HDR.LEN .EQ *-FRM.HDR
|
||||
*FRM.HDR.SRC .BS 4 IP.SRC
|
||||
* .BS 4 IP.DST
|
||||
*--------------------------------------
|
||||
DRV.END
|
||||
MAN
|
||||
SAVE usr/src/drv/uther2.ai.drv.s
|
||||
|
@ -97,8 +97,8 @@ L59BD ldx A2L
|
||||
*--------------------------------------
|
||||
* read/write a track/sector
|
||||
|
||||
regrwts ldy #$01 retry count
|
||||
sty XRW.Recalibrate only one recalibrate per call
|
||||
regrwts ldy #3
|
||||
sty XRW.RecalibrateCnt
|
||||
sta XRW.ReqSector
|
||||
|
||||
* now check if the motor is on, then start it
|
||||
@ -167,7 +167,7 @@ L538E lda A4L get command #
|
||||
bcs L5398 must prenibblize for write
|
||||
|
||||
jsr XRW.PreNibble
|
||||
|
||||
*--------------------------------------
|
||||
L5398 ldy #64
|
||||
sty XRW.RetryCnt
|
||||
|
||||
@ -177,66 +177,44 @@ L539D jsr XRW.ReadAddr read next address field.
|
||||
L53A4 dec XRW.RetryCnt one less chance.
|
||||
bpl L539D branch to retry.
|
||||
|
||||
lda #MLI.E.IO anticipate a bad drive error.
|
||||
dec XRW.Recalibrate can only recalibrate once.
|
||||
bne hndlerr
|
||||
XRW.Recalibrate lda #MLI.E.IO anticipate a bad drive error.
|
||||
dec XRW.RecalibrateCnt can only recalibrate once.
|
||||
bmi hndlerr
|
||||
|
||||
lda XRW.CurrentTrack
|
||||
pha save track
|
||||
|
||||
clc
|
||||
adc #8 pretend track is 12 > curtrk
|
||||
|
||||
ldy #64
|
||||
sty XRW.RetryCnt reset retries to 64 max.
|
||||
bra L53CC always.
|
||||
lda #54
|
||||
ldy XRW.UnitIndex
|
||||
sta XRW.D2Trk-1,y
|
||||
lda #0
|
||||
jsr XRW.Seek
|
||||
bra L5398
|
||||
|
||||
* have now read an address field. make sure this is
|
||||
* the correct track, sector and volume.
|
||||
|
||||
L53BE ldy XRW.AddrField.T
|
||||
cpy XRW.CurrentTrack
|
||||
L53BE jsr XRW.DEBUG
|
||||
|
||||
lda XRW.AddrField.T
|
||||
cmp XRW.ReqTrack
|
||||
beq L53D5 ok
|
||||
|
||||
tya
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$30
|
||||
sta $724
|
||||
pla
|
||||
ora #$30
|
||||
sta $725
|
||||
lda XRW.CurrentTrack
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$B0
|
||||
sta $726
|
||||
pla
|
||||
ora #$B0
|
||||
sta $727
|
||||
lda XRW.AddrField.V
|
||||
ldy XRW.UnitIndex
|
||||
cmp XRW.D2VolNum-1,y
|
||||
bne XRW.Recalibrate
|
||||
|
||||
* recalibrating from this track
|
||||
|
||||
lda XRW.CurrentTrack preserve destination track
|
||||
pha
|
||||
tya
|
||||
|
||||
L53CC ldy XRW.UnitIndex get index to drive #
|
||||
lda XRW.AddrField.T
|
||||
sta XRW.D2Trk-1,y set the slot dependent track location
|
||||
|
||||
pla
|
||||
lda XRW.ReqTrack
|
||||
|
||||
jsr XRW.Seek
|
||||
bra L539D
|
||||
bra L5398
|
||||
|
||||
* drive is on right track, check sector
|
||||
L53D5 lda XRW.AddrField.V
|
||||
ldy XRW.UnitIndex
|
||||
sta XRW.D2VolNum-1,y
|
||||
|
||||
L53D5 lda XRW.AddrField.S is this the right sector ?
|
||||
lda XRW.AddrField.S is this the right sector ?
|
||||
cmp XRW.ReqSector
|
||||
bne L53A4 no, try another sector.
|
||||
|
||||
@ -754,17 +732,12 @@ L57CD pla place last byte into user buffer
|
||||
sta (buf),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
* fast seek subroutine
|
||||
* A = desired track
|
||||
* XRW.CurrentTrack = current rack
|
||||
*
|
||||
* montimel,h are incremented by the # of 100us quantums required by seek for motor on time overlap.
|
||||
* variables used: XRW.CurrentTrack, A2L, montimel, montimeh
|
||||
* A = target track
|
||||
*--------------------------------------
|
||||
XRW.Seek ldx XRW.UnitIndex
|
||||
|
||||
pha save target track
|
||||
XRW.Seek pha save target track
|
||||
|
||||
ldx XRW.UnitIndex
|
||||
|
||||
jsr XRW.Trk2Qtrk
|
||||
sta XRW.TargetQTrack
|
||||
|
||||
@ -774,7 +747,6 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
sta XRW.CurrentQTrack
|
||||
|
||||
pla
|
||||
sta XRW.CurrentTrack
|
||||
sta XRW.D2Trk-1,x will be current track at the end
|
||||
|
||||
ldy #0
|
||||
@ -951,16 +923,57 @@ L56E6 lda IO.D2.RData,x first bit-slip nibl
|
||||
cmp #$DE
|
||||
bne rderr
|
||||
|
||||
lda XRW.AddrField.V
|
||||
|
||||
ldy XRW.UnitIndex
|
||||
sta XRW.D2VolNum-1,y
|
||||
|
||||
clc normal read ok
|
||||
rts
|
||||
|
||||
rderr sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
XRW.DEBUG lda XRW.AddrField.T
|
||||
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr .7
|
||||
sta $724
|
||||
|
||||
pla
|
||||
jsr .7
|
||||
sta $725
|
||||
|
||||
lda XRW.ReqTrack
|
||||
pha
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
jsr .7
|
||||
sta $726
|
||||
|
||||
pla
|
||||
jsr .7
|
||||
sta $727
|
||||
|
||||
lda XRW.AddrField.T
|
||||
cmp XRW.ReqTrack
|
||||
bne .6
|
||||
|
||||
lda #$A0
|
||||
sta $723
|
||||
rts
|
||||
|
||||
.6 lda #'!'
|
||||
sta $723
|
||||
rts
|
||||
|
||||
.7 and #$0F
|
||||
ora #$B0
|
||||
cmp #"9"+1
|
||||
bcc .9
|
||||
adc #6
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
.LIST ON
|
||||
XRW.FREE .EQ $D540-*
|
||||
@ -986,7 +999,7 @@ XRW.UnitIndex .HS 00
|
||||
XRW.LastUnitUsed .HS 00
|
||||
.HS 080C
|
||||
* .HS FF
|
||||
XRW.Recalibrate .HS 00
|
||||
XRW.RecalibrateCnt .HS 00
|
||||
.HS 101418
|
||||
XRW.XX000000 .HS 008040C0 used in fast prenib as lookup for 2-bit quantities.
|
||||
* .HS FFFF
|
||||
@ -999,8 +1012,7 @@ XRW.montimeh .HS 00
|
||||
XRW.ReqTrack .HS 00
|
||||
XRW.ReqSector .HS 00
|
||||
.HS 383C4044484C
|
||||
* .HS FF
|
||||
XRW.CurrentTrack .HS 00
|
||||
.HS FF
|
||||
.HS 5054585C606468
|
||||
XRW.00XX0000 .HS 00201030 used in fast prenib.
|
||||
XRW.EndDataMark .HS DEAAEB table using 'unused' nibbles ($C4,$C5,$C6,$C7)
|
||||
|
@ -6,7 +6,7 @@ NEW
|
||||
.TF sbin/networkd
|
||||
*--------------------------------------
|
||||
LIB.MAX .EQ 4
|
||||
DBG .EQ 1
|
||||
DBG .EQ 0
|
||||
*--------------------------------------
|
||||
.INB inc/macros.i
|
||||
.INB inc/a2osx.i
|
||||
@ -254,10 +254,10 @@ CS.RUN >PUSHB DevID
|
||||
|
||||
.22 >PUSHB (pBuf),y
|
||||
iny
|
||||
cpy #36
|
||||
cpy #50
|
||||
bne .22
|
||||
|
||||
>PUSHBI 36
|
||||
>PUSHBI 50
|
||||
>SYSCALL printf
|
||||
.FIN
|
||||
|
||||
@ -336,7 +336,8 @@ MSG.EXEC .AZ "NETWORKD:Running %s ...\r\n"
|
||||
ETCNETWORK .AZ "${BOOT}etc/network"
|
||||
.DO DBG=1
|
||||
MSG.DBG .AS "FRM %h%h%h%h%h%h.%h%h%h%h%h%h.%h%h\r\n"
|
||||
.AZ " %h%h.%h%h%h%h.%h%h%h%h.%h%h%h%h.%h%h%h%h.%h%h%h%h\r\n"
|
||||
.AS " %h%h.%h%h%h%h%h%h.%h%h%h%h %d.%d.%d.%d %d.%d.%d.%d\r\n"
|
||||
.AZ " %h%h%h%h%h%h%h%h.%h%h%h%h%h%h%h%h\r\n"
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
DevID .BS 1
|
||||
|
@ -1123,11 +1123,7 @@ TERMX.SETUP.L1X lda ZPDCBPtr
|
||||
TERMX.SETUP.L1X.SCR
|
||||
lda SCR.BASEL,x
|
||||
sta ZPScrBaseL1
|
||||
txa
|
||||
lsr
|
||||
and #$3
|
||||
ora #4
|
||||
* lda SCR.BASEH,x
|
||||
lda SCR.BASEH,x
|
||||
sta ZPScrBaseL1+1
|
||||
TERMX.SETUP.L1X.8
|
||||
rts
|
||||
@ -1298,11 +1294,7 @@ TERMX.COPY.XtoL1
|
||||
|
||||
lda SCR.BASEL,x
|
||||
sta ZPScrBaseL2
|
||||
* lda SCR.BASEH,x
|
||||
txa
|
||||
lsr
|
||||
and #$3
|
||||
ora #4
|
||||
lda SCR.BASEH,x
|
||||
sta ZPScrBaseL2+1
|
||||
sta SET80STORE
|
||||
sta SETPAGE2
|
||||
@ -1475,7 +1467,7 @@ REMAP.E0.FF .HS 5B4142434445464748495FA0DF544e4f
|
||||
.HS 50DF5253545556575F595a5b5c5d5e5f
|
||||
*--------------------------------------
|
||||
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
||||
*SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
||||
SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
|
||||
*--------------------------------------
|
||||
BUF.BASEL .DA #S.DCB.TTY+0
|
||||
.DA #S.DCB.TTY+80
|
||||
|
Loading…
x
Reference in New Issue
Block a user