ui_delete3.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 642 行
S01
642 行
NAME ui_delete3(17)
RSEG COM_CTRL(0)
RSEG CONST(0)
RSEG IDM_COM_FSL_D(0)
EXTERN FS_GetName
EXTERN PutS
EXTERN ResShowMultiString
EXTERN ResShowPic
EXTERN SetBackgdColor
EXTERN SetPenColor
EXTERN SetTextPos
PUBLIC ShowFilelist
PUBLIC com_delname
PUBLIC delete_text
EXTERN fselGetByNO
EXTERN menu_pos_list
PUBLIC read_idm_data_filelist
PUBLIC reinit_idm_buf_filelist
PUBLIC show_delete_menu
EXTERN ui_popup_list
EXTERN unitochar
PUBLIC write_idm_data_filelist
EXTERN ?CLZ80B_4_04_L00
EXTERN ?SS_MOD_L02
EXTERN ?S_MUL_L02
EXTERN ?SS_CMP_L02
EXTERN ?BANK_CALL_DIRECT_L08
EXTERN ?BANK_LEAVE_DIRECT_L08
EXTERN ?BANK_FAST_LEAVE_L08
EXTERN ?ENT_AUTO_DIRECT_L09
RSEG COM_CTRL
write_idm_data_filelist:
; 1. /*
; 2. *******************************************************************************
; 3. * ACTOS AP
; 4. * ap common lib file, part 2
; 5. *
; 6. * (c) Copyright, Actions Co,Ld.
; 7. * All Right Reserved
; 8. *
; 9. * $Id: ui_delete3.c,v 1.1.1.1 2006/05/22 03:23:59 selina Exp $
; 10. *******************************************************************************
; 11. */
; 12. #pragma codeseg(COM_CTRL)
; 13.
; 14. #include "ap_common.h"
; 15. #pragma memory=dataseg(IDM_COM_FSL_D)
; 16. char com_delname[6][50];
; 17. #pragma memory=default
; 18. extern const char menu_pos_list[6];
; 19. extern const WORD menulist_bck_pic[6];
; 20. const WORD delete_text[2] ={DELENO,DELEYES};
; 21.
; 22. //向IDM数组写数据
; 23. BOOL write_idm_data_filelist(char *name, int count)
; 24. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 0
; 25. byte status;
; 26. status = input8(0x05);
IN A,(5)
LD E,A
; 27. output8(0x05, 0xf6);
LD A,246
OUT (5),A
; 28. memcpy( com_delname[count], name, 50);
PUSH DE
LD BC,50
LD E,(IX+4)
LD D,(IX+5)
CALL LWRD ?S_MUL_L02
LD HL,com_delname
ADD HL,DE
EX DE,HL
LD L,(IX+2)
LD H,(IX+3)
?0025:
LDIR
POP DE
; 29. output8(0x05, status);
LD A,E
OUT (5),A
; 30. }
JP LWRD ?BANK_LEAVE_DIRECT_L08
reinit_idm_buf_filelist:
; 31.
; 32. //取一屏数据到IDM数组中
; 33. void reinit_idm_buf_filelist(int top, int bottom,BYTE string_id)
; 34. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -64
; 35. int i;
; 36. char NameNum;
; 37. char name_buf[12];
; 38. char Longnamebuf[50];
; 39. memcpy(name_buf,name_buf,12);
LD BC,12
LD HL,52
ADD HL,SP
EX DE,HL
LD HL,52
ADD HL,SP
LDIR
; 40. for(i = top; i <= bottom; i++)
LD E,(IX+2)
LD D,(IX+3)
?0003:
LD C,E
LD B,D
LD L,(IX+4)
LD H,(IX+5)
CALL LWRD ?SS_CMP_L02
JR C,?0002
?0004:
; 41. {
; 42. fselGetByNO(name_buf,i+1);
PUSH DE
INC BC
LD HL,54
ADD HL,SP
EX DE,HL
LD A,BYTE3 fselGetByNO
LD HL,LWRD fselGetByNO
CALL LWRD ?BANK_CALL_DIRECT_L08
; 43. memcpy(Longnamebuf,name_buf,12);
LD BC,12
LD HL,4
ADD HL,SP
EX DE,HL
LD HL,54
ADD HL,SP
LDIR
; 44. NameNum=FS_GetName(Longnamebuf,24);
LD C,24
LD HL,4
ADD HL,SP
EX DE,HL
CALL LWRD FS_GetName
POP DE
; 45. if(NameNum!=0)
OR A
PUSH DE
JR Z,?0007
?0006:
; 46. {
; 47. unitochar(Longnamebuf,NameNum*2+2,string_id);
LD L,(IX+10)
PUSH HL
LD L,A
LD H,0
ADD HL,HL
LD C,L
LD B,H
INC BC
INC BC
LD HL,6
ADD HL,SP
EX DE,HL
LD A,BYTE3 unitochar
LD HL,LWRD unitochar
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP DE
; 48. }
; 49. else
JR ?0008
?0007:
; 50. {
; 51. memcpy(Longnamebuf,name_buf,11); //get one usful record
LD BC,11
LD HL,4
ADD HL,SP
EX DE,HL
LD HL,54
ADD HL,SP
LDIR
POP DE
; 52. Longnamebuf[11]=0;
LD (IX-51),B
; 53. Longnamebuf[12]=0;
LD (IX-50),B
?0008:
; 54. }
; 55.
; 56. write_idm_data_filelist(Longnamebuf, i - top);
PUSH DE
LD C,(IX+2)
LD B,(IX+3)
EX DE,HL
AND A
SBC HL,BC
LD C,L
LD B,H
LD HL,4
ADD HL,SP
EX DE,HL
LD A,BYTE3 write_idm_data_filelist
LD HL,LWRD write_idm_data_filelist
CALL LWRD ?BANK_CALL_DIRECT_L08
POP DE
INC DE
; 57.
; 58. }
; 59. }
JP LWRD ?0003
?0002:
JP LWRD ?BANK_LEAVE_DIRECT_L08
read_idm_data_filelist:
; 60.
; 61. //读数据到数组name中
; 62. void read_idm_data_filelist(char *name, int count)
; 63. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW 0
; 64. byte status;
; 65. status = input8(0x05);
IN A,(5)
LD E,A
; 66. output8(0x05 ,0xf6);
LD A,246
OUT (5),A
; 67. memcpy(name, com_delname[count], 50);
PUSH DE
LD BC,50
LD E,(IX+2)
LD D,(IX+3)
PUSH DE
LD E,(IX+4)
LD D,(IX+5)
CALL LWRD ?S_MUL_L02
LD HL,com_delname
ADD HL,DE
POP DE
JP LWRD ?0025
; 68. output8(0x05, status);
; 69. }
ShowFilelist:
; 70.
; 71.
; 72. /********************************************************************************
; 73. * Description : show the directory.
; 74. *
; 75. * Arguments :
; 76. * location: get thedisk type
; 77. * Invpath: the "\" or name
; 78. * Namebuf:the string you will display
; 79. * type : show file kind
; 80. * string_id: language type
; 81. * Returns :
; 82. * other: Successful
; 83. * 0: Fail, detail information in fselError
; 84. * Notes : only display the valid directory
; 85. *
; 86. ********************************************************************************/
; 87. void ShowFilelist(int top,int bottom,int Old_active,int active,BYTE string_id)
; 88. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -52
PUSH IY
; 89.
; 90. int i,tmp;
; 91. char Longnamebuf[50];
; 92. // SetAsciiFont(FONT_TYPE_SMALL);
; 93. ///-SetTextOutMode(1);
; 94.
; 95. if(Old_active!=active)
LD L,(IX+12)
LD H,(IX+13)
LD E,(IX+10)
LD D,(IX+11)
AND A
SBC HL,DE
JP Z,?0010
?0009:
; 96. {
; 97. //清除旧的活动列表项
; 98. tmp=Old_active%6;
LD BC,6
CALL LWRD ?0026
; 99. ResShowPic(FILEBCK1, 12, menu_pos_list[tmp]-1);
ADD A,255
LD C,A
PUSH BC
LD C,12
LD DE,45
CALL LWRD ?0027
POP AF
; 100. ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
LD HL,menu_pos_list
PUSH IY
POP BC
ADD HL,BC
LD A,(HL)
ADD A,2
LD E,A
PUSH DE
CALL LWRD ?0028
POP AF
; 101. SetTextPos(12, menu_pos_list[tmp]);
CALL LWRD ?0030
; 102. read_idm_data_filelist(Longnamebuf,tmp);
ADD HL,SP
CALL LWRD ?0031
; 103. SetPenColor(Color_BLACK_def); //取列表名
CALL LWRD ?0032
; 104. SetBackgdColor(Color_MENU_def);
CALL LWRD SetBackgdColor
; 105. PutS(Longnamebuf, -1);
LD C,255
LD HL,4
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 106.
; 107. //显示当前活动项
; 108. tmp=active%6;
LD BC,6
LD E,(IX+12)
LD D,(IX+13)
CALL LWRD ?0026
; 109. ResShowPic(MFILE,0,menu_pos_list[tmp]+2);
ADD A,2
LD C,A
PUSH BC
LD C,B
CALL LWRD ?0029
POP AF
; 110. ResShowPic(FILEBCK, 12, menu_pos_list[tmp]-1);
LD HL,menu_pos_list
PUSH IY
POP BC
ADD HL,BC
LD A,(HL)
ADD A,255
LD E,A
PUSH DE
LD C,12
LD DE,44
CALL LWRD ?0027
POP AF
; 111. SetTextPos(12, menu_pos_list[tmp]);
CALL LWRD ?0030
; 112. read_idm_data_filelist(Longnamebuf,tmp);
ADD HL,SP
CALL LWRD ?0031
; 113. SetPenColor(Color_WHITE_def); //取列表名
LD BC,0
LD DE,65535
CALL LWRD SetPenColor
; 114. SetBackgdColor(0x00003358);
LD BC,0
LD DE,13144
CALL LWRD SetBackgdColor
; 115. PutS(Longnamebuf, -1);
LD C,255
LD HL,4
ADD HL,SP
EX DE,HL
CALL LWRD PutS
; 116. }
; 117. else //if(Old_active==active) 刷新一页屏
JP LWRD ?0012
?0010:
; 118. {
; 119. ///-SetTextOutMode(1);
; 120. SetBackgdColor(0x0000df1c);
LD C,L
LD B,H
LD DE,57116
CALL LWRD SetBackgdColor
; 121. ResShowPic(MENUTWO1,0,0);
LD C,0
PUSH BC
LD DE,196
CALL LWRD ?0027
POP AF
; 122. SetPenColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetPenColor
; 123. ResShowMultiString(CDELFILE,string_id, 255, 1);
LD C,1
PUSH BC
LD C,255
PUSH BC
LD C,(IX+14)
LD DE,574
LD A,BYTE3 ResShowMultiString
LD HL,LWRD ResShowMultiString
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
; 124. SetBackgdColor(Color_MENU_def);
LD BC,0
LD DE,65535
CALL LWRD SetBackgdColor
; 125. ///-SetTextOutMode(0);
; 126. //显示列表名
; 127. for(i=top;i<=bottom;i++)
LD L,(IX+2)
LD H,(IX+3)
LD (IX-52),L
LD (IX-51),H
?0013:
LD C,(IX-52)
LD B,(IX-51)
LD L,(IX+4)
LD H,(IX+5)
CALL LWRD ?SS_CMP_L02
JP C,?0012
?0014:
; 128. {
; 129. tmp=i%6;
LD BC,6
LD E,(IX-52)
LD D,(IX-51)
CALL LWRD ?SS_MOD_L02
PUSH DE
POP IY
; 130. if(i==active)
LD L,(IX+12)
LD H,(IX+13)
LD C,(IX-52)
LD B,(IX-51)
SBC HL,BC
JR NZ,?0017
?0016:
; 131. {
; 132. ResShowPic(FILEBCK, 12, menu_pos_list[i-top]-1);
LD C,(IX+2)
LD B,(IX+3)
LD L,(IX-52)
LD H,(IX-51)
AND A
SBC HL,BC
LD BC,menu_pos_list
ADD HL,BC
LD A,(HL)
ADD A,255
LD C,A
PUSH BC
LD C,12
LD DE,44
CALL LWRD ?0027
POP AF
; 133. SetPenColor(Color_WHITE_def);
LD BC,0
LD DE,65535
CALL LWRD SetPenColor
; 134. SetBackgdColor(0x00003358);
LD BC,0
LD DE,13144
JR ?0024
; 135. }
; 136. else
?0017:
; 137. {
; 138. SetPenColor(Color_BLACK_def);
CALL LWRD ?0032
; 139. SetBackgdColor(Color_MENU_def);
?0024:
CALL LWRD SetBackgdColor
?0018:
; 140. }
; 141. output8(0x4e,input8(0x4e) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 142. read_idm_data_filelist(Longnamebuf,tmp);
PUSH IY
POP BC
LD HL,4
ADD HL,SP
CALL LWRD ?0031
; 143. ResShowPic(MFILE,0,menu_pos_list[i-top]+2);
LD C,(IX+2)
LD B,(IX+3)
LD L,(IX-52)
LD H,(IX-51)
AND A
SBC HL,BC
LD DE,menu_pos_list
ADD HL,DE
LD A,(HL)
ADD A,2
LD E,A
PUSH DE
CALL LWRD ?0028
POP AF
; 144. SetTextPos(12, menu_pos_list[i-top]);
LD C,(IX+2)
LD B,(IX+3)
LD L,(IX-52)
LD H,(IX-51)
AND A
SBC HL,BC
LD BC,menu_pos_list
ADD HL,BC
LD C,(HL)
LD E,12
CALL LWRD SetTextPos
; 145. PutS(Longnamebuf,-1);
LD C,255
LD HL,4
ADD HL,SP
EX DE,HL
CALL LWRD PutS
INC (IX-52)
JR NZ,?0023
INC (IX-51)
?0023:
; 146. }
; 147.
; 148. } //else
JP LWRD ?0013
?0012:
?0011:
; 149. SetPenColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetPenColor
; 150. }
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0026:
CALL LWRD ?SS_MOD_L02
PUSH DE
POP IY
LD HL,menu_pos_list
ADD HL,DE
LD A,(HL)
RET
?0028:
LD C,0
?0029:
LD DE,198
?0027:
LD A,BYTE3 ResShowPic
LD HL,LWRD ResShowPic
JP LWRD ?BANK_CALL_DIRECT_L08
?0030:
LD HL,menu_pos_list
PUSH IY
POP BC
ADD HL,BC
LD C,(HL)
LD E,12
CALL LWRD SetTextPos
PUSH IY
POP BC
LD HL,4
RET
?0031:
EX DE,HL
LD A,BYTE3 read_idm_data_filelist
LD HL,LWRD read_idm_data_filelist
JP LWRD ?BANK_CALL_DIRECT_L08
?0032:
LD BC,0
LD E,C
LD D,B
CALL LWRD SetPenColor
LD BC,0
LD DE,65535
RET
show_delete_menu:
; 151.
; 152. ////////////////////////
; 153.
; 154. ////////////显示删除确认菜单
; 155. int show_delete_menu(BYTE string_id)
; 156. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -10
PUSH IY
; 157. int result;
; 158. pop_up_list_t list;
; 159. list.strid = delete_text;
LD (IX-10),LOW(delete_text)
LD (IX-9),HIGH(delete_text)
; 160. list.total = 2;
LD (IX-8),2
LD (IX-7),0
; 161. list.active = 0;
XOR A
LD (IX-6),A
LD (IX-5),A
; 162. list.string_id =string_id;
LD B,(IX+2)
LD (IX-2),B
; 163. list.headid = CDELFILE;
LD (IX-4),62
LD (IX-3),2
; 164. result= ui_popup_list(&list, NULL);
LD C,A
PUSH BC
LD L,C
LD H,C
PUSH HL
LD L,6
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
PUSH HL
POP IY
; 165. if((result==0)&&(list.active==0))
LD A,L
OR H
JR NZ,?0020
LD A,(IX-6)
LD H,(IX-5)
OR H
JR NZ,?0020
?0022:
?0021:
?0019:
; 166. {
; 167. result=RESULT_IGNORE;
LD IY,52
?0020:
; 168. }
; 169. return result;
PUSH IY
POP HL
; 170. }
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
RSEG CONST
delete_text:
DEFW 632
DEFW 631
RSEG IDM_COM_FSL_D
com_delname:
DEFS 300
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?