1 .file "ff.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.clust2sect,"ax",@progbits 17 .global clust2sect 19 clust2sect: 20 .LFB60: 21 .LSM0: 22 .LVL0: 23 0000 EF92 push r14 24 0002 FF92 push r15 25 0004 0F93 push r16 26 0006 1F93 push r17 27 0008 CF93 push r28 28 000a DF93 push r29 29 /* prologue: function */ 30 /* frame size = 0 */ 31 000c EC01 movw r28,r24 32 000e 7A01 movw r14,r20 33 0010 8B01 movw r16,r22 34 .LSM1: 35 0012 8EEF ldi r24,lo8(-2) 36 0014 9FEF ldi r25,hi8(-2) 37 0016 AFEF ldi r26,hlo8(-2) 38 0018 BFEF ldi r27,hhi8(-2) 39 .LVL1: 40 001a E80E add r14,r24 41 001c F91E adc r15,r25 42 001e 0A1F adc r16,r26 43 0020 1B1F adc r17,r27 44 .LVL2: 45 .LSM2: 46 0022 8E85 ldd r24,Y+14 47 0024 9F85 ldd r25,Y+15 48 0026 A889 ldd r26,Y+16 49 0028 B989 ldd r27,Y+17 50 002a 0297 sbiw r24,2 51 002c A109 sbc r26,__zero_reg__ 52 002e B109 sbc r27,__zero_reg__ 53 0030 E816 cp r14,r24 54 0032 F906 cpc r15,r25 55 0034 0A07 cpc r16,r26 56 0036 1B07 cpc r17,r27 57 0038 00F0 brlo .L2 58 003a 20E0 ldi r18,lo8(0) 59 003c 30E0 ldi r19,hi8(0) 60 003e 40E0 ldi r20,hlo8(0) 61 0040 50E0 ldi r21,hhi8(0) 62 0042 00C0 rjmp .L3 63 .L2: 64 .LSM3: 65 0044 2A81 ldd r18,Y+2 66 0046 30E0 ldi r19,lo8(0) 67 0048 40E0 ldi r20,lo8(0) 68 004a 50E0 ldi r21,hi8(0) 69 004c C801 movw r24,r16 70 004e B701 movw r22,r14 71 0050 0E94 0000 call __mulsi3 72 0054 9B01 movw r18,r22 73 0056 AC01 movw r20,r24 74 0058 8A8D ldd r24,Y+26 75 005a 9B8D ldd r25,Y+27 76 005c AC8D ldd r26,Y+28 77 005e BD8D ldd r27,Y+29 78 0060 280F add r18,r24 79 0062 391F adc r19,r25 80 0064 4A1F adc r20,r26 81 0066 5B1F adc r21,r27 82 .L3: 83 .LSM4: 84 0068 B901 movw r22,r18 85 006a CA01 movw r24,r20 86 /* epilogue start */ 87 006c DF91 pop r29 88 006e CF91 pop r28 89 .LVL3: 90 0070 1F91 pop r17 91 0072 0F91 pop r16 92 0074 FF90 pop r15 93 0076 EF90 pop r14 94 .LVL4: 95 0078 0895 ret 96 .LFE60: 98 .section .text.f_mount,"ax",@progbits 99 .global f_mount 101 f_mount: 102 .LFB69: 103 .LSM5: 104 .LVL5: 105 /* prologue: function */ 106 /* frame size = 0 */ 107 0000 DB01 movw r26,r22 108 .LSM6: 109 0002 8823 tst r24 110 0004 01F0 breq .L6 111 .LVL6: 112 0006 8BE0 ldi r24,lo8(11) 113 .LVL7: 114 0008 0895 ret 115 .LVL8: 116 .L6: 117 .LSM7: 118 000a E091 0000 lds r30,FatFs 119 000e F091 0000 lds r31,(FatFs)+1 120 .LVL9: 121 .LSM8: 122 0012 3097 sbiw r30,0 123 0014 01F0 breq .L8 124 .LSM9: 125 0016 1082 st Z,__zero_reg__ 126 .L8: 127 .LSM10: 128 0018 1097 sbiw r26,0 129 001a 01F0 breq .L9 130 .LSM11: 131 001c 1C92 st X,__zero_reg__ 132 .L9: 133 .LSM12: 134 001e B093 0000 sts (FatFs)+1,r27 135 0022 A093 0000 sts FatFs,r26 136 0026 80E0 ldi r24,lo8(0) 137 .LVL10: 138 .LSM13: 139 0028 0895 ret 140 .LFE69: 142 .section .text.validate,"ax",@progbits 144 validate: 145 .LFB68: 146 .LSM14: 147 .LVL11: 148 /* prologue: function */ 149 /* frame size = 0 */ 150 0000 FC01 movw r30,r24 151 .LSM15: 152 0002 0097 sbiw r24,0 153 0004 01F0 breq .L12 154 0006 8081 ld r24,Z 155 .LVL12: 156 0008 8823 tst r24 157 000a 01F0 breq .L12 158 000c 8681 ldd r24,Z+6 159 000e 9781 ldd r25,Z+7 160 0010 8617 cp r24,r22 161 0012 9707 cpc r25,r23 162 0014 01F4 brne .L12 163 .LSM16: 164 0016 8181 ldd r24,Z+1 165 0018 0E94 0000 call disk_status 166 .LVL13: 167 001c 80FD sbrc r24,0 168 001e 00C0 rjmp .L13 169 0020 80E0 ldi r24,lo8(0) 170 0022 0895 ret 171 .L13: 172 0024 83E0 ldi r24,lo8(3) 173 0026 0895 ret 174 .LVL14: 175 .L12: 176 0028 89E0 ldi r24,lo8(9) 177 .LSM17: 178 002a 0895 ret 179 .LFE68: 181 .section .text.f_close,"ax",@progbits 182 .global f_close 184 f_close: 185 .LFB72: 186 .LSM18: 187 .LVL15: 188 0000 CF93 push r28 189 0002 DF93 push r29 190 /* prologue: function */ 191 /* frame size = 0 */ 192 0004 EC01 movw r28,r24 193 .LSM19: 194 0006 6A81 ldd r22,Y+2 195 0008 7B81 ldd r23,Y+3 196 000a 8881 ld r24,Y 197 000c 9981 ldd r25,Y+1 198 .LVL16: 199 000e 0E94 0000 call validate 200 .LSM20: 201 0012 8823 tst r24 202 .LVL17: 203 0014 01F4 brne .L17 204 0016 1982 std Y+1,__zero_reg__ 205 0018 1882 st Y,__zero_reg__ 206 .L17: 207 .LVL18: 208 /* epilogue start */ 209 .LSM21: 210 001a DF91 pop r29 211 001c CF91 pop r28 212 .LVL19: 213 001e 0895 ret 214 .LFE72: 216 .section .text.move_window,"ax",@progbits 218 move_window: 219 .LFB58: 220 .LSM22: 221 .LVL20: 222 0000 CF92 push r12 223 0002 DF92 push r13 224 0004 EF92 push r14 225 0006 FF92 push r15 226 0008 0F93 push r16 227 000a CF93 push r28 228 000c DF93 push r29 229 /* prologue: function */ 230 /* frame size = 0 */ 231 000e EC01 movw r28,r24 232 0010 6A01 movw r12,r20 233 0012 7B01 movw r14,r22 234 .LSM23: 235 0014 8E8D ldd r24,Y+30 236 0016 9F8D ldd r25,Y+31 237 0018 A8A1 ldd r26,Y+32 238 001a B9A1 ldd r27,Y+33 239 .LVL21: 240 001c 8417 cp r24,r20 241 001e 9507 cpc r25,r21 242 0020 A607 cpc r26,r22 243 0022 B707 cpc r27,r23 244 0024 01F0 breq .L20 245 .LSM24: 246 0026 4115 cp r20,__zero_reg__ 247 0028 5105 cpc r21,__zero_reg__ 248 002a 6105 cpc r22,__zero_reg__ 249 002c 7105 cpc r23,__zero_reg__ 250 002e 01F0 breq .L20 251 .LSM25: 252 0030 BE01 movw r22,r28 253 0032 6E5D subi r22,lo8(-(34)) 254 0034 7F4F sbci r23,hi8(-(34)) 255 0036 8981 ldd r24,Y+1 256 0038 A701 movw r20,r14 257 003a 9601 movw r18,r12 258 003c 01E0 ldi r16,lo8(1) 259 003e 0E94 0000 call disk_read 260 .LVL22: 261 0042 8823 tst r24 262 0044 01F0 breq .L21 263 0046 81E0 ldi r24,lo8(1) 264 0048 00C0 rjmp .L22 265 .L21: 266 .LSM26: 267 004a CE8E std Y+30,r12 268 004c DF8E std Y+31,r13 269 004e E8A2 std Y+32,r14 270 0050 F9A2 std Y+33,r15 271 .LVL23: 272 .L20: 273 0052 80E0 ldi r24,lo8(0) 274 .L22: 275 /* epilogue start */ 276 .LSM27: 277 0054 DF91 pop r29 278 0056 CF91 pop r28 279 .LVL24: 280 0058 0F91 pop r16 281 005a FF90 pop r15 282 005c EF90 pop r14 283 005e DF90 pop r13 284 0060 CF90 pop r12 285 .LVL25: 286 0062 0895 ret 287 .LFE58: 289 .section .text.get_fat,"ax",@progbits 290 .global get_fat 292 get_fat: 293 .LFB59: 294 .LSM28: 295 .LVL26: 296 0000 7F92 push r7 297 0002 8F92 push r8 298 0004 9F92 push r9 299 0006 AF92 push r10 300 0008 BF92 push r11 301 000a CF92 push r12 302 000c DF92 push r13 303 000e EF92 push r14 304 0010 FF92 push r15 305 0012 0F93 push r16 306 0014 1F93 push r17 307 0016 CF93 push r28 308 0018 DF93 push r29 309 /* prologue: function */ 310 /* frame size = 0 */ 311 001a 4C01 movw r8,r24 312 001c 7A01 movw r14,r20 313 001e 8B01 movw r16,r22 314 .LSM29: 315 0020 4230 cpi r20,lo8(2) 316 0022 5105 cpc r21,__zero_reg__ 317 0024 6105 cpc r22,__zero_reg__ 318 0026 7105 cpc r23,__zero_reg__ 319 .LVL27: 320 0028 00F4 brsh .+2 321 002a 00C0 rjmp .L25 322 002c F401 movw r30,r8 323 002e 8685 ldd r24,Z+14 324 0030 9785 ldd r25,Z+15 325 0032 A089 ldd r26,Z+16 326 0034 B189 ldd r27,Z+17 327 0036 4817 cp r20,r24 328 0038 5907 cpc r21,r25 329 003a 6A07 cpc r22,r26 330 003c 7B07 cpc r23,r27 331 003e 00F0 brlo .+2 332 0040 00C0 rjmp .L25 333 .LSM30: 334 0042 A288 ldd r10,Z+18 335 0044 B388 ldd r11,Z+19 336 0046 C488 ldd r12,Z+20 337 0048 D588 ldd r13,Z+21 338 .LVL28: 339 .LSM31: 340 004a 8081 ld r24,Z 341 004c 8230 cpi r24,lo8(2) 342 004e 01F4 brne .+2 343 0050 00C0 rjmp .L28 344 0052 8330 cpi r24,lo8(3) 345 0054 01F4 brne .+2 346 0056 00C0 rjmp .L29 347 0058 8130 cpi r24,lo8(1) 348 005a 01F0 breq .+2 349 005c 00C0 rjmp .L26 350 .LSM32: 351 005e EA01 movw r28,r20 352 .LVL29: 353 0060 D695 lsr r29 354 0062 C795 ror r28 355 .LVL30: 356 0064 C40F add r28,r20 357 0066 D51F adc r29,r21 358 .LSM33: 359 0068 AE01 movw r20,r28 360 .LVL31: 361 006a 452F mov r20,r21 362 006c 5527 clr r21 363 006e 4695 lsr r20 364 0070 60E0 ldi r22,lo8(0) 365 0072 70E0 ldi r23,hi8(0) 366 0074 4A0D add r20,r10 367 0076 5B1D adc r21,r11 368 0078 6C1D adc r22,r12 369 007a 7D1D adc r23,r13 370 007c C401 movw r24,r8 371 007e 0E94 0000 call move_window 372 0082 8823 tst r24 373 0084 01F0 breq .+2 374 0086 00C0 rjmp .L26 375 .LSM34: 376 0088 FE01 movw r30,r28 377 008a F170 andi r31,hi8(511) 378 008c E80D add r30,r8 379 008e F91D adc r31,r9 380 0090 72A0 ldd r7,Z+34 381 0092 2196 adiw r28,1 382 .LVL32: 383 .LSM35: 384 0094 AE01 movw r20,r28 385 0096 452F mov r20,r21 386 0098 5527 clr r21 387 009a 4695 lsr r20 388 009c 60E0 ldi r22,lo8(0) 389 009e 70E0 ldi r23,hi8(0) 390 00a0 4A0D add r20,r10 391 00a2 5B1D adc r21,r11 392 00a4 6C1D adc r22,r12 393 00a6 7D1D adc r23,r13 394 00a8 C401 movw r24,r8 395 00aa 0E94 0000 call move_window 396 00ae 8823 tst r24 397 00b0 01F0 breq .+2 398 00b2 00C0 rjmp .L26 399 .LSM36: 400 00b4 672D mov r22,r7 401 .LVL33: 402 00b6 70E0 ldi r23,lo8(0) 403 .LVL34: 404 .LSM37: 405 00b8 D170 andi r29,hi8(511) 406 00ba C80D add r28,r8 407 00bc D91D adc r29,r9 408 00be 9AA1 ldd r25,Y+34 409 00c0 80E0 ldi r24,lo8(0) 410 00c2 682B or r22,r24 411 00c4 792B or r23,r25 412 .LVL35: 413 .LSM38: 414 00c6 C701 movw r24,r14 415 .LVL36: 416 00c8 8170 andi r24,lo8(1) 417 00ca 9070 andi r25,hi8(1) 418 00cc 892B or r24,r25 419 00ce 01F0 breq .L30 420 00d0 44E0 ldi r20,4 421 00d2 7695 1: lsr r23 422 00d4 6795 ror r22 423 00d6 4A95 dec r20 424 00d8 01F4 brne 1b 425 00da 9B01 movw r18,r22 426 00dc 00C0 rjmp .L33 427 .L30: 428 00de 9B01 movw r18,r22 429 00e0 40E0 ldi r20,lo8(0) 430 00e2 50E0 ldi r21,hi8(0) 431 00e4 3F70 andi r19,hi8(4095) 432 00e6 4070 andi r20,hlo8(4095) 433 00e8 5070 andi r21,hhi8(4095) 434 00ea 00C0 rjmp .L31 435 .LVL37: 436 .L28: 437 .LSM39: 438 00ec 452F mov r20,r21 439 00ee 562F mov r21,r22 440 00f0 672F mov r22,r23 441 00f2 7727 clr r23 442 .LVL38: 443 00f4 4A0D add r20,r10 444 00f6 5B1D adc r21,r11 445 00f8 6C1D adc r22,r12 446 00fa 7D1D adc r23,r13 447 00fc C401 movw r24,r8 448 00fe 0E94 0000 call move_window 449 0102 8823 tst r24 450 0104 01F4 brne .L26 451 .LSM40: 452 0106 F701 movw r30,r14 453 .LVL39: 454 0108 EE0F lsl r30 455 010a FF1F rol r31 456 010c F170 andi r31,hi8(511) 457 010e E80D add r30,r8 458 0110 F91D adc r31,r9 459 0112 82A1 ldd r24,Z+34 460 0114 93A1 ldd r25,Z+35 461 0116 9C01 movw r18,r24 462 .LVL40: 463 .L33: 464 0118 40E0 ldi r20,lo8(0) 465 011a 50E0 ldi r21,hi8(0) 466 011c 00C0 rjmp .L31 467 .LVL41: 468 .L29: 469 .LSM41: 470 011e 97E0 ldi r25,7 471 0120 7695 1: lsr r23 472 0122 6795 ror r22 473 0124 5795 ror r21 474 0126 4795 ror r20 475 0128 9A95 dec r25 476 012a 01F4 brne 1b 477 .LVL42: 478 012c 4A0D add r20,r10 479 012e 5B1D adc r21,r11 480 0130 6C1D adc r22,r12 481 0132 7D1D adc r23,r13 482 0134 C401 movw r24,r8 483 0136 0E94 0000 call move_window 484 013a 8823 tst r24 485 013c 01F4 brne .L26 486 .LSM42: 487 013e F701 movw r30,r14 488 .LVL43: 489 0140 EE0F lsl r30 490 0142 FF1F rol r31 491 0144 EE0F lsl r30 492 0146 FF1F rol r31 493 0148 F170 andi r31,hi8(511) 494 014a E80D add r30,r8 495 014c F91D adc r31,r9 496 014e 22A1 ldd r18,Z+34 497 0150 33A1 ldd r19,Z+35 498 0152 44A1 ldd r20,Z+36 499 0154 55A1 ldd r21,Z+37 500 0156 5F70 andi r21,hhi8(268435455) 501 0158 00C0 rjmp .L31 502 .LVL44: 503 .L25: 504 015a 21E0 ldi r18,lo8(1) 505 015c 30E0 ldi r19,hi8(1) 506 015e 40E0 ldi r20,hlo8(1) 507 0160 50E0 ldi r21,hhi8(1) 508 0162 00C0 rjmp .L31 509 .LVL45: 510 .L26: 511 0164 2FEF ldi r18,lo8(-1) 512 0166 3FEF ldi r19,hi8(-1) 513 0168 4FEF ldi r20,hlo8(-1) 514 016a 5FEF ldi r21,hhi8(-1) 515 .LVL46: 516 .L31: 517 .LSM43: 518 016c B901 movw r22,r18 519 .LVL47: 520 016e CA01 movw r24,r20 521 /* epilogue start */ 522 0170 DF91 pop r29 523 0172 CF91 pop r28 524 .LVL48: 525 0174 1F91 pop r17 526 0176 0F91 pop r16 527 0178 FF90 pop r15 528 017a EF90 pop r14 529 .LVL49: 530 017c DF90 pop r13 531 017e CF90 pop r12 532 0180 BF90 pop r11 533 0182 AF90 pop r10 534 .LVL50: 535 0184 9F90 pop r9 536 0186 8F90 pop r8 537 .LVL51: 538 0188 7F90 pop r7 539 018a 0895 ret 540 .LFE59: 542 .section .text.f_lseek,"ax",@progbits 543 .global f_lseek 545 f_lseek: 546 .LFB73: 547 .LSM44: 548 .LVL52: 549 0000 2F92 push r2 550 0002 3F92 push r3 551 0004 4F92 push r4 552 0006 5F92 push r5 553 0008 6F92 push r6 554 000a 7F92 push r7 555 000c 8F92 push r8 556 000e 9F92 push r9 557 0010 AF92 push r10 558 0012 BF92 push r11 559 0014 CF92 push r12 560 0016 DF92 push r13 561 0018 EF92 push r14 562 001a FF92 push r15 563 001c 0F93 push r16 564 001e 1F93 push r17 565 0020 DF93 push r29 566 0022 CF93 push r28 567 0024 00D0 rcall . 568 0026 0F92 push __tmp_reg__ 569 0028 CDB7 in r28,__SP_L__ 570 002a DEB7 in r29,__SP_H__ 571 /* prologue: function */ 572 /* frame size = 3 */ 573 002c 9B83 std Y+3,r25 574 002e 8A83 std Y+2,r24 575 0030 E42E mov r14,r20 576 0032 D52E mov r13,r21 577 .LVL53: 578 0034 C62E mov r12,r22 579 .LVL54: 580 0036 B72E mov r11,r23 581 .LVL55: 582 .LSM45: 583 0038 DC01 movw r26,r24 584 003a 1296 adiw r26,2 585 003c 6D91 ld r22,X+ 586 003e 7C91 ld r23,X 587 0040 1397 sbiw r26,2+1 588 .LVL56: 589 0042 8D91 ld r24,X+ 590 0044 9C91 ld r25,X 591 .LVL57: 592 0046 0E94 0000 call validate 593 .LVL58: 594 004a 8983 std Y+1,r24 595 .LVL59: 596 .LSM46: 597 004c 8823 tst r24 598 004e 01F0 breq .+2 599 0050 00C0 rjmp .L35 600 .LSM47: 601 0052 EA81 ldd r30,Y+2 602 0054 FB81 ldd r31,Y+3 603 0056 8481 ldd r24,Z+4 604 0058 87FD sbrc r24,7 605 005a 00C0 rjmp .L51 606 .L36: 607 005c AA81 ldd r26,Y+2 608 005e BB81 ldd r27,Y+3 609 0060 1A96 adiw r26,10 610 0062 6D90 ld r6,X+ 611 0064 7D90 ld r7,X+ 612 0066 8D90 ld r8,X+ 613 0068 9C90 ld r9,X 614 006a 1D97 sbiw r26,10+3 615 006c 2E2D mov r18,r14 616 006e 3D2D mov r19,r13 617 0070 4C2D mov r20,r12 618 0072 5B2D mov r21,r11 619 0074 C901 movw r24,r18 620 0076 DA01 movw r26,r20 621 0078 5C01 movw r10,r24 622 007a 6D01 movw r12,r26 623 007c 6A14 cp r6,r10 624 007e 7B04 cpc r7,r11 625 0080 8C04 cpc r8,r12 626 0082 9D04 cpc r9,r13 627 0084 00F4 brsh .L37 628 .LVL60: 629 0086 6401 movw r12,r8 630 0088 5301 movw r10,r6 631 .LVL61: 632 .L37: 633 .LSM48: 634 008a EA81 ldd r30,Y+2 635 008c FB81 ldd r31,Y+3 636 008e 2681 ldd r18,Z+6 637 0090 3781 ldd r19,Z+7 638 0092 4085 ldd r20,Z+8 639 0094 5185 ldd r21,Z+9 640 .LVL62: 641 .LSM49: 642 0096 1682 std Z+6,__zero_reg__ 643 0098 1782 std Z+7,__zero_reg__ 644 009a 1086 std Z+8,__zero_reg__ 645 009c 1186 std Z+9,__zero_reg__ 646 009e 8FEF ldi r24,lo8(-1) 647 00a0 8583 std Z+5,r24 648 .LSM50: 649 00a2 A114 cp r10,__zero_reg__ 650 00a4 B104 cpc r11,__zero_reg__ 651 00a6 C104 cpc r12,__zero_reg__ 652 00a8 D104 cpc r13,__zero_reg__ 653 00aa 01F4 brne .+2 654 00ac 00C0 rjmp .L38 655 .LSM51: 656 00ae 0190 ld __tmp_reg__,Z+ 657 00b0 F081 ld r31,Z 658 00b2 E02D mov r30,__tmp_reg__ 659 00b4 8281 ldd r24,Z+2 660 00b6 682E mov r6,r24 661 .LVL63: 662 00b8 7724 clr r7 663 .LVL64: 664 00ba 8824 clr r8 665 00bc 9924 clr r9 666 .LVL65: 667 00be 09E0 ldi r16,9 668 00c0 660C 1: lsl r6 669 00c2 771C rol r7 670 00c4 881C rol r8 671 00c6 991C rol r9 672 00c8 0A95 dec r16 673 00ca 01F4 brne 1b 674 .LVL66: 675 .LSM52: 676 00cc 2115 cp r18,__zero_reg__ 677 00ce 3105 cpc r19,__zero_reg__ 678 00d0 4105 cpc r20,__zero_reg__ 679 00d2 5105 cpc r21,__zero_reg__ 680 00d4 01F0 breq .L39 681 00d6 1901 movw r2,r18 682 00d8 2A01 movw r4,r20 683 00da 0894 sec 684 00dc 2108 sbc r2,__zero_reg__ 685 00de 3108 sbc r3,__zero_reg__ 686 00e0 4108 sbc r4,__zero_reg__ 687 00e2 5108 sbc r5,__zero_reg__ 688 00e4 C601 movw r24,r12 689 00e6 B501 movw r22,r10 690 00e8 6150 subi r22,lo8(-(-1)) 691 00ea 7040 sbci r23,hi8(-(-1)) 692 00ec 8040 sbci r24,hlo8(-(-1)) 693 00ee 9040 sbci r25,hhi8(-(-1)) 694 00f0 A401 movw r20,r8 695 00f2 9301 movw r18,r6 696 .LVL67: 697 00f4 0E94 0000 call __udivmodsi4 698 00f8 7901 movw r14,r18 699 00fa 8A01 movw r16,r20 700 00fc C201 movw r24,r4 701 00fe B101 movw r22,r2 702 0100 A401 movw r20,r8 703 0102 9301 movw r18,r6 704 0104 0E94 0000 call __udivmodsi4 705 0108 E216 cp r14,r18 706 010a F306 cpc r15,r19 707 010c 0407 cpc r16,r20 708 010e 1507 cpc r17,r21 709 0110 00F0 brlo .L39 710 .LSM53: 711 0112 8827 clr r24 712 0114 9927 clr r25 713 0116 DC01 movw r26,r24 714 0118 8619 sub r24,r6 715 011a 9709 sbc r25,r7 716 011c A809 sbc r26,r8 717 011e B909 sbc r27,r9 718 0120 8221 and r24,r2 719 0122 9321 and r25,r3 720 0124 A421 and r26,r4 721 0126 B521 and r27,r5 722 0128 EA81 ldd r30,Y+2 723 012a FB81 ldd r31,Y+3 724 012c 8683 std Z+6,r24 725 012e 9783 std Z+7,r25 726 0130 A087 std Z+8,r26 727 0132 B187 std Z+9,r27 728 .LSM54: 729 0134 A81A sub r10,r24 730 0136 B90A sbc r11,r25 731 0138 CA0A sbc r12,r26 732 013a DB0A sbc r13,r27 733 .LSM55: 734 013c 4289 ldd r20,Z+18 735 013e 5389 ldd r21,Z+19 736 0140 6489 ldd r22,Z+20 737 0142 7589 ldd r23,Z+21 738 .LVL68: 739 0144 00C0 rjmp .L40 740 .LVL69: 741 .L39: 742 .LSM56: 743 0146 AA81 ldd r26,Y+2 744 0148 BB81 ldd r27,Y+3 745 014a 1E96 adiw r26,14 746 014c 4D91 ld r20,X+ 747 014e 5D91 ld r21,X+ 748 0150 6D91 ld r22,X+ 749 0152 7C91 ld r23,X 750 0154 5197 sbiw r26,14+3 751 .LVL70: 752 .LSM57: 753 0156 FD01 movw r30,r26 754 0158 428B std Z+18,r20 755 015a 538B std Z+19,r21 756 015c 648B std Z+20,r22 757 015e 758B std Z+21,r23 758 .L40: 759 .LSM58: 760 0160 4115 cp r20,__zero_reg__ 761 0162 5105 cpc r21,__zero_reg__ 762 0164 6105 cpc r22,__zero_reg__ 763 0166 7105 cpc r23,__zero_reg__ 764 0168 01F0 breq .+2 765 016a 00C0 rjmp .L49 766 016c 00C0 rjmp .L38 767 .L45: 768 .LSM59: 769 016e AA81 ldd r26,Y+2 770 0170 BB81 ldd r27,Y+3 771 0172 8D91 ld r24,X+ 772 0174 9C91 ld r25,X 773 0176 0E94 0000 call get_fat 774 .LVL71: 775 017a AB01 movw r20,r22 776 017c BC01 movw r22,r24 777 .LVL72: 778 .LSM60: 779 017e 4F3F cpi r20,lo8(-1) 780 0180 BFEF ldi r27,hi8(-1) 781 0182 5B07 cpc r21,r27 782 0184 BFEF ldi r27,hlo8(-1) 783 0186 6B07 cpc r22,r27 784 0188 BFEF ldi r27,hhi8(-1) 785 018a 7B07 cpc r23,r27 786 018c 01F4 brne .L42 787 018e EA81 ldd r30,Y+2 788 0190 FB81 ldd r31,Y+3 789 0192 8481 ldd r24,Z+4 790 0194 8068 ori r24,lo8(-128) 791 0196 8483 std Z+4,r24 792 0198 F1E0 ldi r31,lo8(1) 793 .L50: 794 019a F983 std Y+1,r31 795 .LVL73: 796 019c 00C0 rjmp .L35 797 .L42: 798 .LSM61: 799 019e 4230 cpi r20,lo8(2) 800 01a0 5105 cpc r21,__zero_reg__ 801 01a2 6105 cpc r22,__zero_reg__ 802 01a4 7105 cpc r23,__zero_reg__ 803 01a6 00F0 brlo .L43 804 01a8 AA81 ldd r26,Y+2 805 01aa BB81 ldd r27,Y+3 806 01ac ED91 ld r30,X+ 807 01ae FC91 ld r31,X 808 01b0 8685 ldd r24,Z+14 809 01b2 9785 ldd r25,Z+15 810 01b4 A089 ldd r26,Z+16 811 01b6 B189 ldd r27,Z+17 812 01b8 4817 cp r20,r24 813 01ba 5907 cpc r21,r25 814 01bc 6A07 cpc r22,r26 815 01be 7B07 cpc r23,r27 816 01c0 00F0 brlo .L44 817 .L43: 818 01c2 EA81 ldd r30,Y+2 819 01c4 FB81 ldd r31,Y+3 820 01c6 8481 ldd r24,Z+4 821 01c8 8068 ori r24,lo8(-128) 822 01ca 8483 std Z+4,r24 823 .LVL74: 824 .L51: 825 01cc F2E0 ldi r31,lo8(2) 826 01ce 00C0 rjmp .L50 827 .LVL75: 828 .L44: 829 .LSM62: 830 01d0 AA81 ldd r26,Y+2 831 01d2 BB81 ldd r27,Y+3 832 01d4 5296 adiw r26,18 833 01d6 4D93 st X+,r20 834 01d8 5D93 st X+,r21 835 01da 6D93 st X+,r22 836 01dc 7C93 st X,r23 837 01de 5597 sbiw r26,18+3 838 .LSM63: 839 01e0 FD01 movw r30,r26 840 01e2 8681 ldd r24,Z+6 841 01e4 9781 ldd r25,Z+7 842 01e6 A085 ldd r26,Z+8 843 01e8 B185 ldd r27,Z+9 844 01ea 860D add r24,r6 845 01ec 971D adc r25,r7 846 01ee A81D adc r26,r8 847 01f0 B91D adc r27,r9 848 01f2 8683 std Z+6,r24 849 01f4 9783 std Z+7,r25 850 01f6 A087 std Z+8,r26 851 01f8 B187 std Z+9,r27 852 .LSM64: 853 01fa A618 sub r10,r6 854 01fc B708 sbc r11,r7 855 01fe C808 sbc r12,r8 856 0200 D908 sbc r13,r9 857 .LVL76: 858 .L49: 859 .LSM65: 860 0202 6A14 cp r6,r10 861 0204 7B04 cpc r7,r11 862 0206 8C04 cpc r8,r12 863 0208 9D04 cpc r9,r13 864 020a 00F4 brsh .+2 865 020c 00C0 rjmp .L45 866 .LVL77: 867 .LSM66: 868 020e EA81 ldd r30,Y+2 869 0210 FB81 ldd r31,Y+3 870 0212 8681 ldd r24,Z+6 871 0214 9781 ldd r25,Z+7 872 0216 A085 ldd r26,Z+8 873 0218 B185 ldd r27,Z+9 874 021a 8A0D add r24,r10 875 021c 9B1D adc r25,r11 876 021e AC1D adc r26,r12 877 0220 BD1D adc r27,r13 878 0222 8683 std Z+6,r24 879 0224 9783 std Z+7,r25 880 0226 A087 std Z+8,r26 881 0228 B187 std Z+9,r27 882 .LSM67: 883 022a D601 movw r26,r12 884 022c C501 movw r24,r10 885 022e 19E0 ldi r17,9 886 0230 B695 1: lsr r27 887 0232 A795 ror r26 888 0234 9795 ror r25 889 0236 8795 ror r24 890 0238 1A95 dec r17 891 023a 01F4 brne 1b 892 023c E82E mov r14,r24 893 023e 8583 std Z+5,r24 894 .LSM68: 895 0240 8FEF ldi r24,lo8(511) 896 0242 91E0 ldi r25,hi8(511) 897 0244 A0E0 ldi r26,hlo8(511) 898 0246 B0E0 ldi r27,hhi8(511) 899 0248 A822 and r10,r24 900 024a B922 and r11,r25 901 024c CA22 and r12,r26 902 024e DB22 and r13,r27 903 0250 A114 cp r10,__zero_reg__ 904 0252 B104 cpc r11,__zero_reg__ 905 0254 C104 cpc r12,__zero_reg__ 906 0256 D104 cpc r13,__zero_reg__ 907 0258 01F0 breq .L38 908 .LSM69: 909 025a 8081 ld r24,Z 910 025c 9181 ldd r25,Z+1 911 025e 0E94 0000 call clust2sect 912 .LVL78: 913 .LSM70: 914 0262 6115 cp r22,__zero_reg__ 915 0264 7105 cpc r23,__zero_reg__ 916 0266 8105 cpc r24,__zero_reg__ 917 0268 9105 cpc r25,__zero_reg__ 918 .LVL79: 919 026a 01F4 brne .L46 920 026c AA81 ldd r26,Y+2 921 026e BB81 ldd r27,Y+3 922 0270 1496 adiw r26,4 923 0272 8C91 ld r24,X 924 0274 1497 sbiw r26,4 925 0276 8068 ori r24,lo8(-128) 926 0278 1496 adiw r26,4 927 027a 8C93 st X,r24 928 027c B2E0 ldi r27,lo8(2) 929 027e B983 std Y+1,r27 930 .LVL80: 931 0280 00C0 rjmp .L35 932 .L46: 933 .LSM71: 934 0282 9B01 movw r18,r22 935 0284 AC01 movw r20,r24 936 0286 2E0D add r18,r14 937 0288 311D adc r19,__zero_reg__ 938 028a 411D adc r20,__zero_reg__ 939 028c 511D adc r21,__zero_reg__ 940 .LVL81: 941 .LSM72: 942 028e E394 inc r14 943 0290 EA81 ldd r30,Y+2 944 0292 FB81 ldd r31,Y+3 945 0294 E582 std Z+5,r14 946 0296 00C0 rjmp .L47 947 .LVL82: 948 .L38: 949 0298 20E0 ldi r18,lo8(0) 950 029a 30E0 ldi r19,hi8(0) 951 029c 40E0 ldi r20,hlo8(0) 952 029e 50E0 ldi r21,hhi8(0) 953 .LVL83: 954 .L47: 955 .LSM73: 956 02a0 EA81 ldd r30,Y+2 957 02a2 FB81 ldd r31,Y+3 958 02a4 8681 ldd r24,Z+6 959 02a6 9781 ldd r25,Z+7 960 02a8 A085 ldd r26,Z+8 961 02aa B185 ldd r27,Z+9 962 02ac 9170 andi r25,hi8(511) 963 02ae A070 andi r26,hlo8(511) 964 02b0 B070 andi r27,hhi8(511) 965 02b2 0097 sbiw r24,0 966 02b4 A105 cpc r26,__zero_reg__ 967 02b6 B105 cpc r27,__zero_reg__ 968 02b8 01F0 breq .L35 969 02ba 8689 ldd r24,Z+22 970 02bc 9789 ldd r25,Z+23 971 02be A08D ldd r26,Z+24 972 02c0 B18D ldd r27,Z+25 973 02c2 2817 cp r18,r24 974 02c4 3907 cpc r19,r25 975 02c6 4A07 cpc r20,r26 976 02c8 5B07 cpc r21,r27 977 02ca 01F0 breq .L35 978 .LSM74: 979 02cc 268B std Z+22,r18 980 02ce 378B std Z+23,r19 981 02d0 408F std Z+24,r20 982 02d2 518F std Z+25,r21 983 .LVL84: 984 .L35: 985 .LSM75: 986 02d4 8981 ldd r24,Y+1 987 /* epilogue start */ 988 02d6 0F90 pop __tmp_reg__ 989 02d8 0F90 pop __tmp_reg__ 990 02da 0F90 pop __tmp_reg__ 991 02dc CF91 pop r28 992 02de DF91 pop r29 993 02e0 1F91 pop r17 994 02e2 0F91 pop r16 995 02e4 FF90 pop r15 996 02e6 EF90 pop r14 997 02e8 DF90 pop r13 998 .LVL85: 999 02ea CF90 pop r12 1000 .LVL86: 1001 02ec BF90 pop r11 1002 .LVL87: 1003 02ee AF90 pop r10 1004 .LVL88: 1005 02f0 9F90 pop r9 1006 02f2 8F90 pop r8 1007 .LVL89: 1008 02f4 7F90 pop r7 1009 .LVL90: 1010 02f6 6F90 pop r6 1011 .LVL91: 1012 02f8 5F90 pop r5 1013 02fa 4F90 pop r4 1014 02fc 3F90 pop r3 1015 02fe 2F90 pop r2 1016 0300 0895 ret 1017 .LFE73: 1019 .section .text.dir_seek,"ax",@progbits 1021 dir_seek: 1022 .LFB61: 1023 .LSM76: 1024 .LVL92: 1025 0000 EF92 push r14 1026 0002 FF92 push r15 1027 0004 0F93 push r16 1028 0006 1F93 push r17 1029 0008 CF93 push r28 1030 000a DF93 push r29 1031 /* prologue: function */ 1032 /* frame size = 0 */ 1033 000c 8C01 movw r16,r24 1034 000e EB01 movw r28,r22 1035 .LSM77: 1036 0010 DC01 movw r26,r24 1037 0012 1596 adiw r26,4+1 1038 0014 7C93 st X,r23 1039 0016 6E93 st -X,r22 1040 0018 1497 sbiw r26,4 1041 .LSM78: 1042 001a 1696 adiw r26,6 1043 001c 4D91 ld r20,X+ 1044 001e 5D91 ld r21,X+ 1045 0020 6D91 ld r22,X+ 1046 0022 7C91 ld r23,X 1047 0024 1997 sbiw r26,6+3 1048 .LVL93: 1049 .LSM79: 1050 0026 4130 cpi r20,lo8(1) 1051 0028 5105 cpc r21,__zero_reg__ 1052 002a 6105 cpc r22,__zero_reg__ 1053 002c 7105 cpc r23,__zero_reg__ 1054 002e 01F4 brne .+2 1055 0030 00C0 rjmp .L53 1056 0032 ED91 ld r30,X+ 1057 0034 FC91 ld r31,X 1058 0036 8685 ldd r24,Z+14 1059 0038 9785 ldd r25,Z+15 1060 003a A089 ldd r26,Z+16 1061 003c B189 ldd r27,Z+17 1062 .LVL94: 1063 003e 4817 cp r20,r24 1064 0040 5907 cpc r21,r25 1065 0042 6A07 cpc r22,r26 1066 0044 7B07 cpc r23,r27 1067 0046 00F0 brlo .+2 1068 0048 00C0 rjmp .L53 1069 .LSM80: 1070 004a 4115 cp r20,__zero_reg__ 1071 004c 5105 cpc r21,__zero_reg__ 1072 004e 6105 cpc r22,__zero_reg__ 1073 0050 7105 cpc r23,__zero_reg__ 1074 0052 01F4 brne .L54 1075 0054 8081 ld r24,Z 1076 0056 8330 cpi r24,lo8(3) 1077 0058 01F4 brne .L55 1078 .LSM81: 1079 005a 4689 ldd r20,Z+22 1080 005c 5789 ldd r21,Z+23 1081 005e 608D ldd r22,Z+24 1082 0060 718D ldd r23,Z+25 1083 .LSM82: 1084 0062 4115 cp r20,__zero_reg__ 1085 0064 5105 cpc r21,__zero_reg__ 1086 0066 6105 cpc r22,__zero_reg__ 1087 0068 7105 cpc r23,__zero_reg__ 1088 006a 01F4 brne .L54 1089 .L55: 1090 .LSM83: 1091 006c F801 movw r30,r16 1092 006e 1286 std Z+10,__zero_reg__ 1093 0070 1386 std Z+11,__zero_reg__ 1094 0072 1486 std Z+12,__zero_reg__ 1095 0074 1586 std Z+13,__zero_reg__ 1096 .LSM84: 1097 0076 0190 ld __tmp_reg__,Z+ 1098 0078 F081 ld r31,Z 1099 007a E02D mov r30,__tmp_reg__ 1100 007c 8085 ldd r24,Z+8 1101 007e 9185 ldd r25,Z+9 1102 0080 C817 cp r28,r24 1103 0082 D907 cpc r29,r25 1104 0084 00F0 brlo .+2 1105 0086 00C0 rjmp .L53 1106 .LVL95: 1107 .LSM85: 1108 0088 CE01 movw r24,r28 1109 008a A4E0 ldi r26,4 1110 008c 9695 1: lsr r25 1111 008e 8795 ror r24 1112 0090 AA95 dec r26 1113 0092 01F4 brne 1b 1114 0094 A0E0 ldi r26,lo8(0) 1115 0096 B0E0 ldi r27,hi8(0) 1116 0098 2689 ldd r18,Z+22 1117 009a 3789 ldd r19,Z+23 1118 009c 408D ldd r20,Z+24 1119 009e 518D ldd r21,Z+25 1120 00a0 820F add r24,r18 1121 00a2 931F adc r25,r19 1122 00a4 A41F adc r26,r20 1123 00a6 B51F adc r27,r21 1124 00a8 F801 movw r30,r16 1125 00aa 8687 std Z+14,r24 1126 00ac 9787 std Z+15,r25 1127 00ae A08B std Z+16,r26 1128 00b0 B18B std Z+17,r27 1129 00b2 00C0 rjmp .L56 1130 .LVL96: 1131 .L54: 1132 .LSM86: 1133 00b4 8281 ldd r24,Z+2 1134 00b6 E82E mov r14,r24 1135 .LVL97: 1136 00b8 FF24 clr r15 1137 .LVL98: 1138 00ba E4E0 ldi r30,4 1139 00bc EE0C 1: lsl r14 1140 00be FF1C rol r15 1141 00c0 EA95 dec r30 1142 00c2 01F4 brne 1b 1143 .LVL99: 1144 00c4 00C0 rjmp .L57 1145 .LVL100: 1146 .L60: 1147 .LSM87: 1148 00c6 0E94 0000 call get_fat 1149 .LVL101: 1150 00ca AB01 movw r20,r22 1151 00cc BC01 movw r22,r24 1152 .LVL102: 1153 .LSM88: 1154 00ce 4F3F cpi r20,lo8(-1) 1155 00d0 FFEF ldi r31,hi8(-1) 1156 00d2 5F07 cpc r21,r31 1157 00d4 FFEF ldi r31,hlo8(-1) 1158 00d6 6F07 cpc r22,r31 1159 00d8 FFEF ldi r31,hhi8(-1) 1160 00da 7F07 cpc r23,r31 1161 00dc 01F4 brne .L58 1162 00de 81E0 ldi r24,lo8(1) 1163 00e0 00C0 rjmp .L59 1164 .L58: 1165 .LSM89: 1166 00e2 4230 cpi r20,lo8(2) 1167 00e4 5105 cpc r21,__zero_reg__ 1168 00e6 6105 cpc r22,__zero_reg__ 1169 00e8 7105 cpc r23,__zero_reg__ 1170 00ea 00F4 brsh .+2 1171 00ec 00C0 rjmp .L53 1172 00ee D801 movw r26,r16 1173 00f0 ED91 ld r30,X+ 1174 00f2 FC91 ld r31,X 1175 00f4 8685 ldd r24,Z+14 1176 00f6 9785 ldd r25,Z+15 1177 00f8 A089 ldd r26,Z+16 1178 00fa B189 ldd r27,Z+17 1179 00fc 4817 cp r20,r24 1180 00fe 5907 cpc r21,r25 1181 0100 6A07 cpc r22,r26 1182 0102 7B07 cpc r23,r27 1183 0104 00F4 brsh .L53 1184 .LSM90: 1185 0106 CE19 sub r28,r14 1186 0108 DF09 sbc r29,r15 1187 .LVL103: 1188 .L57: 1189 010a F801 movw r30,r16 1190 010c 8081 ld r24,Z 1191 010e 9181 ldd r25,Z+1 1192 .LSM91: 1193 0110 CE15 cp r28,r14 1194 0112 DF05 cpc r29,r15 1195 0114 00F4 brsh .L60 1196 .LSM92: 1197 0116 D801 movw r26,r16 1198 0118 1A96 adiw r26,10 1199 011a 4D93 st X+,r20 1200 011c 5D93 st X+,r21 1201 011e 6D93 st X+,r22 1202 0120 7C93 st X,r23 1203 0122 1D97 sbiw r26,10+3 1204 .LSM93: 1205 0124 0E94 0000 call clust2sect 1206 .LVL104: 1207 0128 9E01 movw r18,r28 1208 012a 44E0 ldi r20,4 1209 012c 3695 1: lsr r19 1210 012e 2795 ror r18 1211 0130 4A95 dec r20 1212 0132 01F4 brne 1b 1213 0134 40E0 ldi r20,lo8(0) 1214 0136 50E0 ldi r21,hi8(0) 1215 0138 260F add r18,r22 1216 013a 371F adc r19,r23 1217 013c 481F adc r20,r24 1218 013e 591F adc r21,r25 1219 0140 F801 movw r30,r16 1220 0142 2687 std Z+14,r18 1221 0144 3787 std Z+15,r19 1222 0146 408B std Z+16,r20 1223 0148 518B std Z+17,r21 1224 .LVL105: 1225 .L56: 1226 .LSM94: 1227 014a CF70 andi r28,lo8(15) 1228 014c D070 andi r29,hi8(15) 1229 014e 85E0 ldi r24,5 1230 0150 CC0F 1: lsl r28 1231 0152 DD1F rol r29 1232 0154 8A95 dec r24 1233 0156 01F4 brne 1b 1234 0158 A296 adiw r28,34 1235 015a D801 movw r26,r16 1236 015c 8D91 ld r24,X+ 1237 015e 9C91 ld r25,X 1238 0160 1197 sbiw r26,1 1239 0162 8C0F add r24,r28 1240 0164 9D1F adc r25,r29 1241 0166 5396 adiw r26,18+1 1242 0168 9C93 st X,r25 1243 016a 8E93 st -X,r24 1244 016c 5297 sbiw r26,18 1245 016e 80E0 ldi r24,lo8(0) 1246 0170 00C0 rjmp .L59 1247 .LVL106: 1248 .L53: 1249 .LSM95: 1250 0172 82E0 ldi r24,lo8(2) 1251 .L59: 1252 /* epilogue start */ 1253 .LSM96: 1254 0174 DF91 pop r29 1255 0176 CF91 pop r28 1256 .LVL107: 1257 0178 1F91 pop r17 1258 017a 0F91 pop r16 1259 .LVL108: 1260 017c FF90 pop r15 1261 .LVL109: 1262 017e EF90 pop r14 1263 .LVL110: 1264 0180 0895 ret 1265 .LFE61: 1267 .section .text.f_read,"ax",@progbits 1268 .global f_read 1270 f_read: 1271 .LFB71: 1272 .LSM97: 1273 .LVL111: 1274 0000 2F92 push r2 1275 0002 3F92 push r3 1276 0004 4F92 push r4 1277 0006 5F92 push r5 1278 0008 7F92 push r7 1279 000a 8F92 push r8 1280 000c 9F92 push r9 1281 000e AF92 push r10 1282 0010 BF92 push r11 1283 0012 CF92 push r12 1284 0014 DF92 push r13 1285 0016 EF92 push r14 1286 0018 FF92 push r15 1287 001a 0F93 push r16 1288 001c 1F93 push r17 1289 001e CF93 push r28 1290 0020 DF93 push r29 1291 /* prologue: function */ 1292 /* frame size = 0 */ 1293 0022 EC01 movw r28,r24 1294 0024 162F mov r17,r22 1295 0026 072F mov r16,r23 1296 .LVL112: 1297 0028 4A01 movw r8,r20 1298 002a 1901 movw r2,r18 1299 .LSM98: 1300 002c D901 movw r26,r18 1301 002e 1D92 st X+,__zero_reg__ 1302 0030 1C92 st X,__zero_reg__ 1303 .LSM99: 1304 0032 6A81 ldd r22,Y+2 1305 0034 7B81 ldd r23,Y+3 1306 .LVL113: 1307 0036 8881 ld r24,Y 1308 0038 9981 ldd r25,Y+1 1309 .LVL114: 1310 003a 0E94 0000 call validate 1311 .LVL115: 1312 003e 782E mov r7,r24 1313 .LVL116: 1314 .LSM100: 1315 0040 8823 tst r24 1316 0042 01F0 breq .+2 1317 0044 00C0 rjmp .L63 1318 .LVL117: 1319 .LSM101: 1320 0046 8C81 ldd r24,Y+4 1321 .LVL118: 1322 0048 87FD sbrc r24,7 1323 004a 00C0 rjmp .L85 1324 .L64: 1325 .LSM102: 1326 004c 80FD sbrc r24,0 1327 004e 00C0 rjmp .L65 1328 0050 27E0 ldi r18,lo8(7) 1329 0052 722E mov r7,r18 1330 0054 00C0 rjmp .L63 1331 .L65: 1332 .LSM103: 1333 0056 2A85 ldd r18,Y+10 1334 0058 3B85 ldd r19,Y+11 1335 005a 4C85 ldd r20,Y+12 1336 005c 5D85 ldd r21,Y+13 1337 .LVL119: 1338 005e 8E81 ldd r24,Y+6 1339 0060 9F81 ldd r25,Y+7 1340 0062 A885 ldd r26,Y+8 1341 0064 B985 ldd r27,Y+9 1342 0066 281B sub r18,r24 1343 0068 390B sbc r19,r25 1344 006a 4A0B sbc r20,r26 1345 006c 5B0B sbc r21,r27 1346 .LSM104: 1347 006e C401 movw r24,r8 1348 0070 A0E0 ldi r26,lo8(0) 1349 0072 B0E0 ldi r27,hi8(0) 1350 .LVL120: 1351 0074 2817 cp r18,r24 1352 0076 3907 cpc r19,r25 1353 0078 4A07 cpc r20,r26 1354 007a 5B07 cpc r21,r27 1355 007c 00F4 brsh .L66 1356 .LVL121: 1357 007e 4901 movw r8,r18 1358 .LVL122: 1359 .L66: 1360 .LSM105: 1361 0080 812F mov r24,r17 1362 .LVL123: 1363 0082 902F mov r25,r16 1364 .LVL124: 1365 0084 9C01 movw r18,r24 1366 .LVL125: 1367 0086 2901 movw r4,r18 1368 .LVL126: 1369 0088 00C0 rjmp .L67 1370 .LVL127: 1371 .L83: 1372 .LSM106: 1373 008a 2E81 ldd r18,Y+6 1374 008c 3F81 ldd r19,Y+7 1375 008e 4885 ldd r20,Y+8 1376 0090 5985 ldd r21,Y+9 1377 0092 DA01 movw r26,r20 1378 0094 C901 movw r24,r18 1379 0096 9170 andi r25,hi8(511) 1380 0098 A070 andi r26,hlo8(511) 1381 009a B070 andi r27,hhi8(511) 1382 009c 0097 sbiw r24,0 1383 009e A105 cpc r26,__zero_reg__ 1384 00a0 B105 cpc r27,__zero_reg__ 1385 00a2 01F0 breq .+2 1386 00a4 00C0 rjmp .L68 1387 .LSM107: 1388 00a6 E881 ld r30,Y 1389 00a8 F981 ldd r31,Y+1 1390 .LVL128: 1391 00aa 9D81 ldd r25,Y+5 1392 .LVL129: 1393 00ac 8281 ldd r24,Z+2 1394 00ae 9817 cp r25,r24 1395 00b0 00F0 brlo .L69 1396 .LSM108: 1397 00b2 2115 cp r18,__zero_reg__ 1398 00b4 3105 cpc r19,__zero_reg__ 1399 00b6 4105 cpc r20,__zero_reg__ 1400 00b8 5105 cpc r21,__zero_reg__ 1401 00ba 01F4 brne .L70 1402 00bc 6E85 ldd r22,Y+14 1403 00be 7F85 ldd r23,Y+15 1404 00c0 8889 ldd r24,Y+16 1405 00c2 9989 ldd r25,Y+17 1406 .LVL130: 1407 00c4 00C0 rjmp .L71 1408 .LVL131: 1409 .L70: 1410 00c6 4A89 ldd r20,Y+18 1411 00c8 5B89 ldd r21,Y+19 1412 00ca 6C89 ldd r22,Y+20 1413 00cc 7D89 ldd r23,Y+21 1414 00ce CF01 movw r24,r30 1415 00d0 0E94 0000 call get_fat 1416 .LVL132: 1417 .L71: 1418 .LSM109: 1419 00d4 6230 cpi r22,lo8(2) 1420 00d6 7105 cpc r23,__zero_reg__ 1421 00d8 8105 cpc r24,__zero_reg__ 1422 00da 9105 cpc r25,__zero_reg__ 1423 00dc 00F4 brsh .L72 1424 .LVL133: 1425 .L87: 1426 00de 8C81 ldd r24,Y+4 1427 00e0 8068 ori r24,lo8(-128) 1428 00e2 8C83 std Y+4,r24 1429 .L85: 1430 00e4 92E0 ldi r25,lo8(2) 1431 00e6 792E mov r7,r25 1432 00e8 00C0 rjmp .L63 1433 .LVL134: 1434 .L72: 1435 .LSM110: 1436 00ea 6F3F cpi r22,lo8(-1) 1437 00ec BFEF ldi r27,hi8(-1) 1438 00ee 7B07 cpc r23,r27 1439 00f0 BFEF ldi r27,hlo8(-1) 1440 00f2 8B07 cpc r24,r27 1441 00f4 BFEF ldi r27,hhi8(-1) 1442 00f6 9B07 cpc r25,r27 1443 00f8 01F4 brne .+2 1444 00fa 00C0 rjmp .L86 1445 .L73: 1446 .LSM111: 1447 00fc 6A8B std Y+18,r22 1448 00fe 7B8B std Y+19,r23 1449 0100 8C8B std Y+20,r24 1450 0102 9D8B std Y+21,r25 1451 .LSM112: 1452 0104 1D82 std Y+5,__zero_reg__ 1453 .LVL135: 1454 .L69: 1455 .LSM113: 1456 0106 0881 ld r16,Y 1457 0108 1981 ldd r17,Y+1 1458 .LVL136: 1459 010a 4A89 ldd r20,Y+18 1460 010c 5B89 ldd r21,Y+19 1461 010e 6C89 ldd r22,Y+20 1462 0110 7D89 ldd r23,Y+21 1463 0112 C801 movw r24,r16 1464 0114 0E94 0000 call clust2sect 1465 .LVL137: 1466 .LSM114: 1467 0118 6115 cp r22,__zero_reg__ 1468 011a 7105 cpc r23,__zero_reg__ 1469 011c 8105 cpc r24,__zero_reg__ 1470 011e 9105 cpc r25,__zero_reg__ 1471 0120 01F0 breq .L87 1472 .LVL138: 1473 .L74: 1474 .LSM115: 1475 0122 ED81 ldd r30,Y+5 1476 0124 5B01 movw r10,r22 1477 0126 6C01 movw r12,r24 1478 0128 AE0E add r10,r30 1479 012a B11C adc r11,__zero_reg__ 1480 012c C11C adc r12,__zero_reg__ 1481 012e D11C adc r13,__zero_reg__ 1482 .LVL139: 1483 .LSM116: 1484 0130 7401 movw r14,r8 1485 0132 EF2C mov r14,r15 1486 0134 FF24 clr r15 1487 0136 E694 lsr r14 1488 .LSM117: 1489 0138 E114 cp r14,__zero_reg__ 1490 013a F104 cpc r15,__zero_reg__ 1491 013c 01F0 breq .L75 1492 .LSM118: 1493 013e D801 movw r26,r16 1494 0140 1296 adiw r26,2 1495 0142 2C91 ld r18,X 1496 0144 F0E0 ldi r31,lo8(0) 1497 0146 C701 movw r24,r14 1498 0148 8E0F add r24,r30 1499 014a 9F1F adc r25,r31 1500 014c 622F mov r22,r18 1501 014e 70E0 ldi r23,lo8(0) 1502 0150 6817 cp r22,r24 1503 0152 7907 cpc r23,r25 1504 0154 00F4 brsh .L76 1505 .LSM119: 1506 0156 7B01 movw r14,r22 1507 0158 EE1A sub r14,r30 1508 015a FF0A sbc r15,r31 1509 .L76: 1510 .LSM120: 1511 015c F801 movw r30,r16 1512 015e 8181 ldd r24,Z+1 1513 0160 B201 movw r22,r4 1514 0162 A601 movw r20,r12 1515 0164 9501 movw r18,r10 1516 0166 0E2D mov r16,r14 1517 0168 0E94 0000 call disk_read 1518 016c 8823 tst r24 1519 016e 01F4 brne .L86 1520 .L77: 1521 .LSM121: 1522 0170 8D81 ldd r24,Y+5 1523 0172 8E0D add r24,r14 1524 0174 8D83 std Y+5,r24 1525 .LSM122: 1526 0176 B701 movw r22,r14 1527 .LVL140: 1528 0178 762F mov r23,r22 1529 017a 6627 clr r22 1530 017c 770F lsl r23 1531 017e 00C0 rjmp .L78 1532 .LVL141: 1533 .L75: 1534 .LSM123: 1535 0180 AE8A std Y+22,r10 1536 0182 BF8A std Y+23,r11 1537 0184 C88E std Y+24,r12 1538 0186 D98E std Y+25,r13 1539 .LSM124: 1540 0188 EF5F subi r30,lo8(-(1)) 1541 018a ED83 std Y+5,r30 1542 .LVL142: 1543 .L68: 1544 .LSM125: 1545 018c EE80 ldd r14,Y+6 1546 018e FF80 ldd r15,Y+7 1547 0190 0885 ldd r16,Y+8 1548 0192 1985 ldd r17,Y+9 1549 .LVL143: 1550 .LSM126: 1551 0194 4E89 ldd r20,Y+22 1552 0196 5F89 ldd r21,Y+23 1553 0198 688D ldd r22,Y+24 1554 019a 798D ldd r23,Y+25 1555 019c 8881 ld r24,Y 1556 019e 9981 ldd r25,Y+1 1557 01a0 0E94 0000 call move_window 1558 .LVL144: 1559 01a4 8823 tst r24 1560 01a6 01F0 breq .L79 1561 .LVL145: 1562 .L86: 1563 .LSM127: 1564 01a8 8C81 ldd r24,Y+4 1565 01aa 8068 ori r24,lo8(-128) 1566 01ac 8C83 std Y+4,r24 1567 01ae 7724 clr r7 1568 01b0 7394 inc r7 1569 01b2 00C0 rjmp .L63 1570 .LVL146: 1571 .L79: 1572 .LSM128: 1573 01b4 C701 movw r24,r14 1574 01b6 9170 andi r25,hi8(511) 1575 01b8 20E0 ldi r18,lo8(512) 1576 01ba 32E0 ldi r19,hi8(512) 1577 01bc 281B sub r18,r24 1578 01be 390B sbc r19,r25 1579 01c0 B401 movw r22,r8 1580 .LVL147: 1581 01c2 2815 cp r18,r8 1582 01c4 3905 cpc r19,r9 1583 01c6 00F4 brsh .L80 1584 .LVL148: 1585 01c8 B901 movw r22,r18 1586 .L80: 1587 .LSM129: 1588 01ca 9B01 movw r18,r22 1589 .LVL149: 1590 .LBB4: 1591 .LBB5: 1592 .LSM130: 1593 01cc 8E81 ldd r24,Y+6 1594 01ce 9F81 ldd r25,Y+7 1595 01d0 9170 andi r25,hi8(511) 1596 01d2 8296 adiw r24,34 1597 01d4 E881 ld r30,Y 1598 01d6 F981 ldd r31,Y+1 1599 .LVL150: 1600 01d8 E80F add r30,r24 1601 01da F91F adc r31,r25 1602 01dc D201 movw r26,r4 1603 01de 00C0 rjmp .L81 1604 .LVL151: 1605 .L82: 1606 .LSM131: 1607 01e0 8191 ld r24,Z+ 1608 01e2 8D93 st X+,r24 1609 .L81: 1610 01e4 2150 subi r18,lo8(-(-1)) 1611 01e6 3040 sbci r19,hi8(-(-1)) 1612 01e8 8FEF ldi r24,hi8(-1) 1613 01ea 2F3F cpi r18,lo8(-1) 1614 01ec 3807 cpc r19,r24 1615 01ee 01F4 brne .L82 1616 .LVL152: 1617 .L78: 1618 .LBE5: 1619 .LBE4: 1620 .LSM132: 1621 01f0 460E add r4,r22 1622 01f2 571E adc r5,r23 1623 01f4 CB01 movw r24,r22 1624 01f6 A0E0 ldi r26,lo8(0) 1625 01f8 B0E0 ldi r27,hi8(0) 1626 .LVL153: 1627 01fa 2E81 ldd r18,Y+6 1628 01fc 3F81 ldd r19,Y+7 1629 01fe 4885 ldd r20,Y+8 1630 0200 5985 ldd r21,Y+9 1631 .LVL154: 1632 0202 280F add r18,r24 1633 0204 391F adc r19,r25 1634 0206 4A1F adc r20,r26 1635 0208 5B1F adc r21,r27 1636 020a 2E83 std Y+6,r18 1637 020c 3F83 std Y+7,r19 1638 020e 4887 std Y+8,r20 1639 0210 5987 std Y+9,r21 1640 0212 D101 movw r26,r2 1641 .LVL155: 1642 0214 8D91 ld r24,X+ 1643 0216 9C91 ld r25,X 1644 0218 1197 sbiw r26,1 1645 021a 860F add r24,r22 1646 021c 971F adc r25,r23 1647 021e 8D93 st X+,r24 1648 0220 9C93 st X,r25 1649 0222 861A sub r8,r22 1650 0224 970A sbc r9,r23 1651 .LVL156: 1652 .L67: 1653 .LSM133: 1654 0226 8114 cp r8,__zero_reg__ 1655 0228 9104 cpc r9,__zero_reg__ 1656 022a 01F0 breq .+2 1657 022c 00C0 rjmp .L83 1658 .LVL157: 1659 .L63: 1660 .LSM134: 1661 022e 872D mov r24,r7 1662 /* epilogue start */ 1663 0230 DF91 pop r29 1664 0232 CF91 pop r28 1665 .LVL158: 1666 0234 1F91 pop r17 1667 .LVL159: 1668 0236 0F91 pop r16 1669 .LVL160: 1670 0238 FF90 pop r15 1671 023a EF90 pop r14 1672 .LVL161: 1673 023c DF90 pop r13 1674 023e CF90 pop r12 1675 0240 BF90 pop r11 1676 0242 AF90 pop r10 1677 .LVL162: 1678 0244 9F90 pop r9 1679 0246 8F90 pop r8 1680 .LVL163: 1681 0248 7F90 pop r7 1682 .LVL164: 1683 024a 5F90 pop r5 1684 024c 4F90 pop r4 1685 .LVL165: 1686 024e 3F90 pop r3 1687 0250 2F90 pop r2 1688 .LVL166: 1689 0252 0895 ret 1690 .LFE71: 1692 .section .text.check_fs,"ax",@progbits 1694 check_fs: 1695 .LFB66: 1696 .LSM135: 1697 .LVL167: 1698 0000 0F93 push r16 1699 0002 CF93 push r28 1700 0004 DF93 push r29 1701 /* prologue: function */ 1702 /* frame size = 0 */ 1703 0006 EC01 movw r28,r24 1704 0008 9A01 movw r18,r20 1705 000a AB01 movw r20,r22 1706 .LSM136: 1707 000c BC01 movw r22,r24 1708 000e 6E5D subi r22,lo8(-(34)) 1709 0010 7F4F sbci r23,hi8(-(34)) 1710 0012 8981 ldd r24,Y+1 1711 .LVL168: 1712 0014 01E0 ldi r16,lo8(1) 1713 0016 0E94 0000 call disk_read 1714 .LVL169: 1715 001a 8823 tst r24 1716 001c 01F0 breq .L89 1717 001e 23E0 ldi r18,lo8(3) 1718 0020 00C0 rjmp .L90 1719 .L89: 1720 .LSM137: 1721 0022 C05E subi r28,lo8(-(544)) 1722 0024 DD4F sbci r29,hi8(-(544)) 1723 0026 8881 ld r24,Y 1724 0028 9981 ldd r25,Y+1 1725 002a C052 subi r28,lo8(-(-544)) 1726 002c D240 sbci r29,hi8(-(-544)) 1727 002e 8555 subi r24,lo8(-21931) 1728 0030 9A4A sbci r25,hi8(-21931) 1729 0032 01F0 breq .L91 1730 0034 22E0 ldi r18,lo8(2) 1731 0036 00C0 rjmp .L90 1732 .L91: 1733 .LSM138: 1734 0038 C85A subi r28,lo8(-(88)) 1735 003a DF4F sbci r29,hi8(-(88)) 1736 003c 8881 ld r24,Y 1737 003e 9981 ldd r25,Y+1 1738 0040 AA81 ldd r26,Y+2 1739 0042 BB81 ldd r27,Y+3 1740 0044 C855 subi r28,lo8(-(-88)) 1741 0046 D040 sbci r29,hi8(-(-88)) 1742 0048 B070 andi r27,hhi8(16777215) 1743 004a 8654 subi r24,lo8(5521734) 1744 004c 9144 sbci r25,hi8(5521734) 1745 004e A445 sbci r26,hlo8(5521734) 1746 0050 B040 sbci r27,hhi8(5521734) 1747 0052 01F4 brne .L92 1748 0054 20E0 ldi r18,lo8(0) 1749 0056 00C0 rjmp .L90 1750 .L92: 1751 0058 20E0 ldi r18,lo8(0) 1752 005a CC58 subi r28,lo8(-(116)) 1753 005c DF4F sbci r29,hi8(-(116)) 1754 005e 8881 ld r24,Y 1755 0060 9981 ldd r25,Y+1 1756 0062 AA81 ldd r26,Y+2 1757 0064 BB81 ldd r27,Y+3 1758 0066 B070 andi r27,hhi8(16777215) 1759 0068 8654 subi r24,lo8(5521734) 1760 006a 9144 sbci r25,hi8(5521734) 1761 006c A445 sbci r26,hlo8(5521734) 1762 006e B040 sbci r27,hhi8(5521734) 1763 0070 01F0 breq .L90 1764 0072 21E0 ldi r18,lo8(1) 1765 .L90: 1766 .LSM139: 1767 0074 822F mov r24,r18 1768 /* epilogue start */ 1769 0076 DF91 pop r29 1770 0078 CF91 pop r28 1771 .LVL170: 1772 007a 0F91 pop r16 1773 007c 0895 ret 1774 .LFE66: 1776 .section .text.chk_mounted,"ax",@progbits 1777 .global chk_mounted 1779 chk_mounted: 1780 .LFB67: 1781 .LSM140: 1782 .LVL171: 1783 0000 AF92 push r10 1784 0002 BF92 push r11 1785 0004 CF92 push r12 1786 0006 DF92 push r13 1787 0008 EF92 push r14 1788 000a FF92 push r15 1789 000c 0F93 push r16 1790 000e 1F93 push r17 1791 0010 CF93 push r28 1792 0012 DF93 push r29 1793 /* prologue: function */ 1794 /* frame size = 0 */ 1795 0014 DC01 movw r26,r24 1796 0016 AB01 movw r20,r22 1797 .LVL172: 1798 .LSM141: 1799 0018 ED91 ld r30,X+ 1800 001a FC91 ld r31,X 1801 001c 1197 sbiw r26,1 1802 .LVL173: 1803 .LSM142: 1804 001e 8081 ld r24,Z 1805 .LVL174: 1806 0020 282F mov r18,r24 1807 .LVL175: 1808 0022 30E0 ldi r19,lo8(0) 1809 .LVL176: 1810 0024 2053 subi r18,lo8(-(-48)) 1811 0026 3040 sbci r19,hi8(-(-48)) 1812 .LVL177: 1813 .LSM143: 1814 0028 2A30 cpi r18,10 1815 002a 3105 cpc r19,__zero_reg__ 1816 002c 00F4 brsh .L96 1817 .LVL178: 1818 002e 8181 ldd r24,Z+1 1819 0030 8A33 cpi r24,lo8(58) 1820 0032 01F4 brne .L96 1821 .LSM144: 1822 0034 3296 adiw r30,2 1823 0036 ED93 st X+,r30 1824 0038 FC93 st X,r31 1825 .LSM145: 1826 003a 232B or r18,r19 1827 003c 01F0 breq .L96 1828 003e 8BE0 ldi r24,lo8(11) 1829 0040 00C0 rjmp .L97 1830 .L96: 1831 .LSM146: 1832 0042 C091 0000 lds r28,FatFs 1833 0046 D091 0000 lds r29,(FatFs)+1 1834 .LVL179: 1835 004a FA01 movw r30,r20 1836 .LVL180: 1837 004c D183 std Z+1,r29 1838 004e C083 st Z,r28 1839 .LSM147: 1840 0050 2097 sbiw r28,0 1841 0052 01F4 brne .L98 1842 0054 8CE0 ldi r24,lo8(12) 1843 0056 00C0 rjmp .L97 1844 .L98: 1845 .LSM148: 1846 0058 8881 ld r24,Y 1847 005a 8823 tst r24 1848 005c 01F0 breq .L99 1849 .LSM149: 1850 005e 8981 ldd r24,Y+1 1851 0060 0E94 0000 call disk_status 1852 .LVL181: 1853 .LSM150: 1854 0064 80FF sbrs r24,0 1855 0066 00C0 rjmp .L112 1856 .LVL182: 1857 .L99: 1858 .LSM151: 1859 0068 1882 st Y,__zero_reg__ 1860 .LSM152: 1861 006a 1982 std Y+1,__zero_reg__ 1862 .LSM153: 1863 006c 80E0 ldi r24,lo8(0) 1864 006e 0E94 0000 call disk_initialize 1865 .LVL183: 1866 .LSM154: 1867 0072 80FF sbrs r24,0 1868 0074 00C0 rjmp .L100 1869 0076 83E0 ldi r24,lo8(3) 1870 0078 00C0 rjmp .L97 1871 .L100: 1872 .LSM155: 1873 007a CE01 movw r24,r28 1874 007c 40E0 ldi r20,lo8(0) 1875 007e 50E0 ldi r21,hi8(0) 1876 0080 60E0 ldi r22,hlo8(0) 1877 0082 70E0 ldi r23,hhi8(0) 1878 0084 0E94 0000 call check_fs 1879 .LSM156: 1880 0088 8130 cpi r24,lo8(1) 1881 .LVL184: 1882 008a 01F0 breq .L101 1883 008c EE24 clr r14 1884 008e FF24 clr r15 1885 0090 8701 movw r16,r14 1886 .LVL185: 1887 0092 00C0 rjmp .L102 1888 .LVL186: 1889 .L101: 1890 .LSM157: 1891 0094 FE01 movw r30,r28 1892 .LVL187: 1893 0096 E052 subi r30,lo8(-(480)) 1894 0098 FE4F sbci r31,hi8(-(480)) 1895 .LSM158: 1896 009a 8481 ldd r24,Z+4 1897 .LVL188: 1898 009c 8823 tst r24 1899 009e 01F4 brne .+2 1900 00a0 00C0 rjmp .L103 1901 .LSM159: 1902 00a2 E084 ldd r14,Z+8 1903 00a4 F184 ldd r15,Z+9 1904 00a6 0285 ldd r16,Z+10 1905 00a8 1385 ldd r17,Z+11 1906 .LVL189: 1907 .LSM160: 1908 00aa CE01 movw r24,r28 1909 00ac B801 movw r22,r16 1910 00ae A701 movw r20,r14 1911 00b0 0E94 0000 call check_fs 1912 .LVL190: 1913 .L102: 1914 .LSM161: 1915 00b4 8330 cpi r24,lo8(3) 1916 00b6 01F4 brne .L104 1917 00b8 81E0 ldi r24,lo8(1) 1918 .LVL191: 1919 00ba 00C0 rjmp .L97 1920 .LVL192: 1921 .L104: 1922 .LSM162: 1923 00bc 8823 tst r24 1924 00be 01F0 breq .+2 1925 00c0 00C0 rjmp .L103 1926 00c2 8DA5 ldd r24,Y+45 1927 00c4 9EA5 ldd r25,Y+46 1928 .LVL193: 1929 00c6 8050 subi r24,lo8(512) 1930 00c8 9240 sbci r25,hi8(512) 1931 00ca 01F0 breq .+2 1932 00cc 00C0 rjmp .L103 1933 .LSM163: 1934 00ce 88AD ldd r24,Y+56 1935 00d0 99AD ldd r25,Y+57 1936 00d2 BC01 movw r22,r24 1937 .LVL194: 1938 00d4 80E0 ldi r24,lo8(0) 1939 00d6 90E0 ldi r25,hi8(0) 1940 .LVL195: 1941 .LSM164: 1942 00d8 6115 cp r22,__zero_reg__ 1943 00da 7105 cpc r23,__zero_reg__ 1944 00dc 8105 cpc r24,__zero_reg__ 1945 00de 9105 cpc r25,__zero_reg__ 1946 00e0 01F4 brne .L105 1947 00e2 CA5B subi r28,lo8(-(70)) 1948 00e4 DF4F sbci r29,hi8(-(70)) 1949 00e6 6881 ld r22,Y 1950 00e8 7981 ldd r23,Y+1 1951 00ea 8A81 ldd r24,Y+2 1952 00ec 9B81 ldd r25,Y+3 1953 .LVL196: 1954 00ee C654 subi r28,lo8(-(-70)) 1955 00f0 D040 sbci r29,hi8(-(-70)) 1956 .L105: 1957 .LSM165: 1958 00f2 6A87 std Y+10,r22 1959 00f4 7B87 std Y+11,r23 1960 00f6 8C87 std Y+12,r24 1961 00f8 9D87 std Y+13,r25 1962 .LSM166: 1963 00fa 2AA9 ldd r18,Y+50 1964 00fc 2B83 std Y+3,r18 1965 .LSM167: 1966 00fe 30E0 ldi r19,lo8(0) 1967 0100 40E0 ldi r20,lo8(0) 1968 0102 50E0 ldi r21,hi8(0) 1969 0104 0E94 0000 call __mulsi3 1970 .LVL197: 1971 0108 5B01 movw r10,r22 1972 010a 6C01 movw r12,r24 1973 .LVL198: 1974 .LSM168: 1975 010c 88A9 ldd r24,Y+48 1976 010e 99A9 ldd r25,Y+49 1977 .LVL199: 1978 0110 A0E0 ldi r26,lo8(0) 1979 0112 B0E0 ldi r27,hi8(0) 1980 0114 E80E add r14,r24 1981 0116 F91E adc r15,r25 1982 0118 0A1F adc r16,r26 1983 011a 1B1F adc r17,r27 1984 011c EA8A std Y+18,r14 1985 011e FB8A std Y+19,r15 1986 0120 0C8B std Y+20,r16 1987 0122 1D8B std Y+21,r17 1988 .LSM169: 1989 0124 8FA5 ldd r24,Y+47 1990 0126 8A83 std Y+2,r24 1991 .LSM170: 1992 0128 2BA9 ldd r18,Y+51 1993 012a 3CA9 ldd r19,Y+52 1994 012c 3987 std Y+9,r19 1995 012e 2887 std Y+8,r18 1996 .LSM171: 1997 0130 8DA9 ldd r24,Y+53 1998 0132 9EA9 ldd r25,Y+54 1999 0134 7C01 movw r14,r24 2000 .LVL200: 2001 0136 00E0 ldi r16,lo8(0) 2002 0138 10E0 ldi r17,hi8(0) 2003 .LVL201: 2004 .LSM172: 2005 013a E114 cp r14,__zero_reg__ 2006 013c F104 cpc r15,__zero_reg__ 2007 013e 0105 cpc r16,__zero_reg__ 2008 0140 1105 cpc r17,__zero_reg__ 2009 0142 01F4 brne .L106 2010 0144 CE5B subi r28,lo8(-(66)) 2011 0146 DF4F sbci r29,hi8(-(66)) 2012 0148 E880 ld r14,Y 2013 014a F980 ldd r15,Y+1 2014 014c 0A81 ldd r16,Y+2 2015 014e 1B81 ldd r17,Y+3 2016 .LVL202: 2017 0150 C254 subi r28,lo8(-(-66)) 2018 0152 D040 sbci r29,hi8(-(-66)) 2019 .L106: 2020 .LSM173: 2021 0154 88A9 ldd r24,Y+48 2022 0156 99A9 ldd r25,Y+49 2023 0158 A0E0 ldi r26,lo8(0) 2024 015a B0E0 ldi r27,hi8(0) 2025 015c E81A sub r14,r24 2026 015e F90A sbc r15,r25 2027 0160 0A0B sbc r16,r26 2028 0162 1B0B sbc r17,r27 2029 .LVL203: 2030 0164 EA18 sub r14,r10 2031 0166 FB08 sbc r15,r11 2032 0168 0C09 sbc r16,r12 2033 016a 1D09 sbc r17,r13 2034 016c 44E0 ldi r20,4 2035 016e 3695 1: lsr r19 2036 0170 2795 ror r18 2037 0172 4A95 dec r20 2038 0174 01F4 brne 1b 2039 0176 C901 movw r24,r18 2040 0178 A0E0 ldi r26,lo8(0) 2041 017a B0E0 ldi r27,hi8(0) 2042 017c E81A sub r14,r24 2043 017e F90A sbc r15,r25 2044 0180 0A0B sbc r16,r26 2045 0182 1B0B sbc r17,r27 2046 0184 2A81 ldd r18,Y+2 2047 0186 30E0 ldi r19,lo8(0) 2048 0188 40E0 ldi r20,lo8(0) 2049 018a 50E0 ldi r21,hi8(0) 2050 018c C801 movw r24,r16 2051 018e B701 movw r22,r14 2052 0190 0E94 0000 call __udivmodsi4 2053 0194 2E5F subi r18,lo8(-(2)) 2054 0196 3F4F sbci r19,hi8(-(2)) 2055 0198 4F4F sbci r20,hlo8(-(2)) 2056 019a 5F4F sbci r21,hhi8(-(2)) 2057 .LVL204: 2058 019c 2E87 std Y+14,r18 2059 019e 3F87 std Y+15,r19 2060 01a0 488B std Y+16,r20 2061 01a2 598B std Y+17,r21 2062 .LSM174: 2063 01a4 273F cpi r18,lo8(4087) 2064 01a6 8FE0 ldi r24,hi8(4087) 2065 01a8 3807 cpc r19,r24 2066 01aa 80E0 ldi r24,hlo8(4087) 2067 01ac 4807 cpc r20,r24 2068 01ae 80E0 ldi r24,hhi8(4087) 2069 01b0 5807 cpc r21,r24 2070 01b2 00F4 brsh .L107 2071 01b4 61E0 ldi r22,lo8(1) 2072 .LVL205: 2073 01b6 00C0 rjmp .L108 2074 .LVL206: 2075 .L107: 2076 .LSM175: 2077 01b8 275F subi r18,lo8(65527) 2078 01ba 3F4F sbci r19,hi8(65527) 2079 01bc 4040 sbci r20,hlo8(65527) 2080 01be 5040 sbci r21,hhi8(65527) 2081 01c0 00F0 brlo .+2 2082 01c2 00C0 rjmp .L109 2083 01c4 62E0 ldi r22,lo8(2) 2084 .LVL207: 2085 .L108: 2086 .LSM176: 2087 01c6 8A89 ldd r24,Y+18 2088 01c8 9B89 ldd r25,Y+19 2089 01ca AC89 ldd r26,Y+20 2090 01cc BD89 ldd r27,Y+21 2091 01ce 8A0D add r24,r10 2092 01d0 9B1D adc r25,r11 2093 01d2 AC1D adc r26,r12 2094 01d4 BD1D adc r27,r13 2095 01d6 8E8B std Y+22,r24 2096 01d8 9F8B std Y+23,r25 2097 01da A88F std Y+24,r26 2098 01dc B98F std Y+25,r27 2099 .L110: 2100 .LSM177: 2101 01de 8885 ldd r24,Y+8 2102 01e0 9985 ldd r25,Y+9 2103 01e2 34E0 ldi r19,4 2104 01e4 9695 1: lsr r25 2105 01e6 8795 ror r24 2106 01e8 3A95 dec r19 2107 01ea 01F4 brne 1b 2108 01ec A0E0 ldi r26,lo8(0) 2109 01ee B0E0 ldi r27,hi8(0) 2110 01f0 2A89 ldd r18,Y+18 2111 01f2 3B89 ldd r19,Y+19 2112 01f4 4C89 ldd r20,Y+20 2113 01f6 5D89 ldd r21,Y+21 2114 .LVL208: 2115 01f8 820F add r24,r18 2116 01fa 931F adc r25,r19 2117 01fc A41F adc r26,r20 2118 01fe B51F adc r27,r21 2119 0200 8A0D add r24,r10 2120 0202 9B1D adc r25,r11 2121 0204 AC1D adc r26,r12 2122 0206 BD1D adc r27,r13 2123 0208 8A8F std Y+26,r24 2124 020a 9B8F std Y+27,r25 2125 020c AC8F std Y+28,r26 2126 020e BD8F std Y+29,r27 2127 .LSM178: 2128 0210 6883 st Y,r22 2129 .LSM179: 2130 0212 1E8E std Y+30,__zero_reg__ 2131 0214 1F8E std Y+31,__zero_reg__ 2132 0216 18A2 std Y+32,__zero_reg__ 2133 0218 19A2 std Y+33,__zero_reg__ 2134 .LSM180: 2135 021a 8091 0000 lds r24,Fsid 2136 021e 9091 0000 lds r25,(Fsid)+1 2137 0222 0196 adiw r24,1 2138 0224 9093 0000 sts (Fsid)+1,r25 2139 0228 8093 0000 sts Fsid,r24 2140 022c 9F83 std Y+7,r25 2141 022e 8E83 std Y+6,r24 2142 .L112: 2143 0230 80E0 ldi r24,lo8(0) 2144 0232 00C0 rjmp .L97 2145 .LVL209: 2146 .L103: 2147 .LSM181: 2148 0234 8DE0 ldi r24,lo8(13) 2149 .LVL210: 2150 .L97: 2151 /* epilogue start */ 2152 .LSM182: 2153 0236 DF91 pop r29 2154 0238 CF91 pop r28 2155 .LVL211: 2156 023a 1F91 pop r17 2157 023c 0F91 pop r16 2158 .LVL212: 2159 023e FF90 pop r15 2160 0240 EF90 pop r14 2161 .LVL213: 2162 0242 DF90 pop r13 2163 0244 CF90 pop r12 2164 0246 BF90 pop r11 2165 0248 AF90 pop r10 2166 .LVL214: 2167 024a 0895 ret 2168 .LVL215: 2169 .L109: 2170 .LSM183: 2171 024c C25B subi r28,lo8(-(78)) 2172 024e DF4F sbci r29,hi8(-(78)) 2173 0250 8881 ld r24,Y 2174 0252 9981 ldd r25,Y+1 2175 0254 AA81 ldd r26,Y+2 2176 0256 BB81 ldd r27,Y+3 2177 0258 CE54 subi r28,lo8(-(-78)) 2178 025a D040 sbci r29,hi8(-(-78)) 2179 025c 8E8B std Y+22,r24 2180 025e 9F8B std Y+23,r25 2181 0260 A88F std Y+24,r26 2182 0262 B98F std Y+25,r27 2183 0264 63E0 ldi r22,lo8(3) 2184 .LVL216: 2185 0266 00C0 rjmp .L110 2186 .LFE67: 2188 .data 2189 .LC0: 2190 0000 2022 2A2B .string " \"*+,[=]|\177" 2190 2C5B 3D5D 2190 7C7F 00 2191 .section .text.f_open,"ax",@progbits 2192 .global f_open 2194 f_open: 2195 .LFB70: 2196 .LSM184: 2197 .LVL217: 2198 0000 3F92 push r3 2199 0002 4F92 push r4 2200 0004 5F92 push r5 2201 0006 6F92 push r6 2202 0008 7F92 push r7 2203 000a 8F92 push r8 2204 000c 9F92 push r9 2205 000e AF92 push r10 2206 0010 BF92 push r11 2207 0012 CF92 push r12 2208 0014 DF92 push r13 2209 0016 EF92 push r14 2210 0018 FF92 push r15 2211 001a 0F93 push r16 2212 001c 1F93 push r17 2213 001e DF93 push r29 2214 0020 CF93 push r28 2215 0022 CDB7 in r28,__SP_L__ 2216 0024 DEB7 in r29,__SP_H__ 2217 0026 A497 sbiw r28,36 2218 0028 0FB6 in __tmp_reg__,__SREG__ 2219 002a F894 cli 2220 002c DEBF out __SP_H__,r29 2221 002e 0FBE out __SREG__,__tmp_reg__ 2222 0030 CDBF out __SP_L__,r28 2223 /* prologue: function */ 2224 /* frame size = 36 */ 2225 0032 4C01 movw r8,r24 2226 0034 7CA3 std Y+36,r23 2227 0036 6BA3 std Y+35,r22 2228 0038 742E mov r7,r20 2229 .LSM185: 2230 003a DC01 movw r26,r24 2231 003c 1D92 st X+,__zero_reg__ 2232 003e 1C92 st X,__zero_reg__ 2233 .LSM186: 2234 0040 CE01 movw r24,r28 2235 .LVL218: 2236 0042 8396 adiw r24,35 2237 0044 BE01 movw r22,r28 2238 .LVL219: 2239 0046 635F subi r22,lo8(-(13)) 2240 0048 7F4F sbci r23,hi8(-(13)) 2241 004a 40E0 ldi r20,lo8(0) 2242 .LVL220: 2243 004c 0E94 0000 call chk_mounted 2244 .LSM187: 2245 0050 8823 tst r24 2246 .LVL221: 2247 0052 01F0 breq .+2 2248 0054 00C0 rjmp .L115 2249 .LSM188: 2250 0056 CE01 movw r24,r28 2251 .LVL222: 2252 0058 0196 adiw r24,1 2253 005a 9AA3 std Y+34,r25 2254 005c 89A3 std Y+33,r24 2255 .LSM189: 2256 005e CBA0 ldd r12,Y+35 2257 0060 DCA0 ldd r13,Y+36 2258 .LVL223: 2259 0062 00C0 rjmp .L116 2260 .L117: 2261 .LBB20: 2262 .LBB21: 2263 .LSM190: 2264 0064 0894 sec 2265 0066 C11C adc r12,__zero_reg__ 2266 0068 D11C adc r13,__zero_reg__ 2267 .L116: 2268 006a F601 movw r30,r12 2269 006c 8081 ld r24,Z 2270 006e 8032 cpi r24,lo8(32) 2271 0070 01F0 breq .L117 2272 .LSM191: 2273 0072 8F32 cpi r24,lo8(47) 2274 0074 01F0 breq .L118 2275 0076 8C35 cpi r24,lo8(92) 2276 0078 01F4 brne .L119 2277 .L118: 2278 .LSM192: 2279 007a 0894 sec 2280 007c C11C adc r12,__zero_reg__ 2281 007e D11C adc r13,__zero_reg__ 2282 .L119: 2283 .LSM193: 2284 0080 1B8A std Y+19,__zero_reg__ 2285 0082 1C8A std Y+20,__zero_reg__ 2286 0084 1D8A std Y+21,__zero_reg__ 2287 0086 1E8A std Y+22,__zero_reg__ 2288 .LSM194: 2289 0088 D601 movw r26,r12 2290 008a 8C91 ld r24,X 2291 008c 8032 cpi r24,lo8(32) 2292 008e 00F4 brsh .L120 2293 .LBE21: 2294 .LSM195: 2295 0090 CE01 movw r24,r28 2296 0092 0D96 adiw r24,13 2297 0094 60E0 ldi r22,lo8(0) 2298 0096 70E0 ldi r23,hi8(0) 2299 0098 0E94 0000 call dir_seek 2300 .LBE20: 2301 .LSM196: 2302 009c 8823 tst r24 2303 .LVL224: 2304 009e 01F4 brne .+2 2305 00a0 00C0 rjmp .L160 2306 00a2 00C0 rjmp .L115 2307 .LVL225: 2308 .L120: 2309 .LBB45: 2310 .LBB44: 2311 .LBB22: 2312 .LBB24: 2313 .LBB28: 2314 .LBB29: 2315 .LSM197: 2316 00a4 F0E2 ldi r31,lo8(32) 2317 00a6 6F2E mov r6,r31 2318 .LBE29: 2319 .LBE28: 2320 .LSM198: 2321 00a8 E5E0 ldi r30,lo8(5) 2322 00aa 3E2E mov r3,r30 2323 .LBE24: 2324 .LBE22: 2325 .LBB32: 2326 .LSM199: 2327 00ac 7DE0 ldi r23,lo8(13) 2328 00ae 472E mov r4,r23 2329 00b0 512C mov r5,__zero_reg__ 2330 00b2 4C0E add r4,r28 2331 00b4 5D1E adc r5,r29 2332 .LVL226: 2333 .L163: 2334 .LBE32: 2335 .LBB41: 2336 .LBB23: 2337 .LSM200: 2338 00b6 A9A1 ldd r26,Y+33 2339 00b8 BAA1 ldd r27,Y+34 2340 .LVL227: 2341 00ba FD01 movw r30,r26 2342 .LVL228: 2343 00bc 8BE0 ldi r24,lo8(11) 2344 00be 90E0 ldi r25,hi8(11) 2345 .LVL229: 2346 00c0 00C0 rjmp .L122 2347 .LVL230: 2348 .L123: 2349 .LBB27: 2350 .LBB30: 2351 .LSM201: 2352 00c2 6192 st Z+,r6 2353 .L122: 2354 00c4 0197 sbiw r24,1 2355 00c6 2FEF ldi r18,hi8(-1) 2356 00c8 8F3F cpi r24,lo8(-1) 2357 00ca 9207 cpc r25,r18 2358 00cc 01F4 brne .L123 2359 00ce 40E0 ldi r20,lo8(0) 2360 00d0 50E0 ldi r21,hi8(0) 2361 .LVL231: 2362 00d2 AA24 clr r10 2363 00d4 BB24 clr r11 2364 00d6 68E0 ldi r22,lo8(8) 2365 00d8 E62E mov r14,r22 2366 00da F12C mov r15,__zero_reg__ 2367 00dc 10E0 ldi r17,lo8(0) 2368 .LVL232: 2369 .L161: 2370 .LBE30: 2371 .LBE27: 2372 .LSM202: 2373 00de F601 movw r30,r12 2374 00e0 EA0D add r30,r10 2375 00e2 FB1D adc r31,r11 2376 00e4 2081 ld r18,Z 2377 00e6 0894 sec 2378 00e8 A11C adc r10,__zero_reg__ 2379 00ea B11C adc r11,__zero_reg__ 2380 .LSM203: 2381 00ec 2132 cpi r18,lo8(33) 2382 00ee 00F4 brsh .+2 2383 00f0 00C0 rjmp .L124 2384 00f2 2F32 cpi r18,lo8(47) 2385 00f4 01F4 brne .+2 2386 00f6 00C0 rjmp .L125 2387 00f8 2C35 cpi r18,lo8(92) 2388 00fa 01F4 brne .+2 2389 00fc 00C0 rjmp .L125 2390 .LSM204: 2391 00fe 2E32 cpi r18,lo8(46) 2392 0100 01F0 breq .L126 2393 0102 4E15 cp r20,r14 2394 0104 5F05 cpc r21,r15 2395 0106 04F0 brlt .L127 2396 .L126: 2397 .LSM205: 2398 0108 88E0 ldi r24,lo8(8) 2399 010a E816 cp r14,r24 2400 010c F104 cpc r15,__zero_reg__ 2401 .LVL233: 2402 010e 01F0 breq .+2 2403 0110 00C0 rjmp .L128 2404 0112 2E32 cpi r18,lo8(46) 2405 0114 01F0 breq .+2 2406 0116 00C0 rjmp .L128 2407 .LSM206: 2408 0118 110F lsl r17 2409 011a 110F lsl r17 2410 011c 48E0 ldi r20,lo8(8) 2411 011e 50E0 ldi r21,hi8(8) 2412 0120 3BE0 ldi r19,lo8(11) 2413 0122 E32E mov r14,r19 2414 0124 F12C mov r15,__zero_reg__ 2415 .LVL234: 2416 0126 00C0 rjmp .L161 2417 .LVL235: 2418 .L127: 2419 .LSM207: 2420 0128 27FD sbrc r18,7 2421 .LSM208: 2422 012a 1360 ori r17,lo8(3) 2423 .L130: 2424 .LSM209: 2425 012c 822F mov r24,r18 2426 .LVL236: 2427 012e 8158 subi r24,lo8(-(127)) 2428 0130 8F31 cpi r24,lo8(31) 2429 0132 00F0 brlo .L131 2430 0134 8F55 subi r24,lo8(-(-95)) 2431 0136 8D31 cpi r24,lo8(29) 2432 0138 00F4 brsh .L132 2433 .L131: 2434 .LSM210: 2435 013a F601 movw r30,r12 2436 013c EA0D add r30,r10 2437 013e FB1D adc r31,r11 2438 0140 3081 ld r19,Z 2439 .LSM211: 2440 0142 832F mov r24,r19 2441 0144 8054 subi r24,lo8(-(-64)) 2442 0146 8F33 cpi r24,lo8(63) 2443 0148 00F0 brlo .L133 2444 014a 8054 subi r24,lo8(-(-64)) 2445 014c 8D37 cpi r24,lo8(125) 2446 014e 00F0 brlo .+2 2447 0150 00C0 rjmp .L128 2448 .L133: 2449 0152 C701 movw r24,r14 2450 0154 0197 sbiw r24,1 2451 0156 4817 cp r20,r24 2452 0158 5907 cpc r21,r25 2453 015a 04F0 brlt .+2 2454 015c 00C0 rjmp .L128 2455 .LSM212: 2456 015e 0894 sec 2457 0160 A11C adc r10,__zero_reg__ 2458 0162 B11C adc r11,__zero_reg__ 2459 .LSM213: 2460 0164 FD01 movw r30,r26 2461 0166 E40F add r30,r20 2462 0168 F51F adc r31,r21 2463 016a 2083 st Z,r18 2464 016c CA01 movw r24,r20 2465 016e 0196 adiw r24,1 2466 .LVL237: 2467 .LSM214: 2468 0170 FD01 movw r30,r26 2469 0172 E80F add r30,r24 2470 0174 F91F adc r31,r25 2471 0176 3083 st Z,r19 2472 0178 AC01 movw r20,r24 2473 017a 00C0 rjmp .L164 2474 .LVL238: 2475 .L132: 2476 .LSM215: 2477 017c 622F mov r22,r18 2478 017e 70E0 ldi r23,lo8(0) 2479 0180 E0E0 ldi r30,lo8(.LC0) 2480 0182 F0E0 ldi r31,hi8(.LC0) 2481 .LVL239: 2482 0184 00C0 rjmp .L134 2483 .LVL240: 2484 .L136: 2485 .LBB25: 2486 .LBB26: 2487 .LSM216: 2488 0186 3196 adiw r30,1 2489 .LVL241: 2490 .L134: 2491 0188 8081 ld r24,Z 2492 018a 8823 tst r24 2493 018c 01F0 breq .L135 2494 018e 90E0 ldi r25,lo8(0) 2495 .LVL242: 2496 0190 8617 cp r24,r22 2497 0192 9707 cpc r25,r23 2498 0194 01F4 brne .L136 2499 0196 00C0 rjmp .L128 2500 .LVL243: 2501 .L135: 2502 .LBE26: 2503 .LBE25: 2504 .LSM217: 2505 0198 822F mov r24,r18 2506 019a 8154 subi r24,lo8(-(-65)) 2507 019c 8A31 cpi r24,lo8(26) 2508 019e 00F4 brsh .L137 2509 .LSM218: 2510 01a0 1260 ori r17,lo8(2) 2511 01a2 00C0 rjmp .L138 2512 .L137: 2513 .LSM219: 2514 01a4 822F mov r24,r18 2515 01a6 8156 subi r24,lo8(-(-97)) 2516 01a8 8A31 cpi r24,lo8(26) 2517 01aa 00F4 brsh .L138 2518 .LSM220: 2519 01ac 1160 ori r17,lo8(1) 2520 01ae 2052 subi r18,lo8(-(-32)) 2521 .L138: 2522 .LSM221: 2523 01b0 FD01 movw r30,r26 2524 .LVL244: 2525 01b2 E40F add r30,r20 2526 01b4 F51F adc r31,r21 2527 01b6 2083 st Z,r18 2528 .LVL245: 2529 .L164: 2530 01b8 4F5F subi r20,lo8(-(1)) 2531 01ba 5F4F sbci r21,hi8(-(1)) 2532 01bc 00C0 rjmp .L161 2533 .LVL246: 2534 .L124: 2535 01be 912F mov r25,r17 2536 .LVL247: 2537 01c0 64E0 ldi r22,lo8(4) 2538 .LVL248: 2539 .L158: 2540 .LSM222: 2541 01c2 452B or r20,r21 2542 01c4 01F4 brne .+2 2543 01c6 00C0 rjmp .L128 2544 .LSM223: 2545 01c8 8C91 ld r24,X 2546 .LVL249: 2547 01ca 853E cpi r24,lo8(-27) 2548 01cc 01F4 brne .L139 2549 01ce 3C92 st X,r3 2550 .L139: 2551 .LSM224: 2552 01d0 E8E0 ldi r30,lo8(8) 2553 01d2 EE16 cp r14,r30 2554 01d4 F104 cpc r15,__zero_reg__ 2555 01d6 01F4 brne .L140 2556 01d8 912F mov r25,r17 2557 01da 990F lsl r25 2558 01dc 990F lsl r25 2559 .LVL250: 2560 .L140: 2561 .LSM225: 2562 01de 292F mov r18,r25 2563 01e0 30E0 ldi r19,lo8(0) 2564 .LVL251: 2565 01e2 C901 movw r24,r18 2566 01e4 8370 andi r24,lo8(3) 2567 01e6 9070 andi r25,hi8(3) 2568 01e8 0197 sbiw r24,1 2569 01ea 01F4 brne .L141 2570 01ec 6061 ori r22,lo8(16) 2571 .L141: 2572 .LSM226: 2573 01ee 2C70 andi r18,lo8(12) 2574 01f0 3070 andi r19,hi8(12) 2575 01f2 2430 cpi r18,4 2576 01f4 3105 cpc r19,__zero_reg__ 2577 01f6 01F4 brne .L142 2578 01f8 6860 ori r22,lo8(8) 2579 .L142: 2580 .LSM227: 2581 01fa 1B96 adiw r26,11 2582 01fc 6C93 st X,r22 2583 .LBE23: 2584 .LBE41: 2585 .LBB42: 2586 .LSM228: 2587 01fe C201 movw r24,r4 2588 0200 60E0 ldi r22,lo8(0) 2589 0202 70E0 ldi r23,hi8(0) 2590 .LVL252: 2591 0204 0E94 0000 call dir_seek 2592 .LVL253: 2593 0208 482F mov r20,r24 2594 .LVL254: 2595 .LBB33: 2596 .LSM229: 2597 020a 8823 tst r24 2598 020c 01F0 breq .+2 2599 020e 00C0 rjmp .L143 2600 .LVL255: 2601 .L162: 2602 .LBE33: 2603 .LSM230: 2604 0210 4B8D ldd r20,Y+27 2605 0212 5C8D ldd r21,Y+28 2606 0214 6D8D ldd r22,Y+29 2607 0216 7E8D ldd r23,Y+30 2608 .LVL256: 2609 0218 8D85 ldd r24,Y+13 2610 021a 9E85 ldd r25,Y+14 2611 .LVL257: 2612 021c 0E94 0000 call move_window 2613 .LVL258: 2614 0220 482F mov r20,r24 2615 .LVL259: 2616 .LBB40: 2617 .LSM231: 2618 0222 8823 tst r24 2619 0224 01F0 breq .+2 2620 0226 00C0 rjmp .L143 2621 .LVL260: 2622 .LSM232: 2623 0228 EF8D ldd r30,Y+31 2624 022a F8A1 ldd r31,Y+32 2625 .LVL261: 2626 .LSM233: 2627 022c 8081 ld r24,Z 2628 .LVL262: 2629 022e 8823 tst r24 2630 0230 01F4 brne .+2 2631 0232 00C0 rjmp .L147 2632 .L144: 2633 .LSM234: 2634 0234 8385 ldd r24,Z+11 2635 0236 83FD sbrc r24,3 2636 0238 00C0 rjmp .L145 2637 023a 89A1 ldd r24,Y+33 2638 .LVL263: 2639 023c 9AA1 ldd r25,Y+34 2640 .LVL264: 2641 023e 9C01 movw r18,r24 2642 .LVL265: 2643 0240 D901 movw r26,r18 2644 .LVL266: 2645 0242 2BE0 ldi r18,lo8(11) 2646 0244 30E0 ldi r19,hi8(11) 2647 .LVL267: 2648 .L146: 2649 .LBB34: 2650 .LBB35: 2651 .LSM235: 2652 0246 2150 subi r18,lo8(-(-1)) 2653 0248 3040 sbci r19,hi8(-(-1)) 2654 024a 8FEF ldi r24,hi8(-1) 2655 024c 2F3F cpi r18,lo8(-1) 2656 024e 3807 cpc r19,r24 2657 0250 01F4 brne .+2 2658 0252 00C0 rjmp .L143 2659 0254 9081 ld r25,Z 2660 .LVL268: 2661 0256 8C91 ld r24,X 2662 0258 9817 cp r25,r24 2663 025a 01F4 brne .L145 2664 025c 3196 adiw r30,1 2665 .LVL269: 2666 025e 1196 adiw r26,1 2667 0260 00C0 rjmp .L146 2668 .LVL270: 2669 .L145: 2670 .LBE35: 2671 .LBE34: 2672 .LBB36: 2673 .LBB37: 2674 .LSM236: 2675 0262 0989 ldd r16,Y+17 2676 0264 1A89 ldd r17,Y+18 2677 0266 0F5F subi r16,lo8(-(1)) 2678 0268 1F4F sbci r17,hi8(-(1)) 2679 .LSM237: 2680 026a 01F4 brne .+2 2681 026c 00C0 rjmp .L147 2682 026e 8B8D ldd r24,Y+27 2683 0270 9C8D ldd r25,Y+28 2684 0272 AD8D ldd r26,Y+29 2685 0274 BE8D ldd r27,Y+30 2686 0276 0097 sbiw r24,0 2687 0278 A105 cpc r26,__zero_reg__ 2688 027a B105 cpc r27,__zero_reg__ 2689 027c 01F4 brne .+2 2690 027e 00C0 rjmp .L147 2691 .LSM238: 2692 0280 2FE0 ldi r18,lo8(15) 2693 0282 E22E mov r14,r18 2694 0284 F12C mov r15,__zero_reg__ 2695 .LVL271: 2696 0286 E022 and r14,r16 2697 0288 F122 and r15,r17 2698 028a E114 cp r14,__zero_reg__ 2699 028c F104 cpc r15,__zero_reg__ 2700 028e 01F0 breq .+2 2701 0290 00C0 rjmp .L148 2702 .LSM239: 2703 0292 0196 adiw r24,1 2704 0294 A11D adc r26,__zero_reg__ 2705 0296 B11D adc r27,__zero_reg__ 2706 0298 8B8F std Y+27,r24 2707 029a 9C8F std Y+28,r25 2708 029c AD8F std Y+29,r26 2709 029e BE8F std Y+30,r27 2710 .LSM240: 2711 02a0 4F89 ldd r20,Y+23 2712 02a2 588D ldd r21,Y+24 2713 02a4 698D ldd r22,Y+25 2714 02a6 7A8D ldd r23,Y+26 2715 .LVL272: 2716 02a8 ED85 ldd r30,Y+13 2717 02aa FE85 ldd r31,Y+14 2718 .LVL273: 2719 02ac 4115 cp r20,__zero_reg__ 2720 02ae 5105 cpc r21,__zero_reg__ 2721 02b0 6105 cpc r22,__zero_reg__ 2722 02b2 7105 cpc r23,__zero_reg__ 2723 02b4 01F4 brne .L149 2724 .LSM241: 2725 02b6 8085 ldd r24,Z+8 2726 02b8 9185 ldd r25,Z+9 2727 02ba 0817 cp r16,r24 2728 02bc 1907 cpc r17,r25 2729 02be 00F0 brlo .L148 2730 02c0 00C0 rjmp .L147 2731 .L149: 2732 .LSM242: 2733 02c2 8281 ldd r24,Z+2 2734 02c4 90E0 ldi r25,lo8(0) 2735 02c6 0197 sbiw r24,1 2736 02c8 9801 movw r18,r16 2737 02ca A4E0 ldi r26,4 2738 02cc 3695 1: lsr r19 2739 02ce 2795 ror r18 2740 02d0 AA95 dec r26 2741 02d2 01F4 brne 1b 2742 .LVL274: 2743 02d4 8223 and r24,r18 2744 02d6 9323 and r25,r19 2745 02d8 892B or r24,r25 2746 02da 01F4 brne .L148 2747 .LBE37: 2748 .LSM243: 2749 02dc CF01 movw r24,r30 2750 02de 0E94 0000 call get_fat 2751 02e2 AB01 movw r20,r22 2752 02e4 BC01 movw r22,r24 2753 .LVL275: 2754 .LBB38: 2755 .LSM244: 2756 02e6 4230 cpi r20,lo8(2) 2757 02e8 5105 cpc r21,__zero_reg__ 2758 02ea 6105 cpc r22,__zero_reg__ 2759 02ec 7105 cpc r23,__zero_reg__ 2760 02ee 00F4 brsh .L150 2761 02f0 42E0 ldi r20,lo8(2) 2762 .LVL276: 2763 02f2 00C0 rjmp .L143 2764 .LVL277: 2765 .L150: 2766 .LSM245: 2767 02f4 4F3F cpi r20,lo8(-1) 2768 02f6 9FEF ldi r25,hi8(-1) 2769 02f8 5907 cpc r21,r25 2770 02fa 9FEF ldi r25,hlo8(-1) 2771 02fc 6907 cpc r22,r25 2772 02fe 9FEF ldi r25,hhi8(-1) 2773 0300 7907 cpc r23,r25 2774 0302 01F4 brne .L151 2775 0304 41E0 ldi r20,lo8(1) 2776 .LVL278: 2777 0306 00C0 rjmp .L143 2778 .LVL279: 2779 .L151: 2780 .LSM246: 2781 0308 ED85 ldd r30,Y+13 2782 030a FE85 ldd r31,Y+14 2783 030c 8685 ldd r24,Z+14 2784 030e 9785 ldd r25,Z+15 2785 0310 A089 ldd r26,Z+16 2786 0312 B189 ldd r27,Z+17 2787 0314 4817 cp r20,r24 2788 0316 5907 cpc r21,r25 2789 0318 6A07 cpc r22,r26 2790 031a 7B07 cpc r23,r27 2791 031c 00F4 brsh .L147 2792 .LSM247: 2793 031e 4F8B std Y+23,r20 2794 0320 588F std Y+24,r21 2795 0322 698F std Y+25,r22 2796 0324 7A8F std Y+26,r23 2797 .LBE38: 2798 .LSM248: 2799 0326 CF01 movw r24,r30 2800 0328 0E94 0000 call clust2sect 2801 .LVL280: 2802 .LBB39: 2803 032c 6B8F std Y+27,r22 2804 032e 7C8F std Y+28,r23 2805 0330 8D8F std Y+29,r24 2806 0332 9E8F std Y+30,r25 2807 .LVL281: 2808 .L148: 2809 .LSM249: 2810 0334 1A8B std Y+18,r17 2811 0336 098B std Y+17,r16 2812 .LSM250: 2813 0338 75E0 ldi r23,5 2814 033a EE0C 1: lsl r14 2815 033c FF1C rol r15 2816 033e 7A95 dec r23 2817 0340 01F4 brne 1b 2818 0342 A2E2 ldi r26,lo8(34) 2819 0344 B0E0 ldi r27,hi8(34) 2820 .LVL282: 2821 0346 EA0E add r14,r26 2822 0348 FB1E adc r15,r27 2823 034a 8D85 ldd r24,Y+13 2824 034c 9E85 ldd r25,Y+14 2825 034e 8E0D add r24,r14 2826 0350 9F1D adc r25,r15 2827 0352 98A3 std Y+32,r25 2828 0354 8F8F std Y+31,r24 2829 0356 00C0 rjmp .L162 2830 .LVL283: 2831 .L147: 2832 0358 44E0 ldi r20,lo8(4) 2833 .LVL284: 2834 .L143: 2835 .LBE39: 2836 .LBE36: 2837 .LBE40: 2838 .LBE42: 2839 .LSM251: 2840 035a E9A1 ldd r30,Y+33 2841 035c FAA1 ldd r31,Y+34 2842 .LVL285: 2843 035e 9385 ldd r25,Z+11 2844 .LVL286: 2845 0360 9470 andi r25,lo8(4) 2846 .LSM252: 2847 0362 4423 tst r20 2848 0364 01F0 breq .L153 2849 0366 842F mov r24,r20 2850 .LSM253: 2851 0368 4430 cpi r20,lo8(4) 2852 036a 01F0 breq .+2 2853 036c 00C0 rjmp .L115 2854 036e 9923 tst r25 2855 0370 01F4 brne .+2 2856 0372 00C0 rjmp .L155 2857 0374 00C0 rjmp .L115 2858 .L153: 2859 .LSM254: 2860 0376 9923 tst r25 2861 0378 01F4 brne .L156 2862 .LSM255: 2863 037a EF8D ldd r30,Y+31 2864 037c F8A1 ldd r31,Y+32 2865 .LVL287: 2866 .LSM256: 2867 037e 8385 ldd r24,Z+11 2868 0380 84FF sbrs r24,4 2869 0382 00C0 rjmp .L155 2870 .LBB43: 2871 .LBB31: 2872 .LSM257: 2873 0384 CA0C add r12,r10 2874 0386 DB1C adc r13,r11 2875 .LBE31: 2876 .LBE43: 2877 .LSM258: 2878 0388 8489 ldd r24,Z+20 2879 038a 9589 ldd r25,Z+21 2880 038c A0E0 ldi r26,lo8(0) 2881 038e B0E0 ldi r27,hi8(0) 2882 .LVL288: 2883 0390 DC01 movw r26,r24 2884 0392 9927 clr r25 2885 0394 8827 clr r24 2886 0396 228D ldd r18,Z+26 2887 0398 338D ldd r19,Z+27 2888 .LVL289: 2889 039a 40E0 ldi r20,lo8(0) 2890 039c 50E0 ldi r21,hi8(0) 2891 .LVL290: 2892 039e 822B or r24,r18 2893 03a0 932B or r25,r19 2894 03a2 A42B or r26,r20 2895 03a4 B52B or r27,r21 2896 03a6 8B8B std Y+19,r24 2897 03a8 9C8B std Y+20,r25 2898 03aa AD8B std Y+21,r26 2899 03ac BE8B std Y+22,r27 2900 03ae 00C0 rjmp .L163 2901 .LVL291: 2902 .L160: 2903 .LSM259: 2904 03b0 18A2 std Y+32,__zero_reg__ 2905 03b2 1F8E std Y+31,__zero_reg__ 2906 .LVL292: 2907 .L156: 2908 .LBE44: 2909 .LBE45: 2910 .LSM260: 2911 03b4 EF8D ldd r30,Y+31 2912 03b6 F8A1 ldd r31,Y+32 2913 .LVL293: 2914 .LSM261: 2915 03b8 3097 sbiw r30,0 2916 03ba 01F4 brne .+2 2917 03bc 00C0 rjmp .L157 2918 03be 8385 ldd r24,Z+11 2919 .LVL294: 2920 03c0 84FD sbrc r24,4 2921 03c2 00C0 rjmp .L157 2922 .LSM262: 2923 03c4 B1E0 ldi r27,lo8(1) 2924 03c6 7B22 and r7,r27 2925 03c8 D401 movw r26,r8 2926 .LVL295: 2927 03ca 1496 adiw r26,4 2928 03cc 7C92 st X,r7 2929 .LSM263: 2930 03ce 8489 ldd r24,Z+20 2931 03d0 9589 ldd r25,Z+21 2932 03d2 A0E0 ldi r26,lo8(0) 2933 03d4 B0E0 ldi r27,hi8(0) 2934 03d6 8C01 movw r16,r24 2935 03d8 FF24 clr r15 2936 03da EE24 clr r14 2937 .LVL296: 2938 03dc 228D ldd r18,Z+26 2939 03de 338D ldd r19,Z+27 2940 .LVL297: 2941 03e0 40E0 ldi r20,lo8(0) 2942 03e2 50E0 ldi r21,hi8(0) 2943 .LVL298: 2944 03e4 E22A or r14,r18 2945 03e6 F32A or r15,r19 2946 03e8 042B or r16,r20 2947 03ea 152B or r17,r21 2948 03ec D401 movw r26,r8 2949 03ee 1E96 adiw r26,14 2950 03f0 ED92 st X+,r14 2951 03f2 FD92 st X+,r15 2952 03f4 0D93 st X+,r16 2953 03f6 1C93 st X,r17 2954 03f8 5197 sbiw r26,14+3 2955 .LSM264: 2956 03fa 848D ldd r24,Z+28 2957 03fc 958D ldd r25,Z+29 2958 03fe A68D ldd r26,Z+30 2959 0400 B78D ldd r27,Z+31 2960 0402 F401 movw r30,r8 2961 .LVL299: 2962 0404 8287 std Z+10,r24 2963 0406 9387 std Z+11,r25 2964 0408 A487 std Z+12,r26 2965 040a B587 std Z+13,r27 2966 .LSM265: 2967 040c D401 movw r26,r8 2968 040e 1696 adiw r26,6 2969 0410 1D92 st X+,__zero_reg__ 2970 0412 1D92 st X+,__zero_reg__ 2971 0414 1D92 st X+,__zero_reg__ 2972 0416 1C92 st X,__zero_reg__ 2973 0418 1997 sbiw r26,6+3 2974 041a 8FEF ldi r24,lo8(-1) 2975 041c 1596 adiw r26,5 2976 041e 8C93 st X,r24 2977 0420 1597 sbiw r26,5 2978 .LSM266: 2979 0422 168A std Z+22,__zero_reg__ 2980 0424 178A std Z+23,__zero_reg__ 2981 0426 108E std Z+24,__zero_reg__ 2982 0428 118E std Z+25,__zero_reg__ 2983 .LSM267: 2984 042a ED85 ldd r30,Y+13 2985 042c FE85 ldd r31,Y+14 2986 042e 1196 adiw r26,1 2987 0430 FC93 st X,r31 2988 0432 EE93 st -X,r30 2989 0434 8681 ldd r24,Z+6 2990 0436 9781 ldd r25,Z+7 2991 0438 1396 adiw r26,2+1 2992 043a 9C93 st X,r25 2993 043c 8E93 st -X,r24 2994 043e 1297 sbiw r26,2 2995 0440 80E0 ldi r24,lo8(0) 2996 .LVL300: 2997 0442 00C0 rjmp .L115 2998 .LVL301: 2999 .L157: 3000 .LSM268: 3001 0444 84E0 ldi r24,lo8(4) 3002 .LVL302: 3003 .L115: 3004 .LVL303: 3005 /* epilogue start */ 3006 .LSM269: 3007 0446 A496 adiw r28,36 3008 0448 0FB6 in __tmp_reg__,__SREG__ 3009 044a F894 cli 3010 044c DEBF out __SP_H__,r29 3011 044e 0FBE out __SREG__,__tmp_reg__ 3012 0450 CDBF out __SP_L__,r28 3013 0452 CF91 pop r28 3014 0454 DF91 pop r29 3015 0456 1F91 pop r17 3016 .LVL304: 3017 0458 0F91 pop r16 3018 .LVL305: 3019 045a FF90 pop r15 3020 045c EF90 pop r14 3021 .LVL306: 3022 045e DF90 pop r13 3023 0460 CF90 pop r12 3024 .LVL307: 3025 0462 BF90 pop r11 3026 0464 AF90 pop r10 3027 .LVL308: 3028 0466 9F90 pop r9 3029 0468 8F90 pop r8 3030 .LVL309: 3031 046a 7F90 pop r7 3032 .LVL310: 3033 046c 6F90 pop r6 3034 046e 5F90 pop r5 3035 0470 4F90 pop r4 3036 0472 3F90 pop r3 3037 0474 0895 ret 3038 .LVL311: 3039 .L155: 3040 .LSM270: 3041 0476 85E0 ldi r24,lo8(5) 3042 .LVL312: 3043 0478 00C0 rjmp .L115 3044 .LVL313: 3045 .L128: 3046 047a 86E0 ldi r24,lo8(6) 3047 .LVL314: 3048 047c 00C0 rjmp .L115 3049 .LVL315: 3050 .L125: 3051 047e 912F mov r25,r17 3052 .LVL316: 3053 0480 60E0 ldi r22,lo8(0) 3054 .LVL317: 3055 0482 00C0 rjmp .L158 3056 .LFE70: 3058 .lcomm FatFs,2 3059 .lcomm Fsid,2 3172 .Letext0: DEFINED SYMBOLS *ABS*:00000000 ff.c C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:2 *ABS*:0000003f __SREG__ C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:3 *ABS*:0000003e __SP_H__ C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:4 *ABS*:0000003d __SP_L__ C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:5 *ABS*:00000034 __CCP__ C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:6 *ABS*:00000000 __tmp_reg__ C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:7 *ABS*:00000001 __zero_reg__ C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:19 .text.clust2sect:00000000 clust2sect C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:101 .text.f_mount:00000000 f_mount .bss:00000000 FatFs C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:144 .text.validate:00000000 validate C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:184 .text.f_close:00000000 f_close C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:218 .text.move_window:00000000 move_window C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:292 .text.get_fat:00000000 get_fat C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:545 .text.f_lseek:00000000 f_lseek C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:1021 .text.dir_seek:00000000 dir_seek C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:1270 .text.f_read:00000000 f_read C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:1694 .text.check_fs:00000000 check_fs C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:1779 .text.chk_mounted:00000000 chk_mounted C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:3058 .bss:00000002 Fsid C:\Users\Dean\AppData\Local\Temp/cchqutwM.s:2194 .text.f_open:00000000 f_open UNDEFINED SYMBOLS __mulsi3 disk_status disk_read __udivmodsi4 disk_initialize __do_copy_data __do_clear_bss