sub_function2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,392 行 · 第 1/5 页
LST
1,392 行
\ 04C1 210C00 LD HL,g_comval+12
\ 04C4 4E LD C,(HL)
\ 04C5 C5 PUSH BC
\ 04C6 011E00 LD BC,30
\ 04C9 111E00 LD DE,g_TagInfoBuf+30
\ 04CC CDC301 CALL LWRD ?0148
\ 04CF F1 POP AF
371 unitochar(&g_TagInfoBuf[60], 30, g_comval.langid);
\ 04D0 210C00 LD HL,g_comval+12
\ 04D3 4E LD C,(HL)
\ 04D4 C5 PUSH BC
\ 04D5 011E00 LD BC,30
\ 04D8 113C00 LD DE,g_TagInfoBuf+60
\ 04DB CDC301 CALL LWRD ?0148
\ 04DE F1 POP AF
372 if ( (g_TagInfoBuf[0] !=0)
373 || (g_TagInfoBuf[30] !=0)||(g_TagInfoBuf[60]!=0))
\ 04DF 3A0000 LD A,(g_TagInfoBuf)
\ 04E2 B7 OR A
\ 04E3 200C JR NZ,?0085
\ 04E5 3A1E00 LD A,(g_TagInfoBuf+30)
\ 04E8 B7 OR A
\ 04E9 2006 JR NZ,?0085
\ 04EB 3A3C00 LD A,(g_TagInfoBuf+60)
\ 04EE B7 OR A
\ 04EF 2809 JR Z,?0088
\ 04F1 ?0085:
\ 04F1 ?0086:
\ 04F1 ?0083:
374 {
375 strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
\ 04F1 CDFF05 CALL LWRD ?0147
376 strcat(g_TagInfoBuf, " ");
377 strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
378 strcat(g_TagInfoBuf, " ");
379 strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
380 strcat(g_TagInfoBuf, " ");
\ 04F4 ?0084:
381 }
382 }
383 else
\ 04F4 1804 JR ?0088
\ 04F6 ?0082:
384 {
385 g_TagInfoBuf[0] = 0x0;
\ 04F6 AF XOR A
\ 04F7 320000 LD (g_TagInfoBuf),A
\ 04FA ?0088:
386 }
387 break;
\ 04FA 1852 JR ?0079
\ 04FC ?0089:
\ 04FC FE01 CP 1
\ 04FE 201F JR NZ,?0093
388
389 case Music_MP3:
390 if (mp3GetID3Info(g_music_vars.location.filename, & ID3, g_comval.langid))
\ 0500 ED4B0C00 LD BC,(g_comval+12)
\ 0504 0600 LD B,0
\ 0506 C5 PUSH BC
\ 0507 210600 LD HL,6
\ 050A 39 ADD HL,SP
\ 050B 4D LD C,L
\ 050C 44 LD B,H
\ 050D 112100 LD DE,g_music_vars+33
\ 0510 3E00 LD A,BYTE3 mp3GetID3Info
\ 0512 210000 LD HL,LWRD mp3GetID3Info
\ 0515 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0518 F1 POP AF
\ 0519 2C INC L
\ 051A 2D DEC L
\ 051B 282D JR Z,?0097
\ 051D ?0090:
391 {
392 strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
\ 051D 1826 JR ?0140
393 strcat(g_TagInfoBuf, " ");
394 strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
395 strcat(g_TagInfoBuf, " ");
396 strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
397 strcat(g_TagInfoBuf, " ");
398 }
399 else
\ 051F ?0091:
400 {
401 g_TagInfoBuf[0] = 0x0;
\ 051F ?0092:
402 }
403 break;
\ 051F ?0093:
\ 051F FE06 CP 6
\ 0521 2027 JR NZ,?0097
404 case Music_APE:
405 memset(g_TagInfoBuf,0,90);
\ 0523 015A00 LD BC,90
\ 0526 110000 LD DE,g_TagInfoBuf
\ 0529 68 LD L,B
\ 052A 60 LD H,B
\ 052B CD0000 CALL LWRD ?MEMSET_L11
406 if (GetAPEInfoByNo(g_music_vars.location.filename, &ID3, 0))
\ 052E 4C LD C,H
\ 052F C5 PUSH BC
\ 0530 2E06 LD L,6
\ 0532 39 ADD HL,SP
\ 0533 4D LD C,L
\ 0534 44 LD B,H
\ 0535 112100 LD DE,g_music_vars+33
\ 0538 3E00 LD A,BYTE3 GetAPEInfoByNo
\ 053A 210000 LD HL,LWRD GetAPEInfoByNo
\ 053D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0540 F1 POP AF
\ 0541 2C INC L
\ 0542 2D DEC L
\ 0543 2805 JR Z,?0097
\ 0545 ?0094:
407 {
408 strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
\ 0545 ?0140:
\ 0545 CDFF05 CALL LWRD ?0147
409 strcat(g_TagInfoBuf, " ");
410 strcat(g_TagInfoBuf, & g_TagInfoBuf[30]);
411 strcat(g_TagInfoBuf, " ");
412 strcat(g_TagInfoBuf, & g_TagInfoBuf[60]);
413 strcat(g_TagInfoBuf, " ");
414 }
415 else
\ 0548 1804 JR ?0079
\ 054A ?0095:
416 {
417 g_TagInfoBuf[0] = 0x0;
\ 054A ?0096:
418 }
419 break;
\ 054A ?0097:
420 default:
421 g_TagInfoBuf[0] = 0x0;
\ 054A AF XOR A
\ 054B 320000 LD (g_TagInfoBuf),A
422 break;
\ 054E ?0079:
423 }
424
425
426
427
428 // 显示信息区
429 //g_music_vars.location.filename[12] = 0;
430
431 //---处理没有TAG信息的情况
432 if (g_TagInfoBuf[0] == 0)
\ 054E 3A0000 LD A,(g_TagInfoBuf)
\ 0551 B7 OR A
\ 0552 202F JR NZ,?0102
\ 0554 ?0098:
433 {
434 memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
\ 0554 010C00 LD BC,12
\ 0557 110000 LD DE,g_TagInfoBuf
\ 055A 212100 LD HL,g_music_vars+33
\ 055D EDB0 LDIR
435 {
436
437 result = FS_GetName(g_TagInfoBuf, 31); //取出长名
\ 055F 0E1F LD C,31
\ 0561 110000 LD DE,g_TagInfoBuf
\ 0564 CD0000 CALL LWRD FS_GetName
\ 0567 0600 LD B,0
438 if (result != 0)
\ 0569 B7 OR A
\ 056A 280D JR Z,?0101
\ 056C ?0100:
439 {
440 unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_comval.langid);
\ 056C 210C00 LD HL,g_comval+12
\ 056F 4E LD C,(HL)
\ 0570 C5 PUSH BC
\ 0571 0E5A LD C,90
\ 0573 CDC001 CALL LWRD ?0149
\ 0576 F1 POP AF
441 }
442 else
\ 0577 180A JR ?0102
\ 0579 ?0101:
443 {
444 memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
\ 0579 0E0C LD C,12
\ 057B 110000 LD DE,g_TagInfoBuf
\ 057E 212100 LD HL,g_music_vars+33
\ 0581 EDB0 LDIR
\ 0583 ?0102:
\ 0583 ?0099:
445 }
446 }
447 }
448
449 //---在TAG信息后加个空格避免滚屏时串在一起
450 for (result = 0; result<sizeof(g_TagInfoBuf); result++)
\ 0583 AF XOR A
\ 0584 DD77F0 LD (IX-16),A
\ 0587 DD77F1 LD (IX-15),A
\ 058A ?0104:
\ 058A 015A80 LD BC,32858
\ 058D DD6EF0 LD L,(IX-16)
\ 0590 DD66F1 LD H,(IX-15)
\ 0593 78 LD A,B
\ 0594 AC XOR H
\ 0595 67 LD H,A
\ 0596 ED42 SBC HL,BC
\ 0598 3025 JR NC,?0103
\ 059A ?0105:
451 {
452 if (g_TagInfoBuf[result] == 0)
\ 059A 210000 LD HL,g_TagInfoBuf
\ 059D DD4EF0 LD C,(IX-16)
\ 05A0 DD46F1 LD B,(IX-15)
\ 05A3 09 ADD HL,BC
\ 05A4 7E LD A,(HL)
\ 05A5 B7 OR A
\ 05A6 200D JR NZ,?0108
\ 05A8 ?0107:
453 {
454 g_TagInfoBuf[result] = ' ';
\ 05A8 210000 LD HL,g_TagInfoBuf
\ 05AB 09 ADD HL,BC
\ 05AC 3620 LD (HL),32
455 g_TagInfoBuf[result + 1] = 0;
\ 05AE 210100 LD HL,g_TagInfoBuf+1
\ 05B1 09 ADD HL,BC
\ 05B2 77 LD (HL),A
456 break;
\ 05B3 180A JR ?0103
\ 05B5 ?0108:
\ 05B5 DD34F0 INC (IX-16)
\ 05B8 20D0 JR NZ,?0104
\ 05BA DD34F1 INC (IX-15)
\ 05BD 18CB JR ?0104
\ 05BF ?0103:
457 }
458 }
459
460 //清 WATCH_DOG
461 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 05BF DB4E IN A,(78)
\ 05C1 CBDF SET 3,A
\ 05C3 D34E OUT (78),A
462
463 #ifdef OPT_Sup_LRC_fun//支持歌词显示功能
464
465 BankSwitch((unsigned long)lyricQueryExist >> 16);
\ 05C5 0E00 LD C,BYTE3 lyricQueryExist
\ 05C7 59 LD E,C
\ 05C8 CD0000 CALL LWRD BankSwitch
466 g_lyricflag = lyricQueryExist(g_music_vars.location.filename);
\ 05CB 112100 LD DE,g_music_vars+33
\ 05CE 79 LD A,C
\ 05CF 210000 LD HL,LWRD lyricQueryExist
\ 05D2 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05D5 7D LD A,L
\ 05D6 320000 LD (g_lyricflag),A
467
468 if (g_lyricflag)
\ 05D9 B7 OR A
\ 05DA 2811 JR Z,?0110
\ 05DC ?0109:
469 {
470 g_lyric_mod = lyricLoad(g_music_vars.location.filename, g_TagInfoBuf);
\ 05DC 010000 LD BC,g_TagInfoBuf
\ 05DF 112100 LD DE,g_music_vars+33
\ 05E2 3E00 LD A,BYTE3 lyricLoad
\ 05E4 210000 LD HL,LWRD lyricLoad
\ 05E7 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 05EA DD75F2 LD (IX-14),L
\ 05ED ?0110:
471 }
472 if (g_lyric_mod == 0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?