avr: started working on base system vs. main system.
base system will be a base system which can be used to flash and start the main system.
This commit is contained in:
120
avr/lcd.asm
120
avr/lcd.asm
@@ -398,7 +398,7 @@ LCD_PrintHexWord_errorNoPop:
|
||||
; ---------------------------------------------------------------------------
|
||||
; lcdPrintHexWord
|
||||
;
|
||||
; Convert a give word into HEX and write it to the current position.
|
||||
; Convert a given word into HEX and write it to the current position.
|
||||
;
|
||||
; IN:
|
||||
; - r18: low byte of the word
|
||||
@@ -554,6 +554,32 @@ lcdPrintOneChar_error:
|
||||
; REGS: r16, r17, Z
|
||||
|
||||
lcdGetCharMatrix:
|
||||
#ifdef LCD_MINIMAL_FONT
|
||||
rcall lcdUpcase
|
||||
cpi r16, 65+32
|
||||
brcc lcdGetCharMatrix_l1
|
||||
cpi r16, 32
|
||||
brcc lcdGetCharMatrix_l2
|
||||
lcdGetCharMatrix_l1:
|
||||
ldi r16, 32
|
||||
lcdGetCharMatrix_l2:
|
||||
ldi r17, 32
|
||||
sub r16, r17
|
||||
mov zl, r16
|
||||
clr zh
|
||||
clr r17
|
||||
lsl zl ; *2
|
||||
rol zh
|
||||
add zl, r16 ; *3
|
||||
adc zh, r17
|
||||
lsl zl ; *6
|
||||
rol zh
|
||||
ldi r16, LOW(lcdFont6x8Minimal*2)
|
||||
ldi r17, HIGH(lcdFont6x8Minimal*2)
|
||||
add zl, r16
|
||||
adc zh, r17
|
||||
ret
|
||||
#else
|
||||
cpi r16, 95+32
|
||||
brcc lcdGetCharMatrix_l1
|
||||
cpi r16, 32
|
||||
@@ -577,6 +603,29 @@ lcdGetCharMatrix_l2:
|
||||
add zl, r16
|
||||
adc zh, r17
|
||||
ret
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef LCD_MINIMAL_FONT
|
||||
; ---------------------------------------------------------------------------
|
||||
; Uppercase the given character if it is lower case.
|
||||
;
|
||||
; IN:
|
||||
; - R16: char
|
||||
; OUT:
|
||||
; - R16: char
|
||||
; REGS: r16, r17
|
||||
|
||||
lcdUpcase:
|
||||
cpi r16, 'a'
|
||||
brcs lcdUpcase_done
|
||||
cpi r16, 'z'+1
|
||||
brcc lcdUpcase_done
|
||||
ldi r17, 32
|
||||
sub r16, r17
|
||||
lcdUpcase_done:
|
||||
ret
|
||||
#endif
|
||||
|
||||
|
||||
; TODO: set adressing mode??
|
||||
@@ -589,6 +638,74 @@ lcdHelloMsg: .db "AqHOME 2023", 0
|
||||
|
||||
; font taken from Tiny4kOLED (https://github.com/datacute/Tiny4kOLED/tree/master/src) by Stephen Denne (MIT license),
|
||||
; original by Neven Boyanov
|
||||
#ifdef LCD_MINIMAL_FONT
|
||||
lcdFont6x8Minimal:
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; 0
|
||||
.db 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 ; ! 1
|
||||
.db 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 ; " 2
|
||||
.db 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 ; # 3
|
||||
.db 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 ; $ 4
|
||||
.db 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 ; % 5
|
||||
.db 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 ; & 6
|
||||
.db 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 ; ' 7
|
||||
.db 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 ; ( 8
|
||||
.db 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 ; ) 9
|
||||
.db 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 ; * 10
|
||||
.db 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 ; + 11
|
||||
.db 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 ; , 12
|
||||
.db 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 ; - 13
|
||||
.db 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 ; . 14
|
||||
.db 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 ; / 15
|
||||
.db 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E ; 0 16
|
||||
.db 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 ; 1 17
|
||||
.db 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 ; 2 18
|
||||
.db 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 ; 3 19
|
||||
.db 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 ; 4 20
|
||||
.db 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 ; 5 21
|
||||
.db 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 ; 6 22
|
||||
.db 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 ; 7 23
|
||||
.db 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 ; 8 24
|
||||
.db 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E ; 9 25
|
||||
.db 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 ; : 26
|
||||
.db 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 ; ; 27
|
||||
.db 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 ; < 28
|
||||
.db 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 ; = 29
|
||||
.db 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 ; > 30
|
||||
.db 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 ; ? 31
|
||||
.db 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E ; @ 32
|
||||
.db 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C ; A 33
|
||||
.db 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 ; B 34
|
||||
.db 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 ; C 35
|
||||
.db 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C ; D 36
|
||||
.db 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 ; E 37
|
||||
.db 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 ; F 38
|
||||
.db 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A ; G 39
|
||||
.db 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F ; H 40
|
||||
.db 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 ; I 41
|
||||
.db 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 ; J 42
|
||||
.db 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 ; K 43
|
||||
.db 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 ; L 44
|
||||
.db 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F ; M 45
|
||||
.db 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F ; N 46
|
||||
.db 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E ; O 47
|
||||
.db 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 ; P 48
|
||||
.db 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E ; Q 49
|
||||
.db 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 ; R 50
|
||||
.db 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 ; S 51
|
||||
.db 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 ; T 52
|
||||
.db 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F ; U 53
|
||||
.db 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F ; V 54
|
||||
.db 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F ; W 55
|
||||
.db 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 ; X 56
|
||||
.db 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 ; Y 57
|
||||
.db 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 ; Z 58
|
||||
.db 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 ; [ 59
|
||||
.db 0x00, 0x02, 0x04, 0x08, 0x10, 0x20 ; \ 60
|
||||
.db 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 ; ] 61
|
||||
.db 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 ; ^ 62
|
||||
.db 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 ; _ 63
|
||||
.db 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 ; ' 64
|
||||
#else
|
||||
lcdFont6x8:
|
||||
.db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ; 0
|
||||
.db 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 ; ! 1
|
||||
@@ -685,6 +802,7 @@ lcdFont6x8:
|
||||
.db 0x00, 0x00, 0x00, 0x7F, 0x00, 0x00 ; | 92
|
||||
.db 0x00, 0x00, 0x41, 0x41, 0x36, 0x08 ; } 93
|
||||
.db 0x00, 0x08, 0x04, 0x08, 0x10, 0x08 ; ~ 94
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user