From a6e317b7653107ea0eca91dab31abf6aa67d261d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Fri, 25 Jan 2019 15:15:19 +0000 Subject: [PATCH] Kernel 0.92 --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes SYS/KERNEL.S.ENV.txt | 68 ++++++++++++++++----------------------- 2 files changed, 28 insertions(+), 40 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 5a2b1a3d5c6e3cc365b15040a12f4c0d1bc37848..5612e53660d0429a27163e7df4d048d4185e0d2f 100644 GIT binary patch delta 8368 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 delta 8191 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 F{vZC}%pL#$ diff --git a/SYS/KERNEL.S.ENV.txt b/SYS/KERNEL.S.ENV.txt index d81712e2..89b736f8 100644 --- a/SYS/KERNEL.S.ENV.txt +++ b/SYS/KERNEL.S.ENV.txt @@ -308,42 +308,26 @@ K.SetEnv.I jsr K.UnsetEnv.I .1 jsr ENV.InitEnvP3 ZPPtr3 -> Env - ldy #0 - ldx #0 + lda #1 + sta ZPPtr4 + stz ZPPtr4+1 ZPPtr4 = ENVSIZE = 1 .10 lda (ZPPtr3) End of ENV beq .15 -.11 iny Compute ENV size in X,Y - bne .12 - inx + jsr ENV.GetP3LenY -.12 inc ZPPtr3 - bne .13 - inc ZPPtr3+1 - -.13 lda (ZPPtr3) End of string - bne .11 - - iny - bne .14 - inx - -.14 inc ZPPtr3 - bne .10 - inc ZPPtr3+1 + jsr ENV.NextEnvP3Y + jsr ENV.NextEnvP4Y bra .10 -.15 sty ZPPtr4 - stx ZPPtr4+1 - - ldy #$ff +.15 ldy #$ff .16 iny lda (ZPPtr1),y bne .16 -.17 jsr ENV.NextEnvP4Y + jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VAR ldy #$ff @@ -351,19 +335,19 @@ K.SetEnv.I jsr K.UnsetEnv.I lda (ZPPtr2),y bne .19 - tya - sec - adc ZPPtr4 - tax - bcc .22 + jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE + + lda ZPPtr4 + beq .20 inc ZPPtr4+1 - - ldy #S.PS.ENVPAGECNT + +.20 ldy #S.PS.ENVPAGECNT lda (pPs),y cmp ZPPtr4+1 bcs .22 env is large enough - jsr ENV.Dup + lda ZPPtr4+1 + jsr ENV.Dup.A bcs .9 pha @@ -711,11 +695,7 @@ ENV.InitEnvP3 ldy #S.PS.hENV >STYA ZPPtr3 Store ENV rts *-------------------------------------- -ENV.NextEnvP3 ldy #$ff - -.1 iny - lda (ZPPtr3),y - bne .1 +ENV.NextEnvP3 jsr ENV.GetP3LenY ENV.NextEnvP3Y tya sec @@ -725,6 +705,13 @@ ENV.NextEnvP3Y tya inc ZPPtr3+1 .8 rts *-------------------------------------- +ENV.GetP3LenY ldy #$ff + +.1 iny + lda (ZPPtr3),y + bne .1 + rts +*-------------------------------------- ENV.NextEnvP4Y tya sec adc ZPPtr4 @@ -749,6 +736,8 @@ ENV.AddAToBuf ldx ENV.BufLen *-------------------------------------- ENV.Dup ldy #S.PS.ENVPAGECNT lda (pPs),y + +ENV.Dup.A sta .8+1 Store target page Count ldy #0 jsr K.GetMem @@ -764,9 +753,8 @@ ENV.Dup ldy #S.PS.ENVPAGECNT jsr K.GetMemPtr >STYA .1+1 - ldy #S.PS.ENVPAGECNT + ldy #S.PS.ENVPAGECNT get SOURCE page count lda (pPs),y - pha tax ldy #0 @@ -780,7 +768,7 @@ ENV.Dup ldy #S.PS.ENVPAGECNT dex bne .1 - plx Page Count +.8 ldx #$ff SELF MODIFIED Target Page Count pla hMem clc