ap_message2_formusic.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 1,069 行 · 第 1/4 页
LST
1,069 行
\ 01BC ED42 SBC HL,BC
\ 01BE 2005 JR NZ,?0052
\ 01C0 ?0054:
\ 01C0 ?0053:
\ 01C0 ?0051:
216 {
217 return AP_MSG_STANDBY;
\ 01C0 2E1D LD L,29
218 }
\ 01C2 C37102 JP LWRD ?0077
\ 01C5 ?0052:
219 #ifdef EAR_PROTECT
220 if(g_autoswitch_time != 0 && g_autoswitch_counter == g_autoswitch_time) //自动关机
\ 01C5 2A0200 LD HL,(g_autoswitch_time)
\ 01C8 7D LD A,L
\ 01C9 B4 OR H
\ 01CA 280D JR Z,?0056
\ 01CC ED4B0300 LD BC,(g_autoswitch_counter)
\ 01D0 ED42 SBC HL,BC
\ 01D2 2005 JR NZ,?0056
\ 01D4 ?0058:
\ 01D4 ?0057:
\ 01D4 ?0055:
221 {
222 return AP_MSG_FORCE_STANDBY;
\ 01D4 ?0109:
\ 01D4 2E1F LD L,31
223 }
\ 01D6 C37102 JP LWRD ?0077
\ 01D9 ?0056:
224 #endif
225
226 if( (g_rtc_counter % 16) == 0 )
\ 01D9 2A0C00 LD HL,(g_rtc_counter)
\ 01DC 7D LD A,L
\ 01DD E60F AND 15
\ 01DF 2005 JR NZ,?0060
\ 01E1 ?0059:
227 {
228
229 return AP_MSG_WAIT_TIMEOUT; //8 sec timeout
\ 01E1 2E1E LD L,30
230 }
\ 01E3 C37102 JP LWRD ?0077
\ 01E6 ?0060:
231
232 if(key == MSG_RTC2HZ) key = AP_MSG_RTC;
\ 01E6 DD4602 LD B,(IX+2)
\ 01E9 05 DEC B
\ 01EA E2F301 JP PO,?0062
\ 01ED ?0061:
\ 01ED DD36021C LD (IX+2),28
\ 01F1 1804 JR ?0063
\ 01F3 ?0062:
233 else key = AP_MSG_CHARGING;
\ 01F3 DD36021B LD (IX+2),27
\ 01F7 ?0063:
234
235 break;
\ 01F7 1875 JR ?0076
\ 01F9 ?0064:
236
237
238 case MSG_USB_STICK: //usb plugin, 等同按键
239 g_rtc_counter = 0;
\ 01F9 210000 LD HL,0
\ 01FC 220C00 LD (g_rtc_counter),HL
240 key_count = 1;
\ 01FF 23 INC HL
\ 0200 220F00 LD (?0012),HL
241 key = AP_MSG_USB_PLUGIN;
\ 0203 DD36021A LD (IX+2),26
242
243 //开背光
244 if(g_light_time != 0)
\ 0207 3A0500 LD A,(g_light_time)
\ 020A B7 OR A
\ 020B 2861 JR Z,?0076
\ 020D ?0065:
245 {
246 Lightmodeset(TRUE);//开关背光(TRUE: 开, FALSE:关)
\ 020D 5D LD E,L
\ 020E CD7402 CALL LWRD ?0113
247 g_light_flag = FALSE;
\ 0211 AF XOR A
\ 0212 320E00 LD (g_light_flag),A
248 }
249 else
\ 0215 ?0066:
\ 0215 ?0067:
250 {
251 }
252 break;
\ 0215 1857 JR ?0076
\ 0217 ?0068:
253
254 //#ifndef DEBUG
255 case MSG_LOW_LOPOWER: //low power, nmi 0.98v
256 DUMP("low power", 0);
257 key = AP_MSG_LOW_POWER_MY;
\ 0217 DD36028B LD (IX+2),139
258 break;
\ 021B 1851 JR ?0076
\ 021D ?0069:
259 //#endif
260
261 case MSG_USB_UNSTICK: //ap 不识别的消息
262 case Msg_KeyNull: //没有按键
263 key = AP_KEY_NULL;
\ 021D DD360200 LD (IX+2),0
264 break;
\ 0221 184B JR ?0076
\ 0223 ?0070:
265
266 case Msg_KeyUnHold:
267 key = AP_MSG_UNLOCK;
268 g_rtc_counter = 0;
\ 0223 210000 LD HL,0
\ 0226 220C00 LD (g_rtc_counter),HL
269 key_count = 1;
\ 0229 23 INC HL
\ 022A 220F00 LD (?0012),HL
270 key_value = key;
\ 022D 3E18 LD A,24
\ 022F 180C JR ?0110
271 break;
\ 0231 ?0071:
272
273 case Msg_KeyHold:
274 //lock 后还会有up消息
275 key = AP_MSG_LOCK;
276 g_rtc_counter = 0;
\ 0231 210000 LD HL,0
\ 0234 220C00 LD (g_rtc_counter),HL
277 key_count = 1;
\ 0237 23 INC HL
\ 0238 220F00 LD (?0012),HL
278 key_value = key;
\ 023B 3E19 LD A,25
\ 023D ?0110:
\ 023D 321100 LD (?0013),A
\ 0240 DD7702 LD (IX+2),A
279 break;
\ 0243 1829 JR ?0076
\ 0245 ?0072:
280
281 //
282 // case MSG_SD_IN:/*插卡状态*/
283 // key = AP_MSG_SD_IN;
284 // break;
285 //
286 // case MSG_SD_OUT:/*拨卡状态*/
287 // key = AP_MSG_SD_OUT;
288 // break;
289 //
290 default: //新的按键
291 g_rtc_counter = 0;
\ 0245 210000 LD HL,0
\ 0248 220C00 LD (g_rtc_counter),HL
292 key_count = 1;
\ 024B 23 INC HL
\ 024C 220F00 LD (?0012),HL
293 key_value = key;
\ 024F 7B LD A,E
\ 0250 321100 LD (?0013),A
294
295 //开背光
296 if (!g_light_flag)
\ 0253 3A0E00 LD A,(g_light_flag)
\ 0256 B7 OR A
\ 0257 2008 JR NZ,?0074
\ 0259 ?0073:
297 {
298 //如背灯没开,不理按键
299 key_count = 0;
\ 0259 2B DEC HL
\ 025A 220F00 LD (?0012),HL
300 g_rtc_counter = 0;
301 return NULL;
\ 025D ?0108:
\ 025D 2E00 LD L,0
302 }
\ 025F 1810 JR ?0077
\ 0261 ?0074:
303
304 if(g_comval.KeyTone) //key tone add by mzh 2007.3.14
\ 0261 3A1D00 LD A,(g_comval+29)
\ 0264 B7 OR A
\ 0265 2807 JR Z,?0076
\ 0267 ?0075:
305 sKY_Beep(g_comval.KeyTone);
\ 0267 ED5B1D00 LD DE,(g_comval+29)
\ 026B CD0000 CALL LWRD sKY_Beep
\ 026E ?0076:
\ 026E ?0036:
306 } //switch()
307 return key;
\ 026E DD6E02 LD L,(IX+2)
308 }
\ 0271 ?0077:
\ 0271 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0274 ?0113:
\ 0274 3E00 LD A,BYTE3 Lightmodeset
\ 0276 210000 LD HL,LWRD Lightmodeset
\ 0279 C30000 JP LWRD ?BANK_CALL_DIRECT_L08
\ 027C ap_set_event:
309
310 /*
311 ********************************************************************************
312 * Description : 设置事件发生标志
313 *
314 * Arguments : event, 事件集合
315 *
316 * Returns :
317 *
318 * Notes :
319 *
320 ********************************************************************************
321 */
322 void ap_set_event(WORD event)
323 {
\ 027C D5 PUSH DE
324 // g_ap_event |= event;
325 }
\ 027D E1 POP HL
\ 027E C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0281 ap_get_event:
326
327 /*
328 ********************************************************************************
329 * Description : 检测事件是否发生
330 *
331 * Arguments : event, 需要检测的事件集合
332 condition:
333 AP_EVENT_ALL: 所有事件发生,返回event,否则返回0
334 AP_EVENT_ANY: 任意事件发生,返回event,否则返回0
335 * Returns : event 按照 condition 指定的条件发生,返回系统事件的集合
336 不满足条件, 返回0
337 *
338 * Notes :
339 *
340 ********************************************************************************
341 */
342 WORD ap_get_event(WORD event, WORD condition)
343 {
\ 0281 CD0000 CALL LWRD ?ENT_PARM_DIRECT_L09
344 // if(condition == AP_EVENT_ALL)
345 // {
346 // if( (g_ap_event & event) == event) return g_ap_event;
347 // else return 0;
348 // }
349 // else if(condition == AP_EVENT_ANY)
350 // {
351 // if( (g_ap_event & event) != 0) return g_ap_event;
352 // else return 0;
353 // }
354 // else return 0;
355 }
\ 0284 C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0287 ap_sleep:
356
357 /*
358 ********************************************************************************
359 * Description : 清除事件发生标志
360 *
361 * Arguments : event, 事件集合
362 *
363 * Returns :
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?