1 1 .file "LCD_functions.c"
9 16 .section .text.LCD_puts,"ax",@progbits
15 23 /* prologue: function */
16 24 /* frame size = 0 */
17 25 0000 BC01 movw r22,r24
21 29 0002 8091 0000 lds r24,gLCD_Update_Required
24 32 000a 20E0 ldi r18,lo8(0)
25 33 000c 30E0 ldi r19,hi8(0)
30 38 0010 F901 movw r30,r18
31 39 0012 E050 subi r30,lo8(-(gTextBuffer))
32 40 0014 F040 sbci r31,hi8(-(gTextBuffer))
34 42 0018 2F5F subi r18,lo8(-(1))
35 43 001a 3F4F sbci r19,hi8(-(1))
37 45 001c 422F mov r20,r18
39 47 001e FB01 movw r30,r22
40 48 0020 E20F add r30,r18
41 49 0022 F31F adc r31,r19
45 53 002a 2931 cpi r18,25
46 54 002c 3105 cpc r19,__zero_reg__
50 58 0030 E42F mov r30,r20
51 59 0032 F0E0 ldi r31,lo8(0)
52 60 0034 E050 subi r30,lo8(-(gTextBuffer))
53 61 0036 F040 sbci r31,hi8(-(gTextBuffer))
54 62 0038 1082 st Z,__zero_reg__
56 64 003a 4730 cpi r20,lo8(7)
59 67 003e 81E0 ldi r24,lo8(1)
60 68 0040 8093 0000 sts gScrollMode,r24
62 70 0044 1092 0000 sts gScroll,__zero_reg__
64 72 0048 83E0 ldi r24,lo8(3)
65 73 004a 8093 0000 sts gLCD_Start_Scroll_Timer,r24
69 77 0050 1092 0000 sts gScrollMode,__zero_reg__
71 79 0054 1092 0000 sts gScroll,__zero_reg__
74 82 0058 81E0 ldi r24,lo8(1)
75 83 005a 8093 0000 sts gLCD_Update_Required,r24
76 84 /* epilogue start */
80 89 .section .text.LCD_Clear,"ax",@progbits
85 95 /* prologue: function */
86 96 /* frame size = 0 */
88 98 0000 80E0 ldi r24,lo8(0)
89 99 0002 90E0 ldi r25,hi8(0)
91 101 0004 20E2 ldi r18,lo8(32)
93 103 0006 FC01 movw r30,r24
94 104 0008 E050 subi r30,lo8(-(gTextBuffer))
95 105 000a F040 sbci r31,hi8(-(gTextBuffer))
96 106 000c 2083 st Z,r18
97 107 000e 0196 adiw r24,1
99 109 0010 8931 cpi r24,25
100 110 0012 9105 cpc r25,__zero_reg__
101 111 0014 01F4 brne .L11
103 113 0016 1092 0000 sts gTextBuffer,__zero_reg__
104 114 /* epilogue start */
108 119 .section .text.LCD_Colon,"ax",@progbits
109 120 .global LCD_Colon
114 126 /* prologue: function */
115 127 /* frame size = 0 */
117 129 0000 8093 0000 sts gColon,r24
118 130 /* epilogue start */
122 135 .section .text.LCD_UpdateRequired,"ax",@progbits
123 136 .global LCD_UpdateRequired
124 138 LCD_UpdateRequired:
128 142 /* prologue: function */
129 143 /* frame size = 0 */
130 144 0000 982F mov r25,r24
134 148 0002 8091 0000 lds r24,gLCD_Update_Required
135 149 0006 8823 tst r24
136 150 0008 01F4 brne .L17
138 152 000a 6093 0000 sts gScrollMode,r22
140 154 000e 1092 0000 sts gScroll,__zero_reg__
142 156 0012 9093 0000 sts gLCD_Update_Required,r25
143 157 /* epilogue start */
147 162 .section .text.LCD_FlashReset,"ax",@progbits
148 163 .global LCD_FlashReset
152 168 /* prologue: function */
153 169 /* frame size = 0 */
155 171 0000 1092 0000 sts gFlashTimer,__zero_reg__
156 172 /* epilogue start */
160 177 .section .text.LCD_putc,"ax",@progbits
166 184 /* prologue: function */
167 185 /* frame size = 0 */
169 187 0000 8931 cpi r24,lo8(25)
170 188 0002 00F4 brsh .L24
172 190 0004 E82F mov r30,r24
173 191 0006 F0E0 ldi r31,lo8(0)
174 192 0008 E050 subi r30,lo8(-(gTextBuffer))
175 193 000a F040 sbci r31,hi8(-(gTextBuffer))
176 194 000c 6083 st Z,r22
180 199 .section .text.LCD_ShowTime,"ax",@progbits
181 200 .global LCD_ShowTime
186 206 0000 6F92 push r6
187 207 0002 7F92 push r7
188 208 0004 8F92 push r8
189 209 0006 9F92 push r9
190 210 0008 AF92 push r10
191 211 000a BF92 push r11
192 212 000c CF92 push r12
193 213 000e DF92 push r13
194 214 0010 EF92 push r14
195 215 0012 FF92 push r15
196 216 0014 0F93 push r16
197 217 0016 1F93 push r17
198 218 0018 DF93 push r29
199 219 001a CF93 push r28
200 220 001c 00D0 rcall .
201 221 001e 00D0 rcall .
202 222 0020 00D0 rcall .
203 223 0022 CDB7 in r28,__SP_L__
204 224 0024 DEB7 in r29,__SP_H__
205 225 /* prologue: function */
206 226 /* frame size = 6 */
207 227 0026 5B01 movw r10,r22
208 228 0028 6C01 movw r12,r24
210 230 002a 20E4 ldi r18,lo8(360000)
211 231 002c 3EE7 ldi r19,hi8(360000)
212 232 002e 45E0 ldi r20,hlo8(360000)
213 233 0030 50E0 ldi r21,hhi8(360000)
214 234 0032 0E94 0000 call __udivmodsi4
216 236 0036 3901 movw r6,r18
217 237 0038 4A01 movw r8,r20
219 239 003a B901 movw r22,r18
221 241 003c 80E0 ldi r24,lo8(0)
222 242 003e 90E0 ldi r25,hi8(0)
224 244 0040 20EC ldi r18,lo8(-360000)
225 245 0042 31E8 ldi r19,hi8(-360000)
226 246 0044 4AEF ldi r20,hlo8(-360000)
227 247 0046 5FEF ldi r21,hhi8(-360000)
228 248 0048 0E94 0000 call __mulsi3
230 250 004c 7B01 movw r14,r22
231 251 004e 8C01 movw r16,r24
233 253 0050 EA0C add r14,r10
234 254 0052 FB1C adc r15,r11
235 255 0054 0C1D adc r16,r12
236 256 0056 1D1D adc r17,r13
238 258 0058 C801 movw r24,r16
239 259 005a B701 movw r22,r14
240 260 005c 20E7 ldi r18,lo8(6000)
241 261 005e 37E1 ldi r19,hi8(6000)
242 262 0060 40E0 ldi r20,hlo8(6000)
243 263 0062 50E0 ldi r21,hhi8(6000)
244 264 0064 0E94 0000 call __udivmodsi4
245 265 0068 5901 movw r10,r18
246 266 006a 6A01 movw r12,r20
248 268 006c 80E7 ldi r24,lo8(6000)
249 269 006e 97E1 ldi r25,hi8(6000)
251 271 0070 9C01 movw r18,r24
252 272 0072 2A9D mul r18,r10
253 273 0074 C001 movw r24,r0
254 274 0076 2B9D mul r18,r11
255 275 0078 900D add r25,r0
256 276 007a 3A9D mul r19,r10
257 277 007c 900D add r25,r0
259 279 0080 A0E0 ldi r26,lo8(0)
260 280 0082 B0E0 ldi r27,hi8(0)
261 281 0084 E81A sub r14,r24
262 282 0086 F90A sbc r15,r25
263 283 0088 0A0B sbc r16,r26
264 284 008a 1B0B sbc r17,r27
265 285 008c C801 movw r24,r16
266 286 008e B701 movw r22,r14
267 287 0090 24E6 ldi r18,lo8(100)
268 288 0092 30E0 ldi r19,hi8(100)
269 289 0094 40E0 ldi r20,hlo8(100)
270 290 0096 50E0 ldi r21,hhi8(100)
271 291 0098 0E94 0000 call __udivmodsi4
272 292 009c 8901 movw r16,r18
273 293 009e 9A01 movw r18,r20
275 295 00a0 C301 movw r24,r6
276 296 00a2 6AE0 ldi r22,lo8(10)
277 297 00a4 70E0 ldi r23,hi8(10)
278 298 00a6 0E94 0000 call __udivmodhi4
279 299 00aa 6983 std Y+1,r22
281 301 00ac C301 movw r24,r6
282 302 00ae 6AE0 ldi r22,lo8(10)
283 303 00b0 70E0 ldi r23,hi8(10)
284 304 00b2 0E94 0000 call __udivmodhi4
285 305 00b6 8A83 std Y+2,r24
287 307 00b8 C501 movw r24,r10
288 308 00ba 6AE0 ldi r22,lo8(10)
289 309 00bc 70E0 ldi r23,hi8(10)
290 310 00be 0E94 0000 call __udivmodhi4
291 311 00c2 6B83 std Y+3,r22
293 313 00c4 C501 movw r24,r10
294 314 00c6 6AE0 ldi r22,lo8(10)
295 315 00c8 70E0 ldi r23,hi8(10)
296 316 00ca 0E94 0000 call __udivmodhi4
297 317 00ce 8C83 std Y+4,r24
299 319 00d0 C801 movw r24,r16
300 320 00d2 6AE0 ldi r22,lo8(10)
301 321 00d4 70E0 ldi r23,hi8(10)
302 322 00d6 0E94 0000 call __udivmodhi4
303 323 00da 6D83 std Y+5,r22
305 325 00dc C801 movw r24,r16
306 326 00de 6AE0 ldi r22,lo8(10)
307 327 00e0 70E0 ldi r23,hi8(10)
308 328 00e2 0E94 0000 call __udivmodhi4
309 329 00e6 8E83 std Y+6,r24
310 330 00e8 7E01 movw r14,r28
313 333 00ec E11C adc r14,__zero_reg__
314 334 00ee F11C adc r15,__zero_reg__
315 335 00f0 8701 movw r16,r14
318 338 00f2 87E0 ldi r24,lo8(7)
319 339 00f4 C82E mov r12,r24
320 340 00f6 D12C mov r13,__zero_reg__
321 341 00f8 CC0E add r12,r28
322 342 00fa DD1E adc r13,r29
325 345 00fc 802F mov r24,r16
326 346 00fe 8E19 sub r24,r14
327 347 0100 F801 movw r30,r16
328 348 0102 6191 ld r22,Z+
329 349 0104 8F01 movw r16,r30
330 350 0106 605D subi r22,lo8(-(48))
331 351 0108 0E94 0000 call LCD_putc
333 353 010c 0C15 cp r16,r12
334 354 010e 1D05 cpc r17,r13
335 355 0110 01F4 brne .L26
338 358 0112 86E0 ldi r24,lo8(6)
339 359 0114 60E0 ldi r22,lo8(0)
340 360 0116 0E94 0000 call LCD_putc
342 362 011a 81E0 ldi r24,lo8(1)
343 363 011c 60E0 ldi r22,lo8(0)
344 364 011e 0E94 0000 call LCD_UpdateRequired
345 365 /* epilogue start */
347 367 0122 2696 adiw r28,6
348 368 0124 0FB6 in __tmp_reg__,__SREG__
350 370 0128 DEBF out __SP_H__,r29
351 371 012a 0FBE out __SREG__,__tmp_reg__
352 372 012c CDBF out __SP_L__,r28
353 373 012e CF91 pop r28
354 374 0130 DF91 pop r29
355 375 0132 1F91 pop r17
356 376 0134 0F91 pop r16
357 377 0136 FF90 pop r15
358 378 0138 EF90 pop r14
359 379 013a DF90 pop r13
360 380 013c CF90 pop r12
361 381 013e BF90 pop r11
362 382 0140 AF90 pop r10
369 390 .section .text.LCD_printf,"ax",@progbits
370 391 .global LCD_printf
375 397 0000 EF92 push r14
376 398 0002 FF92 push r15
377 399 0004 0F93 push r16
378 400 0006 1F93 push r17
379 401 0008 DF93 push r29
380 402 000a CF93 push r28
381 403 000c CDB7 in r28,__SP_L__
382 404 000e DEB7 in r29,__SP_H__
383 405 0010 6997 sbiw r28,25
384 406 0012 0FB6 in __tmp_reg__,__SREG__
386 408 0016 DEBF out __SP_H__,r29
387 409 0018 0FBE out __SREG__,__tmp_reg__
388 410 001a CDBF out __SP_L__,r28
389 411 /* prologue: function */
390 412 /* frame size = 25 */
391 413 001c FE01 movw r30,r28
392 414 001e B296 adiw r30,34
393 415 0020 6191 ld r22,Z+
394 416 0022 7191 ld r23,Z+
396 418 0024 7E01 movw r14,r28
398 420 0028 E11C adc r14,__zero_reg__
399 421 002a F11C adc r15,__zero_reg__
400 422 002c C701 movw r24,r14
401 423 002e AF01 movw r20,r30
402 424 0030 0E94 0000 call vsprintf
403 425 0034 8C01 movw r16,r24
406 428 0036 C701 movw r24,r14
407 429 0038 0E94 0000 call LCD_puts
409 431 003c C801 movw r24,r16
410 432 /* epilogue start */
411 433 003e 6996 adiw r28,25
412 434 0040 0FB6 in __tmp_reg__,__SREG__
414 436 0044 DEBF out __SP_H__,r29
415 437 0046 0FBE out __SREG__,__tmp_reg__
416 438 0048 CDBF out __SP_L__,r28
417 439 004a CF91 pop r28
418 440 004c DF91 pop r29
419 441 004e 1F91 pop r17
420 442 0050 0F91 pop r16
422 444 0052 FF90 pop r15
423 445 0054 EF90 pop r14
427 450 .section .data.CONTRAST,"aw",@progbits
432 *ABS*:0000000000000000 LCD_functions.c
433 /tmp/ccqS7SSi.s:2 *ABS*:000000000000003f __SREG__
434 /tmp/ccqS7SSi.s:3 *ABS*:000000000000003e __SP_H__
435 /tmp/ccqS7SSi.s:4 *ABS*:000000000000003d __SP_L__
436 /tmp/ccqS7SSi.s:5 *ABS*:0000000000000034 __CCP__
437 /tmp/ccqS7SSi.s:6 *ABS*:0000000000000000 __tmp_reg__
438 /tmp/ccqS7SSi.s:7 *ABS*:0000000000000001 __zero_reg__
439 /tmp/ccqS7SSi.s:19 .text.LCD_puts:0000000000000000 LCD_puts
440 /tmp/ccqS7SSi.s:92 .text.LCD_Clear:0000000000000000 LCD_Clear
441 /tmp/ccqS7SSi.s:122 .text.LCD_Colon:0000000000000000 LCD_Colon
442 /tmp/ccqS7SSi.s:138 .text.LCD_UpdateRequired:0000000000000000 LCD_UpdateRequired
443 /tmp/ccqS7SSi.s:165 .text.LCD_FlashReset:0000000000000000 LCD_FlashReset
444 /tmp/ccqS7SSi.s:180 .text.LCD_putc:0000000000000000 LCD_putc
445 /tmp/ccqS7SSi.s:202 .text.LCD_ShowTime:0000000000000000 LCD_ShowTime
446 /tmp/ccqS7SSi.s:393 .text.LCD_printf:0000000000000000 LCD_printf
447 /tmp/ccqS7SSi.s:453 .data.CONTRAST:0000000000000000 CONTRAST
454 gLCD_Start_Scroll_Timer