diff --git a/.Floppies/A2OSX.BLANK.woz b/.Floppies/A2OSX.BLANK.woz index 3a156874..7fd0f7b3 100644 Binary files a/.Floppies/A2OSX.BLANK.woz and b/.Floppies/A2OSX.BLANK.woz differ diff --git a/.Floppies/A2OSX.BOOT.woz b/.Floppies/A2OSX.BOOT.woz index 50c1d1a3..ee0d164f 100644 Binary files a/.Floppies/A2OSX.BOOT.woz and b/.Floppies/A2OSX.BOOT.woz differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 81fbe186..533f8ca3 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index 49cb1f3b..b94558b5 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -96,7 +96,7 @@ L59BD ldx A2L sec rts *-------------------------------------- -regrwts ldy #1 +regrwts ldy #3 sty XRW.RecalibrateCnt sta XRW.ReqSector @@ -177,12 +177,18 @@ L539D jsr XRW.ReadAddr read next address field. L53A4 dec XRW.RetryCnt one less chance. bne L539D branch to retry. +* lda #"!" +* sta $720 + XRW.Recalibrate lda #MLI.E.IO anticipate a bad drive error. dec XRW.RecalibrateCnt bmi hndlerr - lda #41 + jsr XRW.DEBUG + ldy XRW.UnitIndex + + lda #41 sta XRW.D2Trk-1,y lda #0 @@ -191,30 +197,23 @@ XRW.Recalibrate lda #MLI.E.IO anticipate a bad drive error. jsr XRW.Seek bra L5398 -L53BE lda XRW.ReqTrack - cmp XRW.AddrField.T - beq L53D5 - - jsr XRW.DEBUG - >DEBUG - ldy XRW.UnitIndex +L53BE ldy XRW.UnitIndex lda XRW.AddrField.V - cmp XRW.D2VolNum-1,y - bne XRW.Recalibrate + sta XRW.D2VolNum-1,y lda XRW.AddrField.T sta XRW.D2Trk-1,y + + cmp XRW.ReqTrack + beq L53D5 lda XRW.ReqTrack + jsr XRW.Seek bra L5398 *-------------------------------------- -L53D5 lda XRW.AddrField.V - ldy XRW.UnitIndex - sta XRW.D2VolNum-1,y - - lda XRW.AddrField.S is this the right sector ? +L53D5 lda XRW.AddrField.S is this the right sector ? cmp XRW.ReqSector bne L53A4 no, try another sector. @@ -563,7 +562,10 @@ wnibl sta IO.D2.WLoad,x (5) nibl write *-------------------------------------- XRW.Wait25600usec lda #0 - + .HS 2C BIT ABS +XRW.WaitSeekTime + lda #IO.D2.SeekTime + XRW.Wait100usecA phx (3) @@ -770,8 +772,10 @@ XRW.Seek pha save target track bcc .5 one QT remaining lda XRW.CurrentQTrack + inc inc + bra .3 * Current > Target, must move out @@ -780,9 +784,10 @@ XRW.Seek pha save target track bcs .6 one QT remaining lda XRW.CurrentQTrack + dec -.3 and #$FE from QT1 or QT3 +.3 and #$FE sta XRW.CurrentQTrack @@ -794,15 +799,15 @@ XRW.Seek pha save target track lda IO.D2.Ph0Off,y - lda #IO.D2.SeekTime - jsr XRW.Wait100usecA + + jsr XRW.WaitSeekTime .4 lda IO.D2.Ph0On,x txa tay - lda #IO.D2.SeekTime - jsr XRW.Wait100usecA + + jsr XRW.WaitSeekTime bra .1 * Last QTrack @@ -813,23 +818,20 @@ XRW.Seek pha save target track bra .7 .6 tya - +* >DEBUG * sec adc #5 .7 and #$f6 tax -* lda IO.D2.Ph0Off,y - lda #IO.D2.SeekTime - jsr XRW.Wait100usecA + jsr XRW.WaitSeekTime -* lda IO.D2.Ph0On,y lda IO.D2.Ph0On,x - lda #IO.D2.SeekTime - jsr XRW.Wait100usecA + + jsr XRW.WaitSeekTime jsr XRW.Wait25600usec