📄 ui_playlist.lst
字号:
\ 025E ?0050:
167 goto funreturn;
\ 025E 1877 JR ?0039
\ 0260 ?0047:
168 }
169 break;
\ 0260 C3DE00 JP LWRD ?0015
\ 0263 ?0051:
170
171 case AP_MSG_SD_OUT:
172 //如在游览SD卡,但SD卡又被拔出,就返回拔出信号
173 if (location->disk == 'H')
\ 0263 DD6E02 LD L,(IX+2)
\ 0266 DD6603 LD H,(IX+3)
\ 0269 7E LD A,(HL)
\ 026A FE48 CP 72
\ 026C 2006 JR NZ,?0053
\ 026E ?0052:
174 {
175 result = RESULT_SD_OUT;
\ 026E DD36FA36 LD (IX-6),54
176 goto funreturn;
\ 0272 1863 JR ?0039
\ 0274 ?0053:
177 }
178 break;
\ 0274 C3DE00 JP LWRD ?0015
\ 0277 ?0054:
179
180 case AP_MSG_SD_IN:
181 break;
\ 0277 ?0055:
182
183 case AP_MSG_RTC:
184 break;
\ 0277 ?0056:
185
186 default:
187 key=ap_handle_hotkey(key);
\ 0277 CD0000 CALL LWRD ap_handle_hotkey
\ 027A DD77FB LD (IX-5),A
188 if(key == RESULT_REDRAW)
\ 027D FE32 CP 50
\ 027F 201F JR NZ,?0058
\ 0281 ?0057:
189 {
190 ShowPlaylist(top,bottom,playlist_active,playlist_active,Strname,string_id,1);
\ 0281 0E01 LD C,1
\ 0283 C5 PUSH BC
\ 0284 DD6E0A LD L,(IX+10)
\ 0287 E5 PUSH HL
\ 0288 DD6EF8 LD L,(IX-8)
\ 028B DD66F9 LD H,(IX-7)
\ 028E E5 PUSH HL
\ 028F 3A0000 LD A,(playlist_active)
\ 0292 4F LD C,A
\ 0293 C5 PUSH BC
\ 0294 4F LD C,A
\ 0295 C5 PUSH BC
\ 0296 CD2D03 CALL LWRD ?0074
\ 0299 E1 POP HL
\ 029A E1 POP HL
\ 029B E1 POP HL
\ 029C E1 POP HL
\ 029D E1 POP HL
\ 029E 1811 JR ?0061
\ 02A0 ?0058:
191 }
192 else if( key != 0 )
\ 02A0 AF XOR A
\ 02A1 DDB6FB OR (IX-5)
\ 02A4 280B JR Z,?0061
\ 02A6 ?0060:
193 {
194 FSELGetLocation(location); //store the selecting result
\ 02A6 CD0003 CALL LWRD ?0071
195 result = key;
\ 02A9 DD46FB LD B,(IX-5)
\ 02AC DD70FA LD (IX-6),B
196 goto funreturn;
\ 02AF 1826 JR ?0039
\ 02B1 ?0061:
\ 02B1 ?0059:
197 }
198 if(ScrollFlag)
\ 02B1 3A0000 LD A,(ScrollFlag)
\ 02B4 B7 OR A
\ 02B5 281D JR Z,?0063
\ 02B7 ?0062:
199 ShowPlaylist(top,bottom,playlist_active,playlist_active,Strname,string_id,0);
\ 02B7 0E00 LD C,0
\ 02B9 C5 PUSH BC
\ 02BA DD6E0A LD L,(IX+10)
\ 02BD E5 PUSH HL
\ 02BE DD6EF8 LD L,(IX-8)
\ 02C1 DD66F9 LD H,(IX-7)
\ 02C4 E5 PUSH HL
\ 02C5 3A0000 LD A,(playlist_active)
\ 02C8 4F LD C,A
\ 02C9 C5 PUSH BC
\ 02CA 4F LD C,A
\ 02CB C5 PUSH BC
\ 02CC CD2D03 CALL LWRD ?0074
\ 02CF E1 POP HL
\ 02D0 E1 POP HL
\ 02D1 E1 POP HL
\ 02D2 E1 POP HL
\ 02D3 E1 POP HL
\ 02D4 ?0063:
\ 02D4 ?0017:
200 } //switch()
201 }
202
203 funreturn:
\ 02D4 C3DE00 JP LWRD ?0015
\ 02D7 ?0039:
204 ////////////////////////////////换页//////////////////////////////////////
205 DmaCpy( 0x4000, 0x07, 0x4000, 0x06, 0x2000-1 ); //恢复8K代码到第7页
\ 02D7 21FF1F LD HL,8191
\ 02DA E5 PUSH HL
\ 02DB 0E06 LD C,6
\ 02DD C5 PUSH BC
\ 02DE 210040 LD HL,16384
\ 02E1 E5 PUSH HL
\ 02E2 0E07 LD C,7
\ 02E4 EB EX DE,HL
\ 02E5 CD7303 CALL LWRD DmaCpy
\ 02E8 E1 POP HL
\ 02E9 E1 POP HL
\ 02EA E1 POP HL
206 output8(0x05, i);
\ 02EB DD7EFE LD A,(IX-2)
\ 02EE D305 OUT (5),A
207 SetSWAPAddress(pagebak);
\ 02F0 DD5EFD LD E,(IX-3)
\ 02F3 CD0000 CALL LWRD SetSWAPAddress
208 ////////////////////////////////换页//////////////////////////////////////
209
210
211 return result;
\ 02F6 DD6EFA LD L,(IX-6)
\ 02F9 2600 LD H,0
212 }
\ 02FB ?0064:
\ 02FB FDE1 POP IY
\ 02FD C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0300 ?0071:
\ 0300 DD5E02 LD E,(IX+2)
\ 0303 DD5603 LD D,(IX+3)
\ 0306 3E00 LD A,BYTE3 fselGetLocation
\ 0308 210000 LD HL,LWRD fselGetLocation
\ 030B C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 030E ?0072:
\ 030E DD5E02 LD E,(IX+2)
\ 0311 DD5603 LD D,(IX+3)
\ 0314 3E00 LD A,BYTE3 fselSetLocation
\ 0316 210000 LD HL,LWRD fselSetLocation
\ 0319 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 031C ?0073:
\ 031C FDE5 PUSH IY
\ 031E C1 POP BC
\ 031F DD5EF6 LD E,(IX-10)
\ 0322 DD56F7 LD D,(IX-9)
\ 0325 3E00 LD A,BYTE3 reinit_idm_buf_playlist
\ 0327 210000 LD HL,LWRD reinit_idm_buf_playlist
\ 032A C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 032D ?0074:
\ 032D FDE5 PUSH IY
\ 032F E1 POP HL
\ 0330 4D LD C,L
\ 0331 DD5EF6 LD E,(IX-10)
\ 0334 3E00 LD A,BYTE3 ShowPlaylist
\ 0336 210000 LD HL,LWRD ShowPlaylist
\ 0339 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 033C ?0075:
\ 033C ED4B0200 LD BC,(cur_grouplist)
\ 0340 09 ADD HL,BC
\ 0341 220200 LD (cur_grouplist),HL
\ 0344 010500 LD BC,5
\ 0347 ED5B0000 LD DE,(playlist_active)
\ 034B CD0000 CALL LWRD ?US_DIV_L02
\ 034E EB EX DE,HL
\ 034F 4D LD C,L
\ 0350 44 LD B,H
\ 0351 29 ADD HL,HL
\ 0352 29 ADD HL,HL
\ 0353 09 ADD HL,BC
\ 0354 DD75F6 LD (IX-10),L
\ 0357 DD74F7 LD (IX-9),H
\ 035A 010400 LD BC,4
\ 035D 09 ADD HL,BC
\ 035E E5 PUSH HL
\ 035F FDE1 POP IY
\ 0361 C9 RET
\ 0362 ?0076:
\ 0362 220000 LD (playlist_active),HL
\ 0365 010500 LD BC,5
\ 0368 EB EX DE,HL
\ 0369 CD0000 CALL LWRD ?US_DIV_L02
\ 036C 2A0200 LD HL,(cur_grouplist)
\ 036F A7 AND A
\ 0370 ED52 SBC HL,DE
\ 0372 C9 RET
\ 0373 DmaCpy:
213
214
215
216
217 static void DmaCpy(WORD descadd, BYTE descpg, WORD srcadd, BYTE srcpg, WORD Length)
218 {
\ 0373 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
219 output8(REG14_DMA2SRCAddr0, (BYTE)(srcadd));
\ 0376 DD7E08 LD A,(IX+8)
\ 0379 D314 OUT (20),A
220 output8(REG15_DMA2SRCAddr1, (BYTE)(srcadd >> 8));
\ 037B DD7E09 LD A,(IX+9)
\ 037E D315 OUT (21),A
221 output8(REG16_DMA2SRCAddr2, 0x00);
\ 0380 AF XOR A
\ 0381 D316 OUT (22),A
222 output8(REG17_DMA2SRCAddr3, 0x40); //IDM/IPM/ZRAM2
\ 0383 3E40 LD A,64
\ 0385 D317 OUT (23),A
223 output8(REG18_DMA2SRCAddrIntSramReg, srcpg); //ZRAM2PAGE
\ 0387 DD7E0A LD A,(IX+10)
\ 038A D318 OUT (24),A
224 output8(REG19_DMA2DSTAddr0, (BYTE)(descadd));
\ 038C 7B LD A,E
\ 038D D319 OUT (25),A
225 output8(REG1A_DMA2DSTAddr1, (BYTE)(descadd >> 8));
\ 038F EB EX DE,HL
\ 0390 7C LD A,H
\ 0391 D31A OUT (26),A
226 output8(REG1B_DMA2DSTAddr2, 0x00);
\ 0393 AF XOR A
\ 0394 D31B OUT (27),A
227 output8(REG1C_DMA2DSTAddr3, 0x40); //IDM/IPM/ZRAM2
\ 0396 3E40 LD A,64
\ 0398 D31C OUT (28),A
228 output8(REG1D_DMA2DSTAddrIntSram, descpg); //IDMHPAGE_06
\ 039A 79 LD A,C
\ 039B D31D OUT (29),A
229 output8(REG1E_DMA2ByteCounterLow, (BYTE)(Length));
\ 039D DD7E0C LD A,(IX+12)
\ 03A0 D31E OUT (30),A
230 output8(REG1F_DMA2ByteCounterHi, (BYTE)(Length >> 8));
\ 03A2 DD7E0D LD A,(IX+13)
\ 03A5 D31F OUT (31),A
231 output8(REG20_DMA2Mode, 0x00);
\ 03A7 AF XOR A
\ 03A8 D320 OUT (32),A
232 output8(REG21_DMA2CMD, 0x01);
\ 03AA 3E01 LD A,1
\ 03AC D321 OUT (33),A
\ 03AE ?0066:
233 while( input8(REG21_DMA2CMD)&0x01 != 0x00 ) {}
\ 03AE DB21 IN A,(33)
\ 03B0 CB47 BIT 0,A
\ 03B2 20FA JR NZ,?0066
\ 03B4 ?0067:
234 return;
\ 03B4 ?0065:
235 }
\ 03B4 C30000 JP LWRD ?LEAVE_DIRECT_L09
\ 0000 RSEG UDATA0
\ 0000 playlist_active:
\ 0002 DEFS 2
\ 0002 cur_grouplist:
\ 0004 DEFS 2
\ 0004 END
Errors: none
Warnings: none
Code size: 951
Constant size: 0
Static variable size: Data(4) Iram(0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -