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

📄 mp3.lst

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