sub_function2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,392 行 · 第 1/5 页
LST
1,392 行
\ 032F CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 0332 F4FF DEFW -12
\ 0334 FDE5 PUSH IY
269 wma_play_status_t status_buf;
270 int key;
271 slider_t slider;
272 return_to_play=1;
\ 0336 3E01 LD A,1
\ 0338 320000 LD (return_to_play),A
273 slider.string_id=g_comval.langid;
\ 033B 3A0C00 LD A,(g_comval+12)
\ 033E DD77FE LD (IX-2),A
274 if (RePlayStatus != NormalPlay)
\ 0341 3A0000 LD A,(RePlayStatus)
\ 0344 B7 OR A
\ 0345 CAD503 JP Z,?0069
\ 0348 ?0068:
275 {
276 if (g_currentMusicType == Music_MP3)
\ 0348 3A0000 LD A,(g_currentMusicType)
\ 034B 3D DEC A
\ 034C C24204 JP NZ,?0131
\ 034F ?0070:
277 {
278
279 if (g_music_vars.location.disk != 'C')
\ 034F 3A0700 LD A,(g_music_vars+7)
\ 0352 FE43 CP 67
\ 0354 C24204 JP NZ,?0131
\ 0357 ?0072:
280 {
281 //如不是“C”盘就不进行速度调节
282 return 0;
283 }
\ 0357 ?0073:
284 //show background
285 ClearScreen(NULL);
\ 0357 110000 LD DE,0
\ 035A CD0000 CALL LWRD ClearScreen
286 slider.max = 8;
\ 035D DD36F808 LD (IX-8),8
\ 0361 DD36F900 LD (IX-7),0
287 slider.min = -8;
\ 0365 DD36F6F8 LD (IX-10),248
\ 0369 DD36F7FF LD (IX-9),255
288 slider.step = 1;
\ 036D DD36FC01 LD (IX-4),1
\ 0371 DD36FD00 LD (IX-3),0
289 slider.title=MPLAY3;
\ 0375 DD36F4D4 LD (IX-12),212
\ 0379 DD36F501 LD (IX-11),1
290 CheckPlayrateLimit();
\ 037D 3E00 LD A,BYTE3 CheckPlayrateLimit
\ 037F 212400 LD HL,LWRD CheckPlayrateLimit
\ 0382 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
291 slider.value = g_music_vars.play_rate;
\ 0385 ED4B0300 LD BC,(g_music_vars+3)
\ 0389 79 LD A,C
\ 038A 07 RLCA
\ 038B 9F SBC A,A
\ 038C 47 LD B,A
\ 038D DD71FA LD (IX-6),C
\ 0390 DD70FB LD (IX-5),B
292 ui_auto_update=FALSE;
\ 0393 AF XOR A
\ 0394 320000 LD (ui_auto_update),A
293 g_result = ui_slider(& slider, speed_callback);
\ 0397 0E00 LD C,BYTE3 speed_callback
\ 0399 C5 PUSH BC
\ 039A 210000 LD HL,LWRD speed_callback
\ 039D E5 PUSH HL
\ 039E 210600 LD HL,6
\ 03A1 39 ADD HL,SP
\ 03A2 EB EX DE,HL
\ 03A3 3E00 LD A,BYTE3 ui_slider
\ 03A5 210000 LD HL,LWRD ui_slider
\ 03A8 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 03AB F1 POP AF
\ 03AC F1 POP AF
\ 03AD 220000 LD (g_result),HL
294 ui_auto_update = TRUE;
295 g_music_vars.play_rate = slider.value;
\ 03B0 DD7EFA LD A,(IX-6)
\ 03B3 320300 LD (g_music_vars+3),A
296
297 SetFullInterface();
\ 03B6 AF XOR A
\ 03B7 320000 LD (ui_auto_update),A
\ 03BA FD210000 LD IY,UpDisplayFlag
\ 03BE FD7E00 LD A,(IY+0)
\ 03C1 F6C1 OR 193
\ 03C3 FD7700 LD (IY+0),A
\ 03C6 FD3601FF LD (IY+1),255
298 need_draw = TRUE;
\ 03CA 3E01 LD A,1
\ 03CC 320000 LD (need_draw),A
299
300 if (g_result != 0)
\ 03CF 7D LD A,L
\ 03D0 B4 OR H
\ 03D1 286F JR Z,?0131
\ 03D3 ?0074:
301 {
302 return g_result;
\ 03D3 1870 JR ?0078
303 }
\ 03D5 ?0075:
\ 03D5 ?0071:
304
305 }
306 return 0;
307 }
\ 03D5 ?0069:
308
309 //show background
310 slider.min = 0;
\ 03D5 DD77F6 LD (IX-10),A
\ 03D8 DD77F7 LD (IX-9),A
311 slider.max = 31;
\ 03DB DD36F81F LD (IX-8),31
\ 03DF DD77F9 LD (IX-7),A
312 slider.value = g_music_vars.volume;
\ 03E2 ED4B0000 LD BC,(g_music_vars)
\ 03E6 79 LD A,C
\ 03E7 07 RLCA
\ 03E8 9F SBC A,A
\ 03E9 47 LD B,A
\ 03EA DD71FA LD (IX-6),C
\ 03ED DD70FB LD (IX-5),B
313 slider.step = 1;
\ 03F0 DD36FC01 LD (IX-4),1
\ 03F4 DD36FD00 LD (IX-3),0
314 slider.title=CHANGEVO;
\ 03F8 DD36F489 LD (IX-12),137
\ 03FC DD36F501 LD (IX-11),1
315 g_result = ui_slider(& slider, volume_callback);
\ 0400 0E00 LD C,BYTE3 volume_callback
\ 0402 C5 PUSH BC
\ 0403 210000 LD HL,LWRD volume_callback
\ 0406 E5 PUSH HL
\ 0407 210600 LD HL,6
\ 040A 39 ADD HL,SP
\ 040B EB EX DE,HL
\ 040C 3E00 LD A,BYTE3 ui_slider
\ 040E 210000 LD HL,LWRD ui_slider
\ 0411 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0414 F1 POP AF
\ 0415 F1 POP AF
\ 0416 220000 LD (g_result),HL
316 ui_auto_update = TRUE;
\ 0419 3E01 LD A,1
\ 041B 320000 LD (ui_auto_update),A
317 StartIntro(FALSE);
\ 041E AF XOR A
\ 041F 320000 LD (g_introCntMode),A
\ 0422 3A4F00 LD A,(g_music_vars+79)
\ 0425 320000 LD (g_OldSecTempBackup),A
\ 0428 AF XOR A
\ 0429 320000 LD (g_introCNT),A
318
319 if (g_result != 0)
\ 042C 7D LD A,L
\ 042D B4 OR H
\ 042E 2015 JR NZ,?0078
\ 0430 ?0076:
320 {
321 return g_result;
322 }
\ 0430 ?0077:
323 SetFullInterface();
\ 0430 320000 LD (ui_auto_update),A
\ 0433 210000 LD HL,UpDisplayFlag
\ 0436 7E LD A,(HL)
\ 0437 F6C1 OR 193
\ 0439 77 LD (HL),A
\ 043A 23 INC HL
\ 043B 36FF LD (HL),255
324 need_draw = TRUE;
\ 043D 3E01 LD A,1
\ 043F 320000 LD (need_draw),A
325 return 0;
\ 0442 ?0131:
\ 0442 210000 LD HL,0
326 }
\ 0445 ?0078:
\ 0445 FDE1 POP IY
\ 0447 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 044A GetInformation:
327
328
329 /*
330 ********************************************************************************
331 * int GetInformation(void)
332 *
333 * Description : 读取歌曲信息,歌词
334 *
335 * Arguments : void
336 *
337 * Returns : int
338 *
339 * Notes :
340 *
341 ********************************************************************************
342 */
343 int GetInformation( void )
344 {
\ 044A CD0000 CALL LWRD ?ENT_AUTO_DIRECT_L09
\ 044D F0FF DEFW 65520
345 char g_lyric_mod;
346 int result;
347 ID3Info_t ID3;
348
349 //清 WATCH_DOG
350 output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
\ 044F DB4E IN A,(78)
\ 0451 CBDF SET 3,A
\ 0453 D34E OUT (78),A
351 g_currentMusicType = CheckMusicType(g_music_vars.location.filename);
\ 0455 112100 LD DE,g_music_vars+33
\ 0458 3E00 LD A,BYTE3 CheckMusicType
\ 045A 217F00 LD HL,LWRD CheckMusicType
\ 045D CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0460 7D LD A,L
\ 0461 320000 LD (g_currentMusicType),A
352 ID3.TIT2_length = 30;
\ 0464 DD36F41E LD (IX-12),30
353 ID3.TPE1_length = 30;
\ 0468 DD36F71E LD (IX-9),30
354 ID3.TALB_length = 30;
\ 046C DD36FA1E LD (IX-6),30
355 ID3.TENC_length = 0;
\ 0470 DD36FD00 LD (IX-3),0
356 ID3.TIT2_buffer = & g_TagInfoBuf[0];
\ 0474 DD36F500 LD (IX-11),LOW(g_TagInfoBuf)
\ 0478 DD36F600 LD (IX-10),HIGH(g_TagInfoBuf)
357 ID3.TPE1_buffer = & g_TagInfoBuf[30];
\ 047C DD36F800 LD (IX-8),LOW(g_TagInfoBuf+30)
\ 0480 DD36F900 LD (IX-7),HIGH(g_TagInfoBuf+30)
358 ID3.TALB_buffer = & g_TagInfoBuf[60];
\ 0484 DD36FB00 LD (IX-5),LOW(g_TagInfoBuf+60)
\ 0488 DD36FC00 LD (IX-4),HIGH(g_TagInfoBuf+60)
359 ID3.TENC_buffer = & g_TagInfoBuf[90];
\ 048C DD36FE00 LD (IX-2),LOW(g_TagInfoBuf+90)
\ 0490 DD36FF00 LD (IX-1),HIGH(g_TagInfoBuf+90)
360
361 switch (g_currentMusicType)
\ 0494 FE02 CP 2
\ 0496 3864 JR C,?0089
\ 0498 FE05 CP 5
\ 049A 3060 JR NC,?0089
\ 049C ?0080:
362 {
363 case Music_WMA:
364 case Music_WMV:
365 case Music_ASF:
366 ID3.TALB_length = 30;
\ 049C DD36FA1E LD (IX-6),30
367 if (wmaGetTAGInfo(g_music_vars.location.filename, &ID3))
\ 04A0 210400 LD HL,4
\ 04A3 39 ADD HL,SP
\ 04A4 4D LD C,L
\ 04A5 44 LD B,H
\ 04A6 112100 LD DE,g_music_vars+33
\ 04A9 3E00 LD A,BYTE3 wmaGetTAGInfo
\ 04AB 210000 LD HL,LWRD wmaGetTAGInfo
\ 04AE CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 04B1 2C INC L
\ 04B2 2D DEC L
\ 04B3 2841 JR Z,?0082
\ 04B5 ?0081:
368 {
369 unitochar(g_TagInfoBuf, 30, g_comval.langid);
\ 04B5 210C00 LD HL,g_comval+12
\ 04B8 4E LD C,(HL)
\ 04B9 C5 PUSH BC
\ 04BA 011E00 LD BC,30
\ 04BD CDC001 CALL LWRD ?0149
\ 04C0 F1 POP AF
370 unitochar(&g_TagInfoBuf[30], 30, g_comval.langid);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?