-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbootloader.lst
3884 lines (3792 loc) · 152 KB
/
bootloader.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
bootloader.elf: file format elf32-avr
Disassembly of section .library:
00001c00 <disk_initialize>:
1c00: df 92 push r13
1c02: ef 92 push r14
1c04: ff 92 push r15
1c06: 0f 93 push r16
1c08: 1f 93 push r17
1c0a: cf 93 push r28
1c0c: df 93 push r29
1c0e: 00 d0 rcall .+0 ; 0x1c10 <disk_initialize+0x10>
1c10: 00 d0 rcall .+0 ; 0x1c12 <disk_initialize+0x12>
1c12: cd b7 in r28, 0x3d ; 61
1c14: de b7 in r29, 0x3e ; 62
1c16: d8 9a sbi 0x1b, 0 ; 27
1c18: 1a e0 ldi r17, 0x0A ; 10
1c1a: 8f ef ldi r24, 0xFF ; 255
1c1c: 0e 94 72 16 call 0x2ce4 ; 0x2ce4 <spi_send>
1c20: 11 50 subi r17, 0x01 ; 1
1c22: d9 f7 brne .-10 ; 0x1c1a <disk_initialize+0x1a>
1c24: 40 e0 ldi r20, 0x00 ; 0
1c26: 50 e0 ldi r21, 0x00 ; 0
1c28: ba 01 movw r22, r20
1c2a: 80 e4 ldi r24, 0x40 ; 64
1c2c: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1c30: 81 30 cpi r24, 0x01 ; 1
1c32: 09 f0 breq .+2 ; 0x1c36 <disk_initialize+0x36>
1c34: 84 c0 rjmp .+264 ; 0x1d3e <disk_initialize+0x13e>
1c36: 4a ea ldi r20, 0xAA ; 170
1c38: 51 e0 ldi r21, 0x01 ; 1
1c3a: 60 e0 ldi r22, 0x00 ; 0
1c3c: 70 e0 ldi r23, 0x00 ; 0
1c3e: 88 e4 ldi r24, 0x48 ; 72
1c40: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1c44: 81 30 cpi r24, 0x01 ; 1
1c46: 79 f5 brne .+94 ; 0x1ca6 <disk_initialize+0xa6>
1c48: 8e 01 movw r16, r28
1c4a: 0f 5f subi r16, 0xFF ; 255
1c4c: 1f 4f sbci r17, 0xFF ; 255
1c4e: 78 01 movw r14, r16
1c50: 24 e0 ldi r18, 0x04 ; 4
1c52: d2 2e mov r13, r18
1c54: d0 0e add r13, r16
1c56: 8f ef ldi r24, 0xFF ; 255
1c58: 0e 94 72 16 call 0x2ce4 ; 0x2ce4 <spi_send>
1c5c: f7 01 movw r30, r14
1c5e: 81 93 st Z+, r24
1c60: 7f 01 movw r14, r30
1c62: de 12 cpse r13, r30
1c64: f8 cf rjmp .-16 ; 0x1c56 <disk_initialize+0x56>
1c66: 8b 81 ldd r24, Y+3 ; 0x03
1c68: 81 30 cpi r24, 0x01 ; 1
1c6a: 09 f0 breq .+2 ; 0x1c6e <disk_initialize+0x6e>
1c6c: 68 c0 rjmp .+208 ; 0x1d3e <disk_initialize+0x13e>
1c6e: 8c 81 ldd r24, Y+4 ; 0x04
1c70: 8a 3a cpi r24, 0xAA ; 170
1c72: 09 f0 breq .+2 ; 0x1c76 <disk_initialize+0x76>
1c74: 64 c0 rjmp .+200 ; 0x1d3e <disk_initialize+0x13e>
1c76: 90 e1 ldi r25, 0x10 ; 16
1c78: e9 2e mov r14, r25
1c7a: 97 e2 ldi r25, 0x27 ; 39
1c7c: f9 2e mov r15, r25
1c7e: 40 e0 ldi r20, 0x00 ; 0
1c80: 50 e0 ldi r21, 0x00 ; 0
1c82: 60 e0 ldi r22, 0x00 ; 0
1c84: 70 e4 ldi r23, 0x40 ; 64
1c86: 89 ee ldi r24, 0xE9 ; 233
1c88: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1c8c: 88 23 and r24, r24
1c8e: 79 f1 breq .+94 ; 0x1cee <disk_initialize+0xee>
1c90: 87 ec ldi r24, 0xC7 ; 199
1c92: 90 e0 ldi r25, 0x00 ; 0
1c94: 01 97 sbiw r24, 0x01 ; 1
1c96: f1 f7 brne .-4 ; 0x1c94 <disk_initialize+0x94>
1c98: 00 c0 rjmp .+0 ; 0x1c9a <disk_initialize+0x9a>
1c9a: 00 00 nop
1c9c: 91 e0 ldi r25, 0x01 ; 1
1c9e: e9 1a sub r14, r25
1ca0: f1 08 sbc r15, r1
1ca2: 69 f7 brne .-38 ; 0x1c7e <disk_initialize+0x7e>
1ca4: 4c c0 rjmp .+152 ; 0x1d3e <disk_initialize+0x13e>
1ca6: 40 e0 ldi r20, 0x00 ; 0
1ca8: 50 e0 ldi r21, 0x00 ; 0
1caa: ba 01 movw r22, r20
1cac: 89 ee ldi r24, 0xE9 ; 233
1cae: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1cb2: 82 30 cpi r24, 0x02 ; 2
1cb4: 18 f0 brcs .+6 ; 0x1cbc <disk_initialize+0xbc>
1cb6: 11 e0 ldi r17, 0x01 ; 1
1cb8: 01 e4 ldi r16, 0x41 ; 65
1cba: 02 c0 rjmp .+4 ; 0x1cc0 <disk_initialize+0xc0>
1cbc: 12 e0 ldi r17, 0x02 ; 2
1cbe: 09 ee ldi r16, 0xE9 ; 233
1cc0: 80 e1 ldi r24, 0x10 ; 16
1cc2: e8 2e mov r14, r24
1cc4: 87 e2 ldi r24, 0x27 ; 39
1cc6: f8 2e mov r15, r24
1cc8: 40 e0 ldi r20, 0x00 ; 0
1cca: 50 e0 ldi r21, 0x00 ; 0
1ccc: ba 01 movw r22, r20
1cce: 80 2f mov r24, r16
1cd0: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1cd4: 88 23 and r24, r24
1cd6: 51 f1 breq .+84 ; 0x1d2c <disk_initialize+0x12c>
1cd8: 87 ec ldi r24, 0xC7 ; 199
1cda: 90 e0 ldi r25, 0x00 ; 0
1cdc: 01 97 sbiw r24, 0x01 ; 1
1cde: f1 f7 brne .-4 ; 0x1cdc <disk_initialize+0xdc>
1ce0: 00 c0 rjmp .+0 ; 0x1ce2 <disk_initialize+0xe2>
1ce2: 00 00 nop
1ce4: 91 e0 ldi r25, 0x01 ; 1
1ce6: e9 1a sub r14, r25
1ce8: f1 08 sbc r15, r1
1cea: 71 f7 brne .-36 ; 0x1cc8 <disk_initialize+0xc8>
1cec: 28 c0 rjmp .+80 ; 0x1d3e <disk_initialize+0x13e>
1cee: 40 e0 ldi r20, 0x00 ; 0
1cf0: 50 e0 ldi r21, 0x00 ; 0
1cf2: ba 01 movw r22, r20
1cf4: 8a e7 ldi r24, 0x7A ; 122
1cf6: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1cfa: 81 11 cpse r24, r1
1cfc: 20 c0 rjmp .+64 ; 0x1d3e <disk_initialize+0x13e>
1cfe: 8f ef ldi r24, 0xFF ; 255
1d00: f1 d7 rcall .+4066 ; 0x2ce4 <spi_send>
1d02: f8 01 movw r30, r16
1d04: 81 93 st Z+, r24
1d06: 8f 01 movw r16, r30
1d08: de 12 cpse r13, r30
1d0a: f9 cf rjmp .-14 ; 0x1cfe <disk_initialize+0xfe>
1d0c: 89 81 ldd r24, Y+1 ; 0x01
1d0e: 86 fd sbrc r24, 6
1d10: 02 c0 rjmp .+4 ; 0x1d16 <disk_initialize+0x116>
1d12: 14 e0 ldi r17, 0x04 ; 4
1d14: 01 c0 rjmp .+2 ; 0x1d18 <disk_initialize+0x118>
1d16: 1c e0 ldi r17, 0x0C ; 12
1d18: 10 93 6d 00 sts 0x006D, r17
1d1c: d8 9a sbi 0x1b, 0 ; 27
1d1e: 8f ef ldi r24, 0xFF ; 255
1d20: e1 d7 rcall .+4034 ; 0x2ce4 <spi_send>
1d22: 81 e0 ldi r24, 0x01 ; 1
1d24: 11 23 and r17, r17
1d26: 69 f0 breq .+26 ; 0x1d42 <disk_initialize+0x142>
1d28: 80 e0 ldi r24, 0x00 ; 0
1d2a: 0b c0 rjmp .+22 ; 0x1d42 <disk_initialize+0x142>
1d2c: 40 e0 ldi r20, 0x00 ; 0
1d2e: 52 e0 ldi r21, 0x02 ; 2
1d30: 60 e0 ldi r22, 0x00 ; 0
1d32: 70 e0 ldi r23, 0x00 ; 0
1d34: 80 e5 ldi r24, 0x50 ; 80
1d36: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1d3a: 88 23 and r24, r24
1d3c: 69 f3 breq .-38 ; 0x1d18 <disk_initialize+0x118>
1d3e: 10 e0 ldi r17, 0x00 ; 0
1d40: eb cf rjmp .-42 ; 0x1d18 <disk_initialize+0x118>
1d42: 0f 90 pop r0
1d44: 0f 90 pop r0
1d46: 0f 90 pop r0
1d48: 0f 90 pop r0
1d4a: df 91 pop r29
1d4c: cf 91 pop r28
1d4e: 1f 91 pop r17
1d50: 0f 91 pop r16
1d52: ff 90 pop r15
1d54: ef 90 pop r14
1d56: df 90 pop r13
1d58: 08 95 ret
00001d5a <disk_readp>:
1d5a: cf 92 push r12
1d5c: df 92 push r13
1d5e: ef 92 push r14
1d60: ff 92 push r15
1d62: 0f 93 push r16
1d64: 1f 93 push r17
1d66: cf 93 push r28
1d68: df 93 push r29
1d6a: 7c 01 movw r14, r24
1d6c: 69 01 movw r12, r18
1d6e: 80 91 6d 00 lds r24, 0x006D
1d72: 83 fd sbrc r24, 3
1d74: 07 c0 rjmp .+14 ; 0x1d84 <disk_readp+0x2a>
1d76: 89 e0 ldi r24, 0x09 ; 9
1d78: 44 0f add r20, r20
1d7a: 55 1f adc r21, r21
1d7c: 66 1f adc r22, r22
1d7e: 77 1f adc r23, r23
1d80: 8a 95 dec r24
1d82: d1 f7 brne .-12 ; 0x1d78 <disk_readp+0x1e>
1d84: 81 e5 ldi r24, 0x51 ; 81
1d86: 0e 94 97 17 call 0x2f2e ; 0x2f2e <send_cmd>
1d8a: 88 23 and r24, r24
1d8c: 11 f0 breq .+4 ; 0x1d92 <disk_readp+0x38>
1d8e: c1 e0 ldi r28, 0x01 ; 1
1d90: 2b c0 rjmp .+86 ; 0x1de8 <disk_readp+0x8e>
1d92: c0 e4 ldi r28, 0x40 ; 64
1d94: dc e9 ldi r29, 0x9C ; 156
1d96: 8f ef ldi r24, 0xFF ; 255
1d98: a5 d7 rcall .+3914 ; 0x2ce4 <spi_send>
1d9a: 8f 3f cpi r24, 0xFF ; 255
1d9c: 19 f4 brne .+6 ; 0x1da4 <disk_readp+0x4a>
1d9e: 21 97 sbiw r28, 0x01 ; 1
1da0: d1 f7 brne .-12 ; 0x1d96 <disk_readp+0x3c>
1da2: f5 cf rjmp .-22 ; 0x1d8e <disk_readp+0x34>
1da4: 8e 3f cpi r24, 0xFE ; 254
1da6: 99 f7 brne .-26 ; 0x1d8e <disk_readp+0x34>
1da8: c2 e0 ldi r28, 0x02 ; 2
1daa: d2 e0 ldi r29, 0x02 ; 2
1dac: c0 1b sub r28, r16
1dae: d1 0b sbc r29, r17
1db0: cc 19 sub r28, r12
1db2: dd 09 sbc r29, r13
1db4: c1 14 cp r12, r1
1db6: d1 04 cpc r13, r1
1db8: 21 f4 brne .+8 ; 0x1dc2 <disk_readp+0x68>
1dba: e1 14 cp r14, r1
1dbc: f1 04 cpc r15, r1
1dbe: 39 f4 brne .+14 ; 0x1dce <disk_readp+0x74>
1dc0: 0e c0 rjmp .+28 ; 0x1dde <disk_readp+0x84>
1dc2: 8f ef ldi r24, 0xFF ; 255
1dc4: 8f d7 rcall .+3870 ; 0x2ce4 <spi_send>
1dc6: 81 e0 ldi r24, 0x01 ; 1
1dc8: c8 1a sub r12, r24
1dca: d1 08 sbc r13, r1
1dcc: f3 cf rjmp .-26 ; 0x1db4 <disk_readp+0x5a>
1dce: 8f ef ldi r24, 0xFF ; 255
1dd0: 89 d7 rcall .+3858 ; 0x2ce4 <spi_send>
1dd2: f7 01 movw r30, r14
1dd4: 81 93 st Z+, r24
1dd6: 7f 01 movw r14, r30
1dd8: 01 50 subi r16, 0x01 ; 1
1dda: 11 09 sbc r17, r1
1ddc: c1 f7 brne .-16 ; 0x1dce <disk_readp+0x74>
1dde: 8f ef ldi r24, 0xFF ; 255
1de0: 81 d7 rcall .+3842 ; 0x2ce4 <spi_send>
1de2: 21 97 sbiw r28, 0x01 ; 1
1de4: e1 f7 brne .-8 ; 0x1dde <disk_readp+0x84>
1de6: c0 e0 ldi r28, 0x00 ; 0
1de8: d8 9a sbi 0x1b, 0 ; 27
1dea: 8f ef ldi r24, 0xFF ; 255
1dec: 7b d7 rcall .+3830 ; 0x2ce4 <spi_send>
1dee: 8c 2f mov r24, r28
1df0: df 91 pop r29
1df2: cf 91 pop r28
1df4: 1f 91 pop r17
1df6: 0f 91 pop r16
1df8: ff 90 pop r15
1dfa: ef 90 pop r14
1dfc: df 90 pop r13
1dfe: cf 90 pop r12
1e00: 08 95 ret
00001e02 <pf_mount>:
1e02: 4f 92 push r4
1e04: 5f 92 push r5
1e06: 6f 92 push r6
1e08: 7f 92 push r7
1e0a: 8f 92 push r8
1e0c: 9f 92 push r9
1e0e: af 92 push r10
1e10: bf 92 push r11
1e12: df 92 push r13
1e14: ef 92 push r14
1e16: ff 92 push r15
1e18: 0f 93 push r16
1e1a: 1f 93 push r17
1e1c: cf 93 push r28
1e1e: df 93 push r29
1e20: cd b7 in r28, 0x3d ; 61
1e22: de b7 in r29, 0x3e ; 62
1e24: e0 97 sbiw r28, 0x30 ; 48
1e26: 0f b6 in r0, 0x3f ; 63
1e28: f8 94 cli
1e2a: de bf out 0x3e, r29 ; 62
1e2c: 0f be out 0x3f, r0 ; 63
1e2e: cd bf out 0x3d, r28 ; 61
1e30: 10 92 6f 00 sts 0x006F, r1
1e34: 10 92 6e 00 sts 0x006E, r1
1e38: 00 97 sbiw r24, 0x00 ; 0
1e3a: 09 f4 brne .+2 ; 0x1e3e <pf_mount+0x3c>
1e3c: 4e c1 rjmp .+668 ; 0x20da <pf_mount+0x2d8>
1e3e: 7c 01 movw r14, r24
1e40: df de rcall .-578 ; 0x1c00 <disk_initialize>
1e42: 80 fd sbrc r24, 0
1e44: 4c c1 rjmp .+664 ; 0x20de <pf_mount+0x2dc>
1e46: 40 e0 ldi r20, 0x00 ; 0
1e48: 50 e0 ldi r21, 0x00 ; 0
1e4a: ba 01 movw r22, r20
1e4c: ce 01 movw r24, r28
1e4e: 01 96 adiw r24, 0x01 ; 1
1e50: 0e 94 4e 19 call 0x329c ; 0x329c <check_fs>
1e54: 81 30 cpi r24, 0x01 ; 1
1e56: 99 f5 brne .+102 ; 0x1ebe <pf_mount+0xbc>
1e58: 00 e1 ldi r16, 0x10 ; 16
1e5a: 10 e0 ldi r17, 0x00 ; 0
1e5c: 2e eb ldi r18, 0xBE ; 190
1e5e: 31 e0 ldi r19, 0x01 ; 1
1e60: 40 e0 ldi r20, 0x00 ; 0
1e62: 50 e0 ldi r21, 0x00 ; 0
1e64: ba 01 movw r22, r20
1e66: ce 01 movw r24, r28
1e68: 01 96 adiw r24, 0x01 ; 1
1e6a: 77 df rcall .-274 ; 0x1d5a <disk_readp>
1e6c: 88 23 and r24, r24
1e6e: 11 f0 breq .+4 ; 0x1e74 <pf_mount+0x72>
1e70: 81 e0 ldi r24, 0x01 ; 1
1e72: 36 c1 rjmp .+620 ; 0x20e0 <pf_mount+0x2de>
1e74: 8d 81 ldd r24, Y+5 ; 0x05
1e76: 81 11 cpse r24, r1
1e78: 02 c0 rjmp .+4 ; 0x1e7e <pf_mount+0x7c>
1e7a: 87 e0 ldi r24, 0x07 ; 7
1e7c: 31 c1 rjmp .+610 ; 0x20e0 <pf_mount+0x2de>
1e7e: 8c 85 ldd r24, Y+12 ; 0x0c
1e80: 8b 84 ldd r8, Y+11 ; 0x0b
1e82: 91 2c mov r9, r1
1e84: a1 2c mov r10, r1
1e86: b1 2c mov r11, r1
1e88: 54 01 movw r10, r8
1e8a: 99 24 eor r9, r9
1e8c: 88 24 eor r8, r8
1e8e: b8 2a or r11, r24
1e90: 89 85 ldd r24, Y+9 ; 0x09
1e92: 95 01 movw r18, r10
1e94: 84 01 movw r16, r8
1e96: 08 2b or r16, r24
1e98: d9 01 movw r26, r18
1e9a: c8 01 movw r24, r16
1e9c: 8a 84 ldd r8, Y+10 ; 0x0a
1e9e: 91 2c mov r9, r1
1ea0: 98 2c mov r9, r8
1ea2: 88 24 eor r8, r8
1ea4: a1 2c mov r10, r1
1ea6: b1 2c mov r11, r1
1ea8: 88 2a or r8, r24
1eaa: 99 2a or r9, r25
1eac: aa 2a or r10, r26
1eae: bb 2a or r11, r27
1eb0: b5 01 movw r22, r10
1eb2: a4 01 movw r20, r8
1eb4: ce 01 movw r24, r28
1eb6: 01 96 adiw r24, 0x01 ; 1
1eb8: 0e 94 4e 19 call 0x329c ; 0x329c <check_fs>
1ebc: 03 c0 rjmp .+6 ; 0x1ec4 <pf_mount+0xc2>
1ebe: 81 2c mov r8, r1
1ec0: 91 2c mov r9, r1
1ec2: 54 01 movw r10, r8
1ec4: 83 30 cpi r24, 0x03 ; 3
1ec6: a1 f2 breq .-88 ; 0x1e70 <pf_mount+0x6e>
1ec8: 81 11 cpse r24, r1
1eca: d7 cf rjmp .-82 ; 0x1e7a <pf_mount+0x78>
1ecc: 04 e2 ldi r16, 0x24 ; 36
1ece: 10 e0 ldi r17, 0x00 ; 0
1ed0: 2d e0 ldi r18, 0x0D ; 13
1ed2: 30 e0 ldi r19, 0x00 ; 0
1ed4: b5 01 movw r22, r10
1ed6: a4 01 movw r20, r8
1ed8: ce 01 movw r24, r28
1eda: 01 96 adiw r24, 0x01 ; 1
1edc: 3e df rcall .-388 ; 0x1d5a <disk_readp>
1ede: 81 11 cpse r24, r1
1ee0: c7 cf rjmp .-114 ; 0x1e70 <pf_mount+0x6e>
1ee2: 2b 85 ldd r18, Y+11 ; 0x0b
1ee4: 30 e0 ldi r19, 0x00 ; 0
1ee6: 32 2f mov r19, r18
1ee8: 22 27 eor r18, r18
1eea: 8a 85 ldd r24, Y+10 ; 0x0a
1eec: 28 2b or r18, r24
1eee: 21 15 cp r18, r1
1ef0: 31 05 cpc r19, r1
1ef2: 19 f0 breq .+6 ; 0x1efa <pf_mount+0xf8>
1ef4: 40 e0 ldi r20, 0x00 ; 0
1ef6: 50 e0 ldi r21, 0x00 ; 0
1ef8: 18 c0 rjmp .+48 ; 0x1f2a <pf_mount+0x128>
1efa: 8b 8d ldd r24, Y+27 ; 0x1b
1efc: 2a 8d ldd r18, Y+26 ; 0x1a
1efe: 42 2f mov r20, r18
1f00: 50 e0 ldi r21, 0x00 ; 0
1f02: 60 e0 ldi r22, 0x00 ; 0
1f04: 70 e0 ldi r23, 0x00 ; 0
1f06: ba 01 movw r22, r20
1f08: 55 27 eor r21, r21
1f0a: 44 27 eor r20, r20
1f0c: 78 2b or r23, r24
1f0e: 88 8d ldd r24, Y+24 ; 0x18
1f10: 48 2b or r20, r24
1f12: 89 8d ldd r24, Y+25 ; 0x19
1f14: 90 e0 ldi r25, 0x00 ; 0
1f16: 98 2f mov r25, r24
1f18: 88 27 eor r24, r24
1f1a: a0 e0 ldi r26, 0x00 ; 0
1f1c: b0 e0 ldi r27, 0x00 ; 0
1f1e: 9a 01 movw r18, r20
1f20: ab 01 movw r20, r22
1f22: 28 2b or r18, r24
1f24: 39 2b or r19, r25
1f26: 4a 2b or r20, r26
1f28: 5b 2b or r21, r27
1f2a: ac 81 ldd r26, Y+4 ; 0x04
1f2c: b0 e0 ldi r27, 0x00 ; 0
1f2e: 0e 94 7c 1a call 0x34f8 ; 0x34f8 <__muluhisi3>
1f32: 2b 01 movw r4, r22
1f34: 3c 01 movw r6, r24
1f36: 6b 81 ldd r22, Y+3 ; 0x03
1f38: 70 e0 ldi r23, 0x00 ; 0
1f3a: 76 2f mov r23, r22
1f3c: 66 27 eor r22, r22
1f3e: 8a 81 ldd r24, Y+2 ; 0x02
1f40: 68 2b or r22, r24
1f42: 9b 01 movw r18, r22
1f44: 40 e0 ldi r20, 0x00 ; 0
1f46: 50 e0 ldi r21, 0x00 ; 0
1f48: 29 a7 std Y+41, r18 ; 0x29
1f4a: 3a a7 std Y+42, r19 ; 0x2a
1f4c: 4b a7 std Y+43, r20 ; 0x2b
1f4e: 5c a7 std Y+44, r21 ; 0x2c
1f50: 82 0e add r8, r18
1f52: 93 1e adc r9, r19
1f54: a4 1e adc r10, r20
1f56: b5 1e adc r11, r21
1f58: d7 01 movw r26, r14
1f5a: 1a 96 adiw r26, 0x0a ; 10
1f5c: 8d 92 st X+, r8
1f5e: 9d 92 st X+, r9
1f60: ad 92 st X+, r10
1f62: bc 92 st X, r11
1f64: 1d 97 sbiw r26, 0x0d ; 13
1f66: d9 80 ldd r13, Y+1 ; 0x01
1f68: 12 96 adiw r26, 0x02 ; 2
1f6a: dc 92 st X, r13
1f6c: 12 97 sbiw r26, 0x02 ; 2
1f6e: 4e 81 ldd r20, Y+6 ; 0x06
1f70: 50 e0 ldi r21, 0x00 ; 0
1f72: 54 2f mov r21, r20
1f74: 44 27 eor r20, r20
1f76: 2d 81 ldd r18, Y+5 ; 0x05
1f78: 42 2b or r20, r18
1f7a: 15 96 adiw r26, 0x05 ; 5
1f7c: 5c 93 st X, r21
1f7e: 4e 93 st -X, r20
1f80: 14 97 sbiw r26, 0x04 ; 4
1f82: 28 85 ldd r18, Y+8 ; 0x08
1f84: 30 e0 ldi r19, 0x00 ; 0
1f86: 32 2f mov r19, r18
1f88: 22 27 eor r18, r18
1f8a: ef 81 ldd r30, Y+7 ; 0x07
1f8c: 2e 2b or r18, r30
1f8e: 21 15 cp r18, r1
1f90: 31 05 cpc r19, r1
1f92: 21 f0 breq .+8 ; 0x1f9c <pf_mount+0x19a>
1f94: 89 01 movw r16, r18
1f96: 20 e0 ldi r18, 0x00 ; 0
1f98: 30 e0 ldi r19, 0x00 ; 0
1f9a: 22 c0 rjmp .+68 ; 0x1fe0 <pf_mount+0x1de>
1f9c: ff 89 ldd r31, Y+23 ; 0x17
1f9e: ee 89 ldd r30, Y+22 ; 0x16
1fa0: 0e 2f mov r16, r30
1fa2: 10 e0 ldi r17, 0x00 ; 0
1fa4: 20 e0 ldi r18, 0x00 ; 0
1fa6: 30 e0 ldi r19, 0x00 ; 0
1fa8: 98 01 movw r18, r16
1faa: 11 27 eor r17, r17
1fac: 00 27 eor r16, r16
1fae: 3f 2b or r19, r31
1fb0: ec 89 ldd r30, Y+20 ; 0x14
1fb2: c9 01 movw r24, r18
1fb4: b8 01 movw r22, r16
1fb6: 6e 2b or r22, r30
1fb8: 6d a7 std Y+45, r22 ; 0x2d
1fba: 7e a7 std Y+46, r23 ; 0x2e
1fbc: 8f a7 std Y+47, r24 ; 0x2f
1fbe: 98 ab std Y+48, r25 ; 0x30
1fc0: ed 89 ldd r30, Y+21 ; 0x15
1fc2: ae 2f mov r26, r30
1fc4: b0 e0 ldi r27, 0x00 ; 0
1fc6: fa 2f mov r31, r26
1fc8: ee 27 eor r30, r30
1fca: cf 01 movw r24, r30
1fcc: a0 e0 ldi r26, 0x00 ; 0
1fce: b0 e0 ldi r27, 0x00 ; 0
1fd0: 0d a5 ldd r16, Y+45 ; 0x2d
1fd2: 1e a5 ldd r17, Y+46 ; 0x2e
1fd4: 2f a5 ldd r18, Y+47 ; 0x2f
1fd6: 38 a9 ldd r19, Y+48 ; 0x30
1fd8: 08 2b or r16, r24
1fda: 19 2b or r17, r25
1fdc: 2a 2b or r18, r26
1fde: 3b 2b or r19, r27
1fe0: 74 e0 ldi r23, 0x04 ; 4
1fe2: 56 95 lsr r21
1fe4: 47 95 ror r20
1fe6: 7a 95 dec r23
1fe8: e1 f7 brne .-8 ; 0x1fe2 <pf_mount+0x1e0>
1fea: ba 01 movw r22, r20
1fec: 80 e0 ldi r24, 0x00 ; 0
1fee: 90 e0 ldi r25, 0x00 ; 0
1ff0: 6d a3 std Y+37, r22 ; 0x25
1ff2: 7e a3 std Y+38, r23 ; 0x26
1ff4: 8f a3 std Y+39, r24 ; 0x27
1ff6: 98 a7 std Y+40, r25 ; 0x28
1ff8: d9 01 movw r26, r18
1ffa: c8 01 movw r24, r16
1ffc: 49 a5 ldd r20, Y+41 ; 0x29
1ffe: 5a a5 ldd r21, Y+42 ; 0x2a
2000: 6b a5 ldd r22, Y+43 ; 0x2b
2002: 7c a5 ldd r23, Y+44 ; 0x2c
2004: 84 1b sub r24, r20
2006: 95 0b sbc r25, r21
2008: a6 0b sbc r26, r22
200a: b7 0b sbc r27, r23
200c: 84 19 sub r24, r4
200e: 95 09 sbc r25, r5
2010: a6 09 sbc r26, r6
2012: b7 09 sbc r27, r7
2014: bc 01 movw r22, r24
2016: cd 01 movw r24, r26
2018: 0d a1 ldd r16, Y+37 ; 0x25
201a: 1e a1 ldd r17, Y+38 ; 0x26
201c: 2f a1 ldd r18, Y+39 ; 0x27
201e: 38 a5 ldd r19, Y+40 ; 0x28
2020: 60 1b sub r22, r16
2022: 71 0b sbc r23, r17
2024: 82 0b sbc r24, r18
2026: 93 0b sbc r25, r19
2028: 2d 2d mov r18, r13
202a: 30 e0 ldi r19, 0x00 ; 0
202c: 40 e0 ldi r20, 0x00 ; 0
202e: 50 e0 ldi r21, 0x00 ; 0
2030: 0e 94 99 1a call 0x3532 ; 0x3532 <__udivmodsi4>
2034: da 01 movw r26, r20
2036: c9 01 movw r24, r18
2038: 02 96 adiw r24, 0x02 ; 2
203a: a1 1d adc r26, r1
203c: b1 1d adc r27, r1
203e: f7 01 movw r30, r14
2040: 86 83 std Z+6, r24 ; 0x06
2042: 97 83 std Z+7, r25 ; 0x07
2044: a0 87 std Z+8, r26 ; 0x08
2046: b1 87 std Z+9, r27 ; 0x09
2048: 87 3f cpi r24, 0xF7 ; 247
204a: ff e0 ldi r31, 0x0F ; 15
204c: 9f 07 cpc r25, r31
204e: a1 05 cpc r26, r1
2050: b1 05 cpc r27, r1
2052: 08 f4 brcc .+2 ; 0x2056 <pf_mount+0x254>
2054: 12 cf rjmp .-476 ; 0x1e7a <pf_mount+0x78>
2056: 87 3f cpi r24, 0xF7 ; 247
2058: 9f 4f sbci r25, 0xFF ; 255
205a: a1 05 cpc r26, r1
205c: b1 05 cpc r27, r1
205e: 10 f0 brcs .+4 ; 0x2064 <pf_mount+0x262>
2060: 83 e0 ldi r24, 0x03 ; 3
2062: 01 c0 rjmp .+2 ; 0x2066 <pf_mount+0x264>
2064: 82 e0 ldi r24, 0x02 ; 2
2066: d7 01 movw r26, r14
2068: 8c 93 st X, r24
206a: 83 30 cpi r24, 0x03 ; 3
206c: b1 f4 brne .+44 ; 0x209a <pf_mount+0x298>
206e: 2b a1 ldd r18, Y+35 ; 0x23
2070: 8a a1 ldd r24, Y+34 ; 0x22
2072: 90 e0 ldi r25, 0x00 ; 0
2074: a0 e0 ldi r26, 0x00 ; 0
2076: b0 e0 ldi r27, 0x00 ; 0
2078: dc 01 movw r26, r24
207a: 99 27 eor r25, r25
207c: 88 27 eor r24, r24
207e: b2 2b or r27, r18
2080: 28 a1 ldd r18, Y+32 ; 0x20
2082: 82 2b or r24, r18
2084: 49 a1 ldd r20, Y+33 ; 0x21
2086: 50 e0 ldi r21, 0x00 ; 0
2088: 54 2f mov r21, r20
208a: 44 27 eor r20, r20
208c: 60 e0 ldi r22, 0x00 ; 0
208e: 70 e0 ldi r23, 0x00 ; 0
2090: 84 2b or r24, r20
2092: 95 2b or r25, r21
2094: a6 2b or r26, r22
2096: b7 2b or r27, r23
2098: 06 c0 rjmp .+12 ; 0x20a6 <pf_mount+0x2a4>
209a: d3 01 movw r26, r6
209c: c2 01 movw r24, r4
209e: 88 0d add r24, r8
20a0: 99 1d adc r25, r9
20a2: aa 1d adc r26, r10
20a4: bb 1d adc r27, r11
20a6: f7 01 movw r30, r14
20a8: 86 87 std Z+14, r24 ; 0x0e
20aa: 97 87 std Z+15, r25 ; 0x0f
20ac: a0 8b std Z+16, r26 ; 0x10
20ae: b1 8b std Z+17, r27 ; 0x11
20b0: 0d a1 ldd r16, Y+37 ; 0x25
20b2: 1e a1 ldd r17, Y+38 ; 0x26
20b4: 2f a1 ldd r18, Y+39 ; 0x27
20b6: 38 a5 ldd r19, Y+40 ; 0x28
20b8: 80 0e add r8, r16
20ba: 91 1e adc r9, r17
20bc: a2 1e adc r10, r18
20be: b3 1e adc r11, r19
20c0: 48 0c add r4, r8
20c2: 59 1c adc r5, r9
20c4: 6a 1c adc r6, r10
20c6: 7b 1c adc r7, r11
20c8: 42 8a std Z+18, r4 ; 0x12
20ca: 53 8a std Z+19, r5 ; 0x13
20cc: 64 8a std Z+20, r6 ; 0x14
20ce: 75 8a std Z+21, r7 ; 0x15
20d0: 11 82 std Z+1, r1 ; 0x01
20d2: f0 92 6f 00 sts 0x006F, r15
20d6: e0 92 6e 00 sts 0x006E, r14
20da: 80 e0 ldi r24, 0x00 ; 0
20dc: 01 c0 rjmp .+2 ; 0x20e0 <pf_mount+0x2de>
20de: 82 e0 ldi r24, 0x02 ; 2
20e0: e0 96 adiw r28, 0x30 ; 48
20e2: 0f b6 in r0, 0x3f ; 63
20e4: f8 94 cli
20e6: de bf out 0x3e, r29 ; 62
20e8: 0f be out 0x3f, r0 ; 63
20ea: cd bf out 0x3d, r28 ; 61
20ec: df 91 pop r29
20ee: cf 91 pop r28
20f0: 1f 91 pop r17
20f2: 0f 91 pop r16
20f4: ff 90 pop r15
20f6: ef 90 pop r14
20f8: df 90 pop r13
20fa: bf 90 pop r11
20fc: af 90 pop r10
20fe: 9f 90 pop r9
2100: 8f 90 pop r8
2102: 7f 90 pop r7
2104: 6f 90 pop r6
2106: 5f 90 pop r5
2108: 4f 90 pop r4
210a: 08 95 ret
0000210c <pf_open>:
210c: 0f 93 push r16
210e: 1f 93 push r17
2110: cf 93 push r28
2112: df 93 push r29
2114: cd b7 in r28, 0x3d ; 61
2116: de b7 in r29, 0x3e ; 62
2118: ec 97 sbiw r28, 0x3c ; 60
211a: 0f b6 in r0, 0x3f ; 63
211c: f8 94 cli
211e: de bf out 0x3e, r29 ; 62
2120: 0f be out 0x3f, r0 ; 63
2122: cd bf out 0x3d, r28 ; 61
2124: 00 91 6e 00 lds r16, 0x006E
2128: 10 91 6f 00 lds r17, 0x006F
212c: 01 15 cp r16, r1
212e: 11 05 cpc r17, r1
2130: 09 f4 brne .+2 ; 0x2134 <pf_open+0x28>
2132: 53 c0 rjmp .+166 ; 0x21da <pf_open+0xce>
2134: ac 01 movw r20, r24
2136: f8 01 movw r30, r16
2138: 11 82 std Z+1, r1 ; 0x01
213a: ce 01 movw r24, r28
213c: c1 96 adiw r24, 0x31 ; 49
213e: 9c a3 std Y+36, r25 ; 0x24
2140: 8b a3 std Y+35, r24 ; 0x23
2142: be 01 movw r22, r28
2144: 6f 5f subi r22, 0xFF ; 255
2146: 7f 4f sbci r23, 0xFF ; 255
2148: 40 97 sbiw r24, 0x10 ; 16
214a: 0e 94 a1 19 call 0x3342 ; 0x3342 <follow_path>
214e: 81 11 cpse r24, r1
2150: 47 c0 rjmp .+142 ; 0x21e0 <pf_open+0xd4>
2152: 89 81 ldd r24, Y+1 ; 0x01
2154: 88 23 and r24, r24
2156: 09 f4 brne .+2 ; 0x215a <pf_open+0x4e>
2158: 42 c0 rjmp .+132 ; 0x21de <pf_open+0xd2>
215a: 8c 85 ldd r24, Y+12 ; 0x0c
215c: 84 fd sbrc r24, 4
215e: 3f c0 rjmp .+126 ; 0x21de <pf_open+0xd2>
2160: 8e 89 ldd r24, Y+22 ; 0x16
2162: 90 e0 ldi r25, 0x00 ; 0
2164: 98 2f mov r25, r24
2166: 88 27 eor r24, r24
2168: 2d 89 ldd r18, Y+21 ; 0x15
216a: 82 2b or r24, r18
216c: a0 e0 ldi r26, 0x00 ; 0
216e: b0 e0 ldi r27, 0x00 ; 0
2170: dc 01 movw r26, r24
2172: 99 27 eor r25, r25
2174: 88 27 eor r24, r24
2176: 4c 8d ldd r20, Y+28 ; 0x1c
2178: 50 e0 ldi r21, 0x00 ; 0
217a: 54 2f mov r21, r20
217c: 44 27 eor r20, r20
217e: 2b 8d ldd r18, Y+27 ; 0x1b
2180: 42 2b or r20, r18
2182: 60 e0 ldi r22, 0x00 ; 0
2184: 70 e0 ldi r23, 0x00 ; 0
2186: 84 2b or r24, r20
2188: 95 2b or r25, r21
218a: a6 2b or r26, r22
218c: b7 2b or r27, r23
218e: f8 01 movw r30, r16
2190: 86 8f std Z+30, r24 ; 0x1e
2192: 97 8f std Z+31, r25 ; 0x1f
2194: a0 a3 std Z+32, r26 ; 0x20
2196: b1 a3 std Z+33, r27 ; 0x21
2198: 28 a1 ldd r18, Y+32 ; 0x20
219a: 8f 8d ldd r24, Y+31 ; 0x1f
219c: 90 e0 ldi r25, 0x00 ; 0
219e: a0 e0 ldi r26, 0x00 ; 0
21a0: b0 e0 ldi r27, 0x00 ; 0
21a2: dc 01 movw r26, r24
21a4: 99 27 eor r25, r25
21a6: 88 27 eor r24, r24
21a8: b2 2b or r27, r18
21aa: 2d 8d ldd r18, Y+29 ; 0x1d
21ac: 82 2b or r24, r18
21ae: 4e 8d ldd r20, Y+30 ; 0x1e
21b0: 50 e0 ldi r21, 0x00 ; 0
21b2: 54 2f mov r21, r20
21b4: 44 27 eor r20, r20
21b6: 60 e0 ldi r22, 0x00 ; 0
21b8: 70 e0 ldi r23, 0x00 ; 0
21ba: 84 2b or r24, r20
21bc: 95 2b or r25, r21
21be: a6 2b or r26, r22
21c0: b7 2b or r27, r23
21c2: 82 8f std Z+26, r24 ; 0x1a
21c4: 93 8f std Z+27, r25 ; 0x1b
21c6: a4 8f std Z+28, r26 ; 0x1c
21c8: b5 8f std Z+29, r27 ; 0x1d
21ca: 16 8a std Z+22, r1 ; 0x16
21cc: 17 8a std Z+23, r1 ; 0x17
21ce: 10 8e std Z+24, r1 ; 0x18
21d0: 11 8e std Z+25, r1 ; 0x19
21d2: 81 e0 ldi r24, 0x01 ; 1
21d4: 81 83 std Z+1, r24 ; 0x01
21d6: 80 e0 ldi r24, 0x00 ; 0
21d8: 03 c0 rjmp .+6 ; 0x21e0 <pf_open+0xd4>
21da: 86 e0 ldi r24, 0x06 ; 6
21dc: 01 c0 rjmp .+2 ; 0x21e0 <pf_open+0xd4>
21de: 83 e0 ldi r24, 0x03 ; 3
21e0: ec 96 adiw r28, 0x3c ; 60
21e2: 0f b6 in r0, 0x3f ; 63
21e4: f8 94 cli
21e6: de bf out 0x3e, r29 ; 62
21e8: 0f be out 0x3f, r0 ; 63
21ea: cd bf out 0x3d, r28 ; 61
21ec: df 91 pop r29
21ee: cf 91 pop r28
21f0: 1f 91 pop r17
21f2: 0f 91 pop r16
21f4: 08 95 ret
000021f6 <pf_read>:
21f6: 4f 92 push r4
21f8: 5f 92 push r5
21fa: 6f 92 push r6
21fc: 7f 92 push r7
21fe: 8f 92 push r8
2200: 9f 92 push r9
2202: af 92 push r10
2204: bf 92 push r11
2206: cf 92 push r12
2208: df 92 push r13
220a: ef 92 push r14
220c: ff 92 push r15
220e: 0f 93 push r16
2210: 1f 93 push r17
2212: cf 93 push r28
2214: df 93 push r29
2216: 4c 01 movw r8, r24
2218: 6b 01 movw r12, r22
221a: 5a 01 movw r10, r20
221c: c0 91 6e 00 lds r28, 0x006E
2220: d0 91 6f 00 lds r29, 0x006F
2224: fa 01 movw r30, r20
2226: 11 82 std Z+1, r1 ; 0x01
2228: 10 82 st Z, r1
222a: 20 97 sbiw r28, 0x00 ; 0
222c: 09 f4 brne .+2 ; 0x2230 <pf_read+0x3a>
222e: 9e c0 rjmp .+316 ; 0x236c <pf_read+0x176>
2230: 89 81 ldd r24, Y+1 ; 0x01
2232: 80 ff sbrs r24, 0
2234: 9d c0 rjmp .+314 ; 0x2370 <pf_read+0x17a>
2236: 8a 8d ldd r24, Y+26 ; 0x1a
2238: 9b 8d ldd r25, Y+27 ; 0x1b
223a: ac 8d ldd r26, Y+28 ; 0x1c
223c: bd 8d ldd r27, Y+29 ; 0x1d
223e: 4e 89 ldd r20, Y+22 ; 0x16
2240: 5f 89 ldd r21, Y+23 ; 0x17
2242: 68 8d ldd r22, Y+24 ; 0x18
2244: 79 8d ldd r23, Y+25 ; 0x19
2246: 84 1b sub r24, r20
2248: 95 0b sbc r25, r21
224a: a6 0b sbc r26, r22
224c: b7 0b sbc r27, r23
224e: a6 01 movw r20, r12
2250: 60 e0 ldi r22, 0x00 ; 0
2252: 70 e0 ldi r23, 0x00 ; 0
2254: 84 17 cp r24, r20
2256: 95 07 cpc r25, r21
2258: a6 07 cpc r26, r22
225a: b7 07 cpc r27, r23
225c: 08 f4 brcc .+2 ; 0x2260 <pf_read+0x6a>
225e: 6c 01 movw r12, r24
2260: 34 01 movw r6, r8
2262: 41 2c mov r4, r1
2264: 32 e0 ldi r19, 0x02 ; 2
2266: 53 2e mov r5, r19
2268: c1 14 cp r12, r1
226a: d1 04 cpc r13, r1
226c: 09 f4 brne .+2 ; 0x2270 <pf_read+0x7a>
226e: 79 c0 rjmp .+242 ; 0x2362 <pf_read+0x16c>
2270: 8e 89 ldd r24, Y+22 ; 0x16
2272: 9f 89 ldd r25, Y+23 ; 0x17
2274: a8 8d ldd r26, Y+24 ; 0x18
2276: b9 8d ldd r27, Y+25 ; 0x19
2278: ac 01 movw r20, r24
227a: bd 01 movw r22, r26
227c: 51 70 andi r21, 0x01 ; 1
227e: 66 27 eor r22, r22
2280: 77 27 eor r23, r23
2282: 45 2b or r20, r21
2284: 46 2b or r20, r22
2286: 47 2b or r20, r23
2288: d1 f5 brne .+116 ; 0x22fe <pf_read+0x108>
228a: fa 80 ldd r15, Y+2 ; 0x02
228c: fa 94 dec r15
228e: ac 01 movw r20, r24
2290: bd 01 movw r22, r26
2292: 29 e0 ldi r18, 0x09 ; 9
2294: 76 95 lsr r23
2296: 67 95 ror r22
2298: 57 95 ror r21
229a: 47 95 ror r20
229c: 2a 95 dec r18
229e: d1 f7 brne .-12 ; 0x2294 <pf_read+0x9e>
22a0: f4 22 and r15, r20
22a2: c1 f4 brne .+48 ; 0x22d4 <pf_read+0xde>
22a4: 89 2b or r24, r25
22a6: 8a 2b or r24, r26
22a8: 8b 2b or r24, r27
22aa: 29 f4 brne .+10 ; 0x22b6 <pf_read+0xc0>
22ac: 6e 8d ldd r22, Y+30 ; 0x1e
22ae: 7f 8d ldd r23, Y+31 ; 0x1f
22b0: 88 a1 ldd r24, Y+32 ; 0x20
22b2: 99 a1 ldd r25, Y+33 ; 0x21
22b4: 05 c0 rjmp .+10 ; 0x22c0 <pf_read+0xca>
22b6: 6a a1 ldd r22, Y+34 ; 0x22
22b8: 7b a1 ldd r23, Y+35 ; 0x23
22ba: 8c a1 ldd r24, Y+36 ; 0x24
22bc: 9d a1 ldd r25, Y+37 ; 0x25
22be: e4 d6 rcall .+3528 ; 0x3088 <get_fat>
22c0: 62 30 cpi r22, 0x02 ; 2
22c2: 71 05 cpc r23, r1
22c4: 81 05 cpc r24, r1
22c6: 91 05 cpc r25, r1
22c8: 08 f4 brcc .+2 ; 0x22cc <pf_read+0xd6>
22ca: 4d c0 rjmp .+154 ; 0x2366 <pf_read+0x170>
22cc: 6a a3 std Y+34, r22 ; 0x22
22ce: 7b a3 std Y+35, r23 ; 0x23
22d0: 8c a3 std Y+36, r24 ; 0x24
22d2: 9d a3 std Y+37, r25 ; 0x25
22d4: 6a a1 ldd r22, Y+34 ; 0x22
22d6: 7b a1 ldd r23, Y+35 ; 0x23
22d8: 8c a1 ldd r24, Y+36 ; 0x24
22da: 9d a1 ldd r25, Y+37 ; 0x25
22dc: 63 d6 rcall .+3270 ; 0x2fa4 <clust2sect>
22de: 61 15 cp r22, r1
22e0: 71 05 cpc r23, r1
22e2: 81 05 cpc r24, r1
22e4: 91 05 cpc r25, r1
22e6: 09 f4 brne .+2 ; 0x22ea <pf_read+0xf4>
22e8: 3e c0 rjmp .+124 ; 0x2366 <pf_read+0x170>
22ea: dc 01 movw r26, r24
22ec: cb 01 movw r24, r22
22ee: 8f 0d add r24, r15
22f0: 91 1d adc r25, r1
22f2: a1 1d adc r26, r1
22f4: b1 1d adc r27, r1
22f6: 8e a3 std Y+38, r24 ; 0x26
22f8: 9f a3 std Y+39, r25 ; 0x27
22fa: a8 a7 std Y+40, r26 ; 0x28
22fc: b9 a7 std Y+41, r27 ; 0x29
22fe: 2e 89 ldd r18, Y+22 ; 0x16
2300: 3f 89 ldd r19, Y+23 ; 0x17
2302: 31 70 andi r19, 0x01 ; 1
2304: c2 01 movw r24, r4
2306: 82 1b sub r24, r18
2308: 93 0b sbc r25, r19
230a: 76 01 movw r14, r12
230c: 8c 15 cp r24, r12
230e: 9d 05 cpc r25, r13
2310: 08 f4 brcc .+2 ; 0x2314 <pf_read+0x11e>
2312: 7c 01 movw r14, r24
2314: 4e a1 ldd r20, Y+38 ; 0x26
2316: 5f a1 ldd r21, Y+39 ; 0x27
2318: 68 a5 ldd r22, Y+40 ; 0x28
231a: 79 a5 ldd r23, Y+41 ; 0x29
231c: 81 14 cp r8, r1
231e: 91 04 cpc r9, r1
2320: 11 f0 breq .+4 ; 0x2326 <pf_read+0x130>
2322: c3 01 movw r24, r6
2324: 02 c0 rjmp .+4 ; 0x232a <pf_read+0x134>
2326: 80 e0 ldi r24, 0x00 ; 0
2328: 90 e0 ldi r25, 0x00 ; 0
232a: 87 01 movw r16, r14
232c: 16 dd rcall .-1492 ; 0x1d5a <disk_readp>
232e: 81 11 cpse r24, r1
2330: 1a c0 rjmp .+52 ; 0x2366 <pf_read+0x170>
2332: 8e 89 ldd r24, Y+22 ; 0x16
2334: 9f 89 ldd r25, Y+23 ; 0x17
2336: a8 8d ldd r26, Y+24 ; 0x18
2338: b9 8d ldd r27, Y+25 ; 0x19
233a: 8e 0d add r24, r14
233c: 9f 1d adc r25, r15
233e: a1 1d adc r26, r1
2340: b1 1d adc r27, r1
2342: 8e 8b std Y+22, r24 ; 0x16
2344: 9f 8b std Y+23, r25 ; 0x17
2346: a8 8f std Y+24, r26 ; 0x18
2348: b9 8f std Y+25, r27 ; 0x19
234a: 6e 0c add r6, r14
234c: 7f 1c adc r7, r15
234e: ce 18 sub r12, r14
2350: df 08 sbc r13, r15
2352: f5 01 movw r30, r10
2354: 80 81 ld r24, Z
2356: 91 81 ldd r25, Z+1 ; 0x01
2358: e8 0e add r14, r24
235a: f9 1e adc r15, r25
235c: f1 82 std Z+1, r15 ; 0x01
235e: e0 82 st Z, r14
2360: 83 cf rjmp .-250 ; 0x2268 <pf_read+0x72>
2362: 80 e0 ldi r24, 0x00 ; 0
2364: 06 c0 rjmp .+12 ; 0x2372 <pf_read+0x17c>
2366: 19 82 std Y+1, r1 ; 0x01
2368: 81 e0 ldi r24, 0x01 ; 1
236a: 03 c0 rjmp .+6 ; 0x2372 <pf_read+0x17c>
236c: 86 e0 ldi r24, 0x06 ; 6
236e: 01 c0 rjmp .+2 ; 0x2372 <pf_read+0x17c>
2370: 85 e0 ldi r24, 0x05 ; 5
2372: df 91 pop r29
2374: cf 91 pop r28
2376: 1f 91 pop r17
2378: 0f 91 pop r16
237a: ff 90 pop r15
237c: ef 90 pop r14
237e: df 90 pop r13
2380: cf 90 pop r12
2382: bf 90 pop r11
2384: af 90 pop r10
2386: 9f 90 pop r9
2388: 8f 90 pop r8
238a: 7f 90 pop r7
238c: 6f 90 pop r6
238e: 5f 90 pop r5
2390: 4f 90 pop r4
2392: 08 95 ret
00002394 <pf_opendir>:
2394: ef 92 push r14
2396: ff 92 push r15
2398: 0f 93 push r16
239a: 1f 93 push r17
239c: cf 93 push r28
239e: df 93 push r29
23a0: cd b7 in r28, 0x3d ; 61
23a2: de b7 in r29, 0x3e ; 62
23a4: ac 97 sbiw r28, 0x2c ; 44
23a6: 0f b6 in r0, 0x3f ; 63
23a8: f8 94 cli
23aa: de bf out 0x3e, r29 ; 62
23ac: 0f be out 0x3f, r0 ; 63
23ae: cd bf out 0x3d, r28 ; 61
23b0: 20 91 6e 00 lds r18, 0x006E
23b4: 30 91 6f 00 lds r19, 0x006F
23b8: 23 2b or r18, r19
23ba: b9 f1 breq .+110 ; 0x242a <pf_opendir+0x96>
23bc: ab 01 movw r20, r22
23be: 7c 01 movw r14, r24
23c0: ce 01 movw r24, r28
23c2: 81 96 adiw r24, 0x21 ; 33
23c4: f7 01 movw r30, r14
23c6: 93 83 std Z+3, r25 ; 0x03
23c8: 82 83 std Z+2, r24 ; 0x02
23ca: be 01 movw r22, r28
23cc: 6f 5f subi r22, 0xFF ; 255
23ce: 7f 4f sbci r23, 0xFF ; 255
23d0: c7 01 movw r24, r14
23d2: b7 d7 rcall .+3950 ; 0x3342 <follow_path>
23d4: 81 11 cpse r24, r1
23d6: 26 c0 rjmp .+76 ; 0x2424 <pf_opendir+0x90>
23d8: 89 81 ldd r24, Y+1 ; 0x01
23da: 88 23 and r24, r24
23dc: 09 f1 breq .+66 ; 0x2420 <pf_opendir+0x8c>
23de: 8c 85 ldd r24, Y+12 ; 0x0c
23e0: 84 fd sbrc r24, 4
23e2: 02 c0 rjmp .+4 ; 0x23e8 <pf_opendir+0x54>