ui_delete2.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 969 行 · 第 1/2 页
S01
969 行
NAME ui_delete2(17)
RSEG COM_CTRL(0)
RSEG CSTR(0)
EXTERN FS_CD
EXTERN FS_GetName
EXTERN FS_SetCurDir
EXTERN GetDCStatus
EXTERN ResShowMultiString
EXTERN ResShowPic
EXTERN SetBackgdColor
EXTERN SetPenColor
EXTERN ShowFilelist
EXTERN UpdateScreen
EXTERN ap_get_message
EXTERN ap_handle_hotkey
EXTERN ap_message_init
EXTERN ap_sleep
PUBLIC draw_del_dir
PUBLIC draw_del_file
EXTERN fselDelFile
EXTERN fselGetByNO
EXTERN fselGetLocation
EXTERN fselGetNo
EXTERN fselGetTotal
EXTERN fselSetLocation
EXTERN reinit_idm_buf_filelist
PUBLIC show_del_fail
EXTERN show_delete_menu
EXTERN ?CLZ80B_4_04_L00
EXTERN ?SS_DIV_L02
EXTERN ?SS_CMP_L02
EXTERN ?S_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
EXTERN ?MEMSET_L11
RSEG COM_CTRL
show_del_fail:
; 1. /*
; 2. *******************************************************************************
; 3. * ACTOS AP
; 4. * ap common lib, file/folder delete control file
; 5. *
; 6. * (c) Copyright, Actions Co,Ld.
; 7. * All Right Reserved
; 8. *
; 9. *******************************************************************************
; 10. */
; 11. #pragma codeseg(COM_CTRL)
; 12.
; 13. #include "ap_common.h"
; 14. #include "enhanced.h"
; 15. void show_del_fail(BYTE langid);
; 16. int draw_del_file(file_location_t *location, BYTE string_id);
; 17. void draw_del_dir(file_location_t *location, BYTE string_id);
; 18. void reinit_idm_buf_filelist(int top, int bottom,BYTE string_id);
; 19. void ShowFilelist(int top,int bottom,int Old_active,int active,BYTE string_id);
; 20. int show_delete_menu(BYTE string_id);
; 21.
; 22.
; 23. void show_del_fail(BYTE langid)
; 24. {
CALL LWRD ?ENT_PARM_DIRECT_L09
; 25. ResShowMultiString(CDELFAIL,langid,16,32); //删除失败界面显示
LD C,32
PUSH BC
LD C,16
PUSH BC
LD C,E
LD DE,507
CALL LWRD ?0087
POP AF
POP AF
; 26. UpdateScreen(NULL);
LD DE,0
CALL LWRD UpdateScreen
; 27. ap_sleep(4);
LD DE,4
LD A,BYTE3 ap_sleep
LD HL,LWRD ap_sleep
CALL LWRD ?BANK_CALL_DIRECT_L08
; 28. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0087:
LD A,BYTE3 ResShowMultiString
LD HL,LWRD ResShowMultiString
JP LWRD ?BANK_CALL_DIRECT_L08
draw_del_file:
; 29.
; 30. /********************************************************************************
; 31. * Description : draw the selector file of the selector directory.
; 32. *
; 33. * Arguments : location :keep the file selector parament
; 34. string_id :display language type
; 35. * Returns :
; 36. * other: Successful
; 37. * 0: Fail, detail information in fselError
; 38. * Notes :
; 39. *
; 40. ********************************************************************************/
; 41. int draw_del_file(file_location_t *location, BYTE string_id)
; 42. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 65510
PUSH IY
; 43. int filelist_active,cur_grouplist; //目录总数,文件总数和浏览项数,浏览活动项
; 44. int top, bottom,filetotal;
; 45. char name[12];
; 46. int key;
; 47. filelist_active= FSELGetNo()-1;
LD A,BYTE3 fselGetNo
LD HL,LWRD fselGetNo
CALL LWRD ?BANK_CALL_DIRECT_L08
LD DE,65535
ADD HL,DE
PUSH HL
POP IY
; 48.
; 49. cur_grouplist=filelist_active/6;
LD BC,6
EX DE,HL
CALL LWRD ?0090
; 50. top=cur_grouplist*6; //顶的序号
; 51.
; 52. filetotal=fselGetTotal();
LD A,BYTE3 fselGetTotal
LD HL,LWRD fselGetTotal
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (IX-18),L
LD (IX-17),H
; 53. bottom=top+5;
LD HL,5
LD C,(IX-22)
LD B,(IX-21)
; 54. if(bottom>filetotal-1)
CALL LWRD ?0091
JR NC,?0003
?0002:
; 55. bottom=filetotal-1;
LD (IX-20),L
LD (IX-19),H
?0003:
; 56. reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
LD L,(IX+4)
PUSH HL
CALL LWRD ?0095
POP HL
; 57. ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
LD L,(IX+4)
PUSH HL
PUSH IY
PUSH IY
CALL LWRD ?0093
POP HL
POP HL
POP HL
?0005:
; 58. while(ap_get_message()!=0) {;} //丢掉多余按键
CALL LWRD ap_get_message
OR A
JR NZ,?0005
?0006:
?0004:
; 59. ap_message_init(NULL);
?0083:
LD DE,0
LD A,BYTE3 ap_message_init
LD HL,LWRD ap_message_init
CALL LWRD ?BANK_CALL_DIRECT_L08
?0008:
; 60. while(1)
; 61. {
; 62. //handle msg
; 63. key = ap_get_message();
CALL LWRD ap_get_message
LD C,A
LD E,C
LD B,0
; 64. switch(key)
LD D,B
CALL LWRD ?S_V_SWITCH_L06
DEFW 9
DEFW 5
DEFW 6
DEFW 30
DEFW 33
DEFW 48
DEFW 55
DEFW 56
DEFW 69
DEFW 70
DEFW ?0059
DEFW ?0011
DEFW ?0025
DEFW ?0008
DEFW ?0055
DEFW ?0036
DEFW ?0035
DEFW ?0052
DEFW ?0011
DEFW ?0025
?0011:
; 65. {
; 66. case AP_KEY_NEXT:
; 67. case AP_KEY_NEXT | AP_KEY_HOLD:
; 68.
; 69. if(filelist_active<filetotal -1 ) //当前项小于总列表数
LD C,(IX-18)
LD B,(IX-17)
DEC BC
PUSH IY
POP HL
CALL LWRD ?SS_CMP_L02
JR NC,?0013
?0012:
; 70. {
; 71.
; 72. filelist_active++;
; 73. if(filelist_active/6==cur_grouplist)
LD BC,6
INC IY
PUSH IY
POP DE
CALL LWRD ?SS_DIV_L02
LD L,(IX-24)
LD H,(IX-23)
AND A
SBC HL,DE
JR NZ,?0015
?0014:
; 74. {
; 75. ShowFilelist(top,bottom,filelist_active-1,filelist_active,string_id);
LD L,(IX+4)
PUSH HL
PUSH IY
PUSH IY
POP HL
DEC HL
PUSH HL
JR ?0079
; 76. }
; 77. else
?0015:
; 78. {
; 79. cur_grouplist=cur_grouplist+1;
LD HL,4
ADD HL,SP
LD A,(HL)
ADD A,1
LD (HL),A
JR NC,?0078
INC HL
INC (HL)
?0078:
; 80. top=(filelist_active/6)*6; //顶的序号
CALL LWRD ?0089
; 81. bottom=top+5; //底的序号
; 82. if(bottom>(filetotal-1))
CALL LWRD ?0092
JR NC,?0018
?0017:
; 83. bottom=filetotal-1;
LD (IX-20),L
LD (IX-19),H
?0018:
; 84. reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
LD L,(IX+4)
PUSH HL
CALL LWRD ?0095
POP HL
; 85. ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
LD L,(IX+4)
PUSH HL
PUSH IY
PUSH IY
?0079:
JR ?0084
?0016:
; 86. }
; 87.
; 88. }
; 89. else
?0013:
; 90. {
; 91. filelist_active=0;
; 92. top=0;
; 93. cur_grouplist=0;
; 94. bottom=5; //底的序号
; 95. if(bottom>(filetotal-1))
LD IY,0
XOR A
LD (IX-22),A
LD (IX-21),A
LD (IX-24),A
LD (IX-23),A
LD (IX-20),5
LD (IX-19),A
LD L,C
LD H,B
LD BC,32773
LD A,B
XOR H
LD H,A
SBC HL,BC
JR NC,?0021
?0020:
; 96. bottom=filetotal-1;
LD L,(IX-18)
LD H,(IX-17)
DEC HL
LD (IX-20),L
LD (IX-19),H
?0021:
; 97. reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
LD L,(IX+4)
PUSH HL
CALL LWRD ?0095
POP HL
; 98. ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
LD L,(IX+4)
PUSH HL
PUSH IY
PUSH IY
?0084:
CALL LWRD ?0093
POP HL
POP HL
POP HL
?0019:
?0023:
; 99. }
; 100. while(ap_get_message()!=0) {;} //丢掉多余按键
CALL LWRD ap_get_message
OR A
JR NZ,?0019
?0024:
; 101. break;
?0022:
JP LWRD ?0008
?0025:
; 102.
; 103. case AP_KEY_PREV:
; 104. case AP_KEY_PREV | AP_KEY_HOLD :
; 105. if(filelist_active >0)
PUSH IY
POP BC
LD L,D
LD H,D
CALL LWRD ?SS_CMP_L02
JR NC,?0027
?0026:
; 106. {
; 107. filelist_active--;
; 108. if(filelist_active/6==cur_grouplist)
LD BC,6
DEC IY
PUSH IY
POP DE
CALL LWRD ?SS_DIV_L02
LD L,(IX-24)
LD H,(IX-23)
AND A
SBC HL,DE
JR NZ,?0029
?0028:
; 109. {
; 110. ShowFilelist(top,bottom,filelist_active+1,filelist_active,string_id);
LD L,(IX+4)
PUSH HL
PUSH IY
PUSH IY
POP HL
INC HL
PUSH HL
JR ?0080
; 111. }
; 112. else
?0029:
; 113. {
; 114. cur_grouplist=cur_grouplist-1;
LD HL,4
ADD HL,SP
LD A,(HL)
ADD A,255
LD (HL),A
INC HL
LD A,(HL)
ADC A,255
LD (HL),A
; 115. top=(filelist_active/6)*6; //顶的序号
CALL LWRD ?0089
; 116. bottom=top+5; //底的序号
; 117. reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
LD C,(IX+4)
PUSH BC
LD C,L
LD B,H
CALL LWRD ?0096
POP HL
; 118. ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
LD L,(IX+4)
PUSH HL
PUSH IY
PUSH IY
?0080:
CALL LWRD ?0093
POP HL
POP HL
POP HL
?0030:
; 119. }
; 120. }
; 121.
; 122. else
JR ?0031
?0027:
; 123. {
; 124. cur_grouplist=(filetotal-1)/6;
LD E,(IX-18)
LD D,(IX-17)
DEC DE
LD BC,6
CALL LWRD ?0090
; 125. top=cur_grouplist*6;
; 126. bottom=filetotal-1;
LD C,(IX-18)
LD B,(IX-17)
DEC BC
LD (IX-20),C
LD (IX-19),B
; 127. filelist_active=bottom;
; 128. reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
LD E,(IX+4)
PUSH DE
EX DE,HL
CALL LWRD ?0097
POP HL
; 129. ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
LD L,(IX+4)
PUSH HL
LD L,(IX-20)
LD H,(IX-19)
PUSH HL
PUSH HL
LD C,L
LD B,H
CALL LWRD ?0094
POP HL
POP HL
POP HL
LD L,(IX-20)
LD H,(IX-19)
PUSH HL
POP IY
?0031:
?0033:
; 130. }
; 131. while(ap_get_message()!=0) {;} //丢掉多余按键
CALL LWRD ap_get_message
OR A
JR NZ,?0031
?0034:
; 132. break;
?0032:
JP LWRD ?0008
?0035:
; 133.
; 134. case AP_KEY_PLAY | AP_KEY_UP:
; 135. FSELSetLocation(location);
LD E,(IX+2)
LD D,(IX+3)
LD A,BYTE3 fselSetLocation
LD HL,LWRD fselSetLocation
CALL LWRD ?BANK_CALL_DIRECT_L08
; 136. return RESULT_IGNORE;
JP LWRD ?0054
; 137. break;
?0036:
; 138.
; 139. case AP_KEY_MODE | AP_KEY_UP:
; 140. //YES时按下MODE键的处理
; 141. {
; 142. bool result;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?