📄 music_list_menu.lst
字号:
\ 02CF C5 PUSH BC
\ 02D0 11C300 LD DE,195
\ 02D3 CD5501 CALL LWRD ?0088
\ 02D6 F1 POP AF
122 ResShowMultiString(HeadIDDisplay, g_comval.langid,list_str_x_def, list_str_y_def); //显示列表名
\ 02D7 0E94 LD C,148
\ 02D9 C5 PUSH BC
\ 02DA 0E16 LD C,22
\ 02DC C5 PUSH BC
\ 02DD ED4B0C00 LD BC,(g_comval+12)
\ 02E1 ED5B3F02 LD DE,(HeadIDDisplay)
\ 02E5 3E00 LD A,BYTE3 ResShowMultiString
\ 02E7 210000 LD HL,LWRD ResShowMultiString
\ 02EA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02ED F1 POP AF
\ 02EE F1 POP AF
123 ResShowPic(DHT,194,8);
\ 02EF 0E08 LD C,8
\ 02F1 C5 PUSH BC
\ 02F2 0EC2 LD C,194
\ 02F4 112600 LD DE,38
\ 02F7 CD5501 CALL LWRD ?0088
\ 02FA F1 POP AF
124
125 for(i=0;i<=last_list;i++)
\ 02FB DD36F800 LD (IX-8),0
\ 02FF ?0023:
\ 02FF DD7EFD LD A,(IX-3)
\ 0302 DDBEF8 CP (IX-8)
\ 0305 DA8903 JP C,?0022
\ 0308 ?0024:
126 {
127 buf_num = (top_list+i)% OneSectorListNum;
\ 0308 DD4EF8 LD C,(IX-8)
\ 030B 0600 LD B,0
\ 030D FDE5 PUSH IY
\ 030F E1 POP HL
\ 0310 09 ADD HL,BC
\ 0311 EB EX DE,HL
\ 0312 0E07 LD C,7
\ 0314 CD0000 CALL LWRD ?US_MOD_L02
\ 0317 DD73FE LD (IX-2),E
128 if(buf_num ==0) //如果是数据页尾就要换页
\ 031A 1C INC E
\ 031B 1D DEC E
\ 031C 2009 JR NZ,?0027
\ 031E ?0026:
129 {
130 ReadOneSectorData(top_list+i);
\ 031E DD4EF8 LD C,(IX-8)
\ 0321 FDE5 PUSH IY
\ 0323 E1 POP HL
\ 0324 CD0401 CALL LWRD ?0079
\ 0327 ?0027:
131 }
132 if((top_list+i)==active)
\ 0327 DD4EF8 LD C,(IX-8)
\ 032A FDE5 PUSH IY
\ 032C E1 POP HL
\ 032D 09 ADD HL,BC
\ 032E DD4E02 LD C,(IX+2)
\ 0331 DD4603 LD B,(IX+3)
\ 0334 A7 AND A
\ 0335 ED42 SBC HL,BC
\ 0337 284A JR Z,?0032
\ 0339 ?0028:
133 {
134 continue;
\ 0339 ?0029:
135 }
136 ResShowPic(MFILE,explorer_pic_x_def,menu_pos_list[i]-1);
\ 0339 DD4EF8 LD C,(IX-8)
\ 033C 0600 LD B,0
\ 033E 210000 LD HL,menu_pos_list
\ 0341 09 ADD HL,BC
\ 0342 7E LD A,(HL)
\ 0343 C6FF ADD A,255
\ 0345 4F LD C,A
\ 0346 C5 PUSH BC
\ 0347 CD5001 CALL LWRD ?0087
\ 034A F1 POP AF
137 if(ReadListBuffer[buf_num*ListPerByte]!=0)
\ 034B DD4EFE LD C,(IX-2)
\ 034E CD4101 CALL LWRD ?0085
\ 0351 2824 JR Z,?0031
\ 0353 ?0030:
138 {
139 region_scroll.y = menu_pos_list[i]-2;
\ 0353 DD4EF8 LD C,(IX-8)
\ 0356 210000 LD HL,menu_pos_list
\ 0359 09 ADD HL,BC
\ 035A 7E LD A,(HL)
\ 035B C6FE ADD A,254
\ 035D 320100 LD (region_scroll+1),A
140 ScrollString(&ReadListBuffer[buf_num*ListPerByte],TRUE,g_comval.langid,®ion_scroll); //滚动第一屏
\ 0360 210000 LD HL,region_scroll
\ 0363 E5 PUSH HL
\ 0364 210C00 LD HL,g_comval+12
\ 0367 4E LD C,(HL)
\ 0368 C5 PUSH BC
\ 0369 0E01 LD C,1
\ 036B C5 PUSH BC
\ 036C CD0E01 CALL LWRD ?0082
\ 036F C1 POP BC
\ 0370 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0373 E1 POP HL
\ 0374 E1 POP HL
141 }
142 else
\ 0375 180C JR ?0032
\ 0377 ?0031:
143 {
144 ScrollFlag = 0;
\ 0377 320000 LD (ScrollFlag),A
145 memcpy(BlankInfor,BLANKSTRING,4);
146 memcpy(&BlankInfor[4],&ReadListBuffer[buf_num*ListPerByte+56],12); //取短名
\ 037A CD2201 CALL LWRD ?0084
147 SetTextPos(explorer_str_x_def, menu_pos_list[i]-2);
\ 037D DD4EF8 LD C,(IX-8)
\ 0380 CD6801 CALL LWRD ?0090
148 PutS(BlankInfor,-1);
\ 0383 ?0032:
\ 0383 ?0025:
\ 0383 DD34F8 INC (IX-8)
\ 0386 C3FF02 JP LWRD ?0023
\ 0389 ?0022:
149 }
150 } //for
151 show_active_musiclist(active);
\ 0389 DD5E02 LD E,(IX+2)
\ 038C DD5603 LD D,(IX+3)
\ 038F 3E00 LD A,BYTE3 show_active_musiclist
\ 0391 210000 LD HL,LWRD show_active_musiclist
\ 0394 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0397 ?0018:
\ 0397 ?0012:
152 } //active==old_list else
153 } // scroll_flag else
154 }
\ 0397 FDE1 POP IY
\ 0399 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 039C ?0091:
\ 039C CD0000 CALL LWRD ?US_DIV_L02
\ 039F EB EX DE,HL
\ 03A0 29 ADD HL,HL
\ 03A1 4D LD C,L
\ 03A2 44 LD B,H
\ 03A3 29 ADD HL,HL
\ 03A4 09 ADD HL,BC
\ 03A5 C9 RET
\ 03A6 ?0092:
\ 03A6 010700 LD BC,7
\ 03A9 DD5E02 LD E,(IX+2)
\ 03AC DD5603 LD D,(IX+3)
\ 03AF C30000 JP LWRD ?US_DIV_L02
\ 03B2 show_music_list:
155
156 int show_music_list(char list_type,const WORD headid)
157 {
\ 03B2 CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 03B5 F8FF DEFW -8
\ 03B7 FDE5 PUSH IY
158 int result = RESULT_LIST; //初始化为列表消息
159 char key;
160 bool need_draw;
161 unsigned int active_list; //求余
162 unsigned int old_list;
163 BYTE IO27Bak = input8(0x27);
\ 03B9 DB27 IN A,(39)
\ 03BB DD77FE LD (IX-2),A
164 HeadIDDisplay = headid;
\ 03BE ED433F02 LD (HeadIDDisplay),BC
165 if(list_type==g_music_vars.file_list_type)
\ 03C2 DD36FA69 LD (IX-6),105
\ 03C6 DD36FB00 LD (IX-5),0
\ 03CA 3A5C00 LD A,(g_music_vars+92)
\ 03CD 47 LD B,A
\ 03CE DD7E02 LD A,(IX+2)
\ 03D1 B8 CP B
\ 03D2 2006 JR NZ,?0034
\ 03D4 ?0033:
166 {
167 active_list = g_music_vars.file_list_num;
\ 03D4 FD2A5A00 LD IY,(g_music_vars+90)
168 }
169 else //从第一个列表文从第一个文件开始显示
\ 03D8 1804 JR ?0035
\ 03DA ?0034:
170 {
171 active_list = 0;
\ 03DA FD210000 LD IY,0
\ 03DE ?0035:
172 }
173 need_draw =1;
174 // if((active_list%(OneSectorListNum*ListDisplayNum))!=0)
175 ReadOneSectorData((active_list/ListDisplayNum)*ListDisplayNum); //先预读一页数据
\ 03DE 010600 LD BC,6
\ 03E1 CDF900 CALL LWRD ?0080
\ 03E4 DD36F801 LD (IX-8),1
\ 03E8 ?0037:
176 while(1)
177 {
178
179 if(need_draw) //显示全屏
\ 03E8 AF XOR A
\ 03E9 DDB6F8 OR (IX-8)
\ 03EC 280E JR Z,?0040
\ 03EE ?0039:
180 {
181 ui_music_list(active_list,active_list,0); //显示最后一页列表
\ 03EE 0E00 LD C,0
\ 03F0 C5 PUSH BC
\ 03F1 FDE5 PUSH IY
\ 03F3 C1 POP BC
\ 03F4 CD3C05 CALL LWRD ?0093
\ 03F7 E1 POP HL
182 need_draw = FALSE;
\ 03F8 DD36F800 LD (IX-8),0
\ 03FC ?0040:
183 }
184 key = ap_get_message();
\ 03FC CD0000 CALL LWRD ap_get_message
185 old_list = active_list;
\ 03FF FDE5 PUSH IY
\ 0401 E1 POP HL
\ 0402 DD75FC LD (IX-4),L
\ 0405 DD74FD LD (IX-3),H
186 switch( key)
\ 0408 5F LD E,A
\ 0409 CD0000 CALL LWRD ?C_V_SWITCH_L06
\ 040C 0800 DEFW 8
\ 040E 05 DEFB 5
\ 040F 06 DEFB 6
\ 0410 1E DEFB 30
\ 0411 21 DEFB 33
\ 0412 30 DEFB 48
\ 0413 45 DEFB 69
\ 0414 46 DEFB 70
\ 0415 90 DEFB 144
\ 0416 DF04 DEFW ?0060
\ 0418 BD04 DEFW ?0058
\ 041A 2804 DEFW ?0042
\ 041C 5C04 DEFW ?0048
\ 041E BD04 DEFW ?0058
\ 0420 D504 DEFW ?0059
\ 0422 D504 DEFW ?0059
\ 0424 2804 DEFW ?0042
\ 0426 5C04 DEFW ?0048
\ 0428 ?0042:
187 {
188 case AP_KEY_NEXT:
189 case AP_KEY_NEXT | AP_KEY_HOLD:
190 if(active_list < g_file_list_total-1)
\ 0428 21FFFF LD HL,65535
\ 042B ED4B0000 LD BC,(g_file_list_total)
\ 042F 09 ADD HL,BC
\ 0430 4D LD C,L
\ 0431 44 LD B,H
\ 0432 FDE5 PUSH IY
\ 0434 E1 POP HL
\ 0435 A7 AND A
\ 0436 ED42 SBC HL,BC
\ 0438 3017 JR NC,?0044
\ 043A ?0043:
191 {
192 active_list++;
193 if(active_list%ListDisplayNum==0) //读下一屏列表文件
\ 043A 010600 LD BC,6
\ 043D FD23 INC IY
\ 043F FDE5 PUSH IY
\ 0441 D1 POP DE
\ 0442 CD0000 CALL LWRD ?US_MOD_L02
\ 0445 7B LD A,E
\ 0446 B2 OR D
\ 0447 2830 JR Z,?0052
\ 0449 ?0045:
194 {
195 need_draw = 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -