📄 fat.lis
字号:
0464 .dbline 113
0464 ; break;
0464 95C4 xjmp L62
0466 L66:
0466 .dbline 116
0466 ; }
0466 ;
0466 ; if((Fat_Buffer[tem] != 0xe5) && (Fat_Buffer[tem] != 0x05)) //文件没有删除
0466 80E0 ldi R24,<_Fat_Buffer
0468 90E0 ldi R25,>_Fat_Buffer
046A FE01 movw R30,R28
046C AF93 push R26
046E BF93 push R27
0470 A281 ldd R26,z+2
0472 B381 ldd R27,z+3
0474 FD01 movw R30,R26
0476 BF91 pop R27
0478 AF91 pop R26
047A E80F add R30,R24
047C F91F adc R31,R25
047E 2080 ldd R2,z+0
0480 3324 clr R3
0482 822D mov R24,R2
0484 853E cpi R24,229
0486 09F4 brne X5
0488 70C4 xjmp L68
048A X5:
048A 8530 cpi R24,5
048C 09F4 brne X6
048E 6DC4 xjmp L68
0490 X6:
0490 .dbline 117
0490 ; {
0490 .dbline 118
0490 ; if(Fat_Buffer[tem+11]!= 0x0F) //文件不为长文件名的一部分
0490 4BE0 ldi R20,11
0492 50E0 ldi R21,0
0494 60E0 ldi R22,0
0496 70E0 ldi R23,0
0498 FE01 movw R30,R28
049A 2280 ldd R2,z+2
049C 3380 ldd R3,z+3
049E 4480 ldd R4,z+4
04A0 5580 ldd R5,z+5
04A2 240E add R2,R20
04A4 351E adc R3,R21
04A6 461E adc R4,R22
04A8 571E adc R5,R23
04AA F101 movw R30,R2
04AC 80E0 ldi R24,<_Fat_Buffer
04AE 90E0 ldi R25,>_Fat_Buffer
04B0 E80F add R30,R24
04B2 F91F adc R31,R25
04B4 8081 ldd R24,z+0
04B6 8F30 cpi R24,15
04B8 09F4 brne X7
04BA C5C1 xjmp L70
04BC X7:
04BC .dbline 119
04BC ; {
04BC .dbline 120
04BC ; for(i=0;i<3;i++) //读取该文件的扩展名
04BC 0024 clr R0
04BE 1124 clr R1
04C0 188E std y+24,R1
04C2 0F8A std y+23,R0
04C4 26C0 xjmp L75
04C6 L72:
04C6 .dbline 121
04C6 .dbline 122
04C6 48E0 ldi R20,8
04C8 50E0 ldi R21,0
04CA 60E0 ldi R22,0
04CC 70E0 ldi R23,0
04CE FE01 movw R30,R28
04D0 2280 ldd R2,z+2
04D2 3380 ldd R3,z+3
04D4 4480 ldd R4,z+4
04D6 5580 ldd R5,z+5
04D8 240E add R2,R20
04DA 351E adc R3,R21
04DC 461E adc R4,R22
04DE 571E adc R5,R23
04E0 6F88 ldd R6,y+23
04E2 788C ldd R7,y+24
04E4 8824 clr R8
04E6 9924 clr R9
04E8 260C add R2,R6
04EA 371C adc R3,R7
04EC 481C adc R4,R8
04EE 591C adc R5,R9
04F0 F101 movw R30,R2
04F2 80E0 ldi R24,<_Fat_Buffer
04F4 90E0 ldi R25,>_Fat_Buffer
04F6 E80F add R30,R24
04F8 F91F adc R31,R25
04FA 2080 ldd R2,z+0
04FC CE01 movw R24,R28
04FE 4296 adiw R24,18
0500 F301 movw R30,R6
0502 E80F add R30,R24
0504 F91F adc R31,R25
0506 2082 std z+0,R2
0508 .dbline 124
0508 L73:
0508 .dbline 120
0508 8F89 ldd R24,y+23
050A 988D ldd R25,y+24
050C 0196 adiw R24,1
050E 988F std y+24,R25
0510 8F8B std y+23,R24
0512 L75:
0512 .dbline 120
0512 8F89 ldd R24,y+23
0514 988D ldd R25,y+24
0516 8330 cpi R24,3
0518 E0E0 ldi R30,0
051A 9E07 cpc R25,R30
051C A0F2 brlo L72
051E .dbline 126
051E ; {
051E ; FileExt[i] = Fat_Buffer[tem+8+i];
051E ;
051E ; }
051E ;
051E ; if(FileExt_Compare(FileExt,"MP3")) //如果该文件是MP3
051E 20E0 ldi R18,<L78
0520 30E0 ldi R19,>L78
0522 8E01 movw R16,R28
0524 0E5E subi R16,238 ; offset = 18
0526 1F4F sbci R17,255
0528 02DF xcall _FileExt_Compare
052A 0023 tst R16
052C 09F4 brne X8
052E 1DC4 xjmp L71
0530 X8:
0530 .dbline 127
0530 ; {
0530 .dbline 128
0530 ; for(i=0;;i++) //将文件名赋值给音乐列表的文件名项
0530 0024 clr R0
0532 1124 clr R1
0534 188E std y+24,R1
0536 0F8A std y+23,R0
0538 L79:
0538 .dbline 129
0538 ; {
0538 .dbline 130
0538 ; if(Fat_Buffer[tem+i] == 0x20 || i>=8)
0538 2F88 ldd R2,y+23
053A 388C ldd R3,y+24
053C 4424 clr R4
053E 5524 clr R5
0540 FE01 movw R30,R28
0542 6280 ldd R6,z+2
0544 7380 ldd R7,z+3
0546 8480 ldd R8,z+4
0548 9580 ldd R9,z+5
054A 620C add R6,R2
054C 731C adc R7,R3
054E 841C adc R8,R4
0550 951C adc R9,R5
0552 F301 movw R30,R6
0554 80E0 ldi R24,<_Fat_Buffer
0556 90E0 ldi R25,>_Fat_Buffer
0558 E80F add R30,R24
055A F91F adc R31,R25
055C 8081 ldd R24,z+0
055E 8032 cpi R24,32
0560 31F0 breq L85
0562 C101 movw R24,R2
0564 8830 cpi R24,8
0566 E0E0 ldi R30,0
0568 9E07 cpc R25,R30
056A 08F4 brsh X9
056C 48C0 xjmp L83
056E X9:
056E L85:
056E .dbline 131
056E ; {
056E .dbline 132
056E ; MusicInfoList[LocalOfMusic].FileName[i] = '.';
056E 09E2 ldi R16,41
0570 10E0 ldi R17,0
0572 2B8D ldd R18,y+27
0574 3C8D ldd R19,y+28
0576 0E940000 xcall empy16s
057A 1801 movw R2,R16
057C 80E0 ldi R24,<_MusicInfoList
057E 90E0 ldi R25,>_MusicInfoList
0580 280E add R2,R24
0582 391E adc R3,R25
0584 EF89 ldd R30,y+23
0586 F88D ldd R31,y+24
0588 E20D add R30,R2
058A F31D adc R31,R3
058C 8EE2 ldi R24,46
058E 8083 std z+0,R24
0590 .dbline 133
0590 ; MusicInfoList[LocalOfMusic].FileName[i+1] = 'm';
0590 09E2 ldi R16,41
0592 10E0 ldi R17,0
0594 2B8D ldd R18,y+27
0596 3C8D ldd R19,y+28
0598 0E940000 xcall empy16s
059C 1801 movw R2,R16
059E 80E0 ldi R24,<_MusicInfoList
05A0 90E0 ldi R25,>_MusicInfoList
05A2 280E add R2,R24
05A4 391E adc R3,R25
05A6 EF89 ldd R30,y+23
05A8 F88D ldd R31,y+24
05AA 3196 adiw R30,1
05AC E20D add R30,R2
05AE F31D adc R31,R3
05B0 8DE6 ldi R24,109
05B2 8083 std z+0,R24
05B4 .dbline 134
05B4 ; MusicInfoList[LocalOfMusic].FileName[i+2] = 'p';
05B4 09E2 ldi R16,41
05B6 10E0 ldi R17,0
05B8 2B8D ldd R18,y+27
05BA 3C8D ldd R19,y+28
05BC 0E940000 xcall empy16s
05C0 1801 movw R2,R16
05C2 80E0 ldi R24,<_MusicInfoList
05C4 90E0 ldi R25,>_MusicInfoList
05C6 280E add R2,R24
05C8 391E adc R3,R25
05CA EF89 ldd R30,y+23
05CC F88D ldd R31,y+24
05CE 3296 adiw R30,2
05D0 E20D add R30,R2
05D2 F31D adc R31,R3
05D4 80E7 ldi R24,112
05D6 8083 std z+0,R24
05D8 .dbline 135
05D8 ; MusicInfoList[LocalOfMusic].FileName[i+3] = '3';
05D8 09E2 ldi R16,41
05DA 10E0 ldi R17,0
05DC 2B8D ldd R18,y+27
05DE 3C8D ldd R19,y+28
05E0 0E940000 xcall empy16s
05E4 1801 movw R2,R16
05E6 80E0 ldi R24,<_MusicInfoList
05E8 90E0 ldi R25,>_MusicInfoList
05EA 280E add R2,R24
05EC 391E adc R3,R25
05EE EF89 ldd R30,y+23
05F0 F88D ldd R31,y+24
05F2 3396 adiw R30,3
05F4 E20D add R30,R2
05F6 F31D adc R31,R3
05F8 83E3 ldi R24,51
05FA 8083 std z+0,R24
05FC .dbline 136
05FC ; break;
05FC 2AC0 xjmp L81
05FE L83:
05FE .dbline 138
05FE 09E2 ldi R16,41
0600 10E0 ldi R17,0
0602 2B8D ldd R18,y+27
0604 3C8D ldd R19,y+28
0606 0E940000 xcall empy16s
060A 1801 movw R2,R16
060C 80E0 ldi R24,<_MusicInfoList
060E 90E0 ldi R25,>_MusicInfoList
0610 280E add R2,R24
0612 391E adc R3,R25
0614 EF89 ldd R30,y+23
0616 F88D ldd R31,y+24
0618 E20D add R30,R2
061A F31D adc R31,R3
061C 2F88 ldd R2,y+23
061E 388C ldd R3,y+24
0620 4424 clr R4
0622 5524 clr R5
0624 DE01 movw R26,R28
0626 1296 adiw R26,2
0628 6D90 ld R6,x+
062A 7D90 ld R7,x+
062C 8D90 ld R8,x+
062E 9C90 ld R9,x
0630 620C add R6,R2
0632 731C adc R7,R3
0634 841C adc R8,R4
0636 951C adc R9,R5
0638 D301 movw R26,R6
063A 80E0 ldi R24,<_Fat_Buffer
063C 90E0 ldi R25,>_Fat_Buffer
063E A80F add R26,R24
0640 B91F adc R27,R25
0642 2C90 ld R2,x
0644 2082 std z+0,R2
0646 .dbline 139
0646 L80:
0646 .dbline 128
0646 8F89 ldd R24,y+23
0648 988D ldd R25,y+24
064A 0196 adiw R24,1
064C 988F std y+24,R25
064E 8F8B std y+23,R24
0650 .dbline 128
0650 73CF xjmp L79
0652 L81:
0652 .dbline 141
0652 ; }
0652 ; MusicInfoList[LocalOfMusic].FileName[i]=Fat_Buffer[tem+i];
0652 ; }
0652 ; //将文件的起始簇号赋值给音乐列表的起始簇号项
0652 ; MusicInfoList[LocalOfMusic].FileStartClustor = Fat_Buffer[tem+0x1A]|Fat_Buffer[tem+0x1B]<<8|((uint32)Fat_Buffer[tem+0x14]<<16) | ((uint32)Fat_Buffer[tem+0x15]<<24) ;
0652 4BE1 ldi R20,27
0654 50E0 ldi R21,0
0656 60E0 ldi R22,0
0658 70E0 ldi R23,0
065A FE01 movw R30,R28
065C 2280 ldd R2,z+2
065E 3380 ldd R3,z+3
0660 4480 ldd R4,z+4
0662 5580 ldd R5,z+5
0664 240E add R2,R20
0666 351E adc R3,R21
0668 461E adc R4,R22
066A 571E adc R5,R23
066C F101 movw R30,R2
066E 80E0 ldi R24,<_Fat_Buffer
0670 90E0 ldi R25,>_Fat_Buffer
0672 E80F add R30,R24
0674 F91F adc R31,R25
0676 2080 ldd R2,z+0
0678 3324 clr R3
067A 322C mov R3,R2
067C 2224 clr R2
067E 4AE1 ldi R20,26
0680 50E0 ldi R21,0
0682 60E0 ldi R22,0
0684 70E0 ldi R23,0
0686 FE01 movw R30,R28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -