📄 sub_function2.s01
字号:
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
?0090:
; 420. {
; 421. g_TagInfoBuf[0] = 0x0;
?0091:
; 422. }
; 423. break;
?0092:
CP 6
JR NZ,?0096
; 424. case Music_APE:
; 425. memset(g_TagInfoBuf,0,90);
LD BC,90
LD DE,g_TagInfoBuf
LD L,B
LD H,B
CALL LWRD ?MEMSET_L11
; 426. if (GetAPEInfoByNo(g_music_vars.location.filename, &ID3, 0))
LD C,H
PUSH BC
LD L,6
ADD HL,SP
LD C,L
LD B,H
LD DE,g_music_vars+33
LD A,BYTE3 GetAPEInfoByNo
LD HL,LWRD GetAPEInfoByNo
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
INC L
DEC L
JR Z,?0096
?0093:
; 427. {
; 428. strcpy(g_TagInfoBuf, & g_TagInfoBuf[0]);
?0146:
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]);
LD DE,g_TagInfoBuf+60
LD HL,g_TagInfoBuf
CALL LWRD ?STRCAT_L11
; 433. strcat(g_TagInfoBuf, " ");
LD DE,?0086
LD HL,g_TagInfoBuf
CALL LWRD ?STRCAT_L11
; 434. }
; 435. else
JR ?0078
?0094:
; 436. {
; 437. g_TagInfoBuf[0] = 0x0;
?0095:
; 438. }
; 439. break;
?0096:
; 440. default:
; 441. g_TagInfoBuf[0] = 0x0;
XOR A
LD (g_TagInfoBuf),A
; 442. break;
?0078:
; 443. }
; 444.
; 445.
; 446.
; 447.
; 448. // 显示信息区
; 449. //g_music_vars.location.filename[12] = 0;
; 450.
; 451. //---处理没有TAG信息的情况
; 452. if (g_TagInfoBuf[0] == 0)
LD A,(g_TagInfoBuf)
OR A
JR NZ,?0101
?0097:
; 453. {
; 454. memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
LD BC,12
LD DE,g_TagInfoBuf
LD HL,g_music_vars+33
LDIR
; 455. {
; 456.
; 457. result = FS_GetName(g_TagInfoBuf, 31); //取出长名
LD C,31
LD DE,g_TagInfoBuf
CALL LWRD FS_GetName
LD B,0
; 458. if (result != 0)
OR A
JR Z,?0100
?0099:
; 459. {
; 460. unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
LD C,90
CALL LWRD ?0156
POP AF
; 461. }
; 462. else
JR ?0101
?0100:
; 463. {
; 464. memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
LD C,12
LD DE,g_TagInfoBuf
LD HL,g_music_vars+33
LDIR
?0101:
?0098:
; 465. }
; 466. }
; 467. }
; 468.
; 469. //---在TAG信息后加个空格避免滚屏时串在一起
; 470. for (result = 0; result<sizeof(g_TagInfoBuf); result++)
XOR A
LD (IX-16),A
LD (IX-15),A
?0103:
LD BC,32858
LD L,(IX-16)
LD H,(IX-15)
LD A,B
XOR H
LD H,A
SBC HL,BC
JR NC,?0102
?0104:
; 471. {
; 472. if (g_TagInfoBuf[result] == 0)
LD HL,g_TagInfoBuf
LD C,(IX-16)
LD B,(IX-15)
ADD HL,BC
LD A,(HL)
OR A
JR NZ,?0107
?0106:
; 473. {
; 474. g_TagInfoBuf[result] = ' ';
LD HL,g_TagInfoBuf
ADD HL,BC
LD (HL),32
; 475. g_TagInfoBuf[result + 1] = 0;
LD HL,g_TagInfoBuf+1
ADD HL,BC
LD (HL),A
; 476. break;
JR ?0102
?0107:
INC (IX-16)
JR NZ,?0103
INC (IX-15)
JR ?0103
?0102:
; 477. }
; 478. }
; 479.
; 480. //清 WATCH_DOG
; 481. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 482.
; 483. #ifdef OPT_Sup_LRC_fun//支持歌词显示功能
; 484.
; 485. BankSwitch((unsigned long)lyricQueryExist >> 16);
LD C,BYTE3 lyricQueryExist
LD E,C
CALL LWRD BankSwitch
; 486. g_lyricflag = lyricQueryExist(g_music_vars.location.filename);
LD DE,g_music_vars+33
LD A,C
LD HL,LWRD lyricQueryExist
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,L
LD (g_lyricflag),A
; 487.
; 488. if (g_lyricflag)
OR A
JR Z,?0109
?0108:
; 489. {
; 490. g_lyric_mod = lyricLoad(g_music_vars.location.filename, g_TagInfoBuf);
LD BC,g_TagInfoBuf
LD DE,g_music_vars+33
LD A,BYTE3 lyricLoad
LD HL,LWRD lyricLoad
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (IX-14),L
?0109:
; 491. }
; 492. if (g_lyric_mod == 0)
XOR A
OR (IX-14)
JR NZ,?0111
?0110:
; 493. {
; 494. g_lyricflag = FALSE;
LD (g_lyricflag),A
?0111:
; 495. }
; 496.
; 497. #endif //OPT_Sup_LRC_fun
; 498.
; 499. //清 WATCH_DOG
; 500. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 501. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0154:
LD DE,g_TagInfoBuf
LD L,E
LD H,D
CALL LWRD ?STRCPY_L11
LD DE,?0086
LD HL,g_TagInfoBuf
CALL LWRD ?STRCAT_L11
LD DE,g_TagInfoBuf+30
LD HL,g_TagInfoBuf
CALL LWRD ?STRCAT_L11
LD DE,?0086
LD HL,g_TagInfoBuf
CALL LWRD ?STRCAT_L11
RET
openPA:
; 502.
; 503. /*
; 504. int GetInformation1( void )//取下一首文件信息
; 505. {
; 506. int result;
; 507. memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
; 508. result = FS_GetName(g_TagInfoBuf, 31); //取出长名
; 509. if (result != 0)
; 510. {
; 511. unitochar(g_TagInfoBuf, sizeof(g_TagInfoBuf), g_comval.langid);
; 512. }
; 513. else
; 514. {
; 515. memcpy(g_TagInfoBuf, g_music_vars.location.filename, 12);
; 516. }
; 517.
; 518. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
; 519. }
; 520. */
; 521. //==================================================================
; 522. void openPA(uchar volume)
; 523. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -4
; 524. int i;
; 525. pa_t paattr;
; 526. if (!g_PAOpenFlag)
LD A,(g_PAOpenFlag)
OR A
JR NZ,?0114
?0112:
; 527. {
; 528. g_PAOpenFlag = TRUE;//标志PA已打开
LD A,1
LD (g_PAOpenFlag),A
; 529. paattr.pa_in.dacin = 1;
SET 0,(IX-4)
; 530. paattr.pa_in.fmin = 0;
RES 1,(IX-4)
; 531. paattr.pa_in.linein = 0;
RES 2,(IX-4)
; 532. paattr.pa_in.micin = 0;
RES 3,(IX-4)
; 533. paattr.volume = volume;
LD B,(IX+2)
LD (IX-3),B
; 534. EnablePA(& paattr);
LD HL,0
ADD HL,SP
EX DE,HL
CALL LWRD EnablePA
; 535. for (i = 0; i < 2000; i++)
LD DE,0
?0115:
LD BC,34768
LD L,E
LD H,D
LD A,128
XOR H
LD H,A
SBC HL,BC
JR NC,?0114
?0116:
; 536. {
; 537. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
INC DE
; 538. }
; 539. }
JR ?0115
?0114:
?0113:
; 540.
; 541. musicpSendCommand(MC_SETVOLUME, volume);
LD C,(IX+2)
LD B,0
LD E,64
CALL LWRD ?0158
; 542. OutPutVolume(volume);
LD E,(IX+2)
LD D,0
LD A,BYTE3 OutPutVolume
LD HL,LWRD OutPutVolume
CALL LWRD ?BANK_CALL_DIRECT_L08
; 543. //volume_callback(volume);
; 544. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0158:
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
JP LWRD ?BANK_CALL_DIRECT_L08
ClosePA:
; 545.
; 546. //===================================================
; 547. void ClosePA(void)
; 548. {
; 549. if (g_PAOpenFlag)
LD A,(g_PAOpenFlag)
OR A
JR Z,?0119
?0118:
; 550. {
; 551. g_PAOpenFlag = FALSE;//标志PA已关闭
XOR A
LD (g_PAOpenFlag),A
; 552. DisablePA();
CALL LWRD DisablePA
?0119:
; 553. }
; 554. }
JP LWRD ?BANK_FAST_LEAVE_L08
DealForDRMsong:
; 555. //===================================================
; 556.
; 557. //===================================================
; 558. /*
; 559. input: void
; 560.
; 561. output: g_result == NULL: 退出到STOP
; 562. g_result == 其他,按热键处理
; 563.
; 564. */
; 565. //===================================================
; 566.
; 567. int DealForDRMsong(void)
; 568. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65530
; 569.
; 570. dialog_t dialog;
; 571.
; 572. //进入显示是否进行授权申请对话框
; 573. dialog.HeadIcon = VOLPTR;//显示问号图标// for temp
LD (IX-6),12
LD (IX-5),1
; 574. dialog.HeadStr = REQLICEN;//显示“申请授权?”
LD (IX-4),176
LD (IX-3),1
; 575. dialog.string = g_TagInfoBuf;//显示要求显示的信息
LD (IX-2),LOW(g_TagInfoBuf)
LD (IX-1),HIGH(g_TagInfoBuf)
; 576. g_result = ui_dialog(&dialog, g_comval.langid);
LD BC,(g_comval+12)
LD B,0
LD L,B
LD H,B
ADD HL,SP
EX DE,HL
LD A,BYTE3 ui_dialog
LD HL,LWRD ui_dialog
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 577.
; 578. if (g_result == NULL)
LD A,L
OR H
JR NZ,?0121
?0120:
; 579. {
; 580. //进入申请授权应用进行申请 (USBPMD)
; 581. //return RESULT_USBPMD;
; 582. g_result = RESULT_IGNORE;//现暂时关闭
LD HL,52
LD (g_result),HL
?0121:
; 583. }
; 584.
; 585. if (g_result == RESULT_IGNORE)
LD A,52
XOR L
OR H
JR NZ,?0123
?0122:
; 586. {
; 587. //显示无播放授权
; 588. DisplayErrMsg(NOLICENS);//显示没有播放授权
LD DE,433
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
; 589. musicpSendCommand(MC_CLOSE, NULL);
LD BC,0
LD E,2
CALL LWRD ?0158
; 590. SetFullInterface();
XOR A
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 591. return NULL;
LD HL,0
; 592. }
?0123:
; 593.
; 594. if (g_result != NULL)
?0124:
; 595. {
; 596. //热键处理
; 597. return g_result;
; 598. }
?0125:
; 599. }
?0126:
JP LWRD ?BANK_LEAVE_DIRECT_L08
DisplayTimeRollback:
; 600.
; 601. /*
; 602. //==============================================
; 603. 功能:检测SYS时钟是否被回调
; 604. 接口:bool DisplayTimeRollback(void)
; 605. 输入:void
; 606. 输出:true: 正常播放
; 607. false: 显示完时钟已被回调,要进行设置退出
; 608. //==============================================
; 609. */
; 610. bool DisplayTimeRollback(void)
; 611. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -26
; 612. wma_inf_t licensinfbuf;
; 613. unsigned long curdatesec;
; 614. date_t curdate;
; 615. time_t curtime;
; 616.
; 617. //判断是否DRM歌曲
; 618. //取lincens 信息
; 619. if (!musicpSendCommand(MC_GETINF, (int)&licensinfbuf))
LD HL,0
ADD HL,SP
LD C,L
LD B,H
LD E,16
CALL LWRD ?0158
INC L
DEC L
JR Z,?0150
?0127:
; 620. {
; 621. return TRUE;//不用显示重设信息
; 622. }
?0128:
; 623.
; 624. if (licensinfbuf.drmmode == INF_NORMALWMA)
XOR A
OR (IX-26)
JR NZ,?0130
?0129:
; 625. {
; 626. //普通WMA也不用显示重设信息
; 627. return TRUE;
?0150:
LD L,1
; 628. }
JR ?0134
?0130:
; 629.
; 630. // SetAsciiFont(FONT_TYPE_SMALL);
; 631. SetBackgdColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetBackgdColor
; 632. ClearScreen(NULL);//清屏
LD DE,0
CALL LWRD ClearScreen
; 633. SetPenColor(Color_WHITE_def);
LD BC,0
LD DE,65535
CALL LWRD SetPenColor
; 634. ResShowMultiString(REQSETDT, g_comval.langid, 25, 56);//显示磁盘无文件
LD C,56
PUSH BC
LD C,25
PUSH BC
LD BC,(g_comval+12)
LD DE,438
LD A,BYTE3 ResShowMultiString
LD HL,LWRD ResShowMultiString
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
?0132:
; 635. while( ap_get_message() != NULL );//清空消息池,确保DELAY时间准确
CALL LWRD ap_get_message
OR A
JR NZ,?0132
?0133:
?0131:
; 636. ap_sleep(4);
LD DE,4
LD A,BYTE3 ap_sleep
LD HL,LWRD ap_sleep
CALL LWRD ?BANK_CALL_DIRECT_L08
; 637.
; 638. return FALSE;
LD L,0
; 639. }
?0134:
JP LWRD ?BANK_LEAVE_DIRECT_L08
; 640.
RSEG CSTR
?0052:
DEFB 'ROOT'
DEFB 0
?0054:
DEFB 92,0
?0062:
DEFB ':'
DEFB 0
?0086:
DEFB ' '
DEFB 0
RSEG CONST
?0018:
DEFB 'MP3'
DEFB 0
DEFB 'WMA'
DEFB 0
DEFB 'ASF'
DEFB 0
DEFB 'WMV'
DEFB 0
DEFB 'OGG'
DEFB 0
DEFB 'APE'
DEFB 0
RSEG IDATA0
temp_buffer:
DEFS 6
RSEG CDATA0
DEFB 0
DEFB 0,0,0,0,0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -