9 16 .section .text.LCD_WriteDigit,"ax",@progbits
10 17 .global LCD_WriteDigit
17 25 /* prologue: function */
18 26 /* frame size = 0 */
19 27 0004 982F mov r25,r24
21 29 0006 6630 cpi r22,lo8(6)
22 30 0008 00F4 brsh .L10
25 33 000a 8A52 subi r24,lo8(-(-42))
26 34 000c 8135 cpi r24,lo8(81)
28 36 0010 A0E0 ldi r26,lo8(0)
29 37 0012 B0E0 ldi r27,hi8(0)
35 43 0016 9136 cpi r25,lo8(97)
38 46 001a 9F7D andi r25,lo8(-33)
42 50 001c 9A52 subi r25,lo8(-(-42))
43 51 001e E92F mov r30,r25
45 53 0020 F0E0 ldi r31,lo8(0)
50 58 0026 E050 subi r30,lo8(-(LCD_character_table))
51 59 0028 F040 sbci r31,hi8(-(LCD_character_table))
53 61 ; 213 "LCD_Driver.c" 1
54 62 002a A591 lpm r26, Z+
55 63 002c B491 lpm r27, Z
63 71 002e 862F mov r24,r22
64 72 0030 90E0 ldi r25,lo8(0)
66 74 0032 EC01 movw r28,r24
67 75 0034 C170 andi r28,lo8(1)
68 76 0036 D070 andi r29,hi8(1)
69 77 0038 60FD sbrc r22,0
71 79 003c 90EF ldi r25,lo8(-16)
76 84 0040 9FE0 ldi r25,lo8(15)
82 90 0044 70E0 ldi r23,lo8(0)
84 92 0046 6050 subi r22,lo8(-(LCD_Data))
85 93 0048 7040 sbci r23,hi8(-(LCD_Data))
87 95 004a 20E0 ldi r18,lo8(0)
88 96 004c 30E0 ldi r19,hi8(0)
91 99 004e FB01 movw r30,r22
93 101 0050 E20F add r30,r18
94 102 0052 F31F adc r31,r19
96 104 0054 4A2F mov r20,r26
98 106 0056 4F70 andi r20,lo8(15)
100 108 0058 84E0 ldi r24,4
101 109 005a B695 1: lsr r27
102 110 005c A795 ror r26
103 111 005e 8A95 dec r24
104 112 0060 01F4 brne 1b
107 115 0062 2097 sbiw r28,0
108 116 0064 01F0 breq .L8
110 118 0066 4295 swap r20
111 119 0068 407F andi r20,lo8(-16)
114 122 006a 8081 ld r24,Z
115 123 006c 8923 and r24,r25
116 124 006e 482B or r20,r24
117 125 0070 4083 st Z,r20
118 126 0072 2B5F subi r18,lo8(-(5))
119 127 0074 3F4F sbci r19,hi8(-(5))
121 129 0076 2431 cpi r18,20
122 130 0078 3105 cpc r19,__zero_reg__
123 131 007a 01F4 brne .L9
126 134 /* epilogue start */
128 136 007c DF91 pop r29
129 137 007e CF91 pop r28
132 141 .section .text.LCD_AllSegments,"ax",@progbits
133 142 .global LCD_AllSegments
138 148 /* prologue: function */
139 149 /* frame size = 0 */
141 151 0000 8111 cpse r24,__zero_reg__
142 152 0002 8FEF ldi r24,lo8(-1)
145 155 0004 20E0 ldi r18,lo8(0)
146 156 0006 30E0 ldi r19,hi8(0)
148 158 0008 F901 movw r30,r18
149 159 000a E050 subi r30,lo8(-(LCD_Data))
150 160 000c F040 sbci r31,hi8(-(LCD_Data))
152 162 000e 8083 st Z,r24
153 163 0010 2F5F subi r18,lo8(-(1))
154 164 0012 3F4F sbci r19,hi8(-(1))
156 166 0014 2431 cpi r18,20
157 167 0016 3105 cpc r19,__zero_reg__
158 168 0018 01F4 brne .L14
159 169 /* epilogue start */
163 174 .section .text.LCD_Init,"ax",@progbits
168 180 /* prologue: function */
169 181 /* frame size = 0 */
171 183 0000 80E0 ldi r24,lo8(0)
172 184 0002 0E94 0000 call LCD_AllSegments
174 186 0006 A7EE ldi r26,lo8(231)
175 187 0008 B0E0 ldi r27,hi8(231)
176 188 000a 8C91 ld r24,X
177 189 000c 8F60 ori r24,lo8(15)
178 190 000e 8C93 st X,r24
180 192 0010 87EB ldi r24,lo8(-73)
181 193 0012 8093 E500 sts 229,r24
183 195 0016 87E0 ldi r24,lo8(7)
184 196 0018 8093 E600 sts 230,r24
186 198 001c E4EE ldi r30,lo8(228)
187 199 001e F0E0 ldi r31,hi8(228)
188 200 0020 80EC ldi r24,lo8(-64)
189 201 0022 8083 st Z,r24
191 203 0024 8081 ld r24,Z
192 204 0026 8860 ori r24,lo8(8)
193 205 0028 8083 st Z,r24
195 207 002a 8C91 ld r24,X
196 208 002c 806E ori r24,lo8(-32)
197 209 002e 8C93 st X,r24
199 211 0030 1092 0000 sts gLCD_Update_Required,__zero_reg__
200 212 /* epilogue start */
204 217 .section .text.__vector_22,"ax",@progbits
205 218 .global __vector_22
209 223 0000 1F92 push __zero_reg__
210 224 0002 0F92 push r0
211 225 0004 0FB6 in r0,__SREG__
212 226 0006 0F92 push r0
213 227 0008 1124 clr __zero_reg__
214 228 000a EF92 push r14
215 229 000c FF92 push r15
216 230 000e 0F93 push r16
217 231 0010 1F93 push r17
218 232 0012 2F93 push r18
219 233 0014 3F93 push r19
220 234 0016 4F93 push r20
221 235 0018 5F93 push r21
222 236 001a 6F93 push r22
223 237 001c 7F93 push r23
224 238 001e 8F93 push r24
225 239 0020 9F93 push r25
226 240 0022 AF93 push r26
227 241 0024 BF93 push r27
228 242 0026 CF93 push r28
229 243 0028 DF93 push r29
230 244 002a EF93 push r30
231 245 002c FF93 push r31
232 246 /* prologue: Signal */
233 247 /* frame size = 0 */
235 249 002e 0091 0000 lds r16,LCD_timer.1439
236 250 0032 0150 subi r16,lo8(-(-1))
237 251 0034 0093 0000 sts LCD_timer.1439,r16
239 253 0038 8091 0000 lds r24,gScrollMode
240 254 003c 8823 tst r24
241 255 003e 01F0 breq .L20
243 257 0040 0023 tst r16
244 258 0042 01F4 brne .L21
246 260 0044 8091 0000 lds r24,gLCD_Start_Scroll_Timer
247 261 0048 8823 tst r24
248 262 004a 01F4 brne .L22
250 264 004c 81E0 ldi r24,lo8(1)
251 265 004e 8093 0000 sts gLCD_Update_Required,r24
252 266 0052 00C0 rjmp .L21
255 269 0054 8091 0000 lds r24,gLCD_Start_Scroll_Timer
256 270 0058 8150 subi r24,lo8(-(-1))
257 271 005a 8093 0000 sts gLCD_Start_Scroll_Timer,r24
258 272 005e 00C0 rjmp .L21
261 275 0060 1092 0000 sts gScroll,__zero_reg__
264 278 0064 8091 0000 lds r24,gLCD_Update_Required
265 279 0068 8130 cpi r24,lo8(1)
266 280 006a 01F0 breq .+2
267 281 006c 00C0 rjmp .L23
269 283 006e E090 0000 lds r14,gFlashTimer
270 284 0072 FF24 clr r15
272 286 0074 10E0 ldi r17,lo8(0)
274 288 0076 C0E0 ldi r28,lo8(0)
275 289 0078 D0E0 ldi r29,hi8(0)
277 291 007a 6C2F mov r22,r28
280 294 007c 8091 0000 lds r24,gScroll
281 295 0080 9927 clr r25
282 296 0082 87FD sbrc r24,7
283 297 0084 9095 com r25
284 298 0086 8C0F add r24,r28
285 299 0088 9D1F adc r25,r29
286 300 008a 97FD sbrc r25,7
287 301 008c 00C0 rjmp .L24
288 302 008e 1123 tst r17
289 303 0090 01F4 brne .L24
291 305 0092 E091 0000 lds r30,gScroll
292 306 0096 FF27 clr r31
293 307 0098 E7FD sbrc r30,7
294 308 009a F095 com r31
295 309 009c EC0F add r30,r28
296 310 009e FD1F adc r31,r29
297 311 00a0 E050 subi r30,lo8(-(gTextBuffer))
298 312 00a2 F040 sbci r31,hi8(-(gTextBuffer))
299 313 00a4 8081 ld r24,Z
302 316 00a6 F82E mov r15,r24
303 317 00a8 FF1C rol r15
304 318 00aa FF24 clr r15
305 319 00ac FF1C rol r15
307 321 00ae 8F77 andi r24,lo8(127)
310 324 00b0 01F4 brne .L26
311 325 00b2 1C2F mov r17,r28
312 326 00b4 1F5F subi r17,lo8(-(1))
313 327 00b6 00C0 rjmp .L26
316 330 00b8 80E2 ldi r24,lo8(32)
320 334 00ba FF20 tst r15
321 335 00bc 01F0 breq .L27
322 336 00be 94E0 ldi r25,lo8(4)
323 337 00c0 9E15 cp r25,r14
324 338 00c2 00F4 brsh .L27
326 340 00c4 80E2 ldi r24,lo8(32)
330 344 00c6 0E94 0000 call LCD_WriteDigit
332 346 00ca 2196 adiw r28,1
335 349 00cc C630 cpi r28,6
336 350 00ce D105 cpc r29,__zero_reg__
337 351 00d0 01F4 brne .L29
338 352 00d2 ACEE ldi r26,lo8(236)
339 353 00d4 B0E0 ldi r27,hi8(236)
341 355 00d6 FD01 movw r30,r26
342 356 00d8 E050 subi r30,lo8(-(LCD_Data-236))
343 357 00da F040 sbci r31,hi8(-(LCD_Data-236))
345 359 00dc 8081 ld r24,Z
346 360 00de 8D93 st X+,r24
348 362 00e0 81E0 ldi r24,hi8(256)
349 363 00e2 A030 cpi r26,lo8(256)
350 364 00e4 B807 cpc r27,r24
351 365 00e6 01F4 brne .L30
353 367 00e8 8091 0000 lds r24,gColon
354 368 00ec 8823 tst r24
355 369 00ee 01F0 breq .L31
357 371 00f0 81E0 ldi r24,lo8(1)
358 372 00f2 8093 F400 sts 244,r24
359 373 00f6 00C0 rjmp .L32
362 376 00f8 1092 F400 sts 244,__zero_reg__
365 379 00fc 1130 cpi r17,lo8(1)
366 380 00fe 01F4 brne .L33
368 382 0100 8AEF ldi r24,lo8(-6)
369 383 0102 00C0 rjmp .L41
372 386 0104 8091 0000 lds r24,gScroll
373 387 0108 8F5F subi r24,lo8(-(1))
375 389 010a 8093 0000 sts gScroll,r24
377 391 010e 1092 0000 sts gLCD_Update_Required,__zero_reg__
380 394 0112 0023 tst r16
381 395 0114 01F4 brne .L35
383 397 0116 83E0 ldi r24,lo8(3)
384 398 0118 8093 0000 sts LCD_timer.1439,r24
387 401 011c 8091 0000 lds r24,gFlashTimer
388 402 0120 8A30 cpi r24,lo8(10)
389 403 0122 01F4 brne .L36
391 405 0124 1092 0000 sts gFlashTimer,__zero_reg__
392 406 0128 00C0 rjmp .L38
395 409 012a 8091 0000 lds r24,gFlashTimer
396 410 012e 8F5F subi r24,lo8(-(1))
397 411 0130 8093 0000 sts gFlashTimer,r24
399 413 /* epilogue start */
401 415 0134 FF91 pop r31
402 416 0136 EF91 pop r30
403 417 0138 DF91 pop r29
404 418 013a CF91 pop r28
405 419 013c BF91 pop r27
406 420 013e AF91 pop r26
407 421 0140 9F91 pop r25
408 422 0142 8F91 pop r24
409 423 0144 7F91 pop r23
410 424 0146 6F91 pop r22
411 425 0148 5F91 pop r21
412 426 014a 4F91 pop r20
413 427 014c 3F91 pop r19
414 428 014e 2F91 pop r18
415 429 0150 1F91 pop r17
417 431 0152 0F91 pop r16
418 432 0154 FF90 pop r15
420 434 0156 EF90 pop r14
422 436 015a 0FBE out __SREG__,r0
424 438 015e 1F90 pop __zero_reg__
427 442 .global gLCD_Update_Required
428 443 .section .bss.gLCD_Update_Required,"aw",@nobits
429 446 gLCD_Update_Required:
430 447 0000 00 .skip 1,0
431 448 .global gLCD_Start_Scroll_Timer
432 449 .section .bss.gLCD_Start_Scroll_Timer,"aw",@nobits
433 452 gLCD_Start_Scroll_Timer:
434 453 0000 00 .skip 1,0
435 454 .global gFlashTimer
436 455 .section .bss.gFlashTimer,"aw",@nobits
438 459 0000 00 .skip 1,0
440 461 .section .bss.gColon,"aw",@nobits
442 465 0000 00 .skip 1,0
443 466 .global LCD_character_table
444 467 .section .progmem.data,"a",@progbits
445 470 LCD_character_table:
446 471 0000 510A .word 2641
447 472 0002 802A .word 10880
448 473 0004 0000 .word 0
449 474 0006 000A .word 2560
450 475 0008 00FF .word -256
451 476 000a 0000 .word 0
452 477 000c 5955 .word 21849
453 478 000e 1801 .word 280
454 479 0010 111E .word 7697
455 480 0012 111B .word 6929
456 481 0014 500B .word 2896
457 482 0016 411B .word 6977
458 483 0018 411F .word 8001
459 484 001a 1101 .word 273
460 485 001c 511F .word 8017
461 486 001e 511B .word 6993
462 487 0020 0000 .word 0
463 488 0022 0000 .word 0
464 489 0024 0000 .word 0
465 490 0026 0000 .word 0
466 491 0028 0000 .word 0
467 492 002a 0000 .word 0
468 493 002c 0000 .word 0
469 494 002e 510F .word 3921
470 495 0030 9139 .word 14737
471 496 0032 4114 .word 5185
472 497 0034 9131 .word 12689
473 498 0036 411E .word 7745
474 499 0038 410E .word 3649
475 500 003a 411D .word 7489
476 501 003c 500F .word 3920
477 502 003e 8020 .word 8320
478 503 0040 1015 .word 5392
479 504 0042 4886 .word -31160
480 505 0044 4014 .word 5184
481 506 0046 7805 .word 1400
482 507 0048 7085 .word -31376
483 508 004a 5115 .word 5457
484 509 004c 510E .word 3665
485 510 004e 5195 .word -27311
486 511 0050 518E .word -29103
487 512 0052 2190 .word -28639
488 513 0054 8120 .word 8321
489 514 0056 5015 .word 5456
490 515 0058 4844 .word 17480
491 516 005a 50C5 .word -15024
492 517 005c 28C0 .word -16344
493 518 005e 2820 .word 8232
494 519 0060 0950 .word 20489
495 520 0062 0000 .word 0
496 521 0064 0000 .word 0
497 522 0066 0000 .word 0
498 523 0068 0000 .word 0
499 524 006a 0000 .word 0
500 525 .section .data.LCD_timer.1439,"aw",@progbits
503 530 .comm gTextBuffer,25,1
504 531 .comm gScrollMode,1,1
505 532 .comm gScroll,1,1
506 533 .comm LCD_Data,20,1
509 *ABS*:0000000000000000 LCD_Driver.c
510 /tmp/ccJXwAbc.s:2 *ABS*:000000000000003f __SREG__
511 /tmp/ccJXwAbc.s:3 *ABS*:000000000000003e __SP_H__
512 /tmp/ccJXwAbc.s:4 *ABS*:000000000000003d __SP_L__
513 /tmp/ccJXwAbc.s:5 *ABS*:0000000000000034 __CCP__
514 /tmp/ccJXwAbc.s:6 *ABS*:0000000000000000 __tmp_reg__
515 /tmp/ccJXwAbc.s:7 *ABS*:0000000000000001 __zero_reg__
516 /tmp/ccJXwAbc.s:19 .text.LCD_WriteDigit:0000000000000000 LCD_WriteDigit
517 /tmp/ccJXwAbc.s:470 .progmem.data:0000000000000000 LCD_character_table
518 *COM*:0000000000000014 LCD_Data
519 /tmp/ccJXwAbc.s:144 .text.LCD_AllSegments:0000000000000000 LCD_AllSegments
520 /tmp/ccJXwAbc.s:177 .text.LCD_Init:0000000000000000 LCD_Init
521 /tmp/ccJXwAbc.s:446 .bss.gLCD_Update_Required:0000000000000000 gLCD_Update_Required
522 /tmp/ccJXwAbc.s:220 .text.__vector_22:0000000000000000 __vector_22
523 /tmp/ccJXwAbc.s:528 .data.LCD_timer.1439:0000000000000000 LCD_timer.1439
524 *COM*:0000000000000001 gScrollMode
525 /tmp/ccJXwAbc.s:452 .bss.gLCD_Start_Scroll_Timer:0000000000000000 gLCD_Start_Scroll_Timer
526 *COM*:0000000000000001 gScroll
527 /tmp/ccJXwAbc.s:458 .bss.gFlashTimer:0000000000000000 gFlashTimer
528 *COM*:0000000000000019 gTextBuffer
529 /tmp/ccJXwAbc.s:464 .bss.gColon:0000000000000000 gColon