more work on images on ili9341

- reading images from predefined ressources (stored at 0x8000+) works
- drawing IDX2 images within widgets works
- added some image ressources in IDX2 format
This commit is contained in:
Martin Preuss
2026-01-14 00:13:02 +01:00
parent edb8e7b859
commit 10c3f3c40d
7 changed files with 695 additions and 24 deletions

View File

@@ -14,6 +14,21 @@
; ***************************************************************************
; defs
.equ RES_IMAGE_OFFS_TYPE_LO = 0
.equ RES_IMAGE_OFFS_TYPE_HI = 1
.equ RES_IMAGE_OFFS_WIDTH_LO = 2
.equ RES_IMAGE_OFFS_WIDTH_HI = 3
.equ RES_IMAGE_OFFS_HEIGHT_LO = 4
.equ RES_IMAGE_OFFS_HEIGHT_HI = 5
.equ RES_IMAGE_OFFS_COLORMAP_LO = 6
.equ RES_IMAGE_OFFS_COLORMAP_HI = 7
.equ RES_IMAGE_OFFS_PIXELS_LO = 8
.equ RES_IMAGE_OFFS_PIXELS_HI = 9
.equ RES_IMAGE_COLORMAP_OFFS_NUM_LO = 0
.equ RES_IMAGE_COLORMAP_OFFS_NUM_HI = 1
.equ RES_IMAGE_COLORMAP_OFFS_ENTRIES = 2
; ***************************************************************************

View File

@@ -286,7 +286,6 @@ test:
.dseg

View File

@@ -24,8 +24,14 @@
.org RESSOURCE_ADDR
RessourceTable:
.dw 1
.dw (resImageNetwork*2) ; RESSSOURCE_IMG_NETWORK
.dw 7 ; num of ressources
.dw (resImageNetwork*2) ; 0: RESSSOURCE_IMG_NETWORK
.dw (resImageCloud*2) ; 1: RESSSOURCE_IMG_CLOUD
.dw (resImageTemp*2) ; 2: RESSSOURCE_IMG_TEMP
.dw (resImageHumidity*2) ; 3: RESSSOURCE_IMG_HUMIDITY
.dw (resImageLight*2) ; 4: RESSSOURCE_IMG_LIGHT
.dw (resImageWindowOpen*2) ; 5: RESSSOURCE_IMG_WINOPEN
.dw (resImageWindowClosed*2) ; 6: RESSSOURCE_IMG_WINCLOSED
@@ -89,6 +95,360 @@ resImageNetworkPixels:
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
resImageCloud:
.dw DISPLAY_IMAGETYPE_IDX2
.dw 48, 48
.dw (resImageCloudColorMap*2)
.dw (resImageCloudPixels*2)
resImageCloudColorMap:
.dw 4
.dw 0, DISPLAY_COLOR_BLACK, DISPLAY_COLOR_LIGHTGREY, DISPLAY_COLOR_LIGHTGREY
resImageCloudPixels:
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x54, 0x00, 0x07, 0xff, 0xff, 0xff, 0xd0, 0x05, 0x00, 0x00
.db 0x00, 0x05, 0xfd, 0x40, 0x1f, 0xff, 0xff, 0xff, 0xf4, 0x1f, 0x50, 0x00
.db 0x00, 0x1f, 0xff, 0xd0, 0x1f, 0xff, 0xff, 0xff, 0xfd, 0x7f, 0xf4, 0x00
.db 0x00, 0x7f, 0xff, 0xf4, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x00
.db 0x00, 0x7f, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x00
.db 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40
.db 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40
.db 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0
.db 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0
.db 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0
.db 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0
.db 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0
.db 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40
.db 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x40
.db 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x00
.db 0x00, 0x05, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x00
.db 0x00, 0x00, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0x40, 0x00
.db 0x00, 0x00, 0x05, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x54, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
resImageTemp:
.dw DISPLAY_IMAGETYPE_IDX2
.dw 48, 48
.dw (resImageTempColorMap*2)
.dw (resImageTempPixels*2)
resImageTempColorMap:
.dw 4
.dw 0, DISPLAY_COLOR_BLACK, DISPLAY_COLOR_LIGHTGREY, DISPLAY_COLOR_LIGHTGREY
resImageTempPixels:
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x05, 0x55, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x05, 0x50, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x05, 0x55, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x05, 0x50, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x05, 0x55, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x3f, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x14, 0x3f, 0xf0, 0x50, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x40, 0x3f, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0x03, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x04, 0x3f, 0xff, 0xff, 0xf0, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff, 0xfc, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x10, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x13, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x13, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x13, 0xff, 0xff, 0xff, 0xff, 0x10, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x10, 0xff, 0xff, 0xff, 0xfc, 0x10, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x04, 0xff, 0xff, 0xff, 0xfc, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x04, 0x3f, 0xff, 0xff, 0xf0, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0x03, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x40, 0x3f, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x40, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
resImageHumidity:
.dw DISPLAY_IMAGETYPE_IDX2
.dw 48, 48
.dw (resImageHumidityColorMap*2)
.dw (resImageHumidityPixels*2)
resImageHumidityColorMap:
.dw 4
.dw 0, DISPLAY_COLOR_BLACK, DISPLAY_COLOR_LIGHTGREY, DISPLAY_COLOR_LIGHTGREY
resImageHumidityPixels:
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x10, 0x3f, 0x00, 0x00, 0xf0, 0x10, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x40, 0xff, 0xc0, 0x03, 0xc0, 0x04, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x01, 0x00, 0xc0, 0xf0, 0x0f, 0x00, 0x01, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x04, 0x03, 0xc0, 0xf0, 0x0f, 0x00, 0x00, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x04, 0x03, 0xc0, 0xf0, 0x3c, 0x00, 0x00, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x10, 0x03, 0xc0, 0x30, 0x3c, 0x00, 0x00, 0x10, 0x00, 0x00
.db 0x00, 0x00, 0x10, 0x03, 0xc0, 0xf0, 0xf0, 0xf0, 0x00, 0x10, 0x00, 0x00
.db 0x00, 0x00, 0x40, 0x03, 0xc0, 0xf0, 0xc3, 0xff, 0x00, 0x04, 0x00, 0x00
.db 0x00, 0x00, 0x40, 0x00, 0xf0, 0xf3, 0xcf, 0x0f, 0x00, 0x04, 0x00, 0x00
.db 0x00, 0x00, 0x40, 0x00, 0xff, 0xcf, 0x0f, 0x03, 0xc0, 0x04, 0x00, 0x00
.db 0x00, 0x00, 0x40, 0x00, 0x0f, 0x0f, 0x0c, 0x03, 0xc0, 0x04, 0x00, 0x00
.db 0x00, 0x00, 0x40, 0x00, 0x00, 0x3c, 0x0c, 0x03, 0xc0, 0x04, 0x00, 0x00
.db 0x00, 0x00, 0x40, 0x00, 0x00, 0x3c, 0x0c, 0x03, 0xc0, 0x04, 0x00, 0x00
.db 0x00, 0x00, 0x10, 0x00, 0x00, 0xf0, 0x0f, 0x03, 0xc0, 0x10, 0x00, 0x00
.db 0x00, 0x00, 0x10, 0x00, 0x00, 0xf0, 0x0f, 0x0f, 0x00, 0x10, 0x00, 0x00
.db 0x00, 0x00, 0x04, 0x00, 0x03, 0xc0, 0x03, 0xff, 0x00, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x04, 0x00, 0x0f, 0x00, 0x03, 0xfc, 0x00, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x40, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
resImageLight:
.dw DISPLAY_IMAGETYPE_IDX2
.dw 48, 48
.dw (resImageLightColorMap*2)
.dw (resImageLightPixels*2)
resImageLightColorMap:
.dw 4
.dw 0, DISPLAY_COLOR_BLACK, DISPLAY_COLOR_LIGHTGREY, DISPLAY_COLOR_LIGHTGREY
resImageLightPixels:
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x15, 0xaa, 0xa9, 0x50, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0x6a, 0xaa, 0xaa, 0xa5, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00
.db 0x00, 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x00, 0x00
.db 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x1a, 0xaa, 0xaa, 0xaa, 0xaa, 0x90, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x06, 0xaa, 0xaa, 0xaa, 0xaa, 0x40, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x01, 0xaa, 0xaa, 0xaa, 0xa9, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x6a, 0xaa, 0xaa, 0xa4, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x6a, 0xaa, 0xaa, 0xa4, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x15, 0x55, 0x55, 0x50, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1d, 0x55, 0x55, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1d, 0x55, 0x55, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x07, 0xd5, 0x5f, 0x40, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
resImageWindowOpen:
.dw DISPLAY_IMAGETYPE_IDX2
.dw 48, 48
.dw (resImageWindowOpenColorMap*2)
.dw (resImageWindowOpenPixels*2)
resImageWindowOpenColorMap:
.dw 4
.dw 0, DISPLAY_COLOR_BLACK, DISPLAY_COLOR_LIGHTGREY, DISPLAY_COLOR_LIGHTGREY
resImageWindowOpenPixels:
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00
.db 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00
.db 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00
.db 0x00, 0x67, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xd9, 0x00
.db 0x00, 0x67, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0x50, 0x00, 0x00, 0x05, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xfd, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0x7f, 0xd9, 0x00
.db 0x00, 0x67, 0xf7, 0xf7, 0xd0, 0x00, 0x00, 0x07, 0xdf, 0xdf, 0xd9, 0x00
.db 0x00, 0x67, 0xdf, 0xdf, 0xd0, 0x00, 0x00, 0x07, 0xf7, 0xf7, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0x7f, 0xd0, 0x00, 0x00, 0x07, 0xfd, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xfd, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0x7f, 0xd9, 0x00
.db 0x00, 0x67, 0xf7, 0xf7, 0xd0, 0x00, 0x00, 0x07, 0xdf, 0xdf, 0xd9, 0x00
.db 0x00, 0x67, 0xdf, 0xdf, 0xd0, 0x00, 0x00, 0x07, 0xf7, 0xf7, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0x7f, 0xd0, 0x00, 0x00, 0x07, 0xfd, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xd0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0x50, 0x00, 0x00, 0x05, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0x50, 0x00, 0x00, 0x00, 0x00, 0x05, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0xd9, 0x00
.db 0x00, 0x67, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xd9, 0x00
.db 0x00, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x00
.db 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00
.db 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00
.db 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00
.db 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
resImageWindowClosed:
.dw DISPLAY_IMAGETYPE_IDX2
.dw 48, 48
.dw (resImageWindowClosedColorMap*2)
.dw (resImageWindowClosedPixels*2)
resImageWindowClosedColorMap:
.dw 4
.dw 0, DISPLAY_COLOR_BLACK, DISPLAY_COLOR_LIGHTGREY, DISPLAY_COLOR_LIGHTGREY
resImageWindowClosedPixels:
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00
.db 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00
.db 0x00, 0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x59, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xf7, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xdf, 0xfd, 0xfd, 0xff, 0xf7, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0x7f, 0xf7, 0xfd, 0xff, 0xdf, 0xfd, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xfd, 0xff, 0xdf, 0xfd, 0xff, 0x7f, 0xf7, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0x7f, 0xfd, 0xfd, 0xff, 0xdf, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xfd, 0xff, 0xfd, 0xff, 0xff, 0x7f, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xf7, 0xff, 0xdd, 0xff, 0xfd, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xdf, 0xff, 0x7d, 0xff, 0xf7, 0xff, 0xdf, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0x7f, 0xfd, 0xfd, 0xff, 0xdf, 0xff, 0x7f, 0xd9, 0x00
.db 0x00, 0x67, 0xfd, 0xff, 0xf7, 0xfd, 0xff, 0x7f, 0xfd, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xdf, 0xfd, 0xfd, 0xff, 0xf7, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xdf, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x67, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xd9, 0x00
.db 0x00, 0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x59, 0x00
.db 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00
.db 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00
.db 0x00, 0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xa9, 0x00
.db 0x00, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#endif

View File

@@ -11,7 +11,13 @@
#define AQH_AVR_DEVICE_C03_RESSOURCES_INC
.equ RESSSOURCE_IMG_NETWORK = 0
.equ RESSSOURCE_IMG_NETWORK = 0
.equ RESSSOURCE_IMG_CLOUD = 1
.equ RESSSOURCE_IMG_TEMP = 2
.equ RESSSOURCE_IMG_HUMIDITY = 3
.equ RESSSOURCE_IMG_LIGHT = 4
.equ RESSSOURCE_IMG_WINOPEN = 5
.equ RESSSOURCE_IMG_WINCLOSED = 6

View File

@@ -31,6 +31,10 @@ testWin_ramdata:
testWinHeader_ramdata:
.byte WIDGET_SD_SIZE
testWinBody_ramdata:
.byte WIDGET_SD_SIZE
; ***************************************************************************
; code
@@ -96,7 +100,7 @@ testWin_signalmap:
testWinHeader_flashdata:
; OBJECT
.dw 0 ; next
.dw testWinBody_flashdata*2 ; next
.dw testWin_flashdata*2 ; parent
.dw 0 ; first child
.dw 0 ; target
@@ -124,6 +128,77 @@ testWinHeader_signalmap:
testWinBody_flashdata:
; OBJECT
.dw 0 ; next
.dw testWin_flashdata*2 ; parent
.dw 0 ; first child
.dw 0 ; target
.dw 0 ; selector (ony lower 8 bits used)
.dw testWinBody_signalmap*2 ; signal map
; WIDGET
.db 0, 0 ; opts lo, hi
.dw 0 ; X
.dw STYLE_WIN_TITLE_HEIGHT ; Y
.dw DISPLAY_WIDTH ; W
.dw DISPLAY_HEIGHT-STYLE_WIN_TITLE_HEIGHT ; H
.dw STYLE_WIN_FOREGROUND ; front color
; .dw DISPLAY_COLOR_YELLOW
.dw STYLE_WIN_BACKGROUND ; back color
.dw STYLE_WIN_FONT*2 ; font
.dw testWinBody_ramdata ; ptr to SDRAM
testWinBody_signalmap:
.db 0, OBJECT_SIGNAL_CREATE, LOW(Widget_OnCreate), HIGH(Widget_OnCreate)
.db 0, WIDGET_SIGNAL_DRAW, LOW(ImageViewer_OnDraw), HIGH(ImageViewer_OnDraw)
.db 0, 0, 0, 0 ; end of table
ImageViewer_OnDraw:
bigcall Widget_GetSdramPtr ; (none)
ldd r16, Y+WIDGET_SD_OFFS_FLAGS
andi r16, (1<<WIDGET_FLAGS_DIRTY_BIT)
breq ImageViewer_OnDraw_ret
rcall Widget_Clear
push zl
push zh
ldi zl, LOW(RESSOURCE_ADDR*2)
ldi zh, HIGH(RESSOURCE_ADDR*2)
ldi r16, LOW(RESSSOURCE_IMG_CLOUD)
ldi r17, HIGH(RESSSOURCE_IMG_CLOUD)
rcall RES_GetRessource
mov r12, zl
mov r13, zh
pop zh
pop zl
brcc ImageViewer_OnDraw_done
ldi r16, LOW(DISPLAY_COLOR_DARKGREEN) ; background color
mov r0, r16
ldi r16, HIGH(DISPLAY_COLOR_DARKGREEN)
mov r1, r16
ldi r16, 4 ; X
mov r4, r16
clr r5
ldi r16, 4
mov r6, r16 ; Y
clr r7
bigcall Widget_DrawImage
ImageViewer_OnDraw_done:
bigcall Widget_GetSdramPtr ; (none)
ldd r16, Y+WIDGET_SD_OFFS_FLAGS
cbr r16, (1<<WIDGET_FLAGS_DIRTY_BIT)
std Y+WIDGET_SD_OFFS_FLAGS, r16
ImageViewer_OnDraw_ret:
sec
ret
; @end

View File

@@ -78,7 +78,7 @@
; ---------------------------------------------------------------------------
; @routine Widget_Init @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
Widget_Init:
rcall Widget_GetSdramPtr ; (none)
@@ -93,7 +93,7 @@ Widget_Init:
; ---------------------------------------------------------------------------
; @routine Widget_OnCreate @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @return CFLAG set if signal handled
; @clobbers any, !Z
@@ -108,7 +108,7 @@ Widget_OnCreate:
; ---------------------------------------------------------------------------
; @routine Widget_OnTouch @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param xl param1
; @param xh param2
; @return CFLAG set if signal handled
@@ -186,7 +186,7 @@ Widget_OnTouch_ret:
; ---------------------------------------------------------------------------
; @routine Widget_OnDraw @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param xl param1
; @param xh param2
; @return CFLAG set if signal handled
@@ -264,7 +264,7 @@ Widget_IsPointInRect_ret:
; ---------------------------------------------------------------------------
; @routine Widget_LoadDisplayRegs @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @return R1:R0 background color
; @return R3:R2 foreground color
; @return R5:R4 X
@@ -299,7 +299,7 @@ Widget_LoadDisplayRegs:
; ---------------------------------------------------------------------------
; @routine Widget_GetSdramPtr @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @return Y pointer to SDRAM data for widget
; @clobbers none
@@ -316,7 +316,7 @@ Widget_GetSdramPtr:
; ---------------------------------------------------------------------------
; @routine Widget_AddFlagsDown @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param R16 flags to add
; @clobbers R17, R18, R19, Y
@@ -354,7 +354,7 @@ Widget_AddFlagsDown_ret:
; ---------------------------------------------------------------------------
; @routine Widget_SubFlagsDown @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param R16 flags to add
; @clobbers R17, R18, R19, Y
@@ -394,7 +394,7 @@ Widget_SubFlagsDown_ret:
; ---------------------------------------------------------------------------
; @routine Widget_Clear @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
Widget_Clear:
rcall Widget_LoadDisplayRegs
@@ -414,7 +414,7 @@ Widget_Clear:
; ---------------------------------------------------------------------------
; @routine Widget_SelectColors @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param Y pointer to Widget data in SDRAM
; @return r1:r0 background color
; @return r3:r2 foreground color
@@ -457,7 +457,7 @@ Widget_SelectColors_ret:
; ---------------------------------------------------------------------------
; @routine Widget_MakeAbsPos @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param r5:r4 X0
; @param r7:r6 Y0
; @clobbers r16, r17
@@ -484,7 +484,7 @@ Widget_MakeAbsPos:
; ---------------------------------------------------------------------------
; @routine Widget_FillRect @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param r3:r2 color
; @param r5:r4 X0
; @param r7:r6 Y0
@@ -503,7 +503,7 @@ Widget_FillRect:
; ---------------------------------------------------------------------------
; @routine Widget_DrawBorder @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param r3:r2 color
; @clobbers any, !Z
@@ -519,10 +519,33 @@ Widget_DrawBorder:
; ---------------------------------------------------------------------------
; @routine Widget_DrawImage @global
;
; @param Z byte address of widget object (for LPM!)
; @param R1:R0 background color
; @param R5:R4 X relative to widget
; @param R7:R6 Y relative to widget
; @param R13:R12 byte address pointer to image in FLASH (for LPM!)
Widget_DrawImage:
rcall widgetCalcAbsPosAndBorders
push zl
push zh
mov zl, r12
mov zh, r13
bigcall ili9341ImageDraw
pop zh
pop zl
ret
; @end
; ---------------------------------------------------------------------------
; @routine Widget_DrawTextFlash @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param R5:R4 X relative to widget
; @param R7:R6 Y relative to widget
; @param R13:R12 byte address pointer to text in flash (for LPM!)
@@ -539,7 +562,7 @@ Widget_DrawTextFlash:
; ---------------------------------------------------------------------------
; @routine Widget_DrawColoredTextFlash @global
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param R1:R0 background color
; @param R3:R2 foreground color
; @param R5:R4 X relative to widget
@@ -575,7 +598,7 @@ Widget_DrawColoredTextFlash_loopEnd:
; ---------------------------------------------------------------------------
; @routine widgetCalcAbsPosAndBorders
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param R5:R4 X relative to widget
; @param R7:R6 Y relative to widget
; @return R9:R8 first X pos right of widget
@@ -615,7 +638,7 @@ widgetCalcAbsPosAndBorders:
; ---------------------------------------------------------------------------
; @routine widgetDrawChar
;
; @param Z byte address of object (for LPM!)
; @param Z byte address of widget object (for LPM!)
; @param R16 char to write
; @param R5:R4 absolute X on screen
; @param R7:R6 absolute Y on screen
@@ -675,7 +698,7 @@ widgetDrawChar_done:
; ---------------------------------------------------------------------------
; @routine Widget_Tree_Init @global
;
; @param Z byte address of root object (for LPM!)
; @param Z byte address of root widget object (for LPM!)
Widget_Tree_Init:
push zl
@@ -700,7 +723,7 @@ Widget_Tree_Init_loopEnd:
; ---------------------------------------------------------------------------
; @routine Widget_Tree_Draw @global
;
; @param Z byte address of root object (for LPM!)
; @param Z byte address of root widget object (for LPM!)
Widget_Tree_Draw:
ldi r16, WIDGET_SIGNAL_DRAW

View File

@@ -15,5 +15,198 @@
.equ DISPLAY_IMAGETYPE_IDX2 = 1 ; 2 bit indexed image
; ***************************************************************************
; data
.dseg
ili9341ImageColormap:
.byte 8
; ***************************************************************************
; code
.cseg
; ---------------------------------------------------------------------------
; @routine ili9341ImageDraw
; @param R1:R0 background color
; @param R5:R4 X (dest)
; @param R7:R6 Y (dest)
; @param Z pointer to image
; @clobbers any
ili9341ImageDraw:
adiw zh:zl, RES_IMAGE_OFFS_TYPE_LO
lpm r18, Z+
lpm r19, Z
sbiw zh:zl, RES_IMAGE_OFFS_TYPE_LO+1
tst r19
brne ili9341ImageDraw_ret
cpi r18, DISPLAY_IMAGETYPE_IDX2
breq ili9341ImageDraw_idx2
; add more here
rjmp ili9341ImageDraw_ret
ili9341ImageDraw_idx2:
rcall ili9341ImageIdx2Draw ; (any)
ili9341ImageDraw_ret:
ret
; @end
; ---------------------------------------------------------------------------
; @routine ili9341ImageIdx2Draw
; @param R1:R0 background color
; @param R5:R4 X (dest)
; @param R7:R6 Y (dest)
; @param Z pointer to IDX2 image
; @clobbers any
ili9341ImageIdx2Draw:
rcall ili9341ImageIdx2CopyColormap ; (R16, X)
; read image width and height
adiw zh:zl, RES_IMAGE_OFFS_WIDTH_LO
lpm r8, Z+ ; read width (lo)
lpm r9, Z+
lpm r10, Z+ ; read height
lpm r11, Z
adiw zh:zl, (RES_IMAGE_OFFS_PIXELS_LO-RES_IMAGE_OFFS_HEIGHT_HI) ; skip 3 bytes
lpm r16, Z+
lpm zh, Z
mov zl, r16
or r16, zh
breq ili9341ImageIdx2Draw_ret
; write image
push r15
in r15, SREG
cli
rcall ili9341BeginSpi ; (r16, r17)
rcall ili9341SetAddressWindow ; (R16, R20, R21)
ldi r16, ILI9341_CMD_RAMWR ; start writing ro RAM
rcall ili9341SendCommand
cbi SPIHW_SS_OUTPUT, SPIHW_SS_PIN ; SS low
sbi ILI9341_DC_OUTPUT, ILI9341_DC_PIN ; D high (DATA)
rcall ili9341ImageIdx2WritePixels ; (R10, R16, R18, R19, R20, R21, R22, R23, R24, R25, X, Z)
sbi SPIHW_SS_OUTPUT, SPIHW_SS_PIN ; SS high
rcall ili9341EndSpi ; (R16)
out SREG, r15
pop r15
ili9341ImageIdx2Draw_ret:
ret
; @end
; ---------------------------------------------------------------------------
; @routine ili9341ImageIdx2CopyColormap
; @param R1:R0 background color
; @param Z pointer to IDX2 image
; @clobbers r16, X
ili9341ImageIdx2CopyColormap:
; get colormap
ldi xl, LOW(ili9341ImageColormap)
ldi xh, HIGH(ili9341ImageColormap)
push zl
push zh
adiw zh:zl, RES_IMAGE_OFFS_COLORMAP_LO
lpm r16, Z+
lpm zh, Z
mov zl, r16
or r16, zh
breq ili9341ImageIdx2CopyColormap_l1 ; no color map
adiw zh:zl, 2 ; skip numOfEntries
rcall ili9341ImageReadColormap
ili9341ImageIdx2CopyColormap_l1:
pop zh
pop zl
sts ili9341ImageColormap, r0
sts ili9341ImageColormap+1, r1 ; store background color in pos 0 of colormap
ret
; @end
; ---------------------------------------------------------------------------
; @routine ili9341ImageIdx2WritePixels
; @param r9:r8 W
; @param r11:r10 H
; @param Z pointer to pixel data of IDX2 image
; @clobbers R10, R16, R18, R19, R20, R21, R22, R23, R24, R25, X, Z
ili9341ImageIdx2WritePixels:
clr r22
ili9341ImageIdx2WritePixels_vertLoop:
mov r20, r8 ; runWidth
ili9341ImageIdx2WritePixels_horizLoop:
tst r22 ; pixelCounterInByte
brne ili9341ImageIdx2WritePixels_l1
lpm r23, Z+ ; runByte
ldi r22, 4 ; 4 pixels per byte
ili9341ImageIdx2WritePixels_l1:
clr r21 ; temp (receives current pixel)
lsl r23 ; shift upper two bits into runtime var
rol r21
lsl r23
rol r21
lsl r21 ; 2 bytes per color
ldi xl, LOW(ili9341ImageColormap)
ldi xh, HIGH(ili9341ImageColormap)
add xl, r21 ; add to X -> pos in palette
adc xh, r21
sub xh, r21
ld r18, X+
ld r19, X
mov r16, r19 ; send to SPI
rcall SPIHW_MasterTransfer ; (R16)
mov r16, r18
rcall SPIHW_MasterTransfer ; (R16)
dec r22 ; pixelCounterInByte
dec r20 ; runWidth
brne ili9341ImageIdx2WritePixels_horizLoop
dec r10 ; height
brne ili9341ImageIdx2WritePixels_vertLoop
ret
; @end
; ---------------------------------------------------------------------------
; @routine ili9341ImageReadColormap
; @param X dest pointer for colormap in SDRAM (8 bytes, i.e. 4 colors by 2 bytes)
; @param Z src byte pointer of colormap (for LPM!)
ili9341ImageReadColormap:
ldi r17, 8 ; 8 bytes
ili9341ImageReadColormap_loop:
lpm r16, Z+
st X+, r16
dec r17
brne ili9341ImageReadColormap_loop
ret
; @end
#endif