📄 ui_stop.s01
字号:
?0043:
; 158. {
; 159. StartIntro(FALSE);
XOR A
?0112:
LD (g_introCntMode),A
LD A,(g_music_vars+77)
LD (g_OldSecTempBackup),A
XOR A
LD (g_introCNT),A
?0044:
; 160. }
; 161. if ((!CaltimeFlag) && (!ifSelBuffToltalTimeFlag))
LD A,(CaltimeFlag)
OR A
JR NZ,?0046
LD A,(ifSelBuffToltalTimeFlag)
OR A
JR NZ,?0046
?0048:
?0047:
?0045:
; 162. {
; 163. musicpSendCommand(MC_CALTIME, NULL);
CALL LWRD ?0145
?0046:
; 164. }
; 165.
; 166. //判断是否刚断电完而没有重设时间
; 167. if (g_PowerOffFlag == 0x55)
LD A,(g_PowerOffFlag)
CP 85
JR NZ,?0052
?0049:
; 168. {
; 169. if (!DisplayTimeRollback())
LD A,BYTE3 DisplayTimeRollback
LD HL,LWRD DisplayTimeRollback
CALL LWRD ?BANK_CALL_DIRECT_L08
INC L
DEC L
JP Z,?0123
?0051:
; 170. {
; 171. SetFullInterface();
; 172. need_draw = TRUE;
; 173. break;
?0052:
?0050:
; 174. }
; 175. }
; 176.
; 177. UpDisplayFlag = UpDisplayFlag | up_musictotaltime | up_musicbitrate;
LD HL,UpDisplayFlag
INC HL
LD A,(HL)
OR 33
LD (HL),A
; 178. need_draw = TRUE;
LD A,1
LD (need_draw),A
; 179.
; 180.
; 181. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 182. if (!musicpSendCommand(MC_PLAY, g_music_vars.MusicOpenMod))
LD BC,(g_music_vars+6)
LD B,0
LD E,4
CALL LWRD ?0143
INC L
DEC L
JR NZ,?0054
?0053:
; 183. {
; 184. ErrReport(PlayStatus);// playStatus 并未改变
LD DE,(PlayStatus)
LD A,BYTE3 ErrReport
LD HL,LWRD ErrReport
CALL LWRD ?BANK_CALL_DIRECT_L08
; 185. break;
JP LWRD ?0027
?0054:
; 186. }
; 187. output8(REG4E_RTC_WATCH_DOG, input8(REG4E_RTC_WATCH_DOG) | 0x08);
IN A,(78)
SET 3,A
OUT (78),A
; 188.
; 189. g_result = ui_play();
LD A,BYTE3 ui_play
LD HL,LWRD ui_play
CALL LWRD ?0138
; 190.
; 191. ap_message_init(NULL);//开始算STANDBY 时间
CALL LWRD ?0136
; 192. if (g_result != 0)
LD HL,(g_result)
LD A,L
OR H
JR Z,?0056
?0055:
; 193. {
; 194. int i;
; 195. i = g_result;
LD (IX-3),L
LD (IX-2),H
; 196. if(PlayStatus != StopSta)
LD A,(PlayStatus)
OR A
JR Z,?0058
?0057:
; 197. {
; 198. #ifdef OPT_Sup_FadeOut_fun
; 199. if (!g_FCexitflag)
LD A,(g_FCexitflag)
OR A
JR NZ,?0060
?0059:
; 200. { //如从跟读对录音或对比放音出,不淡出
; 201. FadeOut(FALSE);
LD E,A
LD A,BYTE3 FadeOut
LD HL,LWRD FadeOut
CALL LWRD ?BANK_CALL_DIRECT_L08
?0060:
; 202. }
; 203. #endif
; 204. BackupCurrentTime();
LD A,BYTE3 BackupCurrentTime
LD HL,LWRD BackupCurrentTime
CALL LWRD ?BANK_CALL_DIRECT_L08
; 205. musicpSendCommand(MC_STOP, NULL);
LD BC,0
LD E,6
CALL LWRD ?0143
; 206. musicpSendCommand(MC_BACKUP, NULL);
LD BC,0
LD E,68
CALL LWRD ?0143
; 207. g_music_vars.MusicOpenMod = Nor_Break_open;//保证退出后从断点进来
LD A,1
LD (g_music_vars+6),A
?0058:
; 208. }
; 209. g_result = i;
LD L,(IX-3)
LD H,(IX-2)
LD (g_result),HL
; 210. }
; 211. else
JR ?0062
?0056:
?0063:
; 212. while(ap_get_message() != 0); //清空消息池
CALL LWRD ap_get_message
OR A
JR NZ,?0056
?0064:
?0062:
?0061:
; 213. g_FCexitflag = FALSE;
XOR A
LD (g_FCexitflag),A
; 214.
; 215. return g_result;
JR ?0114
; 216.
; 217. case AP_KEY_EQ | AP_KEY_UP:
?0065:
; 218. break;
?0066:
; 219.
; 220. case AP_KEY_MODE:
; 221. modekeystore = key;
LD (IX-7),E
; 222. break;
JP LWRD ?0027
?0067:
; 223.
; 224. case AP_KEY_MODE | AP_KEY_UP: //短按MODE
; 225. if (modekeystore != AP_KEY_MODE)
LD A,(IX-7)
CP 16
JR Z,?0069
?0068:
; 226. { //要先按了AP_KEY_MODE 键后up才算有效
; 227. modekeystore = NULL;
LD (IX-7),0
; 228. break;
JP LWRD ?0027
?0069:
; 229. }
; 230. g_result = ui_stop_menu();
LD A,BYTE3 ui_stop_menu
LD HL,LWRD ui_stop_menu
CALL LWRD ?0138
; 231.
; 232.
; 233. if (g_result == RESULT_IGNORE)
LD A,52
XOR L
OR H
JP Z,?0123
?0070:
; 234. {
; 235. SetFullInterface();
; 236. need_draw = TRUE;
; 237. break;
?0071:
; 238. }
; 239. CaltimeFlag = FALSE;
XOR A
LD (CaltimeFlag),A
; 240. ifSelBuffToltalTimeFlag = FALSE;
LD (ifSelBuffToltalTimeFlag),A
; 241.
; 242. if (g_result == RESULT_SD_OUT)
LD A,54
XOR L
OR H
JP Z,?0115
?0072:
; 243. {
; 244. return RESULT_CURR_UI;
; 245. }
?0073:
; 246. PlayStatus=StopSta;
XOR A
LD (PlayStatus),A
; 247. return g_result;//热键或等于0时返回
?0114:
JP LWRD ?0116
; 248.
; 249.
; 250.
; 251. case AP_KEY_PREV | AP_KEY_UP:
?0074:
?0076:
; 252. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR NZ,?0074
?0077:
; 253. break;
?0075:
JP LWRD ?0027
?0078:
; 254.
; 255. case AP_KEY_PREV:
; 256. case AP_KEY_PREV | AP_KEY_HOLD:
; 257. musicpSendCommand(MC_CLOSE, NULL);
LD C,A
LD B,A
LD E,2
CALL LWRD ?0143
; 258. g_result = ChangeMusic(Music_Prev, Stop_key);
LD C,0
LD E,4
; 259. FSELSetMode( FSEL_ALL_REPEATALL );
; 260. FSELGetNext(g_music_vars.location.filename);
; 261. fselGetLocation(& g_music_vars.location);
; 262. GetInformation();
CALL LWRD ?0141
; 263. memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
; 264. FSELGetPrev(g_music_vars.location.filename);
; 265. fselGetLocation(& g_music_vars.location);
; 266. FSELSetMode(g_music_vars.repeat_mode);
; 267. GetInformation(); //取文件信息
CALL LWRD ?0137
; 268. musicpSendCommand( MC_OPEN, (int)& g_Openparam );//这个可不用
; 269. g_result = musicpSendCommand(MC_LOAD, NULL);
; 270. CaltimeFlag = FALSE;//等待计时间
; 271. WaitForCaltimeCNT = 0;
; 272. SetFullInterface();
; 273. UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
; 274. need_draw = TRUE;
?0080:
; 275.
; 276. //清除多出的HOLD消息,防止按键停了还跳几曲
; 277. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR NZ,?0080
?0081:
; 278. break;
?0079:
JP LWRD ?0027
?0082:
?0084:
; 279.
; 280. case AP_KEY_NEXT | AP_KEY_UP:
; 281. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR NZ,?0082
?0085:
; 282. break;
?0083:
JP LWRD ?0027
?0086:
; 283.
; 284. case AP_KEY_NEXT:
; 285. case AP_KEY_NEXT | AP_KEY_HOLD:
; 286. musicpSendCommand(MC_CLOSE, NULL);
LD C,A
LD B,A
LD E,2
CALL LWRD ?0143
; 287. g_result = ChangeMusic(Music_Next, Stop_key);
LD C,0
LD E,3
; 288. FSELSetMode( FSEL_ALL_REPEATALL );
; 289. FSELGetNext(g_music_vars.location.filename);
; 290. fselGetLocation(& g_music_vars.location);
; 291. GetInformation();
CALL LWRD ?0141
; 292. memcpy(g_TagInfoBuf1,g_TagInfoBuf,20);
; 293. FSELGetPrev(g_music_vars.location.filename);
; 294. fselGetLocation(& g_music_vars.location);
; 295. FSELSetMode(g_music_vars.repeat_mode);
; 296. GetInformation(); //取文件信息
CALL LWRD ?0137
; 297. musicpSendCommand(MC_OPEN, (int)& g_Openparam);
; 298. g_result = musicpSendCommand(MC_LOAD, NULL);
; 299. CaltimeFlag = FALSE;//等待计时间
; 300. WaitForCaltimeCNT = 0;
; 301.
; 302. SetFullInterface();
; 303. UpDisplayFlag=UpDisplayFlag & clr_musicBackGDPic ;
; 304.
; 305. need_draw = TRUE;
?0088:
; 306. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JR NZ,?0088
?0089:
; 307. break;
?0087:
JP LWRD ?0027
?0090:
; 308.
; 309. case AP_KEY_VOLSUB:
; 310. case AP_KEY_VOLADD:
; 311.
; 312. slider.min = 0;
LD L,A
LD H,A
LD (slider+2),HL
; 313. slider.max = 31;
LD L,31
LD (slider+4),HL
; 314. slider.value = g_music_vars.volume;
LD BC,(g_music_vars)
LD A,C
RLCA
SBC A,A
LD B,A
LD (slider+6),BC
; 315. slider.step = 1;
LD L,1
LD (slider+8),HL
; 316. slider.title=CHANGEVO;
LD HL,489
LD (slider),HL
; 317. slider.string_id=g_comval.langid;
LD A,(g_comval+12)
LD (slider+10),A
; 318. ui_auto_update = FALSE;
XOR A
LD (ui_auto_update),A
; 319.
; 320. //在停止状态时调音量没必要实时改变IO号的值
; 321. g_result = ui_slider(& slider, NULL);
LD C,A
PUSH BC
LD L,C
LD H,C
PUSH HL
LD DE,slider
LD A,BYTE3 ui_slider
LD HL,LWRD ui_slider
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
POP AF
LD (g_result),HL
; 322.
; 323. g_music_vars.volume = slider.value;//退出时再改变音量的值
LD A,(slider+6)
LD (g_music_vars),A
; 324. ui_auto_update = TRUE;
LD A,1
LD (ui_auto_update),A
; 325. if (g_result != 0)return g_result;
LD A,L
OR H
JR Z,?0122
?0091:
?0116:
LD HL,(g_result)
JR ?0109
?0092:
; 326. SetFullInterface();
; 327. need_draw = TRUE;
; 328. break;
?0093:
; 329.
; 330. case AP_MSG_SD_OUT:
; 331. if (g_music_vars.location.disk == 'H')
LD A,(g_music_vars+7)
CP 72
JR NZ,?0027
?0094:
; 332. {
; 333. g_music_vars.location.disk = 'C';
LD A,67
LD (g_music_vars+7),A
; 334.
; 335. DisplayErrMsg(CARDPULL);//显示卡拔出
LD DE,401
LD A,BYTE3 DisplayErrMsg
LD HL,LWRD DisplayErrMsg
CALL LWRD ?BANK_CALL_DIRECT_L08
; 336. PlayStatus=StopSta;
XOR A
LD (PlayStatus),A
; 337. return RESULT_CURR_UI;
?0115:
LD L,A
LD H,A
; 338.
; 339. }
JR ?0109
?0095:
; 340. break;
?0096:
; 341.
; 342. case AP_MSG_SD_IN:
; 343. break;
?0097:
; 344.
; 345.
; 346. default:
; 347. key = ap_handle_hotkey(key);
CALL LWRD ap_handle_hotkey
LD (IX-8),A
; 348. if (key == RESULT_REDRAW)
CP 50
JR NZ,?0099
?0098:
; 349. {
; 350. SetFullInterface();
?0123:
XOR A
?0122:
LD (ui_auto_update),A
LD HL,UpDisplayFlag
LD A,(HL)
OR 193
LD (HL),A
INC HL
LD (HL),255
; 351. need_draw = TRUE;
LD A,1
LD (need_draw),A
JR ?0027
?0099:
; 352. }
; 353. else if (key != 0)
XOR A
OR (IX-8)
JR Z,?0027
?0101:
; 354. {
; 355. return key;
LD L,A
LD H,0
; 356. }
?0109:
POP IY
JP LWRD ?BANK_LEAVE_DIRECT_L08
?0102:
?0100:
; 357. break;
?0027:
; 358. } //switch(key)
; 359. if (g_ScrollFlag)
LD A,(g_ScrollFlag)
OR A
JR Z,?0104
?0103:
; 360. {
; 361. g_ScrollFlag = FALSE;
XOR A
LD (g_ScrollFlag),A
; 362. UpDisplayFlag = UpDisplayFlag | up_musicbattery;
LD HL,UpDisplayFlag
SET 7,(HL)
; 363. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0104:
; 364. }
; 365. if ((!CaltimeFlag)) // && (WaitForCaltimeCNT >= CaltimeCNT_def))
LD A,(CaltimeFlag)
OR A
JR NZ,?0108
?0105:
; 366. {
; 367. musicpSendCommand(MC_CALTIME, NULL);
CALL LWRD ?0145
; 368. if(PlayStatus!=PauseSta)
LD A,(PlayStatus)
DEC A
JR Z,?0108
?0107:
; 369. {
; 370. UpDisplayFlag = UpDisplayFlag | up_musiccurrenttime | up_musicbitrate|up_musictotaltime;
LD HL,UpDisplayFlag
INC HL
LD A,(HL)
OR 35
LD (HL),A
; 371. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0108:
?0106:
; 372. }
; 373. }
; 374.
; 375. } //while(1)
; 376. }
JP LWRD ?0015
; 377.
; 378.
RSEG UDATA0
WaitForCaltimeCNT:
DEFS 1
CaltimeFlag:
DEFS 1
RSEG IDATA0
testram:
DEFS 1
RSEG CDATA0
DEFB 0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -