From 800b6d316ea43a78904068028e505988ff7a3538 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 11 May 2026 00:39:19 +0200 Subject: [PATCH] widget: save Z --- avr/modules/lcd2/gui/base/widget.asm | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/avr/modules/lcd2/gui/base/widget.asm b/avr/modules/lcd2/gui/base/widget.asm index 1609b05..662a190 100644 --- a/avr/modules/lcd2/gui/base/widget.asm +++ b/avr/modules/lcd2/gui/base/widget.asm @@ -383,12 +383,17 @@ Widget_GetValue: ; @param Y address of widget ; @param X value to set ; @return CFLAG set if value set, cleared on error -; @clobbers any, !Y +; @clobbers any, !Y, !Z Widget_SetCurrentValue: - ldi r16, WIDGET_SIGNAL_SETVALUE - ldi r17, WIDGET_VALUE_CURRENTVALUE - bigjmp OBJ_HandleSignal + push zl + push zh + ldi r16, WIDGET_SIGNAL_SETVALUE + ldi r17, WIDGET_VALUE_CURRENTVALUE + bigcall OBJ_HandleSignal + pop zh + pop zl + ret ; @end @@ -490,11 +495,15 @@ Widget_SetStyle: ; @param Y address of widget ; @param r17 value id to get ; @return CFLAG set if value set, cleared on error -; @clobbers any, !Y +; @clobbers any, !Y, !Z widgetGetValueOrZero: - ldi r16, WIDGET_SIGNAL_GETVALUE - bigcall OBJ_HandleSignal + push zl + push zh + ldi r16, WIDGET_SIGNAL_GETVALUE + bigcall OBJ_HandleSignal + pop zh + pop zl brcs widgetGetValueOrZero_ret clr r18 clr r19