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

📄 ui_play.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	CP	2
	JR	C,?0073
	CP	5
	JR	NC,?0073
?0070:
; 196.	                   {
; 197.	                   case PlaySta:
; 198.	                   case FFPlaySta:
; 199.	                   case FBPlaySta:
; 200.	                       g_result = DealMusicFileEnd(0);
	LD	E,B
	LD	A,BYTE3 DealMusicFileEnd
	LD	HL,LWRD DealMusicFileEnd
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 201.	                        if ( g_result != NULL )
	LD	A,L
	OR	H
	JR	Z,?0078
?0071:
; 202.	                        {
; 203.	                            return g_result;
	JR	?0116
; 204.	                        }
?0072:
; 205.	                        need_draw = TRUE;
; 206.	                        break;
?0073:
	CP	5
	JR	NZ,?0076
; 207.	                    case NextPlaySta:
; 208.	                        g_result = ToNextMusic(Play_key);
	LD	E,2
	LD	A,BYTE3 ToNextMusic
	LD	HL,LWRD ToNextMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 209.	                        if ( g_result != NULL )
	LD	A,L
	OR	H
	JR	Z,?0078
?0074:
; 210.	                        {
; 211.	                            return g_result;
	JR	?0116
; 212.	                        }
?0075:
; 213.	                        need_draw = TRUE;
; 214.	                        break;
?0076:
	CP	6
	JR	NZ,?0079
; 215.	                    case PrevPlaySta:
; 216.	                        g_result = PrevMusicInPlay();
	LD	A,BYTE3 PrevMusicInPlay
	LD	HL,LWRD PrevMusicInPlay
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	(g_result),HL
; 217.	                        if ( g_result != NULL )
	LD	A,L
	OR	H
	JR	NZ,?0116
?0077:
; 218.	                        {
; 219.	                            return g_result;
; 220.	                        }
?0078:
; 221.	                        need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 222.	                        break;
	JP	LWRD ?0003
?0079:
; 223.	
; 224.	                   default:
; 225.	                       AmvDecSetCMD(MC_CLOSE,(int )&g_amv_vars.amvfilebreakpoint);
	LD	BC,g_amv_vars+48
	LD	E,2
	CALL	LWRD ?0130
; 226.	                       return g_result;
?0116:
	LD	HL,(g_result)
; 227.	                   }
?0080:
	POP	AF
	POP	AF
	POP	AF
	POP	AF
	POP	IX
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0131:
	LD	BC,0
	LD	E,6
?0130:
	LD	A,BYTE3 AmvDecSetCMD
	LD	HL,LWRD AmvDecSetCMD
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0069:
?0068:
; 228.	
; 229.	               }
; 230.	
; 231.	
; 232.	        }/* while(1) */
; 233.	
; 234.	}
ShowNowTime:
; 235.	
; 236.	/*
; 237.	********************************************************************************
; 238.	*             void Show_Bitrate( void )
; 239.	*
; 240.	* Description : 显示比特率
; 241.	*
; 242.	* Arguments   : void
; 243.	*
; 244.	* Returns     : void
; 245.	*
; 246.	* Notes       :
; 247.	*
; 248.	********************************************************************************
; 249.	*/
; 250.	
; 251.	void ShowNowTime(bool para)
; 252.	{
	PUSH	BC
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	DE
	LD	HL,65526
	ADD	HL,SP
	LD	SP,HL
; 253.	    long int totaltime,nowtime;
; 254.	    int num,i;
; 255.	    
; 256.	    if(g_rSetPlayStatus)
	LD	A,(g_rSetPlayStatus)
	OR	A
	JR	Z,?0082
?0081:
; 257.	    {
; 258.	                para = FALSE;
; 259.	                g_rSetPlayStatus = FALSE;
	XOR	A
	LD	(g_rSetPlayStatus),A
	LD	(IX-2),A
?0082:
; 260.	    }
; 261.	    
; 262.	    nowtime = g_amv_vars.amvfilebreakpoint.TimeHou*3600+g_amv_vars.amvfilebreakpoint.TimeMin*60
; 263.	            + g_amv_vars.amvfilebreakpoint.TimeSec;
	LD	BC,(g_amv_vars+53)
	LD	B,A
	LD	DE,60
	CALL	LWRD ?S_MUL_L02
	PUSH	DE
	LD	BC,(g_amv_vars+54)
	LD	B,A
	LD	DE,3600
	CALL	LWRD ?S_MUL_L02
	EX	DE,HL
	POP	DE
	ADD	HL,DE
	LD	BC,(g_amv_vars+52)
	LD	B,A
	ADD	HL,BC
	LD	A,H
	RLCA
	SBC	A,A
	LD	C,A
	LD	B,C
	LD	(IX-10),L
	LD	(IX-9),H
	LD	(IX-8),C
	LD	(IX-7),B
; 264.	    totaltime = Totaltime.hour*3600+Totaltime.minute*60+Totaltime.second;
	LD	DE,(Totaltime+1)
	LD	D,0
	LD	BC,60
	CALL	LWRD ?S_MUL_L02
	PUSH	DE
	LD	BC,(Totaltime)
	LD	B,0
	LD	DE,3600
	CALL	LWRD ?S_MUL_L02
	EX	DE,HL
	POP	DE
	ADD	HL,DE
	LD	BC,(Totaltime+2)
	LD	B,0
	ADD	HL,BC
	LD	A,H
	RLCA
	SBC	A,A
	LD	C,A
	LD	B,C
; 265.	    num=(nowtime*161)/totaltime;
	PUSH	BC
	PUSH	HL
	LD	HL,0
	PUSH	HL
	LD	L,161
	PUSH	HL
	LD	C,(IX-8)
	LD	B,(IX-7)
	LD	L,(IX-10)
	LD	H,(IX-9)
	CALL	LWRD ?L_MUL_L03
	CALL	LWRD ?SL_DIV_L03
	LD	(IX-12),L
	LD	(IX-11),H
; 266.	    if(num>161)                  //防止串烧时出现当前时间大于总时间的bug
	LD	C,L
	LD	B,H
	LD	HL,161
	OR	L
	SBC	HL,BC
	JP	PO,?0126
	XOR	H
?0126:
	JP	P,?0084
?0083:
; 267.	     num=0;
	XOR	A
	LD	(IX-12),A
	LD	(IX-11),A
?0084:
; 268.	    itoa_2(g_amv_vars.amvfilebreakpoint.TimeHou, temp_buffer);
	LD	BC,temp_buffer
	LD	DE,(g_amv_vars+54)
	CALL	LWRD ?0132
; 269.	    strcat(temp_buffer,":");
; 270.	    itoa_2(g_amv_vars.amvfilebreakpoint.TimeMin,  & temp_buffer[3]);
	LD	DE,(g_amv_vars+53)
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 271.	    strcat(temp_buffer,":");
	LD	DE,?0085
	LD	HL,temp_buffer
	CALL	LWRD ?STRCAT_L11
; 272.	    itoa_2(g_amv_vars.amvfilebreakpoint.TimeSec, & temp_buffer[6]);
	LD	BC,temp_buffer+6
	LD	DE,(g_amv_vars+52)
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 273.	    ui_show_d(temp_buffer,0);
	LD	C,0
	LD	DE,temp_buffer
	LD	A,BYTE3 ui_show_d
	LD	HL,LWRD ui_show_d
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 274.	    if(!para)
	XOR	A
	OR	(IX-2)
	LD	A,(g_volcounter)
	JR	NZ,?0087
?0086:
; 275.	    {
; 276.	           if(g_volcounter==0)
	OR	A
	JR	NZ,?0090
?0088:
; 277.	           {
; 278.	                         main_ResShowPic(GUAGEBG1, 0, 106);     //刷新进度条背景
	LD	C,106
	PUSH	BC
	LD	C,A
	LD	DE,154
	CALL	LWRD ?0133
	POP	AF
; 279.	                         for(i=0;i<num;i++)
	LD	IY,0
?0091:
	LD	C,(IX-12)
	LD	B,(IX-11)
	PUSH	IY
	POP	HL
	OR	128
	SBC	HL,BC
	JP	PO,?0127
	XOR	H
?0127:
	JP	P,?0090
?0092:
; 280.	                              main_ResShowPic(GUAGE1,8+i,109);
	LD	C,109
	PUSH	BC
	PUSH	IY
	POP	HL
	LD	A,L
	ADD	A,8
	LD	C,A
	LD	DE,153
	CALL	LWRD ?0133
	POP	AF
; 281.	         }
	INC	IY
	JR	?0091
?0090:
?0089:
; 282.	           
; 283.	         itoa_2(Totaltime.hour, temp_buffer);
	LD	BC,temp_buffer
	LD	DE,(Totaltime)
	CALL	LWRD ?0132
; 284.	                 strcat(temp_buffer,":");
; 285.	                 itoa_2(Totaltime.minute, & temp_buffer[3]);
	LD	DE,(Totaltime+1)
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 286.	                 strcat(temp_buffer,":");
	LD	DE,?0085
	LD	HL,temp_buffer
	CALL	LWRD ?STRCAT_L11
; 287.	                 itoa_2(Totaltime.second, & temp_buffer[6]);
	LD	BC,temp_buffer+6
	LD	DE,(Totaltime+2)
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 288.	                 ui_show_d(temp_buffer,1);
	LD	C,1
	LD	DE,temp_buffer
	LD	A,BYTE3 ui_show_d
	LD	HL,LWRD ui_show_d
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 289.	    }
; 290.	    else
	JR	?0096
?0087:
; 291.	    {
; 292.	           if(g_volcounter==0)
	OR	A
	JR	NZ,?0096
?0095:
; 293.	           {
; 294.	                                                main_ResShowPic(GUAGE1,8+num,109);  //防止出现断点
	LD	C,109
	PUSH	BC
	LD	A,(IX-12)
	ADD	A,8
	LD	C,A
	LD	DE,153
	CALL	LWRD ?0133
	POP	AF
?0096:
?0094:
; 295.	                                 }
; 296.	    }
; 297.	}
	LD	SP,IX
	POP	IX
	POP	IY
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0132:
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	DE,?0085
	LD	HL,temp_buffer
	CALL	LWRD ?STRCAT_L11
	LD	BC,temp_buffer+3
	RET
?0134:
	LD	E,(HL)
	LD	D,0
	LD	HL,165
	ADD	HL,DE
	EX	DE,HL
?0133:
	LD	A,BYTE3 main_ResShowPic
	LD	HL,LWRD main_ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
Show_Bitrate:
; 298.	
; 299.	//----------------
; 300.	
; 301.	//-----------------------------------
; 302.	
; 303.	void Show_Bitrate( void )
; 304.	{
	PUSH	BC
	PUSH	DE
	PUSH	AF
	PUSH	AF
	PUSH	AF
; 305.	    audio_format_t pFormat;
; 306.	
; 307.	    pFormat.bit_rate[0] = 0;
	LD	HL,3
	ADD	HL,SP
	LD	(HL),0
; 308.	    pFormat.bit_rate[1] = 8;
	INC	HL
	LD	(HL),8
; 309.	    pFormat.bit_rate[2] = 8;
	INC	HL
	LD	(HL),8
; 310.	
; 311.	    main_ResShowPic(MBIT0+pFormat.bit_rate[0],POS_BITRATE,POSY_BITRATE);
	LD	C,4
	PUSH	BC
	LD	C,9
	DEC	HL
	DEC	HL
	CALL	LWRD ?0134
	POP	AF
; 312.	    main_ResShowPic(MBIT0+pFormat.bit_rate[1],POS_BITRATE+6,POSY_BITRATE);
	LD	C,4
	PUSH	BC
	LD	C,15
	LD	HL,6
	ADD	HL,SP
	CALL	LWRD ?0134
	POP	AF
; 313.	    main_ResShowPic(MBIT0+pFormat.bit_rate[2],POS_BITRATE+12,POSY_BITRATE);
	LD	C,4
	PUSH	BC
	LD	C,21
	LD	HL,7
	ADD	HL,SP
	CALL	LWRD ?0134
	POP	AF
; 314.	}
	POP	HL
	POP	HL
	POP	HL
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
InitLcmDeviceInfor:
; 315.	
; 316.	
; 317.	int InitLcmDeviceInfor(ColorLcmInfor *infor)
; 318.	{
	PUSH	IX
	PUSH	DE
	POP	IX
; 319.	    infor->LcmWidth=CSTNPixelWidth;  //set width;
	EX	DE,HL
	LD	(HL),176
; 320.	    infor->LcmHeigh=CSTNPixelHeight; //set height
	LD	(IX+1),132
; 321.	    infor->RScale=5;   //set color number
	LD	(IX+2),5
; 322.	    infor->GScale=6;
	LD	(IX+3),6
; 323.	    infor->BScale=5;
	LD	(IX+4),5
; 324.	    infor->RGBOrder=0; // set the order
	LD	(IX+5),0
; 325.	    return 0;
	LD	HL,0
; 326.	}
	POP	IX
	JP	LWRD ?BANK_FAST_LEAVE_L08
ToNextMusic:
; 327.	
; 328.	
; 329.	
; 330.	int ToNextMusic( Music_sel_mod_t mod )
; 331.	{
	PUSH	BC
	PUSH	DE
; 332.	        output8(0x4e,input8(0x4e)|0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 333.	        g_result = ChangeMusic(Music_Next, mod);
	LD	C,E
	LD	E,3
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	H,0
	LD	(g_result),HL
; 334.	        if(!g_result)
	LD	A,L
	OR	A
	JR	NZ,?0098
?0097:
; 335.	        {
; 336.	            return RESULT_UI_STOP;//回到停止界面
	LD	L,102
; 337.	        }
	JR	?0099
?0098:
; 338.	        GetInformation(); //取文件信息
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 339.	        return NULL;
	LD	HL,0
; 340.	}
?0099:
	POP	AF
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
PrevMusicInPlay:
; 341.	
; 342.	
; 343.	int PrevMusicInPlay(void)
; 344.	{
	PUSH	BC
	PUSH	DE
; 345.	
; 346.	    g_result = ChangeMusic(Music_Prev, Play_key);
	LD	C,2
	LD	E,4
	LD	A,BYTE3 ChangeMusic
	LD	HL,LWRD ChangeMusic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	LD	H,0
	LD	(g_result),HL
; 347.	    if(!g_result)
	LD	A,L
	OR	A
	JR	NZ,?0101
?0100:
; 348.	    {
; 349.	        return RESULT_UI_STOP;//回到停止界面
	LD	L,102
; 350.	    }
	JR	?0102
?0101:
; 351.	    GetInformation(); //取文件信息
	LD	A,BYTE3 GetInformation
	LD	HL,LWRD GetInformation
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 352.	    return NULL;
	LD	HL,0
; 353.	}
?0102:
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
SetAmvWin:
; 354.	
; 355.	////////////////////////// Amv设窗
; 356.	void SetAmvWin(void)
; 357.	{
	PUSH	DE
; 358.	                SetWindow(&AmvRegion);
	LD	DE,AmvRegion
	CALL	LWRD SetWindow
; 359.	}
	POP	DE
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 360.	///////////////////////
; 361.	
	RSEG	CSTR
?0085:
	DEFB	':'
	DEFB	0
	RSEG	UDATA0
Dscinf:
	DEFS	6
	END

⌨️ 快捷键说明

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