bookmarkmenu.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 195 行
S01
195 行
NAME bookmarkmenu(17)
RSEG BOOKMARKMENU(0)
RSEG BOOKMARKMENU_C(0)
EXTERN AddBookMarkItem
PUBLIC UI_BookMark
EXTERN UI_BookMarkMenu
PUBLIC bookmark_string
EXTERN g_music_vars
EXTERN musicpSendCommand
EXTERN ui_popup_list
EXTERN ?CLZ80B_4_04_L00
EXTERN ?S_S_SWITCH_L06
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_LEAVE_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
EXTERN ?ENT_AUTO_DIRECT_L09
RSEG BOOKMARKMENU
UI_BookMark:
; 1. #include "actos.h"
; 2. #include "ap_common.h"
; 3. #include "ap_music.h"
; 4. #include <MusicBookMark.h>
; 5.
; 6. extern music_vars_t g_music_vars;//本AP的公共变量
; 7.
; 8. #pragma memory=constseg(BOOKMARKMENU_C)
; 9. const WORD bookmark_string[4] ={ MEB2,MEB4,MEB3,MSTOP5};
; 10. #pragma memory=default
; 11.
; 12. #pragma memory=dataseg(BOOKMARKMENU_D)
; 13. //STRU_MusicBreakPoint MusicBreakPT;
; 14. #pragma memory=default
; 15.
; 16. #pragma codeseg(BOOKMARKMENU)
; 17. int UI_BookMark(BYTE string_id)
; 18. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65518
PUSH IY
; 19. int Result;
; 20. pop_up_list_t list;
; 21. uchar IMK_Reg;
; 22. Full_time_t time_buf;
; 23.
; 24. list.strid = bookmark_string;
LD (IX-10),LOW(bookmark_string)
LD (IX-9),HIGH(bookmark_string)
; 25. list.total = 4;
LD (IX-8),4
LD (IX-7),0
; 26. list.active = 0;
XOR A
LD (IX-6),A
LD (IX-5),A
; 27. list.string_id = string_id;
LD B,(IX+2)
LD (IX-2),B
; 28.
; 29. list.headid=MBMARK;
LD (IX-4),174
LD (IX-3),1
; 30. Result = ui_popup_list(&list, NULL);
LD C,A
PUSH BC
LD L,C
LD H,C
PUSH HL
LD L,14
ADD HL,SP
EX DE,HL
LD A,BYTE3 ui_popup_list
LD HL,LWRD ui_popup_list
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
; 31.
; 32. if (Result == RESULT_IGNORE)
LD A,52
XOR L
OR H
JR Z,?0006
?0002:
; 33. return 0;
?0003:
; 34. if (Result != 0)
LD A,L
OR H
JR NZ,?0012
?0004:
; 35. return Result;
?0005:
; 36.
; 37. switch(list.active)
LD E,(IX-6)
LD D,(IX-5)
CALL LWRD ?S_S_SWITCH_L06
DEFW 0
DEFW 3
DEFW ?0006
DEFW ?0007
DEFW ?0008
DEFW ?0009
?0007:
; 38. {
; 39. case 0: //select
; 40. return(UI_BookMarkMenu(&g_music_vars.location,MUSICBOOKMARK_SELECT,string_id));
LD L,B
PUSH HL
LD C,1
JR ?0014
; 41. case 1: //delete
?0008:
; 42. return(UI_BookMarkMenu(&g_music_vars.location,MUSICBOOKMARK_DELETE,string_id));
LD L,B
PUSH HL
LD C,2
?0014:
LD DE,g_music_vars+7
LD A,BYTE3 UI_BookMarkMenu
LD HL,LWRD UI_BookMarkMenu
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 43.
; 44. // DeleteBookMark(g_music_vars.location.filename);
; 45. // break;
; 46. case 2: //add
JR ?0012
?0009:
; 47. IMK_Reg=input8(0x27);
IN A,(39)
LD (IX-12),A
; 48. output8(0x27,0);
XOR A
OUT (39),A
; 49. musicpSendCommand(MC_BACKUP, NULL);
LD B,C
LD E,68
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
; 50. output8(0x27,IMK_Reg);
LD A,(IX-12)
OUT (39),A
; 51. if(musicpSendCommand(MC_GETTIME, (int)& time_buf))
LD HL,2
ADD HL,SP
LD C,L
LD B,H
LD E,128
LD A,BYTE3 musicpSendCommand
LD HL,LWRD musicpSendCommand
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JR Z,?0011
?0010:
; 52. {
; 53. g_music_vars.BreakPTDisTime.hour = time_buf.TimeHour;
LD A,(IX-14)
LD (g_music_vars+77),A
; 54. g_music_vars.BreakPTDisTime.minute = time_buf.TimeMinute;
LD A,(IX-15)
LD (g_music_vars+78),A
; 55. g_music_vars.BreakPTDisTime.second = time_buf.TimeSecond;
LD A,(IX-16)
LD (g_music_vars+79),A
?0011:
; 56. }
; 57. AddBookMarkItem((STRU_MusicBreakPoint *)&(g_music_vars.BreakPTSave),&g_music_vars.location);
LD BC,g_music_vars+7
LD DE,g_music_vars+50
LD A,BYTE3 AddBookMarkItem
LD HL,LWRD AddBookMarkItem
CALL LWRD ?BANK_CALL_DIRECT_L08
; 58.
; 59. break;
?0006:
; 60. }
; 61. return NULL;
LD HL,0
; 62. }
?0012:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
; 63.
; 64.
; 65.
RSEG BOOKMARKMENU_C
bookmark_string:
DEFW 422
DEFW 424
DEFW 423
DEFW 465
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?