Kernel 0.92

This commit is contained in:
Rémy GIBERT 2019-01-25 15:15:19 +00:00
parent 8401ddf407
commit a6e317b765
2 changed files with 28 additions and 40 deletions

Binary file not shown.

View File

@ -308,42 +308,26 @@ K.SetEnv.I jsr K.UnsetEnv.I
.1 jsr ENV.InitEnvP3 ZPPtr3 -> Env .1 jsr ENV.InitEnvP3 ZPPtr3 -> Env
ldy #0 lda #1
ldx #0 sta ZPPtr4
stz ZPPtr4+1 ZPPtr4 = ENVSIZE = 1
.10 lda (ZPPtr3) End of ENV .10 lda (ZPPtr3) End of ENV
beq .15 beq .15
.11 iny Compute ENV size in X,Y jsr ENV.GetP3LenY
bne .12
inx
.12 inc ZPPtr3 jsr ENV.NextEnvP3Y
bne .13 jsr ENV.NextEnvP4Y
inc ZPPtr3+1
.13 lda (ZPPtr3) End of string
bne .11
iny
bne .14
inx
.14 inc ZPPtr3
bne .10
inc ZPPtr3+1
bra .10 bra .10
.15 sty ZPPtr4 .15 ldy #$ff
stx ZPPtr4+1
ldy #$ff
.16 iny .16 iny
lda (ZPPtr1),y lda (ZPPtr1),y
bne .16 bne .16
.17 jsr ENV.NextEnvP4Y jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VAR
ldy #$ff ldy #$ff
@ -351,19 +335,19 @@ K.SetEnv.I jsr K.UnsetEnv.I
lda (ZPPtr2),y lda (ZPPtr2),y
bne .19 bne .19
tya jsr ENV.NextEnvP4Y ZPPtr4 = ENVSIZE + VALUE
sec
adc ZPPtr4 lda ZPPtr4
tax beq .20
bcc .22
inc ZPPtr4+1 inc ZPPtr4+1
ldy #S.PS.ENVPAGECNT .20 ldy #S.PS.ENVPAGECNT
lda (pPs),y lda (pPs),y
cmp ZPPtr4+1 cmp ZPPtr4+1
bcs .22 env is large enough bcs .22 env is large enough
jsr ENV.Dup lda ZPPtr4+1
jsr ENV.Dup.A
bcs .9 bcs .9
pha pha
@ -711,11 +695,7 @@ ENV.InitEnvP3 ldy #S.PS.hENV
>STYA ZPPtr3 Store ENV >STYA ZPPtr3 Store ENV
rts rts
*-------------------------------------- *--------------------------------------
ENV.NextEnvP3 ldy #$ff ENV.NextEnvP3 jsr ENV.GetP3LenY
.1 iny
lda (ZPPtr3),y
bne .1
ENV.NextEnvP3Y tya ENV.NextEnvP3Y tya
sec sec
@ -725,6 +705,13 @@ ENV.NextEnvP3Y tya
inc ZPPtr3+1 inc ZPPtr3+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
ENV.GetP3LenY ldy #$ff
.1 iny
lda (ZPPtr3),y
bne .1
rts
*--------------------------------------
ENV.NextEnvP4Y tya ENV.NextEnvP4Y tya
sec sec
adc ZPPtr4 adc ZPPtr4
@ -749,6 +736,8 @@ ENV.AddAToBuf ldx ENV.BufLen
*-------------------------------------- *--------------------------------------
ENV.Dup ldy #S.PS.ENVPAGECNT ENV.Dup ldy #S.PS.ENVPAGECNT
lda (pPs),y lda (pPs),y
ENV.Dup.A sta .8+1 Store target page Count
ldy #0 ldy #0
jsr K.GetMem jsr K.GetMem
@ -764,9 +753,8 @@ ENV.Dup ldy #S.PS.ENVPAGECNT
jsr K.GetMemPtr jsr K.GetMemPtr
>STYA .1+1 >STYA .1+1
ldy #S.PS.ENVPAGECNT ldy #S.PS.ENVPAGECNT get SOURCE page count
lda (pPs),y lda (pPs),y
pha
tax tax
ldy #0 ldy #0
@ -780,7 +768,7 @@ ENV.Dup ldy #S.PS.ENVPAGECNT
dex dex
bne .1 bne .1
plx Page Count .8 ldx #$ff SELF MODIFIED Target Page Count
pla hMem pla hMem
clc clc