show_stop_menu.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,396 行 · 第 1/5 页
LST
1,396 行
\ 00C4 ?0011:
\ 00C4 69 LD L,C
\ 00C5 60 LD H,B
\ 00C6 181F JR ?0017
\ 00C8 ?0012:
117 else if(result != 0) return result;
\ 00C8 7D LD A,L
\ 00C9 B4 OR H
\ 00CA 201B JR NZ,?0017
\ 00CC ?0013:
\ 00CC ?0014:
118 g_record_vars.rec_bitrate = g_list.active;
\ 00CC 3A0400 LD A,(g_list+4)
\ 00CF 320300 LD (g_record_vars+3),A
119 if(g_list.active % 2 == 0)
\ 00D2 ED5B0400 LD DE,(g_list+4)
\ 00D6 03 INC BC
\ 00D7 03 INC BC
\ 00D8 CD0000 CALL LWRD ?SS_MOD_L02
\ 00DB 7B LD A,E
\ 00DC B2 OR D
\ 00DD 2004 JR NZ,?0016
\ 00DF ?0015:
120 channelnum = SINGLE_CH;
\ 00DF 3E01 LD A,1
\ 00E1 1801 JR ?0144
121 else
\ 00E3 ?0016:
122 channelnum = DUAL_CH;
\ 00E3 79 LD A,C
\ 00E4 ?0144:
\ 00E4 320000 LD (channelnum),A
\ 00E7 ?0017:
123
124 return result;
125
126 }
\ 00E7 ?0018:
\ 00E7 DDE1 POP IX
\ 00E9 D1 POP DE
\ 00EA C1 POP BC
\ 00EB C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 00EE ?0194:
\ 00EE 110000 LD DE,g_list
\ 00F1 3E00 LD A,BYTE3 ui_popup_list
\ 00F3 210000 LD HL,LWRD ui_popup_list
\ 00F6 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 00F9 show_RecFrom_menu:
127
128 /*
129 ********************************************************************************
130 * Description : 录音源选择界面
131 *
132 * Arguments :
133 *
134 * Returns :
135 *
136 * Notes :
137 *
138 ********************************************************************************
139 */
140 int show_RecFrom_menu(void)
141 {
\ 00F9 C5 PUSH BC
\ 00FA D5 PUSH DE
\ 00FB DDE5 PUSH IX
142 int result;
143
144 //show rec source menu
145 g_list.active = g_record_vars.rec_source;
\ 00FD ED4B0400 LD BC,(g_record_vars+4)
\ 0101 0600 LD B,0
\ 0103 ED430400 LD (g_list+4),BC
146 g_list.total = 3;
\ 0107 210300 LD HL,3
\ 010A 220200 LD (g_list+2),HL
147
148 g_list.strid = RecFrom_string;
\ 010D 212000 LD HL,RecFrom_string
\ 0110 220000 LD (g_list),HL
149 g_list.string_id = g_comval.langid;
\ 0113 3A0C00 LD A,(g_comval+12)
\ 0116 320800 LD (g_list+8),A
150 g_list.headid =MRSTOP4;
\ 0119 214801 LD HL,328
\ 011C 220600 LD (g_list+6),HL
151 result=ui_popup_list(&g_list, NULL);
\ 011F 48 LD C,B
\ 0120 C5 PUSH BC
\ 0121 C5 PUSH BC
\ 0122 CDEE00 CALL LWRD ?0194
\ 0125 F1 POP AF
\ 0126 F1 POP AF
\ 0127 E5 PUSH HL
\ 0128 DDE1 POP IX
152
153
154 if(result == RESULT_IGNORE) return 0;
\ 012A 3E34 LD A,52
\ 012C AD XOR L
\ 012D B4 OR H
\ 012E 2004 JR NZ,?0020
\ 0130 ?0019:
\ 0130 69 LD L,C
\ 0131 60 LD H,B
\ 0132 1831 JR ?0025
\ 0134 ?0020:
155 else if(result != 0) return result;
\ 0134 7D LD A,L
\ 0135 B4 OR H
\ 0136 202A JR NZ,?0147
\ 0138 ?0021:
\ 0138 ?0022:
156
157 if (g_list.active != g_record_vars.rec_source)
\ 0138 ED4B0400 LD BC,(g_record_vars+4)
\ 013C 47 LD B,A
\ 013D 2A0400 LD HL,(g_list+4)
\ 0140 ED42 SBC HL,BC
\ 0142 2818 JR Z,?0024
\ 0144 ?0023:
158 {
159 g_record_vars.rec_source = g_list.active;
\ 0144 3A0400 LD A,(g_list+4)
\ 0147 320400 LD (g_record_vars+4),A
160 g_rec_from = rec_source_tab[g_record_vars.rec_source]; //更新当前的录音源! 否则ui_draw()将不能被刷新.
\ 014A 4F LD C,A
\ 014B 210000 LD HL,rec_source_tab
\ 014E 09 ADD HL,BC
\ 014F 7E LD A,(HL)
\ 0150 320000 LD (g_rec_from),A
161 Open_RecRoute(g_rec_from); //根据当前录音源,打开及设置录音通道 add by ccm 04-07-4 16:01
\ 0153 5F LD E,A
\ 0154 3E00 LD A,BYTE3 Open_RecRoute
\ 0156 210000 LD HL,LWRD Open_RecRoute
\ 0159 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 015C ?0024:
162 }
163 g_record_vars.rec_source= g_list.active; //保存当前值
\ 015C 3A0400 LD A,(g_list+4)
\ 015F 320400 LD (g_record_vars+4),A
164
165 return result;
\ 0162 ?0147:
\ 0162 DDE5 PUSH IX
\ 0164 E1 POP HL
166
167
168 }
\ 0165 ?0025:
\ 0165 DDE1 POP IX
\ 0167 D1 POP DE
\ 0168 C1 POP BC
\ 0169 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 016C show_stop_menu:
169
170 /*
171 ********************************************************************************
172 * Description : 停止界面菜单
173 *
174 * Arguments :
175 *
176 * Returns : 结果消息或0
177 RESULT_DIR_CHANGED //录音目录改变
178 *
179 * Notes :
180 *
181 ********************************************************************************
182 */
183 int show_stop_menu(void)
184 {
\ 016C C5 PUSH BC
\ 016D D5 PUSH DE
\ 016E DDE5 PUSH IX
\ 0170 DD210000 LD IX,0
\ 0174 DD39 ADD IX,SP
\ 0176 21F0FF LD HL,65520
\ 0179 39 ADD HL,SP
\ 017A F9 LD SP,HL
185 int result;
186 static char active=0; //保持选中菜单的序号
187 char file[12];
188 char menu_flag; //0:卡 1://no 卡
189 g_list.headid = STOPMENU;
\ 017B 21EA01 LD HL,490
\ 017E 220600 LD (g_list+6),HL
190 if (DRV_DetectUD(1) == 0x20)
\ 0181 5C LD E,H
\ 0182 CD0000 CALL LWRD DRV_DetectUD
\ 0185 FE20 CP 32
\ 0187 ED4B0000 LD BC,(?0026)
\ 018B 0600 LD B,0
\ 018D ED430400 LD (g_list+4),BC
\ 0191 2011 JR NZ,?0028
\ 0193 ?0027:
191 {
192 g_list.active = active;
193 g_list.total = sizeof(stop_string_card) / 2;
\ 0193 210500 LD HL,5
\ 0196 220200 LD (g_list+2),HL
194 g_list.strid = stop_string_card;
\ 0199 210800 LD HL,stop_string_card
\ 019C 220000 LD (g_list),HL
195 menu_flag = 0;
\ 019F DD70F2 LD (IX-14),B
196 }
197 else
\ 01A2 1810 JR ?0029
\ 01A4 ?0028:
198 {
199
200 g_list.active = active;
201 g_list.total = 4;
\ 01A4 210400 LD HL,4
\ 01A7 220200 LD (g_list+2),HL
202 g_list.strid = stop_string;
\ 01AA 210000 LD HL,stop_string
\ 01AD 220000 LD (g_list),HL
203 menu_flag = 1;
\ 01B0 DD36F201 LD (IX-14),1
\ 01B4 ?0029:
204 }
205
206 g_list.string_id = g_comval.langid;
\ 01B4 3A0C00 LD A,(g_comval+12)
\ 01B7 320800 LD (g_list+8),A
207
208 ui_auto_update = FALSE;
\ 01BA AF XOR A
\ 01BB 320000 LD (ui_auto_update),A
209 result = ui_popup_list(&g_list, NULL);
\ 01BE 48 LD C,B
\ 01BF C5 PUSH BC
\ 01C0 C5 PUSH BC
\ 01C1 CDEE00 CALL LWRD ?0194
\ 01C4 F1 POP AF
\ 01C5 F1 POP AF
\ 01C6 DD75F0 LD (IX-16),L
\ 01C9 DD74F1 LD (IX-15),H
210 ui_auto_update = TRUE;
\ 01CC 3E01 LD A,1
\ 01CE 320000 LD (ui_auto_update),A
211
212 if(result == RESULT_IGNORE) return 0;
\ 01D1 3E34 LD A,52
\ 01D3 AD XOR L
\ 01D4 B4 OR H
\ 01D5 CADA03 JP Z,?0081
\ 01D8 ?0030:
\ 01D8 ?0031:
213 else if(result != 0) return result;
\ 01D8 7D LD A,L
\ 01D9 B4 OR H
\ 01DA C2B403 JP NZ,?0160
\ 01DD ?0032:
\ 01DD ?0033:
214
215 active = g_list.active;
\ 01DD 3A0400 LD A,(g_list+4)
\ 01E0 320000 LD (?0026),A
216 if(menu_flag==0)
\ 01E3 AF XOR A
\ 01E4 DDB6F2 OR (IX-14)
\ 01E7 200A JR NZ,?0037
\ 01E9 ?0034:
217 {
218 if (DRV_DetectUD(1) != 0x20)
\ 01E9 1E01 LD E,1
\ 01EB CD0000 CALL LWRD DRV_DetectUD
\ 01EE FE20 CP 32
\ 01F0 C27B03 JP NZ,?0173
\ 01F3 ?0036:
219 {
220 show_error(CARDPULL);//显示卡拔出
221 g_record_vars.location.disk = 'C';
222 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
223 fselGetLocation(&g_record_vars.location);
224 //return RESULT_SD_OUT;
225 make_dirname();
226 return RESULT_DIR_CHANGED;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?