📄 ui_stop_menu.lst
字号:
\ 0205 ?0038:
209
210 case 1:
211 if (g_amv_vars.location.disk == 'C')
\ 0205 3A0500 LD A,(g_amv_vars+5)
\ 0208 FE43 CP 67
\ 020A 2048 JR NZ,?0040
\ 020C ?0039:
212 {
213 //PASS_KEY(0x13);
214 g_amv_vars.location.disk = 'H';
\ 020C 3E48 LD A,72
\ 020E 320500 LD (g_amv_vars+5),A
215 result=FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk);
\ 0211 4F LD C,A
\ 0212 C5 PUSH BC
\ 0213 48 LD C,B
\ 0214 C5 PUSH BC
\ 0215 1E05 LD E,5
\ 0217 3E00 LD A,BYTE3 fselInit
\ 0219 210000 LD HL,LWRD fselInit
\ 021C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 021F F1 POP AF
\ 0220 F1 POP AF
\ 0221 2600 LD H,0
\ 0223 E5 PUSH HL
\ 0224 DDE1 POP IX
216 if(!result)
\ 0226 7D LD A,L
\ 0227 B7 OR A
\ 0228 2022 JR NZ,?0042
\ 022A ?0041:
217 {
218 g_amv_vars.location.disk = 'C';
\ 022A 3E43 LD A,67
\ 022C 320500 LD (g_amv_vars+5),A
219 g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
\ 022F 210000 LD HL,g_DiskStateFlag
\ 0232 CB9E RES 3,(HL)
220 ui_show_msg (CREADERR, CREADERR, g_langid); //temp ybfu
\ 0234 ED4B0000 LD BC,(g_langid)
\ 0238 0600 LD B,0
\ 023A C5 PUSH BC
\ 023B 017602 LD BC,630
\ 023E 59 LD E,C
\ 023F 50 LD D,B
\ 0240 3E00 LD A,BYTE3 ui_show_msg
\ 0242 210000 LD HL,LWRD ui_show_msg
\ 0245 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0248 F1 POP AF
221 break;
\ 0249 C3E102 JP LWRD ?0034
\ 024C ?0042:
222 }
223 g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
\ 024C 210000 LD HL,g_DiskStateFlag
\ 024F CBDE SET 3,(HL)
224 fselGetLocation(&g_amv_vars.location);
\ 0251 CD4D00 CALL LWRD ?0076
\ 0254 ?0040:
225 }
226 //fselGetLocation(&g_amv_vars.location);
227 result = ui_directory(&g_amv_vars.location,FSEL_TYPE_AMV, g_langid);
\ 0254 3A0000 LD A,(g_langid)
\ 0257 4F LD C,A
\ 0258 C5 PUSH BC
\ 0259 0E05 LD C,5
\ 025B 110500 LD DE,g_amv_vars+5
\ 025E 3E00 LD A,BYTE3 ui_directory
\ 0260 210000 LD HL,LWRD ui_directory
\ 0263 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0266 F1 POP AF
228 FSELSetMode(FSEL_ALL_SEQUENCE);
\ 0267 CD0E03 CALL LWRD ?0077
229 BankSwitch((unsigned long)AmvDecStart>>16);
\ 026A 1E00 LD E,BYTE3 AmvDecStart
\ 026C CD0000 CALL LWRD BankSwitch
230 g_menu_active=FALSE;
\ 026F AF XOR A
\ 0270 320000 LD (g_menu_active),A
231 //PASS_KEY(0x16);
232 if (result == RESULT_SD_OUT)
\ 0273 DDE5 PUSH IX
\ 0275 E1 POP HL
\ 0276 3E36 LD A,54
\ 0278 AD XOR L
\ 0279 B4 OR H
\ 027A 2065 JR NZ,?0034
\ 027C ?0043:
233 {
234 ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
\ 027C ED4B0000 LD BC,(g_langid)
\ 0280 47 LD B,A
\ 0281 C5 PUSH BC
\ 0282 018A01 LD BC,394
\ 0285 59 LD E,C
\ 0286 50 LD D,B
\ 0287 3E00 LD A,BYTE3 ui_err_msg
\ 0289 210000 LD HL,LWRD ui_err_msg
\ 028C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 028F F1 POP AF
235 g_amv_vars.location.disk = 'C';
\ 0290 3E43 LD A,67
\ 0292 320500 LD (g_amv_vars+5),A
236 //return RESULT_IGNORE;
237 result = RESULT_SD_OUT;
\ 0295 DD213600 LD IX,54
\ 0299 ?0044:
238 //return 0;
239 }
240 break;
\ 0299 1846 JR ?0034
\ 029B ?0045:
241
242 case 2:
243 //删除文件
244 result = ui_delete_amv(DELETE_FILE);
\ 029B 59 LD E,C
\ 029C 50 LD D,B
\ 029D 3E00 LD A,BYTE3 ui_delete_amv
\ 029F 210000 LD HL,LWRD ui_delete_amv
\ 02A2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02A5 E5 PUSH HL
\ 02A6 DDE1 POP IX
245 break;
\ 02A8 1837 JR ?0034
\ 02AA ?0046:
246
247 case 3:
248 //删除全部
249 //result = ui_delete_amv(DELETE_FILE);
250 FSELSetMode(FSEL_ALL_REPEATALL);
\ 02AA 1E04 LD E,4
\ 02AC CD1303 CALL LWRD ?0078
251 result = ui_delete_all(&g_amv_vars.location, DELETE_AMV, g_comval.langid);
\ 02AF 210C00 LD HL,g_comval+12
\ 02B2 4E LD C,(HL)
\ 02B3 C5 PUSH BC
\ 02B4 0E03 LD C,3
\ 02B6 110500 LD DE,g_amv_vars+5
\ 02B9 3E00 LD A,BYTE3 ui_delete_all
\ 02BB 210000 LD HL,LWRD ui_delete_all
\ 02BE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02C1 F1 POP AF
\ 02C2 E5 PUSH HL
\ 02C3 DDE1 POP IX
252 FSELSetMode(g_amv_vars.repeat_mode);
\ 02C5 ED5B0300 LD DE,(g_amv_vars+3)
\ 02C9 CD1303 CALL LWRD ?0078
253 break;
\ 02CC 1813 JR ?0034
\ 02CE ?0047:
254
255 case 4:
256 result = ui_loop_menu();
\ 02CE 3E00 LD A,BYTE3 ui_loop_menu
\ 02D0 215800 LD HL,LWRD ui_loop_menu
\ 02D3 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02D6 E5 PUSH HL
\ 02D7 DDE1 POP IX
257 if(result==0)result=RESULT_IGNORE;
\ 02D9 7D LD A,L
\ 02DA B4 OR H
\ 02DB 2004 JR NZ,?0034
\ 02DD ?0048:
\ 02DD ?0049:
258 break;
\ 02DD ?0050:
259 default://退出 //case 4
260 result = RESULT_IGNORE;
\ 02DD DD213400 LD IX,52
261 break;
\ 02E1 ?0034:
\ 02E1 ?0033:
262 }
263 //注,如 result != 0表示退出时一些时间参数不用清0
264 // 但如果 ==0 则表示退出时目录已改,时间要清0
265 }
266
267 //if(result != RESULT_IGNORE)
268 // ClearTimePara();//清0时间及断点
269 if (result == RESULT_IGNORE)
\ 02E1 DDE5 PUSH IX
\ 02E3 E1 POP HL
\ 02E4 3E34 LD A,52
\ 02E6 AD XOR L
\ 02E7 B4 OR H
\ 02E8 2004 JR NZ,?0052
\ 02EA ?0051:
270 {
271 result = 0;
\ 02EA DD210000 LD IX,0
\ 02EE ?0052:
272 }
273 if (result != 0)
\ 02EE DDE5 PUSH IX
\ 02F0 E1 POP HL
\ 02F1 7D LD A,L
\ 02F2 B4 OR H
\ 02F3 200B JR NZ,?0055
\ 02F5 ?0053:
274 {
275 return result;
276 }
\ 02F5 ?0054:
277 ClearTimePara();//清0时间及断点
\ 02F5 3E00 LD A,BYTE3 ClearTimePara
\ 02F7 210000 LD HL,LWRD ClearTimePara
\ 02FA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
278 return 0;
\ 02FD 210000 LD HL,0
279 }
\ 0300 ?0055:
\ 0300 EB EX DE,HL
\ 0301 210A00 LD HL,10
\ 0304 39 ADD HL,SP
\ 0305 F9 LD SP,HL
\ 0306 EB EX DE,HL
\ 0307 DDE1 POP IX
\ 0309 D1 POP DE
\ 030A C1 POP BC
\ 030B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 030E ?0077:
\ 030E E5 PUSH HL
\ 030F DDE1 POP IX
\ 0311 1E00 LD E,0
\ 0313 ?0078:
\ 0313 3E00 LD A,BYTE3 fselSetMode
\ 0315 210000 LD HL,LWRD fselSetMode
\ 0318 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
280
281
282
283
284
285
286
287 //====检测卡是否可用========
288 /*
289 void CheckIfCardOK(void)
290 {
291 char i;
292 i = DRV_DetectUD(1); //检测 sd 卡是否存在
293 if (i == 0x20)
294 {
295 g_CardInFlag = 1;
296 }
297 else
298 {
299 g_CardInFlag = 0;
300 }
301
302 }
303 */
\ 0000 RSEG IDATA0
\ 0000 g_CardInFlag:
\ 0001 DEFS 1
\ 0001 ?0009:
\ 0002 DEFS 1
\ 0000 RSEG CDATA0
\ 0000 00 DEFB 0
\ 0001 00 DEFB 0
\ 0000 RSEG APC_UI_MNU
\ 0000 dir_string_card:
\ 0000 CD01 DEFW 461
\ 0002 CE01 DEFW 462
\ 0004 CF01 DEFW 463
\ 0006 D001 DEFW 464
\ 0008 D201 DEFW 466
\ 000A D101 DEFW 465
\ 000C repeat_string:
\ 000C D801 DEFW 472
\ 000E D901 DEFW 473
\ 0010 DA01 DEFW 474
\ 0012 DB01 DEFW 475
\ 0014 DC01 DEFW 476
\ 0016 DD01 DEFW 477
\ 0018 DE01 DEFW 478
\ 001A dir_string:
\ 001A CD01 DEFW 461
\ 001C CF01 DEFW 463
\ 001E D001 DEFW 464
\ 0020 D201 DEFW 466
\ 0022 D101 DEFW 465
\ 0024 END
Errors: none
Warnings: none
Code size: 795
Constant size: 38
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -