diff --git a/.Floppies/A2OSX.BLANK.woz b/.Floppies/A2OSX.BLANK.woz index d282e326..930da88a 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 046781a6..42a8fc10 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 043491d5..cbeec918 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/.Floppies/A2OSX.TEST.po b/.Floppies/A2OSX.TEST.po index 92857d3f..73f4fa86 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/INC/IO.D2.I.txt b/INC/IO.D2.I.txt index 2175dc53..4ad7d7a6 100644 --- a/INC/IO.D2.I.txt +++ b/INC/IO.D2.I.txt @@ -3,7 +3,7 @@ NEW *-------------------------------------- IO.D2.SeekTimeR .EQ 160 LIBBLKDEV Recalibration IO.D2.SeekTimeF .EQ 85 LIBBLKDEV Track Formatter -IO.D2.SeekTimeB .EQ 40 LIBBLKDEV Boot Block +IO.D2.SeekTimeB .EQ 85 LIBBLKDEV Boot Block IO.D2.SeekTimeP .EQ 40 ProDOS.FX initial IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128 *-------------------------------------- diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index 67e07791..1b06efbe 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -134,6 +134,7 @@ XDOS.devmgr php do not allow interrupts. inx lda buf is buffer page aligned (nn00) ? beq .2 branch if it is + inx else account for 3-page straddle .2 jsr vldbuf1 make sure user buffer is not @@ -638,7 +639,7 @@ volfound .DO LOWERCASE=1 lda VCBs+VCB.OFCNT,x it has, are there active files? bne H34AA branch if volume is currently busy. -H349E jsr logvcb1 go log it in. +H349E jsr XDOS.VCBMountAtX bcs olinerr1 branch if there is a problem. lda #MLI.E.DUPVOL anticipate a duplicate active volume @@ -646,7 +647,7 @@ H349E jsr logvcb1 go log it in. bmi olinerr1 branch if so. H34AA ldx vcbptr - jsr cmpvcb does vol read compare with logged vol? + jsr XDOS.VCBCmpGBUF does vol read compare with logged vol? lda #MLI.E.DSKSWIT anticipate wrong volume mounted. bcc H34D0 branch if ok. diff --git a/ProDOS.FX/ProDOS.S.XDOS.B.txt b/ProDOS.FX/ProDOS.S.XDOS.B.txt index b8da27f9..c26b4ac3 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.B.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.B.txt @@ -483,7 +483,7 @@ L3A16 lda #$02 go read root dir into gbuf .FIN bcs L39E2 ignore if unable to read. - jsr logvcb go log in volume name. + jsr XDOS.VCBMount bcs L39E2 look at next if non-xdos disk mounted. jsr XDOS.CheckVolName is this the volume ? @@ -526,7 +526,7 @@ XDOS.FindVCBForDevNum ldx vcbptr get found free if any tya any free vcb's available? - bpl .8 yes, exit withX = vcbptr + bpl .8 yes, exit with X = vcbptr lda #VCB0 look for an entry to kick out @@ -580,14 +580,15 @@ L3A95 cmp pathbuf,y XDOS.CheckVolName.RTS rts *-------------------------------------- -logvcb ldx vcbptr previously logged in volume? +XDOS.VCBMount ldx vcbptr previously logged in volume? lda VCBs,x (acc = 0?) - beq logvcb1 no, go prepare vcb. + beq XDOS.VCBMountAtX no, go prepare vcb. - jsr cmpvcb does vcb match vol read? + jsr XDOS.VCBCmpGBUF does vcb match vol read? bcc XDOS.CheckVolName.RTS yes, do not disturb. -logvcb1 ldy #VCB zero out vcb entry +XDOS.VCBMountAtX + ldy #VCB zero out vcb entry L3AB2 stz VCBs,x inx @@ -642,7 +643,7 @@ tsterr lda #MLI.E.NOTPRODOS not tree or dir, unrecognized type sec rts *-------------------------------------- -cmpvcb lda gbuf+4 with name in directory. +XDOS.VCBCmpGBUF lda gbuf+4 with name in directory. and #$0F cmp VCBs,x are they the same length? stx xvcbptr (see rev note #23) @@ -671,7 +672,7 @@ cmpvcb lda gbuf+4 with name in directory. tstdupvol lda #VCB0 check for other logged in volumes with the same name. L3B2C tax - jsr cmpvcb + jsr XDOS.VCBCmpGBUF bcs L3B41 if no match. lda VCBs+VCB.OFCNT,x test for any open files. diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index cb99ce2d..e1681663 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -206,7 +206,7 @@ regrwts ldy #1 sta XRW.D2VolNum-1,y .30 jsr XRW.Seek - bra .1 + bra .3 .4 cmp XRW.ReqTrack beq .5 diff --git a/ProDOS.FX/ProDOS.S.txt b/ProDOS.FX/ProDOS.S.txt index 8ddf5a8d..400b7d31 100644 --- a/ProDOS.FX/ProDOS.S.txt +++ b/ProDOS.FX/ProDOS.S.txt @@ -127,7 +127,7 @@ op_buf .EQ $1C00 open file buffer (selector) sysentry .EQ $2000 .SYS file load address xfer .EQ $C314 - +*-------------------------------------- pathbuf .EQ $D700 XDOS.ClockDrv .EQ $D742 prefixbuf .EQ $D742+125 @@ -137,10 +137,14 @@ FCB.ID .EQ 0 FCB.DEVID .EQ 1 + + + FCB.STYPE .EQ 7 FCB.F .EQ 8 FCB.F.STMOD .EQ %00001000 FCB.F.UMOD .EQ %00010000 +FCB.F.DBLKMOD .EQ %01000000 FCB.F.IBLKMOD .EQ %10000000 FCB.ACCESS .EQ 9 FCB.NLBYTE .EQ 10 @@ -151,8 +155,11 @@ FCB.DBLK .EQ 16 2 bytes FCB.MARK .EQ 18 3 bytes FCB.EOF .EQ 21 3 bytes FCB.UBLK .EQ 24 2 bytes + FCB.FLEVEL .EQ 27 FCB.DIRTY .EQ 28 + + FCB.NLMASK .EQ 31 * FCB .EQ 32 diff --git a/SBIN/GUI.S.txt b/SBIN/GUI.S.txt index d7b3d806..2a852461 100644 --- a/SBIN/GUI.S.txt +++ b/SBIN/GUI.S.txt @@ -121,7 +121,7 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. bcs CS.QUIT.RTS sta hWND - >PUSHA + >PUSHA A = hWND >PUSHBI S.WND.TITLE >PUSHW L.WND.TITLE >LIBCALL hLIBGUI,LIBGUI.WND.SetProp @@ -140,7 +140,7 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F. >LIBCALL hLIBGUI,LIBGUI.HideCursor lda hWND - >LIBCALL hLIBGUI,LIBGUI.WND.Show A = hWND + >LIBCALL hLIBGUI,LIBGUI.WND.Show >LIBCALL hLIBGUI,LIBGUI.ShowCursor clc