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

📄 ui_pop_up_list.s01

📁 MP3 整个 SDK
💻 S01
📖 第 1 页 / 共 2 页
字号:
	CALL	LWRD ?0067
	POP	AF
; 112.	                        ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_list[i]);
	LD	HL,menu_pos_list
	LD	C,(IX-22)
	LD	B,(IX-21)
	ADD	HL,BC
	LD	E,(HL)
	PUSH	DE
	LD	C,10
	LD	DE,108
	CALL	LWRD ?0067
	POP	AF
; 113.	                    }
; 114.	
; 115.	
; 116.	                     SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0069
; 117.	                     ResShowMultiString(list->strid[active], list->string_id,
; 118.	                     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	L,(IY+0)
	LD	H,(IY+1)
	PUSH	HL
	LD	L,(IX-24)
	LD	H,(IX-23)
	ADD	HL,HL
	EX	DE,HL
	POP	HL
	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
; 119.	                     SetPenColor(Color_WHITE_def);
	CALL	LWRD ?0069
; 120.	
; 121.	                }
; 122.	                else
	JR	?0021
?0020:
; 123.	                {
; 124.	                    ResShowPic(MENUARR1+i, menu_ptr_x_def, menu_pos_list[i]);
	LD	E,(HL)
	PUSH	DE
	LD	C,10
	LD	HL,94
	LD	E,(IX-22)
	LD	D,B
	ADD	HL,DE
	EX	DE,HL
	CALL	LWRD ?0067
	POP	AF
; 125.	                    ResShowMultiString(list->strid[n+i], list->string_id,
; 126.	                    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,(IY+0)
	LD	H,(IY+1)
	PUSH	HL
	LD	L,(IX-22)
	LD	H,B
	LD	E,(IX-12)
	LD	D,(IX-11)
	ADD	HL,DE
	ADD	HL,HL
	EX	DE,HL
	POP	HL
	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
?0021:
	INC	(IX-22)
	JR	NZ,?0061
	INC	(IX-21)
?0061:
	JP	LWRD ?0014
?0013:
; 127.	                }
; 128.	            }
; 129.	
; 130.	            need_draw = FALSE;
	LD	(IX-4),0
?0010:
; 131.	        }//need draw
; 132.	        if(value_changed)
	XOR	A
	OR	(IX-2)
	JR	Z,?0023
?0022:
; 133.	        {
; 134.	                show_active_list1(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_list1
	LD	HL,LWRD show_active_list1
	CALL	LWRD ?BANK_CALL_DIRECT_L08
	POP	HL
; 135.	                value_changed=FALSE;
	LD	(IX-2),0
?0023:
; 136.	        }
; 137.	        key = ap_get_message();
	CALL	LWRD ap_get_message
; 138.	        //handle message
; 139.	        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	?0054
	DEFW	?0025
	DEFW	?0037
	DEFW	?0050
	DEFW	?0063
	DEFW	?0051
	DEFW	?0025
	DEFW	?0037
?0025:
; 140.	            {
; 141.	                case AP_KEY_NEXT:
; 142.	                case AP_KEY_NEXT | AP_KEY_HOLD:
; 143.	                    if(active < list->total - 1)
	LD	C,(IY+2)
	LD	B,(IY+3)
	DEC	BC
	LD	L,(IX-24)
	LD	H,(IX-23)
	CALL	LWRD ?SS_CMP_L02
	JR	NC,?0027
?0026:
; 144.	                    {
; 145.	                    active++;
	INC	(IX-24)
	JR	NZ,?0062
	INC	(IX-23)
?0062:
; 146.	                    if(active/LIST_NUM_ONE_PAGE==cur_group)
	LD	BC,6
	LD	E,(IX-24)
	LD	D,(IX-23)
	CALL	LWRD ?0071
	JR	NZ,?0064
?0028:
; 147.	                    {
; 148.	                            old_active=active-1;
	LD	L,(IX-24)
	LD	H,(IX-23)
	DEC	HL
	LD	(IX-8),L
	LD	(IX-7),H
; 149.	                                value_changed=TRUE;
	LD	(IX-2),1
; 150.	                        }
; 151.	                        else
	JR	?0031
?0029:
; 152.	                            need_draw = TRUE;
?0030:
; 153.	                    }
; 154.	                    else
?0027:
; 155.	                    {
; 156.	                        active = 0;
; 157.	                        need_draw = TRUE;
	XOR	A
	LD	(IX-24),A
	LD	(IX-23),A
?0064:
	LD	(IX-4),1
?0031:
; 158.	                    }
; 159.	                    if(callback != NULL)
	LD	A,(IX+10)
	OR	(IX+11)
	OR	(IX+12)
	JR	Z,?0033
?0032:
; 160.	                        callback(active);
	CALL	LWRD ?0073
?0033:
?0035:
; 161.	              while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0033
?0036:
; 162.	                    break;
?0034:
	JP	LWRD ?0005
; 163.	
; 164.	                break;
?0037:
; 165.	
; 166.	                case AP_KEY_PREV:
; 167.	                case AP_KEY_PREV | AP_KEY_HOLD:
; 168.	                    if(active > 0)
	LD	C,(IX-24)
	LD	B,(IX-23)
	LD	HL,0
	CALL	LWRD ?SS_CMP_L02
	JR	NC,?0039
?0038:
; 169.	                       {
; 170.	                        active--;
	LD	L,C
	LD	H,B
	DEC	HL
	LD	(IX-24),L
	LD	(IX-23),H
; 171.	                        if(active/LIST_NUM_ONE_PAGE==cur_group)
	LD	BC,6
	EX	DE,HL
	CALL	LWRD ?0071
	JR	NZ,?0065
?0040:
; 172.	                        {
; 173.	                                old_active=active+1;
	LD	L,(IX-24)
	LD	H,(IX-23)
	INC	HL
	LD	(IX-8),L
	LD	(IX-7),H
; 174.	                                    value_changed=TRUE;
	LD	(IX-2),1
; 175.	                            }
; 176.	                            else
	JR	?0043
?0041:
; 177.	                                    need_draw = TRUE;
?0042:
; 178.	                        }
; 179.	                        else
?0039:
; 180.	                        {
; 181.	                              active = list->total - 1;
	LD	L,(IY+2)
	LD	H,(IY+3)
	DEC	HL
	LD	(IX-24),L
	LD	(IX-23),H
; 182.	                              need_draw = TRUE;
?0065:
	LD	(IX-4),1
?0043:
; 183.	                        }
; 184.	                        if(callback != NULL)
	LD	A,(IX+10)
	OR	(IX+11)
	OR	(IX+12)
	JR	Z,?0045
?0044:
; 185.	                            callback(active);
	CALL	LWRD ?0073
?0045:
?0047:
; 186.	              while(ap_get_message() != 0);
	CALL	LWRD ap_get_message
	OR	A
	JR	NZ,?0045
?0048:
; 187.	                    break;
?0046:
	JP	LWRD ?0005
?0049:
; 188.	
; 189.	
; 190.	
; 191.	                case AP_KEY_PLAY | AP_KEY_UP:    //取消退出
; 192.	                    SetPenColor(oldDC_sav.PenColor);
; 193.	                    SetBackgdColor(oldDC_sav.BackgdColor);
; 194.	                    SetTextOutMode(0);      //设字体不透明
; 195.	                    return RESULT_IGNORE;
; 196.	
; 197.	                case AP_KEY_MODE | AP_KEY_UP:    //确认退出
?0050:
; 198.	                    list->active = active;
	LD	L,(IX-24)
	LD	(IY+4),L
	LD	H,(IX-23)
	LD	(IY+5),H
; 199.	                    SetPenColor(oldDC_sav.PenColor);
	LD	C,(IX-18)
	LD	B,(IX-17)
	LD	E,(IX-20)
	LD	D,(IX-19)
	CALL	LWRD SetPenColor
; 200.	                    SetBackgdColor(oldDC_sav.BackgdColor);
	LD	HL,10
	ADD	HL,SP
; 201.	                      SetTextOutMode(0);      //设字体不透明
	CALL	LWRD ?0070
; 202.	                    return 0;
	LD	HL,0
; 203.	
; 204.	                case AP_MSG_WAIT_TIMEOUT:
	JR	?0060
?0051:
; 205.	                    if(ui_auto_select)
	LD	A,(ui_auto_select)
	OR	A
	JR	Z,?0059
?0052:
; 206.	                    {
; 207.	                        SetPenColor(oldDC_sav.PenColor);
?0063:
	LD	C,(IX-18)
	LD	B,(IX-17)
	LD	E,(IX-20)
	LD	D,(IX-19)
	CALL	LWRD SetPenColor
; 208.	                        SetBackgdColor(oldDC_sav.BackgdColor);
	LD	HL,10
	ADD	HL,SP
; 209.	                          SetTextOutMode(0);      //设字体不透明
	CALL	LWRD ?0070
; 210.	                        return RESULT_IGNORE;
	LD	HL,52
; 211.	                    }
	JR	?0060
?0053:
; 212.	                    break;
?0054:
; 213.	
; 214.	                default:
; 215.	                    key = ap_handle_hotkey(key);
	CALL	LWRD ap_handle_hotkey
	LD	(IX-3),A
; 216.	                    if(key == RESULT_REDRAW) need_drawall = TRUE;
	CP	50
	JR	NZ,?0056
?0055:
	LD	(IX-1),1
; 217.	                    else
	JR	?0059
?0056:
; 218.	                    if(key != 0)
	XOR	A
	OR	(IX-3)
	JR	Z,?0059
?0058:
; 219.	                    {
; 220.	                        SetPenColor(oldDC_sav.PenColor);
	LD	C,(IX-18)
	LD	B,(IX-17)
	LD	E,(IX-20)
	LD	D,(IX-19)
	CALL	LWRD SetPenColor
; 221.	                        SetBackgdColor(oldDC_sav.BackgdColor);
	LD	HL,10
	ADD	HL,SP
; 222.	                          SetTextOutMode(0);      //设字体不透明
	CALL	LWRD ?0070
; 223.	                         return key;
	LD	L,(IX-3)
	LD	H,0
; 224.	                    }
	JR	?0060
?0059:
?0057:
?0024:
	JP	LWRD ?0005
; 225.	            }// switch(key)
; 226.	
; 227.	        }//while(1)
; 228.	        SetPenColor(oldDC_sav.PenColor);
; 229.	        SetBackgdColor(oldDC_sav.BackgdColor);
; 230.	}
?0060:
	POP	IY
	JP	LWRD ?BANK_LEAVE_DIRECT_L08
?0070:
	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
?0071:
	CALL	LWRD ?SS_DIV_L02
	LD	L,(IX-10)
	LD	H,(IX-9)
	AND	A
	SBC	HL,DE
	RET
?0073:
	LD	E,(IX-24)
	LD	D,(IX-23)
?0072:
	LD	A,(IX+12)
	LD	L,(IX+10)
	LD	H,(IX+11)
	JP	LWRD ?BANK_CALL_DIRECT_L08
	RSEG	CONST
menu_pos_list:
	DEFB	'w'
	DEFB	'b'
	DEFB	'M'
	DEFB	'8'
	DEFB	'#'
	DEFB	14
menulist_bck_pic:
	DEFW	106
	DEFW	105
	DEFW	104
	DEFW	103
	DEFW	102
	DEFW	101
	END

⌨️ 快捷键说明

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