sub_function1.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,380 行 · 第 1/5 页
LST
1,380 行
383 break;
\ 0440 1843 JR ?0087
\ 0442 ?0113:
384
385 case Music_OGG:
386 BankSwitch((unsigned long)oggpSendCommand >> 16);
\ 0442 1E00 LD E,BYTE3 oggpSendCommand
\ 0444 CD3905 CALL LWRD ?0219
387 result = oggpSendCommand(cmd, param);
\ 0447 3E00 LD A,BYTE3 oggpSendCommand
\ 0449 210000 LD HL,LWRD oggpSendCommand
\ 044C CD0B05 CALL LWRD ?0210
388 switch(cmd)
\ 044F 2034 JR NZ,?0087
\ 0451 ?0115:
389 {
390 case MC_LOAD:
391 oggpSendCommand(MC_SETVOLUME, g_music_vars.volume);
\ 0451 ED4B0000 LD BC,(g_music_vars)
\ 0455 79 LD A,C
\ 0456 07 RLCA
\ 0457 9F SBC A,A
\ 0458 47 LD B,A
\ 0459 1E40 LD E,64
\ 045B 3E00 LD A,BYTE3 oggpSendCommand
\ 045D 210000 LD HL,LWRD oggpSendCommand
\ 0460 CDFD04 CALL LWRD ?0208
392 oggpSendCommand(MC_SETSPEED, g_music_vars.play_rate);
\ 0463 3E00 LD A,BYTE3 oggpSendCommand
\ 0465 210000 LD HL,LWRD oggpSendCommand
\ 0468 CD2E05 CALL LWRD ?0213
393 if(g_music_vars.eq_type > 0x10)
\ 046B 3005 JR NC,?0117
\ 046D ?0116:
394 oggpSendCommand(MC_SETEQ, 0);
\ 046D 010000 LD BC,0
\ 0470 1803 JR ?0196
395 else
\ 0472 ?0117:
396 oggpSendCommand(MC_SETEQ, g_music_vars.eq_type);
\ 0472 48 LD C,B
\ 0473 0600 LD B,0
\ 0475 ?0196:
\ 0475 1E43 LD E,67
\ 0477 3E00 LD A,BYTE3 oggpSendCommand
\ 0479 210000 LD HL,LWRD oggpSendCommand
\ 047C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 047F ?0118:
397 break;
\ 047F 1804 JR ?0087
\ 0481 ?0119:
398
399 default:
400 break;
\ 0481 ?0114:
401 }
402 break;
\ 0481 ?0120:
403
404
405 default:
406 return FALSE;
\ 0481 2E00 LD L,0
407 }
\ 0483 1873 JR ?0135
\ 0485 ?0087:
408
409
410 //[2]下面是在做完如下命令都要做的事情
411 switch ( cmd )
\ 0485 DD5E02 LD E,(IX+2)
\ 0488 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 048B 0400 DEFW 4
\ 048D 04 DEFB 4
\ 048E 06 DEFB 6
\ 048F 13 DEFB 19
\ 0490 41 DEFB 65
\ 0491 F504 DEFW ?0121
\ 0493 9B04 DEFW ?0122
\ 0495 EC04 DEFW ?0133
\ 0497 E604 DEFW ?0132
\ 0499 D904 DEFW ?0129
\ 049B ?0122:
412 {
413 case MC_SETA_B:
414 if (result == 0)
\ 049B AF XOR A
\ 049C DDB6FE OR (IX-2)
\ 049F 2854 JR Z,?0121
\ 04A1 ?0123:
415 {
416 break;
\ 04A1 ?0124:
417 }
418
419 switch ( param )
\ 04A1 FDE5 PUSH IY
\ 04A3 C1 POP BC
\ 04A4 3E01 LD A,1
\ 04A6 A9 XOR C
\ 04A7 B0 OR B
\ 04A8 200E JR NZ,?0127
\ 04AA ?0126:
420 {
421 case SetAPoint:
422 g_2HZ_CNT = 0;//开始计AB点时间长度
\ 04AA 6F LD L,A
\ 04AB 67 LD H,A
\ 04AC 220000 LD (g_2HZ_CNT),HL
423 g_ABMinTimeCNT = ABReplayMiniTime_def;//定AB的最小时长为400ms
\ 04AF 3E14 LD A,20
\ 04B1 320000 LD (g_ABMinTimeCNT),A
424 //g_ABMinTimeCNT = 4000/20;//定AB的最小时长为 4000/20 for debug
425 RePlayStatus = WaitSetBPointForAB;
\ 04B4 3E02 LD A,2
\ 04B6 1811 JR ?0197
426 UpDisplayFlag = UpDisplayFlag | up_MPRLmode;
427 need_draw = TRUE;
428 break;
\ 04B8 ?0127:
\ 04B8 3E02 LD A,2
\ 04BA A9 XOR C
\ 04BB B0 OR B
\ 04BC 2037 JR NZ,?0121
429
430 case SetBPoint:
431 g_ABPointTimeSize = g_2HZ_CNT;//记下AB点时间长度
\ 04BE 2A0000 LD HL,(g_2HZ_CNT)
\ 04C1 220000 LD (g_ABPointTimeSize),HL
432 g_ReplayTimeCNT = 0;//复读次数清0
\ 04C4 320000 LD (g_ReplayTimeCNT),A
433 RePlayStatus = ABLoopPlay;//自动进入复读模式
\ 04C7 3E03 LD A,3
\ 04C9 ?0197:
\ 04C9 320000 LD (RePlayStatus),A
434 UpDisplayFlag = UpDisplayFlag | up_MPRLmode;//刷新复读图标
\ 04CC 210000 LD HL,UpDisplayFlag
\ 04CF 23 INC HL
\ 04D0 CBDE SET 3,(HL)
435 need_draw = TRUE;
\ 04D2 3E01 LD A,1
\ 04D4 320000 LD (need_draw),A
436 break;
\ 04D7 181C JR ?0121
\ 04D9 ?0128:
437
438 default:
439 break;
\ 04D9 ?0125:
440 }
441 break;
\ 04D9 ?0129:
442
443 case MC_PLAY:
444 if (result)
\ 04D9 AF XOR A
\ 04DA DDB6FE OR (IX-2)
\ 04DD 2816 JR Z,?0121
\ 04DF ?0130:
445 {
446 PlayStatus = PlaySta;
\ 04DF 3E02 LD A,2
\ 04E1 320000 LD (PlayStatus),A
\ 04E4 ?0131:
447 }
448 break;
\ 04E4 180F JR ?0121
\ 04E6 ?0132:
449
450 case MC_STOP:
451 PlayStatus = StopSta;
\ 04E6 AF XOR A
\ 04E7 320000 LD (PlayStatus),A
452 CaltimeFlag = FALSE;//等待计时间
\ 04EA 1802 JR ?0198
453 WaitForCaltimeCNT = 0;
454 break;
\ 04EC ?0133:
455
456 case MC_CALTIME:
457 CaltimeFlag = TRUE;
\ 04EC 3E01 LD A,1
\ 04EE ?0198:
\ 04EE 320000 LD (CaltimeFlag),A
458 WaitForCaltimeCNT = 0;
\ 04F1 AF XOR A
\ 04F2 320000 LD (WaitForCaltimeCNT),A
459
460 break;
\ 04F5 ?0134:
461
462 default:
463 break;
\ 04F5 ?0121:
464 }
465 return result;
\ 04F5 DD6EFE LD L,(IX-2)
466 }
\ 04F8 ?0135:
\ 04F8 FDE1 POP IY
\ 04FA C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 04FD ?0208:
\ 04FD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0500 ED4B0300 LD BC,(g_music_vars+3)
\ 0504 79 LD A,C
\ 0505 07 RLCA
\ 0506 9F SBC A,A
\ 0507 47 LD B,A
\ 0508 1E46 LD E,70
\ 050A C9 RET
\ 050B ?0210:
\ 050B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 050E DD75FE LD (IX-2),L
\ 0511 DD7E02 LD A,(IX+2)
\ 0514 FE03 CP 3
\ 0516 C9 RET
\ 0517 ?0211:
\ 0517 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 051A ED4B0200 LD BC,(g_music_vars+2)
\ 051E 0600 LD B,0
\ 0520 1E43 LD E,67
\ 0522 C9 RET
\ 0523 ?0212:
\ 0523 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0526 3A0200 LD A,(g_music_vars+2)
\ 0529 47 LD B,A
\ 052A 3E08 LD A,8
\ 052C B8 CP B
\ 052D C9 RET
\ 052E ?0213:
\ 052E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0531 3A0200 LD A,(g_music_vars+2)
\ 0534 47 LD B,A
\ 0535 3E10 LD A,16
\ 0537 B8 CP B
\ 0538 C9 RET
\ 0539 ?0219:
\ 0539 CD0000 CALL LWRD BankSwitch
\ 053C FDE5 PUSH IY
\ 053E C1 POP BC
\ 053F DD5E02 LD E,(IX+2)
\ 0542 C9 RET
\ 0543 SelectCurMusic:
467
468 //===================重选当前歌曲=========================
469 void SelectCurMusic(void)
470 {
\ 0543 C5 PUSH BC
\ 0544 D5 PUSH DE
471 musicpSendCommand(MC_STOP, NULL);
\ 0545 CD7B05 CALL LWRD ?0209
472 musicpSendCommand(MC_CLOSE, NULL);
\ 0548 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
473 ChangeMusic(Music_Cur, Play_play); //播放当前歌曲
\ 054B 0E01 LD C,1
\ 054D 1E02 LD E,2
\ 054F 3E00 LD A,BYTE3 ChangeMusic
\ 0551 213E01 LD HL,LWRD ChangeMusic
\ 0554 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
474 GetInformation(); //取文件信息
\ 0557 3E00 LD A,BYTE3 GetInformation
\ 0559 210000 LD HL,LWRD GetInformation
\ 055C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
475 musicpSendCommand( MC_OPEN, (int)& g_Openparam );
\ 055F 010000 LD BC,g_Openparam
\ 0562 1E01 LD E,1
\ 0564 CD9305 CALL LWRD ?0214
476 musicpSendCommand(MC_LOAD, NULL);
\ 0567 1E03 LD E,3
\ 0569 CD9305 CALL LWRD ?0214
477 musicpSendCommand(MC_CALTIME, NULL);
\ 056C 1E13 LD E,19
\ 056E CD9305 CALL LWRD ?0214
478 musicpSendCommand(MC_PLAY, NULL);
\ 0571 1E04 LD E,4
\ 0573 CD9500
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?