-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.lst
5953 lines (5952 loc) · 203 KB
/
main.lst
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1 .file "main.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 .global wait
18 wait:
19 .LFB5:
20 .LM1:
21 /* prologue: function */
22 /* frame size = 0 */
23 /* epilogue start */
24 .LM2:
25 0000 0895 ret
26 .LFE5:
28 .global lcd_send_data
30 lcd_send_data:
31 .LFB6:
32 .LM3:
33 .LVL0:
34 /* prologue: function */
35 /* frame size = 0 */
36 .LM4:
37 0002 C298 cbi 56-32,2
38 .LM5:
39 0004 C19A sbi 56-32,1
40 .LM6:
41 0006 8FB9 out 47-32,r24
42 .L4:
43 .LM7:
44 0008 779B sbis 46-32,7
45 000a 00C0 rjmp .L4
46 .LM8:
47 000c C29A sbi 56-32,2
48 /* epilogue start */
49 .LM9:
50 000e 0895 ret
51 .LFE6:
53 .global lcd_send_cmd
55 lcd_send_cmd:
56 .LFB7:
57 .LM10:
58 .LVL1:
59 /* prologue: function */
60 /* frame size = 0 */
61 .LM11:
62 0010 C298 cbi 56-32,2
63 .LM12:
64 0012 C198 cbi 56-32,1
65 .LM13:
66 0014 8FB9 out 47-32,r24
67 .L8:
68 .LM14:
69 0016 779B sbis 46-32,7
70 0018 00C0 rjmp .L8
71 .LM15:
72 001a C29A sbi 56-32,2
73 /* epilogue start */
74 .LM16:
75 001c 0895 ret
76 .LFE7:
78 .global lcd_update
80 lcd_update:
81 .LFB9:
82 .LM17:
83 001e 0F93 push r16
84 0020 1F93 push r17
85 0022 CF93 push r28
86 0024 DF93 push r29
87 /* prologue: function */
88 /* frame size = 0 */
89 .LM18:
90 0026 8091 0000 lds r24,LWM
91 002a 9091 0000 lds r25,(LWM)+1
92 002e 97FF sbrs r25,7
93 0030 00C0 rjmp .L12
94 0032 1092 0000 sts (LWM)+1,__zero_reg__
95 0036 1092 0000 sts LWM,__zero_reg__
96 003a 00C0 rjmp .L13
97 .L12:
98 .LM19:
99 003c 885F subi r24,lo8(504)
100 003e 9140 sbci r25,hi8(504)
101 0040 04F0 brlt .L13
102 0042 87EF ldi r24,lo8(503)
103 0044 91E0 ldi r25,hi8(503)
104 0046 9093 0000 sts (LWM)+1,r25
105 004a 8093 0000 sts LWM,r24
106 .L13:
107 .LM20:
108 004e 8091 0000 lds r24,HWM
109 0052 9091 0000 lds r25,(HWM)+1
110 0056 97FF sbrs r25,7
111 0058 00C0 rjmp .L14
112 005a 1092 0000 sts (HWM)+1,__zero_reg__
113 005e 1092 0000 sts HWM,__zero_reg__
114 0062 00C0 rjmp .L15
115 .L14:
116 .LM21:
117 0064 885F subi r24,lo8(504)
118 0066 9140 sbci r25,hi8(504)
119 0068 04F0 brlt .L15
120 006a 87EF ldi r24,lo8(503)
121 006c 91E0 ldi r25,hi8(503)
122 006e 9093 0000 sts (HWM)+1,r25
123 0072 8093 0000 sts HWM,r24
124 .L15:
125 .LM22:
126 0076 8091 0000 lds r24,LWM
127 007a 9091 0000 lds r25,(LWM)+1
128 007e 64E5 ldi r22,lo8(84)
129 0080 70E0 ldi r23,hi8(84)
130 0082 00D0 rcall __divmodhi4
131 0084 8068 ori r24,lo8(-128)
132 0086 00D0 rcall lcd_send_cmd
133 .LM23:
134 0088 8091 0000 lds r24,LWM
135 008c 9091 0000 lds r25,(LWM)+1
136 0090 64E5 ldi r22,lo8(84)
137 0092 70E0 ldi r23,hi8(84)
138 0094 00D0 rcall __divmodhi4
139 0096 862F mov r24,r22
140 0098 8064 ori r24,lo8(64)
141 009a 00D0 rcall lcd_send_cmd
142 .LM24:
143 009c C091 0000 lds r28,LWM
144 00a0 D091 0000 lds r29,(LWM)+1
145 .LVL2:
146 00a4 8E01 movw r16,r28
147 00a6 0050 subi r16,lo8(-(LCD_CACHE))
148 00a8 1040 sbci r17,hi8(-(LCD_CACHE))
149 00aa 00C0 rjmp .L16
150 .L17:
151 .LM25:
152 00ac F801 movw r30,r16
153 00ae 8191 ld r24,Z+
154 00b0 8F01 movw r16,r30
155 00b2 00D0 rcall lcd_send_data
156 .LM26:
157 00b4 2196 adiw r28,1
158 .L16:
159 00b6 8091 0000 lds r24,HWM
160 00ba 9091 0000 lds r25,(HWM)+1
161 00be 8C17 cp r24,r28
162 00c0 9D07 cpc r25,r29
163 00c2 04F4 brge .L17
164 .LM27:
165 00c4 87EF ldi r24,lo8(503)
166 00c6 91E0 ldi r25,hi8(503)
167 00c8 9093 0000 sts (LWM)+1,r25
168 00cc 8093 0000 sts LWM,r24
169 .LM28:
170 00d0 1092 0000 sts (HWM)+1,__zero_reg__
171 00d4 1092 0000 sts HWM,__zero_reg__
172 /* epilogue start */
173 .LM29:
174 00d8 DF91 pop r29
175 00da CF91 pop r28
176 .LVL3:
177 00dc 1F91 pop r17
178 00de 0F91 pop r16
179 00e0 0895 ret
180 .LFE9:
182 .global lcd_pixel
184 lcd_pixel:
185 .LFB11:
186 .LM30:
187 .LVL4:
188 /* prologue: function */
189 /* frame size = 0 */
190 00e2 582F mov r21,r24
191 .LM31:
192 00e4 8435 cpi r24,lo8(84)
193 00e6 00F0 brlo .+2
194 00e8 00C0 rjmp .L25
195 00ea 6033 cpi r22,lo8(48)
196 00ec 00F0 brlo .+2
197 00ee 00C0 rjmp .L25
198 .LM32:
199 00f0 862F mov r24,r22
200 .LVL5:
201 00f2 8695 lsr r24
202 00f4 8695 lsr r24
203 00f6 8695 lsr r24
204 00f8 90E0 ldi r25,lo8(0)
205 00fa 24E5 ldi r18,lo8(84)
206 00fc 30E0 ldi r19,hi8(84)
207 00fe 829F mul r24,r18
208 0100 D001 movw r26,r0
209 0102 839F mul r24,r19
210 0104 B00D add r27,r0
211 0106 929F mul r25,r18
212 0108 B00D add r27,r0
213 010a 1124 clr r1
214 .LVL6:
215 010c A50F add r26,r21
216 010e B11D adc r27,__zero_reg__
217 .LM33:
218 0110 23E0 ldi r18,3
219 0112 880F 1: lsl r24
220 0114 991F rol r25
221 0116 2A95 dec r18
222 0118 01F4 brne 1b
223 011a 681B sub r22,r24
224 .LVL7:
225 .LM34:
226 011c FD01 movw r30,r26
227 011e E050 subi r30,lo8(-(LCD_CACHE))
228 0120 F040 sbci r31,hi8(-(LCD_CACHE))
229 0122 2081 ld r18,Z
230 .LVL8:
231 .LM35:
232 0124 4130 cpi r20,lo8(1)
233 0126 01F4 brne .L21
234 .LM36:
235 0128 81E0 ldi r24,lo8(1)
236 012a 90E0 ldi r25,hi8(1)
237 012c 00C0 rjmp 2f
238 012e 880F 1: lsl r24
239 0130 991F rol r25
240 0132 6A95 2: dec r22
241 0134 02F4 brpl 1b
242 0136 282B or r18,r24
243 0138 00C0 rjmp .L22
244 .L21:
245 .LM37:
246 013a 4423 tst r20
247 013c 01F4 brne .L23
248 .LM38:
249 013e 81E0 ldi r24,lo8(1)
250 0140 90E0 ldi r25,hi8(1)
251 0142 00C0 rjmp 2f
252 0144 880F 1: lsl r24
253 0146 991F rol r25
254 0148 6A95 2: dec r22
255 014a 02F4 brpl 1b
256 014c 8095 com r24
257 014e 2823 and r18,r24
258 0150 00C0 rjmp .L22
259 .L23:
260 .LM39:
261 0152 4230 cpi r20,lo8(2)
262 0154 01F4 brne .L22
263 .LM40:
264 0156 81E0 ldi r24,lo8(1)
265 0158 90E0 ldi r25,hi8(1)
266 015a 00C0 rjmp 2f
267 015c 880F 1: lsl r24
268 015e 991F rol r25
269 0160 6A95 2: dec r22
270 0162 02F4 brpl 1b
271 0164 2827 eor r18,r24
272 .L22:
273 .LM41:
274 0166 FD01 movw r30,r26
275 0168 E050 subi r30,lo8(-(LCD_CACHE))
276 016a F040 sbci r31,hi8(-(LCD_CACHE))
277 016c 2083 st Z,r18
278 .LM42:
279 016e 8091 0000 lds r24,LWM
280 0172 9091 0000 lds r25,(LWM)+1
281 0176 A817 cp r26,r24
282 0178 B907 cpc r27,r25
283 017a 04F4 brge .L24
284 .LM43:
285 017c B093 0000 sts (LWM)+1,r27
286 0180 A093 0000 sts LWM,r26
287 .L24:
288 .LM44:
289 0184 8091 0000 lds r24,HWM
290 0188 9091 0000 lds r25,(HWM)+1
291 018c 8A17 cp r24,r26
292 018e 9B07 cpc r25,r27
293 0190 04F4 brge .L25
294 .LM45:
295 0192 B093 0000 sts (HWM)+1,r27
296 0196 A093 0000 sts HWM,r26
297 .LVL9:
298 .L25:
299 019a 0895 ret
300 .LFE11:
302 .global min
304 min:
305 .LFB12:
306 .LM46:
307 .LVL10:
308 /* prologue: function */
309 /* frame size = 0 */
310 019c AC01 movw r20,r24
311 .LM47:
312 019e 9B01 movw r18,r22
313 01a0 4617 cp r20,r22
314 01a2 5707 cpc r21,r23
315 01a4 04F4 brge .L27
316 .LVL11:
317 01a6 9A01 movw r18,r20
318 .LVL12:
319 .L27:
320 .LM48:
321 01a8 C901 movw r24,r18
322 .LVL13:
323 /* epilogue start */
324 01aa 0895 ret
325 .LFE12:
327 .global max
329 max:
330 .LFB13:
331 .LM49:
332 .LVL14:
333 /* prologue: function */
334 /* frame size = 0 */
335 01ac AC01 movw r20,r24
336 .LM50:
337 01ae 9B01 movw r18,r22
338 01b0 6417 cp r22,r20
339 01b2 7507 cpc r23,r21
340 01b4 04F4 brge .L30
341 .LVL15:
342 01b6 9A01 movw r18,r20
343 .LVL16:
344 .L30:
345 .LM51:
346 01b8 C901 movw r24,r18
347 .LVL17:
348 /* epilogue start */
349 01ba 0895 ret
350 .LFE13:
352 .global lcd_h_line
354 lcd_h_line:
355 .LFB14:
356 .LM52:
357 .LVL18:
358 01bc DF92 push r13
359 01be EF92 push r14
360 01c0 FF92 push r15
361 01c2 0F93 push r16
362 01c4 1F93 push r17
363 01c6 CF93 push r28
364 01c8 DF93 push r29
365 /* prologue: function */
366 /* frame size = 0 */
367 01ca D62E mov r13,r22
368 01cc F42E mov r15,r20
369 01ce E22E mov r14,r18
370 .LBB199:
371 .LM53:
372 01d0 082F mov r16,r24
373 .LVL19:
374 01d2 10E0 ldi r17,lo8(0)
375 .LVL20:
376 01d4 842F mov r24,r20
377 .LVL21:
378 01d6 90E0 ldi r25,lo8(0)
379 .LVL22:
380 01d8 9C01 movw r18,r24
381 .LVL23:
382 01da E901 movw r28,r18
383 .LVL24:
384 01dc 0217 cp r16,r18
385 01de 1307 cpc r17,r19
386 01e0 04F4 brge .L38
387 .LVL25:
388 01e2 E801 movw r28,r16
389 01e4 00C0 rjmp .L38
390 .LVL26:
391 .L35:
392 01e6 8C2F mov r24,r28
393 01e8 6D2D mov r22,r13
394 01ea 4E2D mov r20,r14
395 01ec 00D0 rcall lcd_pixel
396 .LVL27:
397 01ee 2196 adiw r28,1
398 .LVL28:
399 .L38:
400 01f0 8F2D mov r24,r15
401 .LVL29:
402 01f2 90E0 ldi r25,lo8(0)
403 .LVL30:
404 01f4 9C01 movw r18,r24
405 .LVL31:
406 01f6 2017 cp r18,r16
407 01f8 3107 cpc r19,r17
408 .LVL32:
409 01fa 04F4 brge .L36
410 .LVL33:
411 01fc 9801 movw r18,r16
412 .L36:
413 01fe 2C17 cp r18,r28
414 0200 3D07 cpc r19,r29
415 0202 04F4 brge .L35
416 .LVL34:
417 /* epilogue start */
418 .LBE199:
419 .LM54:
420 0204 DF91 pop r29
421 0206 CF91 pop r28
422 0208 1F91 pop r17
423 020a 0F91 pop r16
424 020c FF90 pop r15
425 .LVL35:
426 020e EF90 pop r14
427 .LVL36:
428 0210 DF90 pop r13
429 .LVL37:
430 0212 0895 ret
431 .LFE14:
433 .global lcd_v_line
435 lcd_v_line:
436 .LFB15:
437 .LM55:
438 .LVL38:
439 0214 DF92 push r13
440 0216 EF92 push r14
441 0218 FF92 push r15
442 021a 0F93 push r16
443 021c 1F93 push r17
444 021e CF93 push r28
445 0220 DF93 push r29
446 /* prologue: function */
447 /* frame size = 0 */
448 0222 D82E mov r13,r24
449 0224 F42E mov r15,r20
450 0226 E22E mov r14,r18
451 .LBB200:
452 .LM56:
453 0228 062F mov r16,r22
454 .LVL39:
455 022a 10E0 ldi r17,lo8(0)
456 .LVL40:
457 022c 242F mov r18,r20
458 .LVL41:
459 022e 30E0 ldi r19,lo8(0)
460 .LVL42:
461 0230 C901 movw r24,r18
462 .LVL43:
463 0232 EC01 movw r28,r24
464 .LVL44:
465 0234 0817 cp r16,r24
466 0236 1907 cpc r17,r25
467 0238 04F4 brge .L45
468 .LVL45:
469 023a E801 movw r28,r16
470 023c 00C0 rjmp .L45
471 .LVL46:
472 .L42:
473 023e 8D2D mov r24,r13
474 0240 6C2F mov r22,r28
475 .LVL47:
476 0242 4E2D mov r20,r14
477 0244 00D0 rcall lcd_pixel
478 .LVL48:
479 0246 2196 adiw r28,1
480 .LVL49:
481 .L45:
482 0248 8F2D mov r24,r15
483 .LVL50:
484 024a 90E0 ldi r25,lo8(0)
485 .LVL51:
486 024c 9C01 movw r18,r24
487 .LVL52:
488 024e 2017 cp r18,r16
489 0250 3107 cpc r19,r17
490 .LVL53:
491 0252 04F4 brge .L43
492 .LVL54:
493 0254 9801 movw r18,r16
494 .L43:
495 0256 2C17 cp r18,r28
496 0258 3D07 cpc r19,r29
497 025a 04F4 brge .L42
498 .LVL55:
499 /* epilogue start */
500 .LBE200:
501 .LM57:
502 025c DF91 pop r29
503 025e CF91 pop r28
504 0260 1F91 pop r17
505 0262 0F91 pop r16
506 0264 FF90 pop r15
507 .LVL56:
508 0266 EF90 pop r14
509 .LVL57:
510 0268 DF90 pop r13
511 .LVL58:
512 026a 0895 ret
513 .LFE15:
515 .global lcd_line
517 lcd_line:
518 .LFB16:
519 .LM58:
520 .LVL59:
521 026c 3F92 push r3
522 026e 4F92 push r4
523 0270 5F92 push r5
524 0272 6F92 push r6
525 0274 7F92 push r7
526 0276 8F92 push r8
527 0278 9F92 push r9
528 027a AF92 push r10
529 027c BF92 push r11
530 027e CF92 push r12
531 0280 DF92 push r13
532 0282 EF92 push r14
533 0284 FF92 push r15
534 0286 0F93 push r16
535 .LVL60:
536 0288 1F93 push r17
537 028a CF93 push r28
538 028c DF93 push r29
539 /* prologue: function */
540 /* frame size = 0 */
541 028e 982E mov r9,r24
542 0290 862E mov r8,r22
543 0292 442E mov r4,r20
544 0294 522E mov r5,r18
545 0296 302E mov r3,r16
546 .LVL61:
547 .LM59:
548 0298 8417 cp r24,r20
549 029a 01F4 brne .L47
550 .LVL62:
551 .LM60:
552 029c 422F mov r20,r18
553 .LVL63:
554 029e 202F mov r18,r16
555 02a0 00D0 rcall lcd_v_line
556 .LVL64:
557 02a2 00C0 rjmp .L59
558 .LVL65:
559 .L47:
560 .LM61:
561 02a4 6217 cp r22,r18
562 02a6 01F4 brne .L49
563 .LVL66:
564 .LM62:
565 02a8 202F mov r18,r16
566 .LVL67:
567 02aa 00D0 rcall lcd_h_line
568 .LVL68:
569 02ac 00C0 rjmp .L59
570 .LVL69:
571 .L49:
572 .LM63:
573 02ae 30E0 ldi r19,lo8(0)
574 .LVL70:
575 02b0 261B sub r18,r22
576 02b2 3109 sbc r19,__zero_reg__
577 .LVL71:
578 .LM64:
579 02b4 842F mov r24,r20
580 .LVL72:
581 02b6 90E0 ldi r25,lo8(0)
582 .LVL73:
583 02b8 8919 sub r24,r9
584 02ba 9109 sbc r25,__zero_reg__
585 .LVL74:
586 .LM65:
587 02bc 37FD sbrc r19,7
588 02be 00C0 rjmp .L50
589 02c0 E1E0 ldi r30,lo8(1)
590 02c2 6E2E mov r6,r30
591 02c4 712C mov r7,__zero_reg__
592 .LVL75:
593 02c6 00C0 rjmp .L51
594 .LVL76:
595 .L50:
596 .LM66:
597 02c8 3095 com r19
598 02ca 2195 neg r18
599 02cc 3F4F sbci r19,lo8(-1)
600 02ce 6624 clr r6
601 02d0 6A94 dec r6
602 02d2 762C mov r7,r6
603 .LVL77:
604 .L51:
605 .LM67:
606 02d4 97FD sbrc r25,7
607 02d6 00C0 rjmp .L52
608 02d8 71E0 ldi r23,lo8(1)
609 02da A72E mov r10,r23
610 02dc B12C mov r11,__zero_reg__
611 .LVL78:
612 02de 00C0 rjmp .L53
613 .LVL79:
614 .L52:
615 .LM68:
616 02e0 9095 com r25
617 02e2 8195 neg r24
618 02e4 9F4F sbci r25,lo8(-1)
619 02e6 AA24 clr r10
620 02e8 AA94 dec r10
621 02ea BA2C mov r11,r10
622 .LVL80:
623 .L53:
624 .LM69:
625 02ec 6C01 movw r12,r24
626 02ee CC0C lsl r12
627 02f0 DD1C rol r13
628 .LVL81:
629 .LM70:
630 02f2 7901 movw r14,r18
631 02f4 EE0C lsl r14
632 02f6 FF1C rol r15
633 .LVL82:
634 .LM71:
635 02f8 EC14 cp r14,r12
636 02fa FD04 cpc r15,r13
637 02fc 04F4 brge .L54
638 .LM72:
639 02fe C601 movw r24,r12
640 0300 9595 asr r25
641 0302 8795 ror r24
642 .LVL83:
643 0304 E701 movw r28,r14
644 .LVL84:
645 0306 C81B sub r28,r24
646 0308 D90B sbc r29,r25
647 030a BA2C mov r11,r10
648 030c 1A2D mov r17,r10
649 .LVL85:
650 030e 190D add r17,r9
651 .L56:
652 .LM73:
653 0310 D7FD sbrc r29,7
654 0312 00C0 rjmp .L55
655 .LM74:
656 0314 860C add r8,r6
657 .LM75:
658 0316 CC19 sub r28,r12
659 0318 DD09 sbc r29,r13
660 .L55:
661 .LM76:
662 031a 812F mov r24,r17
663 031c 682D mov r22,r8
664 031e 432D mov r20,r3
665 0320 00D0 rcall lcd_pixel
666 .LVL86:
667 0322 1B0D add r17,r11
668 .LM77:
669 0324 812F mov r24,r17
670 0326 8B19 sub r24,r11
671 0328 8415 cp r24,r4
672 032a 01F0 breq .L59
673 .LM78:
674 032c CE0D add r28,r14
675 032e DF1D adc r29,r15
676 0330 00C0 rjmp .L56
677 .LVL87:
678 .L54:
679 .LM79:
680 0332 C701 movw r24,r14
681 0334 9595 asr r25
682 0336 8795 ror r24
683 .LVL88:
684 0338 E601 movw r28,r12
685 .LVL89:
686 033a C81B sub r28,r24
687 033c D90B sbc r29,r25
688 033e 062D mov r16,r6
689 0340 162D mov r17,r6
690 .LVL90:
691 0342 180D add r17,r8
692 .LVL91:
693 .L58:
694 .LM80:
695 0344 D7FD sbrc r29,7
696 0346 00C0 rjmp .L57
697 .LVL92:
698 .LM81:
699 0348 9A0C add r9,r10
700 .LM82:
701 034a CE19 sub r28,r14
702 034c DF09 sbc r29,r15
703 .L57:
704 .LM83:
705 034e 892D mov r24,r9
706 0350 612F mov r22,r17
707 0352 432D mov r20,r3
708 .LVL93:
709 0354 00D0 rcall lcd_pixel
710 .LVL94:
711 0356 100F add r17,r16
712 .LM84:
713 0358 812F mov r24,r17
714 035a 801B sub r24,r16
715 035c 8515 cp r24,r5
716 035e 01F0 breq .L59
717 .LM85:
718 0360 CC0D add r28,r12
719 0362 DD1D adc r29,r13
720 0364 00C0 rjmp .L58
721 .LVL95:
722 .L59:
723 /* epilogue start */
724 .LM86:
725 0366 DF91 pop r29
726 0368 CF91 pop r28
727 .LVL96:
728 036a 1F91 pop r17
729 036c 0F91 pop r16
730 036e FF90 pop r15
731 0370 EF90 pop r14
732 .LVL97:
733 0372 DF90 pop r13
734 0374 CF90 pop r12
735 .LVL98:
736 0376 BF90 pop r11
737 0378 AF90 pop r10
738 .LVL99:
739 037a 9F90 pop r9
740 .LVL100:
741 037c 8F90 pop r8
742 .LVL101:
743 037e 7F90 pop r7
744 0380 6F90 pop r6
745 .LVL102:
746 0382 5F90 pop r5
747 .LVL103:
748 0384 4F90 pop r4
749 .LVL104:
750 0386 3F90 pop r3
751 .LVL105:
752 0388 0895 ret
753 .LFE16:
755 .global dt_test
757 dt_test:
758 .LFB24:
759 .LM87:
760 /* prologue: function */
761 /* frame size = 0 */
762 .LM88:
763 038a 9FB7 in r25,__SREG__
764 .LVL106:
765 .LM89:
766 /* #APP */
767 ; 20 "include/dt.h" 1
768 038c F894 cli
769 ; 0 "" 2
770 .LM90:
771 /* #NOAPP */
772 038e 899A sbi 49-32,1
773 .LBB201:
774 .LBB202:
775 .LBB203:
776 .LBB204:
777 .LBB205:
778 .LBB206:
779 .LM91:
780 0390 E8EE ldi r30,lo8(1000)
781 0392 F3E0 ldi r31,hi8(1000)
782 .LVL107:
783 /* #APP */
784 ; 105 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
785 0394 3197 1: sbiw r30,1
786 0396 01F4 brne 1b
787 ; 0 "" 2
788 /* #NOAPP */
789 .LBE206:
790 .LBE205:
791 .LBE204:
792 .LBE203:
793 .LBE202:
794 .LBE201:
795 .LM92:
796 0398 8998 cbi 49-32,1
797 .LBB207:
798 .LBB208:
799 .LBB209:
800 .LBB210:
801 .LM93:
802 039a 8AEB ldi r24,lo8(-70)
803 .LVL108:
804 /* #APP */
805 ; 83 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
806 039c 8A95 1: dec r24
807 039e 01F4 brne 1b
808 ; 0 "" 2
809 /* #NOAPP */
810 .LBE210:
811 .LBE209:
812 .LBE208:
813 .LBE207:
814 .LM94:
815 03a0 80B3 in r24,48-32
816 .LVL109:
817 .LM95:
818 03a2 9FBF out __SREG__,r25
819 .LBB211:
820 .LBB212:
821 .LBB213:
822 .LBB214:
823 .LBB215:
824 .LBB216:
825 .LM96:
826 03a4 E8E4 ldi r30,lo8(840)
827 03a6 F3E0 ldi r31,hi8(840)
828 .LVL110:
829 /* #APP */
830 ; 105 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
831 03a8 3197 1: sbiw r30,1
832 03aa 01F4 brne 1b
833 ; 0 "" 2
834 /* #NOAPP */
835 03ac 8695 lsr r24
836 03ae 8095 com r24
837 .LBE216:
838 .LBE215:
839 .LBE214:
840 .LBE213:
841 .LBE212:
842 .LBE211:
843 .LM97:
844 03b0 8170 andi r24,lo8(1)
845 /* epilogue start */
846 03b2 0895 ret
847 .LFE24:
849 .global dt_rx
851 dt_rx:
852 .LFB25:
853 .LM98:
854 /* prologue: function */
855 /* frame size = 0 */
856 .LM99:
857 03b4 2FB7 in r18,__SREG__
858 .LVL111:
859 .LM100:
860 /* #APP */
861 ; 38 "include/dt.h" 1
862 03b6 F894 cli
863 ; 0 "" 2
864 .LM101:
865 /* #NOAPP */
866 03b8 899A sbi 49-32,1
867 .LBB217:
868 .LBB218:
869 .LBB219:
870 .LBB220:
871 .LM102:
872 03ba 85E0 ldi r24,lo8(5)
873 .LVL112:
874 /* #APP */
875 ; 83 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
876 03bc 8A95 1: dec r24
877 03be 01F4 brne 1b
878 ; 0 "" 2
879 /* #NOAPP */
880 .LBE220:
881 .LBE219:
882 .LBE218:
883 .LBE217:
884 .LM103:
885 03c0 8998 cbi 49-32,1
886 .LBB221:
887 .LBB222:
888 .LBB223:
889 .LBB224:
890 .LM104:
891 03c2 85E2 ldi r24,lo8(37)
892 .LVL113:
893 /* #APP */
894 ; 83 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
895 03c4 8A95 1: dec r24
896 03c6 01F4 brne 1b
897 ; 0 "" 2
898 /* #NOAPP */
899 .LBE224:
900 .LBE223:
901 .LBE222:
902 .LBE221:
903 .LM105:
904 03c8 80B3 in r24,48-32
905 .LVL114:
906 .LBB225:
907 .LBB226:
908 .LBB227:
909 .LBB228:
910 .LM106:
911 03ca 98E7 ldi r25,lo8(120)
912 .LVL115:
913 /* #APP */
914 ; 83 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
915 03cc 9A95 1: dec r25
916 03ce 01F4 brne 1b
917 ; 0 "" 2
918 /* #NOAPP */
919 .LBE228:
920 .LBE227:
921 .LBE226:
922 .LBE225:
923 .LM107:
924 03d0 2FBF out __SREG__,r18
925 03d2 90E0 ldi r25,lo8(0)
926 .LVL116:
927 03d4 8270 andi r24,lo8(2)
928 03d6 9070 andi r25,hi8(2)
929 03d8 9595 asr r25
930 03da 8795 ror r24
931 /* epilogue start */
932 .LM108:
933 03dc 0895 ret
934 .LFE25:
936 .global dt_rx8
938 dt_rx8:
939 .LFB26:
940 .LM109:
941 03de 1F93 push r17
942 03e0 CF93 push r28
943 03e2 DF93 push r29
944 /* prologue: function */
945 /* frame size = 0 */
946 .LM110:
947 03e4 10E0 ldi r17,lo8(0)
948 .LVL117:
949 03e6 C0E0 ldi r28,lo8(0)
950 03e8 D0E0 ldi r29,hi8(0)
951 .L65:
952 .LBB229:
953 .LM111:
954 03ea 00D0 rcall dt_rx
955 03ec 90E0 ldi r25,lo8(0)
956 03ee 0C2E mov r0,r28
957 03f0 00C0 rjmp 2f
958 03f2 880F 1: lsl r24
959 03f4 991F rol r25
960 03f6 0A94 2: dec r0
961 03f8 02F4 brpl 1b
962 03fa 182B or r17,r24
963 03fc 2196 adiw r28,1
964 03fe C830 cpi r28,8
965 0400 D105 cpc r29,__zero_reg__
966 0402 01F4 brne .L65
967 .LBE229:
968 .LM112:
969 0404 812F mov r24,r17
970 /* epilogue start */
971 0406 DF91 pop r29
972 0408 CF91 pop r28
973 040a 1F91 pop r17
974 .LVL118:
975 040c 0895 ret
976 .LFE26:
978 .global dt_tx
980 dt_tx:
981 .LFB27:
982 .LM113:
983 .LVL119:
984 /* prologue: function */
985 /* frame size = 0 */
986 .LM114:
987 040e 2FB7 in r18,__SREG__
988 .LVL120:
989 .LM115:
990 /* #APP */
991 ; 58 "include/dt.h" 1
992 0410 F894 cli
993 ; 0 "" 2
994 .LM116:
995 /* #NOAPP */
996 0412 899A sbi 49-32,1
997 .LBB230:
998 .LBB231:
999 .LBB232:
1000 .LBB233:
1001 .LM117:
1002 0414 95E0 ldi r25,lo8(5)
1003 .LVL121:
1004 /* #APP */
1005 ; 83 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
1006 0416 9A95 1: dec r25
1007 0418 01F4 brne 1b
1008 ; 0 "" 2
1009 /* #NOAPP */
1010 .LBE233:
1011 .LBE232:
1012 .LBE231:
1013 .LBE230:
1014 .LM118:
1015 041a 8111 cpse r24,__zero_reg__
1016 041c 8998 cbi 49-32,1
1017 .L69:
1018 .LBB234:
1019 .LBB235:
1020 .LBB236:
1021 .LBB237:
1022 .LM119:
1023 041e 8DEA ldi r24,lo8(-83)
1024 .LVL122:
1025 /* #APP */
1026 ; 83 "c:/winavr-20100110/lib/gcc/../../avr/include/util/delay_basic.h" 1
1027 0420 8A95 1: dec r24
1028 0422 01F4 brne 1b
1029 ; 0 "" 2
1030 /* #NOAPP */
1031 .LBE237:
1032 .LBE236:
1033 .LBE235:
1034 .LBE234: