ui_stop.lst
来自「MP3 整个 SDK」· LST 代码 · 共 978 行 · 第 1/4 页
LST
978 行
\ 01FA E5 PUSH HL
\ 01FB 010002 LD BC,512
\ 01FE 110000 LD DE,g_comval
\ 0201 CD0000 CALL LWRD VMRead
\ 0204 E1 POP HL
138 g_comval.LightTime = 0;
\ 0205 AF XOR A
\ 0206 320900 LD (g_comval+9),A
139 SetContrast(g_comval.DisplayContrast);
\ 0209 ED5B0800 LD DE,(g_comval+8)
\ 020D CD0000 CALL LWRD SetContrast
140 ap_message_init(&g_comval);
\ 0210 110000 LD DE,g_comval
\ 0213 CD2C01 CALL LWRD ?0141
141 SetBackgdColor(Color_BLACK_def);
\ 0216 010000 LD BC,0
\ 0219 59 LD E,C
\ 021A 50 LD D,B
\ 021B CD0000 CALL LWRD SetBackgdColor
142 g_result = ui_play();
\ 021E 3E00 LD A,BYTE3 ui_play
\ 0220 210000 LD HL,LWRD ui_play
\ 0223 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0226 220000 LD (g_result),HL
143 SetBackgdColor(Color_MENU_def);
\ 0229 010000 LD BC,0
\ 022C 11C0FC LD DE,64704
\ 022F CD0000 CALL LWRD SetBackgdColor
144 VMRead(& g_comval, VM_SYSTEM, sizeof(g_comval));
\ 0232 212000 LD HL,32
\ 0235 E5 PUSH HL
\ 0236 010002 LD BC,512
\ 0239 110000 LD DE,g_comval
\ 023C CD0000 CALL LWRD VMRead
\ 023F E1 POP HL
145 ap_message_init(&g_comval);
\ 0240 110000 LD DE,g_comval
\ 0243 CD2C01 CALL LWRD ?0141
146 }
147 /////////////////////////////////////////////
148 //安装驱动
149
150 if(g_comval.langid == 0) //简体
\ 0246 3A0C00 LD A,(g_comval+12)
\ 0249 B7 OR A
\ 024A 200E JR NZ,?0035
\ 024C ?0034:
151 {
152 if(!DRV_Install("UI_S0724.DRV",1)) while(1) {;}
\ 024C 010100 LD BC,1
\ 024F 110000 LD DE,?0038
\ 0252 CD0000 CALL LWRD DRV_Install
\ 0255 B7 OR A
\ 0256 2033 JR NZ,?0062
\ 0258 ?0036:
\ 0258 ?0040:
153 }
\ 0258 18FE JR ?0036
\ 025A ?0037:
\ 025A ?0035:
154 else if(g_comval.langid == 2) //繁体
\ 025A 3D DEC A
\ 025B 3D DEC A
\ 025C 200E JR NZ,?0044
\ 025E ?0043:
155 {
156 if(!DRV_Install("UI_T0724.DRV",1)) while(1) {;}
\ 025E 010100 LD BC,1
\ 0261 110D00 LD DE,?0047
\ 0264 CD0000 CALL LWRD DRV_Install
\ 0267 B7 OR A
\ 0268 2021 JR NZ,?0062
\ 026A ?0045:
\ 026A ?0049:
157 }
\ 026A 18FE JR ?0045
\ 026C ?0046:
\ 026C ?0044:
158 else if(g_comval.langid == LAN_ID_ENGLISH) //LAN_ID_ENGLISH=1: EN ASCII & Latin1. add by ccm
\ 026C 3A0C00 LD A,(g_comval+12)
\ 026F 3D DEC A
\ 0270 010100 LD BC,1
\ 0273 200B JR NZ,?0053
\ 0275 ?0052:
159 {
160 if(!DRV_Install("UI_L0724.DRV",1)) while(1) {;} //UI_L0724.DRV->ASCII & Latin1 Driver.
\ 0275 111A00 LD DE,?0056
\ 0278 CD0000 CALL LWRD DRV_Install
\ 027B B7 OR A
\ 027C 200D JR NZ,?0062
\ 027E ?0054:
\ 027E ?0058:
161 }
\ 027E 18FE JR ?0054
\ 0280 ?0055:
162
163 else //其他
\ 0280 ?0053:
164 {
165 if(!DRV_Install("UI_S0724.DRV",1)) while(1) {;}
\ 0280 110000 LD DE,?0038
\ 0283 CD0000 CALL LWRD DRV_Install
\ 0286 B7 OR A
\ 0287 2002 JR NZ,?0062
\ 0289 ?0061:
\ 0289 ?0064:
166 }
\ 0289 18FE JR ?0061
\ 028B ?0062:
\ 028B ?0060:
\ 028B ?0051:
\ 028B ?0042:
167 //打开lcd
168 StandbyScreen(TRUE);
\ 028B 1E01 LD E,1
\ 028D CD0000 CALL LWRD StandbyScreen
169 SetBackgdColor(Color_BLACK_def);
\ 0290 010000 LD BC,0
\ 0293 59 LD E,C
\ 0294 50 LD D,B
\ 0295 CD0000 CALL LWRD SetBackgdColor
170 SetContrast(g_comval.DisplayContrast);
\ 0298 ED5B0800 LD DE,(g_comval+8)
\ 029C CD0000 CALL LWRD SetContrast
171 /////////////////////////////////////// 退出播放状态 重新安装一下显示驱动
172
173 ap_message_init(NULL);//开始算STANDBY 时间
\ 029F CD2901 CALL LWRD ?0140
174 ui_run_realtime = FALSE;
\ 02A2 AF XOR A
\ 02A3 320000 LD (ui_run_realtime),A
175 if(g_result==0)
\ 02A6 2A0000 LD HL,(g_result)
\ 02A9 7D LD A,L
\ 02AA B4 OR H
\ 02AB 2832 JR Z,?0132
\ 02AD ?0066:
176 {
177 need_draw=TRUE;
178 return g_result;
179 }
\ 02AD ?0067:
180
181 else if(g_result==RESULT_UI_STOP2)
\ 02AD 3E67 LD A,103
\ 02AF AD XOR L
\ 02B0 B4 OR H
\ 02B1 2052 JR NZ,?0080
\ 02B3 ?0068:
182 {
183 //byte Reg_27h=input8(0x27);
184 output8(0x27,input8(0x27)&0xfe); //关Dsp中断 防止花屏 zxs add
\ 02B3 DB27 IN A,(39)
\ 02B5 CB87 RES 0,A
\ 02B7 D327 OUT (39),A
185 ui_show_msg (CARDPULL, CARDPULL, g_langid);
\ 02B9 ED4B0000 LD BC,(g_langid)
\ 02BD 0600 LD B,0
\ 02BF C5 PUSH BC
\ 02C0 019101 LD BC,401
\ 02C3 59 LD E,C
\ 02C4 50 LD D,B
\ 02C5 3E00 LD A,BYTE3 ui_show_msg
\ 02C7 210000 LD HL,LWRD ui_show_msg
\ 02CA CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02CD F1 POP AF
\ 02CE ?0071:
186 while( ap_get_message() != NULL ); //清空消息池
\ 02CE CD0000 CALL LWRD ap_get_message
\ 02D1 B7 OR A
\ 02D2 20FA JR NZ,?0071
\ 02D4 ?0072:
\ 02D4 ?0070:
187 ap_sleep(4);
\ 02D4 110400 LD DE,4
\ 02D7 3E00 LD A,BYTE3 ap_sleep
\ 02D9 210000 LD HL,LWRD ap_sleep
\ 02DC CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
188 need_draw = TRUE;
\ 02DF ?0132:
\ 02DF 3E01 LD A,1
\ 02E1 320000 LD (need_draw),A
189 return g_result;
\ 02E4 181F JR ?0080
190
191 }
\ 02E6 ?0069:
192
193 else return g_result;
194
195 case AP_KEY_MODE:
\ 02E6 ?0073:
196 g_menu_active=TRUE;
197 break;
\ 02E6 ?0074:
198 case AP_KEY_MODE | AP_KEY_UP: //短按MODE
199 if(g_menu_active)
\ 02E6 3A0000 LD A,(g_menu_active)
\ 02E9 B7 OR A
\ 02EA 281F JR Z,?0076
\ 02EC ?0075:
200 {
201 g_result = ui_stop_menu();
\ 02EC 3E00 LD A,BYTE3 ui_stop_menu
\ 02EE 210000 LD HL,LWRD ui_stop_menu
\ 02F1 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 02F4 220000 LD (g_result),HL
202
203 if (g_result == RESULT_SD_OUT)
\ 02F7 3E36 LD A,54
\ 02F9 AD XOR L
\ 02FA B4 OR H
\ 02FB CAC803 JP Z,?0136
\ 02FE ?0077:
204 {
205 return RESULT_CURR_UI;
206 }
\ 02FE ?0078:
207 if (g_result == RESULT_IGNORE)
\ 02FE 3E34 LD A,52
\ 0300 AD XOR L
\ 0301 B4 OR H
\ 0302 CAD903 JP Z,?0139
\ 0305 ?0079:
208 {
209 need_draw = TRUE;
210 break;
\ 0305 ?0080:
211 }
212 return g_result;//热键或等于0时返回
\ 0305 2A0000 LD HL,(g_result)
213 }
\ 0308 C3E903 JP LWRD ?0112
\ 030B ?0076:
214 else
215 g_menu_active=TRUE;
\ 030B 3E01 LD A,1
\ 030D 320000 LD (g_menu_active),A
216 break;
\ 0310 C39C01 JP LWRD ?0025
\ 0313 ?0081:
\ 0313 ?0083:
217
218 //break;
219 // case AP_KEY_MODE | AP_KEY_HOLD: //长按MODE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?