bookmarklst.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 767 行 · 第 1/2 页
S01
767 行
NAME bookmarklst(17)
RSEG BOOKMARKLST(0)
RSEG BOOKMARKLST_C(0)
RSEG BOOKMARKLST_D(0)
PUBLIC ActiveBookMark
PUBLIC BookMarkBuff
EXTERN DeleteBookMarkItem
PUBLIC GetBooKMarkItem
EXTERN GetBookMark
EXTERN PutS
EXTERN ResShowMultiString
EXTERN ResShowPic
PUBLIC SelIndexToArryIndex
EXTERN SetPenColor
EXTERN SetTextOutMode
EXTERN SetTextPos
PUBLIC ShowBookMarkList
PUBLIC TimeInforation
PUBLIC UI_BookMarkMenu
EXTERN ap_get_message
EXTERN ap_handle_hotkey
EXTERN ap_sleep
EXTERN g_Openparam
EXTERN g_music_vars
EXTERN itoa_2
EXTERN main_ResShowPic
EXTERN menu_pos_list
EXTERN menulist_bck_pic
EXTERN musicpSendCommand
PUBLIC yesornomenu
EXTERN ?CLZ80B_4_04_L00
EXTERN ?SS_DIV_L02
EXTERN ?SS_MOD_L02
EXTERN ?S_MUL_L02
EXTERN ?SS_CMP_L02
EXTERN ?C_V_SWITCH_L06
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_LEAVE_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
EXTERN ?ENT_PARM_DIRECT_L09
EXTERN ?ENT_AUTO_DIRECT_L09
RSEG BOOKMARKLST
SelIndexToArryIndex:
; 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. extern Open_param_t g_Openparam;
; 8.
; 9. #pragma memory=constseg(BOOKMARKLST_C)
; 10. const WORD yesornomenu[3] ={MEB2,MEB4,MSTOP5};
; 11. #pragma memory=default
; 12.
; 13. #pragma memory=dataseg(BOOKMARKLST_D)
; 14. STRU_MusicBookMark BookMarkBuff;
; 15. #pragma memory=default
; 16.
; 17. #pragma codeseg(BOOKMARKLST)
; 18.
; 19. //extern const char file_pos[6]; //zxs add
; 20. //extern const WORD file_bck_pic[6];
; 21. extern const char menu_pos_list[];
; 22. extern const WORD menulist_bck_pic[];
; 23. int SelIndexToArryIndex(int index)
; 24. {
PUSH BC
PUSH IY
PUSH IX
PUSH DE
POP IX
; 25. int StartIndex;
; 26.
; 27. if(index>=BookMarkBuff.RecordCount)
LD BC,(BookMarkBuff+2)
EX DE,HL
CALL LWRD ?SS_CMP_L02
JR C,?0003
?0002:
; 28. return 0xFFFF;
LD HL,65535
JR ?0009
?0003:
; 29.
; 30. if(BookMarkBuff.CurRecordNO>=BookMarkBuff.RecordCount)
LD HL,(BookMarkBuff)
CALL LWRD ?SS_CMP_L02
JR NC,?0067
?0004:
; 31. StartIndex=BookMarkBuff.CurRecordNO-BookMarkBuff.RecordCount;
; 32. else
?0005:
; 33. StartIndex=MUSICBOOKMARK_MAX-(BookMarkBuff.RecordCount-BookMarkBuff.CurRecordNO);
LD L,C
LD H,B
LD BC,(BookMarkBuff)
AND A
SBC HL,BC
LD C,L
LD B,H
LD HL,12
?0067:
AND A
SBC HL,BC
LD B,H
LD C,L
?0006:
; 34. index=StartIndex+index;
ADD IX,BC
; 35. if(index>=MUSICBOOKMARK_MAX)
LD BC,32780
PUSH IX
POP HL
LD A,B
XOR H
LD H,A
SBC HL,BC
JR C,?0008
?0007:
; 36. index-=MUSICBOOKMARK_MAX;
LD BC,65524
ADD IX,BC
?0008:
; 37.
; 38. return index;
PUSH IX
POP HL
; 39. }
?0009:
POP IX
POP IY
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
TimeInforation:
; 40.
; 41. void TimeInforation(char *dspbuff,time_t *bookmarktime)
; 42. {
PUSH IY
PUSH IX
PUSH DE
POP IX
PUSH BC
POP IY
; 43.
; 44. dspbuff[0]='[';
EX DE,HL
LD (HL),91
; 45. itoa_2(bookmarktime->hour,&dspbuff[1]);
PUSH IX
POP BC
INC BC
LD E,(IY+0)
CALL LWRD ?0075
; 46. dspbuff[3]=':';
LD (IX+3),58
; 47. itoa_2(bookmarktime->minute,&dspbuff[4]);
LD HL,4
PUSH IX
POP BC
ADD HL,BC
LD C,L
LD B,H
LD E,(IY+1)
CALL LWRD ?0075
; 48. dspbuff[6]=':';
LD (IX+6),58
; 49. itoa_2(bookmarktime->second,&dspbuff[7]);
LD HL,7
PUSH IX
POP BC
ADD HL,BC
LD C,L
LD B,H
LD E,(IY+2)
CALL LWRD ?0075
; 50. dspbuff[9]=']';
LD (IX+9),93
; 51. dspbuff[10]=0x00;
LD (IX+10),0
; 52. }
POP IX
POP IY
JP LWRD ?BANK_FAST_LEAVE_L08
?0075:
LD A,BYTE3 itoa_2
LD HL,LWRD itoa_2
JP LWRD ?BANK_CALL_DIRECT_L08
GetBooKMarkItem:
; 53.
; 54. BOOL GetBooKMarkItem(char *iteminfor,int index)
; 55. {
PUSH IX
PUSH DE
; 56. index=SelIndexToArryIndex(index);
LD E,C
LD D,B
LD A,BYTE3 SelIndexToArryIndex
LD HL,LWRD SelIndexToArryIndex
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
POP IX
; 57. if(index==0xFFFF)
LD A,L
AND H
INC A
JR NZ,?0011
?0010:
; 58. return FALSE;
LD L,A
JR ?0012
?0011:
; 59. TimeInforation(iteminfor,&(BookMarkBuff.MusicBreakPoint[index].BKPTTime));
LD HL,BookMarkBuff+31
LD BC,30
PUSH IX
POP DE
CALL LWRD ?S_MUL_L02
ADD HL,DE
LD C,L
LD B,H
LD HL,0
ADD HL,SP
LD E,(HL)
INC HL
LD D,(HL)
LD A,BYTE3 TimeInforation
LD HL,LWRD TimeInforation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 60.
; 61. return TRUE;
LD L,1
; 62. }
?0012:
POP AF
POP IX
JP LWRD ?BANK_FAST_LEAVE_L08
ShowBookMarkList:
; 63.
; 64.
; 65. /********************************************************************************
; 66. * Description : show the bookmark list
; 67. *
; 68. * Arguments :
; 69. * Old_active: the last selected
; 70. * active: current selected
; 71. * string_id: language id
; 72. * Returns :
; 73. * nane
; 74. * Notes :
; 75. *
; 76. ********************************************************************************/
; 77. void ShowBookMarkList(int Old_active,int active,BYTE string_id,BYTE mode)
; 78. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65520
PUSH IY
PUSH BC
POP IY
; 79. BYTE ItemCount;
; 80. BYTE pPageHead;
; 81. BYTE pRow;
; 82. BYTE ActiveRow;
; 83. char BmkItemInfor[11];
; 84.
; 85. // SetAsciiFont(FONT_TYPE_SMALL);
; 86. SetTextOutMode(1);
LD E,1
CALL LWRD SetTextOutMode
; 87.
; 88. if((active/6)!=(Old_active/6)) //not the same page
LD BC,6
PUSH IY
POP DE
CALL LWRD ?SS_DIV_L02
PUSH DE
LD E,(IX+2)
LD D,(IX+3)
CALL LWRD ?SS_DIV_L02
EX DE,HL
POP DE
AND A
SBC HL,DE
JR Z,?0014
?0013:
; 89. Old_active=active;
PUSH IY
POP HL
LD (IX+2),L
LD (IX+3),H
?0014:
; 90.
; 91. if(Old_active!=active)
PUSH IY
POP HL
LD C,(IX+2)
LD B,(IX+3)
AND A
SBC HL,BC
JP Z,?0016
?0015:
; 92. {
; 93. //清除旧的活动列表项
; 94. pRow=Old_active%6;
LD BC,6
LD E,(IX+2)
LD D,(IX+3)
CALL LWRD ?0076
; 95. ResShowPic(menulist_bck_pic[pRow], menu_bck_x_def, menu_pos_list[pRow]-4);
PUSH BC
LD C,9
LD L,E
LD H,B
ADD HL,HL
LD DE,menulist_bck_pic
ADD HL,DE
LD E,(HL)
INC HL
LD D,(HL)
CALL LWRD ?0077
POP AF
; 96. ResShowPic(DHT,194,8);
LD C,8
PUSH BC
LD C,194
LD DE,38
CALL LWRD ?0077
POP AF
; 97. ResShowPic(MFILE, explorer_pic_x_def, menu_pos_list[pRow]-1);
LD C,(IX-16)
LD B,0
LD HL,menu_pos_list
ADD HL,BC
LD A,(HL)
ADD A,255
LD C,A
PUSH BC
CALL LWRD ?0078
POP AF
; 98. SetTextPos(explorer_str_x_def, menu_pos_list[pRow]-2);
CALL LWRD ?0079
; 99. GetBooKMarkItem(BmkItemInfor,Old_active);
LD C,(IX+2)
LD B,(IX+3)
LD HL,6
ADD HL,SP
CALL LWRD ?0080
; 100. SetPenColor(Color_WHITE_def); //取列表名
; 101. PutS(BmkItemInfor,-1);
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 102. //显示当前活动项
; 103. pRow=active%6;
LD BC,6
PUSH IY
POP DE
CALL LWRD ?0076
; 104. ResShowPic(FILEBCK, explorer_str_x_def-2, menu_pos_list[pRow]-4);
PUSH BC
LD C,30
LD E,44
CALL LWRD ?0077
POP AF
; 105. ResShowPic(MFILE, explorer_pic_x_def, menu_pos_list[pRow]-1);
LD C,(IX-16)
LD B,0
LD HL,menu_pos_list
ADD HL,BC
LD A,(HL)
ADD A,255
LD C,A
PUSH BC
CALL LWRD ?0078
POP AF
; 106. ResShowPic(DHTHK,194, menu_pos_list[pRow]+5);
LD C,(IX-16)
LD B,0
LD HL,menu_pos_list
ADD HL,BC
LD A,(HL)
ADD A,5
LD C,A
PUSH BC
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?