ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,232 行 · 第 1/4 页
LST
1,232 行
258 old_active=active-1;
\ 0446 2A0000 LD HL,(active)
\ 0449 2B DEC HL
\ 044A DD75FA LD (IX-6),L
\ 044D DD74FB LD (IX-5),H
259 list_change=TRUE;
\ 0450 DD36F001 LD (IX-16),1
260 }
261 else
\ 0454 1809 JR ?0070
\ 0456 ?0068:
262 need_draw = TRUE;
\ 0456 ?0069:
263 }
264 else
\ 0456 ?0066:
265 {
266 active = 0;
\ 0456 6A LD L,D
\ 0457 62 LD H,D
\ 0458 220000 LD (active),HL
267 need_draw = TRUE;
\ 045B ?0117:
\ 045B DD36EE01 LD (IX-18),1
\ 045F ?0070:
268 }
269 sel_next(TRUE);
\ 045F 1E01 LD E,1
\ 0461 3E00 LD A,BYTE3 sel_next
\ 0463 218600 LD HL,LWRD sel_next
\ 0466 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0469 ?0072:
270 //清除多出的HOLD消息,防止按键停了还跳几曲
271 while(ap_get_message() != 0);
\ 0469 CD0000 CALL LWRD ap_get_message
\ 046C B7 OR A
\ 046D CA4101 JP Z,?0023
\ 0470 ?0073:
272 break;
\ 0470 18F7 JR ?0072
\ 0472 ?0071:
\ 0472 ?0074:
273
274 case AP_KEY_MODE:
275 g_menu_active=TRUE;
276 break;
\ 0472 ?0075:
277
278 case AP_KEY_MODE|AP_KEY_UP: // set the mode
279
280 if(g_menu_active)
\ 0472 3A0000 LD A,(g_menu_active)
\ 0475 B7 OR A
\ 0476 2828 JR Z,?0077
\ 0478 ?0076:
281 {
282 result=MenuInPic();
\ 0478 3E00 LD A,BYTE3 MenuInPic
\ 047A 210000 LD HL,LWRD MenuInPic
\ 047D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
283 if(result==RESULT_IGNORE)
\ 0480 3E34 LD A,52
\ 0482 AD XOR L
\ 0483 B4 OR H
\ 0484 282E JR Z,?0112
\ 0486 ?0078:
284 {
285 file_changed=TRUE;
286 break;
\ 0486 ?0079:
287 }
288
289 else if(result==RESULT_SD_OUT)
\ 0486 3E36 LD A,54
\ 0488 AD XOR L
\ 0489 B4 OR H
\ 048A 200E JR NZ,?0081
\ 048C ?0080:
290 {
291 if(g_viewpic_vars.location.disk=='H')
\ 048C 3A0400 LD A,(g_viewpic_vars+4)
\ 048F FE48 CP 72
\ 0491 204A JR NZ,?0114
\ 0493 ?0082:
292 g_viewpic_vars.location.disk='C';
\ 0493 3E43 LD A,67
\ 0495 320400 LD (g_viewpic_vars+4),A
\ 0498 ?0083:
293 need_sel_file = TRUE;
\ 0498 1843 JR ?0114
294 break;
\ 049A ?0081:
295 }
296
297 else if(result==0)
\ 049A 7D LD A,L
\ 049B B4 OR H
\ 049C 201D JR NZ,?0088
\ 049E ?0084:
298 {
299 need_sel_file = TRUE;
\ 049E 183D JR ?0114
300 break;
\ 04A0 ?0085:
301 }
302 else
303 return result;
304 }
\ 04A0 ?0077:
305 else
306 g_menu_active=TRUE;
\ 04A0 3E01 LD A,1
\ 04A2 320000 LD (g_menu_active),A
307 break;
\ 04A5 C34101 JP LWRD ?0023
\ 04A8 ?0086:
308 case AP_KEY_PLAY | AP_KEY_UP:
309 result=do_play();
\ 04A8 3E00 LD A,BYTE3 do_play
\ 04AA 210000 LD HL,LWRD do_play
\ 04AD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
310 if(result==0)
\ 04B0 7D LD A,L
\ 04B1 B4 OR H
\ 04B2 2007 JR NZ,?0088
\ 04B4 ?0087:
311 {
312 file_changed=TRUE;
\ 04B4 ?0112:
\ 04B4 DD36EF01 LD (IX-17),1
313 break;
\ 04B8 C34101 JP LWRD ?0023
\ 04BB ?0088:
314 }
315 else
316 return result;
317 case AP_MSG_SD_OUT:
\ 04BB 1840 JR ?0098
\ 04BD ?0089:
318 if (g_viewpic_vars.location.disk == 'H')
\ 04BD 3A0400 LD A,(g_viewpic_vars+4)
\ 04C0 FE48 CP 72
\ 04C2 2021 JR NZ,?0091
\ 04C4 ?0090:
319 {
320 g_viewpic_vars.location.disk = 'C';
\ 04C4 3E43 LD A,67
\ 04C6 320400 LD (g_viewpic_vars+4),A
321 ui_err_msg(CARDPULL,CARDPULL,g_comval.langid);//显示卡拔出
\ 04C9 ED4B0C00 LD BC,(g_comval+12)
\ 04CD 42 LD B,D
\ 04CE C5 PUSH BC
\ 04CF 019101 LD BC,401
\ 04D2 59 LD E,C
\ 04D3 50 LD D,B
\ 04D4 3E00 LD A,BYTE3 ui_err_msg
\ 04D6 210000 LD HL,LWRD ui_err_msg
\ 04D9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04DC F1 POP AF
322 need_sel_file=TRUE;
\ 04DD ?0114:
\ 04DD 3E01 LD A,1
\ 04DF 320400 LD (need_sel_file),A
323 break;
\ 04E2 C34101 JP LWRD ?0023
\ 04E5 ?0091:
\ 04E5 ?0092:
324 }
325
326 default:
327 key = ap_handle_hotkey( key);
\ 04E5 59 LD E,C
\ 04E6 CD0000 CALL LWRD ap_handle_hotkey
\ 04E9 4F LD C,A
328 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 04EA 3E32 LD A,50
\ 04EC A9 XOR C
\ 04ED 2007 JR NZ,?0094
\ 04EF ?0093:
\ 04EF DD36EE01 LD (IX-18),1
\ 04F3 C34101 JP LWRD ?0023
\ 04F6 ?0094:
329 else if(key != 0) return key;
\ 04F6 79 LD A,C
\ 04F7 B7 OR A
\ 04F8 CA4101 JP Z,?0023
\ 04FB ?0096:
\ 04FB 69 LD L,C
\ 04FC 60 LD H,B
330
331 }
\ 04FD ?0097:
\ 04FD ?0095:
\ 04FD ?0053:
332
333 }
334 return result;
335 }
\ 04FD ?0098:
\ 04FD DDF9 LD SP,IX
\ 04FF DDE1 POP IX
\ 0501 FDE1 POP IY
\ 0503 D1 POP DE
\ 0504 C1 POP BC
\ 0505 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0508 ?0120:
\ 0508 0E0D LD C,13
\ 050A 113100 LD DE,49
\ 050D ?0119:
\ 050D 3E00 LD A,BYTE3 ResShowPic
\ 050F 210000 LD HL,LWRD ResShowPic
\ 0512 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0515 ?0121:
\ 0515 C6FE ADD A,254
\ 0517 4F LD C,A
\ 0518 1E20 LD E,32
\ 051A CD0000 CALL LWRD SetTextPos
\ 051D FDE5 PUSH IY
\ 051F C1 POP BC
\ 0520 110500 LD DE,fileName
\ 0523 3E00 LD A,BYTE3 read_idm_data_pic
\ 0525 210000 LD HL,LWRD read_idm_data_pic
\ 0528 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 052B reset_cur_list_bg_color_pic:
336
337
338
339 void reset_cur_list_bg_color_pic(int i, int pos)
340 {
\ 052B FDE5 PUSH IY
\ 052D DDE5 PUSH IX
\ 052F C5 PUSH BC
\ 0530 DDE1 POP IX
\ 0532 D5 PUSH DE
\ 0533 FDE1 POP IY
341 ResShowPic(FILEBCK, explorer_str_x_def-2, pos-4);
\ 0535 79 LD A,C
\ 0536 C6FC ADD A,252
\ 0538 4F LD C,A
\ 0539 C5 PUSH BC
\ 053A 0E1E LD C,30
\ 053C 113200 LD DE,50
\ 053F CD0D05 CALL LWRD ?0119
\ 0542 F1 POP AF
342 SetBackgdColor(Color_WHITE_def);
\ 0543 010000 LD BC,0
\ 0546 11FFFF LD DE,65535
\ 0549 CD0000 CALL LWRD SetBackgdColor
343 SetTextPos(explorer_str_x_def, pos-2);
\ 054C DDE5 PUSH IX
\ 054E E1 POP HL
\ 054F 7D LD A,L
344 read_idm_data_pic(fileName, i);
\ 0550 CD1505 CALL LWRD ?0121
345 PutS(fileName, -1);
\ 0553 0EFF LD C,255
\ 0555 110500 LD DE,fileName
\ 0558 CD0000 CALL LWRD PutS
346 // SetBackgdColor(Color_WHITE_def);
347 fselGetByNO(file_name, i + 1);
\ 055B FDE5 PUSH IY
\ 055D C1 POP BC
\ 055E 03 INC BC
\ 055F 110000 LD DE,file_name
\ 0562 3E00 LD A,BYTE3 fselGetByNO
\ 0564 210000 LD HL,LWRD fselGetByNO
\ 0567 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
348
349 }
\ 056A DDE1 POP IX
\ 056C FDE1 POP IY
\ 056E C30000 JP LWRD ?BANK_FAST_LEAVE_L08
350
351
352
353
\ 0000 RSEG CSTR
\ 0000 ?0004:
\ 0000 524F4F54 DEFB 'ROOT'
\ 0004 00 DEFB 0
\ 0005 ?0006:
\ 0005 5C00 DEFB 92,0
\ 0000 RSEG CONST
\ 0000 menu_pos:
\ 0000 77 DEFB 'w'
\ 0001 62 DEFB 'b'
\ 0002 4D DEFB 'M'
\ 0003 38 DEFB '8'
\ 0004 23 DEFB '#'
\ 0005 0E DEFB 14
\ 0000 RSEG UDATA0
\ 0000 active:
\ 0002 DEFS 2
\ 0002 g_file_total:
\ 0004 DEFS 2
\ 0004 need_sel_file:
\ 0005 DEFS 1
\ 0005 fileName:
\ 0037 DEFS 50
\ 0037 END
Errors: none
Warnings: none
Code size: 1393
Constant size: 13
Static variable size: Data(55) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?