📄 ui_stop_menu.s01
字号:
; 183. FSELGetNext(g_music_vars.location.filename);
LD DE,g_music_vars+33
LD A,BYTE3 fselGetNextFile
LD HL,LWRD fselGetNextFile
CALL LWRD ?BANK_CALL_DIRECT_L08
; 184. g_music_vars.fselmod = FSEL_TYPE_COMMONDIR;
XOR A
LD (g_music_vars+79),A
; 185. g_music_vars.play_listmod = mlistnor;//改为普通目录模式
LD A,5
LD (g_music_vars+78),A
; 186. result = RESULT_IGNORE;
LD (IX-4),52
LD (IX-3),0
; 187. goto Lab_dir;
JR ?0052
?0042:
; 188. }
; 189.
; 190. tmpflag = TRUE;//调过 fselplaylistent 函数后要调用GETNEXT
LD (IX-1),1
; 191. }
; 192. else
JR ?0045
?0040:
; 193. {
; 194. //当选中模式与原来模式相同时
; 195. fselSetLocation(&g_music_vars.location);
LD DE,g_music_vars+7
LD A,BYTE3 fselSetLocation
LD HL,LWRD fselSetLocation
CALL LWRD ?BANK_CALL_DIRECT_L08
?0045:
; 196. }
; 197.
; 198. if (fselGetLocation(&g_music_vars.location))
CALL LWRD ?0104
INC L
DEC L
JR Z,?0052
?0046:
; 199. {
; 200. result = ui_playlist(&g_music_vars.location, DIRECTORY_MUSIC,
; 201. g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
CALL LWRD ?0108
POP AF
LD (IX-4),L
LD (IX-3),H
; 202. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 203. if ( result != RESULT_IGNORE )
LD A,52
XOR L
OR H
JR Z,?0049
?0048:
; 204. {
; 205. FSELGetNext(g_music_vars.location.filename);
LD DE,g_music_vars+33
LD A,BYTE3 fselGetNextFile
LD HL,LWRD fselGetNextFile
CALL LWRD ?BANK_CALL_DIRECT_L08
; 206. }
; 207. else
JR ?0052
?0049:
; 208. {
; 209. if ( tmpflag == TRUE) //(menu.active != g_music_vars.play_listmod)
LD B,(IX-1)
DEC B
JR Z,?0041
?0051:
; 210. {
; 211. goto listenterr1;
?0052:
?0050:
?0047:
?0038:
?0044:
; 212. }
; 213. }
; 214. }
; 215. }
; 216. Lab_dir:
; 217.
; 218. fselGetLocation(&g_music_vars.location);
CALL LWRD ?0104
; 219.
; 220. if ((result == 0) || (result == RESULT_IGNORE))
LD A,(IX-4)
OR (IX-3)
JR Z,?0055
LD A,52
XOR (IX-4)
OR (IX-3)
JR NZ,?0054
?0055:
?0056:
?0053:
; 221. {
; 222. //记录当前选中列表的类型,因为
; 223. g_music_vars.play_listmod = list.active;
LD A,(list+4)
LD (g_music_vars+78),A
?0054:
; 224. }
; 225. }
; 226. else
JP LWRD ?0084
?0027:
; 227. {
; 228.
; 229. //后面是以前的目录及删除选择
; 230. if (DRV_DetectUD(1) == 0x20)
CALL LWRD ?0103
LD DE,(list+4)
JP NZ,?0059
?0058:
; 231. {
; 232. //有卡的情况
; 233. switch (list.active)
CALL LWRD ?S_S_SWITCH_L06
DEFW 6
DEFW 4
DEFW ?0083
DEFW ?0061
DEFW ?0066
DEFW ?0081
DEFW ?0082
?0061:
; 234. {
; 235.
; 236.
; 237. case 6: //主目录
; 238. if (g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
JR NZ,?0063
?0062:
; 239. {
; 240. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 241. FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
LD C,A
PUSH BC
LD C,0
PUSH BC
LD E,C
CALL LWRD ?0106
POP AF
POP AF
; 242. fselGetLocation(&g_music_vars.location);
CALL LWRD ?0104
?0063:
; 243. }
; 244.
; 245. result = ui_directory(& g_music_vars.location, DIRECTORY_MUSIC, g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
LD C,0
LD DE,g_music_vars+7
LD A,BYTE3 ui_directory
LD HL,LWRD ui_directory
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 246. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0109
; 247. if (result == 0)
JR NZ,?0065
?0064:
; 248. {
; 249. //当选中目录后用普通模式播放
; 250. g_music_vars.play_listmod = mlistnor;
LD A,5
LD (g_music_vars+78),A
?0065:
; 251. //musicpSendCommand(MC_CLOSE, NULL);
; 252. }
; 253. break;
JP LWRD ?0084
?0066:
; 254.
; 255. case 7: //插卡目录
; 256. //PASS_KEY(0x12);
; 257. if (g_music_vars.location.disk == 'C')
LD A,(g_music_vars+7)
CP 67
JR NZ,?0068
?0067:
; 258. {
; 259. //PASS_KEY(0x13);
; 260. g_music_vars.location.disk = 'H';
LD A,72
LD (g_music_vars+7),A
; 261. result=FSELInit(FSEL_TYPE_MUSIC, FSEL_ALL_SEQUENCE, FSEL_TYPE_COMMONDIR,g_music_vars.location.disk);
LD C,A
PUSH BC
LD C,0
PUSH BC
LD E,C
CALL LWRD ?0106
POP AF
POP AF
LD H,0
LD (IX-4),L
LD (IX-3),H
; 262. if(!result)
LD A,L
OR A
LD HL,g_DiskStateFlag
JR NZ,?0070
?0069:
; 263. {
; 264. g_DiskStateFlag=g_DiskStateFlag&ClrCardOKFlag_def;
RES 3,(HL)
; 265. g_music_vars.location.disk == 'C';
; 266. DisplayErrInfor(CREADERR);//显示卡错
LD DE,404
LD A,BYTE3 DisplayErrInfor
LD HL,LWRD DisplayErrInfor
CALL LWRD ?BANK_CALL_DIRECT_L08
; 267. break;
JR ?0084
?0070:
; 268. }
; 269. g_DiskStateFlag=g_DiskStateFlag|SetCardOKFlag_def;
SET 3,(HL)
; 270. fselGetLocation(&g_music_vars.location);
CALL LWRD ?0104
; 271. tmpflag = TRUE;
?0068:
; 272. }
; 273. //fselGetLocation(&g_music_vars.location);
; 274. result = ui_directory(& g_music_vars.location, FSEL_TYPE_MUSIC, g_comval.langid);
LD HL,g_comval+12
LD C,(HL)
PUSH BC
LD C,0
LD DE,g_music_vars+7
LD A,BYTE3 ui_directory
LD HL,LWRD ui_directory
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
; 275. FSELSetMode(FSEL_ALL_SEQUENCE);
CALL LWRD ?0109
; 276. if (result == 0)
JR NZ,?0072
?0071:
; 277. {
; 278. if (tmpflag)
?0073:
; 279. {
; 280. tmpflag = FALSE;
?0074:
; 281. }
; 282. //fselGetLocation(&g_music_vars.location);
; 283. //当选中目录后用普通模式播放
; 284. g_music_vars.play_listmod = mlistnor;
LD A,5
LD (g_music_vars+78),A
?0072:
; 285. }
; 286.
; 287. //PASS_KEY(0x16);
; 288. if (result == RESULT_SD_OUT)
LD A,54
XOR (IX-4)
OR (IX-3)
JR NZ,?0076
?0075:
; 289. {
; 290. DisplayErrMsg(CARDPULL);//显示卡拔出
CALL LWRD ?0105
; 291. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 292. //return RESULT_IGNORE;
; 293. result = RESULT_IGNORE;
LD (IX-4),52
LD (IX-3),0
?0076:
; 294. //return 0;
; 295. }
; 296. if(g_music_vars.play_rate!=0&&g_music_vars.location.disk == 'H')
LD A,(g_music_vars+3)
OR A
JR Z,?0084
LD A,(g_music_vars+7)
CP 72
JR NZ,?0084
?0080:
?0079:
?0077:
; 297. g_music_vars.play_rate=0;
XOR A
LD (g_music_vars+3),A
?0078:
; 298. break;
JR ?0084
?0081:
; 299.
; 300. case 8: //删除文件
; 301. result = ui_delete_Music(DELETE_FILE);
LD DE,0
JR ?0094
; 302. break;
?0082:
; 303.
; 304. case 9: //删除全部
; 305. result = ui_delete_Music(DELETE_MUSIC);
LD DE,1
?0094:
LD A,BYTE3 ui_delete_Music
LD HL,LWRD ui_delete_Music
JR ?0101
; 306. break;
?0083:
; 307.
; 308. default://退出
; 309. //return 0;
; 310. result = RESULT_IGNORE;
LD (IX-4),52
LD (IX-3),0
; 311. break;
?0060:
; 312. }
; 313. }
; 314. else
JR ?0084
?0059:
; 315. {
; 316. //无卡的情况
; 317. result = NoCardCaseInStopMenu(list.active);
LD A,BYTE3 NoCardCaseInStopMenu
LD HL,LWRD NoCardCaseInStopMenu
?0101:
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (IX-4),L
LD (IX-3),H
?0084:
?0057:
; 318. }
; 319.
; 320. }
; 321.
; 322. if (result == RESULT_IGNORE)
LD A,52
XOR (IX-4)
OR (IX-3)
JR NZ,?0086
?0085:
; 323. {
; 324. result = 0;
LD (IX-4),A
LD (IX-3),A
?0086:
; 325. }
; 326.
; 327. //注,如 result != 0表示退出时一些时间参数不用清0
; 328. // 但如果 ==0 则表示退出时目录已改,时间要清0
; 329. if (result != 0)
LD A,(IX-4)
OR (IX-3)
JR Z,?0088
?0087:
; 330. {
; 331. return result;
?0095:
LD L,(IX-4)
LD H,(IX-3)
; 332. }
JR ?0089
?0088:
; 333. ClearTimePara();//清0时间及断点
LD A,BYTE3 ClearTimePara
LD HL,LWRD ClearTimePara
CALL LWRD ?BANK_CALL_DIRECT_L08
; 334. return 0;
LD HL,0
; 335.
; 336. }
?0089:
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0103:
LD E,1
?0102:
CALL LWRD DRV_DetectUD
CP 32
RET
?0104:
LD DE,g_music_vars+7
LD A,BYTE3 fselGetLocation
LD HL,LWRD fselGetLocation
JP LWRD ?BANK_CALL_DIRECT_L08
?0105:
LD DE,401
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
JP LWRD ?BANK_CALL_DIRECT_L08
?0107:
LD C,4
LD E,0
?0106:
LD A,BYTE3 fselInit
LD HL,LWRD fselInit
JP LWRD ?BANK_CALL_DIRECT_L08
?0108:
LD C,0
LD DE,g_music_vars+7
LD A,BYTE3 ui_playlist
LD HL,LWRD ui_playlist
JP LWRD ?BANK_CALL_DIRECT_L08
?0109:
LD (IX-4),L
LD (IX-3),H
LD E,0
LD A,BYTE3 fselSetMode
LD HL,LWRD fselSetMode
CALL LWRD ?BANK_CALL_DIRECT_L08
LD A,(IX-4)
OR (IX-3)
RET
; 337.
; 338.
; 339.
RSEG IDATA0
?0002:
DEFS 1
RSEG CDATA0
DEFB 0
RSEG APC_UI_MNU_STOP
PLFileName:
DEFB 'MYLIST A3L'
DEFB 0
DEFB 'ARTIST A3L'
DEFB 0
DEFB 'ALBUM A3L'
DEFB 0
DEFB 'GENRE A3L'
DEFB 0
DEFB 'COMPOSERA3L'
DEFB 0
dir_string_card:
DEFW 426
DEFW 427
DEFW 428
DEFW 429
DEFW 430
DEFW 431
DEFW 281
DEFW 282
DEFW 283
DEFW 284
DEFW 285
dir_string:
DEFW 426
DEFW 427
DEFW 428
DEFW 429
DEFW 430
DEFW 431
DEFW 281
DEFW 283
DEFW 284
DEFW 285
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -