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