📄 sub_function2.lst
字号:
95 * Music_type_t CheckMusicType(char *filename)
96 *
97 * Description : 检测当前是哪种类型的MUSIC文件
98 *
99 * Arguments : char *filename 文件名
100 *
101 * Returns : Music_type_t 文件类型
102 *
103 * Notes :
104 *
105 ********************************************************************************
106 */
107 Music_type_t CheckMusicType( char * filename )
108 {
\ 007F C5 PUSH BC
\ 0080 DDE5 PUSH IX
\ 0082 21E4FF LD HL,65508
\ 0085 39 ADD HL,SP
\ 0086 F9 LD SP,HL
\ 0087 D5 PUSH DE
\ 0088 DDE1 POP IX
109 const char ExtMusicstr [] [4] =
110 {
111 "MP3", "WMA", "ASF", "WMV", "OGG", "APE"
112 };
\ 008A 210400 LD HL,4
\ 008D 39 ADD HL,SP
\ 008E EB EX DE,HL
\ 008F 210000 LD HL,?0018
\ 0092 011800 LD BC,24
\ 0095 EDB0 LDIR
113
114 BYTE ext[4];
115 memcpy(ext, filename + 8, 3);
\ 0097 69 LD L,C
\ 0098 60 LD H,B
\ 0099 39 ADD HL,SP
\ 009A EB EX DE,HL
\ 009B 210800 LD HL,8
\ 009E DDE5 PUSH IX
\ 00A0 C1 POP BC
\ 00A1 09 ADD HL,BC
\ 00A2 010300 LD BC,3
\ 00A5 EDB0 LDIR
116 ext[0] = (ext[0]>='a' && ext[0]<='z') ? ext[0] - 'a' + 'A' : ext[0];
\ 00A7 69 LD L,C
\ 00A8 60 LD H,B
\ 00A9 39 ADD HL,SP
\ 00AA 7E LD A,(HL)
\ 00AB FE61 CP 97
\ 00AD 380A JR C,?0022
\ 00AF 3E7A LD A,122
\ 00B1 BE CP (HL)
\ 00B2 3805 JR C,?0022
\ 00B4 7E LD A,(HL)
\ 00B5 C6E0 ADD A,224
\ 00B7 1801 JR ?0023
\ 00B9 ?0022:
\ 00B9 7E LD A,(HL)
\ 00BA ?0023:
\ 00BA 77 LD (HL),A
117 ext[1] = (ext[1]>='a' && ext[1]<='z') ? ext[1] - 'a' + 'A' : ext[1];
\ 00BB 23 INC HL
\ 00BC 7E LD A,(HL)
\ 00BD FE61 CP 97
\ 00BF 380A JR C,?0028
\ 00C1 3E7A LD A,122
\ 00C3 BE CP (HL)
\ 00C4 3805 JR C,?0028
\ 00C6 7E LD A,(HL)
\ 00C7 C6E0 ADD A,224
\ 00C9 1801 JR ?0029
\ 00CB ?0028:
\ 00CB 7E LD A,(HL)
\ 00CC ?0029:
\ 00CC 77 LD (HL),A
118 ext[2] = (ext[2]>='a' && ext[2]<='z') ? ext[2] - 'a' + 'A' : ext[2];
\ 00CD 23 INC HL
\ 00CE 7E LD A,(HL)
\ 00CF FE61 CP 97
\ 00D1 380A JR C,?0034
\ 00D3 3E7A LD A,122
\ 00D5 BE CP (HL)
\ 00D6 3805 JR C,?0034
\ 00D8 7E LD A,(HL)
\ 00D9 C6E0 ADD A,224
\ 00DB 1801 JR ?0035
\ 00DD ?0034:
\ 00DD 7E LD A,(HL)
\ 00DE ?0035:
\ 00DE 77 LD (HL),A
119 ext[3] = 0;
\ 00DF 23 INC HL
\ 00E0 70 LD (HL),B
120
121 if (strcmp(ext, ExtMusicstr[0]) == 0)
\ 00E1 2B DEC HL
\ 00E2 2B DEC HL
\ 00E3 2B DEC HL
\ 00E4 EB EX DE,HL
\ 00E5 210400 LD HL,4
\ 00E8 39 ADD HL,SP
\ 00E9 CD5F01 CALL LWRD ?0152
\ 00EC 2004 JR NZ,?0038
\ 00EE ?0037:
122 {
123 return Music_MP3;
\ 00EE 2E01 LD L,1
124 }
\ 00F0 185F JR ?0049
\ 00F2 ?0038:
125 else if (strcmp(ext, ExtMusicstr[1]) == 0)
\ 00F2 69 LD L,C
\ 00F3 60 LD H,B
\ 00F4 39 ADD HL,SP
\ 00F5 EB EX DE,HL
\ 00F6 210400 LD HL,4
\ 00F9 39 ADD HL,SP
\ 00FA 0E04 LD C,4
\ 00FC CD5E01 CALL LWRD ?0153
\ 00FF 2004 JR NZ,?0040
\ 0101 ?0039:
126 {
127 return Music_WMA;
\ 0101 2E02 LD L,2
128 }
\ 0103 184C JR ?0049
\ 0105 ?0040:
129 else if (strcmp(ext, ExtMusicstr[2]) == 0)
\ 0105 68 LD L,B
\ 0106 60 LD H,B
\ 0107 39 ADD HL,SP
\ 0108 EB EX DE,HL
\ 0109 69 LD L,C
\ 010A 60 LD H,B
\ 010B 39 ADD HL,SP
\ 010C 0E08 LD C,8
\ 010E CD5E01 CALL LWRD ?0153
\ 0111 2004 JR NZ,?0042
\ 0113 ?0041:
130 {
131 return Music_ASF;
\ 0113 2E03 LD L,3
132 }
\ 0115 183A JR ?0049
\ 0117 ?0042:
133 else if (strcmp(ext, ExtMusicstr[3]) == 0)
\ 0117 68 LD L,B
\ 0118 60 LD H,B
\ 0119 39 ADD HL,SP
\ 011A EB EX DE,HL
\ 011B 210400 LD HL,4
\ 011E 39 ADD HL,SP
\ 011F 0E0C LD C,12
\ 0121 CD5E01 CALL LWRD ?0153
\ 0124 2004 JR NZ,?0044
\ 0126 ?0043:
134 {
135 return Music_WMV;
\ 0126 2E04 LD L,4
136 }
\ 0128 1827 JR ?0049
\ 012A ?0044:
137 else if (strcmp(ext, ExtMusicstr[4]) == 0)
\ 012A 68 LD L,B
\ 012B 60 LD H,B
\ 012C 39 ADD HL,SP
\ 012D EB EX DE,HL
\ 012E 210400 LD HL,4
\ 0131 39 ADD HL,SP
\ 0132 0E10 LD C,16
\ 0134 CD5E01 CALL LWRD ?0153
\ 0137 2004 JR NZ,?0046
\ 0139 ?0045:
138 {
139 return Music_OGG;
\ 0139 2E05 LD L,5
140 }
\ 013B 1814 JR ?0049
\ 013D ?0046:
141 else if (strcmp(ext, ExtMusicstr[5]) == 0)
\ 013D 68 LD L,B
\ 013E 60 LD H,B
\ 013F 39 ADD HL,SP
\ 0140 EB EX DE,HL
\ 0141 210400 LD HL,4
\ 0144 39 ADD HL,SP
\ 0145 0E14 LD C,20
\ 0147 CD5E01 CALL LWRD ?0153
\ 014A 2004 JR NZ,?0048
\ 014C ?0047:
142 {
143 return Music_APE;
\ 014C 2E06 LD L,6
144 }
\ 014E 1801 JR ?0049
\ 0150 ?0048:
145 else
146 {
147 return Music_NON;
\ 0150 68 LD L,B
148 }
\ 0151 ?0049:
\ 0151 EB EX DE,HL
\ 0152 211C00 LD HL,28
\ 0155 39 ADD HL,SP
\ 0156 F9 LD SP,HL
\ 0157 EB EX DE,HL
\ 0158 DDE1 POP IX
\ 015A C1 POP BC
\ 015B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 015E ?0153:
\ 015E 09 ADD HL,BC
\ 015F ?0152:
\ 015F CD0000 CALL LWRD ?STRCMP_L11
\ 0162 7D LD A,L
\ 0163 B4 OR H
\ 0164 C9 RET
149 }
\ 0165 make_dirname:
150
151 /*
152 ********************************************************************************
153 * void read_var(void)
154 *
155 * Description : 读系统变量和ap局部变量
156 *
157 * Arguments : void
158 *
159 * Returns : void
160 *
161 * Notes :
162 *
163 ********************************************************************************
164 */
165 void make_dirname(void)
166 {
\ 0165 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0168 DEFF DEFW 65502
167 int result;
168 char Backbuf[32];
169
170 fselGetLocation(&g_music_vars.location);
\ 016A 110700 LD DE,g_music_vars+7
\ 016D 3E00 LD A,BYTE3 fselGetLocation
\ 016F 210000 LD HL,LWRD fselGetLocation
\ 0172 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
171 if(g_music_vars.location.path[0]==':')
\ 0175 3A1500 LD A,(g_music_vars+21)
\ 0178 FE3A CP 58
\ 017A 200B JR NZ,?0051
\ 017C ?0050:
172 {
173 strcpy(dir_name,"ROOT");
\ 017C 110000 LD DE,?0052
\ 017F 210000 LD HL,dir_name
\ 0182 CD0000 CALL LWRD ?STRCPY_L11
174 }
175 else
\ 0185 185A JR ?0053
\ 0187 ?0051:
176 {
177
178 FS_Backup(Backbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 0187 210000 LD HL,0
\ 018A E5 PUSH HL
\ 018B 0E02 LD C,2
\ 018D 2E04 LD L,4
\ 018F 39 ADD HL,SP
\ 0190 EB EX DE,HL
\ 0191 CD0000 CALL LWRD FS_Backup
\ 0194 E1 POP HL
179
180 // dir_name[0] = ':';
181 // FS_CD(dir_name);
182 FS_CD("\\");
\ 0195 110500 LD DE,?0054
\ 0198 CD0000 CALL LWRD FS_CD
183 memcpy(dir_name, g_music_vars.location.path, 12);
\ 019B 010C00 LD BC,12
\ 019E 110000 LD DE,dir_name
\ 01A1 211500 LD HL,g_music_vars+21
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -