亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ui_menu.s01

?? 5807收音機模塊用于炬力平臺
?? S01
字號:
	NAME	ui_menu(17)
	RSEG	COM_CTRL(0)
	RSEG	CONST(0)
	EXTERN	ClearScreen
	EXTERN	ResShowMultiString
	EXTERN	ResShowPic
	EXTERN	UpdateScreen
	EXTERN	ap_get_message
	EXTERN	ap_handle_hotkey
	PUBLIC	menu_pos
	EXTERN	ui_auto_select
	EXTERN	ui_auto_update
	PUBLIC	ui_function_menu
	EXTERN	?CLZ80B_4_04_L00
	EXTERN	?SS_DIV_L02
	EXTERN	?SS_MOD_L02
	EXTERN	?C_V_SWITCH_L06
	EXTERN	?BANK_CALL_DIRECT_L08
	EXTERN	?BANK_FAST_LEAVE_L08
	RSEG	COM_CTRL
ui_function_menu:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*        ap common lib, menu ui file
; 5.	*
; 6.	*        (c) Copyright, Actions Co,Ld.
; 7.	*             All Right Reserved
; 8.	*
; 9.	*******************************************************************************
; 10.	*/
; 11.	#pragma codeseg(COM_CTRL)
; 12.	
; 13.	#include "ap_common.h"
; 14.	
; 15.	/*注意-以下函數必須能訪問到這些常量 */
; 16.	const char menu_pos[5] = {POSITION_MENU1, POSITION_MENU2, POSITION_MENU3,
; 17.	        POSITION_MENU4, POSITION_MENU5};
; 18.	
; 19.	/*
; 20.	********************************************************************************
; 21.	* Description : 功能菜單控件
; 22.	*
; 23.	* Arguments   : menu, 功能菜單結體
; 24.	        callback, 功能菜單的回調函數,=NULL 表示沒有回調函數
; 25.	*
; 26.	* Returns     : 結果消息, 或者0
; 27.	*
; 28.	* Notes       :
; 29.	*
; 30.	********************************************************************************
; 31.	*/
; 32.	int ui_function_menu(function_menu_t *menu, const void (*callback)(int res_id))
; 33.	{
	PUSH	BC
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	LD	HL,65524
	ADD	HL,SP
	LD	SP,HL
	PUSH	DE
	POP	IY
; 34.	    int i;
; 35.	    char key;
; 36.	    BOOL need_draw=TRUE;
; 37.	    BOOL value_changed=TRUE;
; 38.	    int max_group;  // menu->total / 5
; 39.	    int cur_group;  //menu->active / 5
; 40.	    int n;  //the item to show
; 41.	
; 42.	    ASSERT(menu->active < menu->total);
; 43.	    ASSERT(menu->pic_active != NULL);
; 44.	    ASSERT(menu->pic_inactive != NULL);
; 45.	    ASSERT(menu->string != NULL);
; 46.	    ASSERT(menu->string_id < 3);
; 47.	
; 48.	    //total pages
; 49.	    max_group = menu->total / 5;
	EX	DE,HL
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	BC,5
	CALL	LWRD ?SS_DIV_L02
	LD	(IX-6),E
	LD	(IX-5),D
; 50.	    if((menu->total % 5) == 0) max_group--;
	LD	(IX-11),1
	LD	(IX-2),1
	LD	E,(IY+0)
	LD	D,(IY+1)
	CALL	LWRD ?SS_MOD_L02
	LD	A,E
	OR	D
	JR	NZ,?0003
?0002:
	LD	L,(IX-6)
	LD	H,(IX-5)
	DEC	HL
	LD	(IX-6),L
	LD	(IX-5),H
?0003:
?0005:
; 51.	
; 52.	    while(1)
; 53.	    {
; 54.	        if(need_draw)
	XOR	A
	OR	(IX-11)
	JP	Z,?0023
?0007:
; 55.	        {
; 56.	            //clear screen
; 57.	            ClearScreen(NULL);
	LD	DE,0
	CALL	LWRD ClearScreen
; 58.	
; 59.	#if 1
; 60.	            //what page?
; 61.	            cur_group = menu->active / 5;
	LD	E,(IY+2)
	LD	D,(IY+3)
	LD	BC,5
	CALL	LWRD ?SS_DIV_L02
	LD	(IX-8),E
	LD	(IX-7),D
; 62.	            n = cur_group*5;
	EX	DE,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,BC
	LD	(IX-4),L
	LD	(IX-3),H
; 63.	
; 64.	            //show icons & text
; 65.	            for(i=0; i<5; i++)
	XOR	A
	LD	(IX-10),A
	LD	(IX-9),A
?0010:
	LD	BC,32773
	LD	L,(IX-10)
	LD	H,(IX-9)
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0009
?0011:
; 66.	            {
; 67.	                if(n+i >= menu->total) break;   //處理不足5個的情況
	LD	C,(IY+0)
	LD	B,(IY+1)
	LD	L,(IX-10)
	LD	H,(IX-9)
	LD	E,(IX-4)
	LD	D,(IX-3)
	ADD	HL,DE
	OR	128
	SBC	HL,BC
	JP	PO,?0051
	XOR	H
?0051:
	JP	P,?0009
?0013:
?0014:
; 68.	                ResShowPic(menu->pic_inactive[n+i], menu_pos[i], 0);
	LD	C,0
	PUSH	BC
	LD	HL,menu_pos
	LD	C,(IX-10)
	LD	B,(IX-9)
	ADD	HL,BC
	LD	C,(HL)
	LD	L,(IY+4)
	LD	H,(IY+5)
	PUSH	HL
	LD	L,(IX-10)
	LD	H,B
	ADD	HL,DE
	ADD	HL,HL
	EX	DE,HL
	POP	HL
	CALL	LWRD ?0064
	POP	AF
	INC	(IX-10)
	JR	NZ,?0010
	INC	(IX-9)
	JR	?0010
?0009:
; 69.	            }
; 70.	            //show active, 2 pixels left
; 71.	            ResShowPic(menu->pic_active[menu->active], menu_pos[menu->active % 5]-2, 0);
	LD	C,0
	PUSH	BC
	LD	E,(IY+2)
	LD	D,(IY+3)
	LD	BC,5
	CALL	LWRD ?SS_MOD_L02
	LD	HL,menu_pos
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,254
	LD	C,A
	LD	L,(IY+2)
	LD	H,(IY+3)
	ADD	HL,HL
	LD	E,(IY+6)
	LD	D,(IY+7)
	CALL	LWRD ?0064
	POP	AF
; 72.	
; 73.	            //check if show left arrows
; 74.	            if(cur_group > 0) ResShowPic(CARROWL, POSITION_MENUL, 0);
	LD	C,(IX-8)
	LD	B,(IX-7)
	LD	HL,0
	OR	128
	SBC	HL,BC
	JP	PO,?0053
	XOR	H
?0053:
	LD	C,0
	PUSH	BC
	LD	C,2
	JP	P,?0016
?0015:
	LD	DE,52
	JR	?0058
?0016:
; 75.	            else ResShowPic(CARROWN, POSITION_MENUL, 0);
	LD	DE,53
?0058:
	CALL	LWRD ?0065
	POP	AF
?0017:
; 76.	
; 77.	            //check if show right arrows
; 78.	            if(cur_group < max_group) ResShowPic(CARROWR, POSITION_MENUR, 0);
	LD	C,(IX-6)
	LD	B,(IX-5)
	LD	L,(IX-8)
	LD	H,(IX-7)
	OR	128
	SBC	HL,BC
	JP	PO,?0054
	XOR	H
?0054:
	LD	C,0
	PUSH	BC
	LD	C,115
	JP	P,?0019
?0018:
	LD	DE,54
	JR	?0059
?0019:
; 79.	            else ResShowPic(CARROWN, POSITION_MENUR, 0);
	LD	DE,53
?0059:
	CALL	LWRD ?0065
	POP	AF
?0020:
; 80.	
; 81.	#else
; 82.	            //show icons & text
; 83.	            if(menu->total <= 5)    /* iiiii*/
; 84.	            {
; 85.	                //show icon
; 86.	                for(i=0; i<menu->total; i++)
; 87.	                {
; 88.	                    ResShowPic(menu->pic_inactive[i], menu_pos[i], 0);
; 89.	                }
; 90.	                //show active, 2 frame movie effect!!
; 91.	                ResShowPic(menu->pic_active[menu->active], menu_pos[menu->active]-2, 0);
; 92.	
; 93.	            }
; 94.	            else    //>5, to show arrow
; 95.	            {
; 96.	                //active item on middle
; 97.	                if(menu->active < 5)        /* iiaii >*/
; 98.	                {
; 99.	                    //show icon
; 100.	                    for(i=0; i<5; i++)
; 101.	                    {
; 102.	                        ResShowPic(menu->pic_inactive[i], menu_pos[i], 0);
; 103.	                    }
; 104.	                    //show active, 2 frame movie effect!!
; 105.	                    ResShowPic(menu->pic_active[menu->active], menu_pos[menu->active]-2, 0);
; 106.	                    //show right arrow
; 107.	                    ResShowPic(CARROWR, POSITION_MENUR, 0);
; 108.	                    //clear left arrow
; 109.	                    ResShowPic(CARROWN, POSITION_MENUL, 0);
; 110.	                } /* iiaii >*/
; 111.	                //active item on right
; 112.	                else        /* < iiiia >*/
; 113.	                {
; 114.	                    for(i=menu->active-4; i<= menu->active; i++)
; 115.	                    {
; 116.	                        ResShowPic(menu->pic_inactive[i], menu_pos[i-(menu->active-4)], 0);
; 117.	                    }
; 118.	
; 119.	                    //show active, 2 frame movie effect!!
; 120.	                    ResShowPic(menu->pic_active[menu->active], menu_pos[4]-2, 0);
; 121.	
; 122.	                    //show arrow
; 123.	                    if(menu->active == menu->total-1)
; 124.	                    {
; 125.	                        //clear right arrow
; 126.	                        ResShowPic(CARROWN, POSITION_MENUR, 0);
; 127.	                    }
; 128.	                    else
; 129.	                    {
; 130.	                        //show right arrow
; 131.	                        ResShowPic(CARROWR, POSITION_MENUR, 0);
; 132.	                    }
; 133.	                    //show left arrow
; 134.	                    ResShowPic(CARROWL, POSITION_MENUL, 0);
; 135.	                }  /* < iiiia >*/
; 136.	            }// >5
; 137.	#endif
; 138.	            //show text in middle of screen
; 139.	            ResShowMultiString(menu->string[menu->active], menu->string_id, 255, 16);
	LD	C,16
	PUSH	BC
	LD	C,255
	PUSH	BC
	LD	C,(IY+10)
	LD	L,(IY+2)
	LD	H,(IY+3)
	ADD	HL,HL
	LD	E,(IY+8)
	LD	D,(IY+9)
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 140.	
; 141.	            //check auto_update
; 142.	            if(!ui_auto_update) UpdateScreen(NULL);
	LD	A,(ui_auto_update)
	OR	A
	JR	NZ,?0022
?0021:
	LD	E,A
	LD	D,A
	CALL	LWRD UpdateScreen
?0022:
; 143.	
; 144.	            need_draw = FALSE;
	LD	(IX-11),0
?0024:
; 145.	            while (ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0024
?0025:
; 146.	        }//need draw
?0023:
?0008:
; 147.	
; 148.	        //handle message
; 149.	        key = ap_get_message();
	CALL	LWRD ap_get_message
; 150.	    switch( key)
	LD	E,A
	CALL	LWRD ?C_V_SWITCH_L06
	DEFW	7
	DEFB	5
	DEFB	6
	DEFB	30
	DEFB	33
	DEFB	39
	DEFB	69
	DEFB	70
	DEFW	?0040
	DEFW	?0027
	DEFW	?0031
	DEFW	?0036
	DEFW	?0060
	DEFW	?0037
	DEFW	?0027
	DEFW	?0031
?0027:
; 151.	        {
; 152.	        case AP_KEY_NEXT:
; 153.	        case AP_KEY_NEXT | AP_KEY_HOLD:
; 154.	            if(menu->active < menu->total-1)
	LD	C,(IY+0)
	LD	B,(IY+1)
	DEC	BC
	LD	L,(IY+2)
	LD	H,(IY+3)
	OR	128
	SBC	HL,BC
	JP	PO,?0055
	XOR	H
?0055:
	JP	P,?0029
?0028:
; 155.	            {
; 156.	                menu->active++;
	INC	(IY+2)
	JR	NZ,?0034
	INC	(IY+3)
; 157.	            }
; 158.	            else
	JR	?0034
?0029:
; 159.	            {
; 160.	                menu->active = 0;
	XOR	A
	LD	(IY+2),A
	LD	(IY+3),A
?0030:
; 161.	            }
; 162.	            value_changed = TRUE;
; 163.	            need_draw = TRUE;
	JR	?0034
; 164.	            break;
?0031:
; 165.	        case AP_KEY_PREV:
; 166.	        case AP_KEY_PREV | AP_KEY_HOLD:
; 167.	            if(menu->active > 0)
	LD	C,(IY+2)
	LD	B,(IY+3)
	LD	HL,0
	OR	128
	SBC	HL,BC
	JP	PO,?0057
	XOR	H
?0057:
	JP	P,?0033
?0032:
; 168.	            {
; 169.	                menu->active--;
	LD	L,(IY+2)
	LD	H,(IY+3)
	JR	?0063
; 170.	
; 171.	            }
; 172.	            else
?0033:
; 173.	            {
; 174.	                menu->active = menu->total-1;
	LD	L,(IY+0)
	LD	H,(IY+1)
?0063:
	DEC	HL
	LD	(IY+2),L
	LD	(IY+3),H
?0034:
; 175.	            }
; 176.	            value_changed = TRUE;
; 177.	            need_draw = TRUE;
	LD	(IX-2),1
	JR	?0062
; 178.	            break;
?0035:
; 179.	        case AP_KEY_PLAY | AP_KEY_UP:   //取消退出
; 180.	            return RESULT_IGNORE;
; 181.	
; 182.	        case AP_KEY_MODE | AP_KEY_UP:   //確認退出
?0036:
; 183.	            return 0;
	LD	HL,0
; 184.	            //break;
; 185.	        case AP_MSG_WAIT_TIMEOUT:
	JR	?0050
?0037:
; 186.	            //if(ui_auto_select)  return 0;
; 187.	
; 188.	            //this is recommoned by johnlee, 2004/03/02
; 189.	            if(ui_auto_select)  return RESULT_IGNORE;
	LD	A,(ui_auto_select)
	OR	A
	JR	Z,?0045
?0038:
?0060:
	LD	HL,48
; 190.	
; 191.	            break;
	JR	?0050
?0039:
?0040:
; 192.	        default:
; 193.	            key = ap_handle_hotkey(key);
	CALL	LWRD ap_handle_hotkey
	LD	(IX-12),A
; 194.	            if(key == RESULT_REDRAW) need_draw = TRUE;
	CP	46
	JR	NZ,?0042
?0041:
?0062:
	LD	(IX-11),1
	JR	?0045
?0042:
; 195.	            else if(key != 0) return key;
	XOR	A
	OR	(IX-12)
	JR	Z,?0045
?0044:
	LD	L,A
	LD	H,0
; 196.	        }
?0050:
	LD	SP,IX
	POP	IX
	POP	IY
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0045:
?0043:
?0026:
; 197.	        ASSERT( menu->active < menu->total);
; 198.	
; 199.	            //handle callback
; 200.	            if(callback != NULL && value_changed)
	LD	A,(IX+10)
	OR	(IX+11)
	OR	(IX+12)
	JP	Z,?0003
	XOR	A
	OR	(IX-2)
	JP	Z,?0003
?0049:
?0048:
?0046:
; 201.	        {
; 202.	            callback(menu->active);
	LD	E,(IY+2)
	LD	D,(IY+3)
	LD	A,(IX+12)
	LD	L,(IX+10)
	LD	H,(IX+11)
	CALL	LWRD ?BANK_CALL_DIRECT_L08
; 203.	            value_changed = FALSE;
	LD	(IX-2),0
?0047:
; 204.	            }
; 205.	
; 206.	    }//while (1)
; 207.	    //return 0;
; 208.	
; 209.	}
	JP	LWRD ?0003
?0064:
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
?0065:
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
; 210.	
	RSEG	CONST
menu_pos:
	DEFB	19
	DEFB	'&'
	DEFB	'9'
	DEFB	'L'
	DEFB	'_'
	END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利二区三区| 成人午夜精品一区二区三区| 99久久精品一区二区| 国产午夜三级一区二区三| 亚洲国产日韩a在线播放性色| 91在线播放网址| 最新高清无码专区| 成人av在线资源| 日韩一区在线免费观看| 97精品久久久久中文字幕 | 国内一区二区在线| 日韩你懂的在线播放| 免费在线欧美视频| 日韩一区二区三区在线视频| 免费在线观看日韩欧美| 欧美成人vps| 黄色日韩网站视频| 亚洲国产激情av| 色88888久久久久久影院按摩| 国产精品毛片久久久久久| 国产一区二区电影| 国产精品人人做人人爽人人添| a在线播放不卡| 伊人婷婷欧美激情| 在线成人av影院| 久久99精品视频| 国产欧美一区二区三区网站| 不卡视频一二三四| 亚洲一区二区三区四区中文字幕| 欧美电影一区二区| 国产乱人伦偷精品视频不卡| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 在线观看国产精品网站| 天涯成人国产亚洲精品一区av| 91精品一区二区三区久久久久久| 国产综合久久久久久久久久久久| 国产精品久久久久久久久搜平片| 99久久综合精品| 亚洲国产精品一区二区www| 91久久奴性调教| 日韩av在线发布| 久久久久国色av免费看影院| 一本大道综合伊人精品热热| 视频一区二区中文字幕| 日韩欧美国产三级| 国产99久久久国产精品潘金网站| 国产精品污www在线观看| 色婷婷国产精品综合在线观看| 亚洲成人精品一区二区| 欧美国产一区二区在线观看| 欧美午夜电影网| 国产传媒日韩欧美成人| 亚洲乱码一区二区三区在线观看| 91精品福利在线一区二区三区 | 日本中文字幕一区| 91超碰这里只有精品国产| 日本亚洲电影天堂| 中文字幕中文在线不卡住| 欧美精品色一区二区三区| 成人污视频在线观看| 奇米影视在线99精品| 亚洲免费色视频| 久久精品这里都是精品| 欧美日韩一区二区三区四区| 国产成人一区在线| 最新高清无码专区| 欧美岛国在线观看| 欧美日韩在线观看一区二区| 成人黄色av电影| 国内精品在线播放| 日本亚洲一区二区| 亚洲电影第三页| 亚洲色图一区二区| 中文字幕成人在线观看| 日韩一区二区在线看| 欧美日韩一区 二区 三区 久久精品| 成人免费毛片片v| 亚洲mv大片欧洲mv大片精品| 国产亚洲成年网址在线观看| 欧美一区二区久久| 欧美狂野另类xxxxoooo| 色哟哟一区二区在线观看| 国产成人av影院| 国产乱码精品1区2区3区| 青青草91视频| 久久精品久久综合| 日日噜噜夜夜狠狠视频欧美人 | 国产一区日韩二区欧美三区| 美国一区二区三区在线播放| 午夜国产精品一区| 午夜精品免费在线| 亚洲图片欧美一区| 一区二区三区四区视频精品免费 | 欧美精品v国产精品v日韩精品| 91在线观看下载| 国产伦理精品不卡| 黄网站免费久久| 国产激情一区二区三区四区 | 偷偷要91色婷婷| 亚洲成人免费影院| 18欧美亚洲精品| 中文字幕一区二区在线播放| 国产精品色呦呦| 中文字幕在线观看一区| 亚洲欧美日韩在线| 亚洲影院在线观看| 午夜精品在线视频一区| 免费观看一级欧美片| 亚洲激情自拍偷拍| 亚洲成人激情av| 麻豆精品新av中文字幕| 国产在线精品免费av| 国产91清纯白嫩初高中在线观看| 成人av电影在线播放| 色狠狠桃花综合| 日韩一卡二卡三卡国产欧美| 91精品国产综合久久精品性色| 欧美日韩国产小视频在线观看| 欧美疯狂做受xxxx富婆| 亚洲精品一区二区三区福利| 26uuu国产日韩综合| 中文字幕一区二区三区不卡在线| 一区二区三区在线观看欧美| 一区二区三区日韩在线观看| 亚洲国产综合色| 久久国产精品无码网站| 波多野洁衣一区| 欧美视频完全免费看| 欧美电影免费观看高清完整版在| 久久精品视频一区二区三区| 亚洲精品一区二区三区影院| 国产色综合一区| 蜜桃久久av一区| 国产999精品久久久久久绿帽| 97久久精品人人做人人爽 | 91.麻豆视频| 国产成人鲁色资源国产91色综 | 色欧美日韩亚洲| 亚洲国产精品高清| 国产综合色在线视频区| 91精品久久久久久蜜臀| 亚洲国产一区二区三区青草影视| 成人福利视频网站| 久久久久久久久久久久久女国产乱| 日韩精品一级中文字幕精品视频免费观看 | 久久se精品一区精品二区| 欧美色视频在线| 亚洲激情六月丁香| 99这里只有久久精品视频| 2023国产精品自拍| 久久成人久久爱| 日韩视频在线你懂得| 日欧美一区二区| 在线不卡的av| 日韩av高清在线观看| 欧美日本视频在线| 性做久久久久久免费观看| 欧美色窝79yyyycom| 亚洲精品第一国产综合野| 一本大道久久a久久精二百| 最新热久久免费视频| 91天堂素人约啪| 综合欧美一区二区三区| 91丨porny丨中文| 亚洲视频一二区| 99re6这里只有精品视频在线观看| 国产精品美女www爽爽爽| 成人91在线观看| 国产精品电影院| 一本色道久久综合亚洲91 | 亚洲亚洲精品在线观看| 欧美日韩精品一二三区| 视频在线在亚洲| 欧美一区日韩一区| 久久99精品一区二区三区三区| 欧美一区二区二区| 麻豆一区二区99久久久久| 欧美电影免费观看高清完整版在线观看 | 亚洲四区在线观看| 欧美最新大片在线看| 日日欢夜夜爽一区| 精品国产91乱码一区二区三区| 国产一区二区福利视频| 国产精品久久久久久一区二区三区| 色综合中文字幕| 爽好久久久欧美精品| 精品国产区一区| 99re这里只有精品6| 亚洲一区二区三区四区在线免费观看| 欧美丝袜丝交足nylons| 日韩成人dvd| 中文成人av在线| 欧美乱妇23p| 国产又粗又猛又爽又黄91精品| 国产精品久久久久久久久久免费看| 91丨九色porny丨蝌蚪| 蜜桃一区二区三区四区| 一区二区三区日韩| 日韩一级欧美一级| 大胆欧美人体老妇|