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

📄 main.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	LD	L,C
	LD	H,B
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	LD	A,64
	ADD	A,H
	LD	H,A
	PUSH	HL
	POP	IY
; 184.	      char *IPMaddress = (char *)(FileNum*OneLocationBYTE+IDMStartAddress);   //  IPM 中存储文件路径的起始地址 
	LD	BC,41
	LD	E,(IX-2)
	LD	D,(IX-1)
	CALL	LWRD ?S_MUL_L02
	LD	A,64
	ADD	A,D
	LD	D,A
	LD	(IX-8),E
	LD	(IX-7),D
; 185.	      int  *FileNumAddress =(int *)IDMaddress;        //存放文件原始编号的地址
	LD	(IX-10),L
	LD	(IX-9),H
; 186.	//      int  *LocationAddress = (int *)IPMaddress;       // 存放文件原始编号的地址
; 187.	      output8(0x05,0x34);      //IDM LOW BYTE->TIT2                             
	LD	A,52
	OUT	(5),A
; 188.	     *FileNumAddress=FileNum; 
	LD	C,(IX-2)
	LD	(HL),C
	LD	B,(IX-1)
	INC	HL
	LD	(HL),B
; 189.	      if(mode)  
	XOR	A
	OR	(IX-4)
	LD	BC,30
	PUSH	IY
	POP	DE
	INC	DE
	INC	DE
	JR	Z,?0053
?0052:
; 190.	      {                   //原始编号
; 191.	        memcpy(IDMaddress+2,&g_ID3InfoBuf[0],30);            //TIT2 store
	LD	HL,g_ID3InfoBuf
	LDIR
; 192.	      }
; 193.	      else   
	JR	?0054
?0053:
; 194.	      { 
; 195.	       memset(IDMaddress+2,0,30); 
	LD	L,B
	CALL	LWRD ?MEMSET_L11
?0054:
; 196.	      }
; 197.	//       memcpy(IDMaddress+32,location,sizeof(file_location_t)); //location store    
; 198.	      output8(0x05,0x35);     //IDM MID BYTE->TPE1
	LD	A,53
	OUT	(5),A
; 199.	      *FileNumAddress=FileNum;     
	LD	L,(IX-2)
	LD	H,(IX-1)
	PUSH	HL
	LD	L,(IX-10)
	LD	H,(IX-9)
	POP	BC
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 200.	      if(mode)  
	XOR	A
	OR	(IX-4)
	LD	BC,30
	PUSH	IY
	POP	DE
	INC	DE
	INC	DE
	JR	Z,?0056
?0055:
; 201.	      { 
; 202.	       memcpy(IDMaddress+2,&g_ID3InfoBuf[30],30);
	LD	HL,g_ID3InfoBuf+30
	LDIR
; 203.	      }                                                        
; 204.	      else 
	JR	?0057
?0056:
; 205.	      {  
; 206.	       memset(IDMaddress+2,0,30);
	LD	L,B
	CALL	LWRD ?MEMSET_L11
?0057:
; 207.	      }
; 208.	//      memcpy(IDMaddress+32,&g_ID3InfoBuf[0],sizeof(file_location_t));       
; 209.	      output8(0x05,0x36); //IDM HIG BYTE -> TALB   
	LD	A,54
	OUT	(5),A
; 210.	      *FileNumAddress=FileNum;     
	LD	L,(IX-2)
	LD	H,(IX-1)
	PUSH	HL
	LD	L,(IX-10)
	LD	H,(IX-9)
	POP	BC
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 211.	      if(mode)  
	XOR	A
	OR	(IX-4)
	LD	BC,30
	PUSH	IY
	POP	DE
	INC	DE
	INC	DE
	JR	Z,?0059
?0058:
; 212.	      { 
; 213.	       memcpy(IDMaddress+2,&g_ID3InfoBuf[60],30);      
	LD	HL,g_ID3InfoBuf+60
	LDIR
; 214.	      }
; 215.	      else
	JR	?0060
?0059:
; 216.	      {
; 217.	       memset(IDMaddress+2,0,30);
	LD	L,B
	CALL	LWRD ?MEMSET_L11
?0060:
; 218.	      }
; 219.	//      memcpy(IDMaddress+32,&g_ID3InfoBuf[0],sizeof(file_location_t));    
; 220.	     
; 221.	      output8(0x05,IO05bak); 
	LD	A,(IX-5)
	OUT	(5),A
; 222.	      memcpy(g_ID3InfoBuf,location->filename,12);       // 根据短名取长名 
	LD	DE,g_ID3InfoBuf
	LD	HL,26
	LD	C,(IX+8)
	LD	B,(IX+9)
	ADD	HL,BC
	LD	BC,12
	LDIR
; 223.	      NameNum =FS_GetName(g_ID3InfoBuf, 30); //取出长名)
	LD	C,30
	LD	DE,g_ID3InfoBuf
	CALL	LWRD FS_GetName
; 224.	      if(NameNum!=0)
	OR	A
	JR	Z,?0062
?0061:
; 225.	      {
; 226.	         unitochar(g_ID3InfoBuf, NameNum*2+2, langid);     
	LD	L,(IX+10)
	PUSH	HL
	LD	L,A
	LD	H,0
	ADD	HL,HL
	LD	C,L
	LD	B,H
	INC	BC
	INC	BC
	CALL	LWRD ?0102
	POP	AF
; 227.	         // *IDMaddress=(BYTE)FileNum;
; 228.	        output8(0x05,0xc0);    //IPM LOW BYTE ->Filename
	LD	A,192
	OUT	(5),A
; 229.	       *FileNumAddress=FileNum;     
	LD	L,(IX-2)
	LD	H,(IX-1)
	PUSH	HL
	LD	L,(IX-10)
	LD	H,(IX-9)
	POP	BC
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 230.	        memcpy(IDMaddress+2,&g_ID3InfoBuf[0],30);  //
	LD	BC,30
	PUSH	IY
	POP	DE
	INC	DE
	INC	DE
	LD	HL,g_ID3InfoBuf
	LDIR
; 231.	      }
; 232.	      else
	JR	?0063
?0062:
; 233.	        {
; 234.	          output8(0x05,0xc0);    //IPM LOW BYTE ->Filename
	LD	A,192
	OUT	(5),A
; 235.	         *FileNumAddress=FileNum;         
	LD	L,(IX-2)
	LD	H,(IX-1)
	PUSH	HL
	LD	L,(IX-10)
	LD	H,(IX-9)
	POP	BC
	LD	(HL),C
	INC	HL
	LD	(HL),B
; 236.	          memcpy(IDMaddress+2,location->filename,12);
	PUSH	IY
	POP	DE
	INC	DE
	INC	DE
	LD	HL,26
	LD	C,(IX+8)
	LD	B,(IX+9)
	ADD	HL,BC
	LD	BC,12
	LDIR
; 237.	          memset(IDMaddress+14,0,18);         
	LD	C,18
	LD	HL,14
	PUSH	IY
	POP	DE
	ADD	HL,DE
	EX	DE,HL
	LD	L,B
	CALL	LWRD ?MEMSET_L11
?0063:
; 238.	        }
; 239.	//      memcpy(IDMaddress+31,location,sizeof(file_location_t));                   
; 240.	      if(FileNum<399)  
	LD	BC,399
	LD	L,(IX-2)
	LD	H,(IX-1)
	AND	A
	SBC	HL,BC
	JR	NC,?0065
?0064:
; 241.	      {
; 242.	        output8(0x05,0xc1);   //IPM MID BYTE         
	LD	A,193
	OUT	(5),A
; 243.	      }                                                    
; 244.	      else 
	JR	?0066
?0065:
; 245.	      {
; 246.	       output8(0x05,0xc2);   //IPM HIGH BYTE           
	LD	A,194
	OUT	(5),A
; 247.	       IPMaddress = (char *)((FileNum-399)*OneLocationBYTE+IDMStartAddress); 
	LD	HL,65137
	LD	C,(IX-2)
	LD	B,(IX-1)
	ADD	HL,BC
	LD	C,L
	LD	B,H
	LD	DE,41
	CALL	LWRD ?S_MUL_L02
	LD	A,64
	ADD	A,D
	LD	D,A
	LD	(IX-8),E
	LD	(IX-7),D
?0066:
; 248.	//       LocationAddress = (int* )IPMaddress;   
; 249.	      }                                    
; 250.	//       *LocationAddress = FileNum;         
; 251.	      memcpy(IPMaddress,location,OneLocationBYTE);
	LD	BC,41
	LD	E,(IX-8)
	LD	D,(IX-7)
	LD	L,(IX+8)
	LD	H,(IX+9)
	LDIR
; 252.	      output8(0x05,IO05bak);
	LD	A,(IX-5)
	OUT	(5),A
; 253.	}    
	LD	SP,IX
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
CheckMusicType:
; 254.	
; 255.	        
; 256.	Music_type_t CheckMusicType( char * filename )
; 257.	{
	PUSH	BC
	PUSH	IX
	LD	HL,65508
	ADD	HL,SP
	LD	SP,HL
	PUSH	DE
	POP	IX
; 258.	    const char ExtMusicstr [] [4] =
; 259.	    {
; 260.	        "MP3", "WMA", "ASF", "WMV", "OGG", "APE"
; 261.	    };
	LD	HL,4
	ADD	HL,SP
	EX	DE,HL
	LD	HL,?0067
	LD	BC,24
	LDIR
; 262.	
; 263.	    BYTE ext[4];
; 264.	    memcpy(ext, filename + 8, 3);
	LD	L,C
	LD	H,B
	ADD	HL,SP
	EX	DE,HL
	LD	HL,8
	PUSH	IX
	POP	BC
	ADD	HL,BC
	LD	BC,3
	LDIR
; 265.	    ext[0] = (ext[0]>='a' && ext[0]<='z') ? ext[0] - 'a' + 'A' : ext[0];
	LD	L,C
	LD	H,B
	ADD	HL,SP
	LD	A,(HL)
	CP	97
	JR	C,?0071
	LD	A,122
	CP	(HL)
	JR	C,?0071
	LD	A,(HL)
	ADD	A,224
	JR	?0072
?0071:
	LD	A,(HL)
?0072:
	LD	(HL),A
; 266.	    ext[1] = (ext[1]>='a' && ext[1]<='z') ? ext[1] - 'a' + 'A' : ext[1];
	INC	HL
	LD	A,(HL)
	CP	97
	JR	C,?0077
	LD	A,122
	CP	(HL)
	JR	C,?0077
	LD	A,(HL)
	ADD	A,224
	JR	?0078
?0077:
	LD	A,(HL)
?0078:
	LD	(HL),A
; 267.	    ext[2] = (ext[2]>='a' && ext[2]<='z') ? ext[2] - 'a' + 'A' : ext[2];
	INC	HL
	LD	A,(HL)
	CP	97
	JR	C,?0083
	LD	A,122
	CP	(HL)
	JR	C,?0083
	LD	A,(HL)
	ADD	A,224
	JR	?0084
?0083:
	LD	A,(HL)
?0084:
	LD	(HL),A
; 268.	    ext[3] = 0;
	INC	HL
	LD	(HL),B
; 269.	
; 270.	    if (strcmp(ext, ExtMusicstr[0]) == 0)
	DEC	HL
	DEC	HL
	DEC	HL
	EX	DE,HL
	LD	HL,4
	ADD	HL,SP
	CALL	LWRD ?STRCMP_L11
	LD	A,L
	OR	H
	JR	NZ,?0087
?0086:
; 271.	    {
; 272.	        return Music_MP3;
	LD	L,1
; 273.	    }
	JR	?0098
?0087:
; 274.	    else if (strcmp(ext, ExtMusicstr[1]) == 0)
	LD	L,C
	LD	H,B
	ADD	HL,SP
	EX	DE,HL
	LD	HL,4
	ADD	HL,SP
	LD	C,4
	ADD	HL,BC
	CALL	LWRD ?STRCMP_L11
	LD	A,L
	OR	H
	JR	NZ,?0089
?0088:
; 275.	    {
; 276.	        return Music_WMA;
	LD	L,2
; 277.	    }
	JR	?0098
?0089:
; 278.	    else if (strcmp(ext, ExtMusicstr[2]) == 0)
	LD	L,B
	LD	H,B
	ADD	HL,SP
	EX	DE,HL
	LD	L,C
	LD	H,B
	ADD	HL,SP
	LD	C,8
	ADD	HL,BC
	CALL	LWRD ?STRCMP_L11
	LD	A,L
	OR	H
	JR	NZ,?0091
?0090:
; 279.	    {
; 280.	        return Music_ASF;
	LD	L,3
; 281.	    }
	JR	?0098
?0091:
; 282.	    else if (strcmp(ext, ExtMusicstr[3]) == 0)
	LD	L,B
	LD	H,B
	ADD	HL,SP
	EX	DE,HL
	LD	HL,4
	ADD	HL,SP
	LD	C,12
	ADD	HL,BC
	CALL	LWRD ?STRCMP_L11
	LD	A,L
	OR	H
	JR	NZ,?0093
?0092:
; 283.	    {
; 284.	        return Music_WMV;
	LD	L,4
; 285.	    }
	JR	?0098
?0093:
; 286.	    else if (strcmp(ext, ExtMusicstr[4]) == 0)
	LD	L,B
	LD	H,B
	ADD	HL,SP
	EX	DE,HL
	LD	HL,4
	ADD	HL,SP
	LD	C,16
	ADD	HL,BC
	CALL	LWRD ?STRCMP_L11
	LD	A,L
	OR	H
	JR	NZ,?0095
?0094:
; 287.	    {
; 288.	        return Music_OGG;
	LD	L,5
; 289.	    }
	JR	?0098
?0095:
; 290.	    else if (strcmp(ext, ExtMusicstr[5]) == 0)
	LD	L,B
	LD	H,B
	ADD	HL,SP
	EX	DE,HL
	LD	HL,4
	ADD	HL,SP
	LD	C,20
	ADD	HL,BC
	CALL	LWRD ?STRCMP_L11
	LD	A,L
	OR	H
	JR	NZ,?0097
?0096:
; 291.	    {
; 292.	        return Music_APE;
	LD	L,6
; 293.	    }  
	JR	?0098
?0097:
; 294.	    else
; 295.	    {
; 296.	        return Music_NON;
	LD	L,B
; 297.	    }
?0098:
	EX	DE,HL
	LD	HL,28
	ADD	HL,SP
	LD	SP,HL
	EX	DE,HL
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 298.	}    
; 299.	
; 300.	  
	RSEG	CSTR
?0020:
	DEFB	'TIT2    BIN'
	DEFB	0
?0021:
	DEFB	'TPE1    BIN'
	DEFB	0
?0022:
	DEFB	'TALB    BIN'
	DEFB	0
?0023:
	DEFB	'FILENAMEBIN'
	DEFB	0
	RSEG	CONST
?0067:
	DEFB	'MP3'
	DEFB	0
	DEFB	'WMA'
	DEFB	0
	DEFB	'ASF'
	DEFB	0
	DEFB	'WMV'
	DEFB	0
	DEFB	'OGG'
	DEFB	0
	DEFB	'APE'
	DEFB	0
	RSEG	UDATA0
g_file_total:
	DEFS	2
g_ID3InfoBuf:
	DEFS	90
	RSEG	APD_LIST_FUN1
list_location:
	DEFS	43
g_music_list_val:
	DEFS	95
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -