From 64bc199753ba398af95f8a0dcc52054360e24da8 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Sun, 18 Jan 2026 14:27:01 +0100 Subject: [PATCH] avr: added ValueLabel. --- avr/modules/lcd2/gui2/valuelabel.asm | 177 +++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 avr/modules/lcd2/gui2/valuelabel.asm diff --git a/avr/modules/lcd2/gui2/valuelabel.asm b/avr/modules/lcd2/gui2/valuelabel.asm new file mode 100644 index 0000000..4abf51d --- /dev/null +++ b/avr/modules/lcd2/gui2/valuelabel.asm @@ -0,0 +1,177 @@ +; *************************************************************************** +; copyright : (C) 2026 by Martin Preuss +; email : martin@libchipcard.de +; +; *************************************************************************** +; * This file is part of the project "AqHome". * +; * Please see toplevel file COPYING of that project for license details. * +; *************************************************************************** + +#ifndef AQH_AVR_GUI2_VALUELABEL_ASM +#define AQH_AVR_GUI2_VALUELABEL_ASM + + +; *************************************************************************** +; defines + +; IMGVIEW in flash +.equ VLABEL_OFFS_VLABEL = WIDGET_SIZE +.equ VLABEL_OFFS_POSTKOMMADIGITS = VLABEL_OFFS_VLABEL+0 +.equ VLABEL_OFFS_RESERVED = VLABEL_OFFS_VLABEL+1 +.equ VLABEL_SIZE = VLABEL_OFFS_VLABEL+2 + + +; SDRAM data for IMGVIEW +.equ VLABEL_SD_OFFS_VLABEL = WIDGET_SD_SIZE +.equ VLABEL_SD_OFFS_VALUE_LO = VLABEL_SD_OFFS_VLABEL+0 +.equ VLABEL_SD_OFFS_VALUE_HI = VLABEL_SD_OFFS_VLABEL+1 +.equ VLABEL_SD_SIZE = VLABEL_SD_OFFS_VLABEL+2 + + +; signals +.equ VLABEL_SIGNAL_SETVALUE = WIDGET_SIGNAL_NEXTFREE+0 +.equ VLABEL_SIGNAL_NEXTFREE = WIDGET_SIGNAL_NEXTFREE+1 + + + + +; *************************************************************************** +; code + +.cseg + + + +; --------------------------------------------------------------------------- +; @routine ImageView_OnCreate @global +; +; @param Z byte address of widget object (for LPM!) +; @return CFLAG set if signal handled +; @clobbers any, !Z + +ValueLabel_OnCreate: + bigcall Widget_OnCreate + bigcall Widget_GetSdramPtr ; (none) + clr r16 + std Y+VLABEL_SD_OFFS_VALUE_LO, r16 + std Y+VLABEL_SD_OFFS_VALUE_HI, r16 + sec + ret +; @end + + + +; --------------------------------------------------------------------------- +; @routine ValueLabel_OnSetValue @global +; +; @param Z byte address of widget object (for LPM!) +; @param X new value for background color +; @return CFLAG set if signal handled +; @clobbers r17 + +ValueLabel_OnSetValue: + bigcall OBJ_IsObject ; (none) + brcc ValueLabel_OnSetValue_ret + push zl + push zh + rcall Widget_GetSdramPtr ; (none) + std Y+VLABEL_SD_OFFS_VALUE_LO, xl + std Y+VLABEL_SD_OFFS_VALUE_HI, xh + ldd r17, Y+WIDGET_SD_OFFS_FLAGS + ori r17, (1<