📄 sub_playstatuskey.lst
字号:
\ 0391 320000 LD (ui_auto_update),A
\ 0394 210000 LD HL,UpDisplayFlag
\ 0397 7E LD A,(HL)
\ 0398 F6C1 OR 193
\ 039A 77 LD (HL),A
\ 039B 23 INC HL
\ 039C 36FF LD (HL),255
439 UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ; //by zxs for not refresh the bg
\ 039E 210000 LD HL,UpDisplayFlag
\ 03A1 CB86 RES 0,(HL)
\ 03A3 ?0080:
440 }
441 break;
\ 03A3 1879 JR ?0098
\ 03A5 ?0083:
442
443 case WaitSetAPointForAB:
444 musicpSendCommand(MC_SETA_B, SetAPoint); //SET_A
\ 03A5 010100 LD BC,1
\ 03A8 CD4102 CALL LWRD ?0202
445 break;
\ 03AB 1871 JR ?0098
\ 03AD ?0084:
446
447 case WaitSetBPointForAB:
448 if(g_ABMinTimeCNT == 0) //要大于AB最小时间
\ 03AD 3A0000 LD A,(g_ABMinTimeCNT)
\ 03B0 B7 OR A
\ 03B1 200A JR NZ,?0086
\ 03B3 ?0085:
449 {
450 DEBUGP(0xa1);
451
452 if ( musicpSendCommand(MC_SETA_B, SetBPoint) ); //SET_B
\ 03B3 010200 LD BC,2
\ 03B6 CD4102 CALL LWRD ?0202
\ 03B9 ?0087:
\ 03B9 ?0088:
453 {
454 g_AVSetFlag = FALSE;
\ 03B9 AF XOR A
\ 03BA 320000 LD (g_AVSetFlag),A
\ 03BD ?0086:
455 }
456 DEBUGP(0xa2);
457 }
458 break;
\ 03BD 185F JR ?0098
\ 03BF ?0089:
459
460 case ABLoopPlay:
461 #ifdef OPT_Sup_follow_fun//支持跟读对比功能
462 if (g_music_vars.location.disk == 'C')
\ 03BF 3A0700 LD A,(g_music_vars+7)
\ 03C2 FE43 CP 67
\ 03C4 2036 JR NZ,?0091
\ 03C6 ?0090:
463 {
464 //只有当前盘为“C”时才支持跟读对比功能
465 musicpSendCommand(MC_GETSTATUS, (int)(& status_buf));
\ 03C6 210200 LD HL,2
\ 03C9 39 ADD HL,SP
\ 03CA 4D LD C,L
\ 03CB 44 LD B,H
\ 03CC 1E83 LD E,131
\ 03CE CD4302 CALL LWRD ?0200
466 if (status_buf.status == PLAYING_REACH_A)
\ 03D1 DD7EF8 LD A,(IX-8)
\ 03D4 FE07 CP 7
\ 03D6 200B JR NZ,?0093
\ 03D8 ?0092:
467 {
468 musicpSendCommand(MC_CALTIME, NULL);
\ 03D8 010000 LD BC,0
\ 03DB 1E13 LD E,19
\ 03DD CD2E04 CALL LWRD ?0194
469 musicpSendCommand(MC_PLAY, NULL);
\ 03E0 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03E3 ?0093:
470 }
471 g_FCexitflag = FALSE;
\ 03E3 AF XOR A
\ 03E4 320000 LD (g_FCexitflag),A
472 g_result = ui_follow_compare();
\ 03E7 3E00 LD A,BYTE3 ui_follow_compare
\ 03E9 210000 LD HL,LWRD ui_follow_compare
\ 03EC CD4B02 CALL LWRD ?0203
473 g_music_vars.MusicOpenMod = Nor_Break_open;//都是以断点方式退出的
\ 03EF 320600 LD (g_music_vars+6),A
474 g_ReplayTimeCNT = 0;
\ 03F2 AF XOR A
\ 03F3 320000 LD (g_ReplayTimeCNT),A
475 if (g_result != 0)
\ 03F6 7D LD A,L
\ 03F7 B4 OR H
\ 03F8 280A JR Z,?0096
\ 03FA ?0094:
476 {
477 return g_result;
478 }
\ 03FA 182A JR ?0100
\ 03FC ?0095:
479 }
480 else
\ 03FC ?0091:
481 {
482 //当插卡时不支持跟读对比功能
483 musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
\ 03FC CD3E02 CALL LWRD ?0201
484 RePlayStatus = WaitSetAPointForAB;
\ 03FF 3E01 LD A,1
\ 0401 320000 LD (RePlayStatus),A
\ 0404 ?0096:
485 }
486 #else//OPT_Sup_follow_fun
487 musicpSendCommand(MC_SETA_B, ClrABPoint); //CLEAR_AB
488 RePlayStatus = WaitSetAPointForAB;
489 #endif//OPT_Sup_follow_fun
490
491
492 SetFullInterface();
\ 0404 AF XOR A
\ 0405 320000 LD (ui_auto_update),A
\ 0408 210000 LD HL,UpDisplayFlag
\ 040B 7E LD A,(HL)
\ 040C F6C1 OR 193
\ 040E 77 LD (HL),A
\ 040F 23 INC HL
\ 0410 36FF LD (HL),255
493 // UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ; //by zxs for not refresh the bg
494 if(RePlayStatus!=NormalPlay) //zxs add for s73
\ 0412 3A0000 LD A,(RePlayStatus)
\ 0415 B7 OR A
\ 0416 2806 JR Z,?0098
\ 0418 ?0097:
495 UpDisplayFlag = UpDisplayFlag &clr_musicbitrate;
\ 0418 210000 LD HL,UpDisplayFlag
\ 041B 23 INC HL
\ 041C CBAE RES 5,(HL)
\ 041E ?0098:
496 //UpDisplayFlag=UpDisplayFlag | up_MPRLmode;
497 break;
\ 041E ?0099:
498
499 default:
500 break;
\ 041E ?0076:
\ 041E ?0075:
501 }
502 }
503 need_draw = TRUE;
\ 041E 3E01 LD A,1
\ 0420 320000 LD (need_draw),A
504 return NULL;
\ 0423 ?0172:
\ 0423 210000 LD HL,0
505 }
\ 0426 ?0100:
\ 0426 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0429 ?0195:
\ 0429 010500 LD BC,5
\ 042C 1E59 LD E,89
\ 042E ?0194:
\ 042E 3E00 LD A,BYTE3 musicpSendCommand
\ 0430 210000 LD HL,LWRD musicpSendCommand
\ 0433 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0436 010000 LD BC,0
\ 0439 1E04 LD E,4
\ 043B 3E00 LD A,BYTE3 musicpSendCommand
\ 043D 210000 LD HL,LWRD musicpSendCommand
\ 0440 C9 RET
\ 0441 ?0207:
\ 0441 AF XOR A
\ 0442 D327 OUT (39),A
\ 0444 ED5B0000 LD DE,(m_Mp3deFileHandle)
\ 0448 CD0000 CALL LWRD FS_FTell
\ 044B 220400 LD (MusicEdit_SelSeg+4),HL
\ 044E ED430600 LD (MusicEdit_SelSeg+6),BC
\ 0452 3A0000 LD A,(c_mp3deNowTimeSencond)
\ 0455 320200 LD (MusicEditEndTime+2),A
\ 0458 3A0000 LD A,(c_mp3deNowTimeMinute)
\ 045B 320100 LD (MusicEditEndTime+1),A
\ 045E 3A0000 LD A,(c_mp3deNowTimeHour)
\ 0461 320000 LD (MusicEditEndTime),A
\ 0464 C9 RET
\ 0465 ?0208:
\ 0465 1E01 LD E,1
\ 0467 3E00 LD A,BYTE3 FadeOut
\ 0469 210000 LD HL,LWRD FadeOut
\ 046C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 046F AF XOR A
\ 0470 320000 LD (MusicEditSelStatus),A
\ 0473 320000 LD (MusicEditStatus),A
\ 0476 C9 RET
\ 0477 play_key_prev:
506
507 //======正常播放时的PREV键处理========
508 int play_key_prev( int key )
509 {
\ 0477 C5 PUSH BC
\ 0478 D5 PUSH DE
510 wma_play_status_t status_buf;
511
512 if (RePlayStatus != NormalPlay)
\ 0479 3A0000 LD A,(RePlayStatus)
\ 047C B7 OR A
\ 047D 2813 JR Z,?0102
\ 047F ?0101:
513 {
514 musicpSendCommand(MC_SETA_B, ClrABPoint); //clear AB
\ 047F CD3E02 CALL LWRD ?0201
515
516 RePlayStatus = WaitSetAPointForAB;
\ 0482 3E01 LD A,1
\ 0484 320000 LD (RePlayStatus),A
517 UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
\ 0487 210000 LD HL,UpDisplayFlag
\ 048A 23 INC HL
\ 048B CBDE SET 3,(HL)
518 need_draw = TRUE;
\ 048D 320000 LD (need_draw),A
519 return NULL;
\ 0490 1830 JR ?0103
520 }
\ 0492 ?0102:
521
522 switch (PlayStatus)
\ 0492 3A0000 LD A,(PlayStatus)
\ 0495 FE03 CP 3
\ 0497 3813 JR C,?0105
\ 0499 FE05 CP 5
\ 049B 300F JR NC,?0105
\ 049D ?0104:
523 {
524 case FBPlaySta:
525 case FFPlaySta:
526 musicpSendCommand(MC_STEP, 0);
\ 049D 010000 LD BC,0
\ 04A0 1E07 LD E,7
\ 04A2 CD4302 CALL LWRD ?0200
527 PlayStatus = PlaySta;
\ 04A5 3E02 LD A,2
\ 04A7 320000 LD (PlayStatus),A
528 break;
\ 04AA 1816 JR ?0103
\ 04AC ?0105:
\ 04AC FE02 CP 2
\ 04AE 2012 JR NZ,?0103
529
530 case PlaySta:
531 #ifdef OPT_Sup_FadeOut_fun
532 FadeOut(TRUE);
\ 04B0 CD6504 CALL LWRD ?0208
533 #endif
534
535 MusicEditSelStatus=MusicEditSelSta_NoSel;
536 MusicEditStatus=MusicEditSta_NoFun;
537
538 g_result = PrevMusicInPlay();
\ 04B3 3E
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -