📄 ui_stop_menu.s01
字号:
DEFW ?0045
DEFW ?0046
DEFW ?0029
?0024:
; 142. {
; 143. /*
; 144. case 0: //volset
; 145. slider.min = 0;
; 146. slider.max = 31;
; 147. slider.step = 1;
; 148. slider.value = g_amv_vars.volume;
; 149. slider.string_id = g_langid;
; 150. slider.title=VOLSET;
; 151. //在停止状态时调音量没必要实时改变IO号的值
; 152. result = ui_slider(& slider, NULL);
; 153.
; 154. g_amv_vars.volume = slider.value;//退出时再改变音量的值
; 155. break;
; 156. */
; 157. case 0: //主目录
; 158. // result=ui_explore(&g_amv_vars.location, EXPLORE_DIR, g_langid);
; 159. if (g_amv_vars.location.disk == 'H')
LD A,(g_amv_vars+5)
CP 72
JR NZ,?0037
?0025:
; 160. {
; 161. g_amv_vars.location.disk = 'C';
JR ?0074
; 162. FSELInit(FSEL_TYPE_AMV, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_amv_vars.location.disk);
; 163. fselGetLocation(&g_amv_vars.location);
?0026:
; 164. }
; 165. result=ui_directory(&g_amv_vars.location, FSEL_TYPE_AMV, g_langid);
; 166. FSELSetMode(FSEL_ALL_SEQUENCE);
; 167. BankSwitch((unsigned long)AmvDecStart>>16);
; 168. g_menu_active=FALSE;
; 169. break;
?0027:
; 170.
; 171. case 1: //删除文件
; 172. result = ui_delete_amv(DELETE_FILE);
; 173. break;
?0028:
; 174.
; 175. case 2: //删除全部
; 176. //result = ui_delete_amv(DELETE_FILE);
; 177. FSELSetMode(FSEL_ALL_REPEATALL);
; 178. result = ui_delete_all(&g_amv_vars.location, DELETE_AMV, g_comval.langid);
; 179. FSELSetMode(g_amv_vars.repeat_mode);
; 180. break;
?0029:
; 181.
; 182. case 3:
; 183. 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
; 184. if(result==0)result=RESULT_IGNORE;
LD A,L
OR H
JP NZ,?0034
?0030:
JP LWRD ?0050
?0031:
; 185. break;
?0032:
; 186. default://退出 case 3
; 187. result = RESULT_IGNORE;
; 188. break;
?0023:
; 189. }
; 190.
; 191. }
; 192.
; 193. else //有卡的情况
?0022:
; 194. {
; 195. 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:
; 196. {
; 197. case 0:
; 198. if (g_amv_vars.location.disk == 'H')
LD A,(g_amv_vars+5)
CP 72
JR NZ,?0037
?0036:
; 199. {
; 200. g_amv_vars.location.disk = 'C';
?0074:
LD A,67
LD (g_amv_vars+5),A
; 201. 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
; 202. fselGetLocation(&g_amv_vars.location);
CALL LWRD ?0076
?0037:
; 203. }
; 204. 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
; 205. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0077
; 206. BankSwitch((unsigned long)AmvDecStart>>16);
LD E,BYTE3 AmvDecStart
CALL LWRD BankSwitch
; 207. g_menu_active=FALSE;
XOR A
LD (g_menu_active),A
; 208. break;
JP LWRD ?0034
?0038:
; 209.
; 210. case 1:
; 211. if (g_amv_vars.location.disk == 'C')
LD A,(g_amv_vars+5)
CP 67
JR NZ,?0040
?0039:
; 212. {
; 213. //PASS_KEY(0x13);
; 214. g_amv_vars.location.disk = 'H';
LD A,72
LD (g_amv_vars+5),A
; 215. 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
; 216. if(!result)
LD A,L
OR A
JR NZ,?0042
?0041:
; 217. {
; 218. g_amv_vars.location.disk = 'C';
LD A,67
LD (g_amv_vars+5),A
; 219. g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
LD HL,g_DiskStateFlag
RES 3,(HL)
; 220. ui_show_msg (CREADERR, CREADERR, g_langid); //temp ybfu
LD BC,(g_langid)
LD B,0
PUSH BC
LD BC,630
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
; 221. break;
JP LWRD ?0034
?0042:
; 222. }
; 223. g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
LD HL,g_DiskStateFlag
SET 3,(HL)
; 224. fselGetLocation(&g_amv_vars.location);
CALL LWRD ?0076
?0040:
; 225. }
; 226. //fselGetLocation(&g_amv_vars.location);
; 227. 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
; 228. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0077
; 229. BankSwitch((unsigned long)AmvDecStart>>16);
LD E,BYTE3 AmvDecStart
CALL LWRD BankSwitch
; 230. g_menu_active=FALSE;
XOR A
LD (g_menu_active),A
; 231. //PASS_KEY(0x16);
; 232. if (result == RESULT_SD_OUT)
PUSH IX
POP HL
LD A,54
XOR L
OR H
JR NZ,?0034
?0043:
; 233. {
; 234. ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
LD BC,(g_langid)
LD B,A
PUSH BC
LD BC,394
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
; 235. g_amv_vars.location.disk = 'C';
LD A,67
LD (g_amv_vars+5),A
; 236. //return RESULT_IGNORE;
; 237. result = RESULT_SD_OUT;
LD IX,54
?0044:
; 238. //return 0;
; 239. }
; 240. break;
JR ?0034
?0045:
; 241.
; 242. case 2:
; 243. //删除文件
; 244. 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
; 245. break;
JR ?0034
?0046:
; 246.
; 247. case 3:
; 248. //删除全部
; 249. //result = ui_delete_amv(DELETE_FILE);
; 250. FSELSetMode(FSEL_ALL_REPEATALL);
LD E,4
CALL LWRD ?0078
; 251. 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
; 252. FSELSetMode(g_amv_vars.repeat_mode);
LD DE,(g_amv_vars+3)
CALL LWRD ?0078
; 253. break;
JR ?0034
?0047:
; 254.
; 255. case 4:
; 256. 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
; 257. if(result==0)result=RESULT_IGNORE;
LD A,L
OR H
JR NZ,?0034
?0048:
?0049:
; 258. break;
?0050:
; 259. default://退出 //case 4
; 260. result = RESULT_IGNORE;
LD IX,52
; 261. break;
?0034:
?0033:
; 262. }
; 263. //注,如 result != 0表示退出时一些时间参数不用清0
; 264. // 但如果 ==0 则表示退出时目录已改,时间要清0
; 265. }
; 266.
; 267. //if(result != RESULT_IGNORE)
; 268. // ClearTimePara();//清0时间及断点
; 269. if (result == RESULT_IGNORE)
PUSH IX
POP HL
LD A,52
XOR L
OR H
JR NZ,?0052
?0051:
; 270. {
; 271. result = 0;
LD IX,0
?0052:
; 272. }
; 273. if (result != 0)
PUSH IX
POP HL
LD A,L
OR H
JR NZ,?0055
?0053:
; 274. {
; 275. return result;
; 276. }
?0054:
; 277. ClearTimePara();//清0时间及断点
LD A,BYTE3 ClearTimePara
LD HL,LWRD ClearTimePara
CALL LWRD ?BANK_CALL_DIRECT_L08
; 278. return 0;
LD HL,0
; 279. }
?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
?0077:
PUSH HL
POP IX
LD E,0
?0078:
LD A,BYTE3 fselSetMode
LD HL,LWRD fselSetMode
JP LWRD ?BANK_CALL_DIRECT_L08
; 280.
; 281.
; 282.
; 283.
; 284.
; 285.
; 286.
; 287. //====检测卡是否可用========
; 288. /*
; 289. void CheckIfCardOK(void)
; 290. {
; 291. char i;
; 292. i = DRV_DetectUD(1); //检测 sd 卡是否存在
; 293. if (i == 0x20)
; 294. {
; 295. g_CardInFlag = 1;
; 296. }
; 297. else
; 298. {
; 299. g_CardInFlag = 0;
; 300. }
; 301.
; 302. }
; 303. */
RSEG IDATA0
g_CardInFlag:
DEFS 1
?0009:
DEFS 1
RSEG CDATA0
DEFB 0
DEFB 0
RSEG APC_UI_MNU
dir_string_card:
DEFW 461
DEFW 462
DEFW 463
DEFW 464
DEFW 466
DEFW 465
repeat_string:
DEFW 472
DEFW 473
DEFW 474
DEFW 475
DEFW 476
DEFW 477
DEFW 478
dir_string:
DEFW 461
DEFW 463
DEFW 464
DEFW 466
DEFW 465
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -