From c5a16a9a854940683630bc3a0c4c736451550887 Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Sat, 1 Aug 2020 20:11:57 +0200 Subject: [PATCH] one more multidimensional array fix --- src/basic/engine_variables/fetch_variable.s | 6 +++--- src/basic/engine_variables/fetch_variable_arr.s | 14 ++++++-------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/basic/engine_variables/fetch_variable.s b/src/basic/engine_variables/fetch_variable.s index 083142ba..1fecbc28 100644 --- a/src/basic/engine_variables/fetch_variable.s +++ b/src/basic/engine_variables/fetch_variable.s @@ -120,20 +120,20 @@ fetch_variable_alocate_space_OK: #if CONFIG_MEMORY_MODEL_60K - // XXX + // XXX! // XXX: implement this for arrays // XXX #elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K // XXX consider optimized version without multiple JSRs - // XXX + // XXX! // XXX: implement this for arrays // XXX #else // CONFIG_MEMORY_MODEL_38K - // XXX + // XXX! // XXX: implement this for arrays // XXX diff --git a/src/basic/engine_variables/fetch_variable_arr.s b/src/basic/engine_variables/fetch_variable_arr.s index 9a574668..61271f6a 100644 --- a/src/basic/engine_variables/fetch_variable_arr.s +++ b/src/basic/engine_variables/fetch_variable_arr.s @@ -53,13 +53,13 @@ fetch_variable_arr_check_dimensions: #if CONFIG_MEMORY_MODEL_60K - // XXX + // XXX! // XXX // XXX #elif CONFIG_MEMORY_MODEL_46K || CONFIG_MEMORY_MODEL_50K - // XXX + // XXX! // XXX // XXX @@ -88,18 +88,16 @@ fetch_variable_arr_calc_pos: sta __FAC1+1 sta __FAC1+2 + ldx #$00 + // FALLTROUGH fetch_variable_arr_calc_pos_loop: // Fetch the current dimension - // XXX - // XXX there is a bug, it should fetch from the opposite size! - // XXX - - dex txa + inx asl tay @@ -158,7 +156,7 @@ fetch_variable_arr_calc_pos_loop: !: // Check if there are more dimensions to handle - cpx #$00 + cpx __FAC1+0 bne fetch_variable_arr_calc_pos_loop // FALLTROUGH