📄 ap_message2.lst
字号:
210
211 if( (g_rtc_counter % 16) == 0 )
\ 01B2 2A0800 LD HL,(g_rtc_counter)
\ 01B5 7D LD A,L
\ 01B6 E60F AND 15
\ 01B8 2005 JR NZ,?0059
\ 01BA ?0058:
212 {
213
214 return AP_MSG_WAIT_TIMEOUT; //8 sec timeout
\ 01BA 2E1E LD L,30
215 }
\ 01BC C36F02 JP LWRD ?0090
\ 01BF ?0059:
216
217 if(key == MSG_RTC2HZ) key = AP_MSG_RTC;
\ 01BF 43 LD B,E
\ 01C0 05 DEC B
\ 01C1 E2C801 JP PO,?0061
\ 01C4 ?0060:
\ 01C4 DD36FE1C LD (IX-2),28
\ 01C8 ?0061:
218
219 if(g_comval.BatteryType == BATT_TYPE_LITHIUM) //
\ 01C8 3A0F00 LD A,(g_comval+15)
\ 01CB 3D DEC A
\ 01CC 3D DEC A
\ 01CD C26C02 JP NZ,?0089
\ 01D0 ?0062:
220 {
221 if((input8(0x8e) & 0x80) != 0)
\ 01D0 DB8E IN A,(142)
\ 01D2 CB7F BIT 7,A
\ 01D4 CA6C02 JP Z,?0089
\ 01D7 ?0064:
222 {
223 if(g_charge_counter==60)
\ 01D7 3A0A00 LD A,(g_charge_counter)
\ 01DA FE3C CP 60
\ 01DC 200A JR NZ,?0067
\ 01DE ?0066:
224 {
225 sKY_ChargeGetandSet(); //usb插上时检测充电状态,每5秒钟检测一次
\ 01DE CD0000 CALL LWRD sKY_ChargeGetandSet
226 g_charge_counter = 0;
\ 01E1 AF XOR A
\ 01E2 320A00 LD (g_charge_counter),A
227 }
228 else
\ 01E5 C36C02 JP LWRD ?0089
\ 01E8 ?0067:
229 {
230 g_charge_counter++;
\ 01E8 210A00 LD HL,g_charge_counter
\ 01EB 34 INC (HL)
\ 01EC ?0068:
\ 01EC ?0065:
\ 01EC ?0063:
231 }
232 }
233 }
234 break;
\ 01EC 187E JR ?0089
\ 01EE ?0069:
235
236
237 case MSG_USB_STICK: //usb plugin, 等同按键
238 if((g_comval.BatteryType != BATT_TYPE_LITHIUM)&&((input8(0x57)&0x02) == 0)) //干电池方案插入充电器
\ 01EE 3A0F00 LD A,(g_comval+15)
\ 01F1 3D DEC A
\ 01F2 3D DEC A
\ 01F3 2806 JR Z,?0071
\ 01F5 DB57 IN A,(87)
\ 01F7 CB4F BIT 1,A
\ 01F9 2827 JR Z,?0080
\ 01FB ?0073:
\ 01FB ?0072:
\ 01FB ?0070:
239 {
240 key = AP_KEY_NULL;
241 }
242
243 else
\ 01FB ?0071:
244 {
245 key = AP_MSG_USB_PLUGIN;
246 g_rtc_counter = 0;
\ 01FB 210000 LD HL,0
\ 01FE 220800 LD (g_rtc_counter),HL
247 key_count = 1;
\ 0201 23 INC HL
\ 0202 220B00 LD (?0006),HL
\ 0205 DD36FE1A LD (IX-2),26
\ 0209 ?0074:
248 //开背光
249 //if(g_light_time != 0) sKY_OpenBacklight();
250 }
251
252 break;
\ 0209 1861 JR ?0089
\ 020B ?0075:
253
254 //#ifndef DEBUG
255
256 case MSG_LOW_POWER: //low power, nmi 0.98v
257 // DUMP("low power", 0);
258 // if((input8(0x8f)&0x3f)<0x12) //当Li电池电压小于3.3V(0xa0) ,ap层才去响应低电消息,客户可修改此值
259 // {
260 if(g_comval.BatteryType == BATT_TYPE_LITHIUM) //
\ 020B 3A0F00 LD A,(g_comval+15)
\ 020E 3D DEC A
\ 020F 3D DEC A
\ 0210 205A JR NZ,?0089
\ 0212 ?0076:
261 key = AP_MSG_LOW_POWER;
\ 0212 DD36FE1F LD (IX-2),31
\ 0216 ?0077:
262 // }
263 break;
\ 0216 1854 JR ?0089
\ 0218 ?0078:
264
265 case MSG_USB_UNSTICK: //ap 不识别的消息
266 if(g_comval.BatteryType == BATT_TYPE_LITHIUM) //
\ 0218 3A0F00 LD A,(g_comval+15)
\ 021B 3D DEC A
\ 021C 3D DEC A
\ 021D 2003 JR NZ,?0080
\ 021F ?0079:
267 sKY_ChargeGetandSet(); //usb拔出时一定要检测一次充电状态
\ 021F CD0000 CALL LWRD sKY_ChargeGetandSet
\ 0222 ?0080:
\ 0222 ?0081:
268
269 case Msg_KeyNull: //没有按键
270
271 case Msg_KeyUnHold:
272 key = AP_KEY_NULL;
\ 0222 DD36FE00 LD (IX-2),0
273 break;
\ 0226 1844 JR ?0089
\ 0228 ?0082:
274
275
276 case Msg_KeyHold:
277 //lock 后还会有up消息
278 key = AP_MSG_LOCK;
279 g_rtc_counter = 0;
\ 0228 210000 LD HL,0
\ 022B 220800 LD (g_rtc_counter),HL
280 key_count = 1;
\ 022E 23 INC HL
\ 022F 220B00 LD (?0006),HL
281 key_value = key;
\ 0232 3E19 LD A,25
\ 0234 320D00 LD (?0007),A
\ 0237 DD77FE LD (IX-2),A
282
283 break;
\ 023A 1830 JR ?0089
\ 023C ?0083:
284
285 case MSG_SD_IN:/*插卡状态*/
286 key = AP_MSG_SD_IN;
\ 023C DD36FE38 LD (IX-2),56
287 break;
\ 0240 182A JR ?0089
\ 0242 ?0084:
288
289 case MSG_SD_OUT:/*拨卡状态*/
290 key = AP_MSG_SD_OUT;
\ 0242 DD36FE37 LD (IX-2),55
291 break;
\ 0246 1824 JR ?0089
\ 0248 ?0085:
292
293 default: //新的按键
294 g_rtc_counter = 0;
\ 0248 210000 LD HL,0
\ 024B 220800 LD (g_rtc_counter),HL
295 key_count = 1;
\ 024E 23 INC HL
\ 024F 220B00 LD (?0006),HL
296 key_value = key;
\ 0252 7B LD A,E
\ 0253 320D00 LD (?0007),A
297
298 //开背光
299 if(g_light_time != 0) sKY_OpenBacklight();
\ 0256 3A0300 LD A,(g_light_time)
\ 0259 B7 OR A
\ 025A 2803 JR Z,?0087
\ 025C ?0086:
\ 025C CD0000 CALL LWRD sKY_OpenBacklight
\ 025F ?0087:
300
301 if(g_comval.KeyTone) //key tone add by mzh 2007.3.14
\ 025F 3A1D00 LD A,(g_comval+29)
\ 0262 B7 OR A
\ 0263 2807 JR Z,?0089
\ 0265 ?0088:
302 sKY_Beep(g_comval.KeyTone);
\ 0265 ED5B1D00 LD DE,(g_comval+29)
\ 0269 CD0000 CALL LWRD sKY_Beep
\ 026C ?0089:
\ 026C ?0030:
303
304 } //switch()
305
306 return key;
\ 026C DD6EFE LD L,(IX-2)
307 }
\ 026F ?0090:
\ 026F DDF9 LD SP,IX
\ 0271 DDE1 POP IX
\ 0273 C1 POP BC
\ 0274 C30000 JP LWRD ?BANK_FAST_LEAVE_L08
\ 0277 ap_sleep:
308
309 /*
310 ********************************************************************************
311 * Description : 设置事件发生标志
312 *
313 * Arguments : event, 事件集合
314 *
315 * Returns :
316 *
317 * Notes :
318 *
319 ********************************************************************************
320 */
321 //void ap_set_event(WORD event)
322 //{
323 // g_ap_event |= event;
324 //}
325
326 /*
327 ********************************************************************************
328 * Description : 检测事件是否发生
329 *
330 * Arguments : event, 需要检测的事件集合
331 condition:
332 AP_EVENT_ALL: 所有事件发生,返回event,否则返回0
333 AP_EVENT_ANY: 任意事件发生,返回event,否则返回0
334 * Returns : event 按照 condition 指定的条件发生,返回系统事件的集合
335 不满足条件, 返回0
336 *
337 * Notes :
338 *
339 ********************************************************************************
340 */
341 //WORD ap_get_event(WORD event, WORD condition)
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 //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -