matemat/lcd_routines.lst

503 lines
16 KiB
Plaintext

1 .file "lcd_routines.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:
17 lcd_enable:
18 .LFB6:
19 .LM1:
20 /* prologue: function */
21 /* frame size = 0 */
22 /* stack size = 0 */
23 .L__stack_usage = 0
24 .LM2:
25 0000 DD9A sbi 59-32,5
26 .LVL0:
27 .LBB22:
28 .LBB23:
29 .LM3:
30 0002 8AE6 ldi r24,lo8(106)
31 0004 8A95 1:dec r24
32 0006 01F4 brne 1b
33 0008 00C0 rjmp .
34 .LBE23:
35 .LBE22:
36 .LM4:
37 000a DD98 cbi 59-32,5
38 /* epilogue start */
39 .LM5:
40 000c 0895 ret
41 .LFE6:
44 lcd_out:
45 .LFB7:
46 .LM6:
47 .LVL1:
48 /* prologue: function */
49 /* frame size = 0 */
50 /* stack size = 0 */
51 .L__stack_usage = 0
52 .LM7:
53 000e 9BB3 in r25,59-32
54 0010 907F andi r25,lo8(-16)
55 0012 9BBB out 59-32,r25
56 .LM8:
57 0014 9BB3 in r25,59-32
58 0016 8295 swap r24
59 .LVL2:
60 0018 8F70 andi r24,lo8(15)
61 001a 892B or r24,r25
62 001c 8BBB out 59-32,r24
63 .LM9:
64 001e 0E94 0000 call lcd_enable
65 /* epilogue start */
66 .LM10:
67 0022 0895 ret
68 .LFE7:
70 .global lcd_data
72 lcd_data:
73 .LFB9:
74 .LM11:
75 .LVL3:
76 0024 1F93 push r17
77 /* prologue: function */
78 /* frame size = 0 */
79 /* stack size = 1 */
80 .L__stack_usage = 1
81 0026 182F mov r17,r24
82 .LM12:
83 0028 DC9A sbi 59-32,4
84 .LM13:
85 002a 0E94 0000 call lcd_out
86 .LVL4:
87 .LM14:
88 002e 812F mov r24,r17
89 0030 8295 swap r24
90 0032 807F andi r24,lo8(-16)
91 0034 0E94 0000 call lcd_out
92 .LVL5:
93 .LBB24:
94 .LBB25:
95 .LM15:
96 0038 85EF ldi r24,lo8(-11)
97 003a 8A95 1:dec r24
98 003c 01F4 brne 1b
99 003e 0000 nop
100 /* epilogue start */
101 .LBE25:
102 .LBE24:
103 .LM16:
104 0040 1F91 pop r17
105 .LVL6:
106 0042 0895 ret
107 .LFE9:
109 .global lcd_command
111 lcd_command:
112 .LFB10:
113 .LM17:
114 .LVL7:
115 0044 1F93 push r17
116 /* prologue: function */
117 /* frame size = 0 */
118 /* stack size = 1 */
119 .L__stack_usage = 1
120 0046 182F mov r17,r24
121 .LM18:
122 0048 DC98 cbi 59-32,4
123 .LM19:
124 004a 0E94 0000 call lcd_out
125 .LVL8:
126 .LM20:
127 004e 812F mov r24,r17
128 0050 8295 swap r24
129 0052 807F andi r24,lo8(-16)
130 0054 0E94 0000 call lcd_out
131 .LVL9:
132 .LBB26:
133 .LBB27:
134 .LM21:
135 0058 80EE ldi r24,lo8(-32)
136 005a 8A95 1:dec r24
137 005c 01F4 brne 1b
138 /* epilogue start */
139 .LBE27:
140 .LBE26:
141 .LM22:
142 005e 1F91 pop r17
143 .LVL10:
144 0060 0895 ret
145 .LFE10:
147 .global lcd_clear
149 lcd_clear:
150 .LFB11:
151 .LM23:
152 /* prologue: function */
153 /* frame size = 0 */
154 /* stack size = 0 */
155 .L__stack_usage = 0
156 .LM24:
157 0062 81E0 ldi r24,lo8(1)
158 0064 0E94 0000 call lcd_command
159 .LVL11:
160 .LBB28:
161 .LBB29:
162 .LM25:
163 0068 8FE3 ldi r24,lo8(7999)
164 006a 9FE1 ldi r25,hi8(7999)
165 006c 0197 1:sbiw r24,1
166 006e 01F4 brne 1b
167 0070 00C0 rjmp .
168 0072 0000 nop
169 /* epilogue start */
170 .LBE29:
171 .LBE28:
172 .LM26:
173 0074 0895 ret
174 .LFE11:
176 .global lcd_init
178 lcd_init:
179 .LFB8:
180 .LM27:
181 /* prologue: function */
182 /* frame size = 0 */
183 /* stack size = 0 */
184 .L__stack_usage = 0
185 .LVL12:
186 .LM28:
187 0076 8AB3 in r24,58-32
188 0078 8F63 ori r24,lo8(63)
189 007a 8ABB out 58-32,r24
190 .LM29:
191 007c 8BB3 in r24,59-32
192 007e 807C andi r24,lo8(-64)
193 0080 8BBB out 59-32,r24
194 .LVL13:
195 .LBB30:
196 .LBB31:
197 .LM30:
198 0082 8FE5 ldi r24,lo8(-5537)
199 0084 9AEE ldi r25,hi8(-5537)
200 0086 0197 1:sbiw r24,1
201 0088 01F4 brne 1b
202 008a 00C0 rjmp .
203 008c 0000 nop
204 .LBE31:
205 .LBE30:
206 .LM31:
207 008e 80E3 ldi r24,lo8(48)
208 0090 0E94 0000 call lcd_out
209 .LVL14:
210 .LBB32:
211 .LBB33:
212 .LM32:
213 0094 8FE1 ldi r24,lo8(19999)
214 0096 9EE4 ldi r25,hi8(19999)
215 0098 0197 1:sbiw r24,1
216 009a 01F4 brne 1b
217 009c 00C0 rjmp .
218 009e 0000 nop
219 .LBE33:
220 .LBE32:
221 .LM33:
222 00a0 0E94 0000 call lcd_enable
223 .LVL15:
224 .LBB34:
225 .LBB35:
226 .LM34:
227 00a4 8FE9 ldi r24,lo8(3999)
228 00a6 9FE0 ldi r25,hi8(3999)
229 00a8 0197 1:sbiw r24,1
230 00aa 01F4 brne 1b
231 00ac 00C0 rjmp .
232 00ae 0000 nop
233 .LBE35:
234 .LBE34:
235 .LM35:
236 00b0 0E94 0000 call lcd_enable
237 .LVL16:
238 .LBB36:
239 .LBB37:
240 .LM36:
241 00b4 8FE9 ldi r24,lo8(3999)
242 00b6 9FE0 ldi r25,hi8(3999)
243 00b8 0197 1:sbiw r24,1
244 00ba 01F4 brne 1b
245 00bc 00C0 rjmp .
246 00be 0000 nop
247 .LBE37:
248 .LBE36:
249 .LM37:
250 00c0 80E2 ldi r24,lo8(32)
251 00c2 0E94 0000 call lcd_out
252 .LVL17:
253 .LBB38:
254 .LBB39:
255 .LM38:
256 00c6 8FE1 ldi r24,lo8(19999)
257 00c8 9EE4 ldi r25,hi8(19999)
258 00ca 0197 1:sbiw r24,1
259 00cc 01F4 brne 1b
260 00ce 00C0 rjmp .
261 00d0 0000 nop
262 .LBE39:
263 .LBE38:
264 .LM39:
265 00d2 88E2 ldi r24,lo8(40)
266 00d4 0E94 0000 call lcd_command
267 .LM40:
268 00d8 8CE0 ldi r24,lo8(12)
269 00da 0E94 0000 call lcd_command
270 .LM41:
271 00de 86E0 ldi r24,lo8(6)
272 00e0 0E94 0000 call lcd_command
273 .LM42:
274 00e4 0E94 0000 call lcd_clear
275 /* epilogue start */
276 .LM43:
277 00e8 0895 ret
278 .LFE8:
280 .global lcd_home
282 lcd_home:
283 .LFB12:
284 .LM44:
285 /* prologue: function */
286 /* frame size = 0 */
287 /* stack size = 0 */
288 .L__stack_usage = 0
289 .LM45:
290 00ea 82E0 ldi r24,lo8(2)
291 00ec 0E94 0000 call lcd_command
292 .LVL18:
293 .LBB40:
294 .LBB41:
295 .LM46:
296 00f0 8FE3 ldi r24,lo8(7999)
297 00f2 9FE1 ldi r25,hi8(7999)
298 00f4 0197 1:sbiw r24,1
299 00f6 01F4 brne 1b
300 00f8 00C0 rjmp .
301 00fa 0000 nop
302 /* epilogue start */
303 .LBE41:
304 .LBE40:
305 .LM47:
306 00fc 0895 ret
307 .LFE12:
309 .global lcd_setcursor
311 lcd_setcursor:
312 .LFB13:
313 .LM48:
314 .LVL19:
315 /* prologue: function */
316 /* frame size = 0 */
317 /* stack size = 0 */
318 .L__stack_usage = 0
319 .LM49:
320 00fe 6230 cpi r22,lo8(2)
321 0100 01F0 breq .L11
322 0102 6330 cpi r22,lo8(3)
323 0104 00F4 brsh .L14
324 0106 6130 cpi r22,lo8(1)
325 0108 01F4 brne .L8
326 010a 00C0 rjmp .L16
327 .L14:
328 010c 6330 cpi r22,lo8(3)
329 010e 01F0 breq .L12
330 0110 6430 cpi r22,lo8(4)
331 0112 01F4 brne .L8
332 0114 00C0 rjmp .L17
333 .L16:
334 .LM50:
335 0116 8058 subi r24,lo8(-(-128))
336 .LVL20:
337 .LM51:
338 0118 00C0 rjmp .L15
339 .LVL21:
340 .L11:
341 .LM52:
342 011a 8054 subi r24,lo8(-(-64))
343 .LVL22:
344 .LM53:
345 011c 00C0 rjmp .L15
346 .LVL23:
347 .L12:
348 .LM54:
349 011e 8057 subi r24,lo8(-(-112))
350 .LVL24:
351 .LM55:
352 0120 00C0 rjmp .L15
353 .LVL25:
354 .L17:
355 .LM56:
356 0122 8053 subi r24,lo8(-(-48))
357 .LVL26:
358 .L15:
359 .LM57:
360 0124 0E94 0000 call lcd_command
361 .LVL27:
362 .L8:
363 0128 0895 ret
364 .LFE13:
366 .global lcd_string
368 lcd_string:
369 .LFB14:
370 .LM58:
371 .LVL28:
372 012a EF92 push r14
373 012c FF92 push r15
374 012e CF93 push r28
375 0130 DF93 push r29
376 /* prologue: function */
377 /* frame size = 0 */
378 /* stack size = 4 */
379 .L__stack_usage = 4
380 .LM59:
381 0132 E82E mov r14,r24
382 0134 E701 movw r28,r14
383 0136 7E01 movw r14,r28
384 0138 F92E mov r15,r25
385 013a E701 movw r28,r14
386 .LM60:
387 013c 00C0 rjmp .L19
388 .LVL29:
389 .L20:
390 .LM61:
391 013e 0E94 0000 call lcd_data
392 .L19:
393 .LM62:
394 0142 8991 ld r24,Y+
395 0144 8823 tst r24
396 0146 01F4 brne .L20
397 /* epilogue start */
398 .LM63:
399 0148 DF91 pop r29
400 014a CF91 pop r28
401 014c FF90 pop r15
402 014e EF90 pop r14
403 0150 0895 ret
404 .LFE14:
406 .global lcd_string_p
408 lcd_string_p:
409 .LFB15:
410 .LM64:
411 .LVL30:
412 0152 CF93 push r28
413 0154 DF93 push r29
414 /* prologue: function */
415 /* frame size = 0 */
416 /* stack size = 2 */
417 .L__stack_usage = 2
418 0156 EC01 movw r28,r24
419 .LM65:
420 0158 00C0 rjmp .L22
421 .LVL31:
422 .L23:
423 .LM66:
424 015a 0E94 0000 call lcd_data
425 .LVL32:
426 .L22:
427 .LM67:
428 015e FE01 movw r30,r28
429 .LVL33:
430 .LBB42:
431 .LM68:
432 0160 2196 adiw r28,1
433 .LVL34:
434 /* #APP */
435 ; 167 "lcd_routines.c" 1
436 0162 8491 lpm r24, Z
437
438 ; 0 "" 2
439 .LVL35:
440 /* #NOAPP */
441 .LBE42:
442 0164 8823 tst r24
443 0166 01F4 brne .L23
444 /* epilogue start */
445 .LM69:
446 0168 DF91 pop r29
447 016a CF91 pop r28
448 .LVL36:
449 016c 0895 ret
450 .LFE15:
452 .global lcd_generatechar
454 lcd_generatechar:
455 .LFB16:
456 .LM70:
457 .LVL37:
458 016e EF92 push r14
459 0170 FF92 push r15
460 0172 1F93 push r17
461 0174 DF93 push r29
462 0176 CF93 push r28
463 0178 00D0 rcall .
464 017a CDB7 in r28,__SP_L__
465 017c DEB7 in r29,__SP_H__
466 /* prologue: function */
467 /* frame size = 2 */
468 /* stack size = 7 */
469 .L__stack_usage = 7
470 .LM71:
471 017e 880F lsl r24
472 0180 880F lsl r24
473 0182 880F lsl r24
474 .LVL38:
475 0184 8064 ori r24,lo8(64)
476 0186 6983 std Y+1,r22
477 0188 7A83 std Y+2,r23
478 018a 0E94 0000 call lcd_command
479 .LVL39:
480 018e 6981 ldd r22,Y+1
481 0190 7A81 ldd r23,Y+2
482 0192 462F mov r20,r22
483 0194 572F mov r21,r23
484 0196 7A01 movw r14,r20
485 0198 18E0 ldi r17,lo8(8)
486 .LVL40:
487 .L25:
488 .LBB43:
489 .LM72:
490 019a F701 movw r30,r14
491 019c 8191 ld r24,Z+
492 019e 7F01 movw r14,r30
493 01a0 0E94 0000 call lcd_data
494 01a4 1150 subi r17,lo8(-(-1))
495 .LM73:
496 01a6 01F4 brne .L25
497 /* epilogue start */
498 .LBE43:
499 .LM74:
500 01a8 0F90 pop __tmp_reg__
501 01aa 0F90 pop __tmp_reg__
502 01ac CF91 pop r28
503 01ae DF91 pop r29
504 01b0 1F91 pop r17
505 01b2 FF90 pop r15
506 01b4 EF90 pop r14
507 01b6 0895 ret
508 .LFE16:
614 .Letext0:
DEFINED SYMBOLS
*ABS*:0000000000000000 lcd_routines.c
/tmp/cc7NhYw7.s:2 *ABS*:000000000000003f __SREG__
/tmp/cc7NhYw7.s:3 *ABS*:000000000000003e __SP_H__
/tmp/cc7NhYw7.s:4 *ABS*:000000000000003d __SP_L__
/tmp/cc7NhYw7.s:5 *ABS*:0000000000000034 __CCP__
/tmp/cc7NhYw7.s:6 *ABS*:0000000000000000 __tmp_reg__
/tmp/cc7NhYw7.s:7 *ABS*:0000000000000001 __zero_reg__
/tmp/cc7NhYw7.s:17 .text:0000000000000000 lcd_enable
/tmp/cc7NhYw7.s:44 .text:000000000000000e lcd_out
/tmp/cc7NhYw7.s:72 .text:0000000000000024 lcd_data
/tmp/cc7NhYw7.s:111 .text:0000000000000044 lcd_command
/tmp/cc7NhYw7.s:149 .text:0000000000000062 lcd_clear
/tmp/cc7NhYw7.s:178 .text:0000000000000076 lcd_init
/tmp/cc7NhYw7.s:282 .text:00000000000000ea lcd_home
/tmp/cc7NhYw7.s:311 .text:00000000000000fe lcd_setcursor
/tmp/cc7NhYw7.s:368 .text:000000000000012a lcd_string
/tmp/cc7NhYw7.s:408 .text:0000000000000152 lcd_string_p
/tmp/cc7NhYw7.s:454 .text:000000000000016e lcd_generatechar
NO UNDEFINED SYMBOLS