⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mp3.lst

📁 使用硬盘制作mp3的源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    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 + -