From ca2143fdbaa8363005e35430a080765349bb2f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Sun, 2 Feb 2020 19:24:40 +0100 Subject: [PATCH] Kernel 0.93++ --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes BIN/SH.S.CORE.txt | 1 + BIN/SH.S.HIS.txt | 12 ++++++------ BIN/SH.S.txt | 8 +++++--- SYS/KERNEL.S.JMP.txt | 6 +++--- SYS/KERNEL.S.STRV.txt | 33 ++++++++++++++++++++++++--------- 6 files changed, 39 insertions(+), 21 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index fd1067fb8b2c388f9c1d26bf11d1f26b860e4124..a600536351cdff1ed0958748890ad1b20f4f1499 100644 GIT binary patch delta 23166 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 ZPInputBuf jsr CORE.StkPushYA diff --git a/BIN/SH.S.HIS.txt b/BIN/SH.S.HIS.txt index 34acef6d..07b77d0c 100644 --- a/BIN/SH.S.HIS.txt +++ b/BIN/SH.S.HIS.txt @@ -3,17 +3,17 @@ NEW .LIST OFF *-------------------------------------- HIS.Init >LDYAI HISTORY.MAX Get a buffer for History - >SYSCALL GetMem + >SYSCALL NewStkObj bcs .9 - >STYA ZPPTR1 txa >STA.G HIS.hBuf - lda #0 - sta (ZPPTR1) - - >STA.G HIS.Count + >PUSHA + >PUSHWI 0 + >SYSCALL StrVAdd Reset Buffer + + >STZ.G HIS.Count >STA.G HIS.Index .9 rts *-------------------------------------- diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 9d58acf6..2f64c5f4 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -435,10 +435,12 @@ CS.DOEVENT lda (pEvent) *-------------------------------------- CS.QUIT jsr CORE.FUNCRESET - ldy #HIS.hBuf - jsr .7 + >LDA.G HIS.hBuf + beq .1 + + >SYSCALL FreeStkObj - ldy #CL.hCLBuf +.1 ldy #CL.hCLBuf jsr .7 ldy #CORE.hArgVBuf diff --git a/SYS/KERNEL.S.JMP.txt b/SYS/KERNEL.S.JMP.txt index 3ea6bbd2..96672427 100644 --- a/SYS/KERNEL.S.JMP.txt +++ b/SYS/KERNEL.S.JMP.txt @@ -386,11 +386,11 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00 .DA #$80 .DA #0 PWD .DA #$80 - .DA #0 StrV + .DA #$C0 StrV .DA #$80 - .DA #0 + .DA #$C0 .DA #$80 - .DA #0 + .DA #$C0 .DA #$80 .DA #0 .DA #$80 diff --git a/SYS/KERNEL.S.STRV.txt b/SYS/KERNEL.S.STRV.txt index ca858818..85072b8d 100644 --- a/SYS/KERNEL.S.STRV.txt +++ b/SYS/KERNEL.S.STRV.txt @@ -8,12 +8,16 @@ NEW * `>SYSCALL StrVShift` * ## RETURN VALUE *\-------------------------------------- -K.StrVShift >PULLA index +K.StrVShift sta CLRREADAUX + + >PULLA index eor #$ff tax >PULLA - >SYSCALL GetMemPtr + sta SETREADAUX + + jsr K.GetMemPtr >STYA ZPPtr1 strV .1 inx @@ -43,13 +47,15 @@ K.StrVShift >PULLA index * CC: Y,A = Ptr * CS: Y,A = NULL *\-------------------------------------- -K.StrVGet >PULLW FORPNT ptr +K.StrVGet sta CLRREADAUX + >PULLW FORPNT ptr >PULLA index eor #$ff tax >PULLA + sta SETREADAUX jsr K.GetMemPtr >STYA ZPPtr1 strV @@ -75,7 +81,7 @@ K.StrVGet >PULLW FORPNT ptr .5 iny lda (ZPPtr1),y - sta (FORPNT),y + jsr SHARED.FORPNT.PutY bne .5 >LDYA FORPNT @@ -95,12 +101,21 @@ K.StrVGet >PULLW FORPNT ptr * CC : str added to hSTRV * CS : hSTRV full *\-------------------------------------- -K.StrVAdd >PULLW TXTPTR str +K.StrVAdd sta CLRREADAUX + >PULLW TXTPTR str >PULLA - >SYSCALL GetMemPtr + sta SETREADAUX + jsr K.GetMemPtr >STYA ZPPtr1 + + lda TXTPTR+1 + bne .10 - lda #1 for \0 + sta (ZPPtr1) + clc + rts + +.10 lda #1 for \0 sta ZPPtr2 stz ZPPtr2+1 @@ -113,7 +128,7 @@ K.StrVAdd >PULLW TXTPTR str .2 ldy #$ff .3 iny - lda (TXTPTR),y + jsr SHARED.TXTPTR.GetY bne .3 tya @@ -139,7 +154,7 @@ K.StrVAdd >PULLW TXTPTR str .4 ldy #$ff .5 iny - lda (TXTPTR),y + jsr SHARED.TXTPTR.GetY sta (ZPPtr1),y bne .5