ui_userlist2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 765 行 · 第 1/3 页
LST
765 行
\ 026E 19 ADD HL,DE
\ 026F 110000 LD DE,scroll_buf
\ 0272 0E19 LD C,25
\ 0274 EDB0 LDIR
\ 0276 AF XOR A
\ 0277 321900 LD (scroll_buf+25),A
\ 027A 210000 LD HL,region_scroll
\ 027D C9 RET
\ 027E ?0057:
\ 027E 1600 LD D,0
\ 0280 011E00 LD BC,30
\ 0283 CD0000 CALL LWRD ?S_MUL_L02
\ 0286 210000 LD HL,disbuff
\ 0289 19 ADD HL,DE
\ 028A EB EX DE,HL
\ 028B 3E00 LD A,BYTE3 Count_Byte
\ 028D 210000 LD HL,LWRD Count_Byte
\ 0290 C9 RET
\ 0291 ?0058:
\ 0291 210000 LD HL,scroll_buf
\ 0294 CD0000 CALL LWRD ?STRLEN_L11
\ 0297 011400 LD BC,20
\ 029A A7 AND A
\ 029B ED42 SBC HL,BC
\ 029D C9 RET
\ 029E UI_Favourite:
117
118
119 int UI_Favourite(BYTE string_id)
120 {
\ 029E CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 02A1 D4FF DEFW 65492
\ 02A3 FDE5 PUSH IY
121 int Result;
122 pop_up_list_t list;
123 char USLBackbuf[32];
124 char IO27 =input8(0x27);
\ 02A5 DB27 IN A,(39)
\ 02A7 DD77D4 LD (IX-44),A
125 list.strid = favourite_string;
\ 02AA DD36D600 LD (IX-42),LOW(favourite_string)
\ 02AE DD36D700 LD (IX-41),HIGH(favourite_string)
126 list.total = 4;
\ 02B2 DD36D804 LD (IX-40),4
\ 02B6 DD36D900 LD (IX-39),0
127 list.active = 0;
\ 02BA AF XOR A
\ 02BB DD77DA LD (IX-38),A
\ 02BE DD77DB LD (IX-37),A
128 list.string_id = string_id;
\ 02C1 DD4602 LD B,(IX+2)
\ 02C4 DD70DE LD (IX-34),B
129
130 list.headid=MFAVI;
\ 02C7 DD36DCB0 LD (IX-36),176
\ 02CB DD36DD01 LD (IX-35),1
131 Result = ui_popup_list(&list, NULL);
\ 02CF 4F LD C,A
\ 02D0 C5 PUSH BC
\ 02D1 69 LD L,C
\ 02D2 61 LD H,C
\ 02D3 E5 PUSH HL
\ 02D4 2E08 LD L,8
\ 02D6 39 ADD HL,SP
\ 02D7 EB EX DE,HL
\ 02D8 3E00 LD A,BYTE3 ui_popup_list
\ 02DA 210000 LD HL,LWRD ui_popup_list
\ 02DD CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02E0 F1 POP AF
\ 02E1 F1 POP AF
\ 02E2 E5 PUSH HL
\ 02E3 FDE1 POP IY
132
133 if (Result == RESULT_IGNORE)
\ 02E5 3E34 LD A,52
\ 02E7 AD XOR L
\ 02E8 B4 OR H
\ 02E9 2005 JR NZ,?0026
\ 02EB ?0025:
134 return 0;
\ 02EB 69 LD L,C
\ 02EC 61 LD H,C
\ 02ED C39103 JP LWRD ?0043
\ 02F0 ?0026:
135 if (Result != 0)
\ 02F0 7D LD A,L
\ 02F1 B4 OR H
\ 02F2 C28E03 JP NZ,?0048
\ 02F5 ?0027:
136 return Result;
\ 02F5 ?0028:
137
138 output8(0x27,0x00);
\ 02F5 D327 OUT (39),A
139 FS_Backup(USLBackbuf,FS_BACKUP_DIRINFO,0);//目录项备份
\ 02F7 69 LD L,C
\ 02F8 61 LD H,C
\ 02F9 E5 PUSH HL
\ 02FA 0E02 LD C,2
\ 02FC 2E10 LD L,16
\ 02FE 39 ADD HL,SP
\ 02FF EB EX DE,HL
\ 0300 CD0000 CALL LWRD FS_Backup
\ 0303 E1 POP HL
140 output8(0x27,IO27);
\ 0304 DD7ED4 LD A,(IX-44)
\ 0307 D327 OUT (39),A
141 switch(list.active)
\ 0309 DD5EDA LD E,(IX-38)
\ 030C DD56DB LD D,(IX-37)
\ 030F CD0000 CALL LWRD ?S_S_SWITCH_L06
\ 0312 0000 DEFW 0
\ 0314 0300 DEFW 3
\ 0316 7903 DEFW ?0029
\ 0318 1E03 DEFW ?0030
\ 031A 3F03 DEFW ?0035
\ 031C 6103 DEFW ?0040
\ 031E ?0030:
142 {
143 case 0: //select
144
145 #ifdef ACTIVE_USERPL
146 if(need_WPL)
\ 031E 3A0000 LD A,(need_WPL)
\ 0321 B7 OR A
\ 0322 280A JR Z,?0032
\ 0324 ?0031:
147 WrHead_PL(0);
\ 0324 1E00 LD E,0
\ 0326 3E00 LD A,BYTE3 WrHead_PL
\ 0328 210000 LD HL,LWRD WrHead_PL
\ 032B CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 032E ?0032:
148 #endif
149 Result=ui_userplaylist(&g_music_vars.location,0);
\ 032E 0E00 LD C,0
\ 0330 CD9603 CALL LWRD ?0059
\ 0333 E5 PUSH HL
\ 0334 FDE1 POP IY
150 if (Result == 0)
\ 0336 7D LD A,L
\ 0337 B4 OR H
\ 0338 203F JR NZ,?0029
\ 033A ?0033:
151 {
152 return RESULT_USERLIST;
\ 033A 216C00 LD HL,108
153 }
\ 033D 1852 JR ?0043
\ 033F ?0034:
154 // return Result;
155 break;
\ 033F ?0035:
156 case 1: //add
157 #ifdef ACTIVE_USERPL
158 if(!bList_Flag&&(g_music_vars.fselmod != FSEL_TYPE_USERPL))
\ 033F 3A0000 LD A,(bList_Flag)
\ 0342 B7 OR A
\ 0343 2016 JR NZ,?0037
\ 0345 3A5100 LD A,(g_music_vars+81)
\ 0348 3D DEC A
\ 0349 3D DEC A
\ 034A 280F JR Z,?0037
\ 034C ?0039:
\ 034C ?0038:
\ 034C ?0036:
159 {
160 bList_Flag=Add_UserPL(&g_music_vars.location);
\ 034C 110700 LD DE,g_music_vars+7
\ 034F 3E00 LD A,BYTE3 Add_UserPL
\ 0351 210000 LD HL,LWRD Add_UserPL
\ 0354 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0357 7D LD A,L
\ 0358 320000 LD (bList_Flag),A
\ 035B ?0037:
161 }
162 #endif
163 Result = NULL;
\ 035B FD210000 LD IY,0
164 break;
\ 035F 1818 JR ?0029
\ 0361 ?0040:
165 case 2: //del
166 #ifdef ACTIVE_USERPL
167 if(need_WPL)
\ 0361 3A0000 LD A,(need_WPL)
\ 0364 B7 OR A
\ 0365 280A JR Z,?0042
\ 0367 ?0041:
168 WrHead_PL(0);
\ 0367 1E00 LD E,0
\ 0369 3E00 LD A,BYTE3 WrHead_PL
\ 036B 210000 LD HL,LWRD WrHead_PL
\ 036E CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0371 ?0042:
169 #endif
170 Result=(ui_userplaylist(&g_music_vars.location,1));
\ 0371 0E01 LD C,1
\ 0373 CD9603 CALL LWRD ?0059
\ 0376 E5 PUSH HL
\ 0377 FDE1 POP IY
171 /*
172 if (Result == 0)
173 {
174 return RESULT_USERLIST;
175 }
176 */
177 //return Result;
178 break;
\ 0379 ?0029:
179 }
180 output8(0x27,0x00);
\ 0379 AF XOR A
\ 037A D327 OUT (39),A
181 FS_Restore(USLBackbuf,FS_RESTORE_DIRINFO,0);//目录项恢复
\ 037C 6F LD L,A
\ 037D 67 LD H,A
\ 037E E5 PUSH HL
\ 037F 0E02 LD C,2
\ 0381 2E10 LD L,16
\ 0383 39 ADD HL,SP
\ 0384 EB EX DE,HL
\ 0385 CD0000 CALL LWRD FS_Restore
\ 0388 E1 POP HL
182 output8(0x27,IO27);
\ 0389 DD7ED4 LD A,(IX-44)
\ 038C D327 OUT (39),A
183 return Result;
\ 038E ?0048:
\ 038E FDE5 PUSH IY
\ 0390 E1 POP HL
184 }
\ 0391 ?0043:
\ 0391 FDE1 POP IY
\ 0393 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0396 ?0059:
\ 0396 110700 LD DE,g_music_vars+7
\ 0399 3E00 LD A,BYTE3 ui_userplaylist
\ 039B 210000 LD HL,LWRD ui_userplaylist
\ 039E C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 0000 RSEG APC_UI_USERLIST
\ 0000 favourite_string:
\ 0000 B301 DEFW 435
\ 0002 B101 DEFW 433
\ 0004 B201 DEFW 434
\ 0006 D101 DEFW 465
\ 0008 END
Errors: none
Warnings: none
Code size: 929
Constant size: 8
Static variable size: Data(0) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?