📄 ap_message2.lst
字号:
\ 022F 2E1D LD L,29
217 }
\ 0231 C31103 JP LWRD ?0076
\ 0234 ?0052:
218 #ifdef EAR_PROTECT
219 if(g_autoswitch_time != 0 && g_autoswitch_counter == g_autoswitch_time) //自动关机
\ 0234 2A0200 LD HL,(g_autoswitch_time)
\ 0237 7D LD A,L
\ 0238 B4 OR H
\ 0239 2811 JR Z,?0056
\ 023B 2A0200 LD HL,(g_autoswitch_time)
\ 023E ED4B0300 LD BC,(g_autoswitch_counter)
\ 0242 A7 AND A
\ 0243 ED42 SBC HL,BC
\ 0245 2005 JR NZ,?0056
\ 0247 ?0058:
\ 0247 ?0057:
\ 0247 ?0055:
220 {
221 return AP_MSG_FORCE_STANDBY;
\ 0247 2E1F LD L,31
222 }
\ 0249 C31103 JP LWRD ?0076
\ 024C ?0056:
223 #endif
224
225 if( (g_rtc_counter % 16) == 0 )
\ 024C 2A0C00 LD HL,(g_rtc_counter)
\ 024F 7D LD A,L
\ 0250 E60F AND 15
\ 0252 6F LD L,A
\ 0253 2600 LD H,0
\ 0255 7D LD A,L
\ 0256 B4 OR H
\ 0257 2005 JR NZ,?0060
\ 0259 ?0059:
226 {
227
228 return AP_MSG_WAIT_TIMEOUT; //8 sec timeout
\ 0259 2E1E LD L,30
229 }
\ 025B C31103 JP LWRD ?0076
\ 025E ?0060:
230
231 if(key == MSG_RTC2HZ) key = AP_MSG_RTC;
\ 025E DD46FE LD B,(IX-2)
\ 0261 05 DEC B
\ 0262 E26C02 JP PO,?0062
\ 0265 ?0061:
\ 0265 DD36FE1C LD (IX-2),28
\ 0269 C30E03 JP LWRD ?0075
\ 026C ?0062:
232 else key = AP_MSG_CHARGING;
\ 026C DD36FE1B LD (IX-2),27
\ 0270 ?0063:
233
234 break;
\ 0270 C30E03 JP LWRD ?0075
\ 0273 ?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;
\ 0273 210000 LD HL,0
\ 0276 220C00 LD (g_rtc_counter),HL
240 key_count = 1;
\ 0279 210100 LD HL,1
\ 027C 220F00 LD (?0012),HL
241 key = AP_MSG_USB_PLUGIN;
\ 027F DD36FE1A LD (IX-2),26
242
243 //开背光
244 if(g_light_time != 0)
\ 0283 3A0500 LD A,(g_light_time)
\ 0286 B7 OR A
\ 0287 CA0E03 JP Z,?0075
\ 028A ?0065:
245 {
246 Lightmodeset(TRUE);//开关背光(TRUE: 开, FALSE:关)
\ 028A 1E01 LD E,1
\ 028C 3E00 LD A,BYTE3 Lightmodeset
\ 028E 210000 LD HL,LWRD Lightmodeset
\ 0291 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
247 g_light_flag = FALSE;
\ 0294 AF XOR A
\ 0295 320E00 LD (g_light_flag),A
\ 0298 ?0066:
248 }
249 break;
\ 0298 1874 JR ?0075
\ 029A ?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;
\ 029A DD36FE8B LD (IX-2),139
255 break;
\ 029E 186E JR ?0075
\ 02A0 ?0068:
256 //#endif
257
258 case MSG_USB_UNSTICK: //ap 不识别的消息
259 case Msg_KeyNull: //没有按键
260 key = AP_KEY_NULL;
\ 02A0 DD36FE00 LD (IX-2),0
261 break;
\ 02A4 1868 JR ?0075
\ 02A6 ?0069:
262
263 case Msg_KeyUnHold:
264 key = AP_MSG_UNLOCK;
\ 02A6 DD36FE18 LD (IX-2),24
265 g_rtc_counter = 0;
\ 02AA 210000 LD HL,0
\ 02AD 220C00 LD (g_rtc_counter),HL
266 key_count = 1;
\ 02B0 210100 LD HL,1
\ 02B3 220F00 LD (?0012),HL
267 key_value = key;
\ 02B6 DD46FE LD B,(IX-2)
\ 02B9 78 LD A,B
\ 02BA 321100 LD (?0013),A
268 break;
\ 02BD 184F JR ?0075
\ 02BF ?0070:
269
270 case Msg_KeyHold:
271 //lock 后还会有up消息
272 key = AP_MSG_LOCK;
\ 02BF DD36FE19 LD (IX-2),25
273 g_rtc_counter = 0;
\ 02C3 210000 LD HL,0
\ 02C6 220C00 LD (g_rtc_counter),HL
274 key_count = 1;
\ 02C9 210100 LD HL,1
\ 02CC 220F00 LD (?0012),HL
275 key_value = key;
\ 02CF DD46FE LD B,(IX-2)
\ 02D2 78 LD A,B
\ 02D3 321100 LD (?0013),A
276 break;
\ 02D6 1836 JR ?0075
\ 02D8 ?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;
\ 02D8 210000 LD HL,0
\ 02DB 220C00 LD (g_rtc_counter),HL
289 key_count = 1;
\ 02DE 210100 LD HL,1
\ 02E1 220F00 LD (?0012),HL
290 key_value = key;
\ 02E4 DD46FE LD B,(IX-2)
\ 02E7 78 LD A,B
\ 02E8 321100 LD (?0013),A
291
292 //开背光
293 if (!g_light_flag)
\ 02EB 3A0E00 LD A,(g_light_flag)
\ 02EE B7 OR A
\ 02EF 2010 JR NZ,?0073
\ 02F1 ?0072:
294 {
295 //如背灯没开,不理按键
296 key_count = 0;
\ 02F1 210000 LD HL,0
\ 02F4 220F00 LD (?0012),HL
297 g_rtc_counter = 0;
\ 02F7 210000 LD HL,0
\ 02FA 220C00 LD (g_rtc_counter),HL
298 return NULL;
\ 02FD 2E00 LD L,0
299 }
\ 02FF 1810 JR ?0076
\ 0301 ?0073:
300
301 if(g_comval.KeyTone) //key tone add by mzh 2007.3.14
\ 0301 3A1D00 LD A,(g_comval+29)
\ 0304 B7 OR A
\ 0305 2807 JR Z,?0075
\ 0307 ?0074:
302 sKY_Beep(g_comval.KeyTone);
\ 0307 ED5B1D00 LD DE,(g_comval+29)
\ 030B CD0000 CALL LWRD sKY_Beep
\ 030E ?0075:
\ 030E ?0036:
303 } //switch()
304 return key;
\ 030E DD6EFE LD L,(IX-2)
305 }
\ 0311 ?0076:
\ 0311 DDF9 LD SP,IX
\ 0313 DDE1 POP IX
\ 0315 C1 POP BC
\ 0316 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0319 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 {
\ 0319 DDE5 PUSH IX
\ 031B DD210000 LD IX,0
\ 031F DD39 ADD IX,SP
\ 0321 D5 PUSH DE
322 // g_ap_event |= event;
323 }
\ 0322 DDF9 LD SP,IX
\ 0324 DDE1 POP IX
\ 0326 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0329 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 {
\ 0329 DDE5 PUSH IX
\ 032B DD210000 LD IX,0
\ 032F DD39 ADD IX,SP
\ 0331 C5 PUSH BC
\ 0332 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 }
\ 0333 DDF9 LD SP,IX
\ 0335 DDE1 POP IX
\ 0337 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 033A ap_sleep:
356
357 /*
358 ********************************************************************************
359 * Description : 清除事件发生标志
360 *
361 * Arguments : event, 事件集合
362 *
363 * Returns :
364 *
365 * Notes :
366 *
367 ********************************************************************************
368 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -