📄 ui_stop.s01
字号:
LD (g_comval+9),A
; 155. SetContrast(g_comval.DisplayContrast);
LD DE,(g_comval+8)
CALL LWRD SetContrast
; 156. ap_message_init(&g_comval);
LD DE,g_comval
CALL LWRD ?0123
; 157. SetBackgdColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetBackgdColor
; 158. /*
; 159. // tempReg4f = input8(0x4f);
; 160. output8(0x4f,0x47); //VDD 1.8V
; 161. ap_sleep(1); */
; 162. g_result = ui_play();
LD A,BYTE3 ui_play
LD HL,LWRD ui_play
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 163. /*
; 164. output8(0xf4, input8(0xf4) & 0xf7); //SRAM CE2 Disable
; 165. output8(0x4f, 0x43);
; 166. ap_sleep(1);*/
; 167. ///- SetBackgdColor(Color_MENU_def);
; 168. VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
LD BC,32
PUSH BC
LD BC,512
LD DE,g_comval
CALL LWRD VMRead
POP HL
; 169. ap_message_init(&g_comval);
LD DE,g_comval
CALL LWRD ?0123
; 170. /////////////////////////////////////////////
; 171.
; 172. ap_message_init(NULL);//开始算STANDBY 时间
CALL LWRD ?0122
; 173. ui_run_realtime = FALSE;
XOR A
LD (ui_run_realtime),A
; 174. if(g_result==0)
LD HL,(g_result)
LD A,L
OR H
JR Z,?0114
?0038:
; 175. {
; 176. need_draw=TRUE;
; 177. return g_result;
; 178. }
?0039:
; 179. else if(g_result==RESULT_UI_STOP2)
LD A,103
XOR L
OR H
JR NZ,?0052
?0040:
; 180. {
; 181. //byte Reg_27h=input8(0x27);
; 182. output8(0x27,input8(0x27)&0xfe); //关Dsp中断 防止花屏 zxs add
IN A,(39)
RES 0,A
OUT (39),A
; 183. ui_show_msg (CARDPULL, CARDPULL, g_langid);
LD BC,(g_langid)
LD B,0
PUSH BC
LD BC,394
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
?0043:
; 184. while( ap_get_message() != NULL ); //清空消息池
CALL LWRD ap_get_message
OR A
JR NZ,?0043
?0044:
?0042:
; 185. ap_sleep(4);
LD DE,4
LD A,BYTE3 ap_sleep
LD HL,LWRD ap_sleep
CALL LWRD ?BANK_CALL_DIRECT_L08
; 186. need_draw = TRUE;
?0114:
LD A,1
LD (need_draw),A
; 187. return g_result;
JR ?0052
; 188.
; 189. }
?0041:
; 190. else return g_result;
; 191.
; 192. case AP_KEY_MODE:
?0045:
; 193. g_menu_active=TRUE;
; 194. break;
?0046:
; 195. case AP_KEY_MODE | AP_KEY_UP: //短按MODE
; 196. if(g_menu_active)
LD A,(g_menu_active)
OR A
JR Z,?0048
?0047:
; 197. {
; 198. g_result = ui_stop_menu();
LD A,BYTE3 ui_stop_menu
LD HL,LWRD ui_stop_menu
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 199.
; 200. if (g_result == RESULT_SD_OUT)
LD A,54
XOR L
OR H
JR NZ,?0050
?0049:
; 201. {
; 202. return RESULT_CURR_UI;
LD L,A
LD H,A
; 203. }
JP LWRD ?0094
?0050:
; 204. if (g_result == RESULT_IGNORE)
LD A,52
XOR L
OR H
JP Z,?0120
?0051:
; 205. {
; 206. need_draw = TRUE;
; 207. break;
?0052:
; 208. }
; 209. return g_result;//热键或等于0时返回
LD HL,(g_result)
; 210. }
JP LWRD ?0094
?0048:
; 211. else
; 212. g_menu_active=TRUE;
LD A,1
LD (g_menu_active),A
; 213. break;
JP LWRD ?0025
?0053:
?0055:
; 214.
; 215. //break;
; 216. // case AP_KEY_MODE | AP_KEY_HOLD: //长按MODE
; 217. // return RESULT_MAIN; //返回main ap
; 218.
; 219. case AP_KEY_PREV | AP_KEY_UP:
; 220. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0056:
; 221. break;
JR ?0053
?0054:
?0057:
; 222.
; 223. case AP_KEY_PREV:
; 224. case AP_KEY_PREV | AP_KEY_HOLD:
; 225. #ifndef __6KEYMODE__
; 226. if(g_volcounter>0)
; 227. {
; 228. g_volcounter = 6;
; 229.
; 230. if(g_amv_vars.volume>0)
; 231. {
; 232. vol_callback(--g_amv_vars.volume);
; 233. ui_show_vol(g_amv_vars.volume);
; 234. }
; 235. }
; 236. else
; 237. #endif
; 238. {
; 239. if (g_changevolume&0x01)
LD A,(g_changevolume)
BIT 0,A
JR Z,?0059
?0058:
; 240. {
; 241. g_changevolume|=0x3f;
OR 63
LD (g_changevolume),A
?0059:
; 242. // goto vol_sub_lzd;
; 243. }
; 244. memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
LD BC,20
LD DE,g_TagInfoBuf1
LD HL,g_TagInfoBuf
LDIR
; 245. //g_TagInfoBuf1[18]=0;
; 246. g_TagInfoBuf1[20]=0;
XOR A
LD (g_TagInfoBuf1+20),A
; 247. g_result = ChangeMusic(Music_Prev, Stop_key);
; 248. GetInformation(); //取文件信息
CALL LWRD ?0126
; 249. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0061:
; 250. }
; 251. //清除多出的HOLD消息,防止按键停了还跳几曲
; 252. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0062:
; 253. break;
JR ?0061
?0060:
?0063:
?0065:
; 254.
; 255. case AP_KEY_NEXT | AP_KEY_UP:
; 256. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0066:
; 257. break;
JR ?0063
?0064:
?0067:
; 258.
; 259. case AP_KEY_NEXT:
; 260. case AP_KEY_NEXT | AP_KEY_HOLD:
; 261. #ifndef __6KEYMODE__
; 262. if(g_volcounter>0)
; 263. {
; 264. g_volcounter = 6;
; 265.
; 266. if(g_amv_vars.volume<31)
; 267. {
; 268. vol_callback(++g_amv_vars.volume);
; 269. ui_show_vol(g_amv_vars.volume);
; 270. }
; 271. }
; 272. else
; 273. #endif
; 274. {
; 275. g_result = ChangeMusic(Music_Next, Stop_key);
LD C,A
LD E,3
; 276. GetInformation(); //取文件信息
CALL LWRD ?0127
; 277. g_result = ChangeMusic(Music_Next, Stop_key);
LD C,0
LD E,3
LD A,BYTE3 ChangeMusic
LD HL,LWRD ChangeMusic
CALL LWRD ?BANK_CALL_DIRECT_L08
LD H,0
LD (g_result),HL
; 278. GetInformation(); //取文件信息
CALL LWRD ?0124
; 279. memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
; 280. //g_TagInfoBuf1[18]=0;
; 281. g_TagInfoBuf1[20]=0;
; 282. g_result = ChangeMusic(Music_Prev, Stop_key);
; 283. GetInformation(); //取文件信息
CALL LWRD ?0126
; 284. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0069:
; 285. }
; 286. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0070:
; 287. break;
JR ?0069
?0068:
?0071:
; 288.
; 289. #ifdef __6KEYMODE__
; 290. case AP_KEY_VOLSUB:
; 291. case AP_KEY_VOLSUB | AP_KEY_HOLD:
; 292. if(g_volcounter>0)
LD A,(g_volcounter)
OR A
LD A,6
LD (g_volcounter),A
JR Z,?0079
?0072:
; 293. {
; 294. g_volcounter = 6;
; 295.
; 296. if(g_amv_vars.volume>0)
LD A,(g_amv_vars+2)
OR A
JP Z,?0025
?0074:
; 297. {
; 298. vol_callback(--g_amv_vars.volume);
LD HL,g_amv_vars+2
DEC (HL)
JR ?0119
; 299. ui_show_vol(g_amv_vars.volume);
?0075:
; 300. }
; 301. }
; 302. else
?0073:
; 303. {
; 304. g_volcounter = 6;
; 305. main_ResShowPic(VOL_00+g_amv_vars.volume,0,106);
?0076:
; 306. }
; 307. break;
?0077:
; 308. case AP_KEY_VOLADD:
; 309. case AP_KEY_VOLADD | AP_KEY_HOLD:
; 310. if(g_volcounter>0)
LD A,(g_volcounter)
OR A
LD A,6
LD (g_volcounter),A
JR Z,?0079
?0078:
; 311. {
; 312. g_volcounter = 6;
; 313.
; 314. if(g_amv_vars.volume<31)
LD A,(g_amv_vars+2)
CP 31
JP NC,?0025
?0080:
; 315. {
; 316. vol_callback(++g_amv_vars.volume);
LD HL,g_amv_vars+2
INC (HL)
?0119:
LD E,(HL)
LD D,0
LD A,BYTE3 vol_callback
LD HL,LWRD vol_callback
CALL LWRD ?BANK_CALL_DIRECT_L08
; 317. ui_show_vol(g_amv_vars.volume);
LD DE,(g_amv_vars+2)
LD A,BYTE3 ui_show_vol
LD HL,LWRD ui_show_vol
CALL LWRD ?BANK_CALL_DIRECT_L08
?0081:
; 318. }
; 319. }
; 320. else
JP LWRD ?0025
?0079:
; 321. {
; 322. g_volcounter = 6;
; 323. main_ResShowPic(VOL_00+g_amv_vars.volume,0,106);
LD C,106
PUSH BC
LD C,0
LD DE,(g_amv_vars+2)
LD D,C
LD HL,281
ADD HL,DE
EX DE,HL
LD A,BYTE3 main_ResShowPic
LD HL,LWRD main_ResShowPic
CALL LWRD ?BANK_CALL_DIRECT_L08
POP AF
?0082:
; 324. }
; 325. break;
JP LWRD ?0025
?0083:
; 326. #endif
; 327.
; 328. #ifndef __6KEYMODE__
; 329. case AP_KEY_VOL | AP_KEY_UP:
; 330. if(g_volcounter > 0)
; 331. {
; 332. g_volcounter = 0;
; 333. g_rSetPlayStatus = TRUE;
; 334.
; 335. ShowNowTime(FALSE);
; 336. }
; 337. else
; 338. {
; 339. g_volcounter = 6;
; 340. main_ResShowPic(VOL_00+g_amv_vars.volume,0,106);
; 341. }
; 342. break;
; 343. #endif
; 344.
; 345. case AP_MSG_RTC:
; 346. case AP_MSG_CHARGING:
; 347. if(g_volcounter>0)
LD A,(g_volcounter)
OR A
JR Z,?0087
?0084:
; 348. {
; 349. g_volcounter--;
LD HL,g_volcounter
DEC (HL)
; 350. if(g_volcounter==0)
LD A,(g_volcounter)
OR A
JR NZ,?0087
?0086:
; 351. {
; 352. g_rSetPlayStatus = TRUE;
LD A,1
LD (g_rSetPlayStatus),A
; 353.
; 354. ShowNowTime(FALSE);
LD E,0
LD A,BYTE3 ShowNowTime
LD HL,LWRD ShowNowTime
CALL LWRD ?BANK_CALL_DIRECT_L08
?0087:
?0085:
; 355. }
; 356. }
; 357.
; 358. ui_show_batt(GetBattery(), g_BatteryType,0);
LD C,0
PUSH BC
LD BC,(g_BatteryType)
CALL LWRD GetBattery
LD E,A
LD D,0
LD A,BYTE3 ui_show_batt
LD HL,LWRD ui_show_batt
CALL LWRD ?BANK_CALL_DIRECT_L08
POP HL
; 359. break;
JP LWRD ?0025
?0088:
; 360. /*
; 361. case AP_MSG_SD_OUT:
; 362. if (g_amv_vars.location.disk == 'H')
; 363. {
; 364. g_amv_vars.location.disk = 'C';
; 365. ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
; 366. return RESULT_CURR_UI;
; 367. }
; 368. break;
; 369. */
; 370. default:
; 371. key = ap_handle_hotkey(key);
CALL LWRD ap_handle_hotkey
LD HL,0
ADD HL,SP
LD (HL),A
; 372. if (key == RESULT_REDRAW)
CP 50
JR NZ,?0090
?0089:
; 373. {
; 374. need_draw = TRUE;
?0120:
LD A,1
LD (need_draw),A
JP LWRD ?0025
?0090:
; 375. }
; 376. else if (key != 0)
XOR A
OR (HL)
JP Z,?0025
?0092:
; 377. {
; 378. return key;
LD L,A
LD H,0
; 379. }
?0094:
POP AF
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0093:
?0091:
; 380. break;
?0033:
; 381. } //switch(key)
; 382. } //while(1)
; 383. }
RSEG IDATA0
g_firstplay_flag:
DEFS 1
g_volcounter:
DEFS 1
g_rSetPlayStatus:
DEFS 1
RSEG CDATA0
DEFB 1
DEFB 0
DEFB 0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -