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

📄 bookmark_list.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
📖 第 1 页 / 共 2 页
字号:
?0013:
; 150.	            {
; 151.	                if(n+i >= list->total) break;    //处理不足LIST_NUM_ONE_PAGE个的情况
	LD	C,(IY+2)
	LD	B,(IY+3)
	LD	L,(IX-22)
	LD	H,(IX-21)
	LD	E,(IX-12)
	LD	D,(IX-11)
	ADD	HL,DE
	OR	128
	SBC	HL,BC
	JP	PO,?0053
	XOR	H
?0053:
	JP	P,?0011
?0015:
?0016:
; 152.	                if(n+i==active)
	LD	L,(IX-22)
	LD	H,(IX-21)
	LD	C,E
	LD	B,D
	ADD	HL,BC
	LD	C,(IX-24)
	LD	B,(IX-23)
	AND	A
	SBC	HL,BC
	LD	HL,menu_pos_list
	LD	C,(IX-22)
	LD	B,(IX-21)
	ADD	HL,BC
	JR	NZ,?0018
?0017:
; 153.	                {   
; 154.	                    { ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_list[i]-4); 
	LD	A,(HL)
	ADD	A,252
	LD	E,A
	PUSH	DE
	CALL	LWRD ?0063
	POP	AF
; 155.	                      ResShowPic(DHTHK,194, menu_pos_list[i]+6);  
	LD	HL,menu_pos_list
	LD	C,(IX-22)
	LD	B,(IX-21)
	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
; 156.	                      ///-ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_list[i]); 
; 157.	                    }     
; 158.	           
; 159.	    
; 160.	                     SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0064
; 161.	                     showString(active, list->string_id, menu_str_x_def, menu_pos_list[i]-1);
	LD	HL,menu_pos_list
	LD	C,(IX-22)
	LD	B,(IX-21)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,255
	LD	C,A
	PUSH	BC
	LD	C,32
	PUSH	BC
	LD	C,(IY+8)
	LD	E,(IX-24)
	LD	D,(IX-23)
	LD	A,BYTE3 showString
	LD	HL,LWRD showString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
; 162.	                     SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0064
; 163.	       
; 164.	                }
; 165.	                else
	JR	?0019
?0018:
; 166.	                {
; 167.	                    ResShowPic(MENUARR1+i, menu_ptr_x_def, menu_pos_list[i]);
	LD	E,(HL)
	PUSH	DE
	LD	C,10
	LD	HL,179
	LD	E,(IX-22)
	LD	D,B
	ADD	HL,DE
	EX	DE,HL
	CALL	LWRD ?0062
	POP	AF
; 168.	                    showString(n+i, list->string_id, menu_str_x_def, menu_pos_list[i]-3);
	LD	HL,menu_pos_list
	LD	C,(IX-22)
	LD	B,(IX-21)
	ADD	HL,BC
	LD	A,(HL)
	ADD	A,253
	LD	E,A
	PUSH	DE
	LD	E,32
	PUSH	DE
	LD	C,(IY+8)
	LD	L,(IX-22)
	LD	H,B
	LD	E,(IX-12)
	LD	D,(IX-11)
	ADD	HL,DE
	EX	DE,HL
	LD	A,BYTE3 showString
	LD	HL,LWRD showString
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	AF
	POP	AF
?0019:
	INC	(IX-22)
	JP	NZ,?0012
	INC	(IX-21)
	JP	LWRD ?0012
?0011:
; 169.	                }
; 170.	            }        
; 171.	                    
; 172.	            need_draw = FALSE;
	LD	(IX-4),0
?0010:
; 173.	        }//need draw
; 174.	        if(value_changed)
	XOR	A
	OR	(IX-2)
	JR	Z,?0021
?0020:
; 175.	        {
; 176.	                show_active_bklist(list,old_active,active);
	LD	L,(IX-24)
	LD	H,(IX-23)
	PUSH	HL
	LD	C,(IX-8)
	LD	B,(IX-7)
	PUSH	IY
	POP	DE
	LD	A,BYTE3 show_active_bklist
	LD	HL,LWRD show_active_bklist
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	HL
; 177.	                value_changed=FALSE;
	LD	(IX-2),0
?0021:
; 178.	        }
; 179.	        key = ap_get_message();
	CALL	LWRD ap_get_message
; 180.	        //handle message
; 181.	        switch( key)
	LD	E,A
	CALL	LWRD ?C_V_SWITCH_L06
	DEFW	7
	DEFB	5
	DEFB	6
	DEFB	30
	DEFB	33
	DEFB	48
	DEFB	69
	DEFB	70
	DEFW	?0046
	DEFW	?0023
	DEFW	?0032
	DEFW	?0042
	DEFW	?0058
	DEFW	?0043
	DEFW	?0023
	DEFW	?0032
?0023:
; 182.	            {
; 183.	                case AP_KEY_NEXT:
; 184.	                case AP_KEY_NEXT | AP_KEY_HOLD:                    
; 185.	                    if(active < list->total - 1)
	LD	C,(IY+2)
	LD	B,(IY+3)
	DEC	BC
	LD	L,(IX-24)
	LD	H,(IX-23)
	OR	128
	SBC	HL,BC
	JP	PO,?0055
	XOR	H
?0055:
	JP	P,?0025
?0024:
; 186.	                    {
; 187.	                    active++;
	INC	(IX-24)
	JR	NZ,?0056
	INC	(IX-23)
?0056:
; 188.	                    if(active/LIST_NUM_ONE_PAGE==cur_group)
	LD	BC,6
	LD	E,(IX-24)
	LD	D,(IX-23)
	CALL	LWRD ?SS_DIV_L02
	LD	L,(IX-10)
	LD	H,(IX-9)
	AND	A
	SBC	HL,DE
	JR	NZ,?0060
?0026:
; 189.	                    {
; 190.	                            old_active=active-1;                        
	LD	L,(IX-24)
	LD	H,(IX-23)
	DEC	HL
	LD	(IX-8),L
	LD	(IX-7),H
; 191.	                                value_changed=TRUE;
	LD	(IX-2),1
; 192.	                        }
; 193.	                        else 
	JR	?0029
?0027:
; 194.	                            need_draw = TRUE;                       
?0028:
; 195.	                    }
; 196.	                    else 
?0025:
; 197.	                    {
; 198.	                        active = 0;
; 199.	                        need_draw = TRUE;
	XOR	A
	LD	(IX-24),A
	LD	(IX-23),A
?0060:
	LD	(IX-4),1
?0029:
; 200.	                    } 
; 201.	                    if(callback != NULL)
	LD	A,(IX+10)
	OR	(IX+11)
	OR	(IX+12)
	JP	Z,?0005
?0030:
; 202.	                        callback(active);
	JR	?0059
?0031:
; 203.	                     
; 204.	                    break;
?0032:
; 205.	                    
; 206.	                case AP_KEY_PREV:
; 207.	                case AP_KEY_PREV | AP_KEY_HOLD:
; 208.	                    if(active > 0)
	LD	C,(IX-24)
	LD	B,(IX-23)
	LD	HL,0
	OR	128
	SBC	HL,BC
	JP	PO,?0057
	XOR	H
?0057:
	JP	P,?0034
?0033:
; 209.	                       {
; 210.	                        active--;
	LD	L,C
	LD	H,B
	DEC	HL
	LD	(IX-24),L
	LD	(IX-23),H
; 211.	                        if(active/LIST_NUM_ONE_PAGE==cur_group)
	LD	BC,6
	EX	DE,HL
	CALL	LWRD ?SS_DIV_L02
	LD	L,(IX-10)
	LD	H,(IX-9)
	AND	A
	SBC	HL,DE
	JR	NZ,?0061
?0035:
; 212.	                        {
; 213.	                                old_active=active+1;                        
	LD	L,(IX-24)
	LD	H,(IX-23)
	INC	HL
	LD	(IX-8),L
	LD	(IX-7),H
; 214.	                                    value_changed=TRUE;
	LD	(IX-2),1
; 215.	                            }
; 216.	                            else 
	JR	?0038
?0036:
; 217.	                                    need_draw = TRUE;                                             
?0037:
; 218.	                        }
; 219.	                        else
?0034:
; 220.	                        {
; 221.	                              active = list->total - 1;
	LD	L,(IY+2)
	LD	H,(IY+3)
	DEC	HL
	LD	(IX-24),L
	LD	(IX-23),H
; 222.	                              need_draw = TRUE;
?0061:
	LD	(IX-4),1
?0038:
; 223.	                        }                          
; 224.	                        if(callback != NULL)
	LD	A,(IX+10)
	OR	(IX+11)
	OR	(IX+12)
	JP	Z,?0005
?0039:
; 225.	                            callback(active);
?0059:
	LD	E,(IX-24)
	LD	D,(IX-23)
	LD	A,(IX+12)
	LD	L,(IX+10)
	LD	H,(IX+11)
	CALL	LWRD ?BANK_CALL_DIRECT_L08
?0040:
; 226.	                                               
; 227.	                    break;
	JP	LWRD ?0005
?0041:
; 228.	                
; 229.	                case AP_KEY_PLAY | AP_KEY_UP:    //取消退出
; 230.	                    SetPenColor(oldDC_sav.PenColor);
; 231.	                    SetBackgdColor(oldDC_sav.BackgdColor); 
; 232.	                    SetTextOutMode(0);      //设字体不透明
; 233.	                    return RESULT_IGNORE;
; 234.	                
; 235.	                case AP_KEY_MODE | AP_KEY_UP:    //确认退出
?0042:
; 236.	                    // FIXME::enter function menu??
; 237.	                    list->active = active;
	LD	L,(IX-24)
	LD	(IY+4),L
	LD	H,(IX-23)
	LD	(IY+5),H
; 238.	                    SetPenColor(oldDC_sav.PenColor);
	LD	C,(IX-18)
	LD	B,(IX-17)
	LD	E,(IX-20)
	LD	D,(IX-19)
	CALL	LWRD SetPenColor
; 239.	                    SetBackgdColor(oldDC_sav.BackgdColor);  
	LD	HL,8
	ADD	HL,SP
; 240.	                    SetTextOutMode(0);      //设字体不透明 
	CALL	LWRD ?0065
; 241.	                    return 0;
	LD	HL,0
; 242.	                        
; 243.	                case AP_MSG_WAIT_TIMEOUT:
	JR	?0052
?0043:
; 244.	                    if(ui_auto_select)  
	LD	A,(ui_auto_select)
	OR	A
	JP	Z,?0005
?0044:
; 245.	                    {
; 246.	                        SetPenColor(oldDC_sav.PenColor);
?0058:
	LD	C,(IX-18)
	LD	B,(IX-17)
	LD	E,(IX-20)
	LD	D,(IX-19)
	CALL	LWRD SetPenColor
; 247.	                        SetBackgdColor(oldDC_sav.BackgdColor);  
	LD	HL,8
	ADD	HL,SP
; 248.	                        SetTextOutMode(0);      //设字体不透明 
	CALL	LWRD ?0065
; 249.	                        return RESULT_IGNORE;
	LD	HL,52
; 250.	                    }
	JR	?0052
?0045:
; 251.	                    break; 
?0046:
; 252.	                               
; 253.	                default:
; 254.	                    key = ap_handle_hotkey(key);
	CALL	LWRD ap_handle_hotkey
	LD	(IX-3),A
; 255.	                    if(key == RESULT_REDRAW) need_drawall = TRUE;
	CP	50
	JR	NZ,?0048
?0047:
	LD	(IX-1),1
; 256.	                    else 
	JP	LWRD ?0005
?0048:
; 257.	                    if(key != 0)
	XOR	A
	OR	(IX-3)
	JP	Z,?0005
?0050:
; 258.	                    {
; 259.	                        SetPenColor(oldDC_sav.PenColor);
	LD	C,(IX-18)
	LD	B,(IX-17)
	LD	E,(IX-20)
	LD	D,(IX-19)
	CALL	LWRD SetPenColor
; 260.	                        SetBackgdColor(oldDC_sav.BackgdColor); 
	LD	HL,8
	ADD	HL,SP
; 261.	                        SetTextOutMode(0);      //设字体不透明 
	CALL	LWRD ?0065
; 262.	                        return key;
	LD	L,(IX-3)
	LD	H,0
; 263.	                    }
?0051:
?0049:
?0022:
; 264.	            }// switch(key)    
; 265.	            
; 266.	        }//while(1)
; 267.	        SetPenColor(oldDC_sav.PenColor);
; 268.	        SetBackgdColor(oldDC_sav.BackgdColor);
; 269.	}
?0052:
	LD	SP,IX
	POP	IX
	POP	IY
	POP	BC
	JP	LWRD ?BANK_FAST_LEAVE_L08
?0065:
	LD	E,(HL)
	INC	HL
	LD	D,(HL)
	INC	HL
	LD	C,(HL)
	INC	HL
	LD	B,(HL)
	CALL	LWRD SetBackgdColor
	LD	E,0
	JP	LWRD SetTextOutMode
; 270.	
; 271.	#pragma function = default
	END

⌨️ 快捷键说明

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