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