ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 978 行 · 第 1/4 页
LST
978 行
220 // return RESULT_MAIN; //返回main ap
221
222 case AP_KEY_PREV | AP_KEY_UP:
223 while(ap_get_message() != 0);
\ 0313 CD0000 CALL LWRD ap_get_message
\ 0316 B7 OR A
\ 0317 CA9C01 JP Z,?0025
\ 031A ?0084:
224 break;
\ 031A 18F7 JR ?0081
\ 031C ?0082:
\ 031C ?0085:
225
226 case AP_KEY_PREV:
227 case AP_KEY_PREV | AP_KEY_HOLD:
228 if (g_changevolume&0x01)
\ 031C 3A0000 LD A,(g_changevolume)
\ 031F CB47 BIT 0,A
\ 0321 2805 JR Z,?0087
\ 0323 ?0086:
229 {
230 g_changevolume|=0x3f;
\ 0323 F63F OR 63
\ 0325 320000 LD (g_changevolume),A
\ 0328 ?0087:
231 // goto vol_sub_lzd;
232 }
233 memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
\ 0328 011400 LD BC,20
\ 032B 110000 LD DE,g_TagInfoBuf1
\ 032E 210000 LD HL,g_TagInfoBuf
\ 0331 EDB0 LDIR
234 //g_TagInfoBuf1[18]=0;
235 g_TagInfoBuf1[20]=0;
\ 0333 AF XOR A
\ 0334 321400 LD (g_TagInfoBuf1+20),A
236 g_result = ChangeMusic(Music_Prev, Stop_key);
237 GetInformation(); //取文件信息
\ 0337 CD4C01 CALL LWRD ?0144
238 need_draw = TRUE;
\ 033A 3E01 LD A,1
\ 033C 320000 LD (need_draw),A
\ 033F ?0089:
239 //清除多出的HOLD消息,防止按键停了还跳几曲
240 while(ap_get_message() != 0);
\ 033F CD0000 CALL LWRD ap_get_message
\ 0342 B7 OR A
\ 0343 CA9C01 JP Z,?0025
\ 0346 ?0090:
241 break;
\ 0346 18F7 JR ?0089
\ 0348 ?0088:
\ 0348 ?0091:
\ 0348 ?0093:
242
243 case AP_KEY_NEXT | AP_KEY_UP:
244 while(ap_get_message() != 0);
\ 0348 CD0000 CALL LWRD ap_get_message
\ 034B B7 OR A
\ 034C CA9C01 JP Z,?0025
\ 034F ?0094:
245 break;
\ 034F 18F7 JR ?0091
\ 0351 ?0092:
\ 0351 ?0095:
246
247 case AP_KEY_NEXT:
248 case AP_KEY_NEXT | AP_KEY_HOLD:
249
250 g_result = ChangeMusic(Music_Next, Stop_key);
\ 0351 0E00 LD C,0
\ 0353 1E03 LD E,3
251 GetInformation(); //取文件信息
\ 0355 CD4E01 CALL LWRD ?0145
252 g_result = ChangeMusic(Music_Next, Stop_key);
\ 0358 0E00 LD C,0
\ 035A 1E03 LD E,3
\ 035C 3E00 LD A,BYTE3 ChangeMusic
\ 035E 210000 LD HL,LWRD ChangeMusic
\ 0361 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0364 2600 LD H,0
\ 0366 220000 LD (g_result),HL
253 GetInformation(); //取文件信息
\ 0369 CD3401 CALL LWRD ?0142
254 memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
255 //g_TagInfoBuf1[18]=0;
256 g_TagInfoBuf1[20]=0;
257 g_result = ChangeMusic(Music_Prev, Stop_key);
258 GetInformation(); //取文件信息
\ 036C CD4C01 CALL LWRD ?0144
259 need_draw = TRUE;
\ 036F 3E01 LD A,1
\ 0371 320000 LD (need_draw),A
\ 0374 ?0097:
260 while(ap_get_message() != 0);
\ 0374 CD0000 CALL LWRD ap_get_message
\ 0377 B7 OR A
\ 0378 CA9C01 JP Z,?0025
\ 037B ?0098:
261 break;
\ 037B 18F7 JR ?0097
\ 037D ?0096:
\ 037D ?0099:
262
263 case AP_KEY_VOLSUB:
264 case AP_KEY_VOLSUB | AP_KEY_HOLD:
265
266
267
268 case AP_KEY_VOLADD:
269 case AP_KEY_VOLADD | AP_KEY_HOLD:
270 result = show_volume(FALSE);
\ 037D 1E00 LD E,0
\ 037F 3E00 LD A,BYTE3 show_volume
\ 0381 210000 LD HL,LWRD show_volume
\ 0384 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
271 if(result != 0) return result;
\ 0387 7D LD A,L
\ 0388 B4 OR H
\ 0389 205E JR NZ,?0112
\ 038B ?0100:
\ 038B ?0101:
272 need_draw = TRUE;
\ 038B 184C JR ?0139
273 break;
\ 038D ?0102:
274
275
276
277 case AP_MSG_RTC:
278 case AP_MSG_CHARGING:
279 ui_show_batt(GetBattery(), g_BatteryType,0);
\ 038D 0E00 LD C,0
\ 038F C5 PUSH BC
\ 0390 ED4B0000 LD BC,(g_BatteryType)
\ 0394 CD0000 CALL LWRD GetBattery
\ 0397 5F LD E,A
\ 0398 1600 LD D,0
\ 039A 3E00 LD A,BYTE3 ui_show_batt
\ 039C 210000 LD HL,LWRD ui_show_batt
\ 039F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03A2 E1 POP HL
280
281 break;
\ 03A3 C39C01 JP LWRD ?0025
\ 03A6 ?0103:
282 case AP_MSG_SD_OUT:
283 if (g_amv_vars.location.disk == 'H')
\ 03A6 3A0500 LD A,(g_amv_vars+5)
\ 03A9 FE48 CP 72
\ 03AB C29C01 JP NZ,?0025
\ 03AE ?0104:
284 {
285 g_amv_vars.location.disk = 'C';
\ 03AE 3E43 LD A,67
\ 03B0 320500 LD (g_amv_vars+5),A
286 ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
\ 03B3 ED4B0000 LD BC,(g_langid)
\ 03B7 0600 LD B,0
\ 03B9 C5 PUSH BC
\ 03BA 019101 LD BC,401
\ 03BD 59 LD E,C
\ 03BE 50 LD D,B
\ 03BF 3E00 LD A,BYTE3 ui_err_msg
\ 03C1 210000 LD HL,LWRD ui_err_msg
\ 03C4 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03C7 F1 POP AF
287 return RESULT_CURR_UI;
\ 03C8 ?0136:
\ 03C8 210000 LD HL,0
288 }
\ 03CB 181C JR ?0112
\ 03CD ?0105:
289 break;
\ 03CD ?0106:
290 default:
291 key = ap_handle_hotkey(key);
\ 03CD CD0000 CALL LWRD ap_handle_hotkey
\ 03D0 210000 LD HL,0
\ 03D3 39 ADD HL,SP
\ 03D4 77 LD (HL),A
292 if (key == RESULT_REDRAW)
\ 03D5 FE32 CP 50
\ 03D7 2008 JR NZ,?0108
\ 03D9 ?0107:
293 {
294 need_draw = TRUE;
\ 03D9 ?0139:
\ 03D9 3E01 LD A,1
\ 03DB 320000 LD (need_draw),A
\ 03DE C39C01 JP LWRD ?0025
\ 03E1 ?0108:
295 }
296 else if (key != 0)
\ 03E1 AF XOR A
\ 03E2 B6 OR (HL)
\ 03E3 CA9C01 JP Z,?0025
\ 03E6 ?0110:
297 {
298 return key;
\ 03E6 6F LD L,A
\ 03E7 2600 LD H,0
299 }
\ 03E9 ?0112:
\ 03E9 F1 POP AF
\ 03EA DDE1 POP IX
\ 03EC D1 POP DE
\ 03ED C1 POP BC
\ 03EE C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 03F1 ?0111:
\ 03F1 ?0109:
300 break;
\ 03F1 ?0031:
301 } //switch(key)
302 } //while(1)
303 }
304
305
\ 0000 RSEG CSTR
\ 0000 ?0038:
\ 0000 55495F53 DEFB 'UI_S0724.DRV'
\ 0004 30373234
\ 0008 2E445256
\ 000C 00 DEFB 0
\ 000D ?0047:
\ 000D 55495F54 DEFB 'UI_T0724.DRV'
\ 0011 30373234
\ 0015 2E445256
\ 0019 00 DEFB 0
\ 001A ?0056:
\ 001A 55495F4C DEFB 'UI_L0724.DRV'
\ 001E 30373234
\ 0022 2E445256
\ 0026 00 DEFB 0
\ 0027 END
Errors: none
Warnings: none
Code size: 1009
Constant size: 39
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?