📄 ui_pop_up_list.lst
字号:
\ 027C DD66F3 LD H,(IX-13)
\ 027F 29 ADD HL,HL
\ 0280 EB EX DE,HL
\ 0281 E1 POP HL
\ 0282 19 ADD HL,DE
\ 0283 5E LD E,(HL)
\ 0284 23 INC HL
\ 0285 56 LD D,(HL)
\ 0286 3E00 LD A,BYTE3 ResShowMultiString
\ 0288 210000 LD HL,LWRD ResShowMultiString
\ 028B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 028E F1 POP AF
\ 028F F1 POP AF
202 TextOutRect(&tregion ,0);
\ 0290 0E00 LD C,0
\ 0292 210600 LD HL,6
\ 0295 39 ADD HL,SP
\ 0296 EB EX DE,HL
\ 0297 CD0000 CALL LWRD TextOutRect
203
204 ResShowPic(MENUARR, constX, menu_pos_list[tmp]-1);
\ 029A 210000 LD HL,menu_pos_list
\ 029D DD4EE2 LD C,(IX-30)
\ 02A0 DD46E3 LD B,(IX-29)
\ 02A3 09 ADD HL,BC
\ 02A4 7E LD A,(HL)
\ 02A5 C6FF ADD A,255
\ 02A7 5F LD E,A
\ 02A8 D5 PUSH DE
\ 02A9 DD4EFC LD C,(IX-4)
\ 02AC 11B200 LD DE,178
\ 02AF CDFE04 CALL LWRD ?0089
\ 02B2 F1 POP AF
205
206 tmp = active%6;
\ 02B3 010600 LD BC,6
\ 02B6 DD5EE0 LD E,(IX-32)
\ 02B9 DD56E1 LD D,(IX-31)
\ 02BC CD8805 CALL LWRD ?0098
207 ResShowPic(resID, 0, menu_pos_list[tmp]-1);
\ 02BF 210000 LD HL,menu_pos_list
\ 02C2 19 ADD HL,DE
\ 02C3 7E LD A,(HL)
\ 02C4 C6FF ADD A,255
\ 02C6 4F LD C,A
\ 02C7 C5 PUSH BC
\ 02C8 48 LD C,B
\ 02C9 CDF804 CALL LWRD ?0090
\ 02CC F1 POP AF
208 ResShowPic(MENUARR1, constX, menu_pos_list[tmp]-1);
\ 02CD 210000 LD HL,menu_pos_list
\ 02D0 DD4EE2 LD C,(IX-30)
\ 02D3 DD46E3 LD B,(IX-29)
\ 02D6 09 ADD HL,BC
\ 02D7 7E LD A,(HL)
\ 02D8 C6FF ADD A,255
\ 02DA 5F LD E,A
\ 02DB D5 PUSH DE
\ 02DC DD4EFC LD C,(IX-4)
\ 02DF 11B300 LD DE,179
\ 02E2 CDFE04 CALL LWRD ?0089
\ 02E5 F1 POP AF
209
210 SetPenColor(Color_WHITE_def);
\ 02E6 CD0605 CALL LWRD ?0091
211 SetBackgdColor(0x00003358);
212
213 TextOutRect(&tregion ,1);
\ 02E9 39 ADD HL,SP
\ 02EA EB EX DE,HL
\ 02EB CD0000 CALL LWRD TextOutRect
214 ResShowMultiString(list->strid[active],list->string_id, 3, menu_pos_list[tmp]);
\ 02EE 210000 LD HL,menu_pos_list
\ 02F1 DD4EE2 LD C,(IX-30)
\ 02F4 DD46E3 LD B,(IX-29)
\ 02F7 09 ADD HL,BC
\ 02F8 4E LD C,(HL)
\ 02F9 C5 PUSH BC
\ 02FA 0E03 LD C,3
\ 02FC C5 PUSH BC
\ 02FD FD4E08 LD C,(IY+8)
\ 0300 FD6E00 LD L,(IY+0)
\ 0303 FD6601 LD H,(IY+1)
\ 0306 E5 PUSH HL
\ 0307 DD6EE0 LD L,(IX-32)
\ 030A DD66E1 LD H,(IX-31)
\ 030D 29 ADD HL,HL
\ 030E EB EX DE,HL
\ 030F E1 POP HL
\ 0310 19 ADD HL,DE
\ 0311 5E LD E,(HL)
\ 0312 23 INC HL
\ 0313 56 LD D,(HL)
\ 0314 3E00 LD A,BYTE3 ResShowMultiString
\ 0316 210000 LD HL,LWRD ResShowMultiString
\ 0319 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 031C F1 POP AF
\ 031D F1 POP AF
215 TextOutRect(&tregion ,0);
\ 031E 0E00 LD C,0
\ 0320 210600 LD HL,6
\ 0323 39 ADD HL,SP
216
217 if(list->total > LIST_NUM_ONE_PAGE)
\ 0324 CDE804 CALL LWRD ?0088
\ 0327 3037 JR NC,?0037
\ 0329 ?0033:
218 {
219 ResShowPic(MENUPTR, 166, 19);
\ 0329 0E13 LD C,19
\ 032B C5 PUSH BC
\ 032C 0EA6 LD C,166
\ 032E 11B900 LD DE,185
\ 0331 CDFE04 CALL LWRD ?0089
\ 0334 F1 POP AF
220 key = (list->total-LIST_NUM_ONE_PAGE-1)/LIST_NUM_ONE_PAGE;
\ 0335 CD9204 CALL LWRD ?0085
221 tmp = 113-menuptr_height_list[key]; //注意,最多九级!!!
222 if(tmp%(list->total-1)>=active)
\ 0338 CD0000 CALL LWRD ?SS_DIV_L02
\ 033B 43 LD B,E
\ 033C DD7EE0 LD A,(IX-32)
\ 033F 3808 JR C,?0036
\ 0341 ?0035:
223 ResShowPic(MENUPTR1+key, 166, 19+active+(tmp/(list->total-1))*active);
\ 0341 CD0000 CALL LWRD ?C_MUL_L01
\ 0344 DD86E0 ADD A,(IX-32)
\ 0347 1803 JR ?0080
224 else
\ 0349 ?0036:
225 ResShowPic(MENUPTR1+key, 166, 19+tmp%(list->total-1)+(tmp/(list->total-1))*active);
\ 0349 CD7305 CALL LWRD ?0097
\ 034C ?0080:
\ 034C C613 ADD A,19
\ 034E 4F LD C,A
\ 034F C5 PUSH BC
\ 0350 0EA6 LD C,166
\ 0352 DD5EFA LD E,(IX-6)
\ 0355 1600 LD D,0
\ 0357 21BA00 LD HL,186
\ 035A 19 ADD HL,DE
\ 035B EB EX DE,HL
\ 035C CDFE04 CALL LWRD ?0089
\ 035F F1 POP AF
\ 0360 ?0037:
\ 0360 ?0034:
226 }
227 //---------------------//
228
229 value_changed=FALSE;
\ 0360 DD36FD00 LD (IX-3),0
\ 0364 ?0029:
230 }
231 key = ap_get_message();
\ 0364 CD0000 CALL LWRD ap_get_message
232 //handle message
233 switch( key)
\ 0367 5F LD E,A
\ 0368 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 036B 0700 DEFW 7
\ 036D 05 DEFB 5
\ 036E 06 DEFB 6
\ 036F 1E DEFB 30
\ 0370 21 DEFB 33
\ 0371 30 DEFB 48
\ 0372 45 DEFB 69
\ 0373 46 DEFB 70
\ 0374 6604 DEFW ?0068
\ 0376 8403 DEFW ?0039
\ 0378 E103 DEFW ?0051
\ 037A 3C04 DEFW ?0064
\ 037C 5A04 DEFW ?0081
\ 037E 5404 DEFW ?0065
\ 0380 8403 DEFW ?0039
\ 0382 E103 DEFW ?0051
\ 0384 ?0039:
234 {
235 case AP_KEY_NEXT:
236 case AP_KEY_NEXT | AP_KEY_HOLD:
237 if(active < list->total - 1)
\ 0384 FD4E02 LD C,(IY+2)
\ 0387 FD4603 LD B,(IY+3)
\ 038A 0B DEC BC
\ 038B DD6EE0 LD L,(IX-32)
\ 038E DD66E1 LD H,(IX-31)
\ 0391 CD0000 CALL LWRD ?SS_CMP_L02
\ 0394 3029 JR NC,?0041
\ 0396 ?0040:
238 {
239 active++;
\ 0396 DD34E0 INC (IX-32)
\ 0399 2003 JR NZ,?0076
\ 039B DD34E1 INC (IX-31)
\ 039E ?0076:
240 if(active/LIST_NUM_ONE_PAGE==cur_group)
\ 039E 010600 LD BC,6
\ 03A1 DD5EE0 LD E,(IX-32)
\ 03A4 DD56E1 LD D,(IX-31)
\ 03A7 CDDB04 CALL LWRD ?0086
\ 03AA 201A JR NZ,?0083
\ 03AC ?0042:
241 {
242 old_active=active-1;
\ 03AC DD6EE0 LD L,(IX-32)
\ 03AF DD66E1 LD H,(IX-31)
\ 03B2 2B DEC HL
\ 03B3 DD75F2 LD (IX-14),L
\ 03B6 DD74F3 LD (IX-13),H
243 value_changed=TRUE;
\ 03B9 DD36FD01 LD (IX-3),1
244 }
245 else
\ 03BD 180B JR ?0045
\ 03BF ?0043:
246 need_draw = TRUE;
\ 03BF ?0044:
247 }
248 else
\ 03BF ?0041:
249 {
250 active = 0;
251 need_draw = TRUE;
\ 03BF AF XOR A
\ 03C0 DD77E0 LD (IX-32),A
\ 03C3 DD77E1 LD (IX-31),A
\ 03C6 ?0083:
\ 03C6 DD36FB01 LD (IX-5),1
\ 03CA ?0045:
252 }
253 if(callback != NULL)
\ 03CA DD7E0A LD A,(IX+10)
\ 03CD DDB60B OR (IX+11)
\ 03D0 DDB60C OR (IX+12)
\ 03D3 2803 JR Z,?0047
\ 03D5 ?0046:
254 callback(active);
\ 03D5 CD5205 CALL LWRD ?0095
\ 03D8 ?0047:
\ 03D8 ?0049:
255 while(ap_get_message() != 0);
\ 03D8 CD0000 CALL LWRD ap_get_message
\ 03DB B7 OR A
\ 03DC 20FA JR NZ,?0047
\ 03DE ?0050:
256 break;
\ 03DE ?0048:
\ 03DE C33000 JP LWRD ?0003
\ 03E1 ?0051:
257
258
259 case AP_KEY_PREV:
260 case AP_KEY_PREV | AP_KEY_HOLD:
261 if(active > 0)
\ 03E1 DD4EE0 LD C,(IX-32)
\ 03E4 DD46E1 LD B,(IX-31)
\ 03E7 210000 LD HL,0
\ 03EA CD0000 CALL LWRD ?SS_CMP_L02
\ 03ED 3025 JR NC,?0053
\ 03EF ?0052:
262 {
263 active--;
\ 03EF 69 LD L,C
\ 03F0 60 LD H,B
\ 03F1 2B DEC HL
\ 03F2 DD75E0 LD (IX-32),L
\ 03F5 DD74E1 LD (IX-31),H
264 if(active/LIST_NUM_ONE_PAGE==cur_group)
\ 03F8 010600 LD BC,6
\ 03FB EB EX DE,HL
\ 03FC CDDB04 CALL LWRD ?0086
\ 03FF 2020 JR NZ,?0084
\ 0401 ?0054:
265 {
266 old_active=active+1;
\ 0401 DD6EE0 LD L,(IX-32)
\ 0404 DD66E1 LD H,(IX-31)
\ 0407 23 INC HL
\ 0408 DD75F2 LD (IX-14),L
\ 040B DD74F3 LD (IX-13),H
267 value_changed=TRUE;
\ 040E DD36FD01 LD (IX-3),1
268 }
269 else
\ 0412 1811 JR ?0057
\ 0414 ?0055:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -