ui_stop_menu.s01
来自「MP3 整个 SDK」· S01 代码 · 共 858 行 · 第 1/2 页
S01
858 行
DEFW ?0024
DEFW ?0045
DEFW ?0046
DEFW ?0029
?0024:
; 142. {
; 143. case 0: //主目录
; 144. // result=ui_explore(&g_amv_vars.location, EXPLORE_DIR, g_langid);
; 145. if (g_amv_vars.location.disk == 'H')
LD A,(g_amv_vars+5)
CP 72
JR NZ,?0037
?0025:
; 146. {
; 147. g_amv_vars.location.disk = 'C';
JR ?0077
; 148. FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk);
; 149. fselGetLocation(&g_amv_vars.location);
?0026:
; 150. }
; 151. result=ui_directory(&g_amv_vars.location, FSEL_TYPE_AMV, g_langid);
; 152. FSELSetMode(FSEL_ALL_SEQUENCE);
; 153. BankSwitch((unsigned long)AmvDecStart>>16);
; 154. g_menu_active=FALSE;
; 155. break;
?0027:
; 156.
; 157. case 1: //删除文件
; 158. result = ui_delete_amv(DELETE_FILE);
; 159. break;
?0028:
; 160.
; 161. case 2: //删除全部
; 162. //result = ui_delete_amv(DELETE_FILE);
; 163. FSELSetMode(FSEL_ALL_REPEATALL);
; 164. result = ui_delete_all(&g_amv_vars.location, DELETE_AMV, g_comval.langid);
; 165. FSELSetMode(g_amv_vars.repeat_mode);
; 166. break;
?0029:
; 167.
; 168. case 3:
; 169. result = ui_loop_menu();
LD A,BYTE3 ui_loop_menu
LD HL,LWRD ui_loop_menu
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
POP IX
; 170. if(result==0)result=RESULT_IGNORE;
LD A,L
OR H
JP NZ,?0034
?0030:
JP LWRD ?0050
?0031:
; 171. break;
?0032:
; 172. default://退出 case 3
; 173. result = RESULT_IGNORE;
; 174. break;
?0023:
; 175. }
; 176.
; 177. }
; 178.
; 179. else //有卡的情况
?0022:
; 180. {
; 181. switch (list.active)
CALL LWRD ?S_S_SWITCH_L06
DEFW 0
DEFW 5
DEFW ?0050
DEFW ?0035
DEFW ?0038
DEFW ?0045
DEFW ?0046
DEFW ?0047
?0035:
; 182. {
; 183. case 0:
; 184. if (g_amv_vars.location.disk == 'H')
LD A,(g_amv_vars+5)
CP 72
JR NZ,?0037
?0036:
; 185. {
; 186. g_amv_vars.location.disk = 'C';
?0077:
LD A,67
LD (g_amv_vars+5),A
; 187. FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk);
LD C,A
PUSH BC
LD C,B
PUSH BC
LD E,5
LD A,BYTE3 fselInit
LD HL,LWRD fselInit
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
; 188. fselGetLocation(&g_amv_vars.location);
CALL LWRD ?0081
?0037:
; 189. }
; 190. result=ui_directory(&g_amv_vars.location, FSEL_TYPE_AMV, g_langid);
LD A,(g_langid)
LD C,A
PUSH BC
LD C,5
LD DE,g_amv_vars+5
LD A,BYTE3 ui_directory
LD HL,LWRD ui_directory
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 191. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0082
; 192. BankSwitch((unsigned long)AmvDecStart>>16);
LD E,BYTE3 AmvDecStart
CALL LWRD BankSwitch
; 193. g_menu_active=FALSE;
XOR A
LD (g_menu_active),A
; 194. break;
JP LWRD ?0034
?0038:
; 195.
; 196. case 1:
; 197. if (g_amv_vars.location.disk == 'C')
LD A,(g_amv_vars+5)
CP 67
JR NZ,?0040
?0039:
; 198. {
; 199. //PASS_KEY(0x13);
; 200. g_amv_vars.location.disk = 'H';
LD A,72
LD (g_amv_vars+5),A
; 201. result=FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk);
LD C,A
PUSH BC
LD C,B
PUSH BC
LD E,5
LD A,BYTE3 fselInit
LD HL,LWRD fselInit
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
LD H,0
PUSH HL
POP IX
; 202. if(!result)
LD A,L
OR A
JR NZ,?0042
?0041:
; 203. {
; 204. g_amv_vars.location.disk = 'C';
LD A,67
LD (g_amv_vars+5),A
; 205. g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
LD HL,g_DiskStateFlag
RES 3,(HL)
; 206. ui_show_msg (CREADERR, CREADERR, g_langid); //temp ybfu
LD BC,(g_langid)
LD B,0
PUSH BC
LD BC,404
LD E,C
LD D,B
LD A,BYTE3 ui_show_msg
LD HL,LWRD ui_show_msg
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 207. break;
JP LWRD ?0034
?0042:
; 208. }
; 209. g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
LD HL,g_DiskStateFlag
SET 3,(HL)
; 210. fselGetLocation(&g_amv_vars.location);
CALL LWRD ?0081
?0040:
; 211. }
; 212. //fselGetLocation(&g_amv_vars.location);
; 213. result = ui_directory(&g_amv_vars.location,FSEL_TYPE_AMV, g_langid);
LD A,(g_langid)
LD C,A
PUSH BC
LD C,5
LD DE,g_amv_vars+5
LD A,BYTE3 ui_directory
LD HL,LWRD ui_directory
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 214. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0082
; 215. BankSwitch((unsigned long)AmvDecStart>>16);
LD E,BYTE3 AmvDecStart
CALL LWRD BankSwitch
; 216. g_menu_active=FALSE;
XOR A
LD (g_menu_active),A
; 217. //PASS_KEY(0x16);
; 218. if (result == RESULT_SD_OUT)
PUSH IX
POP HL
LD A,54
XOR L
OR H
JR NZ,?0034
?0043:
; 219. {
; 220. ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
LD BC,(g_langid)
LD B,A
PUSH BC
LD BC,401
LD E,C
LD D,B
LD A,BYTE3 ui_err_msg
LD HL,LWRD ui_err_msg
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 221. g_amv_vars.location.disk = 'C';
LD A,67
LD (g_amv_vars+5),A
; 222. //return RESULT_IGNORE;
; 223. result = RESULT_SD_OUT;
LD IX,54
?0044:
; 224. //return 0;
; 225. }
; 226. break;
JR ?0034
?0045:
; 227.
; 228. case 2:
; 229. //删除文件
; 230. result = ui_delete_amv(DELETE_FILE);
LD E,C
LD D,B
LD A,BYTE3 ui_delete_amv
LD HL,LWRD ui_delete_amv
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
POP IX
; 231. break;
JR ?0034
?0046:
; 232.
; 233. case 3:
; 234. //删除全部
; 235. //result = ui_delete_amv(DELETE_FILE);
; 236. FSELSetMode(FSEL_ALL_REPEATALL);
LD E,4
CALL LWRD ?0083
; 237. result = ui_delete_all(&g_amv_vars.location, DELETE_AMV, g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
LD C,3
LD DE,g_amv_vars+5
LD A,BYTE3 ui_delete_all
LD HL,LWRD ui_delete_all
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
PUSH HL
POP IX
; 238. FSELSetMode(g_amv_vars.repeat_mode);
LD DE,(g_amv_vars+3)
CALL LWRD ?0083
; 239. break;
JR ?0034
?0047:
; 240.
; 241. case 4:
; 242. result = ui_loop_menu();
LD A,BYTE3 ui_loop_menu
LD HL,LWRD ui_loop_menu
CALL LWRD ?BANK_CALL_DIRECT_L08
PUSH HL
POP IX
; 243. if(result==0)result=RESULT_IGNORE;
LD A,L
OR H
JR NZ,?0034
?0048:
?0049:
; 244. break;
?0050:
; 245. default://退出 //case 4
; 246. result = RESULT_IGNORE;
LD IX,52
; 247. break;
?0034:
?0033:
; 248. }
; 249. //注,如 result != 0表示退出时一些时间参数不用清0
; 250. // 但如果 ==0 则表示退出时目录已改,时间要清0
; 251. }
; 252.
; 253. //if(result != RESULT_IGNORE)
; 254. // ClearTimePara();//清0时间及断点
; 255. if (result == RESULT_IGNORE)
PUSH IX
POP HL
LD A,52
XOR L
OR H
JR NZ,?0052
?0051:
; 256. {
; 257. result = 0;
LD IX,0
?0052:
; 258. }
; 259. if (result != 0)
PUSH IX
POP HL
LD A,L
OR H
JR NZ,?0055
?0053:
; 260. {
; 261. return result;
; 262. }
?0054:
; 263. ClearTimePara();//清0时间及断点
LD A,BYTE3 ClearTimePara
LD HL,LWRD ClearTimePara
CALL LWRD ?BANK_CALL_DIRECT_L08
; 264. return 0;
LD HL,0
; 265. }
?0055:
EX DE,HL
LD HL,10
ADD HL,SP
LD SP,HL
EX DE,HL
POP IX
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0082:
PUSH HL
POP IX
LD E,0
?0083:
LD A,BYTE3 fselSetMode
LD HL,LWRD fselSetMode
JP LWRD ?BANK_CALL_DIRECT_L08
CheckIfCardOK:
; 266.
; 267.
; 268.
; 269.
; 270.
; 271.
; 272.
; 273. //====检测卡是否可用========
; 274.
; 275. void CheckIfCardOK(void)
; 276. {
PUSH DE
PUSH AF
; 277. char i;
; 278. i = DRV_DetectUD(1); //检测 sd 卡是否存在
LD E,1
CALL LWRD DRV_DetectUD
; 279. if (i == 0x20)
CP 32
JR NZ,?0057
?0056:
; 280. {
; 281. g_CardInFlag = 1;
LD A,1
JR ?0080
; 282. }
; 283. else
?0057:
; 284. {
; 285. g_CardInFlag = 0;
XOR A
?0080:
LD (g_CardInFlag),A
?0058:
; 286. }
; 287.
; 288. }
POP HL
POP DE
JP LWRD ?BANK_FAST_LEAVE_L08
; 289.
RSEG UDATA0
g_CardInFlag:
DEFS 1
RSEG IDATA0
?0009:
DEFS 1
RSEG CDATA0
DEFB 0
RSEG APC_UI_MNU
dir_string_card:
DEFW 281
DEFW 282
DEFW 283
DEFW 284
DEFW 286
DEFW 285
repeat_string:
DEFW 309
DEFW 310
DEFW 311
DEFW 312
DEFW 313
DEFW 314
DEFW 315
dir_string:
DEFW 281
DEFW 283
DEFW 284
DEFW 286
DEFW 285
END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?