From 58aee6c1efe2b1fc47ad700c9c62d08769b7ff96 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Thu, 9 Jul 2020 19:10:09 +0200 Subject: [PATCH] more work towards garbage collector --- src/basic/engine/varstr_garbage_collect.s | 28 +++++++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/basic/engine/varstr_garbage_collect.s b/src/basic/engine/varstr_garbage_collect.s index 13520446..48691435 100644 --- a/src/basic/engine/varstr_garbage_collect.s +++ b/src/basic/engine/varstr_garbage_collect.s @@ -38,14 +38,21 @@ varstr_garbage_collect: varstr_garbage_collect_loop: - // Check if this was the last string - // XXX instead check if FRETOP+INDEX == TXTPTR + // Check if this was the last string (if FRETOP+INDEX == TXTPTR), use OLDTXT as temporary storage + + clc + lda INDEX+0 + adc FRETOP+0 + sta OLDTXT+0 + lda INDEX+1 + adc FRETOP+1 + sta OLDTXT+1 lda TXTPTR+0 - cmp FRETOP+0 + cmp OLDTXT+0 bne varstr_garbage_collect_check_bptr lda TXTPTR+1 - cmp FRETOP+1 + cmp OLDTXT+1 bne varstr_garbage_collect_check_bptr // End of strings - nothing more to do @@ -119,7 +126,18 @@ varstr_garbage_collect_check_bptr: // Update TXTPTR - // XXX + ldy #$00 + +#if CONFIG_MEMORY_MODEL_60K + ldx #