; *************************************************************************** ; 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_EEPROMDUMP_ASM #define AQH_AVR_GUI2_EEPROMDUMP_ASM ; *************************************************************************** ; defines .equ EEPROMDUMP_FONT = ili9341Font6x8_1 .equ EEPROMDUMP_FONT_WIDTH = 6 .equ EEPROMDUMP_FONT_HEIGHT = 8 .equ EEPROMDUMP_BYTESPERLINE = 8 .equ EEPROMDUMP_LINESPERPAGE = 18 ; SDRAM data for EepromDump .equ EEPROMDUMP_SD_OFFS_BEGIN = WIDGET_SD_SIZE .equ EEPROMDUMP_SD_OFFS_STARTADDR_LO = EEPROMDUMP_SD_OFFS_BEGIN+0 .equ EEPROMDUMP_SD_OFFS_STARTADDR_HI = EEPROMDUMP_SD_OFFS_BEGIN+1 .equ EEPROMDUMP_SD_SIZE = EEPROMDUMP_SD_OFFS_BEGIN+2 ; *************************************************************************** ; code .cseg ; --------------------------------------------------------------------------- ; @routine SensorWatch_OnCreate @global ; ; @param Z byte address of widget object (for LPM!) ; @param XL node addr ; @param XH value id ; @return CFLAG set if signal handled ; @clobbers any, !Z EepromDump_OnCreate: bigcall OBJ_IsObject ; (none) brcc EepromDump_OnCreate_ret ; preset SDRAM bigcall Widget_GetSdramPtr ; (none) clr r16 ldi r17, EEPROMDUMP_SD_SIZE push yl push yh EepromDump_OnCreate_loop: st Y+, r16 dec r17 brne EepromDump_OnCreate_loop pop yh pop yl bigcall Widget_OnCreate EepromDump_OnCreate_ret: sec ret ; @end ; --------------------------------------------------------------------------- ; @routine EepromDump_OnUp @global ; ; @param Z byte address of object (for LPM!) EepromDump_OnUp: bigcall Widget_GetSdramPtr ; (none) ldd xl, Y+EEPROMDUMP_SD_OFFS_STARTADDR_LO ldd xh, Y+EEPROMDUMP_SD_OFFS_STARTADDR_HI ldi r16, LOW(EEPROMDUMP_BYTESPERLINE*EEPROMDUMP_LINESPERPAGE) ldi r17, HIGH(EEPROMDUMP_BYTESPERLINE*EEPROMDUMP_LINESPERPAGE) sub xl, r16 sbc xh, r17 brcc EepromDump_OnUp_set clr xl clr xh EepromDump_OnUp_set: std Y+EEPROMDUMP_SD_OFFS_STARTADDR_LO, xl std Y+EEPROMDUMP_SD_OFFS_STARTADDR_HI, xh ldd r17, Y+WIDGET_SD_OFFS_FLAGS ori r17, (1<