📄 sub_function3.lst
字号:
\ 02B9 320700 LD (g_music_vars+7),A
284 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'H'))
\ 02BC 4F LD C,A
\ 02BD C5 PUSH BC
\ 02BE 214F00 LD HL,g_music_vars+79
\ 02C1 4E LD C,(HL)
\ 02C2 C5 PUSH BC
\ 02C3 CD8401 CALL LWRD ?0205
\ 02C6 F1 POP AF
\ 02C7 F1 POP AF
\ 02C8 2C INC L
\ 02C9 2D DEC L
\ 02CA 2805 JR Z,?0088
\ 02CC ?0085:
285 {
286 if (FSELGetNext(g_music_vars.location.filename) != 0)
\ 02CC CD3702 CALL LWRD ?0204
\ 02CF 2033 JR NZ,?0172
\ 02D1 ?0087:
287 {
288 return 1;
289 }
\ 02D1 ?0088:
\ 02D1 ?0086:
290 }
291 result = FSELGetErrID();
\ 02D1 CD8F01 CALL LWRD ?0206
292 if (FSELGetErrID() != 0)
\ 02D4 CD8F01 CALL LWRD ?0206
\ 02D7 2C INC L
\ 02D8 2D DEC L
\ 02D9 2805 JR Z,?0090
\ 02DB ?0089:
293 {
294 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 02DB 119301 LD DE,403
\ 02DE 1851 JR ?0177
295 return 0;
296 }
\ 02E0 ?0090:
297 return 0;//非法
\ 02E0 1879 JR ?0114
298 }
\ 02E2 ?0082:
299 else
300 {
301 g_music_vars.location.disk = 'C';
\ 02E2 3E43 LD A,67
\ 02E4 320700 LD (g_music_vars+7),A
302 return 0;//没卡退出
\ 02E7 1872 JR ?0114
303 }
304 }
305 return 0;
306 }
\ 02E9 ?0065:
307 else //g_music_vars.location.disk == 'H'
308 {
309 if (FSELGetNext(g_music_vars.location.filename) != 0)
\ 02E9 CD3F02 CALL LWRD ?0203
\ 02EC 2016 JR NZ,?0172
\ 02EE ?0091:
310 {
311 return 1;//找到文件
312 }
\ 02EE ?0092:
313
314 if (FSELGetErrID() == 0)
\ 02EE CD8F01 CALL LWRD ?0206
\ 02F1 2C INC L
\ 02F2 2D DEC L
\ 02F3 2866 JR Z,?0114
\ 02F5 ?0093:
315 {
316 return 0;//非法
317 }
\ 02F5 ?0094:
318
319 //再查一次,因为可能这目录前面还有文件(虽然后面已无文件)
320 if (InitFileSelector() == 0)
\ 02F5 3E00 LD A,BYTE3 InitFileSelector
\ 02F7 219D00 LD HL,LWRD InitFileSelector
\ 02FA CD4A02 CALL LWRD ?0211
\ 02FD 285C JR Z,?0114
\ 02FF ?0095:
321 {
322 return 0;
323 }
\ 02FF ?0096:
324
325 if (FSELGetNext(g_music_vars.location.filename) != 0)
\ 02FF CD3702 CALL LWRD ?0204
\ 0302 2802 JR Z,?0098
\ 0304 ?0097:
326 {
327 return 1;//找到文件
\ 0304 ?0172:
\ 0304 1846 JR ?0173
328 }
\ 0306 ?0098:
329
330 if (FSELGetErrID() == 0)
\ 0306 CD8F01 CALL LWRD ?0206
\ 0309 2C INC L
\ 030A 2D DEC L
\ 030B 284E JR Z,?0114
\ 030D ?0099:
331 {
332 return 0;//非法
333 }
\ 030D ?0100:
334
335 if (g_music_vars.location.disk == 'C')
\ 030D 3A0700 LD A,(g_music_vars+7)
\ 0310 FE43 CP 67
\ 0312 281A JR Z,?0178
\ 0314 ?0101:
336 {
337 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
338 return 0; //因为前面已从 'H' 查到 'C' 了,已查完,未找到文件
339 }
\ 0314 ?0102:
340
341 if((g_DiskStateFlag & SetCardOKFlag_def)!=0)
\ 0314 3A0000 LD A,(g_DiskStateFlag)
\ 0317 CB5F BIT 3,A
\ 0319 2803 JR Z,?0104
\ 031B ?0103:
342 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 031B CDA801 CALL LWRD ?0208
\ 031E ?0104:
343
344 g_music_vars.location.disk = 'C';
\ 031E 3E43 LD A,67
\ 0320 320700 LD (g_music_vars+7),A
345 if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
\ 0323 3A0000 LD A,(g_DiskStateFlag)
\ 0326 CB7F BIT 7,A
\ 0328 2831 JR Z,?0114
\ 032A ?0105:
346 {
347 return 0;
348 }
\ 032A ?0106:
349
350 if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
\ 032A CB77 BIT 6,A
\ 032C 2808 JR Z,?0108
\ 032E ?0107:
351 {
352 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 032E ?0178:
\ 032E 119201 LD DE,402
\ 0331 ?0177:
\ 0331 CDAB01 CALL LWRD ?0209
353 return 0;
\ 0334 1825 JR ?0114
354 }
\ 0336 ?0108:
355
356 if (FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, g_music_vars.fselmod, 'C'))
\ 0336 0E43 LD C,67
\ 0338 C5 PUSH BC
\ 0339 214F00 LD HL,g_music_vars+79
\ 033C 4E LD C,(HL)
\ 033D C5 PUSH BC
\ 033E CD8401 CALL LWRD ?0205
\ 0341 F1 POP AF
\ 0342 F1 POP AF
\ 0343 2C INC L
\ 0344 2D DEC L
\ 0345 280A JR Z,?0112
\ 0347 ?0109:
357 {
358 if (FSELGetNext(g_music_vars.location.filename) != 0)
\ 0347 CD3702 CALL LWRD ?0204
\ 034A 2805 JR Z,?0112
\ 034C ?0111:
359 {
360 return 1;//找到文件
\ 034C ?0173:
\ 034C 210100 LD HL,1
361 }
\ 034F 180D JR ?0115
\ 0351 ?0112:
\ 0351 ?0110:
362 }
363 result = FSELGetErrID();
\ 0351 CD8F01 CALL LWRD ?0206
364
365 if (result != 0)
\ 0354 7D LD A,L
\ 0355 B7 OR A
\ 0356 2803 JR Z,?0114
\ 0358 ?0113:
366 {
367 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 0358 CD9701 CALL LWRD ?0207
368 g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
369 return 0;//
370 }
\ 035B ?0114:
371 return 0;
\ 035B 210000 LD HL,0
372 }
\ 035E ?0115:
\ 035E C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
373 }
374
375
376 /*
377 // error information defines in file selector
378 #define FSEL_ERR_OUTOF 1
379 #define FSEL_ERR_EMPTY 2
380 #define FSEL_ERR_SETDIR 3
381 #define FSEL_ERR_SETFILE 4
382 #define FSEL_ERR_EXCEPTION 5
383
384
385 #define FSEL_ERR_FS 20
386 #define FSEL_ERR_FAIL 21
387 #define FSEL_ERR_DISK 22
388 #define FSEL_ERR_PLAYLIST 23
389 */
390
391 /*
392 //error information display
393 1) 磁盘错 : 在 main.c 中已报
394 2) 卡错 : 在 main.c 中已报
395
396 3) 磁盘无文件
397 4) 卡无文件
398
399 5) 空间满 :在 ui_follow.c 文件中已报
400 7) 目录已满 :在 ui_follow.c 文件中已报
401
402 6) 电量不足!:
403 8) 格式错误
404 9) 卡已拔出
405
406 */
\ 0361 END
Errors: none
Warnings: none
Code size: 865
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -