filled-in gaps in garbage collector implementation

This commit is contained in:
FeralChild64 committed 2020-07-12 20:08:13 +02:00
1 parent dd642b908e
commit ac7fff95e5
2 files changed
+85 -11

No files matched your search

+60 -3
View File
@@ -59,7 +59,26 @@ cmd_let_assign_integer:
lda VALTYP lda VALTYP
bmi_16 do_TYPE_MISMATCH_error bmi_16 do_TYPE_MISMATCH_error
// XXX finish the implementation #if CONFIG_MEMORY_MODEL_60K
// XXX
// XXX: implement this
// XXX
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
// XXX consider optimized version without multiple JSRs
// XXX
// XXX: implement this
// XXX
#else // CONFIG_MEMORY_MODEL_38K
// XXX
// XXX: implement this
// XXX
#endif
jmp do_NOT_IMPLEMENTED_error jmp do_NOT_IMPLEMENTED_error
@@ -68,7 +87,26 @@ cmd_let_assign_float:
lda VALTYP lda VALTYP
bmi_16 do_TYPE_MISMATCH_error bmi_16 do_TYPE_MISMATCH_error
// XXX finish the implementation #if CONFIG_MEMORY_MODEL_60K
// XXX
// XXX: implement this
// XXX
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
// XXX consider optimized version without multiple JSRs
// XXX
// XXX: implement this
// XXX
#else // CONFIG_MEMORY_MODEL_38K
// XXX
// XXX: implement this
// XXX
#endif
jmp do_NOT_IMPLEMENTED_error jmp do_NOT_IMPLEMENTED_error
@@ -79,6 +117,25 @@ cmd_let_assign_string:
lda VALTYP lda VALTYP
bpl_16 do_TYPE_MISMATCH_error bpl_16 do_TYPE_MISMATCH_error
// XXX finish the implementation #if CONFIG_MEMORY_MODEL_60K
// XXX
// XXX: implement this
// XXX
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
// XXX consider optimized version without multiple JSRs
// XXX
// XXX: implement this
// XXX
#else // CONFIG_MEMORY_MODEL_38K
// XXX
// XXX: implement this
// XXX
#endif
jmp do_NOT_IMPLEMENTED_error jmp do_NOT_IMPLEMENTED_error
+25 -8
View File
@@ -213,22 +213,39 @@ varstr_garbage_collect_check_bptr:
ldy #$01 ldy #$01
#if CONFIG_MEMORY_MODEL_60K #if CONFIG_MEMORY_MODEL_60K
// XXX ldx #<OLDTXT
// XXX: implement this jsr peek_under_roms
// XXX clc
adc INDEX+0
php
jsr poke_under_roms
iny
jsr peek_under_roms
plp
adc INDEX+1
jsr poke_under_roms
#elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K #elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K
// XXX consider optimized version without multiple JSRs // XXX consider optimized version without multiple JSRs
// XXX jsr peek_under_roms_via_OLDTXT
// XXX: implement this clc
// XXX adc INDEX+0
sta (OLDTXT),y
iny
php
jsr peek_under_roms_via_OLDTXT
plp
adc INDEX+1
sta (OLDTXT),y
#else // CONFIG_MEMORY_MODEL_38K #else // CONFIG_MEMORY_MODEL_38K
clc
lda (OLDTXT),y lda (OLDTXT),y
clc
adc INDEX+0 adc INDEX+0
sta (OLDTXT),y sta (OLDTXT),y
iny iny