📄 ap_message2.lst
字号:
\ 01D5 ?0052:
218 #ifdef EAR_PROTECT
219 if(g_autoswitch_time != 0 && g_autoswitch_counter == g_autoswitch_time) //自动关机
\ 01D5 2A0200 LD HL,(g_autoswitch_time)
\ 01D8 7D LD A,L
\ 01D9 B4 OR H
\ 01DA 280D JR Z,?0056
\ 01DC ED4B0300 LD BC,(g_autoswitch_counter)
\ 01E0 ED42 SBC HL,BC
\ 01E2 2005 JR NZ,?0056
\ 01E4 ?0058:
\ 01E4 ?0057:
\ 01E4 ?0055:
220 {
221 return AP_MSG_FORCE_STANDBY;
\ 01E4 ?0108:
\ 01E4 2E1F LD L,31
222 }
\ 01E6 C38702 JP LWRD ?0076
\ 01E9 ?0056:
223 #endif
224
225 if( (g_rtc_counter % 16) == 0 )
\ 01E9 2A0C00 LD HL,(g_rtc_counter)
\ 01EC 7D LD A,L
\ 01ED E60F AND 15
\ 01EF 2005 JR NZ,?0060
\ 01F1 ?0059:
226 {
227
228 return AP_MSG_WAIT_TIMEOUT; //8 sec timeout
\ 01F1 2E1E LD L,30
229 }
\ 01F3 C38702 JP LWRD ?0076
\ 01F6 ?0060:
230
231 if(key == MSG_RTC2HZ) key = AP_MSG_RTC;
\ 01F6 DD46FE LD B,(IX-2)
\ 01F9 05 DEC B
\ 01FA E20402 JP PO,?0062
\ 01FD ?0061:
\ 01FD DD36FE1C LD (IX-2),28
\ 0201 C38402 JP LWRD ?0075
\ 0204 ?0062:
232 else key = AP_MSG_CHARGING;
\ 0204 DD36FE1B LD (IX-2),27
\ 0208 ?0063:
233
234 break;
\ 0208 187A JR ?0075
\ 020A ?0064:
235
236
237 case MSG_USB_STICK: //usb plugin, 等同按键
238 //output8(0xf4,input8(0x0f4)&0xF7); //set gio_c3 to low to cut battery
239 g_rtc_counter = 0;
\ 020A 210000 LD HL,0
\ 020D 220C00 LD (g_rtc_counter),HL
240 key_count = 1;
\ 0210 23 INC HL
\ 0211 220F00 LD (?0012),HL
241 key = AP_MSG_USB_PLUGIN;
\ 0214 DD36FE1A LD (IX-2),26
242
243 //开背光
244 if(g_light_time != 0)
\ 0218 3A0500 LD A,(g_light_time)
\ 021B B7 OR A
\ 021C 2866 JR Z,?0075
\ 021E ?0065:
245 {
246 Lightmodeset(TRUE);//开关背光(TRUE: 开, FALSE:关)
\ 021E 5D LD E,L
\ 021F 3E00 LD A,BYTE3 Lightmodeset
\ 0221 210000 LD HL,LWRD Lightmodeset
\ 0224 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
247 g_light_flag = FALSE;
\ 0227 AF XOR A
\ 0228 320E00 LD (g_light_flag),A
\ 022B ?0066:
248 }
249 break;
\ 022B 1857 JR ?0075
\ 022D ?0067:
250
251 //#ifndef DEBUG
252 case MSG_LOW_LOPOWER: //low power, nmi 0.98v
253 DUMP("low power", 0);
254 key = AP_MSG_LOW_POWER_MY;
\ 022D DD36FE8B LD (IX-2),139
255 break;
\ 0231 1851 JR ?0075
\ 0233 ?0068:
256 //#endif
257
258 case MSG_USB_UNSTICK: //ap 不识别的消息
259 case Msg_KeyNull: //没有按键
260 key = AP_KEY_NULL;
\ 0233 DD36FE00 LD (IX-2),0
261 break;
\ 0237 184B JR ?0075
\ 0239 ?0069:
262
263 case Msg_KeyUnHold:
264 key = AP_MSG_UNLOCK;
265 g_rtc_counter = 0;
\ 0239 210000 LD HL,0
\ 023C 220C00 LD (g_rtc_counter),HL
266 key_count = 1;
\ 023F 23 INC HL
\ 0240 220F00 LD (?0012),HL
267 key_value = key;
\ 0243 3E18 LD A,24
\ 0245 180C JR ?0109
268 break;
\ 0247 ?0070:
269
270 case Msg_KeyHold:
271 //lock 后还会有up消息
272 key = AP_MSG_LOCK;
273 g_rtc_counter = 0;
\ 0247 210000 LD HL,0
\ 024A 220C00 LD (g_rtc_counter),HL
274 key_count = 1;
\ 024D 23 INC HL
\ 024E 220F00 LD (?0012),HL
275 key_value = key;
\ 0251 3E19 LD A,25
\ 0253 ?0109:
\ 0253 321100 LD (?0013),A
\ 0256 DD77FE LD (IX-2),A
276 break;
\ 0259 1829 JR ?0075
\ 025B ?0071:
277
278 //
279 // case MSG_SD_IN:/*插卡状态*/
280 // key = AP_MSG_SD_IN;
281 // break;
282 //
283 // case MSG_SD_OUT:/*拨卡状态*/
284 // key = AP_MSG_SD_OUT;
285 // break;
286 //
287 default: //新的按键
288 g_rtc_counter = 0;
\ 025B 210000 LD HL,0
\ 025E 220C00 LD (g_rtc_counter),HL
289 key_count = 1;
\ 0261 23 INC HL
\ 0262 220F00 LD (?0012),HL
290 key_value = key;
\ 0265 7B LD A,E
\ 0266 321100 LD (?0013),A
291
292 //开背光
293 if (!g_light_flag)
\ 0269 3A0E00 LD A,(g_light_flag)
\ 026C B7 OR A
\ 026D 2008 JR NZ,?0073
\ 026F ?0072:
294 {
295 //如背灯没开,不理按键
296 key_count = 0;
\ 026F 2B DEC HL
\ 0270 220F00 LD (?0012),HL
297 g_rtc_counter = 0;
298 return NULL;
\ 0273 ?0107:
\ 0273 2E00 LD L,0
299 }
\ 0275 1810 JR ?0076
\ 0277 ?0073:
300
301 if(g_comval.KeyTone) //key tone add by mzh 2007.3.14
\ 0277 3A1D00 LD A,(g_comval+29)
\ 027A B7 OR A
\ 027B 2807 JR Z,?0075
\ 027D ?0074:
302 sKY_Beep(g_comval.KeyTone);
\ 027D ED5B1D00 LD DE,(g_comval+29)
\ 0281 CD0000 CALL LWRD sKY_Beep
\ 0284 ?0075:
\ 0284 ?0036:
303 } //switch()
304 return key;
\ 0284 DD6EFE LD L,(IX-2)
305 }
\ 0287 ?0076:
\ 0287 DDF9 LD SP,IX
\ 0289 DDE1 POP IX
\ 028B C1 POP BC
\ 028C C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 028F ap_set_event:
306
307
308 /*
309 ********************************************************************************
310 * Description : 设置事件发生标志
311 *
312 * Arguments : event, 事件集合
313 *
314 * Returns :
315 *
316 * Notes :
317 *
318 ********************************************************************************
319 */
320 void ap_set_event(WORD event)
321 {
\ 028F D5 PUSH DE
322 // g_ap_event |= event;
323 }
\ 0290 E1 POP HL
\ 0291 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0294 ap_get_event:
324
325 /*
326 ********************************************************************************
327 * Description : 检测事件是否发生
328 *
329 * Arguments : event, 需要检测的事件集合
330 condition:
331 AP_EVENT_ALL: 所有事件发生,返回event,否则返回0
332 AP_EVENT_ANY: 任意事件发生,返回event,否则返回0
333 * Returns : event 按照 condition 指定的条件发生,返回系统事件的集合
334 不满足条件, 返回0
335 *
336 * Notes :
337 *
338 ********************************************************************************
339 */
340 WORD ap_get_event(WORD event, WORD condition)
341 {
\ 0294 C5 PUSH BC
\ 0295 D5 PUSH DE
342 /*
343 if(condition == AP_EVENT_ALL)
344 {
345 if( (g_ap_event & event) == event) return g_ap_event;
346 else return 0;
347 }
348 else if(condition == AP_EVENT_ANY)
349 {
350 if( (g_ap_event & event) != 0) return g_ap_event;
351 else return 0;
352 }
353 else return 0;
354 */
355 }
\ 0296 E1 POP HL
\ 0297 E1 POP HL
\ 0298 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 029B ap_sleep:
356
357 /*
358 ********************************************************************************
359 * Description : 清除事件发生标志
360 *
361 * Arguments : event, 事件集合
362 *
363 * Returns :
364 *
365 * Notes :
366 *
367 ********************************************************************************
368 */
369 //void ap_del_event(WORD event)
370 //{
371 // g_ap_event &= (~event);
372 //}
373
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -