⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ap_message2_standby.lst

📁 炬力方案176*132软件源码,适用于AK1025
💻 LST
📖 第 1 页 / 共 3 页
字号:
   \   00EE  3E01              LD      A,1
   \   00F0  320B00            LD      (g_light_flag),A
    143                      return NULL;
   \   00F3  C3DE01            JP      LWRD ?0098
    144                  }
   \   00F6            ?0026:
    145                  key = key_value | AP_KEY_UP;
   \   00F6  78                LD      A,B
   \   00F7  CBEF              SET     5,A
   \   00F9  DD77FE            LD      (IX-2),A
    146                              key_value=key;                                                              //add by mzh 2007.3.14
   \   00FC  320E00            LD      (?0013),A
    147                  break;
   \   00FF  C3E201            JP      LWRD ?0058
   \   0102            ?0027:
    148          
    149          
    150              case MSG_RTC2HZ:        //rtc
    151              case MSG_BAT_V_CHG:        //charging & rtc
    152                  g_rtc_counter++;
   \   0102  2A0700            LD      HL,(g_rtc_counter)
   \   0105  23                INC     HL
   \   0106  220700            LD      (g_rtc_counter),HL
    153          
    154                  if((g_light_time != 0) && (g_rtc_counter >= g_light_time)&&((input8(0x57) & 0x02)==0))    //自动关背光
   \   0109  3A0000            LD      A,(g_light_time)
   \   010C  B7                OR      A
   \   010D  281A              JR      Z,?0029
   \   010F  4F                LD      C,A
   \   0110  0600              LD      B,0
   \   0112  ED42              SBC     HL,BC
   \   0114  3813              JR      C,?0029
   \   0116  DB57              IN      A,(87)
   \   0118  CB4F              BIT     1,A
   \   011A  200D              JR      NZ,?0029
   \   011C            ?0031:
   \   011C            ?0030:
   \   011C            ?0028:
    155                  {
    156                      //关背光
    157                     Lightmodeset(FALSE);                         //开关背光(true: 开, false:关)
   \   011C  58                LD      E,B
   \   011D  3E00              LD      A,BYTE3 Lightmodeset
   \   011F  210000            LD      HL,LWRD Lightmodeset
   \   0122  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    158                      g_light_flag = FALSE;
   \   0125  AF                XOR     A
   \   0126  320B00            LD      (g_light_flag),A
   \   0129            ?0029:
    159                  }
    160                  if(g_sleep_time != 0 && g_rtc_counter == g_sleep_time) //睡眠
   \   0129  2A0300            LD      HL,(g_sleep_time)
   \   012C  7D                LD      A,L
   \   012D  B4                OR      H
   \   012E  280D              JR      Z,?0033
   \   0130  ED4B0700          LD      BC,(g_rtc_counter)
   \   0134  ED42              SBC     HL,BC
   \   0136  2005              JR      NZ,?0033
   \   0138            ?0035:
   \   0138            ?0034:
   \   0138            ?0032:
    161                  {
    162                      return AP_MSG_SLEEP;
   \   0138  2E1F              LD      L,31
    163                  }
   \   013A  C3E501            JP      LWRD ?0059
   \   013D            ?0033:
    164          
    165                  if(g_standby_time != 0 && g_rtc_counter == g_standby_time) //自动关机
   \   013D  2A0500            LD      HL,(g_standby_time)
   \   0140  7D                LD      A,L
   \   0141  B4                OR      H
   \   0142  280D              JR      Z,?0037
   \   0144  ED4B0700          LD      BC,(g_rtc_counter)
   \   0148  ED42              SBC     HL,BC
   \   014A  2005              JR      NZ,?0037
   \   014C            ?0039:
   \   014C            ?0038:
   \   014C            ?0036:
    166                  {
    167                      return AP_MSG_STANDBY;
   \   014C  2E1D              LD      L,29
    168                  }
   \   014E  C3E501            JP      LWRD ?0059
   \   0151            ?0037:
    169          
    170                  if( (g_rtc_counter % 16) == 0 )
   \   0151  2A0700            LD      HL,(g_rtc_counter)
   \   0154  7D                LD      A,L
   \   0155  E60F              AND     15
   \   0157  2005              JR      NZ,?0041
   \   0159            ?0040:
    171                  {
    172          
    173                      return AP_MSG_WAIT_TIMEOUT;    //8 sec timeout
   \   0159  2E1E              LD      L,30
    174                  }
   \   015B  C3E501            JP      LWRD ?0059
   \   015E            ?0041:
    175          
    176                  if(key == MSG_RTC2HZ) key = AP_MSG_RTC;
   \   015E  DD46FE            LD      B,(IX-2)
   \   0161  05                DEC     B
   \   0162  E26B01            JP      PO,?0043
   \   0165            ?0042:
   \   0165  DD36FE1C          LD      (IX-2),28
   \   0169  1877              JR      ?0058
   \   016B            ?0043:
    177                  else key = AP_MSG_CHARGING;
   \   016B  DD36FE1B          LD      (IX-2),27
   \   016F            ?0044:
    178          
    179                  break;
   \   016F  1871              JR      ?0058
   \   0171            ?0045:
    180          
    181          
    182              case MSG_USB_STICK:        //usb plugin, 等同按键
    183                  //output8(0xf4,input8(0x0f4)&0xF7);    //set gio_c3 to low to cut battery
    184                  g_rtc_counter = 0;
   \   0171  210000            LD      HL,0
   \   0174  220700            LD      (g_rtc_counter),HL
    185                  key_count = 1;
   \   0177  23                INC     HL
   \   0178  220C00            LD      (?0012),HL
    186                  key = AP_MSG_USB_PLUGIN;
   \   017B  DD36FE1A          LD      (IX-2),26
    187          
    188                  //开背光
    189                  if(g_light_time != 0)
   \   017F  3A0000            LD      A,(g_light_time)
   \   0182  B7                OR      A
   \   0183  285D              JR      Z,?0058
   \   0185            ?0046:
    190                  {
    191                      Lightmodeset(TRUE);//开关背光(TRUE: 开, FALSE:关)
   \   0185  5D                LD      E,L
   \   0186  3E00              LD      A,BYTE3 Lightmodeset
   \   0188  210000            LD      HL,LWRD Lightmodeset
   \   018B  CD0000            CALL    LWRD ?BANK_CALL_DIRECT_L08
    192                      g_light_flag = FALSE;
   \   018E  AF                XOR     A
   \   018F  320B00            LD      (g_light_flag),A
    193                  }
    194                  else
   \   0192            ?0047:
   \   0192            ?0048:
    195                  {
    196                  }
    197                  break;
   \   0192  184E              JR      ?0058
   \   0194            ?0049:
    198          
    199          //#ifndef DEBUG
    200              case MSG_LOW_POWER:    //low power, nmi 0.98v
    201                  DUMP("low power", 0);      
    202                  if(input8(0x9c)<0xa0)       //当Li电池电压小于3.3V(0xa0) ,ap层才去响应低电消息,客户可修改此值
   \   0194  DB9C              IN      A,(156)
   \   0196  FEA0              CP      160
   \   0198  3048              JR      NC,?0058
   \   019A            ?0050:
    203                    key = AP_MSG_LOW_POWER;
   \   019A  DD36FE1F          LD      (IX-2),31
   \   019E            ?0051:
    204                  break;
   \   019E  1842              JR      ?0058
   \   01A0            ?0052:
    205          //#endif
    206          
    207              case MSG_USB_UNSTICK:    //ap 不识别的消息
    208           
    209              case Msg_KeyNull:        //没有按键
    210           
    211              case Msg_KeyUnHold:
    212                  key = AP_KEY_NULL;
   \   01A0  DD36FE00          LD      (IX-2),0
    213                  break;
   \   01A4  183C              JR      ?0058
   \   01A6            ?0053:
    214          
    215          
    216              case Msg_KeyHold:
    217                  //lock 后还会有up消息
    218                  key = AP_MSG_LOCK;
    219                  g_rtc_counter = 0;
   \   01A6  210000            LD      HL,0
   \   01A9  220700            LD      (g_rtc_counter),HL
    220                  key_count = 1;
   \   01AC  23                INC     HL
   \   01AD  220C00            LD      (?0012),HL
    221                  key_value = key;
   \   01B0  3E19              LD      A,25
   \   01B2  320E00            LD      (?0013),A
   \   01B5  DD77FE            LD      (IX-2),A
    222          
    223                  break;
   \   01B8  1828              JR      ?0058
   \   01BA            ?0054:
    224          
    225              case MSG_SD_IN:/*插卡状态*/
    226                  key = AP_MSG_SD_IN;
   \   01BA  DD36FE38          LD      (IX-2),56
    227                  break;
   \   01BE  1822              JR      ?0058
   \   01C0            ?0055:
    228          
    229              case MSG_SD_OUT:/*拨卡状态*/
    230                  key = AP_MSG_SD_OUT;
   \   01C0  DD36FE37          LD      (IX-2),55
    231                  break;
   \   01C4  181C              JR      ?0058
   \   01C6            ?0056:
    232          
    233              default:            //新的按键
    234                  g_rtc_counter = 0;
   \   01C6  210000            LD      HL,0
   \   01C9  220700            LD      (g_rtc_counter),HL
    235                  key_count = 1;
   \   01CC  23                INC     HL
   \   01CD  220C00            LD      (?0012),HL
    236                  key_value = key;
   \   01D0  7B                LD      A,E
   \   01D1  320E00            LD      (?0013),A
    237          
    238                  //开背光
    239                  if (!g_light_flag)
   \   01D4  3A0B00            LD      A,(g_light_flag)
   \   01D7  B7                OR      A
   \   01D8  2008              JR      NZ,?0058
   \   01DA            ?0057:
    240                  {
    241                      //如背灯没开,不理按键
    242                      key_count = 0;
   \   01DA  2B                DEC     HL
   \   01DB  220C00            LD      (?0012),HL
    243                      g_rtc_counter = 0;
    244                      return NULL;
   \   01DE            ?0098:
   \   01DE  2E00              LD      L,0
    245                  }
   \   01E0  1803              JR      ?0059
   \   01E2            ?0058:
   \   01E2            ?0023:
    246              } //switch()
    247              return key;
   \   01E2  DD6EFE            LD      L,(IX-2)
    248          }
   \   01E5            ?0059:
   \   01E5  DDF9              LD      SP,IX
   \   01E7  DDE1              POP     IX
   \   01E9  C1                POP     BC
   \   01EA  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   01ED            ap_set_event:
    249           
    250          
    251          /*
    252          ********************************************************************************
    253          * Description : 设置事件发生标志
    254          *
    255          * Arguments   : event, 事件集合
    256          *
    257          * Returns     :
    258          *
    259          * Notes       :
    260          *
    261          ********************************************************************************
    262          */
    263          void ap_set_event(WORD event)
    264          {
   \   01ED  C5                PUSH    BC
   \   01EE  D5                PUSH    DE
   \   01EF  4B                LD      C,E
   \   01F0  42                LD      B,D
   \   01F1  210900            LD      HL,g_ap_event
   \   01F4  7E                LD      A,(HL)
   \   01F5  B1                OR      C
   \   01F6  77                LD      (HL),A
   \   01F7  23                INC     HL
   \   01F8  7E                LD      A,(HL)
   \   01F9  B0                OR      B
   \   01FA  77                LD      (HL),A
    265              g_ap_event |= event;
    266          }
   \   01FB  E1                POP     HL
   \   01FC  C1                POP     BC
   \   01FD  C30000            JP      LWRD ?BANK_FAST_LEAVE_L08
   \   0200            ap_get_event:
    267          
    268          /*
    269          ********************************************************************************
    270          * Description : 检测事件是否发生
    271          *
    272          * Arguments   : event, 需要检测的事件集合
    273                  condition:
    274                      AP_EVENT_ALL:    所有事件发生,返回event,否则返回0
    275                      AP_EVENT_ANY:    任意事件发生,返回event,否则返回0
    276          * Returns     : event 按照 condition 指定的条件发生,返回系统事件的集合
    277                  不满足条件, 返回0
    278          *
    279          * Notes       :
    280          *
    281          ********************************************************************************
    282          */
    283          WORD ap_get_event(WORD event, WORD condition)
    284          {
   \   0200  FDE5              PUSH    IY
   \   0202  DDE5              PUSH    IX
   \   0204  D5                PUSH    DE
   \   0205  DDE1              POP     IX
   \   0207  C5                PUSH    BC
   \   0208  FDE1              POP     IY
    285              if(condition == AP_EVENT_ALL)
   \   020A  79                LD      A,C
   \   020B  A0                AND     B
   \   020C  3C                INC     A
   \   020D  2013              JR      NZ,?0061
   \   020F            ?0060:
    286              {
    287                  if( (g_ap_event & event) == event) return g_ap_event;
   \   020F  2A0900            LD      HL,(g_ap_event)
   \   0212  DDE5              PUSH    IX
   \   0214  C1                POP     BC
   \   0215  7D                LD      A,L
   \   0216  A1                AND     C
   \   0217  5F                LD      E,A
   \   0218  7C                LD      A,H
   \   0219  A0                AND     B
   \   021A  57                LD      D,A
   \   021B  EB                EX      DE,HL
   \   021C  ED42              SBC     HL,BC
   \   021E  201C              JR      NZ,?0065
   \   0220            ?0062:
   \   0220  1815              JR      ?0104

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -