; *************************************************************************** ; 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_IMAGEVIEW_ASM #define AQH_AVR_GUI2_IMAGEVIEW_ASM ; *************************************************************************** ; defines ; IMGVIEW in flash .equ IMGVIEW_OFFS_IMGVIEW = WIDGET_SIZE .equ IMGVIEW_OFFS_RESSOURCEID_LO = IMGVIEW_OFFS_IMGVIEW+0 .equ IMGVIEW_OFFS_RESSOURCEID_HI = IMGVIEW_OFFS_IMGVIEW+1 .equ IMGVIEW_SIZE = IMGVIEW_OFFS_IMGVIEW+2 ; SDRAM data for IMGVIEW .equ IMGVIEW_SD_OFFS_IMGVIEW = WIDGET_SD_SIZE .equ IMGVIEW_SD_OFFS_BGCOL_LO = IMGVIEW_SD_OFFS_IMGVIEW+0 .equ IMGVIEW_SD_OFFS_BGCOL_HI = IMGVIEW_SD_OFFS_IMGVIEW+1 .equ IMGVIEW_SD_SIZE = IMGVIEW_SD_OFFS_IMGVIEW+2 ; signals .equ IMGVIEW_SIGNAL_SETBGCOL = WIDGET_SIGNAL_NEXTFREE+0 .equ IMGVIEW_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 ImageView_OnCreate: bigcall Widget_OnCreate bigcall Widget_GetSdramPtr ; (none) adiw zh:zl, WIDGET_OFFS_BACKCOL_LO lpm r16, Z+ lpm r17, Z sbiw zh:zl, WIDGET_OFFS_BACKCOL_LO+1 std Y+IMGVIEW_SD_OFFS_BGCOL_LO, r16 std Y+IMGVIEW_SD_OFFS_BGCOL_HI, r17 sec ret ; @end ; --------------------------------------------------------------------------- ; @routine ImageView_OnSetBgCol @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 ImageView_OnSetBgCol: bigcall OBJ_IsObject ; (none) brcc ImageView_OnSetBgCol_ret push zl push zh rcall Widget_GetSdramPtr ; (none) std Y+IMGVIEW_SD_OFFS_BGCOL_LO, xl std Y+IMGVIEW_SD_OFFS_BGCOL_HI, xh ldd r17, Y+WIDGET_SD_OFFS_FLAGS ori r17, (1<