; *************************************************************************** ; 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_W_CLIMATE_ASM #define AQH_AVR_W_CLIMATE_ASM ; *************************************************************************** ; defines .equ CLIMATEWIN_OFFS_BEGIN = DIALOG_SIZE .equ CLIMATEWIN_OFFS_CO2_NODEADDR = CLIMATEWIN_OFFS_BEGIN+0 .equ CLIMATEWIN_OFFS_CO2_VALUEID = CLIMATEWIN_OFFS_BEGIN+1 .equ CLIMATEWIN_OFFS_TEMP_NODEADDR = CLIMATEWIN_OFFS_BEGIN+2 .equ CLIMATEWIN_OFFS_TEMP_VALUEID = CLIMATEWIN_OFFS_BEGIN+3 .equ CLIMATEWIN_OFFS_HUM_NODEADDR = CLIMATEWIN_OFFS_BEGIN+4 .equ CLIMATEWIN_OFFS_HUM_VALUEID = CLIMATEWIN_OFFS_BEGIN+5 .equ CLIMATEWIN_OFFS_CO2_VALUE_LO = CLIMATEWIN_OFFS_BEGIN+6 .equ CLIMATEWIN_OFFS_CO2_VALUE_HI = CLIMATEWIN_OFFS_BEGIN+7 .equ CLIMATEWIN_OFFS_TEMP_VALUE_LO = CLIMATEWIN_OFFS_BEGIN+8 .equ CLIMATEWIN_OFFS_TEMP_VALUE_HI = CLIMATEWIN_OFFS_BEGIN+9 .equ CLIMATEWIN_OFFS_HUM_VALUE_LO = CLIMATEWIN_OFFS_BEGIN+10 .equ CLIMATEWIN_OFFS_HUM_VALUE_HI = CLIMATEWIN_OFFS_BEGIN+11 .equ CLIMATEWIN_OFFS_NODEADDR = CLIMATEWIN_OFFS_BEGIN+12 .equ CLIMATEWIN_OFFS_VALUEID = CLIMATEWIN_OFFS_BEGIN+13 .equ CLIMATEWIN_OFFS_UPPER_LIMIT_WARN_LO = CLIMATEWIN_OFFS_BEGIN+14 .equ CLIMATEWIN_OFFS_UPPER_LIMIT_WARN_HI = CLIMATEWIN_OFFS_BEGIN+15 .equ CLIMATEWIN_OFFS_LOWER_LIMIT_WARN_LO = CLIMATEWIN_OFFS_BEGIN+16 .equ CLIMATEWIN_OFFS_LOWER_LIMIT_WARN_HI = CLIMATEWIN_OFFS_BEGIN+17 .equ CLIMATEWIN_OFFS_UPPER_LIMIT_CRIT_LO = CLIMATEWIN_OFFS_BEGIN+18 .equ CLIMATEWIN_OFFS_UPPER_LIMIT_CRIT_HI = CLIMATEWIN_OFFS_BEGIN+19 .equ CLIMATEWIN_OFFS_LOWER_LIMIT_CRIT_LO = CLIMATEWIN_OFFS_BEGIN+20 .equ CLIMATEWIN_OFFS_LOWER_LIMIT_CRIT_HI = CLIMATEWIN_OFFS_BEGIN+21 .equ CLIMATEWIN_SIZE = CLIMATEWIN_OFFS_BEGIN+22 ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine ClimateWin_new @global ; ; @param Y pointer to GUIAPP ; @return CFLAG set of okay, cleared otherwise ; @return Y address of newly created object ClimateWin_new: bigcall GuiApp_GetRootWindow brcc ClimateWin_new_ret mov xl, r18 ; use root window as parent for main window mov xh, r19 ldi r24, LOW(CLIMATEWIN_SIZE) ldi r25, HIGH(CLIMATEWIN_SIZE) bigcall Object_Alloc ; Y=space (!r16, !r17, !X) brcc ClimateWin_new_ret rcall ClimateWin_Init ClimateWin_new_ret: ret ; @end ; --------------------------------------------------------------------------- ; @routine ClimateWin_new @global ; ; @param Y pointer to newly allocated widget data ; @param X pointer to root window ; @return CFLAG set of okay, cleared otherwise ; @clobbers any, !Y ClimateWin_Init: ldi r16, (1<