ui_pop_up_list.lst
来自「MP3 整个 SDK」· LST 代码 · 共 959 行 · 第 1/3 页
LST
959 行
\ 0155 56 LD D,(HL)
\ 0156 010600 LD BC,6
\ 0159 CD0000 CALL LWRD ?SS_MOD_L02
\ 015C ?0002:
\ 015C ?0003:
76 GetDCStatus(&oldDC_sav);
\ 015C 210400 LD HL,4
\ 015F 39 ADD HL,SP
\ 0160 EB EX DE,HL
\ 0161 CD0000 CALL LWRD GetDCStatus
77
78 SetTextOutMode(1); //设字体透明
\ 0164 1E01 LD E,1
\ 0166 CD0000 CALL LWRD SetTextOutMode
\ 0169 ?0005:
79
80 while(1)
81 {
82 if(need_drawall)
\ 0169 AF XOR A
\ 016A DDB6FF OR (IX-1)
\ 016D 2808 JR Z,?0008
\ 016F ?0007:
83 {
84
85 need_drawall=FALSE;
86 need_draw=TRUE;
\ 016F DD36FF00 LD (IX-1),0
\ 0173 DD36FC01 LD (IX-4),1
\ 0177 ?0008:
87 }
88
89 if(need_draw)
\ 0177 AF XOR A
\ 0178 DDB6FC OR (IX-4)
\ 017B CA0A03 JP Z,?0010
\ 017E ?0009:
90 {
91 old_active=active;
92 cur_group = active / LIST_NUM_ONE_PAGE;
\ 017E 010600 LD BC,6
\ 0181 DD5EE8 LD E,(IX-24)
\ 0184 DD56E9 LD D,(IX-23)
\ 0187 CD0000 CALL LWRD ?SS_DIV_L02
\ 018A DD73F6 LD (IX-10),E
\ 018D DD72F7 LD (IX-9),D
93 n = cur_group*LIST_NUM_ONE_PAGE;
\ 0190 EB EX DE,HL
\ 0191 29 ADD HL,HL
\ 0192 4D LD C,L
\ 0193 44 LD B,H
\ 0194 29 ADD HL,HL
\ 0195 09 ADD HL,BC
\ 0196 DD75F4 LD (IX-12),L
\ 0199 DD74F5 LD (IX-11),H
94 ResShowPic(MENUTWO,0,0);
\ 019C 0E00 LD C,0
\ 019E C5 PUSH BC
\ 019F 116D00 LD DE,109
\ 01A2 CD1301 CALL LWRD ?0069
\ 01A5 F1 POP AF
95 ResShowPic(DHT,194,8);
\ 01A6 0E08 LD C,8
\ 01A8 C5 PUSH BC
\ 01A9 0EC2 LD C,194
\ 01AB 112D00 LD DE,45
\ 01AE CD1301 CALL LWRD ?0069
\ 01B1 F1 POP AF
96 SetPenColor(Color_WHITE_def);
\ 01B2 CD1B01 CALL LWRD ?0071
97 ResShowMultiString(list->headid, list->string_id,
98 list_str_x_def, list_str_y_def);
\ 01B5 0E94 LD C,148
\ 01B7 C5 PUSH BC
\ 01B8 0E16 LD C,22
\ 01BA C5 PUSH BC
\ 01BB FD4E08 LD C,(IY+8)
\ 01BE FD5E06 LD E,(IY+6)
\ 01C1 FD5607 LD D,(IY+7)
\ 01C4 3E00 LD A,BYTE3 ResShowMultiString
\ 01C6 210000 LD HL,LWRD ResShowMultiString
\ 01C9 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 01CC F1 POP AF
\ 01CD F1 POP AF
99
100 SetPenColor(Color_WHITE_def);
\ 01CE CD1B01 CALL LWRD ?0071
101 if(callback != NULL)
\ 01D1 DD6EE8 LD L,(IX-24)
\ 01D4 DD66E9 LD H,(IX-23)
\ 01D7 DD75F8 LD (IX-8),L
\ 01DA DD74F9 LD (IX-7),H
\ 01DD DD7E0A LD A,(IX+10)
\ 01E0 DDB60B OR (IX+11)
\ 01E3 DDB60C OR (IX+12)
\ 01E6 2804 JR Z,?0012
\ 01E8 ?0011:
102 callback(active);
\ 01E8 EB EX DE,HL
\ 01E9 CDBE04 CALL LWRD ?0073
\ 01EC ?0012:
103
104 for(i=0; i<LIST_NUM_ONE_PAGE; i++)
\ 01EC AF XOR A
\ 01ED DD77EA LD (IX-22),A
\ 01F0 DD77EB LD (IX-21),A
\ 01F3 ?0014:
\ 01F3 010680 LD BC,32774
\ 01F6 DD6EEA LD L,(IX-22)
\ 01F9 DD66EB LD H,(IX-21)
\ 01FC 78 LD A,B
\ 01FD AC XOR H
\ 01FE 67 LD H,A
\ 01FF ED42 SBC HL,BC
\ 0201 D20603 JP NC,?0013
\ 0204 ?0015:
105 {
106 if(n+i >= list->total) break; //处理不足LIST_NUM_ONE_PAGE个的情况
\ 0204 FD4E02 LD C,(IY+2)
\ 0207 FD4603 LD B,(IY+3)
\ 020A DD6EEA LD L,(IX-22)
\ 020D DD66EB LD H,(IX-21)
\ 0210 DD5EF4 LD E,(IX-12)
\ 0213 DD56F5 LD D,(IX-11)
\ 0216 19 ADD HL,DE
\ 0217 F680 OR 128
\ 0219 ED42 SBC HL,BC
\ 021B E21F02 JP PO,?0061
\ 021E AC XOR H
\ 021F ?0061:
\ 021F F20603 JP P,?0013
\ 0222 ?0017:
\ 0222 ?0018:
107 if(n+i==active)
\ 0222 DD6EEA LD L,(IX-22)
\ 0225 DD66EB LD H,(IX-21)
\ 0228 4B LD C,E
\ 0229 42 LD B,D
\ 022A 09 ADD HL,BC
\ 022B DD4EE8 LD C,(IX-24)
\ 022E DD46E9 LD B,(IX-23)
\ 0231 A7 AND A
\ 0232 ED42 SBC HL,BC
\ 0234 210000 LD HL,menu_pos_list
\ 0237 DD4EEA LD C,(IX-22)
\ 023A DD46EB LD B,(IX-21)
\ 023D 09 ADD HL,BC
\ 023E 2071 JR NZ,?0020
\ 0240 ?0019:
108 {
109 {
110 ResShowPic(MENUBCK, menu_bck_x_def, menu_pos_list[i]-4);
\ 0240 7E LD A,(HL)
\ 0241 C6FC ADD A,252
\ 0243 5F LD E,A
\ 0244 D5 PUSH DE
\ 0245 CD0E01 CALL LWRD ?0070
\ 0248 F1 POP AF
111 ResShowPic(DHTHK,194, menu_pos_list[i]+6);
\ 0249 210000 LD HL,menu_pos_list
\ 024C DD4EEA LD C,(IX-22)
\ 024F DD46EB LD B,(IX-21)
\ 0252 09 ADD HL,BC
\ 0253 7E LD A,(HL)
\ 0254 C606 ADD A,6
\ 0256 5F LD E,A
\ 0257 D5 PUSH DE
\ 0258 0EC2 LD C,194
\ 025A 112E00 LD DE,46
\ 025D CD1301 CALL LWRD ?0069
\ 0260 F1 POP AF
112 ResShowPic(MENURARR, menu_ptr_x_def, menu_pos_list[i]);
\ 0261 210000 LD HL,menu_pos_list
\ 0264 DD4EEA LD C,(IX-22)
\ 0267 DD46EB LD B,(IX-21)
\ 026A 09 ADD HL,BC
\ 026B 5E LD E,(HL)
\ 026C D5 PUSH DE
\ 026D 0E0A LD C,10
\ 026F 116C00 LD DE,108
\ 0272 CD1301 CALL LWRD ?0069
\ 0275 F1 POP AF
113 }
114
115
116 SetPenColor(Color_WHITE_def);
\ 0276 CD1B01 CALL LWRD ?0071
117 ResShowMultiString(list->strid[active], list->string_id,
118 menu_str_x_def, menu_pos_list[i]-1);
\ 0279 210000 LD HL,menu_pos_list
\ 027C DD4EEA LD C,(IX-22)
\ 027F DD46EB LD B,(IX-21)
\ 0282 09 ADD HL,BC
\ 0283 7E LD A,(HL)
\ 0284 C6FF ADD A,255
\ 0286 4F LD C,A
\ 0287 C5 PUSH BC
\ 0288 0E20 LD C,32
\ 028A C5 PUSH BC
\ 028B FD4E08 LD C,(IY+8)
\ 028E FD6E00 LD L,(IY+0)
\ 0291 FD6601 LD H,(IY+1)
\ 0294 E5 PUSH HL
\ 0295 DD6EE8 LD L,(IX-24)
\ 0298 DD66E9 LD H,(IX-23)
\ 029B 29 ADD HL,HL
\ 029C EB EX DE,HL
\ 029D E1 POP HL
\ 029E 19 ADD HL,DE
\ 029F 5E LD E,(HL)
\ 02A0 23 INC HL
\ 02A1 56 LD D,(HL)
\ 02A2 3E00 LD A,BYTE3 ResShowMultiString
\ 02A4 210000 LD HL,LWRD ResShowMultiString
\ 02A7 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02AA F1 POP AF
\ 02AB F1 POP AF
119 SetPenColor(Color_WHITE_def);
\ 02AC CD1B01 CALL LWRD ?0071
120
121 }
122 else
\ 02AF 1849 JR ?0021
\ 02B1 ?0020:
123 {
124 ResShowPic(MENUARR1+i, menu_ptr_x_def, menu_pos_list[i]);
\ 02B1 5E LD E,(HL)
\ 02B2 D5 PUSH DE
\ 02B3 0E0A LD C,10
\ 02B5 215E00 LD HL,94
\ 02B8 DD5EEA LD E,(IX-22)
\ 02BB 50 LD D,B
\ 02BC 19 ADD HL,DE
\ 02BD EB EX DE,HL
\ 02BE CD1301 CALL LWRD ?0069
\ 02C1 F1 POP AF
125 ResShowMultiString(list->strid[n+i], list->string_id,
126 menu_str_x_def, menu_pos_list[i]-3);
\ 02C2 210000 LD HL,menu_pos_list
\ 02C5 DD4EEA LD C,(IX-22)
\ 02C8 DD46EB LD B,(IX-21)
\ 02CB 09 ADD HL,BC
\ 02CC 7E LD A,(HL)
\ 02CD C6FD ADD A,253
\ 02CF 5F LD E,A
\ 02D0 D5 PUSH DE
\ 02D1 1E20 LD E,32
\ 02D3 D5 PUSH DE
\ 02D4 FD4E08 LD C,(IY+8)
\ 02D7 FD6E00 LD L,(IY+0)
\ 02DA FD6601 LD H,(IY+1)
\ 02DD E5 PUSH HL
\ 02DE DD6EEA LD L,(IX-22)
\ 02E1 60 LD H,B
\ 02E2 DD5EF4 LD E,(IX-12)
\ 02E5 DD56F5 LD D,(IX-11)
\ 02E8 19 ADD HL,DE
\ 02E9 29 ADD HL,HL
\ 02EA EB EX DE,HL
\ 02EB E1 POP HL
\ 02EC 19 ADD HL,DE
\ 02ED 5E LD E,(HL)
\ 02EE 23 INC HL
\ 02EF 56 LD D,(HL)
\ 02F0 3E00 LD A,BYTE3 ResShowMultiString
\ 02F2 210000 LD HL,LWRD ResShowMultiString
\ 02F5 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02F8 F1 POP AF
\ 02F9 F1 POP AF
\ 02FA ?0021:
\ 02FA DD34EA INC (IX-22)
\ 02FD C2F301 JP NZ,?0014
\ 0300 DD34EB INC (IX-21)
\ 0303 C3F301 JP LWRD ?0014
\ 0306 ?0013:
127 }
128 }
129
130 need_draw = FALSE;
\ 0306 DD36FC00 LD (IX-4),0
\ 030A ?0010:
131 }//need draw
132 if(value_changed)
\ 030A AF XOR A
\ 030B DDB6FE OR (IX-2)
\ 030E 281D JR Z,?0023
\ 0310 ?0022:
133 {
134 show_active_list1(list,old_active,active);
\ 0310 DD6EE8 LD L,(IX-24)
\ 0313 DD66E9 LD H,(IX-23)
\ 0316 E5 PUSH HL
\ 0317 DD4EF8 LD C,(IX-8)
\ 031A DD46F9 LD B,(IX-7)
\ 031D FDE5 PUSH IY
\ 031F D1 POP DE
\ 0320 3E00 LD A,BYTE3 show_active_list1
\ 0322 210000 LD HL,LWRD show_active_list1
\ 0325 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0328 E1 POP HL
135 value_changed=FALSE;
\ 0329 DD36FE00 LD (IX-2),0
\ 032D ?0023:
136 }
137 key = ap_get_message();
\ 032D CD0000 CALL LWRD ap_get_message
138 //handle message
139 switch( key)
\ 0330 5F LD E,A
\ 0331 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 0334 0700 DEFW 7
\ 0336 05 DEFB 5
\ 0337 06 DEFB 6
\ 0338 1E DEFB 30
\ 0339 21 DEFB 33
\ 033A 30 DEFB 48
\ 033B 45 DEFB 69
\ 033C 46 DEFB 70
\ 033D 6C04 DEFW ?0054
\ 033F 4D03 DEFW ?0025
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?