avr: added titled windows
This commit is contained in:
@@ -247,6 +247,7 @@
|
|||||||
|
|
||||||
#ifdef MODULES_ILI9341
|
#ifdef MODULES_ILI9341
|
||||||
.include "modules/lcd2/ili9341/defs.asm"
|
.include "modules/lcd2/ili9341/defs.asm"
|
||||||
|
.include "modules/lcd2/ili9341/colors.asm"
|
||||||
.include "modules/lcd2/ili9341/main.asm"
|
.include "modules/lcd2/ili9341/main.asm"
|
||||||
.include "modules/lcd2/ili9341/io_spi.asm"
|
.include "modules/lcd2/ili9341/io_spi.asm"
|
||||||
.include "modules/lcd2/ili9341/graphops.asm"
|
.include "modules/lcd2/ili9341/graphops.asm"
|
||||||
|
|||||||
@@ -213,6 +213,14 @@ onEveryLoop:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
test:
|
||||||
|
#ifdef MODULES_GUI
|
||||||
|
bigcall WinNetStats_Init
|
||||||
|
#endif
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
@@ -223,6 +231,7 @@ onEveryLoop:
|
|||||||
|
|
||||||
;.include "common/debug.asm"
|
;.include "common/debug.asm"
|
||||||
|
|
||||||
|
.include "modules/lcd2/gui/titledwindow.asm"
|
||||||
;.include "modules/lcd2/font/font2.asm"
|
;.include "modules/lcd2/font/font2.asm"
|
||||||
;.include "modules/lcd2/font/font3.asm"
|
;.include "modules/lcd2/font/font3.asm"
|
||||||
;.include "modules/lcd2/font/font16x26.asm"
|
;.include "modules/lcd2/font/font16x26.asm"
|
||||||
@@ -234,6 +243,9 @@ onEveryLoop:
|
|||||||
;.include "common/tree_t.asm"
|
;.include "common/tree_t.asm"
|
||||||
;.include "common/divide.asm"
|
;.include "common/divide.asm"
|
||||||
|
|
||||||
|
.include "modules/lcd2/gui/style.asm"
|
||||||
|
.include "win_netstats.asm"
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; defines for network interface
|
; defines for network interface
|
||||||
@@ -245,93 +257,9 @@ onEveryLoop:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
test:
|
|
||||||
#ifdef MODULES_GUI
|
|
||||||
ldi yl, LOW(mainWindow)
|
|
||||||
ldi yh, HIGH(mainWindow)
|
|
||||||
ldi zl, LOW(mainWindowInFlash*2);
|
|
||||||
ldi zh, HIGH(mainWindowInFlash*2);
|
|
||||||
ldi r17, WIN_SIZE
|
|
||||||
testCopyWinLoop:
|
|
||||||
lpm r16, Z+
|
|
||||||
st Y+, r16
|
|
||||||
dec r17
|
|
||||||
brne testCopyWinLoop
|
|
||||||
|
|
||||||
ldi yl, LOW(mainWindow)
|
|
||||||
ldi yh, HIGH(mainWindow)
|
|
||||||
bigcall Window_Clear
|
|
||||||
#if 1
|
|
||||||
ldi zl, LOW(mainWindowTitle*2)
|
|
||||||
ldi zh, HIGH(mainWindowTitle*2)
|
|
||||||
; print title at 10/2
|
|
||||||
ldi r16, 10
|
|
||||||
mov r4, r16
|
|
||||||
clr r5
|
|
||||||
ldi r16, 2
|
|
||||||
mov r6, r16
|
|
||||||
clr r7
|
|
||||||
bigcall Window_DrawTextFlash
|
|
||||||
#else
|
|
||||||
ldi zl, LOW(ili9341Font6x8_1*2)
|
|
||||||
ldi zh, HIGH(ili9341Font6x8_1*2)
|
|
||||||
|
|
||||||
ldi r16, LOW(0b0000000000000000)
|
|
||||||
mov r0, r16
|
|
||||||
ldi r16, HIGH(0b0000000000000000)
|
|
||||||
mov r1, r16
|
|
||||||
|
|
||||||
ldi r16, LOW(0b1111111111111111)
|
|
||||||
mov r2, r16
|
|
||||||
ldi r16, HIGH(0b1111111111111111)
|
|
||||||
mov r3, r16
|
|
||||||
|
|
||||||
ldi r16, 10
|
|
||||||
mov r4, r16
|
|
||||||
clr r5
|
|
||||||
ldi r16, 20
|
|
||||||
mov r6, r16
|
|
||||||
clr r7
|
|
||||||
|
|
||||||
ldi r16, 'A'
|
|
||||||
bigcall Display_DrawChar
|
|
||||||
|
|
||||||
add r4, r18
|
|
||||||
adc r5, r19
|
|
||||||
|
|
||||||
ldi r16, 'B'
|
|
||||||
bigcall Display_DrawChar
|
|
||||||
|
|
||||||
#endif
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
testHandler:
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef MODULES_GUI
|
|
||||||
mainWindowInFlash:
|
|
||||||
.dw testHandler ; handler
|
|
||||||
.dw 0 ; X
|
|
||||||
.dw 0 ; Y
|
|
||||||
.dw DISPLAY_WIDTH
|
|
||||||
.dw DISPLAY_HEIGHT
|
|
||||||
; 0bRRRRRGGGGGGBBBBB
|
|
||||||
.dw 0b0000000000011111 ; blue
|
|
||||||
; .dw 0b1111100000000000 ; red
|
|
||||||
.dw 0b1111111111111111 ; white
|
|
||||||
.dw (ili9341Font6x8_1*2)
|
|
||||||
|
|
||||||
mainWindowTitle: .db "AQHOME", 0, 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.dseg
|
.dseg
|
||||||
|
|
||||||
mainWindow: .byte WIN_SIZE
|
|
||||||
|
|
||||||
heapStart:
|
heapStart:
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
67
avr/devices/c02/main/win_netstats.asm
Normal file
67
avr/devices/c02/main/win_netstats.asm
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
; ***************************************************************************
|
||||||
|
; 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_DEVICE_C02_WIN_NETSTATS_ASM
|
||||||
|
#define AQH_AVR_DEVICE_C02_WIN_NETSTATS_ASM
|
||||||
|
|
||||||
|
|
||||||
|
.cseg
|
||||||
|
|
||||||
|
|
||||||
|
WinNetStats_Init:
|
||||||
|
; setup
|
||||||
|
ldi yl, LOW(winNetstats)
|
||||||
|
ldi yh, HIGH(winNetstats)
|
||||||
|
rcall TitleWindow_Init
|
||||||
|
|
||||||
|
ldi zl, LOW(ili9341Font6x8_1*2)
|
||||||
|
ldi zh, HIGH(ili9341Font6x8_1*2)
|
||||||
|
bigcall TitleWindow_SetFont
|
||||||
|
|
||||||
|
ldi r16, LOW(winNetstats_title*2)
|
||||||
|
std Y+TITLEDWINDOW_OFFS_TITLEPTR_LO, r16
|
||||||
|
ldi r16, HIGH(winNetstats_title*2)
|
||||||
|
std Y+TITLEDWINDOW_OFFS_TITLEPTR_HI, r16
|
||||||
|
|
||||||
|
; setup size and pos
|
||||||
|
clr r4
|
||||||
|
clr r5
|
||||||
|
clr r6
|
||||||
|
clr r7
|
||||||
|
ldi r16, LOW(DISPLAY_WIDTH)
|
||||||
|
mov r8, r16
|
||||||
|
ldi r16, HIGH(DISPLAY_WIDTH)
|
||||||
|
mov r9, r16
|
||||||
|
ldi r16, LOW(DISPLAY_HEIGHT)
|
||||||
|
mov r10, r16
|
||||||
|
ldi r16, HIGH(DISPLAY_HEIGHT)
|
||||||
|
mov r11, r16
|
||||||
|
bigcall TitleWindow_SetPosAndSize
|
||||||
|
|
||||||
|
; setup colors
|
||||||
|
bigcall TitleWindow_SetStyleColors
|
||||||
|
|
||||||
|
bigcall TitleWindow_Draw
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
winNetstats_title: .db "Network Statistics", 0, 0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.dseg
|
||||||
|
|
||||||
|
winNetstats:
|
||||||
|
.byte TITLEDWINDOW_SIZE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -5,6 +5,8 @@
|
|||||||
<extradist>
|
<extradist>
|
||||||
defs.asm
|
defs.asm
|
||||||
main.asm
|
main.asm
|
||||||
|
style.asm
|
||||||
|
titledwindow.asm
|
||||||
window.asm
|
window.asm
|
||||||
</extradist>
|
</extradist>
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.equ WIN_EVENT_DESTROY = 1
|
||||||
|
.equ WIN_EVENT_SHOW = 2
|
||||||
|
.equ WIN_EVENT_HIDE = 3
|
||||||
|
.equ WIN_EVENT_DRAW = 4
|
||||||
|
.equ WIN_EVENT_TIMER = 5
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
24
avr/modules/lcd2/gui/style.asm
Normal file
24
avr/modules/lcd2/gui/style.asm
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
; ***************************************************************************
|
||||||
|
; 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_STYLE_ASM
|
||||||
|
#define AQH_AVR_GUI_STYLE_ASM
|
||||||
|
|
||||||
|
|
||||||
|
.equ STYLE_WIN_TITLE_BACKGROUND = DISPLAY_COLOR_NAVY
|
||||||
|
.equ STYLE_WIN_TITLE_FOREGROUND = DISPLAY_COLOR_WHITE
|
||||||
|
.equ STYLE_WIN_BACKGROUND = DISPLAY_COLOR_LIGHTGREY
|
||||||
|
.equ STYLE_WIN_FOREGROUND = DISPLAY_COLOR_BLACK
|
||||||
|
|
||||||
|
|
||||||
|
.equ STYLE_WIN_TITLE_HEIGHT = 20
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
214
avr/modules/lcd2/gui/titledwindow.asm
Normal file
214
avr/modules/lcd2/gui/titledwindow.asm
Normal file
@@ -0,0 +1,214 @@
|
|||||||
|
; ***************************************************************************
|
||||||
|
; 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_TITLEDWINDOW_ASM
|
||||||
|
#define AQH_AVR_GUI_TITLEDWINDOW_ASM
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.equ TITLEDWINDOW_OFFS_SELF = 0
|
||||||
|
.equ TITLEDWINDOW_OFFS_TITLEPTR_LO = WIN_SIZE
|
||||||
|
.equ TITLEDWINDOW_OFFS_TITLEPTR_HI = WIN_SIZE+1
|
||||||
|
.equ TITLEDWINDOW_OFFS_TITLEWIN = TITLEDWINDOW_OFFS_TITLEPTR_HI+1
|
||||||
|
.equ TITLEDWINDOW_OFFS_CONTENTWIN = TITLEDWINDOW_OFFS_TITLEWIN+WIN_SIZE
|
||||||
|
.equ TITLEDWINDOW_SIZE = TITLEDWINDOW_OFFS_CONTENTWIN+WIN_SIZE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.cseg
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine TitleWindow_Init @global
|
||||||
|
;
|
||||||
|
; @param Y pointer to titledwindow data (size=TITLEDWINDOW_SIZE)
|
||||||
|
|
||||||
|
TitleWindow_Init:
|
||||||
|
mov xl, yl
|
||||||
|
mov xh, yh
|
||||||
|
ldi r17, TITLEDWINDOW_SIZE
|
||||||
|
clr r16
|
||||||
|
bigcall Utils_FillSram ; (R17, X)
|
||||||
|
|
||||||
|
ldi r16, LOW(TitleWindow_Handler)
|
||||||
|
std Y+(TITLEDWINDOW_OFFS_SELF+WIN_OFFS_HANDLER_LO), r16
|
||||||
|
ldi r16, HIGH(TitleWindow_Handler)
|
||||||
|
std Y+(TITLEDWINDOW_OFFS_SELF+WIN_OFFS_HANDLER_HI), r16
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine TitleWindow_SetFont @global
|
||||||
|
;
|
||||||
|
; @param Y pointer to screen object in SDRAM
|
||||||
|
; @param Z pointer to font
|
||||||
|
; @clobbers any, !Y
|
||||||
|
|
||||||
|
TitleWindow_SetFont:
|
||||||
|
std Y+WIN_OFFS_FONT_LO, zl
|
||||||
|
std Y+WIN_OFFS_FONT_HI, zh
|
||||||
|
|
||||||
|
; setup title window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
std Y+WIN_OFFS_FONT_LO, zl
|
||||||
|
std Y+WIN_OFFS_FONT_HI, zh
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
|
||||||
|
; setup content window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
std Y+WIN_OFFS_FONT_LO, zl
|
||||||
|
std Y+WIN_OFFS_FONT_HI, zh
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine TitleWindow_SetPosAndSize @global
|
||||||
|
;
|
||||||
|
; @param Y pointer to screen object in SDRAM
|
||||||
|
; @param R5:R4 X (abs)
|
||||||
|
; @param R7:R6 Y (abs)
|
||||||
|
; @param R9:R8 W
|
||||||
|
; @param R11:R10 H
|
||||||
|
; @clobbers any, !Y
|
||||||
|
|
||||||
|
TitleWindow_SetPosAndSize:
|
||||||
|
std Y+WIN_OFFS_X_LO, r4
|
||||||
|
std Y+WIN_OFFS_X_HI, r5
|
||||||
|
std Y+WIN_OFFS_Y_LO, r6
|
||||||
|
std Y+WIN_OFFS_Y_HI, r7
|
||||||
|
std Y+WIN_OFFS_WIDTH_LO, r8
|
||||||
|
std Y+WIN_OFFS_WIDTH_HI, r9
|
||||||
|
std Y+WIN_OFFS_HEIGHT_LO, r10
|
||||||
|
std Y+WIN_OFFS_HEIGHT_HI, r11
|
||||||
|
|
||||||
|
; setup title window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
std Y+WIN_OFFS_X_LO, r4
|
||||||
|
std Y+WIN_OFFS_X_HI, r5
|
||||||
|
std Y+WIN_OFFS_Y_LO, r6
|
||||||
|
std Y+WIN_OFFS_Y_HI, r7
|
||||||
|
std Y+WIN_OFFS_WIDTH_LO, r8
|
||||||
|
std Y+WIN_OFFS_WIDTH_HI, r9
|
||||||
|
ldi r16, LOW(STYLE_WIN_TITLE_HEIGHT)
|
||||||
|
ldi r17, HIGH(STYLE_WIN_TITLE_HEIGHT)
|
||||||
|
std Y+WIN_OFFS_HEIGHT_LO, r16
|
||||||
|
std Y+WIN_OFFS_HEIGHT_HI, r17
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
|
||||||
|
; setup content window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
std Y+WIN_OFFS_X_LO, r4
|
||||||
|
std Y+WIN_OFFS_X_HI, r5
|
||||||
|
ldi r16, LOW(STYLE_WIN_TITLE_HEIGHT)
|
||||||
|
ldi r17, HIGH(STYLE_WIN_TITLE_HEIGHT)
|
||||||
|
add r16, r6
|
||||||
|
adc r16, r7
|
||||||
|
std Y+WIN_OFFS_Y_LO, r16
|
||||||
|
std Y+WIN_OFFS_Y_HI, r17
|
||||||
|
std Y+WIN_OFFS_WIDTH_LO, r8
|
||||||
|
std Y+WIN_OFFS_WIDTH_HI, r9
|
||||||
|
mov r16, r10
|
||||||
|
mov r17, r11
|
||||||
|
subi r16, LOW(STYLE_WIN_TITLE_HEIGHT)
|
||||||
|
sbci r17, HIGH(STYLE_WIN_TITLE_HEIGHT)
|
||||||
|
std Y+WIN_OFFS_HEIGHT_LO, r16
|
||||||
|
std Y+WIN_OFFS_HEIGHT_HI, r17
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
; setup title window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
ldi r16, LOW(STYLE_WIN_TITLE_BACKGROUND)
|
||||||
|
ldi r17, HIGH(STYLE_WIN_TITLE_BACKGROUND)
|
||||||
|
std Y+WIN_OFFS_BG_COL_LO, r16
|
||||||
|
std Y+WIN_OFFS_BG_COL_HI, r17
|
||||||
|
ldi r16, LOW(STYLE_WIN_TITLE_FOREGROUND)
|
||||||
|
ldi r17, HIGH(STYLE_WIN_TITLE_FOREGROUND)
|
||||||
|
std Y+WIN_OFFS_FG_COL_LO, r16
|
||||||
|
std Y+WIN_OFFS_FG_COL_HI, r17
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
|
||||||
|
; setup content window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
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
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine TitleWindow_Draw @global
|
||||||
|
;
|
||||||
|
; @param Y pointer to titledwindow data (size=TITLEDWINDOW_SIZE)
|
||||||
|
|
||||||
|
TitleWindow_Draw:
|
||||||
|
; draw title window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
rcall Window_Clear
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
|
||||||
|
; write header
|
||||||
|
ldd zl, Y+TITLEDWINDOW_OFFS_TITLEPTR_LO
|
||||||
|
ldd zh, Y+TITLEDWINDOW_OFFS_TITLEPTR_HI
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
ldi r16, 5
|
||||||
|
mov r4, r16
|
||||||
|
clr r5
|
||||||
|
ldi r16, 5
|
||||||
|
mov r6, r16
|
||||||
|
clr r7
|
||||||
|
rcall Window_DrawTextFlash
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_TITLEWIN
|
||||||
|
|
||||||
|
; clear content window
|
||||||
|
adiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
rcall Window_Clear
|
||||||
|
sbiw yh:yl, TITLEDWINDOW_OFFS_CONTENTWIN
|
||||||
|
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
TitleWindow_Handler:
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -15,9 +15,30 @@
|
|||||||
; FEDCBA9876543210
|
; FEDCBA9876543210
|
||||||
; 0bRRRRRGGGGGGBBBBB
|
; 0bRRRRRGGGGGGBBBBB
|
||||||
|
|
||||||
#define DISPLAY_COLOR_FROM_RGB(r, g, b) ((r<<11) | (g<<5) | (b & 0x1f))
|
;#define DISPLAY_COLOR_FROM_RGB(r, g, b) ((r<<11) | (g<<5) | (b & 0x1f))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.equ DISPLAY_COLOR_BLACK = 0x0000 ; 0, 0, 0
|
||||||
|
.equ DISPLAY_COLOR_NAVY = 0x000F ; 0, 0, 128
|
||||||
|
.equ DISPLAY_COLOR_DARKGREEN = 0x03E0 ; 0, 128, 0
|
||||||
|
.equ DISPLAY_COLOR_DARKCYAN = 0x03EF ; 0, 128, 128
|
||||||
|
.equ DISPLAY_COLOR_MAROON = 0x7800 ; 128, 0, 0
|
||||||
|
.equ DISPLAY_COLOR_PURPLE = 0x780F ; 128, 0, 128
|
||||||
|
.equ DISPLAY_COLOR_OLIVE = 0x7BE0 ; 128, 128, 0
|
||||||
|
.equ DISPLAY_COLOR_LIGHTGREY = 0xC618 ; 192, 192, 192
|
||||||
|
.equ DISPLAY_COLOR_DARKGREY = 0x7BEF ; 128, 128, 128
|
||||||
|
.equ DISPLAY_COLOR_BLUE = 0x001F ; 0, 0, 255
|
||||||
|
.equ DISPLAY_COLOR_GREEN = 0x07E0 ; 0, 255, 0
|
||||||
|
.equ DISPLAY_COLOR_CYAN = 0x07FF ; 0, 255, 255
|
||||||
|
.equ DISPLAY_COLOR_RED = 0xF800 ; 255, 0, 0
|
||||||
|
.equ DISPLAY_COLOR_MAGENTA = 0xF81F ; 255, 0, 255
|
||||||
|
.equ DISPLAY_COLOR_YELLOW = 0xFFE0 ; 255, 255, 0
|
||||||
|
.equ DISPLAY_COLOR_WHITE = 0xFFFF ; 255, 255, 255
|
||||||
|
.equ DISPLAY_COLOR_ORANGE = 0xFD20 ; 255, 165, 0
|
||||||
|
.equ DISPLAY_COLOR_GREENYELLOW = 0xAFE5 ; 173, 255, 47
|
||||||
|
.equ DISPLAY_COLOR_PINK = 0xF81F
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ ili9341Font12x20MonoHandlerFn:
|
|||||||
ili9341Font12x20MonoRenderChar:
|
ili9341Font12x20MonoRenderChar:
|
||||||
push zl
|
push zl
|
||||||
push zh
|
push zh
|
||||||
rcall ili9341Font12x20GetCharPosInFont ; (r17, r24, r25, z)
|
rcall ili9341Font12x20GetCharPosInFont ; (r24, r25, z)
|
||||||
ldi r25, 20 ; 20 bytes height
|
ldi r25, 20 ; 20 bytes height
|
||||||
ili9341Font12x20MonoRenderChar_loop1:
|
ili9341Font12x20MonoRenderChar_loop1:
|
||||||
ldi r24, 12 ; 16 bits
|
ldi r24, 12 ; 16 bits
|
||||||
@@ -68,10 +68,10 @@ ili9341Font12x20MonoRenderChar_writeForeground:
|
|||||||
mov r18, r2
|
mov r18, r2
|
||||||
mov r19, r3
|
mov r19, r3
|
||||||
ili9341Font12x20MonoRenderChar_sendToDisplay:
|
ili9341Font12x20MonoRenderChar_sendToDisplay:
|
||||||
mov r16, r18
|
|
||||||
rcall SPIHW_MasterTransfer ; (R16)
|
|
||||||
mov r16, r19
|
mov r16, r19
|
||||||
rcall SPIHW_MasterTransfer ; (R16)
|
rcall SPIHW_MasterTransfer ; (R16)
|
||||||
|
mov r16, r18
|
||||||
|
rcall SPIHW_MasterTransfer ; (R16)
|
||||||
ili9341Font12x20MonoRenderChar_loop2end:
|
ili9341Font12x20MonoRenderChar_loop2end:
|
||||||
dec r24
|
dec r24
|
||||||
brne ili9341Font12x20MonoRenderChar_loop2
|
brne ili9341Font12x20MonoRenderChar_loop2
|
||||||
@@ -92,7 +92,7 @@ ili9341Font12x20MonoRenderChar_loop2end:
|
|||||||
; @param R16 character to write
|
; @param R16 character to write
|
||||||
; @param Z pointer to font
|
; @param Z pointer to font
|
||||||
; @return Z pointer to begin of char data
|
; @return Z pointer to begin of char data
|
||||||
; @clobbers r17, r24, r25, z
|
; @clobbers r24, r25, z
|
||||||
|
|
||||||
ili9341Font12x20GetCharPosInFont:
|
ili9341Font12x20GetCharPosInFont:
|
||||||
mov r24, r16
|
mov r24, r16
|
||||||
|
|||||||
Reference in New Issue
Block a user