📄 ui_delete2.s01
字号:
; 137. break;
?0036:
; 138.
; 139. case AP_KEY_MODE | AP_KEY_UP:
; 140. //YES时按下MODE键的处理
; 141. {
; 142. bool result;
; 143. result=show_delete_menu(string_id);
LD E,(IX-2)
LD A,BYTE3 show_delete_menu
LD HL,LWRD show_delete_menu
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (IX-6),L
; 144. if(result==0)
INC L
DEC L
JP NZ,?0038
?0037:
; 145. {
; 146. fselGetByNO(name, filelist_active+1); //through file no get the name
PUSH IY
POP BC
INC BC
LD HL,10
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
LD DE,254
LD A,BYTE3 ResShowPic
LD HL,LWRD ResShowPic
CALL LWRD ?BANK_CALL_DIRECT_L08
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-2)
LD DE,506
LD A,BYTE3 ResShowMultiString
LD HL,LWRD ResShowMultiString
CALL LWRD ?BANK_CALL_DIRECT_L08
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 ?0093
; 157. filetotal=filetotal-1;
LD HL,8
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-22)
OR (IX-21)
JR Z,?0087
?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-6),52
?0038:
; 164. }
; 165.
; 166. if(result==RESULT_IGNORE)
LD A,(IX-6)
CP 52
JR NZ,?0046
?0045:
; 167. {
; 168. cur_grouplist=filelist_active/6;
LD BC,6
PUSH IY
POP DE
CALL LWRD ?0095
; 169. top=cur_grouplist*6; //顶的序号
; 170. bottom=top+5;
LD BC,5
ADD HL,BC
LD (IX-24),L
LD (IX-23),H
; 171. if(bottom>filetotal-1)
LD L,(IX-22)
LD H,(IX-21)
DEC HL
LD C,(IX-24)
LD B,(IX-23)
OR 128
SBC HL,BC
JP PO,?0083
XOR H
?0083:
JP P,?0048
?0047:
; 172. bottom=filetotal-1;
LD L,(IX-22)
LD H,(IX-21)
DEC HL
LD (IX-24),L
LD (IX-23),H
?0048:
; 173. reinit_idm_buf_filelist(top, bottom, string_id); //换页要重新初始化IDM数据
LD L,(IX-2)
PUSH HL
CALL LWRD ?0098
POP HL
; 174. ShowFilelist(top,bottom,filelist_active,filelist_active,string_id);
LD L,(IX-2)
PUSH HL
PUSH IY
PUSH IY
CALL LWRD ?0096
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 ?0088
; 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 ?0093
INC L
DEC L
JR Z,?0054
?0053:
; 186. return RESULT_NULL;
?0087:
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-4)
LD H,(IX-3)
LD A,(HL)
CP 72
JP NZ,?0008
?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-2)
PUSH HL
PUSH IY
PUSH IY
CALL LWRD ?0096
POP HL
POP HL
POP HL
JP LWRD ?0008
?0061:
; 207. }
; 208. else if(key != 0)
LD A,C
OR A
JP Z,?0008
?0063:
; 209. {
; 210. FSELGetLocation(location);
CALL LWRD ?0093
; 211. return key;
LD L,C
LD H,B
; 212. }
?0065:
LD SP,IX
POP IX
POP IY
JP LWRD ?BANK_FAST_LEAVE_L08
?0093:
LD E,(IX-4)
LD D,(IX-3)
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
JP LWRD ?BANK_CALL_DIRECT_L08
?0094:
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-26),L
LD (IX-25),H
LD BC,5
ADD HL,BC
LD (IX-24),L
LD (IX-23),H
RET
?0095:
CALL LWRD ?SS_DIV_L02
LD (IX-28),E
LD (IX-27),D
EX DE,HL
ADD HL,HL
LD C,L
LD B,H
ADD HL,HL
ADD HL,BC
LD (IX-26),L
LD (IX-25),H
RET
?0096:
LD C,(IX-24)
LD B,(IX-23)
?0097:
LD E,(IX-26)
LD D,(IX-25)
LD A,BYTE3 ShowFilelist
LD HL,LWRD ShowFilelist
JP LWRD ?BANK_CALL_DIRECT_L08
?0098:
LD C,(IX-24)
LD B,(IX-23)
?0099:
LD E,(IX-26)
LD D,(IX-25)
?0100:
LD A,BYTE3 reinit_idm_buf_filelist
LD HL,LWRD reinit_idm_buf_filelist
JP LWRD ?BANK_CALL_DIRECT_L08
?0064:
?0062:
?0010:
; 213. } //switch()
; 214. }// while(1)
; 215. }
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. {
PUSH IY
PUSH IX
LD IX,0
ADD IX,SP
PUSH BC
LD HL,65494
ADD HL,SP
LD SP,HL
PUSH DE
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);
EX DE,HL
CALL LWRD GetDCStatus
; 235.
; 236.
; 237. ResShowPic(SSBCK,0,0);
LD E,0
PUSH DE
LD C,E
LD DE,254
LD A,BYTE3 ResShowPic
LD HL,LWRD ResShowPic
CALL LWRD ?BANK_CALL_DIRECT_L08
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-2)
LD DE,575
LD A,BYTE3 ResShowMultiString
LD HL,LWRD ResShowMultiString
CALL LWRD ?BANK_CALL_DIRECT_L08
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
LD A,BYTE3 ResShowPic
LD HL,LWRD ResShowPic
CALL LWRD ?BANK_CALL_DIRECT_L08
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,10
ADD HL,SP
EX DE,HL
LD L,B
CALL LWRD ?MEMSET_L11
; 256. memcpy(Longnamebuf_del,location->path,11);
LD HL,10
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,10
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-42)
LD B,(IX-41)
LD E,(IX-44)
LD D,(IX-43)
CALL LWRD SetPenColor
; 272. SetBackgdColor(oldDC_sav.BackgdColor);
LD HL,4
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. }
JP LWRD ?0065
RSEG CSTR
?0077:
DEFB 92,0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -