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

📄 bookmark_list.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
	NAME	bookmark_list(17)
	RSEG	CODE_1(0)
	EXTERN	GetDCStatus
	EXTERN	PutS
	EXTERN	ResShowMultiString
	EXTERN	ResShowPic
	EXTERN	SetBackgdColor
	EXTERN	SetPenColor
	EXTERN	SetTextOutMode
	EXTERN	SetTextPos
	EXTERN	ap_get_message
	EXTERN	ap_handle_hotkey
	EXTERN	bkmarks
	EXTERN	menu_pos_list
	EXTERN	menulist_bck_pic
	PUBLIC	showString
	PUBLIC	show_active_bklist
	EXTERN	ui_auto_select
	PUBLIC	ui_bookmark_list
	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	CODE_1
showString:
; 1.	/*
; 2.	*******************************************************************************
; 3.	*                ACTOS AP
; 4.	*           ap common lib file
; 5.	*
; 6.	*        (c) Copyright, Actions Co,Ld.                             
; 7.	*             All Right Reserved                          
; 8.	*
; 9.	*******************************************************************************
; 10.	*/   
; 11.	#include <stdio.h>              // sprintf
; 12.	#include "ap_common.h"  
; 13.	#include "common.h" 
; 14.	#include "bookmark.h"
; 15.	
; 16.	#define LIST_NUM_ONE_PAGE    6          
; 17.	extern const char menu_pos_list[6];
; 18.	extern const WORD menulist_bck_pic[6];
; 19.	/*const char menu_pos_bklist[LIST_NUM_ONE_PAGE] = { POSITION_MENU6,POSITION_MENU5,
; 20.	        POSITION_MENU4,POSITION_MENU3,POSITION_MENU2,POSITION_MENU1};     
; 21.	const WORD menulist_bck_pic1[LIST_NUM_ONE_PAGE]={ MENUBCK6,MENUBCK5,MENUBCK4,MENUBCK3,MENUBCK2,MENUBCK1 };          
; 22.	*/
; 23.	#pragma codeseg(CODE_1)
; 24.	int showString(short id, byte string_id, uchar x, uchar y)
; 25.	{
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	PUSH	BC
	PUSH	DE
	LD	HL,65522
	ADD	HL,SP
	LD	SP,HL
; 26.	    BYTE len;
; 27.	    char p[13];
; 28.	//    sprintf(p,"%d: %s",id, bkmarks[id].title);
; 29.	
; 30.	//    len = (BYTE)strlen(p);  
; 31.	    memcpy(p,bkmarks[id].title,12);
	EX	DE,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	ADD	HL,HL
	LD	BC,bkmarks+4
	ADD	HL,BC
	LD	BC,12
	LDIR
; 32.	    p[12]=0;
	LD	(IX-6),B
; 33.	    SetTextPos(x, y); 
	LD	C,(IX+8)
	LD	E,(IX+6)
	CALL	LWRD SetTextPos
; 34.	//    SetPenColor(Color_BULE2_def); 
; 35.	    PutS(p,-1);
	LD	C,255
	LD	HL,0
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD PutS
; 36.	/*
; 37.	   if((x == 255)&&(string_id!=1)&&(string_id<5))    //16*16字体居中显示
; 38.	    {
; 39.	        SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
; 40.	         PutS(p, -1);
; 41.	    }
; 42.	    else if((string_id!=1)&&(string_id<5))    ////16*16字体非居中显示
; 43.	    {
; 44.	        SetTextPos(x, y);
; 45.	        PutS(p, -1);
; 46.	    }
; 47.	    else        //6*8字体显示
; 48.	    {
; 49.	        if(x == 255)
; 50.	        {
; 51.	            SetTextPos((SCR_WIDTH - len*CHAR_WIDTH) /2, y);
; 52.	            PutS(p, -1);
; 53.	        }
; 54.	        else if( len<22 )
; 55.	        {
; 56.	            SetTextPos(x, y);
; 57.	            PutS(p, -1);
; 58.	        }
; 59.	        else
; 60.	        {
; 61.	            SetTextPos(0, y);
; 62.	            PutS(p, 21);
; 63.	            SetTextPos(0, y+8);
; 64.	            PutS(p+21, -1);
; 65.	        }
; 66.	    }
; 67.	*/    
; 68.	    return 1;
	LD	HL,1
; 69.	}
	LD	SP,IX
	POP	IX
	JP	LWRD ?BANK_FAST_LEAVE_L08
show_active_bklist:
; 70.	
; 71.	void show_active_bklist(pop_up_list_t *list,int old_active, int active)
; 72.	{
	PUSH	IY
	PUSH	IX
	PUSH	BC
	PUSH	DE
	POP	IY
; 73.	        int tmp; 
; 74.	        //清除旧的活动菜单项   
; 75.	        tmp = old_active%LIST_NUM_ONE_PAGE; 
	LD	BC,6
	LD	L,B
	LD	H,B
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?SS_MOD_L02
; 76.	       
; 77.	        ResShowPic(menulist_bck_pic[tmp], menu_ptr_x_def, menu_pos_list[tmp]-4); 
	LD	HL,menu_pos_list
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,252
	LD	C,A
	PUSH	BC
	LD	C,10
	EX	DE,HL
	ADD	HL,HL
	LD	DE,menulist_bck_pic
	ADD	HL,DE
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?0062
	POP	AF
; 78.	          
; 79.	        tmp = active%LIST_NUM_ONE_PAGE;
	LD	BC,6
	LD	HL,10
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?SS_MOD_L02
	PUSH	DE
	POP	IX
; 80.	        ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_list[tmp]-4);
	LD	HL,menu_pos_list
	ADD	HL,DE
	LD	A,(HL)
	ADD	A,252
	LD	C,A
	PUSH	BC
	CALL	LWRD ?0063
	POP	AF
; 81.	        ///-ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_list[tmp]);
; 82.	        ResShowPic(DHT,194,8);
	LD	C,8
	PUSH	BC
	LD	C,194
	LD	DE,38
	CALL	LWRD ?0062
	POP	AF
; 83.	        ResShowPic(DHTHK,194, menu_pos_list[tmp]+6); 
	LD	HL,menu_pos_list
	PUSH	IX
	POP	BC
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,6
	LD	E,A
	PUSH	DE
	LD	C,194
	LD	DE,39
	CALL	LWRD ?0062
	POP	AF
; 84.	 
; 85.	        SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0064
; 86.	        showString(active, list->string_id, menu_str_x_def, menu_pos_list[tmp]-3);
	LD	HL,menu_pos_list
	PUSH	IX
	POP	BC
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,253
	LD	E,A
	PUSH	DE
	LD	E,32
	PUSH	DE
	LD	C,(IY+8)
	LD	HL,14
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	A,BYTE3 showString
	LD	HL,LWRD showString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 87.	        
; 88.	        //重新显示旧的活动菜单
; 89.	        SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0064
; 90.	  
; 91.	        tmp = old_active%LIST_NUM_ONE_PAGE;
	LD	BC,6
	LD	L,B
	LD	H,B
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	CALL	LWRD ?SS_MOD_L02
	PUSH	DE
	POP	IX
; 92.	        ResShowPic(MENUARR1+tmp, menu_ptr_x_def, menu_pos_list[tmp]);  
	LD	HL,menu_pos_list
	ADD	HL,DE
	LD	C,(HL)
	PUSH	BC
	LD	C,10
	LD	HL,179
	ADD	HL,DE
	EX	DE,HL
	CALL	LWRD ?0062
	POP	AF
; 93.	        showString(old_active, list->string_id, menu_str_x_def, menu_pos_list[tmp]-3);                                             
	LD	HL,menu_pos_list
	PUSH	IX
	POP	BC
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,253
	LD	C,A
	PUSH	BC
	LD	C,32
	PUSH	BC
	LD	C,(IY+8)
	LD	HL,4
	ADD	HL,SP
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	A,BYTE3 showString
	LD	HL,LWRD showString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 94.	} 
	POP	HL
	POP	IX
	POP	IY
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0063:
	LD	C,9
	LD	DE,180
?0062:
	LD	A,BYTE3 ResShowPic
	LD	HL,LWRD ResShowPic
	JP	LWRD ?BANK_CALL_DIRECT_L08
?0064:
	LD	BC,0
	LD	DE,65535
	JP	LWRD SetPenColor
ui_bookmark_list:
; 95.	/*
; 96.	********************************************************************************
; 97.	* Description : 弹出式列表选择窗体
; 98.	*
; 99.	* Arguments   :
; 100.	*    list,  弹出式列表结构体指针
; 101.	*    list->string, 语言
; 102.	*
; 103.	* Returns     : key
; 104.	*
; 105.	* Notes       :
; 106.	*
; 107.	********************************************************************************
; 108.	*/
; 109.	int ui_bookmark_list(pop_up_list_t *list, const void (*callback)(int value))
; 110.	{
	PUSH	BC
	PUSH	IY
	PUSH	IX
	LD	IX,0
	ADD	IX,SP
	LD	HL,65512
	ADD	HL,SP
	LD	SP,HL
	PUSH	DE
	POP	IY
; 111.	    int i,active,old_active;
; 112.	    char key;
; 113.	    bool need_draw=FALSE;
; 114.	    bool need_drawall=TRUE;
; 115.	    bool value_changed=FALSE;
; 116.	    int max_group;    // list->total / 7
; 117.	    int cur_group;    // list->active / LIST_NUM_ONE_PAGE
; 118.	    int n;            // the item to show
; 119.	    DC  oldDC_sav;    
; 120.	 
; 121.	    active = list->active;
	LD	HL,4
	ADD	HL,DE
	LD	B,(HL)
	LD	(IX-24),B
	INC	HL
	LD	H,(HL)
	LD	(IX-23),H
; 122.	 
; 123.	    if((list->total % LIST_NUM_ONE_PAGE) == 0) max_group--;
	LD	(IX-4),0
	LD	(IX-1),1
	LD	(IX-2),0
	INC	DE
	INC	DE
	EX	DE,HL
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	LD	BC,6
	CALL	LWRD ?SS_MOD_L02
?0002:
?0003:
; 124.	    GetDCStatus(&oldDC_sav);    
	LD	HL,4
	ADD	HL,SP
	EX	DE,HL
	CALL	LWRD GetDCStatus
; 125.	 
; 126.	        SetTextOutMode(1);       //设字体透明   
	LD	E,1
	CALL	LWRD SetTextOutMode
?0005:
; 127.	 
; 128.	    while(1)
; 129.	    {
; 130.	        if(need_drawall)
	XOR	A
	OR	(IX-1)
	JR	Z,?0008
?0007:
; 131.	        {
; 132.	      
; 133.	            need_drawall=FALSE;
; 134.	            need_draw=TRUE;
	LD	(IX-1),0
	LD	(IX-4),1
?0008:
; 135.	        }
; 136.	        
; 137.	        if(need_draw)
	XOR	A
	OR	(IX-4)
	JP	Z,?0010
?0009:
; 138.	        {                        
; 139.	            old_active=active;
; 140.	            cur_group = active / LIST_NUM_ONE_PAGE;
	LD	BC,6
	LD	E,(IX-24)
	LD	D,(IX-23)
	CALL	LWRD ?SS_DIV_L02
	LD	(IX-10),E
	LD	(IX-9),D
; 141.	            n = cur_group*LIST_NUM_ONE_PAGE;
	EX	DE,HL
	ADD	HL,HL
	LD	C,L
	LD	B,H
	ADD	HL,HL
	ADD	HL,BC
	LD	(IX-12),L
	LD	(IX-11),H
; 142.	            ResShowPic(MENUTWO,0,0);  
	LD	C,0
	PUSH	BC
	LD	DE,195
	CALL	LWRD ?0062
	POP	AF
; 143.	            ResShowPic(DHT,194,8);   
	LD	C,8
	PUSH	BC
	LD	C,194
	LD	DE,38
	CALL	LWRD ?0062
	POP	AF
; 144.	            SetPenColor(Color_WHITE_def); 
	CALL	LWRD ?0064
; 145.	            ResShowMultiString(list->headid, list->string_id, 
; 146.	            list_str_x_def, list_str_y_def);
	LD	C,148
	PUSH	BC
	LD	C,22
	PUSH	BC
	LD	C,(IY+8)
	LD	E,(IY+6)
	LD	D,(IY+7)
	LD	A,BYTE3 ResShowMultiString
	LD	HL,LWRD ResShowMultiString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 147.	  
; 148.	             SetPenColor(Color_WHITE_def);   
	CALL	LWRD ?0064
; 149.	            for(i=0; i<LIST_NUM_ONE_PAGE; i++)
	LD	L,(IX-24)
	LD	H,(IX-23)
	LD	(IX-8),L
	LD	(IX-7),H
	XOR	A
	LD	(IX-22),A
	LD	(IX-21),A
?0012:
	LD	BC,32774
	LD	L,(IX-22)
	LD	H,(IX-21)
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JP	NC,?0011

⌨️ 快捷键说明

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