ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 1,232 行 · 第 1/4 页
LST
1,232 行
\ 0284 CD0000 CALL LWRD SetTextPos
189 SetPenColor(Color_WHITE_def);
\ 0287 010000 LD BC,0
\ 028A 11FFFF LD DE,65535
\ 028D CD0000 CALL LWRD SetPenColor
190 PutS(dir_name, -1);
\ 0290 0EFF LD C,255
\ 0292 110000 LD DE,dir_name
\ 0295 CD0000 CALL LWRD PutS
191 //Clearexplore_pic();
192 //show icons & text
193 for(i=0; i<5; i++)
\ 0298 FD210000 LD IY,0
\ 029C ?0043:
\ 029C 010580 LD BC,32773
\ 029F FDE5 PUSH IY
\ 02A1 E1 POP HL
\ 02A2 78 LD A,B
\ 02A3 AC XOR H
\ 02A4 67 LD H,A
\ 02A5 ED42 SBC HL,BC
\ 02A7 D26103 JP NC,?0042
\ 02AA ?0044:
194 {
195 if(top+i >= g_file_total) break; //处理不足3个的情况
\ 02AA FDE5 PUSH IY
\ 02AC E1 POP HL
\ 02AD DD4EF6 LD C,(IX-10)
\ 02B0 DD46F7 LD B,(IX-9)
\ 02B3 09 ADD HL,BC
\ 02B4 ED4B0200 LD BC,(g_file_total)
\ 02B8 F680 OR 128
\ 02BA ED42 SBC HL,BC
\ 02BC E2C002 JP PO,?0108
\ 02BF AC XOR H
\ 02C0 ?0108:
\ 02C0 F26103 JP P,?0042
\ 02C3 ?0046:
\ 02C3 ?0047:
196 ResShowPic(FILE_PIC, explorer_pic_x_def, menu_pos[i+1]-1);
\ 02C3 210100 LD HL,menu_pos+1
\ 02C6 FDE5 PUSH IY
\ 02C8 C1 POP BC
\ 02C9 09 ADD HL,BC
\ 02CA 7E LD A,(HL)
\ 02CB C6FF ADD A,255
\ 02CD 5F LD E,A
\ 02CE D5 PUSH DE
\ 02CF CD0805 CALL LWRD ?0120
\ 02D2 F1 POP AF
197 if(top+i==active)
\ 02D3 FDE5 PUSH IY
\ 02D5 E1 POP HL
\ 02D6 DD4EF6 LD C,(IX-10)
\ 02D9 DD46F7 LD B,(IX-9)
\ 02DC 09 ADD HL,BC
\ 02DD ED4B0000 LD BC,(active)
\ 02E1 A7 AND A
\ 02E2 ED42 SBC HL,BC
\ 02E4 2044 JR NZ,?0049
\ 02E6 ?0048:
198 {
199 SetPenColor(Color_WHITE_def);
\ 02E6 4D LD C,L
\ 02E7 44 LD B,H
\ 02E8 11FFFF LD DE,65535
\ 02EB CD0000 CALL LWRD SetPenColor
200 reset_cur_list_bg_color_pic(i, menu_pos[i+1]);
\ 02EE 210100 LD HL,menu_pos+1
\ 02F1 FDE5 PUSH IY
\ 02F3 C1 POP BC
\ 02F4 09 ADD HL,BC
\ 02F5 4E LD C,(HL)
\ 02F6 0600 LD B,0
\ 02F8 FDE5 PUSH IY
\ 02FA D1 POP DE
\ 02FB 3E00 LD A,BYTE3 reset_cur_list_bg_color_pic
\ 02FD 212B05 LD HL,LWRD reset_cur_list_bg_color_pic
\ 0300 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
201 ResShowPic(FILE_PIC, explorer_pic_x_def, menu_pos[i+1]-1);
\ 0303 210100 LD HL,menu_pos+1
\ 0306 FDE5 PUSH IY
\ 0308 C1 POP BC
\ 0309 09 ADD HL,BC
\ 030A 7E LD A,(HL)
\ 030B C6FF ADD A,255
\ 030D 5F LD E,A
\ 030E D5 PUSH DE
\ 030F CD0805 CALL LWRD ?0120
\ 0312 F1 POP AF
202 //ResShowPic(DHTHK,122,menu_pos[i+1]-2);
203 ResShowPic(DHTHK,194,menu_pos[i+1]+5);
\ 0313 210100 LD HL,menu_pos+1
\ 0316 FDE5 PUSH IY
\ 0318 C1 POP BC
\ 0319 09 ADD HL,BC
\ 031A 7E LD A,(HL)
\ 031B C605 ADD A,5
\ 031D 4F LD C,A
\ 031E C5 PUSH BC
\ 031F 0EC2 LD C,194
\ 0321 112E00 LD DE,46
\ 0324 CD0D05 CALL LWRD ?0119
\ 0327 F1 POP AF
204 }
205 else
\ 0328 182C JR ?0050
\ 032A ?0049:
206 {
207 ResShowPic(FILE_PIC, explorer_pic_x_def, menu_pos[i+1]-1);
\ 032A 210100 LD HL,menu_pos+1
\ 032D FDE5 PUSH IY
\ 032F C1 POP BC
\ 0330 09 ADD HL,BC
\ 0331 7E LD A,(HL)
\ 0332 C6FF ADD A,255
\ 0334 5F LD E,A
\ 0335 D5 PUSH DE
\ 0336 CD0805 CALL LWRD ?0120
\ 0339 F1 POP AF
208 SetTextPos(explorer_str_x_def, menu_pos[i+1]-2);
\ 033A 210100 LD HL,menu_pos+1
\ 033D FDE5 PUSH IY
\ 033F C1 POP BC
\ 0340 09 ADD HL,BC
\ 0341 7E LD A,(HL)
209 read_idm_data_pic(fileName, i );
\ 0342 CD1505 CALL LWRD ?0121
210 SetPenColor(Color_WHITE_def);
\ 0345 010000 LD BC,0
\ 0348 11FFFF LD DE,65535
\ 034B CD0000 CALL LWRD SetPenColor
211 PutS(fileName, -1);
\ 034E 0EFF LD C,255
\ 0350 110500 LD DE,fileName
\ 0353 CD0000 CALL LWRD PutS
\ 0356 ?0050:
212 }
213 output8(0x4e,input8(0x4e)|0x08); //清WATCH DOG
\ 0356 DB4E IN A,(78)
\ 0358 CBDF SET 3,A
\ 035A D34E OUT (78),A
\ 035C FD23 INC IY
\ 035E C39C02 JP LWRD ?0043
\ 0361 ?0042:
214 }
215 fselSetLocation(&g_viewpic_vars.location);
\ 0361 110400 LD DE,g_viewpic_vars+4
\ 0364 3E00 LD A,BYTE3 fselSetLocation
\ 0366 210000 LD HL,LWRD fselSetLocation
\ 0369 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
216 need_draw = FALSE;
\ 036C DD36EE00 LD (IX-18),0
\ 0370 ?0037:
217 }
218
219 if(list_change)
\ 0370 AF XOR A
\ 0371 DDB6F0 OR (IX-16)
\ 0374 281E JR Z,?0052
\ 0376 ?0051:
220 {
221 show_active_list_pic(old_active, active, top);
\ 0376 DD6EF6 LD L,(IX-10)
\ 0379 DD66F7 LD H,(IX-9)
\ 037C E5 PUSH HL
\ 037D ED4B0000 LD BC,(active)
\ 0381 DD5EFA LD E,(IX-6)
\ 0384 DD56FB LD D,(IX-5)
\ 0387 3E00 LD A,BYTE3 show_active_list_pic
\ 0389 210000 LD HL,LWRD show_active_list_pic
\ 038C CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 038F E1 POP HL
222 list_change = FALSE;
\ 0390 DD36F000 LD (IX-16),0
\ 0394 ?0052:
223 }
224
225 key=ap_get_message(); // get the user message
\ 0394 CD0000 CALL LWRD ap_get_message
\ 0397 4F LD C,A
\ 0398 59 LD E,C
\ 0399 0600 LD B,0
226 // key=AP_KEY_PLAY | AP_KEY_UP;
227 switch(key)
\ 039B 50 LD D,B
\ 039C CD0000 CALL LWRD ?S_V_SWITCH_L06
\ 039F 0800 DEFW 8
\ 03A1 0500 DEFW 5
\ 03A3 0600 DEFW 6
\ 03A5 1000 DEFW 16
\ 03A7 2100 DEFW 33
\ 03A9 3000 DEFW 48
\ 03AB 3700 DEFW 55
\ 03AD 4500 DEFW 69
\ 03AF 4600 DEFW 70
\ 03B1 E504 DEFW ?0091
\ 03B3 1A04 DEFW ?0064
\ 03B5 C303 DEFW ?0054
\ 03B7 BD04 DEFW ?0089
\ 03B9 7204 DEFW ?0075
\ 03BB A804 DEFW ?0086
\ 03BD A004 DEFW ?0077
\ 03BF 1A04 DEFW ?0064
\ 03C1 C303 DEFW ?0054
\ 03C3 ?0054:
228 {
229 case AP_KEY_PREV :
230 case AP_KEY_PREV | AP_KEY_HOLD:
231 if(active > 0)
\ 03C3 ED4B0000 LD BC,(active)
\ 03C7 6A LD L,D
\ 03C8 62 LD H,D
\ 03C9 F680 OR 128
\ 03CB ED42 SBC HL,BC
\ 03CD E2D103 JP PO,?0109
\ 03D0 AC XOR H
\ 03D1 ?0109:
\ 03D1 F2FC03 JP P,?0056
\ 03D4 ?0055:
232 {
233 active--;
\ 03D4 69 LD L,C
\ 03D5 60 LD H,B
\ 03D6 2B DEC HL
\ 03D7 220000 LD (active),HL
234 if(active/5==cur_group)
\ 03DA 010500 LD BC,5
\ 03DD EB EX DE,HL
\ 03DE CD0000 CALL LWRD ?SS_DIV_L02
\ 03E1 DD6EF8 LD L,(IX-8)
\ 03E4 DD66F9 LD H,(IX-7)
\ 03E7 A7 AND A
\ 03E8 ED52 SBC HL,DE
\ 03EA 2017 JR NZ,?0116
\ 03EC ?0057:
235 {
236 old_active=active+1;
\ 03EC 2A0000 LD HL,(active)
\ 03EF 23 INC HL
\ 03F0 DD75FA LD (IX-6),L
\ 03F3 DD74FB LD (IX-5),H
237 list_change=TRUE;
\ 03F6 DD36F001 LD (IX-16),1
238 }
239 else
\ 03FA 180B JR ?0060
\ 03FC ?0058:
240 need_draw = TRUE;
\ 03FC ?0059:
241 }
242 else
\ 03FC ?0056:
243 {
244 active = g_file_total - 1;
\ 03FC 2A0200 LD HL,(g_file_total)
\ 03FF 2B DEC HL
\ 0400 220000 LD (active),HL
245 need_draw = TRUE;
\ 0403 ?0116:
\ 0403 DD36EE01 LD (IX-18),1
\ 0407 ?0060:
246 }
247 sel_prev(TRUE);
\ 0407 1E01 LD E,1
\ 0409 3E00 LD A,BYTE3 sel_prev
\ 040B 21C900 LD HL,LWRD sel_prev
\ 040E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0411 ?0062:
248 //清除多出的HOLD消息,防止按键停了还跳几曲
249 while(ap_get_message() != 0);
\ 0411 CD0000 CALL LWRD ap_get_message
\ 0414 B7 OR A
\ 0415 CA4101 JP Z,?0023
\ 0418 ?0063:
250 break;
\ 0418 18F7 JR ?0062
\ 041A ?0061:
\ 041A ?0064:
251 case AP_KEY_NEXT :
252 case AP_KEY_NEXT | AP_KEY_HOLD:
253 if(active < g_file_total - 1)
\ 041A ED4B0200 LD BC,(g_file_total)
\ 041E 0B DEC BC
\ 041F 2A0000 LD HL,(active)
\ 0422 F680 OR 128
\ 0424 ED42 SBC HL,BC
\ 0426 E22A04 JP PO,?0110
\ 0429 AC XOR H
\ 042A ?0110:
\ 042A F25604 JP P,?0066
\ 042D ?0065:
254 {
255 active++;
\ 042D 2A0000 LD HL,(active)
\ 0430 23 INC HL
\ 0431 220000 LD (active),HL
256 if(active/5==cur_group)
\ 0434 010500 LD BC,5
\ 0437 EB EX DE,HL
\ 0438 CD0000 CALL LWRD ?SS_DIV_L02
\ 043B DD6EF8 LD L,(IX-8)
\ 043E DD66F9 LD H,(IX-7)
\ 0441 A7 AND A
\ 0442 ED52 SBC HL,DE
\ 0444 2015 JR NZ,?0117
\ 0446 ?0067:
257 {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?