show_stop_menu.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,396 行 · 第 1/5 页
LST
1,396 行
\ 0485 DD74F1 LD (IX-15),H
430
431 if(result == RESULT_IGNORE) return 0;
\ 0488 3E34 LD A,52
\ 048A AD XOR L
\ 048B B4 OR H
\ 048C CA8106 JP Z,?0137
\ 048F ?0087:
\ 048F ?0088:
432 else if(result != 0) return result;
\ 048F 7D LD A,L
\ 0490 B4 OR H
\ 0491 C26206 JP NZ,?0184
\ 0494 ?0089:
\ 0494 ?0090:
433 active = g_list.active;
\ 0494 3A0400 LD A,(g_list+4)
\ 0497 320100 LD (?0083),A
434 if(menu_flag==0)
\ 049A AF XOR A
\ 049B DDB6F2 OR (IX-14)
\ 049E 200A JR NZ,?0094
\ 04A0 ?0091:
435 {
436 if (DRV_DetectUD(1) != 0x20)
\ 04A0 1E01 LD E,1
\ 04A2 CD0000 CALL LWRD DRV_DetectUD
\ 04A5 FE20 CP 32
\ 04A7 C22906 JP NZ,?0192
\ 04AA ?0093:
437 {
438 show_error(CARDPULL);//显示卡拔出
439 g_record_vars.location.disk = 'C';
440 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
441 fselGetLocation(&g_record_vars.location);
442 //return RESULT_SD_OUT;
443 make_dirname();
444 return RESULT_DIR_CHANGED;
445 }
\ 04AA ?0094:
\ 04AA ?0092:
446 }
447
448 if(menu_flag)
\ 04AA AF XOR A
\ 04AB DDB6F2 OR (IX-14)
\ 04AE ED5B0400 LD DE,(g_list+4)
\ 04B2 286D JR Z,?0096
\ 04B4 ?0095:
449 {
450 switch( g_list.active )
\ 04B4 CD0000 CALL LWRD ?S_S_SWITCH_L06
\ 04B7 0000 DEFW 0
\ 04B9 0300 DEFW 3
\ 04BB 8106 DEFW ?0137
\ 04BD C304 DEFW ?0098
\ 04BF 7706 DEFW ?0135
\ 04C1 8106 DEFW ?0137
\ 04C3 ?0098:
451 {
452 case 0: //local folder
453 if(g_record_vars.location.disk=='H')
\ 04C3 3A0A00 LD A,(g_record_vars+10)
\ 04C6 FE48 CP 72
\ 04C8 2005 JR NZ,?0100
\ 04CA ?0099:
454 {
455 g_record_vars.location.disk='C' ;
456
457 memset(g_record_vars.location.filename,0,12);
\ 04CA CDE503 CALL LWRD ?0195
458 }
459 else
\ 04CD 1810 JR ?0101
\ 04CF ?0100:
460 {
461 memcpy(file, g_record_vars.location.filename,12);
\ 04CF 0E0C LD C,12
\ 04D1 210400 LD HL,4
\ 04D4 39 ADD HL,SP
\ 04D5 EB EX DE,HL
\ 04D6 212400 LD HL,g_record_vars+36
\ 04D9 EDB0 LDIR
462 g_record_vars.location.filename[0] = 0;
\ 04DB AF XOR A
\ 04DC 322400 LD (g_record_vars+36),A
\ 04DF ?0101:
463 }
464
465 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
\ 04DF 210A00 LD HL,g_record_vars+10
\ 04E2 4E LD C,(HL)
\ 04E3 C5 PUSH BC
\ 04E4 0E00 LD C,0
\ 04E6 C5 PUSH BC
\ 04E7 CDF303 CALL LWRD ?0197
\ 04EA F1 POP AF
\ 04EB F1 POP AF
466 fselGetLocation(&g_record_vars.location);
\ 04EC CDFF03 CALL LWRD ?0198
467 result = ui_directory(&g_record_vars.location, DIRECTORY_ALL, g_comval.langid);
\ 04EF C5 PUSH BC
\ 04F0 CD0F04 CALL LWRD ?0199
\ 04F3 F1 POP AF
\ 04F4 DD75F0 LD (IX-16),L
\ 04F7 DD74F1 LD (IX-15),H
468 memcpy(g_record_vars.location.filename, file, 12);
\ 04FA 010C00 LD BC,12
\ 04FD 112400 LD DE,g_record_vars+36
\ 0500 210400 LD HL,4
\ 0503 39 ADD HL,SP
\ 0504 EDB0 LDIR
469 g_menu_active = FALSE;
\ 0506 AF XOR A
\ 0507 320000 LD (g_menu_active),A
470 if(result == RESULT_IGNORE) return 0;
\ 050A 3E34 LD A,52
\ 050C DDAEF0 XOR (IX-16)
\ 050F DDB6F1 OR (IX-15)
\ 0512 CA8106 JP Z,?0137
\ 0515 ?0102:
\ 0515 ?0103:
471 else if(result != 0) return result;
\ 0515 DD7EF0 LD A,(IX-16)
\ 0518 DDB6F1 OR (IX-15)
\ 051B CA6A06 JP Z,?0134
\ 051E ?0104:
\ 051E C36206 JP LWRD ?0184
472 else
\ 0521 ?0105:
473 {
474 make_dirname();
475 return RESULT_DIR_CHANGED;
476 }
\ 0521 ?0106:
477
478
479 case 1: //rec type
480 result = show_rectype_menu();
481
482 return result;
483 //break;
484 case 2: //exit
\ 0521 ?0107:
485 return 0;
486 default:
\ 0521 ?0108:
\ 0521 ?0097:
487 //ASSERT(FALSE);
488 ;
489 }//switch
490 }
491 else
\ 0521 ?0096:
492 {
493 switch( g_list.active )
\ 0521 CD0000 CALL LWRD ?S_S_SWITCH_L06
\ 0524 0000 DEFW 0
\ 0526 0400 DEFW 4
\ 0528 8106 DEFW ?0137
\ 052A 3205 DEFW ?0111
\ 052C 9505 DEFW ?0119
\ 052E 7706 DEFW ?0135
\ 0530 8106 DEFW ?0137
\ 0532 ?0111:
494 {
495 case 0: //local folder
496
497 if(g_record_vars.location.disk=='H')
\ 0532 3A0A00 LD A,(g_record_vars+10)
\ 0535 FE48 CP 72
\ 0537 2005 JR NZ,?0113
\ 0539 ?0112:
498 {
499 g_record_vars.location.disk='C' ;
500
501 memset(g_record_vars.location.filename,0,12);
\ 0539 CDE503 CALL LWRD ?0195
502 }
503 else
\ 053C 1810 JR ?0114
\ 053E ?0113:
504 {
505 memcpy(file, g_record_vars.location.filename,12);
\ 053E 0E0C LD C,12
\ 0540 210400 LD HL,4
\ 0543 39 ADD HL,SP
\ 0544 EB EX DE,HL
\ 0545 212400 LD HL,g_record_vars+36
\ 0548 EDB0 LDIR
506 g_record_vars.location.filename[0] = 0;
\ 054A AF XOR A
\ 054B 322400 LD (g_record_vars+36),A
\ 054E ?0114:
507 }
508
509 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
\ 054E 210A00 LD HL,g_record_vars+10
\ 0551 4E LD C,(HL)
\ 0552 C5 PUSH BC
\ 0553 0E00 LD C,0
\ 0555 C5 PUSH BC
\ 0556 CDF303 CALL LWRD ?0197
\ 0559 F1 POP AF
\ 055A F1 POP AF
510 fselGetLocation(&g_record_vars.location);
\ 055B CDFF03 CALL LWRD ?0198
511 result = ui_directory(&g_record_vars.location, DIRECTORY_ALL, g_comval.langid);
\ 055E C5 PUSH BC
\ 055F CD0F04 CALL LWRD ?0199
\ 0562 F1 POP AF
\ 0563 DD75F0 LD (IX-16),L
\ 0566 DD74F1 LD (IX-15),H
512 memcpy(g_record_vars.location.filename, file, 12);
\ 0569 010C00 LD BC,12
\ 056C 112400 LD DE,g_record_vars+36
\ 056F 210400 LD HL,4
\ 0572 39 ADD HL,SP
\ 0573 EDB0 LDIR
513 g_menu_active = FALSE;
\ 0575 AF XOR A
\ 0576 320000 LD (g_menu_active),A
514 if(result == RESULT_IGNORE)
\ 0579 3E34 LD A,52
\ 057B DDAEF0 XOR (IX-16)
\ 057E DDB6F1 OR (IX-15)
\ 0581 2006 JR NZ,?0116
\ 0583 ?0115:
515 result= 0;
\ 0583 DD77F0 LD (IX-16),A
\ 0586 DD77F1 LD (IX-15),A
\ 0589 ?0116:
516 if(result != 0) return result;
\ 0589 DD7EF0 LD A,(IX-16)
\ 058C DDB6F1 OR (IX-15)
\ 058F CA6A06 JP Z,?0134
\ 0592 ?0117:
\ 0592 C36206 JP LWRD ?0184
517 else
\ 0595 ?0118:
518 {
519 make_dirname();
520 return RESULT_DIR_CHANGED;
521 }
\ 0595 ?0119:
522
523 case 1: //card folder
524
525 if(g_record_vars.location.disk=='C')
\ 0595 3A0A00 LD A,(g_record_vars+10)
\ 0598 FE43 CP 67
\ 059A 2049 JR NZ,?0121
\ 059C ?0120:
526 {
527 g_record_vars.location.disk='H' ;
\ 059C 3E48 LD A,72
\ 059E 320A00 LD (g_record_vars+10),A
528 result=fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR, g_record_vars.location.disk);
\ 05A1 4F LD C,A
\ 05A2 C5 PUSH BC
\ 05A3 48 LD C,B
\ 05A4 C5 PUSH BC
\ 05A5 CDF303 CALL LWRD ?0197
\ 05A8 F1 POP AF
\ 05A9 F1 POP AF
529 if(!result)
\ 05AA 7D LD A,L
\ 05AB B7 OR A
\ 05AC 201B JR NZ,?0123
\ 05AE ?0122:
530 {
531 g_record_vars.location.disk='C';
532 show_error(CREADERR);//显示卡错
\ 05AE CD1C04 CALL LWRD ?0200
533 fselInit(DIRECTORY_ALL, FSEL_DIR_END, FSEL_TYPE_COMMONDIR,g_record_vars.location.disk);
\ 05B1 210A00 LD HL,g_record_vars+1
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?