📄 ui_menu.lst
字号:
\ 0319 9C03 DEFW ?0031
\ 031B ?0019:
138 {
139 case AP_KEY_NEXT:
140 case AP_KEY_NEXT | AP_KEY_HOLD:
141 if(active < menu->total - 1)
\ 031B FD4E00 LD C,(IY+0)
\ 031E FD4601 LD B,(IY+1)
\ 0321 0B DEC BC
\ 0322 DD6EF2 LD L,(IX-14)
\ 0325 DD66F3 LD H,(IX-13)
\ 0328 F680 OR 128
\ 032A ED42 SBC HL,BC
\ 032C E23003 JP PO,?0057
\ 032F AC XOR H
\ 0330 ?0057:
\ 0330 F26B03 JP P,?0021
\ 0333 ?0020:
142 {
143 active++;
\ 0333 DD34F2 INC (IX-14)
\ 0336 2003 JR NZ,?0058
\ 0338 DD34F3 INC (IX-13)
\ 033B ?0058:
144 if(active/MENU_NUM_ONE_PAGE==cur_group)
\ 033B 010600 LD BC,6
\ 033E DD5EF2 LD E,(IX-14)
\ 0341 DD56F3 LD D,(IX-13)
\ 0344 CD0000 CALL LWRD ?SS_DIV_L02
\ 0347 DD6EF8 LD L,(IX-8)
\ 034A DD66F9 LD H,(IX-7)
\ 034D A7 AND A
\ 034E ED52 SBC HL,DE
\ 0350 2013 JR NZ,?0023
\ 0352 ?0022:
145 {
146 old_active=active-1;
\ 0352 DD6EF2 LD L,(IX-14)
\ 0355 DD66F3 LD H,(IX-13)
\ 0358 2B DEC HL
\ 0359 DD75FA LD (IX-6),L
\ 035C DD74FB LD (IX-5),H
147 value_changed=TRUE;
\ 035F DD36FE01 LD (IX-2),1
148 }
149 else
\ 0363 1811 JR ?0025
\ 0365 ?0023:
150 need_draw = TRUE;
\ 0365 DD36FC01 LD (IX-4),1
\ 0369 ?0024:
151 }
152 else
\ 0369 180B JR ?0025
\ 036B ?0021:
153 {
154 active = 0;
\ 036B AF XOR A
\ 036C DD77F2 LD (IX-14),A
\ 036F DD77F3 LD (IX-13),A
155 need_draw = TRUE;
\ 0372 DD36FC01 LD (IX-4),1
\ 0376 ?0025:
156 }
157 if(callback != NULL)
\ 0376 DD7E0A LD A,(IX+10)
\ 0379 DDB60B OR (IX+11)
\ 037C DDB60C OR (IX+12)
\ 037F 2812 JR Z,?0027
\ 0381 ?0026:
158 callback(active);
\ 0381 DD5EF2 LD E,(IX-14)
\ 0384 DD56F3 LD D,(IX-13)
\ 0387 DD7E0C LD A,(IX+12)
\ 038A DD6E0A LD L,(IX+10)
\ 038D DD660B LD H,(IX+11)
\ 0390 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0393 ?0027:
\ 0393 ?0029:
159 while(ap_get_message() != 0);
\ 0393 CD0000 CALL LWRD ap_get_message
\ 0396 B7 OR A
\ 0397 CA5801 JP Z,?0003
\ 039A ?0030:
160 break;
\ 039A 18F7 JR ?0027
\ 039C ?0028:
\ 039C ?0031:
161
162
163
164 case AP_KEY_PREV:
165 case AP_KEY_PREV | AP_KEY_HOLD:
166 if(active > 0)
\ 039C DD4EF2 LD C,(IX-14)
\ 039F DD46F3 LD B,(IX-13)
\ 03A2 210000 LD HL,0
\ 03A5 F680 OR 128
\ 03A7 ED42 SBC HL,BC
\ 03A9 E2AD03 JP PO,?0059
\ 03AC AC XOR H
\ 03AD ?0059:
\ 03AD F2ED03 JP P,?0033
\ 03B0 ?0032:
167 {
168 active--;
\ 03B0 DD6EF2 LD L,(IX-14)
\ 03B3 DD66F3 LD H,(IX-13)
\ 03B6 2B DEC HL
\ 03B7 DD75F2 LD (IX-14),L
\ 03BA DD74F3 LD (IX-13),H
169 if(active/MENU_NUM_ONE_PAGE==cur_group)
\ 03BD 010600 LD BC,6
\ 03C0 DD5EF2 LD E,(IX-14)
\ 03C3 DD56F3 LD D,(IX-13)
\ 03C6 CD0000 CALL LWRD ?SS_DIV_L02
\ 03C9 DD6EF8 LD L,(IX-8)
\ 03CC DD66F9 LD H,(IX-7)
\ 03CF A7 AND A
\ 03D0 ED52 SBC HL,DE
\ 03D2 2013 JR NZ,?0035
\ 03D4 ?0034:
170 {
171 old_active=active+1;
\ 03D4 DD6EF2 LD L,(IX-14)
\ 03D7 DD66F3 LD H,(IX-13)
\ 03DA 23 INC HL
\ 03DB DD75FA LD (IX-6),L
\ 03DE DD74FB LD (IX-5),H
172 value_changed=TRUE;
\ 03E1 DD36FE01 LD (IX-2),1
173 }
174 else
\ 03E5 1817 JR ?0037
\ 03E7 ?0035:
175 need_draw = TRUE;
\ 03E7 DD36FC01 LD (IX-4),1
\ 03EB ?0036:
176 }
177 else
\ 03EB 1811 JR ?0037
\ 03ED ?0033:
178 {
179 active = menu->total - 1;
\ 03ED FD6E00 LD L,(IY+0)
\ 03F0 FD6601 LD H,(IY+1)
\ 03F3 2B DEC HL
\ 03F4 DD75F2 LD (IX-14),L
\ 03F7 DD74F3 LD (IX-13),H
180 need_draw = TRUE;
\ 03FA DD36FC01 LD (IX-4),1
\ 03FE ?0037:
181 }
182 if(callback != NULL)
\ 03FE DD7E0A LD A,(IX+10)
\ 0401 DDB60B OR (IX+11)
\ 0404 DDB60C OR (IX+12)
\ 0407 2812 JR Z,?0039
\ 0409 ?0038:
183 callback(active);
\ 0409 DD5EF2 LD E,(IX-14)
\ 040C DD56F3 LD D,(IX-13)
\ 040F DD7E0C LD A,(IX+12)
\ 0412 DD6E0A LD L,(IX+10)
\ 0415 DD660B LD H,(IX+11)
\ 0418 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 041B ?0039:
\ 041B ?0041:
184 while(ap_get_message() != 0);
\ 041B CD0000 CALL LWRD ap_get_message
\ 041E B7 OR A
\ 041F CA5801 JP Z,?0003
\ 0422 ?0042:
185 break;
\ 0422 18F7 JR ?0039
\ 0424 ?0040:
\ 0424 ?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;
\ 0424 213400 LD HL,52
192
193 case AP_KEY_MODE | AP_KEY_UP: //确认退出
\ 0427 183D JR ?0054
\ 0429 ?0044:
194 menu->active = active;
\ 0429 DD6EF2 LD L,(IX-14)
\ 042C DD66F3 LD H,(IX-13)
\ 042F FD7502 LD (IY+2),L
\ 0432 FD7403 LD (IY+3),H
195 // SetPenColor(oldDC_sav.PenColor);
196 // SetBackgdColor(oldDC_sav.BackgdColor);
197 // SetTextOutMode(0); //设字体不透明
198 return 0;
\ 0435 210000 LD HL,0
199
200 case AP_MSG_WAIT_TIMEOUT:
\ 0438 182C JR ?0054
\ 043A ?0045:
201 if(ui_auto_select)
\ 043A 3A0000 LD A,(ui_auto_select)
\ 043D B7 OR A
\ 043E CA5801 JP Z,?0003
\ 0441 ?0046:
202 {
203 //SetPenColor(oldDC_sav.PenColor);
204 // SetBackgdColor(oldDC_sav.BackgdColor);
205 // SetTextOutMode(0); //设字体不透明
206 return RESULT_IGNORE;
\ 0441 213400 LD HL,52
207 }
\ 0444 1820 JR ?0054
\ 0446 ?0047:
208 break;
\ 0446 ?0048:
209
210 default:
211 key = ap_handle_hotkey(key);
\ 0446 DD5EFD LD E,(IX-3)
\ 0449 CD0000 CALL LWRD ap_handle_hotkey
\ 044C DD77FD LD (IX-3),A
212 if(key == RESULT_REDRAW) need_draw = TRUE;
\ 044F FE32 CP 50
\ 0451 2007 JR NZ,?0050
\ 0453 ?0049:
\ 0453 DD36FC01 LD (IX-4),1
213 else
\ 0457 C35801 JP LWRD ?0003
\ 045A ?0050:
214 if(key != 0)
\ 045A AF XOR A
\ 045B DDB6FD OR (IX-3)
\ 045E CA5801 JP Z,?0003
\ 0461 ?0052:
215 {
216 // SetPenColor(oldDC_sav.PenColor);
217 // SetBackgdColor(oldDC_sav.BackgdColor);
218 // SetTextOutMode(0); //设字体不透明
219 return key;
\ 0461 DD6EFD LD L,(IX-3)
\ 0464 2600 LD H,0
220 }
\ 0466 ?0054:
\ 0466 DDF9 LD SP,IX
\ 0468 DDE1 POP IX
\ 046A FDE1 POP IY
\ 046C C1 POP BC
\ 046D C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0470 ?0053:
\ 0470 ?0051:
\ 0470 ?0018:
221 }// switch(key)
222
223 }//while(1)
224 // SetPenColor(oldDC_sav.PenColor);
225 // SetBackgdColor(oldDC_sav.BackgdColor);
226 }
\ 0470 C35801 JP LWRD ?0003
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: 1139
Constant size: 18
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -