📄 sub_callback.lst
字号:
\ 00A4 110000 LD DE,0
\ 00A7 3E00 LD A,BYTE3 eq_callback
\ 00A9 214000 LD HL,LWRD eq_callback
\ 00AC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00AF ?0007:
\ 00AF ?0004:
75 }
76
77 UpDisplayFlag = UpDisplayFlag | up_musiceqmode;
\ 00AF C34E00 JP LWRD ?0022
\ 00B2 ?0023:
\ 00B2 014F00 LD BC,79
\ 00B5 1E43 LD E,67
\ 00B7 3E00 LD A,BYTE3 musicpSendCommand
\ 00B9 210000 LD HL,LWRD musicpSendCommand
\ 00BC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 00BF 3A5100 LD A,(g_music_vars+81)
\ 00C2 DD77F6 LD (IX-10),A
\ 00C5 3A5200 LD A,(g_music_vars+82)
\ 00C8 DD77F7 LD (IX-9),A
\ 00CB 3A5300 LD A,(g_music_vars+83)
\ 00CE DD77F8 LD (IX-8),A
\ 00D1 210000 LD HL,0
\ 00D4 C9 RET
78 }
\ 00D5 srs_user_callback:
79 void srs_user_callback(int srs_user)
80 {
\ 00D5 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 00D8 F6FF DEFW 65526
81 char temp[10];
82 g_music_vars.eq_type = 0x4f;
\ 00DA 3E4F LD A,79
\ 00DC 320200 LD (g_music_vars+2),A
83 g_music_vars.SRSMod.Srs = srs_user;
\ 00DF DD7E02 LD A,(IX+2)
\ 00E2 325300 LD (g_music_vars+83),A
84 musicpSendCommand(MC_SETEQ, 0x4f);
\ 00E5 CDB200 CALL LWRD ?0023
85 temp[0]=g_music_vars.SRSMod.Wow;
86 temp[1]=g_music_vars.SRSMod.Bass;
87 temp[2]=g_music_vars.SRSMod.Srs;
88 musicpSendCommand(MC_SETUSEREQ, (int)&temp);
\ 00E8 39 ADD HL,SP
\ 00E9 4D LD C,L
\ 00EA 44 LD B,H
\ 00EB 1E42 LD E,66
\ 00ED C33A00 JP LWRD ?0019
89
90 }
\ 00F0 wow_user_callback:
91 void wow_user_callback(int wow_user)
92 {
\ 00F0 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 00F3 F6FF DEFW 65526
93 char temp[10];
94 g_music_vars.eq_type = 0x4f;
\ 00F5 3E4F LD A,79
\ 00F7 320200 LD (g_music_vars+2),A
95 g_music_vars.SRSMod.Wow = wow_user;
\ 00FA DD7E02 LD A,(IX+2)
\ 00FD 325100 LD (g_music_vars+81),A
96 musicpSendCommand(MC_SETEQ, 0x4f);
\ 0100 CDB200 CALL LWRD ?0023
97 temp[0]=g_music_vars.SRSMod.Wow;
98 temp[1]=g_music_vars.SRSMod.Bass;
99 temp[2]=g_music_vars.SRSMod.Srs;
100 musicpSendCommand(MC_SETUSEREQ, (int)&temp);
\ 0103 39 ADD HL,SP
\ 0104 4D LD C,L
\ 0105 44 LD B,H
\ 0106 1E42 LD E,66
\ 0108 C33A00 JP LWRD ?0019
101
102 }
\ 010B bass_user_callback:
103
104 void bass_user_callback(int bass_user)
105 {
\ 010B CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 010E F6FF DEFW 65526
106 char temp[10];
107 g_music_vars.eq_type = 0x4f;
\ 0110 3E4F LD A,79
\ 0112 320200 LD (g_music_vars+2),A
108 g_music_vars.SRSMod.Bass = bass_user;
\ 0115 DD7E02 LD A,(IX+2)
\ 0118 325200 LD (g_music_vars+82),A
109
110 musicpSendCommand(MC_SETEQ, 0x4f);
\ 011B CDB200 CALL LWRD ?0023
111 temp[0]=g_music_vars.SRSMod.Wow;
112 temp[1]=g_music_vars.SRSMod.Bass;
113 temp[2]=g_music_vars.SRSMod.Srs;
114 musicpSendCommand(MC_SETUSEREQ, (int)&temp);
\ 011E 39 ADD HL,SP
\ 011F 4D LD C,L
\ 0120 44 LD B,H
\ 0121 1E42 LD E,66
\ 0123 C33A00 JP LWRD ?0019
115 }
\ 0126 loop_callback:
116
117 void loop_callback( int loop )
118 {
\ 0126 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
119 g_music_vars.repeat_mode = loop;
\ 0129 7B LD A,E
\ 012A 320100 LD (g_music_vars+1),A
120 UpDisplayFlag = UpDisplayFlag | up_musicloopmode;
\ 012D 210000 LD HL,UpDisplayFlag
\ 0130 23 INC HL
\ 0131 CBE6 SET 4,(HL)
121 }
\ 0133 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0136 OutPutVolume:
122 /*===========================================
123 functions: OutPutVolume(int vol)
124 input: int vol: 要输出的音量
125 output: void
126 功能: 把音量值送到IO口,当在EQ变化时作出补尝
127 ============================================*/
128 void OutPutVolume(int vol)
129 {
\ 0136 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0139 0000 DEFW 0
130 signed int temp;
131
132 if (g_music_vars.eq_type >= eqcount_def)
\ 013B 3A0200 LD A,(g_music_vars+2)
\ 013E FE08 CP 8
\ 0140 3808 JR C,?0009
\ 0142 ?0008:
133 {
134 temp = vol;
\ 0142 DD5E02 LD E,(IX+2)
\ 0145 DD5603 LD D,(IX+3)
135 }
136 else
\ 0148 1814 JR ?0010
\ 014A ?0009:
137 {
138 temp = vol + EQVOLADJ_TAB[g_music_vars.eq_type];
\ 014A 4F LD C,A
\ 014B 0600 LD B,0
\ 014D 210000 LD HL,EQVOLADJ_TAB
\ 0150 09 ADD HL,BC
\ 0151 4E LD C,(HL)
\ 0152 79 LD A,C
\ 0153 07 RLCA
\ 0154 9F SBC A,A
\ 0155 47 LD B,A
\ 0156 DD6E02 LD L,(IX+2)
\ 0159 DD6603 LD H,(IX+3)
\ 015C 09 ADD HL,BC
\ 015D EB EX DE,HL
\ 015E ?0010:
139 }
140
141 if (temp>31)
\ 015E 4B LD C,E
\ 015F 42 LD B,D
\ 0160 211F00 LD HL,31
\ 0163 CD0000 CALL LWRD ?SS_CMP_L02
\ 0166 3005 JR NC,?0012
\ 0168 ?0011:
142 {
143 temp = 31;
\ 0168 111F00 LD DE,31
\ 016B 1807 JR ?0015
\ 016D ?0012:
144 }
145 else if(temp<0)
\ 016D CB78 BIT 7,B
\ 016F 2803 JR Z,?0015
\ 0171 ?0014:
146 {
147 temp = 0;
\ 0171 110000 LD DE,0
\ 0174 ?0015:
\ 0174 ?0013:
148 }
149 SetPAVolume(temp);
\ 0174 EB EX DE,HL
\ 0175 5D LD E,L
\ 0176 CD0000 CALL LWRD SetPAVolume
150 }
\ 0179 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0000 RSEG CONST
\ 0000 EQVOLADJ_TAB:
\ 0000 00 DEFB 0
\ 0001 00 DEFB 0
\ 0002 00 DEFB 0
\ 0003 00 DEFB 0
\ 0004 00 DEFB 0
\ 0005 00 DEFB 0
\ 0006 00 DEFB 0
\ 0007 00 DEFB 0
\ 0008 END
Errors: none
Warnings: none
Code size: 380
Constant size: 8
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -