📄 ui_pop_up_list.lst
字号:
\ 02CF 39 ADD HL,SP
\ 02D0 EB EX DE,HL
\ 02D1 CD0000 CALL LWRD TextOutRect
201 ResShowMultiString(list->strid[old_active],list->string_id, 3, menu_pos_list[tmp]);
\ 02D4 210000 LD HL,menu_pos_list
\ 02D7 DD4EE2 LD C,(IX-30)
\ 02DA DD46E3 LD B,(IX-29)
\ 02DD 09 ADD HL,BC
\ 02DE 5E LD E,(HL)
\ 02DF D5 PUSH DE
\ 02E0 1E03 LD E,3
\ 02E2 D5 PUSH DE
\ 02E3 FD4E08 LD C,(IY+8)
\ 02E6 FD6E00 LD L,(IY+0)
\ 02E9 FD6601 LD H,(IY+1)
\ 02EC E5 PUSH HL
\ 02ED DD6EF2 LD L,(IX-14)
\ 02F0 DD66F3 LD H,(IX-13)
\ 02F3 29 ADD HL,HL
\ 02F4 EB EX DE,HL
\ 02F5 E1 POP HL
\ 02F6 19 ADD HL,DE
\ 02F7 5E LD E,(HL)
\ 02F8 23 INC HL
\ 02F9 56 LD D,(HL)
\ 02FA 3E00 LD A,BYTE3 ResShowMultiString
\ 02FC 210000 LD HL,LWRD ResShowMultiString
\ 02FF CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0302 F1 POP AF
\ 0303 F1 POP AF
202 TextOutRect(&tregion ,0);
\ 0304 0E00 LD C,0
\ 0306 210400 LD HL,4
\ 0309 39 ADD HL,SP
\ 030A EB EX DE,HL
\ 030B CD0000 CALL LWRD TextOutRect
203
204 ResShowPic(MENUARR, constX, menu_pos_list[tmp]-1);
\ 030E 210000 LD HL,menu_pos_list
\ 0311 DD4EE2 LD C,(IX-30)
\ 0314 DD46E3 LD B,(IX-29)
\ 0317 09 ADD HL,BC
\ 0318 7E LD A,(HL)
\ 0319 C6FF ADD A,255
\ 031B 5F LD E,A
\ 031C D5 PUSH DE
\ 031D DD4EFC LD C,(IX-4)
\ 0320 11B200 LD DE,178
\ 0323 CDB305 CALL LWRD ?0095
\ 0326 F1 POP AF
205
206 tmp = active%6;
\ 0327 010600 LD BC,6
\ 032A DD5EE0 LD E,(IX-32)
\ 032D DD56E1 LD D,(IX-31)
\ 0330 CD0000 CALL LWRD ?SS_MOD_L02
\ 0333 DD73E2 LD (IX-30),E
\ 0336 DD72E3 LD (IX-29),D
207 ResShowPic(resID, 0, menu_pos_list[tmp]-1);
\ 0339 210000 LD HL,menu_pos_list
\ 033C 19 ADD HL,DE
\ 033D 7E LD A,(HL)
\ 033E C6FF ADD A,255
\ 0340 4F LD C,A
\ 0341 C5 PUSH BC
\ 0342 48 LD C,B
\ 0343 CDAD05 CALL LWRD ?0096
\ 0346 F1 POP AF
208 ResShowPic(MENUARR1, constX, menu_pos_list[tmp]-1);
\ 0347 210000 LD HL,menu_pos_list
\ 034A DD4EE2 LD C,(IX-30)
\ 034D DD46E3 LD B,(IX-29)
\ 0350 09 ADD HL,BC
\ 0351 7E LD A,(HL)
\ 0352 C6FF ADD A,255
\ 0354 5F LD E,A
\ 0355 D5 PUSH DE
\ 0356 DD4EFC LD C,(IX-4)
\ 0359 11B300 LD DE,179
\ 035C CDB305 CALL LWRD ?0095
\ 035F F1 POP AF
209
210 SetPenColor(Color_WHITE_def);
\ 0360 CDBB05 CALL LWRD ?0097
211 SetBackgdColor(0x00003358);
212
213 TextOutRect(&tregion ,1);
\ 0363 39 ADD HL,SP
\ 0364 EB EX DE,HL
\ 0365 CD0000 CALL LWRD TextOutRect
214 ResShowMultiString(list->strid[active],list->string_id, 3, menu_pos_list[tmp]);
\ 0368 210000 LD HL,menu_pos_list
\ 036B DD4EE2 LD C,(IX-30)
\ 036E DD46E3 LD B,(IX-29)
\ 0371 09 ADD HL,BC
\ 0372 4E LD C,(HL)
\ 0373 C5 PUSH BC
\ 0374 0E03 LD C,3
\ 0376 C5 PUSH BC
\ 0377 FD4E08 LD C,(IY+8)
\ 037A FD6E00 LD L,(IY+0)
\ 037D FD6601 LD H,(IY+1)
\ 0380 E5 PUSH HL
\ 0381 DD6EE0 LD L,(IX-32)
\ 0384 DD66E1 LD H,(IX-31)
\ 0387 29 ADD HL,HL
\ 0388 EB EX DE,HL
\ 0389 E1 POP HL
\ 038A 19 ADD HL,DE
\ 038B 5E LD E,(HL)
\ 038C 23 INC HL
\ 038D 56 LD D,(HL)
\ 038E 3E00 LD A,BYTE3 ResShowMultiString
\ 0390 210000 LD HL,LWRD ResShowMultiString
\ 0393 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0396 F1 POP AF
\ 0397 F1 POP AF
215 TextOutRect(&tregion ,0);
\ 0398 0E00 LD C,0
\ 039A 210400 LD HL,4
\ 039D 39 ADD HL,SP
\ 039E EB EX DE,HL
\ 039F CD0000 CALL LWRD TextOutRect
216
217 if(list->total > LIST_NUM_ONE_PAGE)
\ 03A2 FD4E02 LD C,(IY+2)
\ 03A5 FD4603 LD B,(IY+3)
\ 03A8 210600 LD HL,6
\ 03AB F680 OR 128
\ 03AD ED42 SBC HL,BC
\ 03AF E2B303 JP PO,?0081
\ 03B2 AC XOR H
\ 03B3 ?0081:
\ 03B3 F2FF03 JP P,?0037
\ 03B6 ?0033:
218 {
219 ResShowPic(MENUPTR, 166, 19);
\ 03B6 0E13 LD C,19
\ 03B8 C5 PUSH BC
\ 03B9 0EA6 LD C,166
\ 03BB 11B900 LD DE,185
\ 03BE CDB305 CALL LWRD ?0095
\ 03C1 F1 POP AF
220 key = (list->total-LIST_NUM_ONE_PAGE-1)/LIST_NUM_ONE_PAGE;
\ 03C2 CD7005 CALL LWRD ?0094
221 tmp = 113-menuptr_height_list[key]; //注意,最多九级!!!
222 if(tmp%(list->total-1)>=active)
\ 03C5 E2C903 JP PO,?0082
\ 03C8 AC XOR H
\ 03C9 ?0082:
\ 03C9 FD4E02 LD C,(IY+2)
\ 03CC FD4603 LD B,(IY+3)
\ 03CF 0B DEC BC
\ 03D0 DD5EE2 LD E,(IX-30)
\ 03D3 DD56E3 LD D,(IX-29)
\ 03D6 CD0000 CALL LWRD ?SS_DIV_L02
\ 03D9 43 LD B,E
\ 03DA DD7EE0 LD A,(IX-32)
\ 03DD FAE803 JP M,?0036
\ 03E0 ?0035:
223 ResShowPic(MENUPTR1+key, 166, 19+active+(tmp/(list->total-1))*active);
\ 03E0 CD0000 CALL LWRD ?C_MUL_L01
\ 03E3 DD86E0 ADD A,(IX-32)
\ 03E6 1803 JR ?0089
224 else
\ 03E8 ?0036:
225 ResShowPic(MENUPTR1+key, 166, 19+tmp%(list->total-1)+(tmp/(list->total-1))*active);
\ 03E8 CD0B06 CALL LWRD ?0101
\ 03EB ?0089:
\ 03EB C613 ADD A,19
\ 03ED 4F LD C,A
\ 03EE C5 PUSH BC
\ 03EF 0EA6 LD C,166
\ 03F1 DD5EFA LD E,(IX-6)
\ 03F4 1600 LD D,0
\ 03F6 21BA00 LD HL,186
\ 03F9 19 ADD HL,DE
\ 03FA EB EX DE,HL
\ 03FB CDB305 CALL LWRD ?0095
\ 03FE F1 POP AF
\ 03FF ?0037:
\ 03FF ?0034:
226 }
227 //---------------------//
228
229 value_changed=FALSE;
\ 03FF DD36FD00 LD (IX-3),0
\ 0403 ?0029:
230 }
231 key = ap_get_message();
\ 0403 CD0000 CALL LWRD ap_get_message
232 //handle message
233 switch( key)
\ 0406 5F LD E,A
\ 0407 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 040A 0700 DEFW 7
\ 040C 05 DEFB 5
\ 040D 06 DEFB 6
\ 040E 1E DEFB 30
\ 040F 21 DEFB 33
\ 0410 30 DEFB 48
\ 0411 45 DEFB 69
\ 0412 46 DEFB 70
\ 0413 3805 DEFW ?0068
\ 0415 2304 DEFW ?0039
\ 0417 8F04 DEFW ?0051
\ 0419 F904 DEFW ?0064
\ 041B 2205 DEFW ?0090
\ 041D 1B05 DEFW ?0065
\ 041F 2304 DEFW ?0039
\ 0421 8F04 DEFW ?0051
\ 0423 ?0039:
234 {
235 case AP_KEY_NEXT:
236 case AP_KEY_NEXT | AP_KEY_HOLD:
237 if(active < list->total - 1)
\ 0423 FD4E02 LD C,(IY+2)
\ 0426 FD4603 LD B,(IY+3)
\ 0429 0B DEC BC
\ 042A DD6EE0 LD L,(IX-32)
\ 042D DD66E1 LD H,(IX-31)
\ 0430 F680 OR 128
\ 0432 ED42 SBC HL,BC
\ 0434 E23804 JP PO,?0083
\ 0437 AC XOR H
\ 0438 ?0083:
\ 0438 F26D04 JP P,?0041
\ 043B ?0040:
238 {
239 active++;
\ 043B DD34E0 INC (IX-32)
\ 043E 2003 JR NZ,?0084
\ 0440 DD34E1 INC (IX-31)
\ 0443 ?0084:
240 if(active/LIST_NUM_ONE_PAGE==cur_group)
\ 0443 010600 LD BC,6
\ 0446 DD5EE0 LD E,(IX-32)
\ 0449 DD56E1 LD D,(IX-31)
\ 044C CD0000 CALL LWRD ?SS_DIV_L02
\ 044F DD6EF6 LD L,(IX-10)
\ 0452 DD66F7 LD H,(IX-9)
\ 0455 A7 AND A
\ 0456 ED52 SBC HL,DE
\ 0458 201A JR NZ,?0092
\ 045A ?0042:
241 {
242 old_active=active-1;
\ 045A DD6EE0 LD L,(IX-32)
\ 045D DD66E1 LD H,(IX-31)
\ 0460 2B DEC HL
\ 0461 DD75F2 LD (IX-14),L
\ 0464 DD74F3 LD (IX-13),H
243 value_changed=TRUE;
\ 0467 DD36FD01 LD (IX-3),1
244 }
245 else
\ 046B 180B JR ?0045
\ 046D ?0043:
246 need_draw = TRUE;
\ 046D ?0044:
247 }
248 else
\ 046D ?0041:
249 {
250 active = 0;
251 need_draw = TRUE;
\ 046D AF XOR A
\ 046E DD77E0 LD (IX-32),A
\ 0471 DD77E1 LD (IX-31),A
\ 0474 ?0092:
\ 0474 DD36FB01 LD (IX-5),1
\ 0478 ?0045:
252 }
253 if(callback != NULL)
\ 0478 DD7E0A LD A,(IX+10)
\ 047B DDB60B OR (IX+11)
\ 047E DDB60C OR (IX+12)
\ 0481 2803 JR Z,?0047
\ 0483 ?0046:
254 callback(active);
\ 0483 CDF905 CALL LWRD ?0100
\ 0486 ?0047:
\ 0486 ?0049:
255 while(ap_get_message() != 0);
\ 0486 CD0000 CALL LWRD ap_get_message
\ 0489 B7 OR A
\ 048A CA3400 JP Z,?0003
\ 048D ?0050:
256 break;
\ 048D 18F7 JR ?0047
\ 048F ?0048:
\ 048F ?0051:
257
258
259 case AP_KEY_PREV:
260 case AP_KEY_PREV | AP_KEY_HOLD:
261 if(active > 0)
\ 048F DD4EE0 LD C,(IX-32)
\ 0492 DD46E1 LD B,(IX-31)
\ 0495 210000 LD HL,0
\ 0498 F680 OR 128
\ 049A ED42 SBC HL,BC
\ 049C E2A004 JP PO,?0085
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -