diff --git a/.Floppies/A2OSX.BOOT.po b/.Floppies/A2OSX.BOOT.po index 73949821..b99a06ca 100644 Binary files a/.Floppies/A2OSX.BOOT.po and b/.Floppies/A2OSX.BOOT.po differ diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index c253a648..4ed168fe 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/SH.S.CMD.txt b/BIN/SH.S.CMD.txt index 7af19252..9c677baa 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -382,13 +382,15 @@ CMD.READ lda (ZPArgVBufPtr) bra .5 .9 jmp CMD.E.CSYN + .3 cmp #'N' bne .9 jsr CORE.ArgV.Next beq .9 - - jsr CMD.GetInt8Arg + + >LDYA ZPArgVBufPtr + jsr CMD.GetInt8ArgYA bcs CMD.ECHO.RTS >STA.G READ.N @@ -1221,12 +1223,14 @@ CMD.IsSwitch lda (ZPArgVBufPtr) txa jmp ToUpperCase .9 sec +CMD.IsSwitch.RTS rts *-------------------------------------- CMD.GetInt8Arg >LDYA ZPArgVBufPtr jsr EXP.GET - bcs .9 + bcs CMD.IsSwitch.RTS +CMD.GetInt8ArgYA >SYSCALL AToL bcs .99 @@ -1240,7 +1244,7 @@ CMD.GetInt8Arg >LDYA ZPArgVBufPtr .99 lda #E.ESYN * sec -.9 rts + rts *-------------------------------------- MAN SAVE USR/SRC/BIN/SH.S.CMD diff --git a/BIN/SH.S.CORE.txt b/BIN/SH.S.CORE.txt index c09824d4..3e84362a 100644 --- a/BIN/SH.S.CORE.txt +++ b/BIN/SH.S.CORE.txt @@ -278,6 +278,9 @@ CORE.ExecExtCmd >PUSHB CORE.PSFlags and #S.PS.F.HOLD bne .4 + >LDA.G CORE.bPipeOut + bmi .4 + txa >PUSHA >PUSHBI 1 diff --git a/SYS/KM.RAMWORKS.S.txt b/SYS/KM.RAMWORKS.S.txt index 7f0e8a8d..3380ca7c 100644 --- a/SYS/KM.RAMWORKS.S.txt +++ b/SYS/KM.RAMWORKS.S.txt @@ -3,7 +3,7 @@ NEW .LIST OFF .OP 65C02 .OR $2000 - .TF SYS/KM/KM.RAMWORKS + .TF SYS/KM.RAMWORKS *-------------------------------------- .INB INC/MACROS.I .INB INC/IO.I @@ -486,30 +486,38 @@ RWDRVX.B.START RWDRVX.START sta RWDRVX.XM.BANK+1 setup BANK txa beq .1 page 0/1, no need to check BANK + cmp #$D0 $C0 <= PAGE < $D0 ? bcs .1 no, store in BNK1 + ora #$10 Remap $C0 page to $D0 BNK2 + .1 ror RWDRVX.XM.RWLC+1 Save Carry to select proper RW bank later ldy DRV.BUFF ldx DRV.BUFF+1 lsr DRV.COMMAND DRV.COMMAND: 1=READ,2=WRITE bcc .2 CC=WRITE, CS=READ + stz RWDRVX.XM.SRC+1 READ from src LO = 0 sta RWDRVX.XM.SRC+2 READ from src HI = PAGE sty RWDRVX.XM.DST+1 WRITE to DRV.BUFF stx RWDRVX.XM.DST+2 bra .3 + .2 sty RWDRVX.XM.SRC+1 READ from DRV.BUFF stx RWDRVX.XM.SRC+2 stz RWDRVX.XM.DST+1 WRITE to dst LO = 0 sta RWDRVX.XM.DST+2 WRITE to dst HI = PAGE + .3 sta CLRWRITEAUX ldy #RWDRVX.XM.SIZE + .4 lda RWDRVX.XM.START-1,y sta RWDRV.XM.RUN-1,y dey bne .4 + rts *-------------------------------------- * Called form Main LC after RWDRVX.XM execution @@ -540,16 +548,20 @@ RWDRVX.XM.SRC lda $FFFF,x sta RMDRVX.TMP,x inx bne RWDRVX.XM.SRC + sta CLRALTZP + jsr RWDRV.XM.RUN+RWDRVX.XM.MNLC-RWDRVX.XM.START READ:copy from TMP to MAIN bcs RWDRVX.XM.1 CC=WRITE,CS=READ? jsr RWDRV.XM.RUN+RWDRVX.XM.RWLC-RWDRVX.XM.START WRITE:copy from TMP to BANK sta SETALTZP + RWDRVX.XM.1 lda RMDRVX.TMP,x RWDRVX.XM.DST sta $FFFF,x inx bne RWDRVX.XM.1 + sta CLRALTZP inc RWDRV.XM.RUN+RWDRVX.XM.SRC+2-RWDRVX.XM.START @@ -563,7 +575,7 @@ RWDRVX.XM.MNLC stz RWBankSelect ProDOS always uses LCBANK1 rts RWDRVX.XM.RWLC lda #$FF - bpl RWDRVX.XM.BANK + bmi RWDRVX.XM.BANK bit RRAMWRAMBNK2 bit RRAMWRAMBNK2