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

📄 ui_menu.s01

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