📄 mp3.lst
字号:
0623 01F1 MOVW R30,R2
0624 0FE8 ADD R30,R24
0625 1FF9 ADC R31,R25
0626 8240 STD Z+0,R4
0627 01C6 MOVW R24,R12
0628 9601 ADIW R24,1
0629 016C MOVW R12,R24
062A 01C6 MOVW R24,R12
062B 3085 CPI R24,5
062C E0E0 LDI R30,0
062D 079E CPC R25,R30
062E F310 BCS 0x0611
(0097) for (j=0;j<6;j++) File.Name[LongFilePtr++] = Entry.Win.Part2[j];
062F 24CC CLR R12
0630 24DD CLR R13
0631 C019 RJMP 0x064B
0632 0115 MOVW R2,R10
0633 01C1 MOVW R24,R2
0634 9601 ADIW R24,1
0635 015C MOVW R10,R24
0636 E002 LDI R16,2
0637 E010 LDI R17,0
0638 0196 MOVW R18,R12
0639 940E1585 CALL empy16s
063B 01F8 MOVW R30,R16
063C 01CE MOVW R24,R28
063D 9646 ADIW R24,0x16
063E 0FE8 ADD R30,R24
063F 1FF9 ADC R31,R25
0640 8040 LDD R4,Z+0
0641 8051 LDD R5,Z+1
0642 E284 LDI R24,0x24
0643 E092 LDI R25,2
0644 01F1 MOVW R30,R2
0645 0FE8 ADD R30,R24
0646 1FF9 ADC R31,R25
0647 8240 STD Z+0,R4
0648 01C6 MOVW R24,R12
0649 9601 ADIW R24,1
064A 016C MOVW R12,R24
064B 01C6 MOVW R24,R12
064C 3086 CPI R24,6
064D E0E0 LDI R30,0
064E 079E CPC R25,R30
064F F310 BCS 0x0632
(0098) for (j=0;j<2;j++) File.Name[LongFilePtr++] = Entry.Win.Part3[j];
0650 24CC CLR R12
0651 24DD CLR R13
0652 C019 RJMP 0x066C
0653 0115 MOVW R2,R10
0654 01C1 MOVW R24,R2
0655 9601 ADIW R24,1
0656 015C MOVW R10,R24
0657 E002 LDI R16,2
0658 E010 LDI R17,0
0659 0196 MOVW R18,R12
065A 940E1585 CALL empy16s
065C 01F8 MOVW R30,R16
065D 01CE MOVW R24,R28
065E 9684 ADIW R24,0x24
065F 0FE8 ADD R30,R24
0660 1FF9 ADC R31,R25
0661 8040 LDD R4,Z+0
0662 8051 LDD R5,Z+1
0663 E284 LDI R24,0x24
0664 E092 LDI R25,2
0665 01F1 MOVW R30,R2
0666 0FE8 ADD R30,R24
0667 1FF9 ADC R31,R25
0668 8240 STD Z+0,R4
0669 01C6 MOVW R24,R12
066A 9601 ADIW R24,1
066B 016C MOVW R12,R24
066C 01C6 MOVW R24,R12
066D 3082 CPI R24,2
066E E0E0 LDI R30,0
066F 079E CPC R25,R30
0670 F310 BCS 0x0653
(0099) if (Entry.Win.Cnt & 0x40) File.Name[LongFilePtr++] = 0x00;
0671 8428 LDD R2,Y+8
0672 FE26 SBRS R2,6
0673 C0DB RJMP 0x074F
0674 0115 MOVW R2,R10
0675 01C1 MOVW R24,R2
0676 9601 ADIW R24,1
0677 015C MOVW R10,R24
0678 E284 LDI R24,0x24
0679 E092 LDI R25,2
067A 01F1 MOVW R30,R2
067B 0FE8 ADD R30,R24
067C 1FF9 ADC R31,R25
067D 2422 CLR R2
067E 8220 STD Z+0,R2
(0100) }
067F C0CF RJMP 0x074F
(0101) else
(0102) {
(0103) if ((Entry.Dir.Name[0] != SLOT_DELETED) && ((Entry.Dir.Attributes & 0x0e) == 0x00))
0680 8588 LDD R24,Y+8
0681 3E85 CPI R24,0xE5
0682 F409 BNE 0x0684
0683 C0C9 RJMP 0x074D
0684 898B LDD R24,Y+19
0685 708E ANDI R24,0xE
0686 F009 BEQ 0x0688
0687 C0C5 RJMP 0x074D
(0104) {
(0105) if (LongFileName == FALSE)
0688 20EE TST R14
0689 F4E1 BNE 0x06A6
068A 20FF TST R15
068B F4D1 BNE 0x06A6
(0106) {
(0107) for (j=0;j<8;j++) File.Name[j] = Entry.Dir.Name[j];
068C 24CC CLR R12
068D 24DD CLR R13
068E C00F RJMP 0x069E
068F 01CE MOVW R24,R28
0690 9608 ADIW R24,0x8
0691 01F6 MOVW R30,R12
0692 0FE8 ADD R30,R24
0693 1FF9 ADC R31,R25
0694 8020 LDD R2,Z+0
0695 E284 LDI R24,0x24
0696 E092 LDI R25,2
0697 01F6 MOVW R30,R12
0698 0FE8 ADD R30,R24
0699 1FF9 ADC R31,R25
069A 8220 STD Z+0,R2
069B 01C6 MOVW R24,R12
069C 9601 ADIW R24,1
069D 016C MOVW R12,R24
069E 01C6 MOVW R24,R12
069F 3088 CPI R24,0x8
06A0 E0E0 LDI R30,0
06A1 079E CPC R25,R30
06A2 F360 BCS 0x068F
(0108) File.Name[8] = 0x00;
06A3 2422 CLR R2
06A4 9220022C STS 0x22C,R2
(0109) }
(0110) File.FirstClust = Entry.Dir.FirstClustHi;
06A6 8C2C LDD R2,Y+28
06A7 8C3D LDD R3,Y+29
06A8 2444 CLR R4
06A9 2455 CLR R5
06AA 92300329 STS 0x329,R3
06AC 92200328 STS 0x328,R2
06AE 9250032B STS 0x32B,R5
06B0 9240032A STS 0x32A,R4
(0111) File.FirstClust = (File.FirstClust << 16) + Entry.Dir.FirstClustLo;
06B2 A02A LDD R2,Y+34
06B3 A03B LDD R3,Y+35
06B4 2444 CLR R4
06B5 2455 CLR R5
06B6 9080032A LDS R8,0x32A
06B8 9090032B LDS R9,0x32B
06BA 90600328 LDS R6,0x328
06BC 90700329 LDS R7,0x329
06BE 0143 MOVW R8,R6
06BF 2466 CLR R6
06C0 2477 CLR R7
06C1 0C62 ADD R6,R2
06C2 1C73 ADC R7,R3
06C3 1C84 ADC R8,R4
06C4 1C95 ADC R9,R5
06C5 92700329 STS 0x329,R7
06C7 92600328 STS 0x328,R6
06C9 9290032B STS 0x32B,R9
06CB 9280032A STS 0x32A,R8
(0112) File.FileSize = Entry.Dir.FileSize;
06CD 01FE MOVW R30,R28
06CE A024 LDD R2,Z+36
06CF A035 LDD R3,Z+37
06D0 A046 LDD R4,Z+38
06D1 A057 LDD R5,Z+39
06D2 9230032D STS 0x32D,R3
06D4 9220032C STS 0x32C,R2
06D6 9250032F STS 0x32F,R5
06D8 9240032E STS 0x32E,R4
(0113) File.Attr = Entry.Dir.Attributes;
06DA 882B LDD R2,Y+19
06DB 92200327 STS 0x327,R2
(0114) if ((File.FirstClust == 0) &&
06DD E040 LDI R20,0
06DE E050 LDI R21,0
06DF E060 LDI R22,0
06E0 E070 LDI R23,0
06E1 1664 CP R6,R20
06E2 0675 CPC R7,R21
06E3 0686 CPC R8,R22
06E4 0697 CPC R9,R23
06E5 F479 BNE 0x06F5
06E6 2D82 MOV R24,R2
06E7 3180 CPI R24,0x10
06E8 F461 BNE 0x06F5
(0115) (File.Attr == ATTR_DIRECTORY)) File.FirstClust = 2; // Don't know why?
06E9 E042 LDI R20,2
06EA E050 LDI R21,0
06EB E060 LDI R22,0
06EC E070 LDI R23,0
06ED 93500329 STS 0x329,R21
06EF 93400328 STS 0x328,R20
06F1 9370032B STS 0x32B,R23
06F3 9360032A STS 0x32A,R22
(0116) LongFileName = FALSE;
06F5 24EE CLR R14
06F6 24FF CLR R15
(0117)
(0118) if ((File.FirstClust == 0) && (File.Attr == ATTR_NORMAL)) return Files;
06F7 E040 LDI R20,0
06F8 E050 LDI R21,0
06F9 E060 LDI R22,0
06FA E070 LDI R23,0
06FB 9040032A LDS R4,0x32A
06FD 9050032B LDS R5,0x32B
06FF 90200328 LDS R2,0x328
0701 90300329 LDS R3,0x329
0703 1624 CP R2,R20
0704 0635 CPC R3,R21
0705 0646 CPC R4,R22
0706 0657 CPC R5,R23
0707 F439 BNE 0x070F
0708 90200327 LDS R2,0x327
070A 2022 TST R2
070B F419 BNE 0x070F
070C A90F LDD R16,Y+55
070D AD18 LDD R17,Y+56
070E C08E RJMP 0x079D
(0119) if ((Files >= From) && (Files < (From + Qte)) && (Display == TRUE)) DisplayFiles(&LinePtr);
070F A80F LDD R0,Y+55
0710 AC18 LDD R1,Y+56
0711 01FE MOVW R30,R28
0712 5BE9 SUBI R30,0xB9
0713 4FFF SBCI R31,0xFF
0714 8100 LDD R16,Z+0
0715 8111 LDD R17,Z+1
0716 1600 CP R0,R16
0717 0611 CPC R1,R17
0718 F0D0 BCS 0x0733
0719 0118 MOVW R2,R16
071A 01FE MOVW R30,R28
071B 5BE7 SUBI R30,0xB7
071C 4FFF SBCI R31,0xFF
071D 8000 LDD R0,Z+0
071E 8011 LDD R1,Z+1
071F 0C20 ADD R2,R0
0720 1C31 ADC R3,R1
0721 A80F LDD R0,Y+55
0722 AC18 LDD R1,Y+56
0723 1402 CP R0,R2
0724 0413 CPC R1,R3
0725 F468 BCC 0x0733
0726 01FE MOVW R30,R28
0727 5BE5 SUBI R30,0xB5
0728 4FFF SBCI R31,0xFF
0729 8180 LDD R24,Z+0
072A 8191 LDD R25,Z+1
072B 3081 CPI R24,1
072C E0E0 LDI R30,0
072D 079E CPC R25,R30
072E F421 BNE 0x0733
072F 018E MOVW R16,R28
0730 5D04 SUBI R16,0xD4
0731 4F1F SBCI R17,0xFF
0732 D06F RCALL _DisplayFiles
(0120) if (Files == (From + Qte - 1)) return Files;
0733 01FE MOVW R30,R28
0734 5BE9 SUBI R30,0xB9
0735 4FFF SBCI R31,0xFF
0736 8180 LDD R24,Z+0
0737 8191 LDD R25,Z+1
0738 01FE MOVW R30,R28
0739 5BE7 SUBI R30,0xB7
073A 4FFF SBCI R31,0xFF
073B 8000 LDD R0,Z+0
073C 8011 LDD R1,Z+1
073D 0D80 ADD R24,R0
073E 1D91 ADC R25,R1
073F 9701 SBIW R24,1
0740 A80F LDD R0,Y+55
0741 AC18 LDD R1,Y+56
0742 1608 CP R0,R24
0743 0619 CPC R1,R25
0744 F411 BNE 0x0747
0745 0180 MOVW R16,R0
0746 C056 RJMP 0x079D
(0121) Files++;
0747 A98F LDD R24,Y+55
0748 AD98 LDD R25,Y+56
0749 9601 ADIW R24,1
074A AF98 STD Y+56,R25
074B AB8F STD Y+55,R24
(0122) }
074C C002 RJMP 0x074F
(0123) else LongFileName = FALSE;
074D 24EE CLR R14
074E 24FF CLR R15
074F A98D LDD R24,Y+53
0750 A99E LDD R25,Y+54
0751 9680 ADIW R24,0x20
0752 AB9E STD Y+54,R25
0753 AB8D STD Y+53,R24
0754 9020033B LDS R2,0x33B
0756 9030033C LDS R3,0x33C
0758 A80D LDD R0,Y+53
0759 A81E LDD R1,Y+54
075A 1402 CP R0,R2
075B 0413 CPC R1,R3
075C F408 BCC 0x075E
075D CE93 RJMP 0x05F1
075E E041 LDI R20,1
075F E050 LDI R21,0
0760 E060 LDI R22,0
0761 E070 LDI R23,0
0762 01FE MOVW R30,R28
0763 A420 LDD R2,Z+40
0764 A431 LDD R3,Z+41
0765 A442 LDD R4,Z+42
0766 A453 LDD R5,Z+43
0767 0E24 ADD R2,R20
0768 1E35 ADC R3,R21
0769 1E46 ADC R4,R22
076A 1E57 ADC R5,R23
076B 01FE MOVW R30,R28
076C A620 STD Z+40,R2
076D A631 STD Z+41,R3
076E A642 STD Z+42,R4
076F A653 STD Z+43,R5
0770 9020033D LDS R2,0x33D
0772 2433 CLR R3
0773 2444 CLR R4
0774 2455 CLR R5
0775 01FE MOVW R30,R28
0776 A460 LDD R6,Z+40
0777 A471 LDD R7,Z+41
0778 A482 LDD R8,Z+42
0779 A493 LDD R9,Z+43
077A 1462 CP R6,R2
077B 0473 CPC R7,R3
077C 0484 CPC R8,R4
077D 0495 CPC R9,R5
077E F408 BCC 0x0780
077F CE4C RJMP 0x05CC
(0124) }
(0125) }
(0126) }
(0127) NextCluster = GetNextCluster(NextCluster);
0780 01FE MOVW R30,R28
0781 A901 LDD R16,Z+49
0782 A912 LDD R17,Z+50
0783 A923 LDD R18,Z+51
0784 A934 LDD R19,Z+52
0785 DD8E RCALL _GetNextCluster
0786 01FE MOVW R30,R28
0787 AB01 STD Z+49,R16
0788 AB12 STD Z+50,R17
0789 AB23 STD Z+51,R18
078A AB34 STD Z+52,R19
(0128) if (NextCluster > CLUST_RSRVD) break;
078B EF46 LDI R20,0xF6
078C EF5F LDI R21,0xFF
078D EF6F LDI R22,0xFF
078E E07F LDI R23,0xF
078F 01FE MOVW R30,R28
0790 A821 LDD R2,Z+49
0791 A832 LDD R3,Z+50
0792 A843 LDD R4,Z+51
0793 A854 LDD R5,Z+52
0794 1542 CP R20,R2
0795 0553 CPC R21,R3
0796 0564 CPC R22,R4
0797 0575 CPC R23,R5
0798 F408 BCC 0x079A
0799 C001 RJMP 0x079B
079A CE1C RJMP 0x05B7
(0129) }
(0130) return Files;
079B A90F LDD R16,Y+55
079C AD18 LDD R17,Y+56
079D 96E9 ADIW R28,0x39
079E 940E15CE CALL pop_gset5
07A0 9624 ADIW R28,4
07A1 9508 RET
_DisplayFiles:
i --> R20
j --> R10
LinePtr --> R22
07A2 940E15D5 CALL push_gset3
07A4 01B8 MOVW R22,R16
(0131) }
(0132)
(0133) //*************************************
(0134) // void DisplayFiles(unsigned int FileNum)
(0135) //
(0136) //*************************************
(0137) void DisplayFiles(unsigned char *LinePtr)
(0138) {
(0139
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -