📄 ui_stop_menu.lst
字号:
\ 021A C5 PUSH BC
\ 021B 48 LD C,B
\ 021C C5 PUSH BC
\ 021D 1E05 LD E,5
\ 021F 3E00 LD A,BYTE3 fselInit
\ 0221 210000 LD HL,LWRD fselInit
\ 0224 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0227 F1 POP AF
\ 0228 F1 POP AF
\ 0229 2600 LD H,0
\ 022B E5 PUSH HL
\ 022C DDE1 POP IX
202 if(!result)
\ 022E 7D LD A,L
\ 022F B7 OR A
\ 0230 2022 JR NZ,?0042
\ 0232 ?0041:
203 {
204 g_amv_vars.location.disk = 'C';
\ 0232 3E43 LD A,67
\ 0234 320500 LD (g_amv_vars+5),A
205 g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
\ 0237 210000 LD HL,g_DiskStateFlag
\ 023A CB9E RES 3,(HL)
206 ui_show_msg (CREADERR, CREADERR, g_langid); //temp ybfu
\ 023C ED4B0000 LD BC,(g_langid)
\ 0240 0600 LD B,0
\ 0242 C5 PUSH BC
\ 0243 019401 LD BC,404
\ 0246 59 LD E,C
\ 0247 50 LD D,B
\ 0248 3E00 LD A,BYTE3 ui_show_msg
\ 024A 210000 LD HL,LWRD ui_show_msg
\ 024D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0250 F1 POP AF
207 break;
\ 0251 C3E902 JP LWRD ?0034
\ 0254 ?0042:
208 }
209 g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
\ 0254 210000 LD HL,g_DiskStateFlag
\ 0257 CBDE SET 3,(HL)
210 fselGetLocation(&g_amv_vars.location);
\ 0259 CD4D00 CALL LWRD ?0081
\ 025C ?0040:
211 }
212 //fselGetLocation(&g_amv_vars.location);
213 result = ui_directory(&g_amv_vars.location,FSEL_TYPE_AMV, g_langid);
\ 025C 3A0000 LD A,(g_langid)
\ 025F 4F LD C,A
\ 0260 C5 PUSH BC
\ 0261 0E05 LD C,5
\ 0263 110500 LD DE,g_amv_vars+5
\ 0266 3E00 LD A,BYTE3 ui_directory
\ 0268 210000 LD HL,LWRD ui_directory
\ 026B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 026E F1 POP AF
214 FSELSetMode(FSEL_ALL_SEQUENCE);
\ 026F CD1603 CALL LWRD ?0082
215 BankSwitch((unsigned long)AmvDecStart>>16);
\ 0272 1E00 LD E,BYTE3 AmvDecStart
\ 0274 CD0000 CALL LWRD BankSwitch
216 g_menu_active=FALSE;
\ 0277 AF XOR A
\ 0278 320000 LD (g_menu_active),A
217 //PASS_KEY(0x16);
218 if (result == RESULT_SD_OUT)
\ 027B DDE5 PUSH IX
\ 027D E1 POP HL
\ 027E 3E36 LD A,54
\ 0280 AD XOR L
\ 0281 B4 OR H
\ 0282 2065 JR NZ,?0034
\ 0284 ?0043:
219 {
220 ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
\ 0284 ED4B0000 LD BC,(g_langid)
\ 0288 47 LD B,A
\ 0289 C5 PUSH BC
\ 028A 019101 LD BC,401
\ 028D 59 LD E,C
\ 028E 50 LD D,B
\ 028F 3E00 LD A,BYTE3 ui_err_msg
\ 0291 210000 LD HL,LWRD ui_err_msg
\ 0294 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0297 F1 POP AF
221 g_amv_vars.location.disk = 'C';
\ 0298 3E43 LD A,67
\ 029A 320500 LD (g_amv_vars+5),A
222 //return RESULT_IGNORE;
223 result = RESULT_SD_OUT;
\ 029D DD213600 LD IX,54
\ 02A1 ?0044:
224 //return 0;
225 }
226 break;
\ 02A1 1846 JR ?0034
\ 02A3 ?0045:
227
228 case 2:
229 //删除文件
230 result = ui_delete_amv(DELETE_FILE);
\ 02A3 59 LD E,C
\ 02A4 50 LD D,B
\ 02A5 3E00 LD A,BYTE3 ui_delete_amv
\ 02A7 210000 LD HL,LWRD ui_delete_amv
\ 02AA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02AD E5 PUSH HL
\ 02AE DDE1 POP IX
231 break;
\ 02B0 1837 JR ?0034
\ 02B2 ?0046:
232
233 case 3:
234 //删除全部
235 //result = ui_delete_amv(DELETE_FILE);
236 FSELSetMode(FSEL_ALL_REPEATALL);
\ 02B2 1E04 LD E,4
\ 02B4 CD1B03 CALL LWRD ?0083
237 result = ui_delete_all(&g_amv_vars.location, DELETE_AMV, g_comval.langid);
\ 02B7 210C00 LD HL,g_comval+12
\ 02BA 4E LD C,(HL)
\ 02BB C5 PUSH BC
\ 02BC 0E03 LD C,3
\ 02BE 110500 LD DE,g_amv_vars+5
\ 02C1 3E00 LD A,BYTE3 ui_delete_all
\ 02C3 210000 LD HL,LWRD ui_delete_all
\ 02C6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02C9 F1 POP AF
\ 02CA E5 PUSH HL
\ 02CB DDE1 POP IX
238 FSELSetMode(g_amv_vars.repeat_mode);
\ 02CD ED5B0300 LD DE,(g_amv_vars+3)
\ 02D1 CD1B03 CALL LWRD ?0083
239 break;
\ 02D4 1813 JR ?0034
\ 02D6 ?0047:
240
241 case 4:
242 result = ui_loop_menu();
\ 02D6 3E00 LD A,BYTE3 ui_loop_menu
\ 02D8 215800 LD HL,LWRD ui_loop_menu
\ 02DB CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02DE E5 PUSH HL
\ 02DF DDE1 POP IX
243 if(result==0)result=RESULT_IGNORE;
\ 02E1 7D LD A,L
\ 02E2 B4 OR H
\ 02E3 2004 JR NZ,?0034
\ 02E5 ?0048:
\ 02E5 ?0049:
244 break;
\ 02E5 ?0050:
245 default://退出 //case 4
246 result = RESULT_IGNORE;
\ 02E5 DD213400 LD IX,52
247 break;
\ 02E9 ?0034:
\ 02E9 ?0033:
248 }
249 //注,如 result != 0表示退出时一些时间参数不用清0
250 // 但如果 ==0 则表示退出时目录已改,时间要清0
251 }
252
253 //if(result != RESULT_IGNORE)
254 // ClearTimePara();//清0时间及断点
255 if (result == RESULT_IGNORE)
\ 02E9 DDE5 PUSH IX
\ 02EB E1 POP HL
\ 02EC 3E34 LD A,52
\ 02EE AD XOR L
\ 02EF B4 OR H
\ 02F0 2004 JR NZ,?0052
\ 02F2 ?0051:
256 {
257 result = 0;
\ 02F2 DD210000 LD IX,0
\ 02F6 ?0052:
258 }
259 if (result != 0)
\ 02F6 DDE5 PUSH IX
\ 02F8 E1 POP HL
\ 02F9 7D LD A,L
\ 02FA B4 OR H
\ 02FB 200B JR NZ,?0055
\ 02FD ?0053:
260 {
261 return result;
262 }
\ 02FD ?0054:
263 ClearTimePara();//清0时间及断点
\ 02FD 3E00 LD A,BYTE3 ClearTimePara
\ 02FF 210000 LD HL,LWRD ClearTimePara
\ 0302 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
264 return 0;
\ 0305 210000 LD HL,0
265 }
\ 0308 ?0055:
\ 0308 EB EX DE,HL
\ 0309 210A00 LD HL,10
\ 030C 39 ADD HL,SP
\ 030D F9 LD SP,HL
\ 030E EB EX DE,HL
\ 030F DDE1 POP IX
\ 0311 D1 POP DE
\ 0312 C1 POP BC
\ 0313 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0316 ?0082:
\ 0316 E5 PUSH HL
\ 0317 DDE1 POP IX
\ 0319 1E00 LD E,0
\ 031B ?0083:
\ 031B 3E00 LD A,BYTE3 fselSetMode
\ 031D 210000 LD HL,LWRD fselSetMode
\ 0320 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0323 CheckIfCardOK:
266
267
268
269
270
271
272
273 //====检测卡是否可用========
274
275 void CheckIfCardOK(void)
276 {
\ 0323 D5 PUSH DE
\ 0324 F5 PUSH AF
277 char i;
278 i = DRV_DetectUD(1); //检测 sd 卡是否存在
\ 0325 1E01 LD E,1
\ 0327 CD0000 CALL LWRD DRV_DetectUD
279 if (i == 0x20)
\ 032A FE20 CP 32
\ 032C 2004 JR NZ,?0057
\ 032E ?0056:
280 {
281 g_CardInFlag = 1;
\ 032E 3E01 LD A,1
\ 0330 1801 JR ?0080
282 }
283 else
\ 0332 ?0057:
284 {
285 g_CardInFlag = 0;
\ 0332 AF XOR A
\ 0333 ?0080:
\ 0333 320000 LD (g_CardInFlag),A
\ 0336 ?0058:
286 }
287
288 }
\ 0336 E1 POP HL
\ 0337 D1 POP DE
\ 0338 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
289
\ 0000 RSEG UDATA0
\ 0000 g_CardInFlag:
\ 0001 DEFS 1
\ 0000 RSEG IDATA0
\ 0000 ?0009:
\ 0001 DEFS 1
\ 0000 RSEG CDATA0
\ 0000 00 DEFB 0
\ 0000 RSEG APC_UI_MNU
\ 0000 dir_string_card:
\ 0000 1901 DEFW 281
\ 0002 1A01 DEFW 282
\ 0004 1B01 DEFW 283
\ 0006 1C01 DEFW 284
\ 0008 1E01 DEFW 286
\ 000A 1D01 DEFW 285
\ 000C repeat_string:
\ 000C 3501 DEFW 309
\ 000E 3601 DEFW 310
\ 0010 3701 DEFW 311
\ 0012 3801 DEFW 312
\ 0014 3901 DEFW 313
\ 0016 3A01 DEFW 314
\ 0018 3B01 DEFW 315
\ 001A dir_string:
\ 001A 1901 DEFW 281
\ 001C 1B01 DEFW 283
\ 001E 1C01 DEFW 284
\ 0020 1E01 DEFW 286
\ 0022 1D01 DEFW 285
\ 0024 END
Errors: none
Warnings: none
Code size: 827
Constant size: 37
Static variable size: Data(2) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -