ui_userlist.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,141 行 · 第 1/4 页
LST
1,141 行
\ 03DF ?0070:
278 {
279 memcpy(&CurOffset,disbuff+(new_active-1)*30+28,2);
\ 03DF 010200 LD BC,2
\ 03E2 210A00 LD HL,10
\ 03E5 39 ADD HL,SP
\ 03E6 E5 PUSH HL
\ 03E7 211C02 LD HL,disbuff+28
\ 03EA 4F LD C,A
\ 03EB 0B DEC BC
\ 03EC 1828 JR ?0101
280 }
281 // memcpy(&CurOffset,disbuff+26,2);
282 else //active = 0;从双向链表被删除项的后继的直接前驱找当前的offset
\ 03EE ?0071:
283 {
284 if(g_list_count == vTotal-1) //最后一项
\ 03EE 21FFFF LD HL,65535
\ 03F1 ED4BC602 LD BC,(vTotal)
\ 03F5 09 ADD HL,BC
\ 03F6 FDE5 PUSH IY
\ 03F8 C1 POP BC
\ 03F9 A7 AND A
\ 03FA ED42 SBC HL,BC
\ 03FC 200B JR NZ,?0074
\ 03FE ?0073:
285 CurOffset = vLastOffset; //最后一项的偏移
\ 03FE 2AC402 LD HL,(vLastOffset)
\ 0401 DD75FC LD (IX-4),L
\ 0404 DD74FD LD (IX-3),H
286 else
\ 0407 181A JR ?0075
\ 0409 ?0074:
287 memcpy(&CurOffset,disbuff+(new_active+1)*30+26,2);
\ 0409 010200 LD BC,2
\ 040C 210A00 LD HL,10
\ 040F 39 ADD HL,SP
\ 0410 E5 PUSH HL
\ 0411 211A02 LD HL,disbuff+26
\ 0414 4F LD C,A
\ 0415 03 INC BC
\ 0416 ?0101:
\ 0416 111E00 LD DE,30
\ 0419 CD0000 CALL LWRD ?S_MUL_L02
\ 041C 19 ADD HL,DE
\ 041D D1 POP DE
\ 041E 010200 LD BC,2
\ 0421 EDB0 LDIR
\ 0423 ?0075:
\ 0423 ?0072:
288 }
289 user_pl_del(CurOffset);
\ 0423 DD5EFC LD E,(IX-4)
\ 0426 DD56FD LD D,(IX-3)
\ 0429 3E00 LD A,BYTE3 user_pl_del
\ 042B 210000 LD HL,LWRD user_pl_del
\ 042E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
290
291 if(PlaylistCount==0)
\ 0431 2A0000 LD HL,(PlaylistCount)
\ 0434 7D LD A,L
\ 0435 B4 OR H
\ 0436 200C JR NZ,?0077
\ 0438 ?0076:
292 {
293 FirstOffset = 0;
\ 0438 6F LD L,A
\ 0439 67 LD H,A
\ 043A 220000 LD (FirstOffset),HL
294 LastOffset =0;
\ 043D 220000 LD (LastOffset),HL
295 WrHead_PL(1); //删除所有文件,将所有信息clear zhangxs add 2007.05.11
\ 0440 1E01 LD E,1
\ 0442 1802 JR ?0102
296 }
297 else
\ 0444 ?0077:
298 WrHead_PL(0);
\ 0444 1E00 LD E,0
\ 0446 ?0102:
\ 0446 3E00 LD A,BYTE3 WrHead_PL
\ 0448 210000 LD HL,LWRD WrHead_PL
\ 044B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 044E ?0078:
299 /*
300 if(location->PL_Cur>(g_list_count+1)) //删除的是当前曲且为最后一曲,取下一曲为列表第一曲
301 {
302 location->PL_Cur = 1; //
303 return RESULT_USERLIST; //需要重新选择列表文件
304 }
305 */
306 if(g_music_vars.fselmod == FSEL_TYPE_USERPL) //当前为收藏夹模式要重新选择
\ 044E 3A5100 LD A,(g_music_vars+81)
\ 0451 3D DEC A
\ 0452 3D DEC A
\ 0453 203C JR NZ,?0080
\ 0455 ?0079:
307 {
308 // if(location->PL_Cur == (g_list_count+1)) //删除的是当前曲,取下一曲
309 // {
310 // location->PL_Cur ++;
311 // if((g_list_count+1) == vTotal)
312 // location->PL_Cur =1; // 删除的是当前曲且为最后一曲,取下一曲为列表第一曲
313 // else
314 // location->PL_Cur++; //取下一曲
315 if(location->PL_Cur>=(g_list_count+1)) //删除为当前曲或者
\ 0455 FDE5 PUSH IY
\ 0457 C1 POP BC
\ 0458 03 INC BC
\ 0459 212900 LD HL,41
\ 045C DD5E02 LD E,(IX+2)
\ 045F DD5603 LD D,(IX+3)
\ 0462 19 ADD HL,DE
\ 0463 56 LD D,(HL)
\ 0464 23 INC HL
\ 0465 66 LD H,(HL)
\ 0466 6A LD L,D
\ 0467 A7 AND A
\ 0468 ED42 SBC HL,BC
\ 046A 3820 JR C,?0084
\ 046C ?0081:
316 {
317 location->PL_Cur--;
\ 046C 212900 LD HL,41
\ 046F 4B LD C,E
\ 0470 DD4603 LD B,(IX+3)
\ 0473 09 ADD HL,BC
\ 0474 5E LD E,(HL)
\ 0475 23 INC HL
\ 0476 56 LD D,(HL)
\ 0477 1B DEC DE
\ 0478 72 LD (HL),D
\ 0479 2B DEC HL
\ 047A 73 LD (HL),E
318 if(location->PL_Cur==0)
\ 047B 212900 LD HL,41
\ 047E 09 ADD HL,BC
\ 047F 7E LD A,(HL)
\ 0480 23 INC HL
\ 0481 B6 OR (HL)
\ 0482 2008 JR NZ,?0084
\ 0484 ?0083:
319 location->PL_Cur = 1;
\ 0484 212900 LD HL,41
\ 0487 09 ADD HL,BC
\ 0488 3601 LD (HL),1
\ 048A 23 INC HL
\ 048B 77 LD (HL),A
\ 048C ?0084:
\ 048C ?0082:
320 }
321 //return RESULT_USERLIST;
322 // }
323 return RESULT_USERLIST;
\ 048C 216C00 LD HL,108
324 } //非收藏夹模式不重新选择文件
\ 048F 184E JR ?0094
\ 0491 ?0080:
325 else
326 return NULL;
\ 0491 210000 LD HL,0
327 }
\ 0494 1849 JR ?0094
328 break;
\ 0496 ?0085:
329 // case AP_KEY_MODE | AP_KEY_LONG: //修改为返回main ap
330 // break;
331
332 case AP_MSG_WAIT_TIMEOUT:
333 output8(0x27,00);
334 FS_FClose(fpview);
\ 0496 CDE404 CALL LWRD ?0108
335 output8(0x27,IO27);
336 return RESULT_IGNORE;
\ 0499 ?0104:
\ 0499 213400 LD HL,52
337 break;
\ 049C 1841 JR ?0094
\ 049E ?0086:
338
339 default:
340 key = ap_handle_hotkey(key);
\ 049E CD0000 CALL LWRD ap_handle_hotkey
\ 04A1 DD77FA LD (IX-6),A
341 if(key == RESULT_REDRAW)
\ 04A4 FE32 CP 50
\ 04A6 2006 JR NZ,?0088
\ 04A8 ?0087:
342 need_draw = TRUE;
\ 04A8 DD36F501 LD (IX-11),1
343 else
\ 04AC 1810 JR ?0091
\ 04AE ?0088:
344 if(key != 0)
\ 04AE AF XOR A
\ 04AF DDB6FA OR (IX-6)
\ 04B2 280A JR Z,?0091
\ 04B4 ?0090:
345 {
346 output8(0x27,00);
347 FS_FClose(fpview);
\ 04B4 CDE404 CALL LWRD ?0108
348 output8(0x27,IO27);
349 return key;
\ 04B7 DD6EFA LD L,(IX-6)
\ 04BA 2600 LD H,0
350 }
\ 04BC 1821 JR ?0094
\ 04BE ?0091:
\ 04BE ?0089:
351 if(ScrollFlag)
\ 04BE 3A0000 LD A,(ScrollFlag)
\ 04C1 B7 OR A
\ 04C2 2818 JR Z,?0093
\ 04C4 ?0092:
352 ui_viewlist(old_active,new_active,list_num,type,1);
\ 04C4 0E01 LD C,1
\ 04C6 C5 PUSH BC
\ 04C7 DD6E04 LD L,(IX+4)
\ 04CA E5 PUSH HL
\ 04CB DD6EF8 LD L,(IX-8)
\ 04CE E5 PUSH HL
\ 04CF 48 LD C,B
\ 04D0 58 LD E,B
\ 04D1 3E00 LD A,BYTE3 ui_viewlist
\ 04D3 210000 LD HL,LWRD ui_viewlist
\ 04D6 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04D9 E1 POP HL
\ 04DA E1 POP HL
\ 04DB E1 POP HL
\ 04DC ?0093:
\ 04DC ?0053:
\ 04DC C35B02 JP LWRD ?0047
353 }//switch
354 } //while
355 output8(0x27,00);
356 FS_FClose(fpview);
357 output8(0x27,IO27);
358 return RESULT_IGNORE;
359 }
\ 04DF ?0094:
\ 04DF FDE1 POP IY
\ 04E1 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 04E4 ?0108:
\ 04E4 AF XOR A
\ 04E5 ?0107:
\ 04E5 D327 OUT (39),A
\ 04E7 ED5BC002 LD DE,(fpview)
\ 04EB CD0000 CALL LWRD FS_FClose
\ 04EE DD7EF7 LD A,(IX-9)
\ 04F1 D327 OUT (39),A
\ 04F3 C9 RET
360
\ 0000 RSEG CSTR
\ 0000 ?0002:
\ 0000 3A DEFB ':'
\ 0001 00 DEFB 0
\ 0000 RSEG APD_UI_PLAYLIST
\ 0000 vbuff:
\ 0200 DEFS 512
\ 0200 disbuff:
\ 02B4 DEFS 180
\ 02B4 vfilename:
\ 02C0 DEFS 12
\ 02C0 fpview:
\ 02C2 DEFS 2
\ 02C2 vFirstOffset:
\ 02C4 DEFS 2
\ 02C4 vLastOffset:
\ 02C6 DEFS 2
\ 02C6 vTotal:
\ 02C8 DEFS 2
\ 02C8 vsave_offset:
\ 02CA DEFS 2
\ 02CA END
Errors: none
Warnings: none
Code size: 1268
Constant size: 2
Static variable size: Data(714) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?