⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sub_function1.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 3 页
字号:
	JR	?0092
?0103:
; 376.	
; 377.	    case MC_STOP:
; 378.	        PlayStatus = StopSta;
	XOR	A
	LD	(PlayStatus),A
; 379.	        CaltimeFlag = FALSE;//等待计时间
	JR	?0157
; 380.	        WaitForCaltimeCNT = 0;
; 381.	        break;
?0104:
; 382.	
; 383.	    case MC_CALTIME:
; 384.	        CaltimeFlag = TRUE;
	LD	A,1
?0157:
	LD	(CaltimeFlag),A
; 385.	        WaitForCaltimeCNT = 0;
	XOR	A
	LD	(WaitForCaltimeCNT),A
; 386.	
; 387.	        break;
?0105:
; 388.	
; 389.	    default:
; 390.	        break;
?0092:
; 391.	    }
; 392.	    return result;
	LD	L,(IX-2)
; 393.	}
?0106:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0163:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,(g_music_vars+3)
	LD	A,C
	RLCA
	SBC	A,A
	LD	B,A
	LD	E,70
	RET
?0164:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(IX-2),L
	LD	A,(IX+2)
	CP	3
	RET
?0165:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,(g_music_vars+2)
	LD	B,0
	LD	E,67
	RET
?0166:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,(g_music_vars+2)
	LD	B,A
	LD	A,8
	CP	B
	RET
?0167:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,(g_music_vars+2)
	LD	B,A
	LD	A,16
	CP	B
	RET
?0172:
	CALL	LWRD BankSwitch
	PUSH	IY
	POP	BC
	LD	E,(IX+2)
	RET
SelectCurMusic:
; 394.	
; 395.	//===================重选当前歌曲=========================
; 396.	void SelectCurMusic(void)
; 397.	{
	PUSH	BC
	PUSH	DE
; 398.	        musicpSendCommand(MC_STOP, NULL);
	LD	BC,0
	LD	E,6
	CALL	LWRD ?0168
; 399.	        musicpSendCommand(MC_CLOSE, NULL);
	LD	E,2
	CALL	LWRD ?0169
; 400.	        ChangeMusic(Music_Cur, Play_play); //播放当前歌曲
	LD	C,1
	LD	E,2
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 401.	    FSELSetMode( FSEL_ALL_REPEATALL );
	LD	E,4
	CALL	LWRD ?0173
; 402.	    FSELGetNext(g_music_vars.location.filename);
	CALL	LWRD ?0175
; 403.	    fselGetLocation(& g_music_vars.location);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 404.	    GetInformation();
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 405.	    memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
	LD	BC,20
	LD	DE,g_TagInfoBuf1
	LD	HL,g_TagInfoBuf
	LDIR
; 406.	    //g_TagInfoBuf1[19]=0;
; 407.	    FSELGetPrev(g_music_vars.location.filename);
	LD	DE,g_music_vars+33
	LD	A,BYTE3 fselGetPrevFile
	LD	HL,LWRD fselGetPrevFile
	CALL	LWRD ?0176
; 408.	    fselGetLocation(& g_music_vars.location);
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 409.	    FSELSetMode(g_music_vars.repeat_mode);
	CALL	LWRD ?0174
; 410.	    GetInformation(); //取文件信息
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 411.	        musicpSendCommand( MC_OPEN,  (int)& g_Openparam );
	LD	BC,g_Openparam
	LD	E,1
	CALL	LWRD ?0168
; 412.	        musicpSendCommand(MC_LOAD, NULL);
	LD	E,3
	CALL	LWRD ?0168
; 413.	        musicpSendCommand(MC_CALTIME, NULL);
	LD	E,19
	CALL	LWRD ?0168
; 414.	        musicpSendCommand(MC_PLAY, NULL);
	LD	E,4
	CALL	LWRD ?0169
; 415.	        //StartIntro(TRUE);
; 416.	}
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0168:
	LD	A,BYTE3 musicpSendCommand
	LD	HL,LWRD musicpSendCommand
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	BC,0
	RET
?0175:
	LD	DE,g_music_vars+33
	LD	A,BYTE3 fselGetNextFile
	LD	HL,LWRD fselGetNextFile
?0176:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	DE,g_music_vars+7
	LD	A,BYTE3 fselGetLocation
	LD	HL,LWRD fselGetLocation
	RET
ui_delete_Music:
; 417.	//========================================================
; 418.	
; 419.	
; 420.	
; 421.	int ui_delete_Music( int type )
; 422.	{
	CALL	LWRD ?ENT_PARM_DIRECT_L09
; 423.	    if ( g_music_vars.fselmod == FSEL_TYPE_PLAYLIST )
	LD	A,(g_music_vars+79)
	DEC	A
	JR	NZ,?0108
?0107:
; 424.	    {
; 425.	       fselPlayListExit();
	CALL	LWRD ?0179
; 426.	       FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0180
	POP	AF
	POP	AF
; 427.	       FSELGetNext(g_music_vars.location.filename);
	CALL	LWRD ?0175
; 428.	       fselGetLocation(&g_music_vars.location);
	CALL	LWRD ?0177
; 429.	       g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
?0108:
; 430.	    }
; 431.	    
; 432.	    g_music_vars.location.ID3buffer = g_TagInfoBuf;
	LD	HL,g_TagInfoBuf
	LD	(g_music_vars+45),HL
; 433.	
; 434.	
; 435.	    if (g_music_vars.location.disk == 'H')
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0110
?0109:
; 436.	    {
; 437.	        DRV_ActiveUD(1, MODE_SLOW); //04-2-28 16:29
	LD	C,1
	LD	E,C
	JR	?0158
?0110:
; 438.	    }
; 439.	    else if (g_music_vars.location.disk == 'C')
	CP	67
	JR	NZ,?0113
?0112:
; 440.	    {
; 441.	        DRV_ActiveUD(0, MODE_SLOW); //04-2-28 16:29
	LD	C,1
	LD	E,0
?0158:
	CALL	LWRD DRV_ActiveUD
?0113:
?0111:
; 442.	    }
; 443.	
; 444.	    if(type==DELETE_MUSIC)
	LD	A,1
	XOR	(IX+2)
	OR	(IX+3)
	JR	NZ,?0115
?0114:
; 445.	    {
; 446.	        FSELSetMode(FSEL_ALL_REPEATALL);
	LD	E,4
	CALL	LWRD ?0173
; 447.	        g_result=ui_delete_all(& g_music_vars.location, DELETE_MUSIC,g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,1
	LD	DE,g_music_vars+7
	LD	A,BYTE3 ui_delete_all
	LD	HL,LWRD ui_delete_all
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(g_result),HL
; 448.	        FSELSetMode(g_music_vars.repeat_mode);
	CALL	LWRD ?0174
; 449.	    }
; 450.	    else    
	JR	?0116
?0115:
; 451.	        g_result = ui_delete(& g_music_vars.location, type, g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,(IX+2)
	LD	DE,g_music_vars+7
	LD	A,BYTE3 ui_delete
	LD	HL,LWRD ui_delete
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	LD	(g_result),HL
?0116:
; 452.	
; 453.	    if (g_result == RESULT_SD_OUT)
	LD	HL,(g_result)
	LD	A,54
	XOR	L
	OR	H
	JR	NZ,?0118
?0117:
; 454.	    {
; 455.	        DisplayErrMsg(CARDPULL);//显示卡拔出
	LD	DE,401
	LD	A,BYTE3 DisplayErrMsg
	LD	HL,LWRD DisplayErrMsg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 456.	        g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 457.	        return RESULT_IGNORE;
	LD	HL,52
; 458.	    }
	JR	?0125
?0118:
; 459.	
; 460.	    if (g_result != 0)
	LD	A,L
	OR	H
	JR	NZ,?0125
?0119:
; 461.	    {
; 462.	        return g_result;
; 463.	    }
?0120:
; 464.	
; 465.	    if (!ChangeMusic(Music_Next, Stop_key))
	LD	C,A
	LD	E,3
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	INC	L
	DEC	L
	JR	NZ,?0124
?0121:
; 466.	    {
; 467.	        if (UpdateFileSelector() == 0)
	LD	A,BYTE3 UpdateFileSelector
	LD	HL,LWRD UpdateFileSelector
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	A,L
	OR	H
	JR	Z,?0159
?0123:
; 468.	         {
; 469.	             return 0;
; 470.	         }
?0124:
?0122:
; 471.	
; 472.	
; 473.	    }
; 474.	
; 475.	    fselGetLocation(& g_music_vars.location);
	CALL	LWRD ?0178
; 476.	
; 477.	    return 0; //RESULT_RESTART;
?0159:
	LD	HL,0
; 478.	}
?0125:
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0177:
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	XOR	A
	LD	(g_music_vars+79),A
	RET
?0179:
	LD	A,BYTE3 fselPlayListExit
	LD	HL,LWRD fselPlayListExit
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	HL,g_music_vars+7
	LD	C,(HL)
	RET
?0180:
	LD	E,C
	LD	A,BYTE3 fselInit
	LD	HL,LWRD fselInit
	JP	LWRD ?BANK_CALL_DIRECT_L08
NoCardCaseInStopMenu:
; 479.	
; 480.	int NoCardCaseInStopMenu(int active)
; 481.	{
	PUSH	BC
	PUSH	IX
	PUSH	DE
; 482.	    int result;
; 483.	    switch (active)
	CALL	LWRD ?S_S_SWITCH_L06
	DEFW	6
	DEFW	3
	DEFW	?0138
	DEFW	?0127
	DEFW	?0134
	DEFW	?0137
?0127:
; 484.	    {
; 485.	        case 6: //主目录
; 486.	            if (g_music_vars.location.disk == 'H')
	LD	A,(g_music_vars+7)
	CP	72
	JR	NZ,?0129
?0128:
; 487.	            {
; 488.	                g_music_vars.location.disk = 'C';
	LD	A,67
	LD	(g_music_vars+7),A
; 489.	                FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	LD	C,A
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0180
	POP	AF
	POP	AF
?0129:
; 490.	            }
; 491.	
; 492.	            if (g_music_vars.fselmod == FSEL_TYPE_PLAYLIST)
	LD	A,(g_music_vars+79)
	DEC	A
	JR	NZ,?0131
?0130:
; 493.	            {
; 494.	                fselPlayListExit();
	CALL	LWRD ?0179
; 495.	                FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0180
	POP	AF
	POP	AF
; 496.	                FSELGetNext(g_music_vars.location.filename);
	CALL	LWRD ?0175
; 497.	                fselGetLocation(&g_music_vars.location);
	CALL	LWRD ?0177
; 498.	                g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
?0131:
; 499.	            }
; 500.	
; 501.	            result = ui_directory(& g_music_vars.location, DIRECTORY_MUSIC, g_comval.langid);
	LD	HL,g_comval+12
	LD	C,(HL)
	PUSH	BC
	LD	C,0
	LD	DE,g_music_vars+7
	LD	A,BYTE3 ui_directory
	LD	HL,LWRD ui_directory
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	PUSH	HL
	POP	IX
; 502.	            FSELSetMode(FSEL_ALL_SEQUENCE);
	LD	E,0
	CALL	LWRD ?0173
; 503.	            if (result == 0)
	PUSH	IX
	POP	HL
	LD	A,L
	OR	H
	JR	NZ,?0126
?0132:
; 504.	            {
; 505.	                //当选中目录后用普通模式播放
; 506.	                g_music_vars.play_listmod = mlistnor;
	LD	A,5
	LD	(g_music_vars+78),A
?0133:
; 507.	                //musicpSendCommand(MC_CLOSE, NULL);
; 508.	            }
; 509.	            break;
	JR	?0126
?0134:
; 510.	
; 511.	        case 7: //删除文件
; 512.	            if (g_music_vars.fselmod == FSEL_TYPE_PLAYLIST)
	LD	A,(g_music_vars+79)
	DEC	A
	JR	NZ,?0136
?0135:
; 513.	            {
; 514.	                    fselPlayListExit();
	CALL	LWRD ?0179
; 515.	                    FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
	PUSH	BC
	LD	C,0
	PUSH	BC
	CALL	LWRD ?0180
	POP	AF
	POP	AF
; 516.	                    FSELGetNext(g_music_vars.location.filename);
	CALL	LWRD ?0175
; 517.	                    fselGetLocation(&g_music_vars.location);
	CALL	LWRD ?0177
; 518.	                    g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
?0136:
; 519.	            }
; 520.	                result = ui_delete_Music(DELETE_FILE);
	LD	DE,0
	LD	A,BYTE3 ui_delete_Music
	LD	HL,LWRD ui_delete_Music
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	IX
; 521.	            break;
	JR	?0126
?0137:
; 522.	
; 523.	        case 8: //删除全部
; 524.	            //result = ui_delete_Music(DELETE_MUSIC);
; 525.	            FSELSetMode(FSEL_ALL_REPEATALL);
	LD	E,4
	CALL	LWRD ?0173
; 526.	            result = ui_delete_Music(DELETE_MUSIC);
	LD	DE,1
	LD	A,BYTE3 ui_delete_Music
	LD	HL,LWRD ui_delete_Music
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	PUSH	HL
	POP	IX
; 527.	            FSELSetMode(g_music_vars.repeat_mode);
	CALL	LWRD ?0174
; 528.	            break;
	JR	?0126
?0138:
; 529.	
; 530.	        default://退出
; 531.	            //result = 0;
; 532.	            result = RESULT_IGNORE;
	LD	IX,52
; 533.	            break;
?0126:
; 534.	    }
; 535.	    return result;
	PUSH	IX
	POP	HL
; 536.	}
	POP	AF
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -