diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 0af9202a..d179403f 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 64d7af8f..92ca2d97 100644 Binary files a/.Floppies/A2OSX.TEST.po and b/.Floppies/A2OSX.TEST.po differ diff --git a/BIN/LS.S.txt b/BIN/LS.S.txt index f823b8c0..1745c543 100644 --- a/BIN/LS.S.txt +++ b/BIN/LS.S.txt @@ -644,8 +644,8 @@ CS.RUN.NewLine.1 lda #C.CR >SYSCALL putchar - bit bCRLF - bpl CS.RUN.NewLine.8 +* bit bCRLF +* bpl CS.RUN.NewLine.8 lda #C.LF >SYSCALL putchar diff --git a/INC/MLI.I.txt b/INC/MLI.I.txt index b9e36f28..6cf18fd6 100644 --- a/INC/MLI.I.txt +++ b/INC/MLI.I.txt @@ -141,6 +141,7 @@ DEVCNT .EQ $BF31 0 -> 13 DEVLST .EQ $BF32 -> $BF3F *DEVLST0END .EQ $BF40 A 0 was added to ensure list ended with 0 if 14 devices in list *PRODOSCOPYRIGHT .EQ $BF41 ;free->$BF4B +*MLIENTRY .EQ $BF4B to bypass ATLK hook MEMTABL .EQ $BF58 -> $BF6F *GL.BUFF .EQ $BF70 *INTRUPT1 .EQ $BF80 diff --git a/LIB/LIBBLKDEV.S.D2.txt b/LIB/LIBBLKDEV.S.D2.txt index fa2835dd..4ecc9269 100644 --- a/LIB/LIBBLKDEV.S.D2.txt +++ b/LIB/LIBBLKDEV.S.D2.txt @@ -67,12 +67,7 @@ D2MoveHead >PULLB MoveTo jsr CheckDiskII bcs .9 - jsr D2MoveHead.1 - - clc -.9 rts - -D2MoveHead.1 ldx Slotn0 + ldx Slotn0 ldy Slotn0 .1 lda MoveFrom @@ -131,7 +126,10 @@ D2MoveHead.1 ldx Slotn0 lda IO.D2.Ph0Off,x lda IO.D2.Ph0Off,y - rts + + clc + +.9 rts *-------------------------------------- D2.Wait25600usec lda #0 diff --git a/ProDOS.FX/ProDOS.S.XRW.txt b/ProDOS.FX/ProDOS.S.XRW.txt index cdeab045..dcde04b0 100644 --- a/ProDOS.FX/ProDOS.S.XRW.txt +++ b/ProDOS.FX/ProDOS.S.XRW.txt @@ -65,7 +65,11 @@ L59BD lda bloknml lsr sta XRW.ReqSector *-------------------------------------- - jsr XRW.AllPhasesOff make sure all motor phases are off + ldx A2L + lda IO.D2.Ph0Off,x + lda IO.D2.Ph1Off,x + lda IO.D2.Ph2Off,x + lda IO.D2.Ph3Off,x lda IO.D2.ReadMode,x turn off write enable X = slot $S0 nop @@ -801,16 +805,8 @@ XRW.Seek ldx XRW.UnitIndex bra .1 .7 jsr XRW.Wait25600usec - lda IO.D2.Ph0On,y - lda IO.D2.Ph0On,x - rts -*-------------------------------------- -XRW.AllPhasesOff - ldx A2L + lda IO.D2.Ph0Off,y lda IO.D2.Ph0Off,x - lda IO.D2.Ph1Off,x - lda IO.D2.Ph2Off,x - lda IO.D2.Ph3Off,x rts *-------------------------------------- XRW.Trk2Qtrk asl x2 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index e5f3f240..5eadccb1 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -190,7 +190,7 @@ Kernel.Init3C >PUSHWI MSG.Init3 >PUSHWI SBININITD >PUSHBI 0 PS Flags - >SYSCALL2 ExecL + >SYSCALL2 ExecV bcs Kernel.Init3.Err >PUSHWI MSG.Init3.OK @@ -202,9 +202,10 @@ Kernel.Init3C >PUSHWI MSG.Init3 Kernel.Init3.Err pha >PUSHWI MSG.StartupErr + >PUSHWI SBININITD pla >PUSHA - >PUSHBI 1 + >PUSHBI 3 >SYSCALL2 printf bra * No need to discard Expanded CMDLINE *-------------------------------------- @@ -1203,7 +1204,7 @@ MSG.EVT .AZ "Event Manager..." MSG.TSK .AZ "Task Manager..." MSG.PWD .AZ "Password Manager..." MSG.EXEC .AZ "Executing %s..." -MSG.StartupErr .AZ "Failed : [$%h]\r\n" +MSG.StartupErr .AZ "%s Failed : [$%h]\r\n" MSG.Init3.OK .AZ "OK\r\nA2osX[Stage3]:Complete.\r\n" *-------------------------------------- MSG.HW .AZ "Checking Hardware..." @@ -1231,6 +1232,7 @@ I.ENV.PATH .AZ "PATH=${BOOT}sbin/:${BOOT}bin/" I.ENV.LIB .AZ "LIB=${BOOT}lib/" I.ENV.DRV .AZ "DRV=${BOOT}drv/" SBININITD .AZ "${ROOT}sbin/initd" + .DA #0 end of ARGV for ExecV *-------------------------------------- MLIGETFILEINFOEX00 .DA #2 diff --git a/SYS/KERNEL.S.PS.txt b/SYS/KERNEL.S.PS.txt index 1f990841..d1da137d 100644 --- a/SYS/KERNEL.S.PS.txt +++ b/SYS/KERNEL.S.PS.txt @@ -92,6 +92,7 @@ K.Fork jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem lda #S.PS.S.RUN sta (PS.NewPSPtr),y + ldy #S.PS.hCS .8 lda #$ff SELF MODIFIED diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 7a709ebd..f31766ab 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -36,17 +36,32 @@ RW.Init >LDYAI RW.MSG bcc .1 >LDYAI RW.MSG.KO1 - jsr PrintFYA - rts + bra .9 -.1 pha Push Page count +.1 tay save RAM drive pages + + pha + + lsr divide by 4 to compute KB size + ror .12+1 + lsr + ror .12+1 + +.12 ldx #$00 X,A = RAM drive size + phx Push Kbyte LO + pha Push Kbyte HI + + tya + inc + 1 page AUX mem + + pha Total page detected lsr divide by 4 to compute KB size ror .11+1 lsr ror .11+1 -.11 ldx #$00 +.11 ldx #$00 X,A = Total KB detected phx Push Kbyte LO pha Push Kbyte HI @@ -57,8 +72,7 @@ RW.Init >LDYAI RW.MSG bcc .2 >LDYAI RW.MSG.KO2 - jsr PrintFYA - rts + bra .9 .2 >LDYAI RW.MSG.OK2 jsr PrintFYA @@ -67,10 +81,11 @@ RW.Init >LDYAI RW.MSG bcc .3 >LDYAI RW.MSG.KO3 - jsr PrintFYA - rts + bra .9 + .3 >LDYAI RW.MSG.OK3 - jsr PrintFYA + +.9 jsr PrintFYA rts *-------------------------------------- RW.Detect1 jsr MLI @@ -151,15 +166,17 @@ RW.Detect2 php dey bpl .6 - txa - stx RW.PGCNT PGCNT = last detected page, as we do -1 for AuxMem - sta CLRALTZP plp txa PGCNT > 0 ? beq .9 + dec minus 1 for AUX mem + beq .9 + + sta RW.PGCNT PGCNT = last detected page + clc rts @@ -361,7 +378,7 @@ RW.BLOCK2.END .EQ * *-------------------------------------- RW.MSG .AZ "RAMWorks (I,II,III,z-Ram) Driver For A2osX\n" RW.MSG.OK .AZ "/RAM3 Device Already Installed.\n" -RW.MSG.OK1 .AZ "%D KB (%d Pages) Available for RamDrive.\n" +RW.MSG.OK1 .AZ "%D KB Detected (%d Pages), %D KB (%d Pages) Available for RamDrive.\n" RW.MSG.KO1 .AZ "Not Detected.\n" RW.MSG.OK2 .AZ "RamWorks Driver Installed.\n" RW.MSG.KO2 .AZ "RamWorks Driver Install Error.\n"