📄 sub_function1.lst
字号:
185 //确保选择器与AP的目录对应
186 fselGetLocation(& g_music_vars.location);
\ 01E0 CD1102 CALL LWRD ?0178
187 //检测Music的类型
188 make_dirname(); //取目录名
\ 01E3 3E00 LD A,BYTE3 make_dirname
\ 01E5 210000 LD HL,LWRD make_dirname
\ 01E8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
189 g_currentMusicType = CheckMusicType(g_music_vars.location.filename);
\ 01EB 112100 LD DE,g_music_vars+33
\ 01EE 3E00 LD A,BYTE3 CheckMusicType
\ 01F0 210000 LD HL,LWRD CheckMusicType
\ 01F3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01F6 7D LD A,L
\ 01F7 320000 LD (g_currentMusicType),A
190 //找歌词文件并打开
191 //清 WATCH_DOG
192 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 01FA DB4E IN A,(78)
\ 01FC CBDF SET 3,A
\ 01FE D34E OUT (78),A
193 return TRUE;
\ 0200 2E01 LD L,1
194 }
\ 0202 ?0047:
\ 0202 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0205 ?0174:
\ 0205 ED5B0100 LD DE,(g_music_vars+1)
\ 0209 ?0173:
\ 0209 3E00 LD A,BYTE3 fselSetMode
\ 020B 210000 LD HL,LWRD fselSetMode
\ 020E C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0211 ?0178:
\ 0211 110700 LD DE,g_music_vars+7
\ 0214 3E00 LD A,BYTE3 fselGetLocation
\ 0216 210000 LD HL,LWRD fselGetLocation
\ 0219 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 021C musicpSendCommand_bank:
195
196 //==================================================================
197 bool musicpSendCommand_bank( BYTE cmd, int param )
198 {
\ 021C CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 021F FEFF DEFW 65534
\ 0221 FDE5 PUSH IY
\ 0223 C5 PUSH BC
\ 0224 FDE1 POP IY
199 bool result = FALSE;
200 //根据不同的音乐类型发不同的命令
201 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0226 DB4E IN A,(78)
\ 0228 CBDF SET 3,A
\ 022A D34E OUT (78),A
202 switch (cmd)
\ 022C DD7E02 LD A,(IX+2)
\ 022F FE04 CP 4
\ 0231 202B JR NZ,?0056
\ 0233 ?0049:
203 {
204 case MC_PLAY:
205
206 if (!g_PAOpenFlag)
\ 0233 3A0000 LD A,(g_PAOpenFlag)
\ 0236 B7 OR A
\ 0237 2003 JR NZ,?0051
\ 0239 ?0050:
207 {
208 //第一次进入AP时由于要开PA,为了减少噪音,要进行淡入。
209 #ifdef OPT_Sup_FadeIn_fun
210 musicpSendCommand(MC_FADEINOUT, FadeIn_def);
\ 0239 CD9400 CALL LWRD ?0170
\ 023C ?0051:
211 #endif //OPT_Sup_FadeIn_fun
212 }
213 if (g_FCexitflag)
\ 023C 3A0000 LD A,(g_FCexitflag)
\ 023F B7 OR A
\ 0240 2804 JR Z,?0053
\ 0242 ?0052:
214 {
215 openPA(0);
\ 0242 1E00 LD E,0
\ 0244 1804 JR ?0153
216 }
217 else
\ 0246 ?0053:
218 {
219 openPA(g_music_vars.volume);
\ 0246 ED5B0000 LD DE,(g_music_vars)
\ 024A ?0153:
\ 024A 3E00 LD A,BYTE3 openPA
\ 024C 210000 LD HL,LWRD openPA
\ 024F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0252 ?0054:
220 }
221
222 if (param == Nor_Break_open)
\ 0252 FDE5 PUSH IY
\ 0254 E1 POP HL
\ 0255 3E01 LD A,1
\ 0257 AD XOR L
\ 0258 B4 OR H
\ 0259 2003 JR NZ,?0056
\ 025B ?0055:
223 {
224 //断点播放时要淡入
225 #ifdef OPT_Sup_FadeIn_fun
226 musicpSendCommand(MC_FADEINOUT, FadeIn_def);
\ 025B CD9400 CALL LWRD ?0170
\ 025E ?0056:
227 #endif //OPT_Sup_FadeIn_fun
228 }
229 break;
\ 025E ?0057:
230
231 default:
232 break;
\ 025E ?0048:
233 }
234 switch (g_currentMusicType)
\ 025E ED5B0000 LD DE,(g_currentMusicType)
\ 0262 CD0000 CALL LWRD ?C_S_SWITCH_L06
\ 0265 01 DEFB 1
\ 0266 0600 DEFW 6
\ 0268 9A03 DEFW ?0091
\ 026A 7602 DEFW ?0059
\ 026C C902 DEFW ?0068
\ 026E C902 DEFW ?0068
\ 0270 C902 DEFW ?0068
\ 0272 5B03 DEFW ?0084
\ 0274 1C03 DEFW ?0077
\ 0276 ?0059:
235 {
236 case Music_MP3: //mp3
237 BankSwitch((unsigned long)mp3pSendCommand >> 16);
\ 0276 1E00 LD E,BYTE3 mp3pSendCommand
\ 0278 CD5204 CALL LWRD ?0172
238 result = mp3pSendCommand(cmd, param);
\ 027B 3E00 LD A,BYTE3 mp3pSendCommand
\ 027D 210000 LD HL,LWRD mp3pSendCommand
\ 0280 CD2404 CALL LWRD ?0164
239 switch(cmd)
\ 0283 2041 JR NZ,?0066
\ 0285 ?0061:
240 {
241 case MC_LOAD:
242 mp3pSendCommand(MC_SETVOLUME, g_music_vars.volume);
\ 0285 ED4B0000 LD BC,(g_music_vars)
\ 0289 79 LD A,C
\ 028A 07 RLCA
\ 028B 9F SBC A,A
\ 028C 47 LD B,A
\ 028D 1E40 LD E,64
\ 028F 3E00 LD A,BYTE3 mp3pSendCommand
\ 0291 210000 LD HL,LWRD mp3pSendCommand
\ 0294 CD1604 CALL LWRD ?0163
243 mp3pSendCommand(MC_SETSPEED, g_music_vars.play_rate);
\ 0297 3E00 LD A,BYTE3 mp3pSendCommand
\ 0299 210000 LD HL,LWRD mp3pSendCommand
\ 029C CD3004 CALL LWRD ?0165
244 mp3pSendCommand(MC_SETEQ, g_music_vars.eq_type);
\ 029F 3E00 LD A,BYTE3 mp3pSendCommand
\ 02A1 210000 LD HL,LWRD mp3pSendCommand
\ 02A4 CD3C04 CALL LWRD ?0166
245 if(g_music_vars.eq_type>8)
\ 02A7 301D JR NC,?0066
\ 02A9 ?0062:
246 {
247 if(SRSModeFlag)
\ 02A9 3A0000 LD A,(SRSModeFlag)
\ 02AC B7 OR A
\ 02AD 280F JR Z,?0065
\ 02AF ?0064:
248 {
249 mp3pSendCommand(MC_SETUSEREQ, (int)&(g_music_vars.SRSMod));
\ 02AF 015100 LD BC,g_music_vars+81
\ 02B2 1E42 LD E,66
\ 02B4 3E00 LD A,BYTE3 mp3pSendCommand
\ 02B6 210000 LD HL,LWRD mp3pSendCommand
\ 02B9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
250 }
251 else
\ 02BC 1808 JR ?0066
\ 02BE ?0065:
252 {
253 srs_default_set();
\ 02BE 3E00 LD A,BYTE3 srs_default_set
\ 02C0 210000 LD HL,LWRD srs_default_set
\ 02C3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02C6 ?0066:
\ 02C6 ?0063:
254 }
255 }
256 break;
\ 02C6 ?0067:
257
258 default:
259 break;
\ 02C6 ?0060:
260 }
261 break;
\ 02C6 C39E03 JP LWRD ?0058
\ 02C9 ?0068:
262
263 case Music_WMA: //wma
264 case Music_ASF: //asf
265 case Music_WMV: //wmv
266 BankSwitch((unsigned long)wmapSendCommand >> 16);
\ 02C9 1E00 LD E,BYTE3 wmapSendCommand
\ 02CB CD5204 CALL LWRD ?0172
267 result = wmapSendCommand(cmd, param);
\ 02CE 3E00 LD A,BYTE3 wmapSendCommand
\ 02D0 210000 LD HL,LWRD wmapSendCommand
\ 02D3 CD2404 CALL LWRD ?0164
268
269 switch(cmd)
\ 02D6 2041 JR NZ,?0075
\ 02D8 ?0070:
270 {
271 case MC_LOAD:
272 wmapSendCommand(MC_SETVOLUME, g_music_vars.volume);
\ 02D8 ED4B0000 LD BC,(g_music_vars)
\ 02DC 79 LD A,C
\ 02DD 07 RLCA
\ 02DE 9F SBC A,A
\ 02DF 47 LD B,A
\ 02E0 1E40 LD E,64
\ 02E2 3E00 LD A,BYTE3 wmapSendCommand
\ 02E4 210000 LD HL,LWRD wmapSendCommand
\ 02E7 CD1604 CALL LWRD ?0163
273 wmapSendCommand(MC_SETSPEED, g_music_vars.play_rate);
\ 02EA 3E00 LD A,BYTE3 wmapSendCommand
\ 02EC 210000 LD HL,LWRD wmapSendCommand
\ 02EF CD3004 CALL LWRD ?0165
274 wmapSendCommand(MC_SETEQ, g_music_vars.eq_type);
\ 02F2 3E00 LD A,BYTE3 wmapSendCommand
\ 02F4 210000 LD HL,LWRD wmapSendCommand
\ 02F7 CD3C04 CALL LWRD ?0166
275 if(g_music_vars.eq_type>8)
\ 02FA 301D JR NC,?0075
\ 02FC ?0071:
276 {
277 if(SRSModeFlag)
\ 02FC 3A0000 LD A,(SRSModeFlag)
\ 02FF B7 OR A
\ 0300 280F JR Z,?0074
\ 0302 ?0073:
278 {
279 wmapSendCommand(MC_SETUSEREQ, (int)&(g_music_vars.SRSMod));
\ 0302 015100 LD BC,g_music_vars+81
\ 0305 1E42 LD E,66
\ 0307 3E00 LD A,BYTE3 wmapSendCommand
\ 0309 210000 LD HL,LWRD wmapSendCommand
\ 030C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
280 }
281 else
\ 030F 1808 JR ?0075
\ 0311 ?0074:
282 {
283 srs_default_set();
\ 0311 3E00 LD A,BYTE3 srs_default_set
\ 0313 210000 LD HL,LWRD srs_default_set
\ 0316 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0319 ?0075:
\ 0319 ?0072:
284 }
285 }
286 break;
\ 0319 ?0076:
287
288 default:
289 break;
\ 0319 ?0069:
290 }
291 break;
\ 0319 C39E03 JP LWRD ?0058
\ 031C ?0077:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -