📄 sub_function2.lst
字号:
\ 0481 4E LD C,(HL)
\ 0482 C5 PUSH BC
\ 0483 011E00 LD BC,30
\ 0486 111E00 LD DE,g_TagInfoBuf+30
\ 0489 CDE701 CALL LWRD ?0155
\ 048C F1 POP AF
394 if ( (g_TagInfoBuf[0] !=0)
395 || (g_TagInfoBuf[30] !=0) )
\ 048D 3A0000 LD A,(g_TagInfoBuf)
\ 0490 B7 OR A
\ 0491 2006 JR NZ,?0084
\ 0493 3A1E00 LD A,(g_TagInfoBuf+30)
\ 0496 B7 OR A
\ 0497 2809 JR Z,?0087
\ 0499 ?0084:
\ 0499 ?0085:
\ 0499 ?0082:
396 {
397 strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
\ 0499 CDB905 CALL LWRD ?0154
398 strcat(g_TagInfoBuf, " ");
399 strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
400 strcat(g_TagInfoBuf, " ");
\ 049C ?0083:
401 }
402 }
403 else
\ 049C 1804 JR ?0087
\ 049E ?0081:
404 {
405 g_TagInfoBuf[0] = 0x0;
\ 049E AF XOR A
\ 049F 320000 LD (g_TagInfoBuf),A
\ 04A2 ?0087:
406 }
407 break;
\ 04A2 1864 JR ?0078
\ 04A4 ?0088:
\ 04A4 FE01 CP 1
\ 04A6 201F JR NZ,?0092
408
409 case Music_MP3:
410 if (mp3GetID3Info(g_music_vars.location.filename, & ID3, g_comval.langid))
\ 04A8 ED4B0C00 LD BC,(g_comval+12)
\ 04AC 0600 LD B,0
\ 04AE C5 PUSH BC
\ 04AF 210600 LD HL,6
\ 04B2 39 ADD HL,SP
\ 04B3 4D LD C,L
\ 04B4 44 LD B,H
\ 04B5 112100 LD DE,g_music_vars+33
\ 04B8 3E00 LD A,BYTE3 mp3GetID3Info
\ 04BA 210000 LD HL,LWRD mp3GetID3Info
\ 04BD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04C0 F1 POP AF
\ 04C1 2C INC L
\ 04C2 2D DEC L
\ 04C3 283F JR Z,?0096
\ 04C5 ?0089:
411 {
412 strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
\ 04C5 1826 JR ?0146
413 strcat(g_TagInfoBuf, " ");
414 strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
415 strcat(g_TagInfoBuf, " ");
416 strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
417 strcat(g_TagInfoBuf, " ");
418 }
419 else
\ 04C7 ?0090:
420 {
421 g_TagInfoBuf[0] = 0x0;
\ 04C7 ?0091:
422 }
423 break;
\ 04C7 ?0092:
\ 04C7 FE06 CP 6
\ 04C9 2039 JR NZ,?0096
424 case Music_APE:
425 memset(g_TagInfoBuf,0,90);
\ 04CB 015A00 LD BC,90
\ 04CE 110000 LD DE,g_TagInfoBuf
\ 04D1 68 LD L,B
\ 04D2 60 LD H,B
\ 04D3 CD0000 CALL LWRD ?MEMSET_L11
426 if (GetAPEInfoByNo(g_music_vars.location.filename, &ID3, 0))
\ 04D6 4C LD C,H
\ 04D7 C5 PUSH BC
\ 04D8 2E06 LD L,6
\ 04DA 39 ADD HL,SP
\ 04DB 4D LD C,L
\ 04DC 44 LD B,H
\ 04DD 112100 LD DE,g_music_vars+33
\ 04E0 3E00 LD A,BYTE3 GetAPEInfoByNo
\ 04E2 210000 LD HL,LWRD GetAPEInfoByNo
\ 04E5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04E8 F1 POP AF
\ 04E9 2C INC L
\ 04EA 2D DEC L
\ 04EB 2817 JR Z,?0096
\ 04ED ?0093:
427 {
428 strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
\ 04ED ?0146:
\ 04ED CDB905 CALL LWRD ?0154
429 strcat(g_TagInfoBuf, " ");
430 strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
431 strcat(g_TagInfoBuf, " ");
432 strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
\ 04F0 113C00 LD DE,g_TagInfoBuf+60
\ 04F3 210000 LD HL,g_TagInfoBuf
\ 04F6 CD0000 CALL LWRD ?STRCAT_L11
433 strcat(g_TagInfoBuf, " ");
\ 04F9 110900 LD DE,?0086
\ 04FC 210000 LD HL,g_TagInfoBuf
\ 04FF CD0000 CALL LWRD ?STRCAT_L11
434 }
435 else
\ 0502 1804 JR ?0078
\ 0504 ?0094:
436 {
437 g_TagInfoBuf[0] = 0x0;
\ 0504 ?0095:
438 }
439 break;
\ 0504 ?0096:
440 default:
441 g_TagInfoBuf[0] = 0x0;
\ 0504 AF XOR A
\ 0505 320000 LD (g_TagInfoBuf),A
442 break;
\ 0508 ?0078:
443 }
444
445
446
447
448 // 显示信息区
449 //g_music_vars.location.filename[12] = 0;
450
451 //---处理没有TAG信息的情况
452 if (g_TagInfoBuf[0] == 0)
\ 0508 3A0000 LD A,(g_TagInfoBuf)
\ 050B B7 OR A
\ 050C 202F JR NZ,?0101
\ 050E ?0097:
453 {
454 memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
\ 050E 010C00 LD BC,12
\ 0511 110000 LD DE,g_TagInfoBuf
\ 0514 212100 LD HL,g_music_vars+33
\ 0517 EDB0 LDIR
455 {
456
457 result = FS_GetName(g_TagInfoBuf, 31); //取出长名
\ 0519 0E1F LD C,31
\ 051B 110000 LD DE,g_TagInfoBuf
\ 051E CD0000 CALL LWRD FS_GetName
\ 0521 0600 LD B,0
458 if (result != 0)
\ 0523 B7 OR A
\ 0524 280D JR Z,?0100
\ 0526 ?0099:
459 {
460 unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_comval.langid);
\ 0526 210C00 LD HL,g_comval+12
\ 0529 4E LD C,(HL)
\ 052A C5 PUSH BC
\ 052B 0E5A LD C,90
\ 052D CDE401 CALL LWRD ?0156
\ 0530 F1 POP AF
461 }
462 else
\ 0531 180A JR ?0101
\ 0533 ?0100:
463 {
464 memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
\ 0533 0E0C LD C,12
\ 0535 110000 LD DE,g_TagInfoBuf
\ 0538 212100 LD HL,g_music_vars+33
\ 053B EDB0 LDIR
\ 053D ?0101:
\ 053D ?0098:
465 }
466 }
467 }
468
469 //---在TAG信息后加个空格避免滚屏时串在一起
470 for (result = 0; result<sizeof(g_TagInfoBuf); result++)
\ 053D AF XOR A
\ 053E DD77F0 LD (IX-16),A
\ 0541 DD77F1 LD (IX-15),A
\ 0544 ?0103:
\ 0544 015A80 LD BC,32858
\ 0547 DD6EF0 LD L,(IX-16)
\ 054A DD66F1 LD H,(IX-15)
\ 054D 78 LD A,B
\ 054E AC XOR H
\ 054F 67 LD H,A
\ 0550 ED42 SBC HL,BC
\ 0552 3025 JR NC,?0102
\ 0554 ?0104:
471 {
472 if (g_TagInfoBuf[result] == 0)
\ 0554 210000 LD HL,g_TagInfoBuf
\ 0557 DD4EF0 LD C,(IX-16)
\ 055A DD46F1 LD B,(IX-15)
\ 055D 09 ADD HL,BC
\ 055E 7E LD A,(HL)
\ 055F B7 OR A
\ 0560 200D JR NZ,?0107
\ 0562 ?0106:
473 {
474 g_TagInfoBuf[result] = ' ';
\ 0562 210000 LD HL,g_TagInfoBuf
\ 0565 09 ADD HL,BC
\ 0566 3620 LD (HL),32
475 g_TagInfoBuf[result + 1] = 0;
\ 0568 210100 LD HL,g_TagInfoBuf+1
\ 056B 09 ADD HL,BC
\ 056C 77 LD (HL),A
476 break;
\ 056D 180A JR ?0102
\ 056F ?0107:
\ 056F DD34F0 INC (IX-16)
\ 0572 20D0 JR NZ,?0103
\ 0574 DD34F1 INC (IX-15)
\ 0577 18CB JR ?0103
\ 0579 ?0102:
477 }
478 }
479
480 //清 WATCH_DOG
481 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 0579 DB4E IN A,(78)
\ 057B CBDF SET 3,A
\ 057D D34E OUT (78),A
482
483 #ifdef OPT_Sup_LRC_fun//支持歌词显示功能
484
485 BankSwitch((unsigned long)lyricQueryExist >> 16);
\ 057F 0E00 LD C,BYTE3 lyricQueryExist
\ 0581 59 LD E,C
\ 0582 CD0000 CALL LWRD BankSwitch
486 g_lyricflag = lyricQueryExist(g_music_vars.location.filename);
\ 0585 112100 LD DE,g_music_vars+33
\ 0588 79 LD A,C
\ 0589 210000 LD HL,LWRD lyricQueryExist
\ 058C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 058F 7D LD A,L
\ 0590 320000 LD (g_lyricflag),A
487
488 if (g_lyricflag)
\ 0593 B7 OR A
\ 0594 2811 JR Z,?0109
\ 0596 ?0108:
489 {
490 g_lyric_mod = lyricLoad(g_music_vars.location.filename, g_TagInfoBuf);
\ 0596 010000 LD BC,g_TagInfoBuf
\ 0599 112100 LD DE,g_music_vars+33
\ 059C 3E00 LD A,BYTE3 lyricLoad
\ 059E 210000 LD HL,LWRD lyricLoad
\ 05A1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05A4 DD75F2 LD (IX-14),L
\ 05A7 ?0109:
491 }
492 if (g_lyric_mod == 0)
\ 05A7 AF XOR A
\ 05A8 DDB6F2 OR (IX-14)
\ 05AB 2003 JR NZ,?0111
\ 05AD ?0110:
493 {
494 g_lyricflag = FALSE;
\ 05AD 320000 LD (g_lyricflag),A
\ 05B0 ?0111:
495 }
496
497 #endif //OPT_Sup_LRC_fun
498
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -