; *************************************************************************** ; 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_LIGHTSETTINGS_ASM #define AQH_AVR_W_LIGHTSETTINGS_ASM ; *************************************************************************** ; defines .equ LIGHTSETTINGSWIN_NUM_COLORS = 8 .equ LIGHTSETTINGSWIN_OFFS_BEGIN = MAINWINDOW_SIZE .equ LIGHTSETTINGSWIN_OFFS_ID = LIGHTSETTINGSWIN_OFFS_BEGIN+0 .equ LIGHTSETTINGSWIN_OFFS_TYPE = LIGHTSETTINGSWIN_OFFS_BEGIN+1 .equ LIGHTSETTINGSWIN_OFFS_TEXTRES_LO = LIGHTSETTINGSWIN_OFFS_BEGIN+2 .equ LIGHTSETTINGSWIN_OFFS_TEXTRES_HI = LIGHTSETTINGSWIN_OFFS_BEGIN+3 .equ LIGHTSETTINGSWIN_OFFS_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+4 .equ LIGHTSETTINGSWIN_OFFS_EEPROM_ID = LIGHTSETTINGSWIN_OFFS_BEGIN+5 ; maybe remove... .equ LIGHTSETTINGSWIN_OFFS_LEDNUM_LO = LIGHTSETTINGSWIN_OFFS_BEGIN+6 .equ LIGHTSETTINGSWIN_OFFS_LEDNUM_HI = LIGHTSETTINGSWIN_OFFS_BEGIN+7 .equ LIGHTSETTINGSWIN_OFFS_ONTIME_LO = LIGHTSETTINGSWIN_OFFS_BEGIN+8 .equ LIGHTSETTINGSWIN_OFFS_ONTIME_HI = LIGHTSETTINGSWIN_OFFS_BEGIN+9 .equ LIGHTSETTINGSWIN_OFFS_SOURCE1_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+10 .equ LIGHTSETTINGSWIN_OFFS_SOURCE1_VALUEID = LIGHTSETTINGSWIN_OFFS_BEGIN+11 .equ LIGHTSETTINGSWIN_OFFS_SOURCE2_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+12 .equ LIGHTSETTINGSWIN_OFFS_SOURCE2_VALUEID = LIGHTSETTINGSWIN_OFFS_BEGIN+13 .equ LIGHTSETTINGSWIN_OFFS_BSOURCE_NODEADDR = LIGHTSETTINGSWIN_OFFS_BEGIN+14 .equ LIGHTSETTINGSWIN_OFFS_BSOURCE_VALUEID = LIGHTSETTINGSWIN_OFFS_BEGIN+15 .equ LIGHTSETTINGSWIN_OFFS_COLORS = LIGHTSETTINGSWIN_OFFS_BEGIN+16 .equ LIGHTSETTINGSWIN_SIZE = LIGHTSETTINGSWIN_OFFS_COLORS+(LIGHTSETTINGSWIN_NUM_COLORS*2) ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine LightSettingsWin_new @global ; ; @param Y pointer to GUIAPP ; @return CFLAG set of okay, cleared otherwise ; @return Y address of newly created object LightSettingsWin_new: bigcall GuiApp_GetRootWindow brcc LightSettingsWin_new_ret mov xl, r18 ; use root window as parent for main window mov xh, r19 ldi r24, LOW(LIGHTSETTINGSWIN_SIZE) ldi r25, HIGH(LIGHTSETTINGSWIN_SIZE) bigcall Object_Alloc ; Y=space (!r16, !r17, !X) brcc LightSettingsWin_new_ret rcall LightSettingsWin_Init LightSettingsWin_new_ret: ret ; @end ; --------------------------------------------------------------------------- ; @routine LightSettingsWin_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 LightSettingsWin_Init: ldi r16, 0 ; OPTS ldi r17, (WIDGET_PACK_FILLED<