📄 ui_menu.lst
字号:
\ 0305 30 DEFB 48
\ 0306 45 DEFB 69
\ 0307 46 DEFB 70
\ 0308 2904 DEFW ?0048
\ 030A 1803 DEFW ?0019
\ 030C 9303 DEFW ?0031
\ 030E 0C04 DEFW ?0044
\ 0310 2404 DEFW ?0060
\ 0312 1D04 DEFW ?0045
\ 0314 1803 DEFW ?0019
\ 0316 9303 DEFW ?0031
\ 0318 ?0019:
139 {
140 case AP_KEY_NEXT:
141 case AP_KEY_NEXT | AP_KEY_HOLD:
142 if(active < menu->total - 1)
\ 0318 FD4E00 LD C,(IY+0)
\ 031B FD4601 LD B,(IY+1)
\ 031E 0B DEC BC
\ 031F DD6EF2 LD L,(IX-14)
\ 0322 DD66F3 LD H,(IX-13)
\ 0325 F680 OR 128
\ 0327 ED42 SBC HL,BC
\ 0329 E22D03 JP PO,?0057
\ 032C AC XOR H
\ 032D ?0057:
\ 032D F26203 JP P,?0021
\ 0330 ?0020:
143 {
144 active++;
\ 0330 DD34F2 INC (IX-14)
\ 0333 2003 JR NZ,?0058
\ 0335 DD34F3 INC (IX-13)
\ 0338 ?0058:
145 if(active/MENU_NUM_ONE_PAGE==cur_group)
\ 0338 010600 LD BC,6
\ 033B DD5EF2 LD E,(IX-14)
\ 033E DD56F3 LD D,(IX-13)
\ 0341 CD0000 CALL LWRD ?SS_DIV_L02
\ 0344 DD6EF8 LD L,(IX-8)
\ 0347 DD66F9 LD H,(IX-7)
\ 034A A7 AND A
\ 034B ED52 SBC HL,DE
\ 034D 201A JR NZ,?0061
\ 034F ?0022:
146 {
147 old_active=active-1;
\ 034F DD6EF2 LD L,(IX-14)
\ 0352 DD66F3 LD H,(IX-13)
\ 0355 2B DEC HL
\ 0356 DD75FA LD (IX-6),L
\ 0359 DD74FB LD (IX-5),H
148 value_changed=TRUE;
\ 035C DD36FE01 LD (IX-2),1
149 }
150 else
\ 0360 180B JR ?0025
\ 0362 ?0023:
151 need_draw = TRUE;
\ 0362 ?0024:
152 }
153 else
\ 0362 ?0021:
154 {
155 active = 0;
156 need_draw = TRUE;
\ 0362 AF XOR A
\ 0363 DD77F2 LD (IX-14),A
\ 0366 DD77F3 LD (IX-13),A
\ 0369 ?0061:
\ 0369 DD36FC01 LD (IX-4),1
\ 036D ?0025:
157 }
158 if(callback != NULL)
\ 036D DD7E0A LD A,(IX+10)
\ 0370 DDB60B OR (IX+11)
\ 0373 DDB60C OR (IX+12)
\ 0376 2812 JR Z,?0027
\ 0378 ?0026:
159 callback(active);
\ 0378 DD5EF2 LD E,(IX-14)
\ 037B DD56F3 LD D,(IX-13)
\ 037E DD7E0C LD A,(IX+12)
\ 0381 DD6E0A LD L,(IX+10)
\ 0384 DD660B LD H,(IX+11)
\ 0387 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 038A ?0027:
\ 038A ?0029:
160 while(ap_get_message() != 0);
\ 038A CD0000 CALL LWRD ap_get_message
\ 038D B7 OR A
\ 038E CA6701 JP Z,?0003
\ 0391 ?0030:
161 break;
\ 0391 18F7 JR ?0027
\ 0393 ?0028:
\ 0393 ?0031:
162
163
164
165 case AP_KEY_PREV:
166 case AP_KEY_PREV | AP_KEY_HOLD:
167 if(active > 0)
\ 0393 DD4EF2 LD C,(IX-14)
\ 0396 DD46F3 LD B,(IX-13)
\ 0399 210000 LD HL,0
\ 039C F680 OR 128
\ 039E ED42 SBC HL,BC
\ 03A0 E2A403 JP PO,?0059
\ 03A3 AC XOR H
\ 03A4 ?0059:
\ 03A4 F2D503 JP P,?0033
\ 03A7 ?0032:
168 {
169 active--;
\ 03A7 69 LD L,C
\ 03A8 60 LD H,B
\ 03A9 2B DEC HL
\ 03AA DD75F2 LD (IX-14),L
\ 03AD DD74F3 LD (IX-13),H
170 if(active/MENU_NUM_ONE_PAGE==cur_group)
\ 03B0 010600 LD BC,6
\ 03B3 EB EX DE,HL
\ 03B4 CD0000 CALL LWRD ?SS_DIV_L02
\ 03B7 DD6EF8 LD L,(IX-8)
\ 03BA DD66F9 LD H,(IX-7)
\ 03BD A7 AND A
\ 03BE ED52 SBC HL,DE
\ 03C0 2020 JR NZ,?0062
\ 03C2 ?0034:
171 {
172 old_active=active+1;
\ 03C2 DD6EF2 LD L,(IX-14)
\ 03C5 DD66F3 LD H,(IX-13)
\ 03C8 23 INC HL
\ 03C9 DD75FA LD (IX-6),L
\ 03CC DD74FB LD (IX-5),H
173 value_changed=TRUE;
\ 03CF DD36FE01 LD (IX-2),1
174 }
175 else
\ 03D3 1811 JR ?0037
\ 03D5 ?0035:
176 need_draw = TRUE;
\ 03D5 ?0036:
177 }
178 else
\ 03D5 ?0033:
179 {
180 active = menu->total - 1;
\ 03D5 FD6E00 LD L,(IY+0)
\ 03D8 FD6601 LD H,(IY+1)
\ 03DB 2B DEC HL
\ 03DC DD75F2 LD (IX-14),L
\ 03DF DD74F3 LD (IX-13),H
181 need_draw = TRUE;
\ 03E2 ?0062:
\ 03E2 DD36FC01 LD (IX-4),1
\ 03E6 ?0037:
182 }
183 if(callback != NULL)
\ 03E6 DD7E0A LD A,(IX+10)
\ 03E9 DDB60B OR (IX+11)
\ 03EC DDB60C OR (IX+12)
\ 03EF 2812 JR Z,?0039
\ 03F1 ?0038:
184 callback(active);
\ 03F1 DD5EF2 LD E,(IX-14)
\ 03F4 DD56F3 LD D,(IX-13)
\ 03F7 DD7E0C LD A,(IX+12)
\ 03FA DD6E0A LD L,(IX+10)
\ 03FD DD660B LD H,(IX+11)
\ 0400 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0403 ?0039:
\ 0403 ?0041:
185 while(ap_get_message() != 0);
\ 0403 CD0000 CALL LWRD ap_get_message
\ 0406 B7 OR A
\ 0407 CA6701 JP Z,?0003
\ 040A ?0042:
186 break;
\ 040A 18F7 JR ?0039
\ 040C ?0040:
\ 040C ?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: //确认退出
\ 040C ?0044:
195 menu->active = active;
\ 040C DD6EF2 LD L,(IX-14)
\ 040F FD7502 LD (IY+2),L
\ 0412 DD66F3 LD H,(IX-13)
\ 0415 FD7403 LD (IY+3),H
196 // SetPenColor(oldDC_sav.PenColor);
197 // SetBackgdColor(oldDC_sav.BackgdColor);
198 // SetTextOutMode(0); //设字体不透明
199 return 0;
\ 0418 210000 LD HL,0
200
201 case AP_MSG_WAIT_TIMEOUT:
\ 041B 1827 JR ?0054
\ 041D ?0045:
202 if(ui_auto_select)
\ 041D 3A0000 LD A,(ui_auto_select)
\ 0420 B7 OR A
\ 0421 CA6701 JP Z,?0003
\ 0424 ?0046:
203 {
204 //SetPenColor(oldDC_sav.PenColor);
205 // SetBackgdColor(oldDC_sav.BackgdColor);
206 // SetTextOutMode(0); //设字体不透明
207 return RESULT_IGNORE;
\ 0424 ?0060:
\ 0424 213400 LD HL,52
208 }
\ 0427 181B JR ?0054
\ 0429 ?0047:
209 break;
\ 0429 ?0048:
210
211 default:
212 key = ap_handle_hotkey(key);
\ 0429 CD0000 CALL LWRD ap_handle_hotkey
\ 042C DD77FD LD (IX-3),A
213 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 042F FE32 CP 50
\ 0431 2007 JR NZ,?0050
\ 0433 ?0049:
\ 0433 DD36FC01 LD (IX-4),1
214 else
\ 0437 C36701 JP LWRD ?0003
\ 043A ?0050:
215 if(key != 0)
\ 043A AF XOR A
\ 043B DDB6FD OR (IX-3)
\ 043E CA6701 JP Z,?0003
\ 0441 ?0052:
216 {
217 // SetPenColor(oldDC_sav.PenColor);
218 // SetBackgdColor(oldDC_sav.BackgdColor);
219 // SetTextOutMode(0); //设字体不透明
220 return key;
\ 0441 6F LD L,A
\ 0442 2600 LD H,0
221 }
\ 0444 ?0054:
\ 0444 DDF9 LD SP,IX
\ 0446 DDE1 POP IX
\ 0448 FDE1 POP IY
\ 044A C1 POP BC
\ 044B C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 044E ?0053:
\ 044E ?0051:
\ 044E ?0018:
222 }// switch(key)
223
224 }//while(1)
225 // SetPenColor(oldDC_sav.PenColor);
226 // SetBackgdColor(oldDC_sav.BackgdColor);
227 }
228
\ 0000 RSEG CONST
\ 0000 menu_pos_menu:
\ 0000 77 DEFB 'w'
\ 0001 62 DEFB 'b'
\ 0002 4D DEFB 'M'
\ 0003 38 DEFB '8'
\ 0004 23 DEFB '#'
\ 0005 0E DEFB 14
\ 0006 menu_bck_pic:
\ 0006 6A00 DEFW 106
\ 0008 6900 DEFW 105
\ 000A 6800 DEFW 104
\ 000C 6700 DEFW 103
\ 000E 6600 DEFW 102
\ 0010 6500 DEFW 101
\ 0012 END
Errors: none
Warnings: none
Code size: 1102
Constant size: 18
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -