📄 ui_menu.lst
字号:
140 case AP_KEY_NEXT | AP_KEY_HOLD:
141 if(active < menu->total - 1)
\ 02A6 FD4E00 LD C,(IY+0)
\ 02A9 FD4601 LD B,(IY+1)
\ 02AC 0B DEC BC
\ 02AD DD6EF2 LD L,(IX-14)
\ 02B0 DD66F3 LD H,(IX-13)
\ 02B3 F680 OR 128
\ 02B5 ED42 SBC HL,BC
\ 02B7 E2BB02 JP PO,?0057
\ 02BA AC XOR H
\ 02BB ?0057:
\ 02BB F2F002 JP P,?0021
\ 02BE ?0020:
142 {
143 active++;
\ 02BE DD34F2 INC (IX-14)
\ 02C1 2003 JR NZ,?0058
\ 02C3 DD34F3 INC (IX-13)
\ 02C6 ?0058:
144 if(active/MENU_NUM_ONE_PAGE==cur_group)
\ 02C6 010600 LD BC,6
\ 02C9 DD5EF2 LD E,(IX-14)
\ 02CC DD56F3 LD D,(IX-13)
\ 02CF CD0000 CALL LWRD ?SS_DIV_L02
\ 02D2 DD6EF8 LD L,(IX-8)
\ 02D5 DD66F9 LD H,(IX-7)
\ 02D8 A7 AND A
\ 02D9 ED52 SBC HL,DE
\ 02DB 201A JR NZ,?0061
\ 02DD ?0022:
145 {
146 old_active=active-1;
\ 02DD DD6EF2 LD L,(IX-14)
\ 02E0 DD66F3 LD H,(IX-13)
\ 02E3 2B DEC HL
\ 02E4 DD75FA LD (IX-6),L
\ 02E7 DD74FB LD (IX-5),H
147 value_changed=TRUE;
\ 02EA DD36FE01 LD (IX-2),1
148 }
149 else
\ 02EE 180B JR ?0025
\ 02F0 ?0023:
150 need_draw = TRUE;
\ 02F0 ?0024:
151 }
152 else
\ 02F0 ?0021:
153 {
154 active = 0;
155 need_draw = TRUE;
\ 02F0 AF XOR A
\ 02F1 DD77F2 LD (IX-14),A
\ 02F4 DD77F3 LD (IX-13),A
\ 02F7 ?0061:
\ 02F7 DD36FC01 LD (IX-4),1
\ 02FB ?0025:
156 }
157 if(callback != NULL)
\ 02FB DD7E0A LD A,(IX+10)
\ 02FE DDB60B OR (IX+11)
\ 0301 DDB60C OR (IX+12)
\ 0304 2812 JR Z,?0027
\ 0306 ?0026:
158 callback(active);
\ 0306 DD5EF2 LD E,(IX-14)
\ 0309 DD56F3 LD D,(IX-13)
\ 030C DD7E0C LD A,(IX+12)
\ 030F DD6E0A LD L,(IX+10)
\ 0312 DD660B LD H,(IX+11)
\ 0315 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0318 ?0027:
\ 0318 ?0029:
159 while(ap_get_message() != 0);
\ 0318 CD0000 CALL LWRD ap_get_message
\ 031B B7 OR A
\ 031C CA2901 JP Z,?0003
\ 031F ?0030:
160 break;
\ 031F 18F7 JR ?0027
\ 0321 ?0028:
\ 0321 ?0031:
161
162
163
164 case AP_KEY_PREV:
165 case AP_KEY_PREV | AP_KEY_HOLD:
166 if(active > 0)
\ 0321 DD4EF2 LD C,(IX-14)
\ 0324 DD46F3 LD B,(IX-13)
\ 0327 210000 LD HL,0
\ 032A F680 OR 128
\ 032C ED42 SBC HL,BC
\ 032E E23203 JP PO,?0059
\ 0331 AC XOR H
\ 0332 ?0059:
\ 0332 F26303 JP P,?0033
\ 0335 ?0032:
167 {
168 active--;
\ 0335 69 LD L,C
\ 0336 60 LD H,B
\ 0337 2B DEC HL
\ 0338 DD75F2 LD (IX-14),L
\ 033B DD74F3 LD (IX-13),H
169 if(active/MENU_NUM_ONE_PAGE==cur_group)
\ 033E 010600 LD BC,6
\ 0341 EB EX DE,HL
\ 0342 CD0000 CALL LWRD ?SS_DIV_L02
\ 0345 DD6EF8 LD L,(IX-8)
\ 0348 DD66F9 LD H,(IX-7)
\ 034B A7 AND A
\ 034C ED52 SBC HL,DE
\ 034E 2020 JR NZ,?0062
\ 0350 ?0034:
170 {
171 old_active=active+1;
\ 0350 DD6EF2 LD L,(IX-14)
\ 0353 DD66F3 LD H,(IX-13)
\ 0356 23 INC HL
\ 0357 DD75FA LD (IX-6),L
\ 035A DD74FB LD (IX-5),H
172 value_changed=TRUE;
\ 035D DD36FE01 LD (IX-2),1
173 }
174 else
\ 0361 1811 JR ?0037
\ 0363 ?0035:
175 need_draw = TRUE;
\ 0363 ?0036:
176 }
177 else
\ 0363 ?0033:
178 {
179 active = menu->total - 1;
\ 0363 FD6E00 LD L,(IY+0)
\ 0366 FD6601 LD H,(IY+1)
\ 0369 2B DEC HL
\ 036A DD75F2 LD (IX-14),L
\ 036D DD74F3 LD (IX-13),H
180 need_draw = TRUE;
\ 0370 ?0062:
\ 0370 DD36FC01 LD (IX-4),1
\ 0374 ?0037:
181 }
182 if(callback != NULL)
\ 0374 DD7E0A LD A,(IX+10)
\ 0377 DDB60B OR (IX+11)
\ 037A DDB60C OR (IX+12)
\ 037D 2812 JR Z,?0039
\ 037F ?0038:
183 callback(active);
\ 037F DD5EF2 LD E,(IX-14)
\ 0382 DD56F3 LD D,(IX-13)
\ 0385 DD7E0C LD A,(IX+12)
\ 0388 DD6E0A LD L,(IX+10)
\ 038B DD660B LD H,(IX+11)
\ 038E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0391 ?0039:
\ 0391 ?0041:
184 while(ap_get_message() != 0);
\ 0391 CD0000 CALL LWRD ap_get_message
\ 0394 B7 OR A
\ 0395 CA2901 JP Z,?0003
\ 0398 ?0042:
185 break;
\ 0398 18F7 JR ?0039
\ 039A ?0040:
\ 039A ?0043:
186
187 case AP_KEY_PLAY | AP_KEY_UP: //取消退出
188 // SetPenColor(oldDC_sav.PenColor);
189 //SetBackgdColor(oldDC_sav.BackgdColor);
190 //SetTextOutMode(0); //设字体不透明
191 return RESULT_IGNORE;
192
193 case AP_KEY_MODE | AP_KEY_UP: //确认退出
\ 039A ?0044:
194 menu->active = active;
\ 039A DD6EF2 LD L,(IX-14)
\ 039D FD7502 LD (IY+2),L
\ 03A0 DD66F3 LD H,(IX-13)
\ 03A3 FD7403 LD (IY+3),H
195 // SetPenColor(oldDC_sav.PenColor);
196 // SetBackgdColor(oldDC_sav.BackgdColor);
197 // SetTextOutMode(0); //设字体不透明
198 return 0;
\ 03A6 210000 LD HL,0
199
200 case AP_MSG_WAIT_TIMEOUT:
\ 03A9 1827 JR ?0054
\ 03AB ?0045:
201 if(ui_auto_select)
\ 03AB 3A0000 LD A,(ui_auto_select)
\ 03AE B7 OR A
\ 03AF CA2901 JP Z,?0003
\ 03B2 ?0046:
202 {
203 //SetPenColor(oldDC_sav.PenColor);
204 // SetBackgdColor(oldDC_sav.BackgdColor);
205 // SetTextOutMode(0); //设字体不透明
206 return RESULT_IGNORE;
\ 03B2 ?0060:
\ 03B2 213400 LD HL,52
207 }
\ 03B5 181B JR ?0054
\ 03B7 ?0047:
208 break;
\ 03B7 ?0048:
209
210 default:
211 key = ap_handle_hotkey(key);
\ 03B7 CD0000 CALL LWRD ap_handle_hotkey
\ 03BA DD77FD LD (IX-3),A
212 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 03BD FE32 CP 50
\ 03BF 2007 JR NZ,?0050
\ 03C1 ?0049:
\ 03C1 DD36FC01 LD (IX-4),1
213 else
\ 03C5 C32901 JP LWRD ?0003
\ 03C8 ?0050:
214 if(key != 0)
\ 03C8 AF XOR A
\ 03C9 DDB6FD OR (IX-3)
\ 03CC CA2901 JP Z,?0003
\ 03CF ?0052:
215 {
216 // SetPenColor(oldDC_sav.PenColor);
217 // SetBackgdColor(oldDC_sav.BackgdColor);
218 // SetTextOutMode(0); //设字体不透明
219 return key;
\ 03CF 6F LD L,A
\ 03D0 2600 LD H,0
220 }
\ 03D2 ?0054:
\ 03D2 DDF9 LD SP,IX
\ 03D4 DDE1 POP IX
\ 03D6 FDE1 POP IY
\ 03D8 C1 POP BC
\ 03D9 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 03DC ?0053:
\ 03DC ?0051:
\ 03DC ?0018:
221 }// switch(key)
222
223 }//while(1)
224 // SetPenColor(oldDC_sav.PenColor);
225 // SetBackgdColor(oldDC_sav.BackgdColor);
226 }
227
\ 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 B600 DEFW 182
\ 0008 B600 DEFW 182
\ 000A B600 DEFW 182
\ 000C B600 DEFW 182
\ 000E B600 DEFW 182
\ 0010 B600 DEFW 182
\ 0012 END
Errors: none
Warnings: none
Code size: 988
Constant size: 18
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -