📄 mp3.lst
字号:
05C8 E0E0 LDI R30,0
05C9 079E CPC R25,R30
05CA F310 BCS 0x05AD
(0097) for (j=0;j<6;j++) File.Name[LongFilePtr++] = Entry.Win.Part2[j];
05CB 24EE CLR R14
05CC 24FF CLR R15
05CD C019 RJMP 0x05E7
05CE 0115 MOVW R2,R10
05CF 01C1 MOVW R24,R2
05D0 9601 ADIW R24,1
05D1 015C MOVW R10,R24
05D2 E002 LDI R16,2
05D3 E010 LDI R17,0
05D4 0197 MOVW R18,R14
05D5 940E14E8 CALL empy16s
05D7 01F8 MOVW R30,R16
05D8 01CE MOVW R24,R28
05D9 9646 ADIW R24,0x16
05DA 0FE8 ADD R30,R24
05DB 1FF9 ADC R31,R25
05DC 8040 LDD R4,Z+0
05DD 8051 LDD R5,Z+1
05DE E68A LDI R24,0x6A
05DF E091 LDI R25,1
05E0 01F1 MOVW R30,R2
05E1 0FE8 ADD R30,R24
05E2 1FF9 ADC R31,R25
05E3 8240 STD Z+0,R4
05E4 01C7 MOVW R24,R14
05E5 9601 ADIW R24,1
05E6 017C MOVW R14,R24
05E7 01C7 MOVW R24,R14
05E8 3086 CPI R24,6
05E9 E0E0 LDI R30,0
05EA 079E CPC R25,R30
05EB F310 BCS 0x05CE
(0098) for (j=0;j<2;j++) File.Name[LongFilePtr++] = Entry.Win.Part3[j];
05EC 24EE CLR R14
05ED 24FF CLR R15
05EE C019 RJMP 0x0608
05EF 0115 MOVW R2,R10
05F0 01C1 MOVW R24,R2
05F1 9601 ADIW R24,1
05F2 015C MOVW R10,R24
05F3 E002 LDI R16,2
05F4 E010 LDI R17,0
05F5 0197 MOVW R18,R14
05F6 940E14E8 CALL empy16s
05F8 01F8 MOVW R30,R16
05F9 01CE MOVW R24,R28
05FA 9684 ADIW R24,0x24
05FB 0FE8 ADD R30,R24
05FC 1FF9 ADC R31,R25
05FD 8040 LDD R4,Z+0
05FE 8051 LDD R5,Z+1
05FF E68A LDI R24,0x6A
0600 E091 LDI R25,1
0601 01F1 MOVW R30,R2
0602 0FE8 ADD R30,R24
0603 1FF9 ADC R31,R25
0604 8240 STD Z+0,R4
0605 01C7 MOVW R24,R14
0606 9601 ADIW R24,1
0607 017C MOVW R14,R24
0608 01C7 MOVW R24,R14
0609 3082 CPI R24,2
060A E0E0 LDI R30,0
060B 079E CPC R25,R30
060C F310 BCS 0x05EF
(0099) if (Entry.Win.Cnt & 0x40) File.Name[LongFilePtr++] = 0x00;
060D 8428 LDD R2,Y+8
060E FE26 SBRS R2,6
060F C0DB RJMP 0x06EB
0610 0115 MOVW R2,R10
0611 01C1 MOVW R24,R2
0612 9601 ADIW R24,1
0613 015C MOVW R10,R24
0614 E68A LDI R24,0x6A
0615 E091 LDI R25,1
0616 01F1 MOVW R30,R2
0617 0FE8 ADD R30,R24
0618 1FF9 ADC R31,R25
0619 2422 CLR R2
061A 8220 STD Z+0,R2
(0100) }
061B C0CF RJMP 0x06EB
(0101) else
(0102) {
(0103) if ((Entry.Dir.Name[0] != SLOT_DELETED) && ((Entry.Dir.Attributes & 0x0e) == 0x00))
061C 8588 LDD R24,Y+8
061D 3E85 CPI R24,0xE5
061E F409 BNE 0x0620
061F C0C9 RJMP 0x06E9
0620 898B LDD R24,Y+19
0621 708E ANDI R24,0xE
0622 F009 BEQ 0x0624
0623 C0C5 RJMP 0x06E9
(0104) {
(0105) if (LongFileName == FALSE)
0624 20CC TST R12
0625 F4E1 BNE 0x0642
0626 20DD TST R13
0627 F4D1 BNE 0x0642
(0106) {
(0107) for (j=0;j<8;j++) File.Name[j] = Entry.Dir.Name[j];
0628 24EE CLR R14
0629 24FF CLR R15
062A C00F RJMP 0x063A
062B 01CE MOVW R24,R28
062C 9608 ADIW R24,0x8
062D 01F7 MOVW R30,R14
062E 0FE8 ADD R30,R24
062F 1FF9 ADC R31,R25
0630 8020 LDD R2,Z+0
0631 E68A LDI R24,0x6A
0632 E091 LDI R25,1
0633 01F7 MOVW R30,R14
0634 0FE8 ADD R30,R24
0635 1FF9 ADC R31,R25
0636 8220 STD Z+0,R2
0637 01C7 MOVW R24,R14
0638 9601 ADIW R24,1
0639 017C MOVW R14,R24
063A 01C7 MOVW R24,R14
063B 3088 CPI R24,0x8
063C E0E0 LDI R30,0
063D 079E CPC R25,R30
063E F360 BCS 0x062B
(0108) File.Name[8] = 0x00;
063F 2422 CLR R2
0640 92200172 STS 0x172,R2
(0109) }
(0110) File.FirstClust = Entry.Dir.FirstClustHi;
0642 8C2C LDD R2,Y+28
0643 8C3D LDD R3,Y+29
0644 2444 CLR R4
0645 2455 CLR R5
0646 9230026F STS 0x26F,R3
0648 9220026E STS 0x26E,R2
064A 92500271 STS 0x271,R5
064C 92400270 STS 0x270,R4
(0111) File.FirstClust = (File.FirstClust << 16) + Entry.Dir.FirstClustLo;
064E A02A LDD R2,Y+34
064F A03B LDD R3,Y+35
0650 2444 CLR R4
0651 2455 CLR R5
0652 90800270 LDS R8,0x270
0654 90900271 LDS R9,0x271
0656 9060026E LDS R6,0x26E
0658 9070026F LDS R7,0x26F
065A 0143 MOVW R8,R6
065B 2466 CLR R6
065C 2477 CLR R7
065D 0C62 ADD R6,R2
065E 1C73 ADC R7,R3
065F 1C84 ADC R8,R4
0660 1C95 ADC R9,R5
0661 9270026F STS 0x26F,R7
0663 9260026E STS 0x26E,R6
0665 92900271 STS 0x271,R9
0667 92800270 STS 0x270,R8
(0112) File.FileSize = Entry.Dir.FileSize;
0669 01FE MOVW R30,R28
066A A024 LDD R2,Z+36
066B A035 LDD R3,Z+37
066C A046 LDD R4,Z+38
066D A057 LDD R5,Z+39
066E 92300273 STS 0x273,R3
0670 92200272 STS 0x272,R2
0672 92500275 STS 0x275,R5
0674 92400274 STS 0x274,R4
(0113) File.Attr = Entry.Dir.Attributes;
0676 882B LDD R2,Y+19
0677 9220026D STS 0x26D,R2
(0114) if ((File.FirstClust == 0) &&
0679 E040 LDI R20,0
067A E050 LDI R21,0
067B E060 LDI R22,0
067C E070 LDI R23,0
067D 1664 CP R6,R20
067E 0675 CPC R7,R21
067F 0686 CPC R8,R22
0680 0697 CPC R9,R23
0681 F479 BNE 0x0691
0682 2D82 MOV R24,R2
0683 3180 CPI R24,0x10
0684 F461 BNE 0x0691
(0115) (File.Attr == ATTR_DIRECTORY)) File.FirstClust = 2; // Don't know why?
0685 E042 LDI R20,2
0686 E050 LDI R21,0
0687 E060 LDI R22,0
0688 E070 LDI R23,0
0689 9350026F STS 0x26F,R21
068B 9340026E STS 0x26E,R20
068D 93700271 STS 0x271,R23
068F 93600270 STS 0x270,R22
(0116) LongFileName = FALSE;
0691 24CC CLR R12
0692 24DD CLR R13
(0117)
(0118) if ((File.FirstClust == 0) && (File.Attr == ATTR_NORMAL)) return Files;
0693 E040 LDI R20,0
0694 E050 LDI R21,0
0695 E060 LDI R22,0
0696 E070 LDI R23,0
0697 90400270 LDS R4,0x270
0699 90500271 LDS R5,0x271
069B 9020026E LDS R2,0x26E
069D 9030026F LDS R3,0x26F
069F 1624 CP R2,R20
06A0 0635 CPC R3,R21
06A1 0646 CPC R4,R22
06A2 0657 CPC R5,R23
06A3 F439 BNE 0x06AB
06A4 9020026D LDS R2,0x26D
06A6 2022 TST R2
06A7 F419 BNE 0x06AB
06A8 A90F LDD R16,Y+55
06A9 AD18 LDD R17,Y+56
06AA C08B RJMP 0x0736
(0119) if ((Files >= From) && (Files < (From + Qte)) && (Display == TRUE)) DisplayFiles(&LinePtr);
06AB A80F LDD R0,Y+55
06AC AC18 LDD R1,Y+56
06AD 01FE MOVW R30,R28
06AE 5BE9 SUBI R30,0xB9
06AF 4FFF SBCI R31,0xFF
06B0 8100 LDD R16,Z+0
06B1 8111 LDD R17,Z+1
06B2 1600 CP R0,R16
06B3 0611 CPC R1,R17
06B4 F0D0 BCS 0x06CF
06B5 0118 MOVW R2,R16
06B6 01FE MOVW R30,R28
06B7 5BE7 SUBI R30,0xB7
06B8 4FFF SBCI R31,0xFF
06B9 8000 LDD R0,Z+0
06BA 8011 LDD R1,Z+1
06BB 0C20 ADD R2,R0
06BC 1C31 ADC R3,R1
06BD A80F LDD R0,Y+55
06BE AC18 LDD R1,Y+56
06BF 1402 CP R0,R2
06C0 0413 CPC R1,R3
06C1 F468 BCC 0x06CF
06C2 01FE MOVW R30,R28
06C3 5BE5 SUBI R30,0xB5
06C4 4FFF SBCI R31,0xFF
06C5 8180 LDD R24,Z+0
06C6 8191 LDD R25,Z+1
06C7 3081 CPI R24,1
06C8 E0E0 LDI R30,0
06C9 079E CPC R25,R30
06CA F421 BNE 0x06CF
06CB 018E MOVW R16,R28
06CC 5D04 SUBI R16,0xD4
06CD 4F1F SBCI R17,0xFF
06CE D06C RCALL _DisplayFiles
(0120) if (Files == (From + Qte - 1)) return Files;
06CF 01FE MOVW R30,R28
06D0 5BE9 SUBI R30,0xB9
06D1 4FFF SBCI R31,0xFF
06D2 8180 LDD R24,Z+0
06D3 8191 LDD R25,Z+1
06D4 01FE MOVW R30,R28
06D5 5BE7 SUBI R30,0xB7
06D6 4FFF SBCI R31,0xFF
06D7 8000 LDD R0,Z+0
06D8 8011 LDD R1,Z+1
06D9 0D80 ADD R24,R0
06DA 1D91 ADC R25,R1
06DB 9701 SBIW R24,1
06DC A80F LDD R0,Y+55
06DD AC18 LDD R1,Y+56
06DE 1608 CP R0,R24
06DF 0619 CPC R1,R25
06E0 F411 BNE 0x06E3
06E1 0180 MOVW R16,R0
06E2 C053 RJMP 0x0736
(0121) Files++;
06E3 A98F LDD R24,Y+55
06E4 AD98 LDD R25,Y+56
06E5 9601 ADIW R24,1
06E6 AF98 STD Y+56,R25
06E7 AB8F STD Y+55,R24
(0122) }
06E8 C002 RJMP 0x06EB
(0123) else LongFileName = FALSE;
06E9 24CC CLR R12
06EA 24DD CLR R13
06EB A98D LDD R24,Y+53
06EC A99E LDD R25,Y+54
06ED 9680 ADIW R24,0x20
06EE AB9E STD Y+54,R25
06EF AB8D STD Y+53,R24
06F0 90200281 LDS R2,0x281
06F2 90300282 LDS R3,0x282
06F4 A80D LDD R0,Y+53
06F5 A81E LDD R1,Y+54
06F6 1402 CP R0,R2
06F7 0413 CPC R1,R3
06F8 F408 BCC 0x06FA
06F9 CE93 RJMP 0x058D
06FA E041 LDI R20,1
06FB E050 LDI R21,0
06FC E060 LDI R22,0
06FD E070 LDI R23,0
06FE 01FE MOVW R30,R28
06FF A420 LDD R2,Z+40
0700 A431 LDD R3,Z+41
0701 A442 LDD R4,Z+42
0702 A453 LDD R5,Z+43
0703 0E24 ADD R2,R20
0704 1E35 ADC R3,R21
0705 1E46 ADC R4,R22
0706 1E57 ADC R5,R23
0707 A620 STD Z+40,R2
0708 A631 STD Z+41,R3
0709 A642 STD Z+42,R4
070A A653 STD Z+43,R5
070B 90200283 LDS R2,0x283
070D 2433 CLR R3
070E 2444 CLR R4
070F 2455 CLR R5
0710 01FE MOVW R30,R28
0711 A460 LDD R6,Z+40
0712 A471 LDD R7,Z+41
0713 A482 LDD R8,Z+42
0714 A493 LDD R9,Z+43
0715 1462 CP R6,R2
0716 0473 CPC R7,R3
0717 0484 CPC R8,R4
0718 0495 CPC R9,R5
0719 F408 BCC 0x071B
071A CE4E RJMP 0x0569
(0124) }
(0125) }
(0126) }
(0127) NextCluster = GetNextCluster(NextCluster);
071B A901 LDD R16,Z+49
071C A912 LDD R17,Z+50
071D A923 LDD R18,Z+51
071E A934 LDD R19,Z+52
071F DD94 RCALL _GetNextCluster
0720 01FE MOVW R30,R28
0721 AB01 STD Z+49,R16
0722 AB12 STD Z+50,R17
0723 AB23 STD Z+51,R18
0724 AB34 STD Z+52,R19
(0128) if (NextCluster > CLUST_RSRVD) break;
0725 EF46 LDI R20,0xF6
0726 EF5F LDI R21,0xFF
0727 EF6F LDI R22,0xFF
0728 E07F LDI R23,0xF
0729 A821 LDD R2,Z+49
072A A832 LDD R3,Z+50
072B A843 LDD R4,Z+51
072C A854 LDD R5,Z+52
072D 1542 CP R20,R2
072E 0553 CPC R21,R3
072F 0564 CPC R22,R4
0730 0575 CPC R23,R5
0731 F408 BCC 0x0733
0732 C001 RJMP 0x0734
0733 CE21 RJMP 0x0555
(0129) }
(0130) return Files;
0734 A90F LDD R16,Y+55
0735 AD18 LDD R17,Y+56
0736 96E9 ADIW R28,0x39
0737 940E1531 CALL pop_gset5
0739 9624 ADIW R28,4
073A 9508 RET
_DisplayFiles:
i --> R22
j --> R10
LinePtr --> R20
073B 940E154F CALL push_gset3
073D 01A8 MOVW R20,R16
(0131) }
(0132)
(0133) //*************************************
(0134) // void DisplayFiles(unsigned int FileNum)
(0135) //
(0136) //*************************************
(0137) void DisplayFiles(unsigned char *LinePtr)
(0138) {
(0139) extern unsigned char RemoteTextLine[5][40];
(0140) int i,j;
(0141)
(0142) if (*LinePtr == 0)
073E 01FA MOVW R30,R20
073F 8020 LDD R2,Z+0
0740 2022 TST R2
0741 F501 BNE 0x0762
(0143) {
(0144) for (i=0;i<5;i++) // Clear
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -