📄 sub_function1.lst
字号:
251 }
\ 01F7 ?0068:
252 if (FSELGetNext(g_reader_vars.location.filename) != 0)
\ 01F7 CDCD02 CALL LWRD ?0194
\ 01FA 2C INC L
\ 01FB 2D DEC L
\ 01FC C2AF02 JP NZ,?0186
\ 01FF ?0069:
253 {
254 return 1;
255 }
\ 01FF ?0070:
256
257 if (FSELGetErrID() == 0)
\ 01FF CD1401 CALL LWRD ?0196
\ 0202 2C INC L
\ 0203 2D DEC L
\ 0204 CAC302 JP Z,?0106
\ 0207 ?0071:
258 {
259 return 0;//非法
260 }
\ 0207 ?0072:
261
262 if (g_reader_vars.location.disk == 'H')
\ 0207 3A0600 LD A,(g_reader_vars+6)
\ 020A FE48 CP 72
\ 020C 2839 JR Z,?0187
\ 020E ?0073:
263 {
264 DisplayErrInfor(CFILEOUT);//显示卡无文件
265 return 0; //因为前面已从 'C' 查到 'H' 了,已查完,未找到文件
266 }
\ 020E ?0074:
267 else //还在 'C'
268 {
269 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 020E CD1C01 CALL LWRD ?0198
270
271 //检测 sd 卡是否存在
272 if ((DRV_DetectUD(1) == 0x20)&&((g_DiskStateFlag & SetCardOKFlag_def)!=0))
\ 0211 1E01 LD E,1
\ 0213 CD0000 CALL LWRD DRV_DetectUD
\ 0216 FE20 CP 32
\ 0218 C2C302 JP NZ,?0106
\ 021B 3A0000 LD A,(g_DiskStateFlag)
\ 021E CB5F BIT 3,A
\ 0220 CAC302 JP Z,?0106
\ 0223 ?0078:
\ 0223 ?0077:
\ 0223 ?0075:
273 {//有卡
274 g_reader_vars.location.disk = 'H';
\ 0223 3E48 LD A,72
\ 0225 320600 LD (g_reader_vars+6),A
275 if (FSELInit(FSEL_TYPE_TXT, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR, 'H'))
\ 0228 4F LD C,A
\ 0229 C5 PUSH BC
\ 022A 0E00 LD C,0
\ 022C C5 PUSH BC
\ 022D CD0A01 CALL LWRD ?0195
\ 0230 F1 POP AF
\ 0231 F1 POP AF
\ 0232 2C INC L
\ 0233 2D DEC L
\ 0234 2807 JR Z,?0082
\ 0236 ?0079:
276 {
277 if (FSELGetNext(g_reader_vars.location.filename) != 0)
\ 0236 CDCD02 CALL LWRD ?0194
\ 0239 2C INC L
\ 023A 2D DEC L
\ 023B 2072 JR NZ,?0186
\ 023D ?0081:
278 {
279 return 1;
280 }
\ 023D ?0082:
\ 023D ?0080:
281 }
282 result = FSELGetErrID();
\ 023D CD1401 CALL LWRD ?0196
283 if (FSELGetErrID() != 0)
\ 0240 CD1401 CALL LWRD ?0196
\ 0243 2C INC L
\ 0244 2D DEC L
\ 0245 287C JR Z,?0106
\ 0247 ?0083:
284 {
285 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 0247 ?0187:
\ 0247 117502 LD DE,629
\ 024A 1848 JR ?0191
286 return 0;
287 }
\ 024C ?0084:
288 return 0;//非法
289 }
\ 024C ?0076:
290 else
291 {
292 return 0;//没卡退出
293 }
294 }
295 return 0;
296 }
\ 024C ?0062:
297 else //g_reader_vars.location.disk == 'H'
298 {
299 if (FSELGetNext(g_reader_vars.location.filename) != 0)
\ 024C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 024F 2C INC L
\ 0250 2D DEC L
\ 0251 205C JR NZ,?0186
\ 0253 ?0085:
300 {
301 return 1;//找到文件
302 }
\ 0253 ?0086:
303
304 if (FSELGetErrID() == 0)
\ 0253 CD1401 CALL LWRD ?0196
\ 0256 2C INC L
\ 0257 2D DEC L
\ 0258 2869 JR Z,?0106
\ 025A ?0087:
305 {
306 return 0;//非法
307 }
\ 025A ?0088:
308
309 //再查一次,因为可能这目录前面还有文件(虽然后面已无文件)
310 if (InitFileSelector() == 0)
\ 025A 3E00 LD A,BYTE3 InitFileSelector
\ 025C 212C00 LD HL,LWRD InitFileSelector
\ 025F CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0262 7D LD A,L
\ 0263 B4 OR H
\ 0264 285D JR Z,?0106
\ 0266 ?0089:
311 {
312 return 0;
313 }
\ 0266 ?0090:
314
315 if (FSELGetNext(g_reader_vars.location.filename) != 0)
\ 0266 CDCD02 CALL LWRD ?0194
\ 0269 2C INC L
\ 026A 2D DEC L
\ 026B 2042 JR NZ,?0186
\ 026D ?0091:
316 {
317 return 1;//找到文件
318 }
\ 026D ?0092:
319
320 if (FSELGetErrID() == 0)
\ 026D CD1401 CALL LWRD ?0196
\ 0270 2C INC L
\ 0271 2D DEC L
\ 0272 284F JR Z,?0106
\ 0274 ?0093:
321 {
322 return 0;//非法
323 }
\ 0274 ?0094:
324
325 if (g_reader_vars.location.disk == 'C')
\ 0274 3A0600 LD A,(g_reader_vars+6)
\ 0277 FE43 CP 67
\ 0279 2816 JR Z,?0193
\ 027B ?0095:
326 {
327 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
328 return 0; //因为前面已从 'H' 查到 'C' 了,已查完,未找到文件
329 }
\ 027B ?0096:
330 DisplayErrInfor(CFILEOUT);//显示卡无文件
\ 027B 117502 LD DE,629
\ 027E CD1F01 CALL LWRD ?0197
331
332 g_reader_vars.location.disk = 'C';
\ 0281 3E43 LD A,67
\ 0283 320600 LD (g_reader_vars+6),A
333 if ((g_DiskStateFlag & SetDiskOKFlag_def) == 0)
\ 0286 3A0000 LD A,(g_DiskStateFlag)
\ 0289 CB7F BIT 7,A
\ 028B 2836 JR Z,?0106
\ 028D ?0097:
334 {
335 return 0;
336 }
\ 028D ?0098:
337
338 if ((g_DiskStateFlag & SetDiskNoFile_def) != 0)
\ 028D CB77 BIT 6,A
\ 028F 2808 JR Z,?0100
\ 0291 ?0099:
339 {
340 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 0291 ?0193:
\ 0291 117402 LD DE,628
\ 0294 ?0191:
\ 0294 CD1F01 CALL LWRD ?0197
341 return 0;
\ 0297 182A JR ?0106
342 }
\ 0299 ?0100:
343
344 if (FSELInit(FSEL_TYPE_TXT, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR, 'C'))
\ 0299 0E43 LD C,67
\ 029B C5 PUSH BC
\ 029C 0E00 LD C,0
\ 029E C5 PUSH BC
\ 029F CD0A01 CALL LWRD ?0195
\ 02A2 F1 POP AF
\ 02A3 F1 POP AF
\ 02A4 2C INC L
\ 02A5 2D DEC L
\ 02A6 280C JR Z,?0104
\ 02A8 ?0101:
345 {
346 if (FSELGetNext(g_reader_vars.location.filename) != 0)
\ 02A8 CDCD02 CALL LWRD ?0194
\ 02AB 2C INC L
\ 02AC 2D DEC L
\ 02AD 2805 JR Z,?0104
\ 02AF ?0103:
347 {
348 return 1;//找到文件
\ 02AF ?0186:
\ 02AF 210100 LD HL,1
349 }
\ 02B2 1812 JR ?0107
\ 02B4 ?0104:
\ 02B4 ?0102:
350 }
351 result = FSELGetErrID();
\ 02B4 CD1401 CALL LWRD ?0196
352
353 if (result != 0)
\ 02B7 7D LD A,L
\ 02B8 B7 OR A
\ 02B9 2808 JR Z,?0106
\ 02BB ?0105:
354 {
355 DisplayErrInfor(DFILEOUT);//显示磁盘无文件
\ 02BB CD1C01 CALL LWRD ?0198
356 g_DiskStateFlag |= SetDiskNoFile_def;//标志磁盘无文件
\ 02BE 210000 LD HL,g_DiskStateFlag
\ 02C1 CBF6 SET 6,(HL)
357 return 0;//
358 }
\ 02C3 ?0106:
359 return 0;
\ 02C3 210000 LD HL,0
360 }
\ 02C6 ?0107:
\ 02C6 DDE1 POP IX
\ 02C8 D1 POP DE
\ 02C9 C1 POP BC
\ 02CA C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 02CD ?0194:
\ 02CD 112000 LD DE,g_reader_vars+32
\ 02D0 3E00 LD A,BYTE3 fselGetNextFile
\ 02D2 210000 LD HL,LWRD fselGetNextFile
\ 02D5 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 */
\ 02D8 END
Errors: none
Warnings: none
Code size: 728
Constant size: 0
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -