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

📄 sub_display.s01

📁 MP3 整个 SDK
💻 S01
字号:
	NAME	sub_display(17)
	RSEG	AP_SUB_DIS(0)
	RSEG	APC_SUB_DIS(0)
	PUBLIC	DisplayErrMsg
	EXTERN	GetBattery
	PUBLIC	LOOP_PIC
	EXTERN	PutS
	PUBLIC	RefreshMainScreen
	EXTERN	ResShowPic
	EXTERN	SetBackgdColor
	EXTERN	SetPAVolume
	EXTERN	SetPenColor
	EXTERN	SetTextOutMode
	EXTERN	SetTextPos
	EXTERN	ShowNowTime
	EXTERN	Show_Bitrate
	PUBLIC	Show_MusicType
	EXTERN	ap_get_message
	EXTERN	ap_sleep
	EXTERN	dir_name
	EXTERN	g_BatteryType
	EXTERN	g_TagInfoBuf
	EXTERN	g_TagInfoBuf1
	EXTERN	g_amv_vars
	EXTERN	g_langid
	EXTERN	g_musicamount
	EXTERN	g_musicsequence
	EXTERN	itoa_2
	EXTERN	itoa_3
	EXTERN	main_ResShowPic
	EXTERN	need_draw
	PUBLIC	num_id
	PUBLIC	show_volume
	EXTERN	slider
	PUBLIC	songnum_id
	EXTERN	temp_buffer
	EXTERN	ui_auto_update
	EXTERN	ui_show_a
	EXTERN	ui_show_batt
	PUBLIC	ui_show_h
	EXTERN	ui_show_msg
	PUBLIC	ui_show_vol
	EXTERN	ui_slider
	PUBLIC	vol_callback
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	AP_SUB_DIS
RefreshMainScreen:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        This program demostrates how to build an AP
; 5.	*
; 6.	*        (c) Copyright Actions Co,Ld.
; 7.	*
; 8.	*  $Id: sub_display.c,v 1.1.1.1 2006/05/22 03:24:02 selina Exp $
; 9.	*******************************************************************************
; 10.	*/
; 11.	#include "ap_amv.h"
; 12.	
; 13.	#pragma codeseg(AP_SUB_DIS)
; 14.	
; 15.	#pragma memory=constseg(APC_SUB_DIS)
; 16.	const WORD LOOP_PIC[7] =
; 17.	{
; 18.	    MLOOP1, MLOOP2, MLOOP3, MLOOP4, MLOOP5, MLOOP6, MLOOP7
; 19.	};
; 20.	const WORD num_id[10] = {TVNUM0,TVNUM1,TVNUM2,TVNUM3,TVNUM4,TVNUM5,TVNUM6,TVNUM7,TVNUM8,TVNUM9};    //系统时间&音量显示
; 21.	const WORD songnum_id[10]= {MNUM0,MNUM1,MNUM2,MNUM3,MNUM4,MNUM5,
; 22.	                            MNUM6,MNUM7,MNUM8,MNUM9};     //音乐曲目
; 23.	#pragma memory=default
; 24.	
; 25.	/*
; 26.	********************************************************************************
; 27.	*           void RefreshMainScreen( void )
; 28.	*
; 29.	* Description : 主显示的刷新函数,只有有需要时,才调用此函数
; 30.	*
; 31.	* Arguments   : void
; 32.	*
; 33.	* Returns     : void
; 34.	*
; 35.	* Notes       :
; 36.	*
; 37.	********************************************************************************
; 38.	*/
; 39.	void ui_show_vol(BYTE volume);
; 40.	void ui_show_h(const char *string);
; 41.	void RefreshMainScreen( void )
; 42.	{
	PUSH	BC
	PUSH	DE
; 43.	        int result;
; 44.	        output8(0x4e,input8(0x4e)|0x08);
	IN	A,(78)
	SET	3,A
	OUT	(78),A
; 45.	
; 46.	
; 47.	        ResShowPic(BACKMOV, POS_BG, POSY_BG);
	LD	C,0
	PUSH	BC
	LD	DE,17
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 48.	        SetTextPos(POS_DIRNAME, POSY_DIRNAME);  
	LD	C,140
	LD	E,35
	CALL	LWRD SetTextPos
; 49.	        //main_ResShowPic(DIRBCK,36,78);
; 50.	        main_ResShowPic(ADIRBCK,25,140); 
	LD	C,140
	PUSH	BC
	LD	C,25
	LD	DE,12
	CALL	LWRD ?0013
	POP	AF
; 51.	        SetTextOutMode(1);       //设字体透明
	LD	E,1
	CALL	LWRD SetTextOutMode
; 52.	        SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 53.	        if(g_amv_vars.location.disk=='H')
	LD	A,(g_amv_vars+5)
	CP	72
	JR	NZ,?0003
?0002:
; 54.	           main_ResShowPic(CARDDISK,194,140); 
	LD	C,140
	PUSH	BC
	LD	C,194
	LD	DE,30
	CALL	LWRD ?0013
	POP	AF
?0003:
; 55.	        PutS(dir_name, -1);
	LD	C,255
	LD	DE,dir_name
	CALL	LWRD PutS
; 56.	        SetTextOutMode(0);                                             
	LD	E,0
	CALL	LWRD SetTextOutMode
; 57.	 
; 58.	        ui_show_vol(g_amv_vars.volume);
	LD	DE,(g_amv_vars+2)
	LD	A,BYTE3 ui_show_vol
	LD	HL,LWRD ui_show_vol
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 59.	
; 60.	 
; 61.	        //SetBackgdColor(Color_MUSIC_def);
; 62.	
; 63.	        Show_MusicType();
	LD	A,BYTE3 Show_MusicType
	LD	HL,LWRD Show_MusicType
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 64.	        Show_Bitrate();
	LD	A,BYTE3 Show_Bitrate
	LD	HL,LWRD Show_Bitrate
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 65.	         
; 66.	        ResShowPic(LOOP_PIC[g_amv_vars.repeat_mode], POS_PALYMODE,POSY_PALYMODE);
	LD	C,0
	PUSH	BC
	LD	C,128
	LD	HL,(g_amv_vars+3)
	LD	H,0
	ADD	HL,HL
	LD	DE,LOOP_PIC
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 67.	
; 68.	       //show file sequence and total file
; 69.	        itoa_3(g_musicsequence, & temp_buffer[0]);
	LD	BC,temp_buffer
	LD	DE,(g_musicsequence)
	LD	D,0
	LD	A,BYTE3 itoa_3
	LD	HL,LWRD itoa_3
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 70.	 
; 71.	        itoa_3(g_musicamount, & temp_buffer[3]);
	LD	BC,temp_buffer+3
	LD	DE,(g_musicamount)
	LD	D,0
	LD	A,BYTE3 itoa_3
	LD	HL,LWRD itoa_3
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 72.	        ui_show_h(temp_buffer);
	LD	DE,temp_buffer
	LD	A,BYTE3 ui_show_h
	LD	HL,LWRD ui_show_h
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 73.	    
; 74.	    //show backtime and total time
; 75.	
; 76.	        ShowNowTime(FALSE);
	LD	E,0
	LD	A,BYTE3 ShowNowTime
	LD	HL,LWRD ShowNowTime
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 77.	 
; 78.	
; 79.	        ui_show_batt( GetBattery(), g_BatteryType,0);
	LD	C,0
	PUSH	BC
	LD	BC,(g_BatteryType)
	CALL	LWRD GetBattery
	LD	E,A
	LD	D,0
	LD	A,BYTE3 ui_show_batt
	LD	HL,LWRD ui_show_batt
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	HL
; 80.	        SetTextOutMode(1);       //设字体透明
	LD	E,1
	CALL	LWRD SetTextOutMode
; 81.	        SetPenColor(Color_WHITE_def);
	LD	BC,0
	LD	DE,65535
	CALL	LWRD SetPenColor
; 82.	        SetTextPos(scrollregionx_def, scrollregiony_def); 
	LD	C,110
	LD	E,45
	CALL	LWRD SetTextPos
; 83.	        PutS(g_TagInfoBuf,-1);
	LD	C,255
	LD	DE,g_TagInfoBuf
	CALL	LWRD PutS
; 84.	
; 85.	        SetBackgdColor(Color_BULE1_def);
	LD	BC,0
	LD	DE,30014
	CALL	LWRD SetBackgdColor
; 86.	        //ResShowPic(NEXTBCK,29,46);
; 87.	        ResShowPic(ANEXTBCK,35,79);
	LD	C,79
	PUSH	BC
	LD	C,35
	LD	DE,14
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 88.	        //SetPenColor(0x7ff);
; 89.	        SetPenColor(0xffe0);  //与屏的设置有关
	LD	BC,0
	LD	DE,65504
	CALL	LWRD SetPenColor
; 90.	        SetTextPos(POS_FILENAME, POSY_FILENAME);
	LD	C,79
	LD	E,45
	CALL	LWRD SetTextPos
; 91.	        PutS(g_TagInfoBuf1, -1);//显示下一首信息  
	LD	C,255
	LD	DE,g_TagInfoBuf1
	CALL	LWRD PutS
; 92.	       
; 93.	        return;
; 94.	}
	POP	DE
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0014:
	LD	L,A
	LD	H,0
	ADD	HL,HL
	LD	DE,songnum_id
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
?0013:
	LD	A,BYTE3 main_ResShowPic
	LD	HL,LWRD main_ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
Show_MusicType:
; 95.	
; 96.	//-----------显示音乐类型图标-----------
; 97.	void Show_MusicType(void)
; 98.	{
	PUSH	DE
; 99.	        ui_show_a(MAMV);
	LD	DE,79
	LD	A,BYTE3 ui_show_a
	LD	HL,LWRD ui_show_a
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 100.	
; 101.	}
	POP	DE
	JP	LWRD ?BANK_FAST_LEAVE_L08
DisplayErrMsg:
; 102.	
; 103.	
; 104.	//-----------显示错误信息---------------
; 105.	void DisplayErrMsg(int ErrMsg)
; 106.	{
	PUSH	BC
	PUSH	IX
; 107.	
; 108.	    ui_show_msg (ErrMsg, ErrMsg, g_langid);
	LD	BC,(g_langid)
	LD	B,0
	PUSH	BC
	LD	C,E
	LD	B,D
	LD	A,BYTE3 ui_show_msg
	LD	HL,LWRD ui_show_msg
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
?0005:
; 109.	    while( ap_get_message() != NULL ); //清空消息池
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0005
?0006:
?0004:
; 110.	    ap_sleep(4);
	LD	DE,4
	LD	A,BYTE3 ap_sleep
	LD	HL,LWRD ap_sleep
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 111.	    need_draw = TRUE;
	LD	A,1
	LD	(need_draw),A
; 112.	}
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_vol:
; 113.	void ui_show_vol(BYTE volume)
; 114.	{       char id;
	PUSH	BC
	PUSH	DE
	PUSH	AF
	PUSH	AF
; 115.	        char temp[3];
; 116.	        
; 117.	        itoa_2(volume, temp);
	LD	HL,0
	ADD	HL,SP
	LD	C,L
	LD	B,H
	LD	A,BYTE3 itoa_2
	LD	HL,LWRD itoa_2
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 118.	        id=temp[0]-0x30;
	LD	HL,0
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,208
; 119.	        main_ResShowPic(num_id[id],POS_VOl,POSY_VOl);
	LD	C,162
	PUSH	BC
	LD	C,24
	PUSH	BC
	LD	L,A
	LD	H,0
	ADD	HL,HL
	LD	BC,num_id
	ADD	HL,BC
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	A,BYTE3 main_ResShowPic
	LD	HL,LWRD main_ResShowPic
	POP	BC
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 120.	        id=temp[1]-0x30;
	LD	HL,1
	ADD	HL,SP
	LD	A,(HL)
	ADD	A,208
; 121.	        main_ResShowPic(num_id[id],POS_VOl+7,POSY_VOl);
	LD	C,162
	PUSH	BC
	LD	C,31
	PUSH	BC
	LD	L,A
	LD	H,0
	ADD	HL,HL
	LD	BC,num_id
	ADD	HL,BC
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	A,BYTE3 main_ResShowPic
	LD	HL,LWRD main_ResShowPic
	POP	BC
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
; 122.	
; 123.	}
	POP	HL
	POP	HL
	POP	HL
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
vol_callback:
; 124.	
; 125.	
; 126.	/*
; 127.	********************************************************************************
; 128.	* Description : 音量设置界面
; 129.	*
; 130.	* Arguments   : set_hardware, 是否需要设置硬件
; 131.	*
; 132.	* Returns     :
; 133.	*
; 134.	* Notes       : 播放时调节音量需要设置硬件
; 135.	        停止时调节音量不需要设置硬件
; 136.	*
; 137.	********************************************************************************
; 138.	*/
; 139.	void vol_callback(int value)
; 140.	{
	PUSH	BC
	PUSH	DE
; 141.	 
; 142.	
; 143.	    g_amv_vars.volume = (char)value;
	LD	A,E
	LD	(g_amv_vars+2),A
; 144.	
; 145.	    
; 146.	    SetPAVolume(g_amv_vars.volume);
	LD	DE,(g_amv_vars+2)
	CALL	LWRD SetPAVolume
; 147.	
; 148.	 }
	POP	HL
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
show_volume:
; 149.	
; 150.	int show_volume(BOOL set_hardware)
; 151.	{
	PUSH	BC
	PUSH	IX
	PUSH	DE
; 152.	      int result;
; 153.	      char id;
; 154.	      char temp[3];
; 155.	  
; 156.	    slider.value = g_amv_vars.volume;
	LD	BC,(g_amv_vars+2)
	LD	B,0
	LD	(slider+6),BC
; 157.	    slider.max = 31;
	LD	HL,31
	LD	(slider+4),HL
; 158.	    slider.min = 0;
	LD	L,B
	LD	(slider+2),HL
; 159.	    slider.step = 1;   
	INC	HL
	LD	(slider+8),HL
; 160.	    slider.string_id = g_langid;   
	LD	A,(g_langid)
	LD	(slider+10),A
; 161.	    slider.title=CHANGEVO; 
	LD	HL,489
	LD	(slider),HL
; 162.	    ui_auto_update=FALSE;
	XOR	A
	LD	(ui_auto_update),A
; 163.	    if(set_hardware)
	OR	E
	JR	Z,?0008
?0007:
; 164.	    {
; 165.	        result = ui_slider(&slider, vol_callback);
	LD	C,BYTE3 vol_callback
	PUSH	BC
	LD	HL,LWRD vol_callback
	PUSH	HL
	LD	DE,slider
	LD	A,BYTE3 ui_slider
	LD	HL,LWRD ui_slider
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 166.	    }
; 167.	    else
	JR	?0009
?0008:
; 168.	    {
; 169.	        result = ui_slider(&slider, NULL);
	LD	C,B
	PUSH	BC
	PUSH	BC
	LD	DE,slider
	LD	A,BYTE3 ui_slider
	LD	HL,LWRD ui_slider
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 170.	        g_amv_vars.volume = slider.value;
	LD	A,(slider+6)
	LD	(g_amv_vars+2),A
?0009:
; 171.	    }
; 172.	    ui_auto_update=TRUE;
	LD	A,1
	LD	(ui_auto_update),A
; 173.	    if(result != 0) return result;
	LD	A,L
	OR	H
	JR	NZ,?0012
?0010:
?0011:
; 174.	
; 175.	 
; 176.	
; 177.	    return 0;
	LD	L,B
	LD	H,B
; 178.	
; 179.	}
?0012:
	POP	AF
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
ui_show_h:
; 180.	
; 181.	void ui_show_h(const char *string)                       //显示歌曲曲目
; 182.	{
	PUSH	BC
	PUSH	IX
	PUSH	AF
	PUSH	DE
	POP	IX
; 183.	    char id;
; 184.	    id  = *string-0x30;
	LD	A,(DE)
	ADD	A,208
; 185.	    main_ResShowPic(songnum_id[id],POS_SONGNUM-8,POSY_SONGNUM);
	LD	C,162
	PUSH	BC
	LD	C,78
	CALL	LWRD ?0014
	POP	AF
; 186.	    string++;
; 187.	    id= *string-0x30;
	LD	A,(IX+1)
	ADD	A,208
; 188.	    main_ResShowPic(songnum_id[id],POS_SONGNUM,POSY_SONGNUM);
	LD	C,162
	PUSH	BC
	LD	C,86
	CALL	LWRD ?0014
	POP	AF
; 189.	    string++;
; 190.	    id= *string-0x30;
	LD	A,(IX+2)
	ADD	A,208
; 191.	    main_ResShowPic(songnum_id[id],POS_SONGNUM+8,POSY_SONGNUM);
	LD	C,162
	PUSH	BC
	LD	C,94
	CALL	LWRD ?0014
	POP	AF
; 192.	    main_ResShowPic(SINGLINE,POS_SONGNUM+16,POSY_SONGNUM);
	LD	C,162
	PUSH	BC
	LD	C,102
	LD	DE,219
	CALL	LWRD ?0013
	POP	AF
; 193.	    string++;
; 194.	    id= *string-0x30;
	LD	A,(IX+3)
	ADD	A,208
; 195.	    main_ResShowPic(songnum_id[id],POS_SONGNUM+24,POSY_SONGNUM);
	LD	C,162
	PUSH	BC
	LD	C,110
	CALL	LWRD ?0014
	POP	AF
; 196.	    string++;
; 197.	    id= *string-0x30;
	LD	A,(IX+4)
	ADD	A,208
; 198.	    main_ResShowPic(songnum_id[id],POS_SONGNUM+32,POSY_SONGNUM);
	LD	C,162
	PUSH	BC
	LD	C,118
	CALL	LWRD ?0014
	POP	AF
; 199.	     string++;
; 200.	    id= *string-0x30;
	LD	A,(IX+5)
	ADD	A,208
; 201.	    main_ResShowPic(songnum_id[id],POS_SONGNUM+40,POSY_SONGNUM);
	LD	C,162
	PUSH	BC
	LD	C,126
	CALL	LWRD ?0014
	POP	AF
; 202.	
; 203.	}
	POP	HL
	POP	IX
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
; 204.	
	RSEG	APC_SUB_DIS
LOOP_PIC:
	DEFW	122
	DEFW	123
	DEFW	124
	DEFW	125
	DEFW	126
	DEFW	127
	DEFW	128
num_id:
	DEFW	241
	DEFW	242
	DEFW	243
	DEFW	244
	DEFW	245
	DEFW	246
	DEFW	247
	DEFW	248
	DEFW	249
	DEFW	250
songnum_id:
	DEFW	134
	DEFW	135
	DEFW	136
	DEFW	137
	DEFW	138
	DEFW	139
	DEFW	140
	DEFW	141
	DEFW	142
	DEFW	143
	END

⌨️ 快捷键说明

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