📄 sub_function3.lst
字号:
249 {
250 return 0;
251 }
\ 01FF ?0068:
252 if (FSELGetNext(g_amv_vars.location.filename) != 0)
\ 01FF CDD502 CALL LWRD ?0194
\ 0202 2C INC L
\ 0203 2D DEC L
\ 0204 C2B702 JP NZ,?0186
\ 0207 ?0069:
253 {
254 return 1;
255 }
\ 0207 ?0070:
256
257 if (FSELGetErrID() == 0)
\ 0207 CD1401 CALL LWRD ?0196
\ 020A 2C INC L
\ 020B 2D DEC L
\ 020C CACB02 JP Z,?0106
\ 020F ?0071:
258 {
259 return 0;//非法
260 }
\ 020F ?0072:
261
262 if (g_amv_vars.location.disk == 'H')
\ 020F 3A0500 LD A,(g_amv_vars+5)
\ 0212 FE48 CP 72
\ 0214 2839 JR Z,?0187
\ 0216 ?0073:
263 {
264 DisplayErrInfor(CFILEOUT);//显示卡无文件
265 return 0; //因为前面已从 'C' 查到 'H' 了,已查完,未找到文件
266 }
\ 0216 ?0074:
267 else //还在 'C'
268 {
269 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 0216 CD1C01 CALL LWRD ?0198
270
271 //检测 sd 卡是否存在
272 if ((DRV_DetectUD(1) == 0x20)&&((g_DiskStateFlag & SetCardOKFlag_def)!=0))
\ 0219 1E01 LD E,1
\ 021B CD0000 CALL LWRD DRV_DetectUD
\ 021E FE20 CP 32
\ 0220 C2CB02 JP NZ,?0106
\ 0223 3A0000 LD A,(g_DiskStateFlag)
\ 0226 CB5F BIT 3,A
\ 0228 CACB02 JP Z,?0106
\ 022B ?0078:
\ 022B ?0077:
\ 022B ?0075:
273 {//有卡
274 g_amv_vars.location.disk = 'H';
\ 022B 3E48 LD A,72
\ 022D 320500 LD (g_amv_vars+5),A
275 if (FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR, 'H'))
\ 0230 4F LD C,A
\ 0231 C5 PUSH BC
\ 0232 0E00 LD C,0
\ 0234 C5 PUSH BC
\ 0235 CD0A01 CALL LWRD ?0195
\ 0238 F1 POP AF
\ 0239 F1 POP AF
\ 023A 2C INC L
\ 023B 2D DEC L
\ 023C 2807 JR Z,?0082
\ 023E ?0079:
276 {
277 if (FSELGetNext(g_amv_vars.location.filename) != 0)
\ 023E CDD502 CALL LWRD ?0194
\ 0241 2C INC L
\ 0242 2D DEC L
\ 0243 2072 JR NZ,?0186
\ 0245 ?0081:
278 {
279 return 1;
280 }
\ 0245 ?0082:
\ 0245 ?0080:
281 }
282 result = FSELGetErrID();
\ 0245 CD1401 CALL LWRD ?0196
283 if (FSELGetErrID() != 0)
\ 0248 CD1401 CALL LWRD ?0196
\ 024B 2C INC L
\ 024C 2D DEC L
\ 024D 287C JR Z,?0106
\ 024F ?0083:
284 {
285 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 024F ?0187:
\ 024F 119301 LD DE,403
\ 0252 1848 JR ?0191
286 return 0;
287 }
\ 0254 ?0084:
288 return 0;//非法
289 }
\ 0254 ?0076:
290 else
291 {
292 return 0;//没卡退出
293 }
294 }
295 return 0;
296 }
\ 0254 ?0062:
297 else //g_amv_vars.location.disk == 'H'
298 {
299 if (FSELGetNext(g_amv_vars.location.filename) != 0)
\ 0254 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0257 2C INC L
\ 0258 2D DEC L
\ 0259 205C JR NZ,?0186
\ 025B ?0085:
300 {
301 return 1;//找到文件
302 }
\ 025B ?0086:
303
304 if (FSELGetErrID() == 0)
\ 025B CD1401 CALL LWRD ?0196
\ 025E 2C INC L
\ 025F 2D DEC L
\ 0260 2869 JR Z,?0106
\ 0262 ?0087:
305 {
306 return 0;//非法
307 }
\ 0262 ?0088:
308
309 //再查一次,因为可能这目录前面还有文件(虽然后面已无文件)
310 if (InitFileSelector() == 0)
\ 0262 3E00 LD A,BYTE3 InitFileSelector
\ 0264 212C00 LD HL,LWRD InitFileSelector
\ 0267 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 026A 7D LD A,L
\ 026B B4 OR H
\ 026C 285D JR Z,?0106
\ 026E ?0089:
311 {
312 return 0;
313 }
\ 026E ?0090:
314
315 if (FSELGetNext(g_amv_vars.location.filename) != 0)
\ 026E CDD502 CALL LWRD ?0194
\ 0271 2C INC L
\ 0272 2D DEC L
\ 0273 2042 JR NZ,?0186
\ 0275 ?0091:
316 {
317 return 1;//找到文件
318 }
\ 0275 ?0092:
319
320 if (FSELGetErrID() == 0)
\ 0275 CD1401 CALL LWRD ?0196
\ 0278 2C INC L
\ 0279 2D DEC L
\ 027A 284F JR Z,?0106
\ 027C ?0093:
321 {
322 return 0;//非法
323 }
\ 027C ?0094:
324
325 if (g_amv_vars.location.disk == 'C')
\ 027C 3A0500 LD A,(g_amv_vars+5)
\ 027F FE43 CP 67
\ 0281 2816 JR Z,?0193
\ 0283 ?0095:
326 {
327 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
328 return 0; //因为前面已从 'H' 查到 'C' 了,已查完,未找到文件
329 }
\ 0283 ?0096:
330 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 0283 119301 LD DE,403
\ 0286 CD1F01 CALL LWRD ?0197
331
332 g_amv_vars.location.disk = 'C';
\ 0289 3E43 LD A,67
\ 028B 320500 LD (g_amv_vars+5),A
333 if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
\ 028E 3A0000 LD A,(g_DiskStateFlag)
\ 0291 CB7F BIT 7,A
\ 0293 2836 JR Z,?0106
\ 0295 ?0097:
334 {
335 return 0;
336 }
\ 0295 ?0098:
337
338 if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
\ 0295 CB77 BIT 6,A
\ 0297 2808 JR Z,?0100
\ 0299 ?0099:
339 {
340 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 0299 ?0193:
\ 0299 119201 LD DE,402
\ 029C ?0191:
\ 029C CD1F01 CALL LWRD ?0197
341 return 0;
\ 029F 182A JR ?0106
342 }
\ 02A1 ?0100:
343
344 if (FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR, 'C'))
\ 02A1 0E43 LD C,67
\ 02A3 C5 PUSH BC
\ 02A4 0E00 LD C,0
\ 02A6 C5 PUSH BC
\ 02A7 CD0A01 CALL LWRD ?0195
\ 02AA F1 POP AF
\ 02AB F1 POP AF
\ 02AC 2C INC L
\ 02AD 2D DEC L
\ 02AE 280C JR Z,?0104
\ 02B0 ?0101:
345 {
346 if (FSELGetNext(g_amv_vars.location.filename) != 0)
\ 02B0 CDD502 CALL LWRD ?0194
\ 02B3 2C INC L
\ 02B4 2D DEC L
\ 02B5 2805 JR Z,?0104
\ 02B7 ?0103:
347 {
348 return 1;//找到文件
\ 02B7 ?0186:
\ 02B7 210100 LD HL,1
349 }
\ 02BA 1812 JR ?0107
\ 02BC ?0104:
\ 02BC ?0102:
350 }
351 result = FSELGetErrID();
\ 02BC CD1401 CALL LWRD ?0196
352
353 if (result != 0)
\ 02BF 7D LD A,L
\ 02C0 B7 OR A
\ 02C1 2808 JR Z,?0106
\ 02C3 ?0105:
354 {
355 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 02C3 CD1C01 CALL LWRD ?0198
356 g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
\ 02C6 210000 LD HL,g_DiskStateFlag
\ 02C9 CBF6 SET 6,(HL)
357 return 0;//
358 }
\ 02CB ?0106:
359 return 0;
\ 02CB 210000 LD HL,0
360 }
\ 02CE ?0107:
\ 02CE DDE1 POP IX
\ 02D0 D1 POP DE
\ 02D1 C1 POP BC
\ 02D2 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02D5 ?0194:
\ 02D5 111F00 LD DE,g_amv_vars+31
\ 02D8 3E00 LD A,BYTE3 fselGetNextFile
\ 02DA 210000 LD HL,LWRD fselGetNextFile
\ 02DD C30000 JP LWRD ?BANK_CALL_DIRECT_L08
361 }
362
363
364 /*
365 // error information defines in file selector
366 #define FSEL_ERR_OUTOF 1
367 #define FSEL_ERR_EMPTY 2
368 #define FSEL_ERR_SETDIR 3
369 #define FSEL_ERR_SETFILE 4
370 #define FSEL_ERR_EXCEPTION 5
371
372
373 #define FSEL_ERR_FS 20
374 #define FSEL_ERR_FAIL 21
375 #define FSEL_ERR_DISK 22
376 #define FSEL_ERR_PLAYLIST 23
377 */
378
379 /*
380 //error information display
381 1) 磁盘错 : 在 main.c 中已报
382 2) 卡错 : 在 main.c 中已报
383
384 3) 磁盘无文件
385 4) 卡无文件
386
387 5) 空间满 :在 ui_follow.c 文件中已报
388 7) 目录已满 :在 ui_follow.c 文件中已报
389
390 6) 电量不足!:
391 8) 格式错误
392 9) 卡已拔出
393
394 */
\ 02E0 END
Errors: none
Warnings: none
Code size: 736
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -