158 lines
3.6 KiB
NASM
158 lines
3.6 KiB
NASM
; ***************************************************************************
|
|
; copyright : (C) 2025 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_GUI_TITLEWINDOW2_ASM
|
|
#define AQH_AVR_GUI_TITLEWINDOW2_ASM
|
|
|
|
|
|
.cseg
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine TitleWindow_Init @global
|
|
;
|
|
; @param Y pointer to titledwindow data (size=TITLEWINDOW_SIZE)
|
|
|
|
TitleWindow_Init:
|
|
bigcall Window_Init
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine TitleWindow_SetFullSize @global
|
|
;
|
|
; @param Y pointer to screen object in SDRAM
|
|
; @clobbers any, !Y
|
|
|
|
TitleWindow_SetFullSize:
|
|
clr r16
|
|
std Y+WIN_OFFS_X_LO, r16
|
|
std Y+WIN_OFFS_X_HI, r16
|
|
std Y+WIN_OFFS_Y_LO, r16
|
|
std Y+WIN_OFFS_Y_HI, r16
|
|
|
|
ldi r16, LOW(DISPLAY_WIDTH)
|
|
std Y+WIN_OFFS_WIDTH_LO, r16
|
|
ldi r16, HIGH(DISPLAY_WIDTH)
|
|
std Y+WIN_OFFS_WIDTH_HI, r16
|
|
|
|
ldi r16, LOW(DISPLAY_HEIGHT)
|
|
std Y+WIN_OFFS_HEIGHT_LO, r16
|
|
ldi r16, HIGH(DISPLAY_HEIGHT)
|
|
std Y+WIN_OFFS_HEIGHT_HI, r16
|
|
|
|
ret
|
|
; @enb
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine TitleWindow_SetStyleColors @global
|
|
;
|
|
; @param Y pointer to screen object in SDRAM
|
|
; @clobbers any, !Y
|
|
|
|
TitleWindow_SetStyleColors:
|
|
ldi r16, LOW(STYLE_WIN_BACKGROUND)
|
|
ldi r17, HIGH(STYLE_WIN_BACKGROUND)
|
|
std Y+WIN_OFFS_BG_COL_LO, r16
|
|
std Y+WIN_OFFS_BG_COL_HI, r17
|
|
ldi r16, LOW(STYLE_WIN_FOREGROUND)
|
|
ldi r17, HIGH(STYLE_WIN_FOREGROUND)
|
|
std Y+WIN_OFFS_FG_COL_LO, r16
|
|
std Y+WIN_OFFS_FG_COL_HI, r17
|
|
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine TitleWindow_DrawTitle @global
|
|
;
|
|
; @param Y pointer to screen object in SDRAM
|
|
; @param Z pointer to title
|
|
; @clobbers any, !Y
|
|
|
|
TitleWindow_DrawTitle:
|
|
; fill background of title area
|
|
clr r4
|
|
clr r5
|
|
clr r6
|
|
clr r7
|
|
ldd r8, Y+WIN_OFFS_WIDTH_LO
|
|
ldd r9, Y+WIN_OFFS_WIDTH_HI
|
|
ldi r16, LOW(STYLE_WIN_TITLE_HEIGHT)
|
|
ldi r17, HIGH(STYLE_WIN_TITLE_HEIGHT)
|
|
mov r10, r16
|
|
mov r11, r17
|
|
ldi r16, LOW(STYLE_WIN_TITLE_BACKGROUND)
|
|
mov r2, r16
|
|
ldi r16, HIGH(STYLE_WIN_TITLE_BACKGROUND)
|
|
mov r3, r16
|
|
rcall Window_FillRect
|
|
|
|
; draw title
|
|
ldi r16, 5 ; X
|
|
mov r4, r16
|
|
clr r5
|
|
ldi r16, 2 ; Y
|
|
mov r6, r16
|
|
clr r7
|
|
|
|
ldi r16, LOW(STYLE_WIN_TITLE_BACKGROUND)
|
|
mov r0, r16
|
|
ldi r16, HIGH(STYLE_WIN_TITLE_BACKGROUND)
|
|
mov r1, r16
|
|
|
|
ldi r16, LOW(STYLE_WIN_TITLE_FOREGROUND)
|
|
mov r2, r16
|
|
ldi r16, HIGH(STYLE_WIN_TITLE_FOREGROUND)
|
|
mov r3, r16
|
|
bigcall Window_DrawColorTextFlash
|
|
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine TitleWindow_ClearContentArea @global
|
|
;
|
|
; @param Y pointer to screen object in SDRAM
|
|
; @clobbers any, !Y
|
|
|
|
TitleWindow_ClearContentArea:
|
|
clr r4
|
|
clr r5
|
|
ldi r16, LOW(STYLE_WIN_TITLE_HEIGHT)
|
|
mov r6, r16
|
|
ldi r16, HIGH(STYLE_WIN_TITLE_HEIGHT)
|
|
mov r7, r16
|
|
ldd r8, Y+WIN_OFFS_WIDTH_LO
|
|
ldd r9, Y+WIN_OFFS_WIDTH_HI
|
|
ldi r16, LOW(STYLE_WIN_TITLE_HEIGHT)
|
|
ldi r17, HIGH(STYLE_WIN_TITLE_HEIGHT)
|
|
ldd r10, Y+WIN_OFFS_HEIGHT_LO
|
|
ldd r11, Y+WIN_OFFS_HEIGHT_HI
|
|
sub r10, r16
|
|
sbc r11, r17
|
|
ldi r16, LOW(STYLE_WIN_BACKGROUND)
|
|
ldd r2, Y+WIN_OFFS_BG_COL_LO
|
|
ldd r3, Y+WIN_OFFS_BG_COL_HI
|
|
rcall Window_FillRect
|
|
ret
|
|
; @end
|
|
|
|
|
|
|
|
#endif
|