📄 sub_callback.lst
字号:
##############################################################################
# #
# IAR Z80/64180 C-Compiler V4.04B/WIN #
# Front End V4.20N 25/Dec/106 17:00:43 #
# Global Optimizer V1.05D #
# #
# Target option = Z80 #
# Memory model = banked #
# Source file = d:\case_i_d90f\ap\ap_music\sub_callback.c #
# List file = d:\case_i_d90f\ap\ap_music\list\sub_callback.lst #
# Object file = d:\case_i_d90f\ap\ap_music\obj\sub_callback.r01 #
# ASM file = d:\case_i_d90f\ap\ap_music\list\sub_callback.s01 #
# Command line = -v0 -mb -OD:\case_i_d90f\ap\ap_music\Obj\ -e -K -w #
# -gA -z9 -RCODE -r0 -DNAPDEBUG #
# -LD:\case_i_d90f\ap\ap_music\List\ -q -t8 #
# -AD:\case_i_d90f\ap\ap_music\List\ #
# -ND:\case_i_d90f\ap\ap_music\List\ -X #
# -Id:\sdk_i_90f\inc\ -Id:\case_i_d90f\inc\ #
# d:\case_i_d90f\AP\AP_MUSIC\sub_callback.c #
# #
# (c) Copyright IAR Systems 1996 #
##############################################################################
\ 0000 NAME sub_callback(17)
\ 0000 RSEG CODE(0)
\ 0000 RSEG CONST(0)
\ 0000 PUBLIC EQVOLADJ_TAB
\ 0000 PUBLIC OutPutVolume
\ 0000 EXTERN SRSModeFlag
\ 0000 EXTERN SetPAVolume
\ 0000 EXTERN UpDisplayFlag
\ 0000 PUBLIC bass_user_callback
\ 0000 PUBLIC eq_callback
\ 0000 EXTERN g_music_vars
\ 0000 PUBLIC loop_callback
\ 0000 EXTERN musicpSendCommand
\ 0000 PUBLIC speed_callback
\ 0000 PUBLIC srs_callback
\ 0000 PUBLIC srs_user_callback
\ 0000 PUBLIC volume_callback
\ 0000 PUBLIC wow_user_callback
\ 0000 EXTERN ?CLZ80B_4_04_L00
\ 0000 EXTERN ?SS_CMP_L02
\ 0000 EXTERN ?BANK_CALL_DIRECT_L08
\ 0000 EXTERN ?BANK_LEAVE_DIRECT_L08
\ 0000 EXTERN ?BANK_FAST_LEAVE_L08
\ 0000 EXTERN ?ENT_PARM_DIRECT_L09
\ 0000 EXTERN ?ENT_AUTO_DIRECT_L09
\ 0000 RSEG CODE
\ 0000 volume_callback:
1 /*
2 *******************************************************************************
3 * ACTOS AP
4 * voice player stop program.
5 *
6 * (c) Copyright, Actions Co,Ld.
7 * All Right Reserved
8 *
9 * $Id: sub_callback.c,v 1.1.1.1 2006/05/22 03:24:01 selina Exp $
10 *******************************************************************************
11 */
12
13 #include "ap_music.h"
14
15 #define eqcount_def 8
16 extern byte SRSModeFlag;
17 const signed char EQVOLADJ_TAB[eqcount_def] =
18 {//EQ音量调整表
19 0,0,0,0,0,0,0,0
20 };
21
22 void OutPutVolume(int vol);
23
24 void volume_callback( int Vol )
25 {
\ 0000 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
26 //实时改变音量的值
27 musicpSendCommand(MC_SETVOLUME, Vol);
\ 0003 4B LD C,E
\ 0004 42 LD B,D
\ 0005 1E40 LD E,64
\ 0007 CD2700 CALL LWRD ?0024
28 g_music_vars.volume = Vol;
\ 000A DD7E02 LD A,(IX+2)
\ 000D 320000 LD (g_music_vars),A
29 OutPutVolume(g_music_vars.volume);
\ 0010 ED5B0000 LD DE,(g_music_vars)
\ 0014 7B LD A,E
\ 0015 07 RLCA
\ 0016 9F SBC A,A
\ 0017 57 LD D,A
\ 0018 3E00 LD A,BYTE3 OutPutVolume
\ 001A 213601 LD HL,LWRD OutPutVolume
\ 001D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
30 //g_FadeInStatusFlag = 0;//关闭淡入淡出功能
31 }
\ 0020 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0023 ?0025:
\ 0023 4D LD C,L
\ 0024 44 LD B,H
\ 0025 1E42 LD E,66
\ 0027 ?0024:
\ 0027 3E00 LD A,BYTE3 musicpSendCommand
\ 0029 210000 LD HL,LWRD musicpSendCommand
\ 002C C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 002F speed_callback:
32
33 void speed_callback( int speed )
34 {
\ 002F CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
35 //实时改变速度
36 g_music_vars.play_rate = (BYTE)speed;
\ 0032 7B LD A,E
\ 0033 320300 LD (g_music_vars+3),A
37 musicpSendCommand(MC_SETSPEED, speed); //设置当前的速度
\ 0036 4B LD C,E
\ 0037 42 LD B,D
\ 0038 1E46 LD E,70
\ 003A ?0019:
\ 003A CD2700 CALL LWRD ?0024
38 }
\ 003D C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0040 eq_callback:
39
40 void eq_callback( int eq )
41 {
\ 0040 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
42 //实时改变EQ的值
43 g_music_vars.eq_type = eq;
\ 0043 7B LD A,E
\ 0044 320200 LD (g_music_vars+2),A
44 musicpSendCommand(MC_SETEQ, eq);
\ 0047 4B LD C,E
\ 0048 42 LD B,D
\ 0049 1E43 LD E,67
\ 004B CD2700 CALL LWRD ?0024
45 UpDisplayFlag = UpDisplayFlag | up_musiceqmode;
\ 004E ?0022:
\ 004E 210000 LD HL,UpDisplayFlag
\ 0051 23 INC HL
\ 0052 CBD6 SET 2,(HL)
46 }
\ 0054 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0057 srs_callback:
47 void srs_callback( int srs )
48 {
\ 0057 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 005A F6FF DEFW -10
49 //实时改变EQ的值
50 int temp;
51 char temp1[10];
52 if(srs==0)
\ 005C DD7E02 LD A,(IX+2)
\ 005F DDB603 OR (IX+3)
\ 0062 2023 JR NZ,?0003
\ 0064 ?0002:
53 {
54 g_music_vars.eq_type = 0x4f;//user srs
\ 0064 3E4F LD A,79
\ 0066 320200 LD (g_music_vars+2),A
55 musicpSendCommand(MC_SETEQ, 0x4f);
\ 0069 014F00 LD BC,79
\ 006C 1E43 LD E,67
\ 006E CD2700 CALL LWRD ?0024
56 temp1[0]=8;
\ 0071 DD36F608 LD (IX-10),8
57 temp1[1]=8;
\ 0075 DD36F708 LD (IX-9),8
58 temp1[2]=4;
\ 0079 DD36F804 LD (IX-8),4
59 musicpSendCommand(MC_SETUSEREQ, (int)&temp1);
\ 007D 210000 LD HL,0
\ 0080 39 ADD HL,SP
\ 0081 CD2300 CALL LWRD ?0025
60 SRSModeFlag=0;
\ 0084 AF XOR A
\ 0085 1818 JR ?0016
\ 0087 ?0003:
61 }
62 else if(srs==1)
\ 0087 3E01 LD A,1
\ 0089 DDAE02 XOR (IX+2)
\ 008C DDB603 OR (IX+3)
\ 008F 2013 JR NZ,?0006
\ 0091 ?0005:
63 {
64 g_music_vars.eq_type = 0x4f;//user srs
\ 0091 3E4F LD A,79
\ 0093 320200 LD (g_music_vars+2),A
65 musicpSendCommand(MC_SETEQ, 0x4f);
\ 0096 CDB200 CALL LWRD ?0023
66 temp1[0]=g_music_vars.SRSMod.Wow;
67 temp1[1]=g_music_vars.SRSMod.Bass;
68 temp1[2]=g_music_vars.SRSMod.Srs;
69 musicpSendCommand(MC_SETUSEREQ, (int)&temp1);
\ 0099 39 ADD HL,SP
\ 009A CD2300 CALL LWRD ?0025
70 SRSModeFlag=1;
\ 009D 3E01 LD A,1
\ 009F ?0016:
\ 009F 320000 LD (SRSModeFlag),A
71 }
72 else
\ 00A2 180B JR ?0007
\ 00A4 ?0006:
73 {
74 eq_callback(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -