diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 3c64be38..d32b6355 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 975b6169..3f317c62 100644 --- a/BIN/SH.S.CMD.txt +++ b/BIN/SH.S.CMD.txt @@ -245,24 +245,23 @@ CMD.SET.GET >PUSHW ZPVarNamePtr rts .8 clc - rts +CMD.SET.RTS rts *-------------------------------------- CMD.SET.EXEC jsr CORE.ArgV.NextChar skip "`" jsr IO.Pipe.Out - bcs .9 + bcs CMD.SET.RTS jsr IO.Exec - bcs .9 + bcs CMD.SET.RTS jsr IO.Pipe.In - bcs .9 + bcs CMD.SET.RTS * clc Silent Mode jsr CL.ReadReset jmp CMD.READ.VAR -.9 rts *-------------------------------------- CMD.DATE >PUSHEA.G TimeBuf >SYSCALL Time diff --git a/BIN/SH.S.HIS.txt b/BIN/SH.S.HIS.txt index 8d1e0351..72e14a82 100644 --- a/BIN/SH.S.HIS.txt +++ b/BIN/SH.S.HIS.txt @@ -29,15 +29,13 @@ HIS.Add >LDA.G HIS.hBuf .1 inc >STA.G HIS.LRU - tax - >DEBUG bra .7 .2 inc >STA.G HIS.Count - tax -.7 >PUSHB.G HIS.hBuf +.7 tax + >PUSHB.G HIS.hBuf >PUSHBI 0 txa >PUSHA @@ -80,6 +78,9 @@ HIS.Select >LDA.G HIS.Count >STZ.G HIS.Index + lda #0 + sta (ZPCLBuf) + >SYSCALL GetChar bcs HIS.Select.RTS diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index 1ea8a324..6d596390 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -546,6 +546,7 @@ CORE.IRQ.Switch inc IRQ.Tick lda (pPS),y eor #S.PS.S.RUN bne .9 + lda IRQ.InLib bmi .9 we are in LIB, no switching @@ -553,20 +554,28 @@ CORE.IRQ.Switch inc IRQ.Tick rts *-------------------------------------- CORE.IRQ.DEV ldx #0 + .1 lda IRQ.Vectors+1,x beq .9 + sta .10+2 lda IRQ.Vectors,x sta .10+1 + phx + .10 jsr $ffff SELF MODIFIED + plx bcc .8 CC, IRQ cleared by device + .2 inx inx .3 cpx #K.IRQDEV.MAX*2 bne .1 + .9 sec + .8 clv clear V (no task switching) rts *-------------------------------------- diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index e4f652a7..acef9551 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -1018,6 +1018,7 @@ IrqMgrInit.Mouse sec rts + .4 lda ZPPtr1+1 sta .11+2 diff --git a/SYS/KERNEL.S.MD5X.txt b/SYS/KERNEL.S.MD5X.txt index 94c79849..3e96cc4a 100644 --- a/SYS/KERNEL.S.MD5X.txt +++ b/SYS/KERNEL.S.MD5X.txt @@ -4,6 +4,7 @@ NEW .DUMMY ZPTMP,6 .OR ZPTMP 29 bytes ZPCtxPtr .BS 2 +ZPDataLen .BS 2 ZPChunkLen .BS 2 .ED *-------------------------------------- @@ -82,23 +83,21 @@ MD5X.MD5 ldy #$ff jsr SHARED.TXTPTRgY bne .1 - sty FORPNT - stz FORPNT+1 + sty ZPDataLen + stz ZPDataLen+1 jsr MD5X.Init - bcs .9 + bcs MD5X.RTS pha save MD5 Context hMem jsr MD5X.Update.I jmp MD5X.Finalize.I - -.9 rts *-------------------------------------- MD5X.Init >LDYAI S.MD5 jsr K.GetMem - bcs .9 + bcs MD5X.RTS >STYA ZPCtxPtr @@ -120,28 +119,28 @@ MD5X.Init >LDYAI S.MD5 txa clc -.9 rts + +MD5X.RTS rts *-------------------------------------- MD5X.Update jsr K.GetMemPtr get MD5 Context >STYA ZPCtxPtr + >LDYA FORPNT + >STYA ZPDataLen + MD5X.Update.I ldy #S.MD5.FINALIZED lda (ZPCtxPtr),y - beq .1 - sec - rts + bne MD5X.RTS -.1 lda FORPNT+1 More than 256 Bytes remaining to hash ? +.1 lda ZPDataLen+1 More than 256 Bytes remaining to hash ? bne .3 yes - lda FORPNT - bne .2 Len = O ? + lda ZPDataLen + clc + beq MD5X.RTS Len = O, all data processed - clc All data processed - rts - -.2 cmp #64 More than 64 Bytes remaining to hash ? + cmp #64 More than 64 Bytes remaining to hash ? bcc .50 yes .3 lda #64 @@ -181,13 +180,13 @@ MD5X.Update.I ldy #S.MD5.FINALIZED .58 jsr MD5Transform jsr MD5UpdateABCD0 -.8 lda FORPNT Substract Bytes processed from LEN +.8 lda ZPDataLen Substract Bytes processed from LEN sec sbc ZPChunkLen get back chunk Len - sta FORPNT + sta ZPDataLen bcs .81 - dec FORPNT+1 + dec ZPDataLen+1 .81 lda TXTPTR Add Bytes processed to DATA clc diff --git a/SYS/KERNEL.S.MEM.txt b/SYS/KERNEL.S.MEM.txt index ac2742cb..8ff1c165 100644 --- a/SYS/KERNEL.S.MEM.txt +++ b/SYS/KERNEL.S.MEM.txt @@ -360,7 +360,10 @@ K.FreeMem tay lda (ZPMemMgrSPtr) In use ? bpl K.FreeMem.ERR - jsr MEM.DecRefCnt only one left ? + ldy #S.MEM.REFCNT + lda (ZPMemMgrSPtr),y + dec only one left ? + sta (ZPMemMgrSPtr),y bne .8 no, must be a code segment loaded several times lda (ZPMemMgrSPtr) @@ -458,12 +461,6 @@ Mem.IncRefCnt ldy #S.MEM.REFCNT inc sta (ZPMemMgrSPtr),y rts -*-------------------------------------- -Mem.DecRefCnt ldy #S.MEM.REFCNT - lda (ZPMemMgrSPtr),y - dec - sta (ZPMemMgrSPtr),y - rts */-------------------------------------- * # NewStkObj * Y,A = Size Requested @@ -659,11 +656,13 @@ MEM.GetKrnlBuf pha pla adc DevMgr.Free+1 bcs .99 we crossed $FFFF, out of mem + cpx #DevMgr.HiMem pha sbc /DevMgr.HiMem pla bcs .99 No More Room... + ldy DevMgr.Free stx DevMgr.Free ldx DevMgr.Free+1 diff --git a/SYS/KERNEL.S.STRVX.txt b/SYS/KERNEL.S.STRVX.txt index de89d7a8..502a8c03 100644 --- a/SYS/KERNEL.S.STRVX.txt +++ b/SYS/KERNEL.S.STRVX.txt @@ -22,7 +22,7 @@ STRVX.StrVNew jsr K.GetMem *-------------------------------------- STRVX.StrVSet jsr STRVX.GetID bcs .7 - + ldy #$ff .1 iny @@ -31,70 +31,68 @@ STRVX.StrVSet jsr STRVX.GetID tya -* clc +* clc adc #4 LEN+IDlo+IDhi+\0 - bcs .99 - + bcs .9 + cmp (ZPPtr1) bne .4 - + lda ZPPtr1 Same Length, replace clc adc #3 sta ZPPtr1 bcc .2 - + inc ZPPtr1+1 - + .2 ldy #$ff .3 iny jsr SHARED.FORPNTgY sta (ZPPtr1),y bne .3 - + clc - rts +.9 rts *-------------------------------------- .4 >LDYA ZPPtr1 >STYA ZPPtr2 - + jsr STRVX.Next .40 lda (ZPPtr1) - beq .7 - - ldy #2 LEN+IDlo+IDhi + beq .6 + + tax + + ldy #0 .5 lda (ZPPtr1),y sta (ZPPtr2),y - dey - bpl .5 - - ldy #2 - -.6 iny - - lda (ZPPtr1),y - sta (ZPPtr2),y - bne .6 - - jsr SHARED.AddYp12P1 - jsr SHARED.AddYp12P2 + iny + dex + bne .5 + + jsr SHARED.AddY2P1 + jsr SHARED.AddY2P2 bra .40 + +.6 >LDYA ZPPtr2 + >STYA ZPPtr1 *-------------------------------------- .7 ldy #$ff .8 iny jsr SHARED.FORPNTgY bne .8 - + tya clc adc #4 bcs .99 - + sta (ZPPtr1) ldy #1 lda TXTPTR @@ -102,25 +100,25 @@ STRVX.StrVSet jsr STRVX.GetID iny lda TXTPTR+1 sta (ZPPtr1),y - + lda ZPPtr1 clc adc #3 sta ZPPtr1 bcc .10 - + inc ZPPtr1+1 - + .10 ldy #$ff .11 iny jsr SHARED.FORPNTgY sta (ZPPtr1),y bne .11 - + iny sta (ZPPtr1),y StrV Ending \0 - + clc rts @@ -130,51 +128,51 @@ STRVX.StrVSet jsr STRVX.GetID *-------------------------------------- STRVX.StrVGet jsr STRVX.GetID bcs .9 - + lda ZPPtr1 * clc adc #3 sta ZPPtr1 bcc .1 - + inc ZPPtr1+1 - + .1 ldy #$ff .5 iny lda (ZPPtr1),y jsr SHARED.FORPNTpY - bne .5 - + bne .5 + >LDYA FORPNT clc rts - + .8 >LDYA ZPPtr1 clc -.9 rts +.9 rts *-------------------------------------- STRVX.GetID jsr K.GetMemPtr >STYA ZPPtr1 strV - + .1 lda (ZPPtr1) beq .9 - + ldy #1 - + lda (ZPPtr1),y cmp TXTPTR bne .2 - + iny lda (ZPPtr1),y cmp TXTPTR+1 beq .8 - + .2 jsr STRVX.Next bra .1 - -.8 clc + +.8 clc rts .9 lda #E.NOKEY @@ -186,7 +184,7 @@ STRVX.Next lda (ZPPtr1) adc ZPPtr1 sta ZPPtr1 bcc .8 - + inc ZPPtr1+1 .8 rts