mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-25 20:33:13 +00:00
Kernel 0.94
This commit is contained in:
parent
d3deb1b49c
commit
aae9da892e
Binary file not shown.
BIN
.Floppies/A2OSX.BOOTHD.woz
Normal file
BIN
.Floppies/A2OSX.BOOTHD.woz
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -200,7 +200,7 @@ CS.RUN.Format jsr CS.RUN.GetDevStatus
|
||||
|
||||
bit bVerify
|
||||
bpl .8
|
||||
|
||||
|
||||
jsr CS.RUN.LL.DISKII.V
|
||||
bcs .9
|
||||
|
||||
@ -714,7 +714,7 @@ MSG.NOSIZE .AZ "Unable to get media size."
|
||||
MSG.INIT .AZ "Formatting %s, Volname:%s\r\n"
|
||||
MSG.LL .AZ "Low Level Format %D Blks\r\n"
|
||||
MSG.LLDISK2 .AZ "\rWriting Track %02d (%02d/%02d)..."
|
||||
MSG.VERIFY .AZ "Verifying Track %02d, Sector %02d, Block %05D..."
|
||||
MSG.VERIFY .AZ "Verifying Track %02d/%02d, Block %05D..."
|
||||
MSG.WRITECAT .AZ "Writing Catalog..."
|
||||
FMT.BLANK .AZ "BLANK%H%H"
|
||||
*--------------------------------------
|
||||
@ -739,11 +739,11 @@ Disk2.X .DA 320 BlkCnt
|
||||
.DA #0 AltBB
|
||||
.BS 2
|
||||
*--------------------------------------
|
||||
Disk2.H .DA 376 BlkCnt
|
||||
.DA #47 TrkCnt
|
||||
Disk2.H .DA 384 BlkCnt
|
||||
.DA #48 TrkCnt
|
||||
.DA #3 Stepping
|
||||
.DA #129 VolNum
|
||||
* .DA #141 QTrkCnt
|
||||
* .DA #144 QTrkCnt
|
||||
.DA #$80 AltBB
|
||||
.BS 2
|
||||
*--------------------------------------
|
||||
|
@ -2,7 +2,7 @@ NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration
|
||||
IO.D2.SeekTimeF .EQ 85 LIBBLKDEV Track Formatter
|
||||
IO.D2.SeekTimeF .EQ 125 LIBBLKDEV Track Formatter
|
||||
IO.D2.SeekTimeB .EQ 85 LIBBLKDEV Boot Block
|
||||
IO.D2.SeekTimeP .EQ 60 ProDOS.FX initial
|
||||
IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128
|
||||
|
@ -123,20 +123,22 @@ modboot ldy mods-1,x
|
||||
sta dent+1 to point at disk ii routines.
|
||||
lda #BB.ReadBlock get low addr (must be <$80)
|
||||
*--------------------------------------
|
||||
ndsk2 ldy #0 make sure y=0 again.
|
||||
cmp #$f9
|
||||
bcs bterr1 branch if not bootable device.
|
||||
ndsk2 sta dent save low adr of device call entry.
|
||||
|
||||
sta dent save low adr of device call entry.
|
||||
sty iobuff
|
||||
ldy #0
|
||||
|
||||
sty iobuff y=0
|
||||
sty idxl
|
||||
sty idxh y=0
|
||||
sty idxh
|
||||
sty idxp
|
||||
sty blok+1
|
||||
iny
|
||||
|
||||
iny y=1
|
||||
sty dcmd set read command.
|
||||
iny
|
||||
|
||||
iny y=2
|
||||
sty blok to read directory blocks
|
||||
|
||||
lda #$c 2-5 at $c00
|
||||
sta iobuff+1
|
||||
sta idxl+1
|
||||
@ -150,10 +152,6 @@ rddir jsr goread call read block routine.
|
||||
lda blok have all directory blocks been read?
|
||||
cmp #6
|
||||
bcc rddir loop if not.
|
||||
|
||||
lda sosid is it a prodos (sos) directory?
|
||||
ora sosid+1
|
||||
bterr1 bne booterr branch if not.
|
||||
*--------------------------------------
|
||||
lda #4 begin look-up with first entry past header.
|
||||
* bne nxdent1 branch always
|
||||
@ -302,11 +300,14 @@ BB.Seek lda BB.HdrTrk get track we're on
|
||||
jsr BB.Trk2Qtrk
|
||||
sta BB.TargetQTrack
|
||||
|
||||
.1 lda BB.CurrentQTrack
|
||||
lda BB.CurrentQTrack
|
||||
cmp BB.TargetQTrack
|
||||
beq BB.Read
|
||||
|
||||
.10 jsr BB.AllPhasesOff
|
||||
ldx BB.Slotn0 will do a ph0 off
|
||||
ldy BB.Slotn0
|
||||
|
||||
.1 jsr BB.PhasesOff
|
||||
|
||||
bcs .2
|
||||
|
||||
@ -343,40 +344,49 @@ BB.Seek lda BB.HdrTrk get track we're on
|
||||
.3 dec
|
||||
|
||||
and #6
|
||||
ora BB.Slotn0
|
||||
ora Slotn0
|
||||
bcc .4
|
||||
|
||||
* move out : invert 2 phases
|
||||
|
||||
phx
|
||||
tax
|
||||
pla
|
||||
|
||||
.4 tay
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0On,y
|
||||
|
||||
jsr BB.WaitSeekTime
|
||||
lda IO.D2.Ph0On,y
|
||||
nop
|
||||
nop
|
||||
|
||||
lda #IO.D2.SeekTimeB
|
||||
jsr BB.Wait
|
||||
|
||||
lda BB.CurrentQTrack
|
||||
cmp BB.TargetQTrack
|
||||
bne .10
|
||||
bne .1
|
||||
|
||||
.8 jsr BB.Wait25600usec
|
||||
jsr BB.AllPhasesOff
|
||||
lda #0
|
||||
jsr BB.Wait
|
||||
|
||||
jsr BB.PhasesOff
|
||||
bcs BB.Read ALWAYS
|
||||
*--------------------------------------
|
||||
BB.AllPhasesOff ldy #4
|
||||
ldx BB.Slotn0
|
||||
BB.PhasesOff bit IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
|
||||
.1 bit IO.D2.Ph0Off,x
|
||||
inx
|
||||
inx
|
||||
dey
|
||||
bne .1
|
||||
ldx IO.D2.Ph0Off,y
|
||||
nop
|
||||
nop
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
BB.WaitSeekTime lda #IO.D2.SeekTimeB
|
||||
.HS 2C BIT ABS
|
||||
BB.Wait25600usec
|
||||
lda #0
|
||||
|
||||
phx (3)
|
||||
BB.Wait phx (3)
|
||||
|
||||
.1 ldx #18 (2)
|
||||
|
||||
@ -408,15 +418,14 @@ BB.Trk2Qtrk.RTS rts
|
||||
*--------------------------------------
|
||||
BB.Read ldx BB.Slotn0
|
||||
|
||||
ldy #$7f allow 127 mistakes.
|
||||
sty BB.RetryCnt
|
||||
stz BB.RetryCnt
|
||||
php
|
||||
|
||||
tryread plp fix stack.
|
||||
|
||||
rdhead sec anticipate error.
|
||||
dec BB.RetryCnt if = 0 then give up!
|
||||
beq BB.Trk2Qtrk.RTS branch if can't fine/read sector.
|
||||
inc BB.RetryCnt if = 0 then give up!
|
||||
bmi BB.Trk2Qtrk.RTS branch if can't fine/read sector.
|
||||
|
||||
clc indicate reading header.
|
||||
rddata php carry set if reading sector.
|
||||
|
@ -120,14 +120,17 @@ D2MoveHead >PULLB MoveTo
|
||||
|
||||
.4 tay
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0On,y
|
||||
nop
|
||||
nop
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
|
||||
lda #IO.D2.SeekTimeF
|
||||
jsr D2.Wait100usecA
|
||||
|
||||
bra .1
|
||||
|
||||
.7 jsr D2.Wait25600usec
|
||||
|
@ -40,7 +40,7 @@ XDOS.FindFile jsr lookfile see if file exists
|
||||
rts
|
||||
*--------------------------------------
|
||||
lookfile jsr preproot go find volume
|
||||
bcs fnderr
|
||||
bcs fnderr.RTS
|
||||
|
||||
bne lookfil0 branch if more than root
|
||||
|
||||
@ -77,7 +77,12 @@ phantm2 lda rootstuf-$10,y
|
||||
H37C2 lda #MLI.E.INVPATH bad path (carry set)
|
||||
rts
|
||||
*--------------------------------------
|
||||
errdir lda #MLI.E.BADDIR directory error
|
||||
fnderr sec
|
||||
fnderr.RTS rts
|
||||
*--------------------------------------
|
||||
lookfil0 stz nofree reset free entry indicator.
|
||||
|
||||
sec dir to be searched has header in this block.
|
||||
|
||||
L37C9 stz totent reset entry counter.
|
||||
@ -90,17 +95,10 @@ L37C9 stz totent reset entry counter.
|
||||
bcc L37E2 maybe, check hi count.
|
||||
bne L37EB no, read next directory block.
|
||||
|
||||
cmp entcnth has the last entry been looked at?
|
||||
lda entcnth has the last entry been looked at?
|
||||
beq errfnf yes, give 'file not found' error
|
||||
bne L37EB or branch always.
|
||||
|
||||
L37E2 dec entcnth should be at least one
|
||||
bra L37EB branch always...
|
||||
|
||||
errdir lda #MLI.E.BADDIR directory error
|
||||
fnderr sec
|
||||
rts
|
||||
|
||||
L37EB sta entcntl keep a running count.
|
||||
lda /gbuf reset indirect pointer
|
||||
sta zpt+1
|
||||
@ -119,7 +117,7 @@ L37FC ldx gbuf+3 acc has value for block# (low).
|
||||
.FIN
|
||||
bcc L37C9 if no error.
|
||||
rts return error in acc.
|
||||
|
||||
*--------------------------------------
|
||||
errfnf lda nofree was any free entry found?
|
||||
bne fnf0
|
||||
lda gbuf+2 test link
|
||||
|
@ -326,6 +326,9 @@ XDOS.UnpackGBuf jsr XDOS.Pack.Init
|
||||
clc make sure CC
|
||||
rts
|
||||
*--------------------------------------
|
||||
*XDOS.PackGBuf.Bitmap .BS 2
|
||||
XDOS.PackGBuf.Bitmap .EQ sos
|
||||
*--------------------------------------
|
||||
XDOS.PackGBuf jsr XDOS.Pack.Init
|
||||
|
||||
.1 lda (zpt)
|
||||
@ -384,7 +387,7 @@ XDOS.Pack.Init lda #4
|
||||
sta zpt+1
|
||||
|
||||
ldx h_maxent
|
||||
beq * DEBUG : should never happends
|
||||
* beq * DEBUG : should never happends
|
||||
rts
|
||||
*--------------------------------------
|
||||
XDOS.Pack.Next lda h_entln
|
||||
@ -396,9 +399,6 @@ XDOS.Pack.Next lda h_entln
|
||||
inc zpt+1
|
||||
|
||||
.8 rts
|
||||
|
||||
XDOS.PackGBuf.Bitmap .BS 2
|
||||
|
||||
.FIN
|
||||
*--------------------------------------
|
||||
XDOS.GetMark ldx fcbptr index to open fcb.
|
||||
|
@ -179,12 +179,12 @@ regrwts ldy #1
|
||||
|
||||
jsr XRW.PreNibble
|
||||
|
||||
.1 ldy #64
|
||||
sty XRW.RetryCnt
|
||||
|
||||
lda #$fe
|
||||
sta XRW.BadSeek
|
||||
|
||||
.1 ldy #64
|
||||
sty XRW.RetryCnt
|
||||
|
||||
.2 jsr XRW.ReadAddr read next address field.
|
||||
bcc .4 if CC, A = current track
|
||||
|
||||
@ -194,9 +194,11 @@ regrwts ldy #1
|
||||
dec XRW.RecalibrateCnt
|
||||
sec
|
||||
bmi .9
|
||||
|
||||
.DO XRWDBG=1
|
||||
jsr XRW.DEBUG
|
||||
.FIN
|
||||
|
||||
ldy XRW.UnitIndex
|
||||
|
||||
lda #41
|
||||
@ -205,8 +207,8 @@ regrwts ldy #1
|
||||
lda #0
|
||||
sta XRW.D2VolNum-1,y
|
||||
|
||||
.30 jsr XRW.Seek
|
||||
bra .3
|
||||
jsr XRW.Seek
|
||||
bra .1
|
||||
|
||||
.4 cmp XRW.ReqTrack
|
||||
beq .5
|
||||
@ -223,7 +225,8 @@ regrwts ldy #1
|
||||
sta XRW.D2SeekTime-1,x
|
||||
|
||||
.41 lda XRW.ReqTrack
|
||||
bra .30
|
||||
jsr XRW.Seek
|
||||
bra .3
|
||||
|
||||
.5 lda XRW.AddrField.S is this the right sector ?
|
||||
cmp XRW.ReqSector
|
||||
@ -834,14 +837,16 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
|
||||
.4 tay
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
lda IO.D2.Ph0On,y
|
||||
nop
|
||||
nop
|
||||
|
||||
lda IO.D2.Ph0On,x
|
||||
nop
|
||||
nop
|
||||
|
||||
jsr XRW.WaitSeekTime
|
||||
|
||||
bra .1
|
||||
|
||||
.7 jsr XRW.Wait25600usec
|
||||
@ -849,6 +854,7 @@ XRW.Seek ldx XRW.UnitIndex
|
||||
.8 bit IO.D2.Ph0Off,x
|
||||
nop
|
||||
nop
|
||||
|
||||
ldx IO.D2.Ph0Off,y
|
||||
nop
|
||||
nop
|
||||
|
Loading…
Reference in New Issue
Block a user