📄 ui_stop.s01
字号:
POP HL
; 138. g_comval.LightTime = 0;
XOR A
LD (g_comval+9),A
; 139. SetContrast(g_comval.DisplayContrast);
LD DE,(g_comval+8)
CALL LWRD SetContrast
; 140. ap_message_init(&g_comval);
LD DE,g_comval
CALL LWRD ?0141
; 141. SetBackgdColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetBackgdColor
; 142. g_result = ui_play();
LD A,BYTE3 ui_play
LD HL,LWRD ui_play
CALL LWRD ?BANK_CALL_DIRECT_L08
LD (g_result),HL
; 143. SetBackgdColor(Color_MENU_def);
LD BC,0
LD DE,64704
CALL LWRD SetBackgdColor
; 144. VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
LD HL,32
PUSH HL
LD BC,512
LD DE,g_comval
CALL LWRD VMRead
POP HL
; 145. ap_message_init(&g_comval);
LD DE,g_comval
CALL LWRD ?0141
; 146. }
; 147. /////////////////////////////////////////////
; 148. //安装驱动
; 149.
; 150. if(g_comval.langid == 0) //简体
LD A,(g_comval+12)
OR A
JR NZ,?0035
?0034:
; 151. {
; 152. if(!DRV_Install("UI_S0724.DRV",1)) while(1) {;}
LD BC,1
LD DE,?0038
CALL LWRD DRV_Install
OR A
JR NZ,?0062
?0036:
?0040:
; 153. }
JR ?0036
?0037:
?0035:
; 154. else if(g_comval.langid == 2) //繁体
DEC A
DEC A
JR NZ,?0044
?0043:
; 155. {
; 156. if(!DRV_Install("UI_T0724.DRV",1)) while(1) {;}
LD BC,1
LD DE,?0047
CALL LWRD DRV_Install
OR A
JR NZ,?0062
?0045:
?0049:
; 157. }
JR ?0045
?0046:
?0044:
; 158. else if(g_comval.langid == LAN_ID_ENGLISH) //LAN_ID_ENGLISH=1: EN ASCII & Latin1. add by ccm
LD A,(g_comval+12)
DEC A
LD BC,1
JR NZ,?0053
?0052:
; 159. {
; 160. if(!DRV_Install("UI_L0724.DRV",1)) while(1) {;} //UI_L0724.DRV->ASCII & Latin1 Driver.
LD DE,?0056
CALL LWRD DRV_Install
OR A
JR NZ,?0062
?0054:
?0058:
; 161. }
JR ?0054
?0055:
; 162.
; 163. else //其他
?0053:
; 164. {
; 165. if(!DRV_Install("UI_S0724.DRV",1)) while(1) {;}
LD DE,?0038
CALL LWRD DRV_Install
OR A
JR NZ,?0062
?0061:
?0064:
; 166. }
JR ?0061
?0062:
?0060:
?0051:
?0042:
; 167. //打开lcd
; 168. StandbyScreen(TRUE);
LD E,1
CALL LWRD StandbyScreen
; 169. SetBackgdColor(Color_BLACK_def);
LD BC,0
LD E,C
LD D,B
CALL LWRD SetBackgdColor
; 170. SetContrast(g_comval.DisplayContrast);
LD DE,(g_comval+8)
CALL LWRD SetContrast
; 171. /////////////////////////////////////// 退出播放状态 重新安装一下显示驱动
; 172.
; 173. ap_message_init(NULL);//开始算STANDBY 时间
CALL LWRD ?0140
; 174. ui_run_realtime = FALSE;
XOR A
LD (ui_run_realtime),A
; 175. if(g_result==0)
LD HL,(g_result)
LD A,L
OR H
JR Z,?0132
?0066:
; 176. {
; 177. need_draw=TRUE;
; 178. return g_result;
; 179. }
?0067:
; 180.
; 181. else if(g_result==RESULT_UI_STOP2)
LD A,103
XOR L
OR H
JR NZ,?0080
?0068:
; 182. {
; 183. //byte Reg_27h=input8(0x27);
; 184. output8(0x27,input8(0x27)&0xfe); //关Dsp中断 防止花屏 zxs add
IN A,(39)
RES 0,A
OUT (39),A
; 185. ui_show_msg (CARDPULL, CARDPULL, g_langid);
LD BC,(g_langid)
LD B,0
PUSH BC
LD BC,401
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
?0071:
; 186. while( ap_get_message() != NULL ); //清空消息池
CALL LWRD ap_get_message
OR A
JR NZ,?0071
?0072:
?0070:
; 187. ap_sleep(4);
LD DE,4
LD A,BYTE3 ap_sleep
LD HL,LWRD ap_sleep
CALL LWRD ?BANK_CALL_DIRECT_L08
; 188. need_draw = TRUE;
?0132:
LD A,1
LD (need_draw),A
; 189. return g_result;
JR ?0080
; 190.
; 191. }
?0069:
; 192.
; 193. else return g_result;
; 194.
; 195. case AP_KEY_MODE:
?0073:
; 196. g_menu_active=TRUE;
; 197. break;
?0074:
; 198. case AP_KEY_MODE | AP_KEY_UP: //短按MODE
; 199. if(g_menu_active)
LD A,(g_menu_active)
OR A
JR Z,?0076
?0075:
; 200. {
; 201. 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
; 202.
; 203. if (g_result == RESULT_SD_OUT)
LD A,54
XOR L
OR H
JP Z,?0136
?0077:
; 204. {
; 205. return RESULT_CURR_UI;
; 206. }
?0078:
; 207. if (g_result == RESULT_IGNORE)
LD A,52
XOR L
OR H
JP Z,?0139
?0079:
; 208. {
; 209. need_draw = TRUE;
; 210. break;
?0080:
; 211. }
; 212. return g_result;//热键或等于0时返回
LD HL,(g_result)
; 213. }
JP LWRD ?0112
?0076:
; 214. else
; 215. g_menu_active=TRUE;
LD A,1
LD (g_menu_active),A
; 216. break;
JP LWRD ?0025
?0081:
?0083:
; 217.
; 218. //break;
; 219. // case AP_KEY_MODE | AP_KEY_HOLD: //长按MODE
; 220. // return RESULT_MAIN; //返回main ap
; 221.
; 222. case AP_KEY_PREV | AP_KEY_UP:
; 223. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0084:
; 224. break;
JR ?0081
?0082:
?0085:
; 225.
; 226. case AP_KEY_PREV:
; 227. case AP_KEY_PREV | AP_KEY_HOLD:
; 228. if (g_changevolume&0x01)
LD A,(g_changevolume)
BIT 0,A
JR Z,?0087
?0086:
; 229. {
; 230. g_changevolume|=0x3f;
OR 63
LD (g_changevolume),A
?0087:
; 231. // goto vol_sub_lzd;
; 232. }
; 233. memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
LD BC,20
LD DE,g_TagInfoBuf1
LD HL,g_TagInfoBuf
LDIR
; 234. //g_TagInfoBuf1[18]=0;
; 235. g_TagInfoBuf1[20]=0;
XOR A
LD (g_TagInfoBuf1+20),A
; 236. g_result = ChangeMusic(Music_Prev, Stop_key);
; 237. GetInformation(); //取文件信息
CALL LWRD ?0144
; 238. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0089:
; 239. //清除多出的HOLD消息,防止按键停了还跳几曲
; 240. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0090:
; 241. break;
JR ?0089
?0088:
?0091:
?0093:
; 242.
; 243. case AP_KEY_NEXT | AP_KEY_UP:
; 244. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0094:
; 245. break;
JR ?0091
?0092:
?0095:
; 246.
; 247. case AP_KEY_NEXT:
; 248. case AP_KEY_NEXT | AP_KEY_HOLD:
; 249.
; 250. g_result = ChangeMusic(Music_Next, Stop_key);
LD C,0
LD E,3
; 251. GetInformation(); //取文件信息
CALL LWRD ?0145
; 252. 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
; 253. GetInformation(); //取文件信息
CALL LWRD ?0142
; 254. memcpy(g_TagInfoBuf1, g_TagInfoBuf, 20);
; 255. //g_TagInfoBuf1[18]=0;
; 256. g_TagInfoBuf1[20]=0;
; 257. g_result = ChangeMusic(Music_Prev, Stop_key);
; 258. GetInformation(); //取文件信息
CALL LWRD ?0144
; 259. need_draw = TRUE;
LD A,1
LD (need_draw),A
?0097:
; 260. while(ap_get_message() != 0);
CALL LWRD ap_get_message
OR A
JP Z,?0025
?0098:
; 261. break;
JR ?0097
?0096:
?0099:
; 262.
; 263. case AP_KEY_VOLSUB:
; 264. case AP_KEY_VOLSUB | AP_KEY_HOLD:
; 265.
; 266.
; 267.
; 268. case AP_KEY_VOLADD:
; 269. case AP_KEY_VOLADD | AP_KEY_HOLD:
; 270. result = show_volume(FALSE);
LD E,0
LD A,BYTE3 show_volume
LD HL,LWRD show_volume
CALL LWRD ?BANK_CALL_DIRECT_L08
; 271. if(result != 0) return result;
LD A,L
OR H
JR NZ,?0112
?0100:
?0101:
; 272. need_draw = TRUE;
JR ?0139
; 273. break;
?0102:
; 274.
; 275.
; 276.
; 277. case AP_MSG_RTC:
; 278. case AP_MSG_CHARGING:
; 279. 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
; 280.
; 281. break;
JP LWRD ?0025
?0103:
; 282. case AP_MSG_SD_OUT:
; 283. if (g_amv_vars.location.disk == 'H')
LD A,(g_amv_vars+5)
CP 72
JP NZ,?0025
?0104:
; 284. {
; 285. g_amv_vars.location.disk = 'C';
LD A,67
LD (g_amv_vars+5),A
; 286. ui_err_msg(CARDPULL,CARDPULL,g_langid);//显示卡拔出
LD BC,(g_langid)
LD B,0
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
; 287. return RESULT_CURR_UI;
?0136:
LD HL,0
; 288. }
JR ?0112
?0105:
; 289. break;
?0106:
; 290. default:
; 291. key = ap_handle_hotkey(key);
CALL LWRD ap_handle_hotkey
LD HL,0
ADD HL,SP
LD (HL),A
; 292. if (key == RESULT_REDRAW)
CP 50
JR NZ,?0108
?0107:
; 293. {
; 294. need_draw = TRUE;
?0139:
LD A,1
LD (need_draw),A
JP LWRD ?0025
?0108:
; 295. }
; 296. else if (key != 0)
XOR A
OR (HL)
JP Z,?0025
?0110:
; 297. {
; 298. return key;
LD L,A
LD H,0
; 299. }
?0112:
POP AF
POP IX
POP DE
POP BC
JP LWRD ?BANK_FAST_LEAVE_L08
?0111:
?0109:
; 300. break;
?0031:
; 301. } //switch(key)
; 302. } //while(1)
; 303. }
; 304.
; 305.
RSEG CSTR
?0038:
DEFB 'UI_S0724.DRV'
DEFB 0
?0047:
DEFB 'UI_T0724.DRV'
DEFB 0
?0056:
DEFB 'UI_L0724.DRV'
DEFB 0
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -