ui_delete2.s01
来自「炬力方案176*132软件源码,适用于AK1025」· S01 代码 · 共 969 行 · 第 1/2 页
S01
969 行
; 143. result=show_delete_menu(string_id);
LD E,(IX+4)
LD A,BYTE3 show_delete_menu
LD HL,LWRD show_delete_menu
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (IX-2),L
; 144. if(result==0)
INC L
DEC L
JR NZ,?0038
?0037:
; 145. {
; 146. fselGetByNO(name, filelist_active+1); //through file no get the name
PUSH IY
POP BC
INC BC
LD HL,12
ADD HL,SP
EX DE,HL
LD A,BYTE3 fselGetByNO
LD HL,LWRD fselGetByNO
CALL LWRD ?BANK_CALL_DIRECT_L08
; 147. if ( fselDelFile(FSEL_DEL_FILE) ) //更新文件选择器
LD E,0
LD A,BYTE3 fselDelFile
LD HL,LWRD fselDelFile
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JR Z,?0044
?0039:
; 148. {
; 149. ResShowPic(SSBCK,0,0);
LD C,0
PUSH BC
CALL LWRD ?0085
POP AF
; 150. ///-SetTextOutMode(1); //设字体透明
; 151. SetBackgdColor(0x0000df1c);
LD BC,0
LD DE,57116
CALL LWRD SetBackgdColor
; 152. SetPenColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetPenColor
; 153. ResShowMultiString(CDELING,string_id, 255, 100);
LD C,100
PUSH BC
LD C,255
PUSH BC
LD C,(IX+4)
LD DE,506
CALL LWRD ?0087
POP AF
POP AF
; 154. SetBackgdColor(Color_MENU_def);
LD BC,0
LD DE,65535
CALL LWRD SetBackgdColor
; 155. ///-SetTextOutMode(0);
; 156. fselGetLocation(location);
CALL LWRD ?0088
; 157. filetotal=filetotal-1;
LD HL,10
ADD HL,SP
LD A,(HL)
ADD A,255
LD (HL),A
INC HL
LD A,(HL)
ADC A,255
LD (HL),A
; 158. if(filetotal==0)
LD A,(IX-18)
OR (IX-17)
JR Z,?0082
?0041:
; 159. return RESULT_NULL;
?0042:
; 160. if(filelist_active!=0)
PUSH IY
POP HL
LD A,L
OR H
JR Z,?0044
?0043:
; 161. filelist_active=filelist_active-1;
DEC IY
?0044:
?0040:
; 162. }
; 163. result=RESULT_IGNORE;
LD (IX-2),52
?0038:
; 164. }
; 165.
; 166. if(result==RESULT_IGNORE)
LD A,(IX-2)
CP 52
JR NZ,?0046
?0045:
; 167. {
; 168. cur_grouplist=filelist_active/6;
LD BC,6
PUSH IY
POP DE
CALL LWRD ?0090
; 169. top=cur_grouplist*6; //顶的序号
; 170. bottom=top+5;
LD BC,5
; 171. if(bottom>filetotal-1)
CALL LWRD ?0091
JR NC,?0048
?0047:
; 172. bottom=filetotal-1;
LD (IX-20),L
LD (IX-19),H
?0048:
; 173. reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
LD L,(IX+4)
PUSH HL
CALL LWRD ?0095
POP HL
; 174. 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
?0050:
; 175. while(ap_get_message()!=0) {;} //丢掉多余按键
CALL LWRD ap_get_message
OR A
JR NZ,?0050
?0051:
?0049:
; 176. ap_message_init(NULL);
JP LWRD ?0083
; 177. break;
?0046:
; 178. }
; 179. else
; 180. return result;
LD L,A
LD H,0
; 181. break;
JR ?0065
?0052:
; 182.
; 183. }
; 184. case AP_MSG_WAIT_TIMEOUT:
; 185. if (FSELGetLocation(location))
CALL LWRD ?0088
INC L
DEC L
JR Z,?0054
?0053:
; 186. return RESULT_NULL;
?0082:
LD HL,0
; 187. else
JR ?0065
?0054:
; 188. return RESULT_IGNORE;
LD HL,52
; 189. break;
JR ?0065
?0055:
; 190. //}
; 191. case AP_MSG_SD_OUT:
; 192. //如在游览SD卡,但SD卡又被拔出,就返回拔出信号
; 193. if (location->disk == 'H')
LD L,(IX+2)
LD H,(IX+3)
LD A,(HL)
CP 72
JR NZ,?0064
?0056:
; 194. {
; 195. return RESULT_SD_OUT;
LD HL,54
; 196. }
JR ?0065
?0057:
; 197. break;
?0058:
; 198.
; 199. case AP_MSG_SD_IN:
; 200. break;
?0059:
; 201.
; 202. default:
; 203. key=ap_handle_hotkey(key);
LD E,C
CALL LWRD ap_handle_hotkey
LD C,A
; 204. if(key == RESULT_REDRAW)
LD A,50
XOR C
JR NZ,?0061
?0060:
; 205. {
; 206. 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
JR ?0064
?0061:
; 207. }
; 208. else if(key != 0)
LD A,C
OR A
JR Z,?0064
?0063:
; 209. {
; 210. FSELGetLocation(location);
CALL LWRD ?0088
; 211. return key;
LD L,C
LD H,B
; 212. }
?0065:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0064:
?0062:
?0010:
; 213. } //switch()
; 214. }// while(1)
; 215. }
JP LWRD ?0008
?0085:
LD DE,254
?0086:
LD A,BYTE3 ResShowPic
LD HL,LWRD ResShowPic
JP LWRD ?BANK_CALL_DIRECT_L08
?0088:
LD E,(IX+2)
LD D,(IX+3)
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
JP LWRD ?BANK_CALL_DIRECT_L08
?0089:
PUSH IY
POP DE
CALL LWRD ?SS_DIV_L02
EX DE,HL
ADD HL,HL
LD C,L
LD B,H
ADD HL,HL
ADD HL,BC
LD (IX-22),L
LD (IX-21),H
LD BC,5
ADD HL,BC
LD (IX-20),L
LD (IX-19),H
RET
?0090:
CALL LWRD ?SS_DIV_L02
LD (IX-24),E
LD (IX-23),D
EX DE,HL
ADD HL,HL
LD C,L
LD B,H
ADD HL,HL
ADD HL,BC
LD (IX-22),L
LD (IX-21),H
RET
?0091:
ADD HL,BC
LD (IX-20),L
LD (IX-19),H
?0092:
LD L,(IX-18)
LD H,(IX-17)
DEC HL
LD C,(IX-20)
LD B,(IX-19)
JP LWRD ?SS_CMP_L02
?0093:
LD C,(IX-20)
LD B,(IX-19)
?0094:
LD E,(IX-22)
LD D,(IX-21)
LD A,BYTE3 ShowFilelist
LD HL,LWRD ShowFilelist
JP LWRD ?BANK_CALL_DIRECT_L08
?0095:
LD C,(IX-20)
LD B,(IX-19)
?0096:
LD E,(IX-22)
LD D,(IX-21)
?0097:
LD A,BYTE3 reinit_idm_buf_filelist
LD HL,LWRD reinit_idm_buf_filelist
JP LWRD ?BANK_CALL_DIRECT_L08
draw_del_dir:
; 216.
; 217. /********************************************************************************
; 218. /* Description : draw the selector directory.
; 219. *
; 220. * Arguments : location :keep the file selector parament
; 221. string_id :display language type
; 222. * Returns :
; 223. *
; 224. * Notes :
; 225. *
; 226. ********************************************************************************/
; 227. void draw_del_dir(file_location_t *location, BYTE string_id)
; 228. {
CALL LWRD ?ENT_AUTO_DIRECT_L09
DEFW -42
PUSH IY
LD L,(IX+2)
LD H,(IX+3)
PUSH HL
POP IY
; 229. char Longnamebuf_del[31];
; 230. char buf[5];
; 231. BYTE NameNum,Cardflag=0;
; 232.
; 233. DC oldDC_sav;
; 234. GetDCStatus(&oldDC_sav);
LD HL,2
ADD HL,SP
EX DE,HL
CALL LWRD GetDCStatus
; 235.
; 236.
; 237. ResShowPic(SSBCK,0,0);
LD E,0
PUSH DE
LD C,E
CALL LWRD ?0085
POP AF
; 238. SetPenColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetPenColor
; 239. ///-SetTextOutMode(1); //设字体透明
; 240. SetBackgdColor(0x0000df1c);
LD BC,0
LD DE,57116
CALL LWRD SetBackgdColor
; 241. ResShowMultiString(CDELALL,string_id, 255, 100);
LD C,100
PUSH BC
LD C,255
PUSH BC
LD C,(IX+4)
LD DE,575
CALL LWRD ?0087
POP AF
POP AF
; 242. SetBackgdColor(Color_MENU_def);
LD BC,0
LD DE,65535
CALL LWRD SetBackgdColor
; 243. ///-SetTextOutMode(0);
; 244. ResShowPic(DELNO,56,32);
LD C,32
PUSH BC
LD C,56
LD DE,1
CALL LWRD ?0086
POP AF
; 245.
; 246.
; 247. if(location->disk == 'H');//Cardflag=DIRROOT-DIRCARD;
?0066:
?0067:
; 248. else if(location->disk != 'C')ASSERT(FALSE);
?0069:
?0070:
?0068:
; 249. if(location->path[0] == ':') //根目录显示
LD A,(IY+14)
CP 58
JR Z,?0076
?0071:
; 250. {
; 251. }
; 252. else //子目录显示,会获取子目录的长名
?0072:
; 253. {
; 254.
; 255. memset(Longnamebuf_del,0x00,31);
LD BC,31
LD HL,12
ADD HL,SP
EX DE,HL
LD L,B
CALL LWRD ?MEMSET_L11
; 256. memcpy(Longnamebuf_del,location->path,11);
LD HL,12
ADD HL,SP
EX DE,HL
LD HL,14
PUSH IY
POP BC
ADD HL,BC
LD BC,11
LDIR
; 257. NameNum=FS_GetName(Longnamebuf_del,14);
LD C,14
LD HL,12
ADD HL,SP
EX DE,HL
CALL LWRD FS_GetName
; 258. if(NameNum!=0)
OR A
JR NZ,?0076
?0074:
; 259. {
; 260. }
; 261. else
?0075:
; 262. {
; 263. FS_CD("\\");
LD DE,?0077
CALL LWRD FS_CD
; 264. FS_SetCurDir(location->ClusterNo);
LD C,(IY+11)
LD B,(IY+12)
LD E,(IY+9)
LD D,(IY+10)
CALL LWRD FS_SetCurDir
?0076:
?0073:
; 265. }
; 266. }
; 267. FS_CD(location->path); //CD到删除所在目录
LD HL,14
PUSH IY
POP BC
ADD HL,BC
EX DE,HL
CALL LWRD FS_CD
; 268.
; 269.
; 270. // SetAsciiFont(FONT_TYPE_SMALL);
; 271. SetPenColor(oldDC_sav.PenColor);
LD C,(IX-40)
LD B,(IX-39)
LD E,(IX-42)
LD D,(IX-41)
CALL LWRD SetPenColor
; 272. SetBackgdColor(oldDC_sav.BackgdColor);
LD HL,6
ADD HL,SP
LD E,(HL)
INC HL
LD D,(HL)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
CALL LWRD SetBackgdColor
; 273. }
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
RSEG CSTR
?0077:
DEFB 92,0
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?